【実施例1】
【0027】
図5は、実施例1に係る経路探索のアルゴリズムを説明するための図である。実施例1に係るアルゴリズムは、複数のエージェントを用いて経路探索を行う点はACOと同様であるが、ACOにおけるフェロモン濃度及びヒューリスティック情報の代わりに、以下に説明する2つのリストを用いる点が異なっている。
【0028】
図5(a)は、ACOのフェロモン濃度マトリクスに代わる第1リストを示す図である。第1リストは、エージェントが探索を終了する度に更新される動的なリストであり、以下の説明においてはDCL(Dynamic Candidate List)と称するものとする。図示するように、全ての地点(1〜6)を一度ずつ訪問する巡回路のうち、現時点での(仮の)最短経路(5→1→4→3→6→2)が判明している。DCLは、この仮の最短経路に基づいて作成され、各地点に対し、上記の経路上において隣接する2つの地点が並べられている。例えば、地点3において、経路上で隣接する地点は1と6であり、これらはインデックス番号0及び1に対応する位置にそれぞれ収納されている。
【0029】
ここで、実施例1に係る経路探索のアルゴリズムでは、複数のエージェントを用いた経路探索を複数回実行することにより、最良解(最短経路)の探索を行う。以下、複数のエージェントを用いた1回ごとの探索における最良解をiteration best(ib)、それまでの全ての探索結果から得られた現時点での最良解をglobal best(gb)と称する。前段落の「仮の最短経路」には、上記のiteration bestまたはglobal bestのいずれを採用してもよい。換言すれば、DCLの生成には、iteration bestまたはglobal bestのいずれを用いてもよい。
【0030】
図5(b)は、ACOのヒューリスティック情報に代わる第2リストを示す図である。第2リストは、経路探索の開始時に生成される静的なリストであり、DCLと異なり経路探索中における更新は行われない。以下の説明では、第2リストをSCL(Static Candidate List)と称するものとする。SCLは、各地点に対し、他の地点を距離の近い順に並べたリストであり、インデックス番号が小さい上位の地点ほど、地点間の距離が小さくなっている。例えば、地点1に対し、距離の近い地点は「5→4→3→2→6」の順であり、SCLのリストもこの順序でリストの上位(左)側から順に収納されている。
【0031】
図6は、実際の経路探索における目的地決定のために使用される目的地リストを示す概念図である。後述する目的地決定のステップでは、
図5(a)のDCL及び
図5(b)のSCLの2つのリストに基づき目的地が決定されるが、
図6に示す目的地リストは、説明の便宜のために2つのリストを合体させて表示したものであり、実際の実装方法とは必ずしも一致しない。後述するように、DCLとSCLとでは、DCLの方が優先的に参照される。このため、SCLに含まれる地点のうち、DCLに含まれる地点と重複するものは、目的地の候補から外されている(斜線で図示)。また、後述するように、既にエージェントが一度訪問した地点も、同様に目的地の候補から外される。
図6の合成リストに含まれる地点のうち、斜線で塗りつぶされていない地点は、目的地選択の際の候補となりうる地点である。
【0032】
実施例1では、ACOの改良アルゴリズムを経路探索機能として電子装置に搭載した例について説明する。このような電子装置としては、例えば、経路探索機能を備えた各種の電子装置(カーナビゲーション装置、携帯電話(スマートフォン含む)、PC(Personal Computer)、腕時計等)が考えられる。また、実施例1に係る経路探索機能は、上記の他にも、ネットワークの設計装置、半導体装置の回路パターン設計装置、遺伝子情報の解析装置等の様々な電子装置に実装することができる。
【0033】
図7は、実施例1に係る電子装置のハードウェアブロック図である。図示するように、CPU10(Central Processing Unit)、メモリ12、入力部14、及び出力部16が、バス18により互いに接続されている。
【0034】
CPU10及びメモリ12は、経路探索の計算を行うためのハードウェアの一例である。入力部14は、ユーザがデータの入力を行うためのインターフェースであり、例えばマウス・キーボードのような入力装置の他、タッチパネル、ボタン等の入力インターフェースを用いることができる。入力部14は、機械的な操作以外の方法(例えば、音声入力等)で、データの入力を行う構成であってもよい。出力部16は、データの出力を行うためのインターフェースであり、例えばディスプレイ等の表示装置、スピーカ等による音声出力装置等、ユーザに対しデータの出力を行う構成を採用することができる。また、出力部16は、経路探索により得られたデータを利用する他の電子装置に対して出力を行う構成であってもよい。
【0035】
図8は、実施例1に係る電子装置の機能ブロック図である。電子装置における主な機能としては、経路探索を行う探索手段20、第1リスト(DCL)を保持する第1保持手段としてのDCL保持手段30、第2リスト(SCL)を保持する第2保持手段としてのSCL保持手段32、探索結果を出力する出力手段34等がある。DCL保持手段30には、DCLの更新を行うための更新手段36が接続され、SCL保持手段32には、SCLの生成を行うためのSCL生成手段38が接続されている。更新手段36には、探索開始時における初期解を生成するための初期解生成手段40が更に接続されている。
【0036】
探索手段20は、探索のためのエージェントを配置する配置手段21、エージェントが次に訪れる地点(目的地)の決定を行う決定手段22、エージェントを当該目的地に移動させる移動手段23を含む。決定手段22は、更に、条件分岐に応じて異なる方法により目的地の決定を行う第1判定手段24〜第3判定手段26を含む。DCLを保持するDCL保持手段30の出力は、第1判定手段24及び第2判定手段25に入力され、SCLを保持するSCL保持手段32の出力は、第3判定手段26に入力されている。
【0037】
配置手段21及び移動手段23における演算結果は、それぞれ記憶手段50に入力される。記憶手段50には、エージェントの移動距離を算出する移動距離算出手段52の他、出力手段34及び更新手段36がそれぞれ接続されている。記憶手段50は、エージェントが辿った経路を示す経路情報の他、移動距離算出手段52により算出された経路の移動距離(評価値)等を記憶する。更新手段36は、記憶手段50に記憶された経路のうち最も評価値の良い(仮の)最短経路に基づいて、DCLの更新を行う。出力手段34は、記憶手段50に記憶された経路のうち(最終的な)最短経路を出力する。
【0038】
図8に示す機能ブロックのうち、出力手段34は
図7の出力部16により実現することができ、DCL保持手段30、SCL保持手段32、及び記憶手段50は、それぞれ
図7のメモリ12により実現することができる。その他の機能ブロックは、それぞれ
図7のCPU10及びメモリ12により実現することができる。
【0039】
図9は、実施例1に係る電子装置の動作を示すフローチャートである。経路探索のためのデータとして、地点の数、地点間の距離、エージェントの数、後述の制御パラメータPs、試行回数、探索の終了条件等のデータが予め入力されている。最初に、初期解生成手段40が、DCLを生成する前提となる初期経路(解)の生成を行う(ステップS30)。初期解はあくまでも仮の最良解であるため、例えば最近傍(Nearset Neighbor)法やランダム生成等の任意の方法により生成することができる。
【0040】
次に、SCL生成手段38が、地点間の距離データに基づいて、SCLの生成を行う(ステップS32)。次に、更新手段36が、ステップS30で生成された初期解に基づいて、DCLの更新(生成)を行う(ステップS34)。生成されたDCL及びSCLは、それぞれDCL保持手段30及びSCL保持手段32により保持される。
【0041】
次に、探索手段20が、エージェントによる経路(解)の探索を実行する(ステップS36)。このステップについては、
図10にて詳細に説明する。次に、移動距離算出手段52が、ステップ36で求められた経路に基づいて、移動距離の算出を行う(ステップS38)。移動距離算出手段52は、更に、複数のエージェントの探索ごとに求められた経路の移動距離に基づいて、最短経路の算出を行う(ステップS40)。ここで、ステップS40では、その回の探索における最短経路(iteration best)と、それまでの全ての探索における最短経路(global best)の両方が算出される。
【0042】
次に、探索手段20が、探索の終了条件を満たしたか否かの判定を行う(ステップS42)。終了条件が満たされていれば、出力手段34が、記憶手段50に記憶された経路のうち、最短経路の出力を行う(ステップS44)。終了条件が満たされていない場合は、ステップS34の前段に戻り、終了条件が満たされるまで、DCLの更新及び経路探索のステップを繰り返す。ここで、DCLの更新は、ステップS40において求められた最短経路に基づき、更新手段36により行われる。
【0043】
ここで、前述したように、DCLが保持する「仮の最短経路」には、iteration bestまたはglobal bestのいずれかを採用することができる。iteration bestを採用する場合、ステップS34におけるDCLの更新では、探索が終了する度にDCLが必ず更新され、前回の探索における最良解(iteration best)に基づきDCLが生成される。一方、global bestを採用する場合、前回の探索で得られた最良解(iteration best)がそれまでに発見された最良解(global best)よりも良いものであれば、当該iteration bestが新たなglobal bestとなるため、DCLが更新される。しかし、そうでない場合には、DCLの更新は行われない。
【0044】
DCLをglobal bestに基づき更新する場合、探索の集中化が進む。一方、DCLをiteration bestに基づき更新する場合、探索の多様化が進む。実施例1に係る経路探索アルゴリズムでは、集中化と多様化をうまくバランスすることにより、より良い解を発見することができるため、上記のDCLの更新方法も、場合に応じて適切に使い分けることが好ましい。
【0045】
図10は、
図9のステップ36における、探索手段20による経路探索の手順を示すフローチャートである。最初に、配置手段21が、複数の地点のうち一の地点にエージェントを配置する(ステップS50)。次に、探索手段20は、エージェントが未訪問の地点があるか否かを判定する(ステップS52)。未訪問の地点がある場合、決定手段22が、次の目的地の決定を行う(ステップS54)。このステップについては、
図11にて詳細に説明する。次に、移動手段23が、決定手段22の決定した目的地にエージェントを移動する(ステップS56)。移動手段23は、記憶手段50に記憶されている経路情報(今回の探索でエージェントが辿った途中経路を示す情報)を更新する(ステップS58)。
【0046】
ステップS58が終了すると、ステップS52の前段に戻り、再び未訪問地点が残っているか否かの判定が行われる。ステップS52にて未訪問の地点がなくなった場合、探索手段20は、エージェントによる経路の探索を終了する。探索手段20は、予め与えられたエージェントの数だけ、
図10の探索ステップを実行する。これにより、複数のエージェントのそれぞれについて、巡回経路の探索が完了する。
【0047】
図11は、
図10のステップS54における、決定手段22による目的地決定の手順を示すフローチャートである。最初に、決定手段22が、現在地に対応するDCL(第1リスト)上の地点が2つとも未訪問であるか否かを判定する(ステップS60)。DCL上の地点が2つとも未訪問の場合、第1判定手段24は、当該2つの地点のうちいずれか1つを候補地点として選択し(ステップS62)、当該候補地点をエージェントの次の目的地とするか否かの判定を行う(ステップS64)。ステップS62における候補地点の選択では、例えば2つの地点のいずれかを0.5の確率により選択する構成とすることができる。
【0048】
ここで、ステップS64の判定は、例えば、所定範囲の乱数(例えば、0<rand<1)を発生させ、当該乱数(rand)を制御パラメータPs(0<Ps<1)と比較する確率判定により行うことができる。実施例1では、乱数(rand)がPsより小さい場合に、第1判定手段24が、ステップS62で選択されたDCL上の候補地点を次の目的地として決定する。ステップS64においてNOと判定された場合は、SCLに基づく目的地選択のステップ(S72以降)へと移行する。
【0049】
ステップS60においてNOと判定された場合、決定手段22は、現在地に対応するDCLの地点が1つだけ未訪問であるか否かを判定する(ステップS68)。DCLの地点が1つだけ未訪問の場合、第2判定手段25は、当該未訪問の地点を目的地の候補地点として選択し(ステップS70)、当該候補地点をエージェントの次の目的地とするか否かの判定を行う(ステップS64)。ステップS64の判定ステップは、第1判定手段24による判定ステップと同様である。
【0050】
ステップS60及びS68においていずれもNOと判定された場合(DCL上の地点が2つとも訪問済みの場合)、またはステップS64においてNOと判定された場合(DCL上の候補地点が目的地として選択されなかった場合)、SCLに基づく目的地の選択が行われる。最初に、第3判定手段26が、SCL上に候補地点が残ってないかどうかを判定する(ステップS72)。SCL上に候補地点が残っていない場合は、ステップS60の前段に戻り、DCL上の残りの候補地点の中から、次に目的地の選択を行う。
【0051】
ステップS72においてNOと判定された場合、第3判定手段26は、SCL上に残された候補地点のうち最上位の地点(現在地に最も近い地点)を、エージェントの次の目的地とするか否かの判定を行う(ステップS76)。ここで、ステップS78における判定は、ステップS64の場合と同様に、制御パラメータPsを乱数(rand)と比較する確率判定により行うことができる。本実施例では、randがPsより小さい場合に、第3判定手段26が、SCLの最上位地点を目的地として決定する(ステップS74)。ステップS78においてNOと判定された場合、第3判定手段26は、SCLの最上位の地点を目的地の候補から削除し、ステップS72の前段へと戻る。ステップS72〜S78は、SCLに基づき目的地が決定されるか、SCL上の候補地点がなくなるまで繰り返される。
【0052】
図12及び
図13は、経路探索の状態遷移を示す図である。それぞれの図において、左側に地点及びエージェントの現在位置が、右側に目的地リスト(DCL及びSCL)並びに経路情報が、それぞれ示されている。本実施例では、地点の数(n)をn=6とした場合を例に説明を行う。図の左上に示す「t」は、探索開始からの経過時間(ステップ数)に対応する。
【0053】
最初に、
図12(a)に示すように、t=1においてエージェントkが地点「5」に配置されている。このとき、次の目的地の候補となる地点は、「1,2,3,4,6」のいずれかである。DCLを参照すると、地点番号「5」に対応する地点「1,2」はいずれも未訪問である。従って、最初に第1判定手段24によるDCLに基づく判定処理(
図11のステップS60〜S66)が行われ、目的地が決定されなかった場合に、第3判定手段26によるSCLに基づく判定処理(ステップS72〜78)が行われる。
【0054】
上記の判定処理の結果、DCLに含まれる地点「1」が目的地として選択されたため、t=2では
図12(b)に示すように、エージェントkが地点「1」に位置している。このとき、次の目的地の候補となる地点は、「2,3,4,6」のいずれかである。DCLを参照すると、地点番号「1」に対応する地点のうち「3」のみが未訪問となっている。従って、最初に第2判定手段25によるDCLに基づく判定処理(
図11のステップS68、S70、S64、S66)が行われ、目的地が決定されなかった場合に、第3判定手段26によるSCLに基づく判定処理(ステップS72〜78)が行われる。
【0055】
上記の判定処理の結果、SCLに含まれる地点「4」が目的地として選択されたため、t=3では
図12(c)に示すように、エージェントkが地点「4」に位置している。このとき、次の目的地の候補となる地点は、「2,3,6」のいずれかである。DCLを参照すると、地点番号「4」に対応する地点「2,6」はいずれも未訪問である。従って、最初に第1判定手段24によるDCLに基づく判定処理(
図11のステップS60〜S66)が行われ、目的地が決定されなかった場合に、第3判定手段26によるSCLに基づく判定処理(ステップS72〜78)が行われる。
【0056】
上記の判定処理の結果、SCLに含まれる地点「3」が目的地として選択されたため、t=4では
図13(a)に示すように、エージェントkが地点「3」に位置している。このとき、次の目的地の候補となる地点は、「2,6」のいずれかである。DCLを参照すると、地点番号「3」に対応する地点のうち「6」のみが未訪問となっている。従って、最初に第2判定手段25によるDCLに基づく判定処理(
図11のステップS68、S70、S64、S66)が行われ、目的地が決定されなかった場合に、第3判定手段26によるSCLに基づく判定処理(ステップS72〜78)が行われる。
【0057】
上記の判定処理の結果、DCLに含まれる地点「6」が目的地として選択されたため、t=5では
図13(b)に示すように、エージェントkが地点「6」に位置している。このとき、次の目的地の候補となる地点は、「2」のみである。従って、当該地点「2」が、次の目的地として決定される。
【0058】
図13(c)は、エージェントkが最後の訪問地点である「2」に移動した状態を示す図である。ここで、未訪問の地点数は0となるため、
図10のステップS52においてNOと判定され、当該エージェントkによる探索処理が終了する。このように、エージェントによる探索は、上記と同様の方法でエージェントの数(m)に対応する回数だけ実行され、全てのエージェント(1〜m)による探索が完了した時点で、DCLの更新が行われる。
【0059】
図14及び
図15は、実施例1に係る経路探索の具体的なアルゴリズムである。
図14は全体のアルゴリズムを記述したものであり、
図15はエージェントによる経路探索ステップ(
図9のステップS36)に係るアルゴリズムを記述したものである。
【0060】
次に、実施例1に係る経路探索方法(以下、「LAS:List-based Ant System」と称する)を、他のACOアルゴリズムと比較した実験結果について説明する。
【0061】
図16は、ACOの派生的なアルゴリズムとして一般的に知られている4つのアルゴリズム(cAS、MMAS、MMAS+pts、ACS)と、実施例1に係るLASとの対比を、解の評価値の平均及び最良評価値との誤差について行った結果を示す表である。最良の評価値は、予め解析的に算出されたものであり、アルゴリズムの性能を評価する上でのベンチマークとなるものである。最良評価値との誤差は、解の評価値の平均と上記のベンチマークとの差である。
【0062】
実験の条件として、LASの各パラメータは、エージェント数をm=10、SCLの長さをn
l=nとし、制御パラメータPsについては、0.90〜0.99の範囲から予備的な実験において最も解の値が良かったものを採用した。DCLの初期解はNearest Neighbor法により算出した。試行回数は、比較例のデータにつきそれぞれ25回、LASについては50回とした。また、計算に使用するCPUにはInter Core2(登録商標)の3.00GHzを用いた。
【0063】
図示するように、実験番号1(地点数n=51)の実験結果では、LASは評価値及び誤差の点でcASには劣るものの、その他のアルゴリズムに対しては両者において優れた結果となった。実験番号5(地点数n=100)の実験結果では、LASは評価値及び誤差の両方においてcASと同等であり、その他のアルゴリズムに対しては両者において優れた結果となった。実験番号15(地点数n=198)の実験結果では、LASは評価値及び誤差の両方において、他の全てのアルゴリズムに対して優れた結果となった。以上のように、実施例1に係る経路探索方法(LAS)は、一般的なACOアルゴリズムに比べ、同等かそれ以上の解の探索精度を備えていることが分かる。
【0064】
図17は、ACOアルゴリズムのうちMMASについて、更にLASとの詳細な比較を行った結果を示す表である。比較項目としては、
図16で示したものと同じ最適解との誤差に加え、最適解の発見回数及び計算にかかった時間(アルゴリズムの実行時間)を示している。
【0065】
図示するように、誤差及び実行時間については、全ての実験番号においてLASがMMASより優れた結果を示している。また、最適解の発見回数についても、ほぼ全ての実験番号において、LASがMMASより優れた結果を示している。このように、実施例1に係る実施例1に係る経路探索方法(LAS)は、解の探索精度だけでなく、計算時間の点からも優れたアルゴリズムであることが分かる。
【0066】
更に、実施例1に係る経路探索方法(LAS)によれば、ACOで使用されるフェロモン濃度のマトリクスに代えて、DCLを用いている。換言すれば、ACOのように全ての地点間のフェロモン量を記憶するのではなく、記憶すべきフェロモンの堆積位置を現時点での最良巡回路上に限定している。これにより、経路探索において保持すべきデータ構造の量を、大幅に削減することに成功している。例えば、フェロモン濃度のマトリクスでは、n×nのサイズのデータ構造が必要となり、フェロモン濃度を更新するたびにO(n
2)のオーダーの計算を行う必要がある。
【0067】
これに対し、実施例1で用いられるDCLのデータ構造の大きさは2×nであり、DCLを更新するたびに必要な計算量のオーダーはO(n)である。その結果、実施例1に係る経路探索方法(LAS)によれば、計算に必要なメモリ領域を大幅に削減することができると共に、計算速度を大幅に向上させることができる。また、上記のようにメモリ領域を削減することが可能であることから、実施例1に係る経路探索機能(LAS)を、より小型の電子装置(例えば、携帯電話、腕時計等)に実装することが容易となる。
【0068】
実施例1では、目的地を決定するための判定ステップ(
図11のステップS64、S76)における比較対象として、制御パラメータPsを用いた。この制御パラメータPsは、探索の集中化と多様化を決定するための、「Selection Probability」と称される重要なパラメータである。Psは、探索の問題ごとに、探索結果(解)が最良となるように決定することが望ましい。
【0069】
図18は、
図17で挙げた経路探索問題の各サンプルにつき、最良な解が発見された際のPsの値を示す表である。探索の集中化と多様化のバランスを最良なものとするためには、Psの値の範囲を例えば0.9〜0.99(すなわち、
図11のステップS64及びS76において、候補地点が0.9以上0.99以下の確率で目的地として選択されること)とすることが好ましい。
【0070】
なお、LASのアルゴリズムを説明する
図9〜
図11においては、「エージェント」「地点」等の抽象的な文言を用いているが、LASアルゴリズムによる経路探索機能を具体的な電子装置に実装した場合、これらは具体的な文言で置き換えることが可能である。例えば、経路案内の機能を備えた電子装置(カーナビゲーション、携帯電話等)であれば、「地点」とは目的地及び経由地点を意味し、「エージェント」とは目的地に向かって移動する移動体(例えば、車・人等)を意味する。
【0071】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。