IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電信電話株式会社の特許一覧 ▶ 国立大学法人 東京大学の特許一覧

特開2024-30066経路探索装置、経路探索方法、および経路探索プログラム
<>
  • 特開-経路探索装置、経路探索方法、および経路探索プログラム 図1
  • 特開-経路探索装置、経路探索方法、および経路探索プログラム 図2
  • 特開-経路探索装置、経路探索方法、および経路探索プログラム 図3
  • 特開-経路探索装置、経路探索方法、および経路探索プログラム 図4
  • 特開-経路探索装置、経路探索方法、および経路探索プログラム 図5
  • 特開-経路探索装置、経路探索方法、および経路探索プログラム 図6
  • 特開-経路探索装置、経路探索方法、および経路探索プログラム 図7
  • 特開-経路探索装置、経路探索方法、および経路探索プログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024030066
(43)【公開日】2024-03-07
(54)【発明の名称】経路探索装置、経路探索方法、および経路探索プログラム
(51)【国際特許分類】
   G06Q 10/047 20230101AFI20240229BHJP
   G01C 21/34 20060101ALI20240229BHJP
【FI】
G06Q10/04 310
G01C21/34
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022132622
(22)【出願日】2022-08-23
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(71)【出願人】
【識別番号】504137912
【氏名又は名称】国立大学法人 東京大学
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】小川 まな美
(72)【発明者】
【氏名】田山 健一
(72)【発明者】
【氏名】金井 俊介
(72)【発明者】
【氏名】大中 亮磨
(72)【発明者】
【氏名】岩田 覚
【テーマコード(参考)】
2F129
5L049
【Fターム(参考)】
2F129AA03
2F129DD13
2F129DD14
2F129DD15
2F129DD21
2F129DD66
2F129EE55
2F129EE78
2F129EE79
2F129EE80
2F129HH04
2F129HH12
2F129HH20
2F129HH22
5L049AA04
(57)【要約】
【課題】最大遅延コストを最小化する経路を探索するという問題の最適解に近い解を求めることができる技術を提供する。
【解決手段】実施形態に係る経路探索装置であって、車両の初期位置から需要点をすべて回り、且つ各頂点の遅延コストの最大値を最小にする経路を、列生成法を用いて探索するための経路探索装置であって、車両の初期位置および需要点を含む頂点情報と、各頂点に対応する遅延コストが所定のコストに到達するまでの時間、各頂点における仕事時間、および重みを含む地点情報と、頂点間の移動時間と、を含む条件データを取得するデータ取得部と、需要点の通り方の制約をさらに制約した動的計画法に基づいて、所定のコスト以下で巡回できる経路および重みでの目的関数値の最大値の上界を算出する算出部と、上界に対応する値を整数値に丸め、適宜局所探索法を用いて、経路を探索する探索部と、を備える。
【選択図】 図3
【特許請求の範囲】
【請求項1】
車両の初期位置から需要点をすべて回り、且つ各頂点の遅延コストの最大値を最小にする経路を、列生成法を用いて探索するための経路探索装置であって、
前記車両の初期位置および前記需要点を含む頂点情報と、各頂点に対応する遅延コストが所定のコストに到達するまでの時間、各頂点における仕事時間、および重みを含む地点情報と、前記頂点間の移動時間と、を含む条件データを取得するデータ取得部と、
前記需要点の通り方の制約をさらに制約した動的計画法に基づいて、前記所定のコスト以下で巡回できる経路および前記重みでの目的関数値の最大値の上界を算出する算出部と、
前記上界に対応する値を整数値に丸め、適宜局所探索法を用いて、前記経路を探索する探索部と、
を備える、経路探索装置。
【請求項2】
前記算出部は、前記頂点の通り方の制約を緩和した動的計画法に基づいて、前記所定のコスト以下で巡回できる経路および前記重みでの目的関数値の最大値の下界を算出する請求項1に記載の経路探索装置。
【請求項3】
前記探索された経路と、前記下界との差を取ることにより、前記経路の最適値との誤差を評価する評価部をさらに備える、請求項2に記載の経路探索装置。
【請求項4】
前記頂点の通り方の制約をさらに制約することは、同じ時点で同じ頂点に2台以上の車両が来た場合、その時点での前記目的関数値の最大のものを1つだけ残すという制約をさらに追加することである、請求項1に記載の経路探索装置。
【請求項5】
前記頂点の通り方の制約の緩和することは、同じ頂点を2回通っても良いが連続で同じ頂点を通らないという制約に変更することである、請求項2に記載の経路探索装置。
【請求項6】
前記算出部は、前記車両の位置から次の頂点までの経路を定め、前記定められた経路での目的関数値を算出するという動作を前記所定のコスト以下の間繰り返し、最も値の大きなものを前記目的関数値の最大値として算出する、請求項1に記載の経路探索装置。
【請求項7】
車両の初期位置から需要点をすべて回り、且つ各頂点の遅延コストの最大値を最小にする経路を、列生成法を用いて探索するための経路探索装置が実行する経路探索方法であって、
前記車両の初期位置および前記需要点を含む頂点情報と、各頂点に対応する遅延コストが所定のコストに到達するまでの時間、各頂点における仕事時間、および重みを含む地点情報と、前記頂点間の移動時間と、を含む条件データを取得することと、
前記需要点の通り方の制約をさらに制約した動的計画法に基づいて、前記所定のコスト以下で巡回できる経路および前記重みでの目的関数値の最大値の上界を算出することと、
前記上界に対応する値を整数値に丸め、適宜局所探索法を用いて、前記経路を探索することと、
を備える、経路探索方法。
【請求項8】
車両の初期位置から需要点をすべて回り、且つ各頂点の遅延コストの最大値を最小にする経路を、列生成法を用いて探索するための経路探索プログラムであって、
前記車両の初期位置および前記需要点を含む頂点情報と、各頂点情報に対応する遅延コストが所定のコストに到達するまでの時間、各頂点における仕事時間、および重みを含む地点情報と、前記頂点間の移動時間と、を含む条件データを取得することと、
前記需要点の通り方の制約をさらに制約した動的計画法に基づいて、前記所定のコスト以下で巡回できる経路および前記重みでの目的関数値の最大値の上界を算出することと、
前記上界に対応する値を整数値に丸め、適宜局所探索法を用いて、前記経路を探索することと、
を経路探索装置のプロセッサによって実行させるための命令を備える経路探索プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、経路探索装置、経路探索方法、および経路探索プログラムに関する。
【背景技術】
【0002】
車両による物資の輸送は、現代社会に必要不可欠である。輸送のための最適な経路の探索は、重要な課題である。例えば、災害ときに、車両による電力、水等を含む物資を複数の需要点に供給することが必要な場合、各需要点で物資(電力または水)の枯渇による被害を最小にするような経路探索が必要となる。
【0003】
従来、経路探索をする方法としては、車両の出発点と需要点を頂点とし、地点間の泥を辺とみなすことで離散最低化手法を用いた技術がある。例えば、特許文献1は、需要点を順次挿入していく技術を開示している。さらに、例えば、非特許文献1は、需要点を分割し、巡回セールスマン問題を解く技術を開示している。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2004-333377号公報
【非特許文献】
【0005】
【非特許文献1】伊藤匡志、渡邉真也、榊原一紀著「大規模Vehicle Routing Problemに対する部分問題化と適応的問題統合に基づく新たな探索フレームワークの提案」、進化計算学会論文誌 Vol.6,No.3(2015)
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1では、車両の移動コストや積荷の総重量を最適化することを目的としており、「各需要点の物資枯渇による被害の最大値」(以下、遅延コストと記載する)を最小化する目的では有用でない経路を出力する場合がある。例えば、車両の出発点からは遠いが早急に到達しなければならない需要点が存在した場合、移動コストを最小化する経路探索では遅延コストとしては大きなその点を最後に訪れる経路を出力する。そのため、特許文献1で開示される技術は、遅延コストを最小化することができないという問題がある。
【0007】
また、非特許文献1で開示される手法では、各需要点の重要度および物資が枯渇し始める時刻が影響する遅延コストを最小化するという問題に対してと良い分割を提供できないという問題がある。
【0008】
この発明の課題は、上記事情に着目してなされたもので、その目的とするところは、最大遅延コストを最小化する経路を探索するという問題の最適解に近い解を求めることができる技術を提供することにある。
【課題を解決するための手段】
【0009】
実施形態に係る車両の初期位置から需要点をすべて回り、且つ各頂点の遅延コストの最大値を最小にする経路を、列生成法を用いて探索するための経路探索装置は、前記車両の初期位置および前記需要点を含む頂点情報と、各頂点に対応する遅延コストが所定のコストに到達するまでの時間、各頂点における仕事時間、および重みを含む地点情報と、前記頂点間の移動時間と、を含む条件データを取得するデータ取得部と、前記需要点の通り方の制約をさらに制約した動的計画法に基づいて、前記所定のコスト以下で巡回できる経路および前記重みでの目的関数値の最大値の上界を算出する算出部と、前記上界に対応する値を整数値に丸め、適宜局所探索法を用いて、前記経路を探索する探索部と、を備えるものである。
【発明の効果】
【0010】
この発明の一態様によれば、最大遅延コストを最小化する経路を探索するという問題の最適解に近い解を求めることができる経路探索装置、経路探索方法、および経路探索プログラムを提供することができる。
【図面の簡単な説明】
【0011】
図1図1は、実施形態に係る経路探索装置のハードウェア構成の一例を示すブロック図である。
図2図2は、実施形態における経路探索装置のソフトウェア構成を、図1に示したハードウェア構成に関連付けて示すブロック図である。
図3図3は、本実施形態における目的関数値の下界を算出する処理手順の一例を示すフローチャートである。
図4図4は、下界の算出方法の具体的な処理手順の一例を示すフローチャートである。
図5図5は、上界の算出方法の具体的な処理手順の一例を示すフローチャートである。
図6図6は、各頂点間の移動時間の一例を示した図である。
図7図7は、目的関数値の最大値の下界を算出する場合の一例を示した図である。
図8図8は、目的関数値の最大値の上界を算出する場合の一例を示した図である。
【発明を実施するための形態】
【0012】
以下、図面を参照しながら経路探索装置、経路探索方法、および経路探索プログラムについて詳細に説明する。なお、以下の実施形態では、同一の番号を付した部分については同様の動作を行うものとして、重複する説明を省略する。例えば、複数の同一または類似の要素が存在する場合に、各要素を区別せずに説明するために共通の符号を用いることがあるし、各要素を区別して説明するために当該共通の符号に加えて枝番号を用いることもある。
【0013】
[実施形態]
(目的)
最初に、2次元平面上のD+S個の頂点があり、各頂点をv,i∈{1,...,D+S}と表記する。ここで、DおよびSは、正の整数であるとする。D個の頂点は、車両の初期配置点に対応し、S個の頂点は、需要点に対応する。すなわち、D台の車両がSこの地点を周ることになる。需要点に対応する各v,i∈{1,...,D+S}に対して、電源切断時間d、仕事時間w∈R>0、重要度α∈Z>0、であるとする。ここで、RおよびZは、非負の実数集合である。また、各2頂点v,v,i,j∈{1,...,D+S}に対してその間の移動時間t(v,v)∈R>0であるとする。
【0014】
車両が頂点vで時刻Tに仕事を終えたとき、その頂点の遅延コストc(v)を以下のように定義する。
【0015】
c(v):=max{α(T-d),0}
すなわち、遅延コストは、時刻Tまで各頂点における重要度および電源断時間の関数である。
【0016】
この際、D台の車両が全頂点を周り、且つ各頂点の遅延コストの最大値を最小にするような経路を求めるとする。
【0017】
ここで、この最適化問題の遅延コストがλ以上になるかどうかという実行可能性問題を考慮してみる。ここで、λは、実行可能性問題を考慮する際の任意の遅延コストであって良い。この問題は、集合分割問題として定式化することが可能である。すなわち、経路rに対して対応するベクトルb∈ZS+Dをrが対応する頂点を通る成分は1、それ以外の成分を0のベクトルとして定義する。通過する全頂点がコストλ以下であって、且つ同じ頂点を2度通らない経路に対応するベクトル全体を並べた行列をAλとする。その場合、整数計画問題として、
find x
s.t. Aλx=1
x∈{0,1}
と定式化することができる。
【0018】
この整数計画問題の線形緩和問題
find x
s.t. Aλx=1
0≦x≦1
を列生成法で解く。
【0019】
例えば、λを二分探索しながら反復することにより解くことで得られる値をλL,Pと記載するとする。このλL,Pは、元問題の最適値の下界になる。例えば、元問題の整数計画問題を解けば最適値を取得することができる。しかしながら、上述の方法では、元問題の制約を緩和した問題を解くことになる。そのため、上述の方法で得られる値であるλL,Pは、最適値より良い値、すなわち、元問題の下界となる。
【0020】
列生成法の列を追加する部分は、時空間ネットワーク上の動的計画法により実行される。すなわち、与えられた重みyに対してyを最大化するようなコストλ以下の経路rを、縦軸が各頂点、横軸が時間ステップである表を逐次的に埋めていくことにより、算出することができる。重みyは、各頂点の重みであり、反復ごとに変化値であって良い。より厳密には、重みyは、現在の行列が成す線形計画問題(LP)の双対解であり、双対問題の制約を狭める列ベクトルを見出すための重みである。
【0021】
しかしながら、この算出方法を厳密に実行すると、同じ頂点を2回通らないという制約により、表の各マスに対して今まで通過した頂点の種類ごとの経路についての情報を保持しておく必要がある。そのため、算出までに指数関数時間掛かる場合があり、経路が増えると現実的に算出することが困難になる。そこで、動的計画部分を適切に変更し、maxyの取りうる範囲を上下から抑えることにより、二分化探索後にλL,Pの上界と下界を得るアルゴリズムを説明することが本発明の目的となる。
【0022】
(構成)
図1は、実施形態に係る経路探索装置1のハードウェア構成の一例を示すブロック図である。
経路探索装置1は、入力されたデータを解析して、出力データを生成し出力する、コンピュータである。経路探索装置1は、任意の場所に設置されて良い。経路探索装置1は、例えば、電源車または給水車等が配備される基地局の所定の場所に設置される。
【0023】
図1に示すように、経路探索装置1は、制御部10、プログラム記憶部20、データ記憶部30、通信インタフェース40、および入出力インタフェース50を備える。制御部10、プログラム記憶部20、データ記憶部30、通信インタフェース40、および入出力インタフェース50は、バスを介して互いに通信可能に接続されている。さらに通信インタフェース40は、ネットワークを介して外部装置と通信可能に接続されてよい。また、入出力インタフェース50は、入力装置51および出力装置52と通信可能に接続される
制御部10は、経路探索装置1を制御する。制御部10は、中央処理ユニット(CPU:Central Processing Unit)等のハードウェアプロセッサを備える。例えば、制御部10は、様々なプログラムを実行することが可能な集積回路であっても良い。
【0024】
プログラム記憶部20は、記憶媒体として、例えば、EPROM(Erasable Programmable Read Only Memory)、HDD(Hard Disk Drive)、SSD(Solid State Drive)等の随時書込みおよび読出しが可能な不揮発性メモリと、ROM(Read Only Memory)等の不揮発性メモリとを組み合わせて使用することができる。プログラム記憶部20は、各種処理を実行するために必要なプログラムを格納している。すなわち、制御部10は、プログラム記憶部20に格納されたプログラムを読み出して実行することにより各種制御および動作を実現し得る。
【0025】
データ記憶部30は、記憶媒体として、例えば、HDD、メモリカード等の随時書込みおよび読出しが可能な不揮発性メモリと、RAM(Random Access Memory)等の揮発性メモリとを組み合わせて使用したストレージである。データ記憶部30は、制御部10がプログラムを実行して各種処理を行う過程で取得および生成されたデータを記憶するために用いられる。
【0026】
通信インタフェース40は、1つ以上の有線または無線の通信モジュールを含む。例えば、通信インタフェース40は、ネットワークを介して外部装置と有線または無線接続する通信モジュールを含む。通信インタフェース40は、Wi-Fiアクセスポイントおよび基地局等の外部装置と無線接続する無線通信モジュールを含んでも良い。さらに、通信インタフェース40は、近距離無線技術を利用して外部装置と無線接続するための無線通信モジュールを含んでも良い。すなわち、通信インタフェース40は、制御部10の制御の下、外部装置との間で通信を行い、過去の実績データを含む各種情報を送受信することができるものであれば一般的な通信インタフェースで良い。
【0027】
入出力インタフェース50は、入力装置51および出力装置52等と接続される。入出力インタフェース50は、入力装置51および出力装置52との間で情報の送受信を可能にするインタフェースである。入出力インタフェース50は、通信インタフェース40と一体であってもよい。例えば、経路探索装置1と、入力装置51、または出力装置52の少なくとも1つとは、近距離無線技術等を使用して無線接続されており、当該近距離無線技術を用いて情報の送受信を行ってもよい。
【0028】
入力装置51は、例えば、ユーザが経路探索装置1に対して各種データを入力するためのキーボードやポインティングデバイス等を含む。また、入力装置51は、プログラム記憶部20またはデータ記憶部30に格納するべきデータを、USBメモリ等のメモリ媒体から読み出すためのリーダや、そのようなデータをディスク媒体から読み出すためのディスク装置を含んでも良い。
【0029】
出力装置52は、経路探索装置1から経路探索装置1の管理者に表示すべき映像を表示するディスプレイ等を含む。
【0030】
図2は、実施形態における経路探索装置1のソフトウェア構成を、図1に示したハードウェア構成に関連付けて示すブロック図である。
制御部10は、データ取得部101と、上界・下界算出部102と、解算出部103と、誤差評価部104と、出力制御部105と、を備える。また、データ記憶部30は、データ記憶部301と、処理データ記憶部302と、を備える。
【0031】
データ取得部101は、条件データを取得する。条件データは、車両の初期位置および需要点を含む頂点情報と、各地点それぞれに対応する遅延コストが所定のコスト(λ)に到達するまでの時間、各頂点における仕事時間、および重み情報を含む地点情報と、地点間の移動時間と、を含む。

データ取得部101は、取得した条件をデータ記憶部301に記憶して良い。
【0032】
上界・下界算出部102は、表作成部1021と、経路制御部1022と、目的関数算出部1023と、コスト判定部1024と、をさらに備える。
【0033】
表作成部1021は、データ記憶部301に記憶された条件データに基づいて表を作成する。表は、例えば、各行が各頂点に対応し、各列は、所定間隔の時刻に対応する表で良い。所定間隔の時刻は、例えば、各頂点間の最低移動時間を基準としても良い。そして、表作成部1021は、初期状態として、車両が最初に配置されたマス(頂点)に条件データに基づいた重みの値を入力する。表作成部1021は、作成した表を経路制御部1022に出力する。
【0034】
また、表作成部1021は、移動した頂点に対応するマスに経路と目的関数値を入力する。表作成部1021は、経路制御部1022および目的関数算出部1023から受信した情報に基づいて、移動した頂点に対応するマスに経路と目的関数値を入力して良い。
【0035】
経路制御部1022は、需要点の通り方の制約をさらに制約または緩和した動的計画法に基づいて、車両を任意の経路で移動させる。すなわち、経路制御部1022は、車両を他の頂点に移動させる。経路制御部1022は、移動した頂点についての情報を表作成部1021および目的関数算出部1023に出力する。
【0036】
目的関数算出部1023は、条件データに基づいて移動した頂点での目的関数値を算出する。目的関数算出部1023は、算出した目的関数値を表作成部1021に出力する。
【0037】
コスト判定部1024は、遅延コストがλ以上であるかどうかを判定する。
【0038】
解算出部103は、適宜局所探索法を用いて解を算出する。解算出部103は、上界に対応する値を整数解に丸める。そして、解算出部103は、適宜局所探索法を用いて解を算出する。すなわち、解算出部103は、経路を探索する探索部として動作する。
【0039】
誤差評価部104は、解算出部103が算出した解と、上界・下界算出部102から受信した下界の差を算出する。誤差評価部104は、当該誤差に基づいて元問題の最適値との誤差を評価する。例えば、下界<元問題の最適解のコストであるため、(解算出部103が算出した解のコスト-下界)>(解算出部103が算出した解のコスト-最適解のコスト)となる。すなわち、解算出部103が算出した解と最適解との誤差は、解算出部103が算出した解と下界との差よりも小さい値であると評価することが可能である。
【0040】
(動作)
最初に、下界および上界の算出方法について説明する。
・下界(緩和)の算出方法
元問題では、同じ頂点を2回通らないという制約があったが、下界を算出する際は、近制約の代わりに、2回通って良いが連続で同じ点を通らないという緩和した制約のもとで動的計画法を実行する。この緩和した制約により、今まで通った頂点の情報を記憶する必要がなくなり、単に各マスに1つの経路(直前に通った経路)を保持すれば良い。そのため、動的計画の算出時間は、多項式時間で算出可能となる。問題が緩和する方向に動くため、目的関数値の最大値maxy以上の値が得られることになる。そのため、二分探索実行後は、λL,Pの下界が算出される。
【0041】
例えば、現在の整数計画問題を厳密に解けば、当然、λL,Pの値が厳密に求めることができる。ここで、現在の整数計画問題の制約を緩和すると、λL,Pの下界が取得することができる。λL,Pは、目的関数値の最大値の下界であるため、λL,Pの下界は、目的関数値の最大値の下界の下界、すなわち、目的関数値の最大値の下界となる。ここで、λL,P自体が元問題の最適値の下界であるため、このλL,Pの下界は、元問題の下界として利用することが可能である。
【0042】
・上界(制限)の算出方法
同じ頂点を2回通らないという制約はそのままに、各マスに2個以上の経路が保持される場合、その時点での目的関数値が最大のものを1つだけ残すという制約を新たに加える。この制約により、下界のときと同様に、各マスに1つの経路を保持すれば良い。そのため、動的計画の算出時間は、多項式時間で算出可能となる。探索する経路が狭まるので、目的関数値の最大値maxy以下の値が算出される。二分探索実行後は、λL,Pの上界が算出される。
【0043】
例えば、λL,Pの上界は、目的関数値の最大値の下界の上界となる。そのため、目的関数値の最大値自体との大小関係は定まらない。しかしながら、λL,Pの上界と下界の値が近いか否かにより、緩和の制度を評価することが可能となる。
【0044】
また、経路の制約に変更がないので、線形緩和問題の実行可能解を同時に出力することが可能であり、二分化探索後に算出された値を適当な値に丸めることにより、元問題の実行可能解を取得することが可能となる。
【0045】
(動作)
図3は、本実施形態における目的関数値の下界を算出する処理手順の一例を示すフローチャートである。
経路探索装置1の制御部10がプログラム記憶部20に格納されたプログラムを読み出して実行することにより、このフローチャートの動作が実現される。この動作は、ユーザまたは経路探索装置1の管理者が入力装置51に条件データを入力することにより開始する。または、任意の時刻にデータ記憶部30に記憶された条件データを取得することにより開始しても良い。この場合、以下で説明するステップST101は、省略して良い。
【0046】
ステップST101で、データ取得部101は、条件データを取得する。条件データは、例えば、車両の初期位置および需要点を含む頂点情報、頂点情報それぞれに対応する遅延コストが所定のコスト(λ)に到達するまでの時間、各頂点における仕事時間、および重みを含む地点情報、頂点間の移動時間等を含んで良い。データ取得部101は、取得した条件をデータ記憶部301に記憶して良い。
【0047】
ステップST102で、上界・下界算出部102は、下界を算出する。上界・下界算出部102は、データ記憶部301に記憶された条件データに基づいて下界を算出する。
【0048】
図4は、下界の算出方法の具体的な処理手順の一例を示すフローチャートである。
ステップST201で、表作成部1021は、表を作成する。表作成部1021は、データ記憶部301に記憶された条件データに基づいて表を作成する。表は、例えば、各行が各頂点に対応し、各列は、所定間隔の時刻に対応する表で良い。所定間隔の時刻は、例えば、各頂点間の最低移動時間を基準としても良い。そして、表作成部1021は、初期状態として、車両が最初に配置されたマス(頂点)に条件データに基づいた重みの値を入力する。表作成部1021は、作成した表を経路制御部1022に出力する。
【0049】
ステップST202で、経路制御部1022は、車両を任意の経路で移動させる。経路制御部1022は、同じ頂点を2回通っても良いが連続で同じ点を通らないという制約を守れる任意の経路で車両を移動させる。すなわち、経路制御部1022は、車両を他の頂点に移動させる。経路制御部1022は、移動した頂点についての情報を表作成部1021および目的関数算出部1023に出力する。
【0050】
ステップST203で、目的関数算出部1023は、条件データに基づいて移動した頂点での目的関数を算出する。目的関数算出部1023は、算出した目的関数を表作成部1021に出力する。
【0051】
ステップST204で、表作成部1021は、移動した頂点に対応するマスに経路と目的関数値を入力する。表作成部1021は、経路制御部1022および目的関数算出部1023から受信した情報に基づいて、移動した頂点に対応するマスに経路と目的関数値を入力して良い。
【0052】
ステップST205で、コスト判定部1024は、遅延コストがλ以上であるかどうかを判定する。遅延コストがλ未満であった場合、処理は、ステップST202に戻る。一方、遅延コストがλ以上であった場合、処理は、ステップST206に進む。
【0053】
ステップST206で、表作成部1021は、最大目的関数値を誤差評価部104に出力する。表作成部1021は、最大目的関数値が入力されたマスを検索し、検索された最大目的関数値を下界として、誤差評価部104に出力する。また、表作成部1021は、最大目的関数値を処理データ記憶部302に記憶させて良い。このようにして、上界・下界算出部102は、前記頂点の通り方の制約を緩和した動的計画法に基づいて、コストλ以下で巡回できる経路および重みでの目的関数値の最大値の下界を算出することができる。
【0054】
図3に戻り、ステップST103で、上界・下界算出部102は、上界を算出する。上界・下界算出部102は、データ記憶部301に記憶された条件データに基づいて上界を算出する。
【0055】
図5は、上界の算出方法の具体的な処理手順の一例を示すフローチャートである。
ステップST301~ステップST303は、図4を参照して説明したステップST201~ステップST203と同様の処理で良いため、ここでの重複した説明を省略する。
【0056】
ステップST304で、表作成部1021は、移動した頂点に対応するマスに2つ以上の経路が存在するかどうか判定する。例えば車両が2台以上ある場合、異なる経路をたどって同じ地点に到着する場合がある。表作成部1021は、このような場合があるかどうかを判定することになる。そして、移動した頂点に対応するマスに2つ以上の経路が存在しないと判定した場合、処理はステップST305に進む。一方、移動した頂点に対応するマスに2つ以上の経路が存在すると判定した場合、処理はステップST306に進む。
【0057】
ステップST305で、表作成部1021は、移動した頂点に対応するマスに経路と目的関数を知入力する。表作成部1021は、経路制御部1022および目的関数算出部1023から受信した情報に基づいて、移動した頂点に対応するマスに経路と目的関数値を入力して良い。
【0058】
ステップST306で、表作成部1021は、目的関数算出部1023から受信した目的関数値のうち最大の目的関数値と、その目的関数値に対応する経路を移動した頂点に対応するマスに入力する。すなわち、表作成部1021は、異なる経路で同じ地点に到達した車両が複数あった場合、目的関数値の最大のものを1つだけ残す。
【0059】
ステップST307は、図4を参照して説明したステップST205と同様の処理で良いため、ここでの重複した説明を省略する。
【0060】
ステップST308で、表作成部1021は、最大目的関数値を解算出部103に出力する。表作成部1021は、最大目的関数値が入力されたマスを検索し、検索された最大目的関数値を上界として、解算出部103に出力する。また、表作成部1021は、最大目的関数を処理データ記憶部302に記憶させて良い。このようにして、上界・下界算出部102は、需要点の通り方の制約をさらに制約した動的計画法に基づいて、コストλ以下で巡回できる経路および重みでの目的関数値の最大値の上界を算出することができる。
【0061】
図3に戻って、ステップST104で、解算出部103は、適宜局所探索法を用いて解を算出する。解算出部103は、上界に対応する値を整数解に丸める。そして、解算出部103は、適宜局所探索法を用いて解を算出する。当該解は、元問題の最適解に近い解になる。そして解算出部103は、算出した解を誤差評価部104に出力するとともに、処理データ記憶部302に出力する。
【0062】
ステップST105で、誤差評価部104は、誤差を評価する。誤差評価部104は、解算出部103から受信した解と、上界・下界算出部102から受信した下界の差を算出する。誤差評価部104は、当該誤差に基づいて元問題の最適値との誤差を評価する。そして、誤差評価部104は、評価結果についての情報を処理データ記憶部302に出力する。
【0063】
ステップST106で、出力制御部105は、結果を出力する。出力制御部105は、入出力インタフェース50を通じて、処理データ記憶部302に記憶された上界、下界、解、評価結果等を含む算出結果を出力装置52に出力する。そして、出力制御部105は、当該結果を出力装置52のディスプレイに表示させるように制御して良い。
【0064】
(算出例)
重みをyとし、コストλに対してコストλ以下で巡回できる経路r内での目的関数値yの最大値の上界と下界を算出する具体的な例について説明する。
【0065】
条件データとして、車両の台数は、2台であり、初期地点は、それぞれv,vに配置されるとする。需要点は、3つで、それぞれv,v,vとする。
【0066】
図6は、各頂点間の移動時間の一例を示した図である。
各頂点間の移動時間は、図6に示すようであるとする。なお、この値の単位は、例えば、時間であってよい。
【0067】
また、遅延コストがλに到達する時間をdλ :1,dλ :1.25,dλ :1とし、仕事時間をw=0,w=0,w=0とする。さらに、重みy=(1,2,3,4,5)とする。
【0068】
この条件下での目的関数値yの最大値は、11である。この値の上界と下界を算出する例を説明する。
【0069】
表作成部1021が各頂点に対応する表を用意する。そして、表作成部1021は、車両の初期位置に対応するマスすなわち、vおよびvのマスに重みに対応する値を入力する。
【0070】
そして、経路制御部1022は、現在のマスに対応する頂点から任意の1頂点に車両を移動させる。目的関数算出部1023は、対応する頂点に対する目的関数値を算出する。そして、表作成部1021は、移動した頂点に対応するマスに経路と目的関数値を入力する。これを遅延コストがλに到達するまで繰り返す。
【0071】
図7は、目的関数値の最大値の下界を算出する場合の一例を示した図であり、図8は、目的関数値の最大値の上界を算出する場合の一例を示した図である。
【0072】
下界を算出する際、同じ頂点を2度通っても良いが連続では通らないという制約に緩和して表への入力が行われる。図7に示すように、時刻1.25で同じ頂点を2回通る経路が入力されており、本来の目的関数値の最大値よりも大きな値が算出されることがわかる。
【0073】
また、上界を算出する際、同じ頂点を2回通らないという制約の下で、目的関数値と経路を左から順に表に入力が行われる。図8に示すように、時刻0.75で、目的関数値9の経路v,v,vと、目的関数値11の経路v,v,vが同じマスに入力することになるが、目的関数値の大きい後者のみが残されることになる。
【0074】
(実施形態の作用効果)
以上説明した実施形態によれば、適切に緩和および制限による下界および上界を算出し、上界に対応する値を丸め、局所探索法により解を算出することにより、明らかに大域的最適解から外れた局所最適解に陥ることを防ぎ、且つ、実用上良い解を得ることができる。また、下界との差を取ることにより、元問題の最適値のとの誤差を評価することができる。
【0075】
これにより、例えば、災害ときに、各地点の重要性を加味することにより、被害を少なく抑えて被災地に水または電気を供給する経路を算出することが可能となる。
【0076】
[他の実施形態]
なお、この発明は上記実施形態に限定されるものではない。例えば、経路探索装置1は、上界および下界を求めずに上界のみを求め、解のみを算出しても良い
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0077】
1…経路探索装置
10…制御部
101…データ取得部
102…上界・下界算出部
1021…表作成部
1022…経路制御部
1023…目的関数算出部
1024…コスト判定部
103…解算出部
104…誤差評価部
105…出力制御部
20…プログラム記憶部
30…データ記憶部
301…データ記憶部
302…処理データ記憶部
40…通信インタフェース
50…入出力インタフェース
51…入力装置
52…出力装置
図1
図2
図3
図4
図5
図6
図7
図8