(57)【特許請求の範囲】
【請求項１】
複数のエージェントに対し、複数の地点を一度ずつ訪問して元の地点に戻る経路の探索を行わせる探索手段と、
前記複数の地点の各地点に対し、現時点における仮の最短経路上の隣接する２つの地点を並べた第１リストを保持する第１保持手段と、
前記複数の地点の各地点に対し、他の地点を距離の近い順に並べた第２リストを保持する第２保持手段と、
前記複数のエージェントによる探索が終了する毎に、当該探索の結果に基づいて前記第１リストを更新する更新手段と、
前記探索手段により得られた経路のうち、最短距離の経路を出力する出力手段と、を備え、
前記探索手段は、
前記複数の地点のいずれかにエージェントを配置する配置手段と、
前記第１リスト及び前記第２リストに基づいて、前記エージェントの次の目的地を決定する決定手段と、
前記エージェントを次の目的地に移動する移動手段と、を含むことを特徴とする電子装置。
【請求項２】
前記決定手段は、
現在地に対応する第１リスト上の地点が２つとも未訪問の場合、当該２つの地点のうちいずれか１つの地点に対し、当該地点を目的地として選択するか否かの判定を行う第１判定手段と、
現在地に対応する第１リスト上の地点が１つのみ未訪問の場合、当該未訪問の地点に対し、当該地点を目的地として選択するか否かの判定を行う第２判定手段と、
現在地に対応する第１リスト上の地点が２つとも訪問済みの場合、並びに前記第１判定手段または前記第２判定手段において第１リスト上の地点が目的地として選択されなかった場合に、現在地に対応する第２リスト上の上位の地点から順に、当該地点を目的地として選択するか否かの判定を行う第３判定手段と、
を含むことを特徴とする請求項１に記載の電子装置。
【請求項３】
前記第１判定手段、前記第２判定手段、及び前記第３判定手段は、判定の対象とされた地点を、予め定められた確率で目的地として選択することを特徴とする請求項２に記載の電子装置。
【請求項４】
前記確率は、０．９以上０．９９以下であることを特徴とする請求項３に記載の電子装置。
【請求項５】
前記第１判定手段は、前記第１リスト上における２つの地点のいずれかを、０．５の確率で選択することを特徴とする請求項２に記載の電子装置。
【請求項６】
コンピュータを、
複数のエージェントに対し、複数の地点を一度ずつ訪問して元の地点に戻る経路の探索を行わせる探索手段、
前記複数の地点の各地点に対し、現時点における仮の最短経路上の隣接する２つの地点を並べた第１リストを保持する第１保持手段、
前記複数の地点の各地点に対し、他の地点を距離の近い順に並べた第２リストを保持する第２保持手段、
前記複数のエージェントによる探索が終了する毎に、当該探索の結果に基づいて前記第１リストを更新する更新手段、
前記探索手段により得られた経路のうち、最短距離の経路を出力する出力手段、として機能させるためのプログラムであって、
前記探索手段は、
前記複数の地点のいずれかにエージェントを配置する配置手段と、
前記第１リスト及び前記第２リストに基づいて、前記エージェントの次の目的地を決定する決定手段と、
前記エージェントを次の目的地に移動する移動手段と、
を含むことを特徴とするプログラム。
【請求項７】
探索手段が、複数の地点を一度ずつ訪問して元の地点に戻る経路の探索を、複数のエージェントに対し行わせるステップと、
更新手段が、前記複数のエージェントによる探索が終了する毎に、前記複数のエージェントの辿った経路に基づいて前記複数の地点の各地点に対し現時点における仮の最短経路上の隣接する２つの地点を並べた第１リストを更新するステップと、
出力手段が、探索により得られた経路のうち、最短距離の経路を出力するステップと、
を有する経路探索方法であって、
前記探索手段が、前記複数のエージェントに対し経路の探索を行わせるステップは、
配置手段が、前記複数の地点のいずれかに前記複数のエージェントを配置するステップと、
決定手段が、前記第１リストと、前記複数の地点の各地点に対し他の地点を距離の近い順に並べた第２リストに基づいて、前記複数のエージェントの次の目的地を決定するステップと、
移動手段が、決定された目的地に前記複数のエージェントを移動するステップと、
を含むことを特徴とする経路探索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、経路探索機能を備えた電子装置及びその制御プログラムに関する。
【背景技術】
【０００２】
経路探索問題として、複数の地点を一度ずつ訪問して元の地点に戻る巡回路のうち、最短距離の経路を求める問題（いわゆる巡回セールスマン問題（ＴＳＰ：Traveling Salesman Problem）が知られている。ＴＳＰは、例えばカーナビゲーションを始めとする各種の経路案内装置の他、マイクロチップの組立工程、ネットワーク設計、ゲノム探索等様々な技術分野に応用されている。
【０００３】
ＴＳＰでは、地点の数が大きくなるにつれ、計算量が大幅に増大する。このため、経路探索のアルゴリズムとして、最適解を厳密解法により一義的に求める手法の他に、複数のエージェントを用いた試行錯誤により、最適解を近似的に求める各種のアルゴリズム（例えば、遺伝的アルゴリズム）が提案されている。このような近似的な解の算出アルゴリズムとして、ＡＣＯ（Ant Colony Optimization：蟻コロニー最適化）アルゴリズムが知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００８−５１８３５９号公法
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来のＡＣＯアルゴリズムでは、全ての地点間におけるフェロモン濃度を記憶したデータ構造（フェロモン濃度マトリクス）を用い、エージェントによる経路探索が終了する毎にフェロモン濃度の更新を行っている。このため、計算に必要なメモリ領域が増加し、ＡＣＯを用いた探索機能を小型の電子機器に組み込むことが難しい等の課題があった。
【０００６】
本発明は、上記の課題に鑑みなされたものであり、経路探索機能を備えた電子装置において、高精度且つ高速な経路探索を行いつつ、計算に必要なメモリの使用量を大幅に低減することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、複数のエージェントに対し、複数の地点を一度ずつ訪問して元の地点に戻る経路の探索を行わせる探索手段と、前記複数の地点の各地点に対し、現時点における仮の最短経路上の隣接する２つの地点を並べた第１リストを保持する第１保持手段と、前記複数の地点の各地点に対し、他の地点を距離の近い順に並べた第２リストを保持する第２保持手段と、前記複数のエージェントによる探索が終了する毎に、当該探索の結果に基づいて前記第１リストを更新する更新手段と、前記探索手段により得られた経路のうち、最短距離の経路を出力する出力手段と、を備え、前記探索手段は、前記複数の地点のいずれかにエージェントを配置する配置手段と、前記第１リスト及び前記第２リストに基づいて、前記エージェントの次の目的地を決定する決定手段と、前記エージェントを次の目的地に移動する移動手段と、を含むことを特徴とする電子装置である。
【０００８】
上記構成において、前記決定手段は、現在地に対応する第１リスト上の地点が２つとも未訪問の場合、当該２つの地点のうちいずれか１つの地点に対し、当該地点を目的地として選択するか否かの判定を行う第１判定手段と、現在地に対応する第１リスト上の地点が１つのみ未訪問の場合、当該未訪問の地点に対し、当該地点を目的地として選択するか否かの判定を行う第２判定手段と、現在地に対応する第１リスト上の地点が２つとも訪問済みの場合、並びに前記第１判定手段または前記第２判定手段において第１リスト上の地点が目的地として選択されなかった場合に、現在地に対応する第２リスト上の上位の地点から順に、当該地点を目的地として選択するか否かの判定を行う第３判定手段と、を含む構成とすることができる。
【０００９】
上記構成において、前記第１判定手段、前記第２判定手段、及び前記第３判定手段は、判定の対称とされた地点を、予め定められた確率で目的地として選択する構成とすることができる。
【００１０】
上記構成において、前記確率は、０．９以上０．９９以下である構成とすることができる。
【００１１】
上記構成において、前記第１判定手段は、前記第１リスト上における２つの地点のいずれかを、０．５の確率で選択する構成とすることができる。
【００１２】
本発明は、コンピュータを、複数のエージェントに対し、複数の地点を一度ずつ訪問して元の地点に戻る経路の探索を行わせる探索手段、前記複数の地点の各地点に対し、現時点における仮の最短経路上の隣接する２つの地点を並べた第１リストを保持する第１保持手段、前記複数の地点の各地点に対し、他の地点を距離の近い順に並べた第２リストを保持する第２保持手段、前記複数のエージェントによる探索が終了する毎に、当該探索の結果に基づいて前記第１リストを更新する更新手段、前記探索手段により得られた経路のうち、最短距離の経路を出力する出力手段、として機能させるためのプログラムであって、前記探索手段は、前記複数の地点のいずれかにエージェントを配置する配置手段と、前記第１リスト及び前記第２リストに基づいて、前記エージェントの次の目的地を決定する決定手段と、前記エージェントを次の目的地に移動する移動手段と、を含むことを特徴とするプログラムである。
【００１３】
本発明は、探索手段が、複数の地点を一度ずつ訪問して元の地点に戻る経路の探索を、複数のエージェントに対し行わせるステップと、更新手段が、前記複数のエージェントによる探索が終了する毎に、前記複数のエージェントの辿った経路に基づいて前記複数の地点の各地点に対し現時点における仮の最短経路上の隣接する２つの地点を並べた第１リストを更新するステップと、出力手段が、探索により得られた経路のうち、最短距離の経路を出力するステップと、を有する経路探索方法であって、前記探索手段が、前記複数のエージェントに対し経路の探索を行わせるステップは、配置手段が、前記複数の地点のいずれかに前記複数のエージェントを配置するステップと、決定手段が、前記第１リストと、前記複数の地点の各地点に対し他の地点を距離の近い順に並べた第２リストに基づいて、前記複数のエージェントの次の目的地を決定するステップと、移動手段が、決定された目的地に前記複数のエージェントを移動するステップと、を含むことを特徴とする経路探索方法である。
【発明の効果】
【００１４】
本発明によれば、経路探索機能を備えた電子装置において、高精度且つ高速な経路探索を行いつつ、計算に必要なメモリの使用量を大幅に低減することができる。
【図面の簡単な説明】
【００１５】
【図１】巡回セールスマン問題（ＴＳＰ）を説明するための概念図である。
【図２】ＴＳＰを解析的手法で解いた場合にかかる時間を示す表である。
【図３】ＡＣＯアルゴリズムを説明するための概念図である。
【図４】ＡＣＯの計算手順を示すフローチャートである。
【図５】実施例１に係る経路探索方法（ＬＡＳ）の概要を説明するための図（その１）である。
【図６】ＬＡＳの概要を説明するための図（その２）である。
【図７】実施例１に係る電子装置のハードウェア図である。
【図８】実施例１に係る電子装置の機能ブロック図である。
【図９】ＬＡＳの計算手順を示すフローチャート（その１）である。
【図１０】ＬＡＳの計算手順を示すフローチャート（その２）である。
【図１１】ＬＡＳの計算手順を示すフローチャート（その３）である。
【図１２】計算の途中経過を示す状態図（その１）である。
【図１３】計算の途中経過を示す状態図（その２）である。
【図１４】ＬＡＳの全体アルゴリズムである。
【図１５】エージェントによる経路探索部分のアルゴリズムである。
【図１６】ＬＡＳと他のＡＣＯアルゴリズムの比較結果（その１）である。
【図１７】ＬＡＳと他のＡＣＯアルゴリズムの比較結果（その２）である。
【図１８】制御パラメータＰｓのうち、好ましい値を示す表である。
【発明を実施するための形態】
【００１６】
最初に、経路探索問題の詳細及び比較例に係る経路探索方法について説明する。
【００１７】
図１は、経路探索問題の１つであるＴＳＰ（Traveling Salesman Problem：巡回セールスマン問題）を説明するための概念図である。ＴＳＰとは、複数の地点（都市、建物等）を１度ずつ訪問して元の地点に戻るための経路（巡回路）のうち、最も移動距離の少ない最短経路を求める問題である。ＴＳＰは、例えばカーナビゲーションを始めとする各種の経路案内装置の他、マイクロチップの組立工程、ネットワーク設計、ゲノム探索等様々な技術分野に応用されている。図１（ａ）〜（ｃ）は、７つのノード（地点）を順に訪問する場合のＴＳＰを示す概念図であるが、図示するように様々な経路を辿ることが考えられる。ＴＳＰにおいて、考えられる全ての経路（巡回路）の数（ｘ）は、訪問する地点の数をＮとした場合に、次の式により算出される。
【数１】
0005967416.tif 000002
【００１８】
図２は、所定数の地点が与えられた場合の、考えられる全ての経路（巡回路）の数及びその計算にかかる時間を示す表である。計算時間は、１つの巡回路につき１．０×１０−６秒かかるものとする。図示するように、地点の数が少ないうちは、計算にかかる時間もわずかである。従って、全ての経路を求めた上で個々の経路の移動距離（評価値）を算出し、その中で最も良い評価値の経路を抽出する方法で、最短経路を容易に求めることができる。しかし、地点の数が多くなるにつれ、計算にかかる時間は飛躍的に大きくなり、上記の解析的手法による最短経路の探索が困難になってしまう。例えば、地点数が２０の場合の計算時間は１９２９年となっており、この場合に上記の探索方法を採用することは現実的ではない。
【００１９】
図３は、ＡＣＯ（Ant Colony Optimization：蟻コロニー最適化）アルゴリズムの概念を説明するための図である。ＡＣＯアルゴリズムは、自然界のアリのフェロモンコミュニケーションに着想を得た、組合せ最適化問題に対する近似アルゴリズムである。ＡＣＯにおいては、ある地点（ｉ）に存在するエージェントｋが、他の地点（ｊ）を目的地として選択する確率は、地点間のフェロモンτの濃度（τｉｊ）及びヒューリスティック情報（ηｉｊ）に基づき、以下の式により算出される。
【数２】
0005967416.tif 000003
【００２０】
ここで、式中のパラメータα及びβは、目的地の選択に際しフェロモン濃度（τｉｊ）及びヒューリスティック情報（ηｉｊ）のいずれを優先するかを調節するパラメータである。これらのパラメータを調節することにより、経路探索における集中化と多様化のバランスを取ることが可能となる。ＡＣＯでは、エージェントが上記の式に基づいて、目的地の選択及び移動を未訪問の地点がなくなるまで繰り返すことにより、解の構築すなわち経路の探索が行われる。
【００２１】
全てのエージェントが解の構築を終え、その評価が行われた後、フェロモンの更新が次式により行われる。
【数３】
0005967416.tif 000004
【数４】
0005967416.tif 000005
【００２２】
ここで、ρはフェロモンの蒸発率、Δτｉｊｋはエージェントｋが地点ｉｊ間に追加するフェロモンの量を示す。また、Ｑは定数であり、Ｓｋ、ｆｋはエージェントｋの解及びその評価値をそれぞれ示す。
【００２３】
図４は、ＡＣＯの具体的な計算手順を説明するためのフローチャートである。最初に、データの初期化（ステップＳ１０）が行われる。次に、エージェントが経路探索を実行することにより解の生成が行われる（ステップＳ１２）。次に、生成された解の評価（ステップＳ１４）及びフェロモンの更新（ステップＳ１６）が行われる。続いて、終了条件を満たしているか否かの判定が行われ（ステップＳ１８）、終了条件を満たしている場合には最良解の出力が行われる（ステップＳ２０）。ステップＳ１８において終了条件が満たされていない場合には、終了条件を満たすまで、ステップＳ１２〜Ｓ１６における解の生成〜フェロモンの更新のステップが繰り返される。
【００２４】
ＡＣＯアルゴリズムによれば、探索を繰り返すに従い、評価値が良い（ｆｋが小さい）経路に含まれるエッジ（地点間）のフェロモン濃度が上昇し、当該経路がその後の探索においても選択されやすくなる。このようなポジティブフィードバックのメカニズムを用いて、有望な探索領域を徐々に推定していくことにより、最良な経路（解）を近似的に求めることができる。ＡＣＯでは、最短経路を厳密解法で求める場合（図２）に比べ、計算時間を大幅に短縮することができる等のメリットがある。
【００２５】
ところで、典型的なＡＣＯアルゴリズムでは、エージェントが探索を終了するたびに、地点間のフェロモン濃度のリストの更新が行われる。フェロモン濃度のリストは、地点数をｎとした場合にｎ×ｎのマトリクス形式のデータ構造で表される。このため、探索の対象となる地点の数が増加すると、計算に必要なメモリ領域が増大してしまうという課題がある。これにより、例えば、小型の電子装置にＡＣＯアルゴリズムを用いた経路探索機能を実装することが難しくなってしまう。
【００２６】
以下の実施例では、ＡＣＯアルゴリズムと同等またはそれ以上の精度及び計算速度を有しつつ、計算に必要なメモリ領域を大幅に削減することのできる経路探索方法、並びに当該経路探索機能を備えた電子装置に付いて説明する。
【実施例１】
【００２７】
図５は、実施例１に係る経路探索のアルゴリズムを説明するための図である。実施例１に係るアルゴリズムは、複数のエージェントを用いて経路探索を行う点はＡＣＯと同様であるが、ＡＣＯにおけるフェロモン濃度及びヒューリスティック情報の代わりに、以下に説明する２つのリストを用いる点が異なっている。
【００２８】
図５（ａ）は、ＡＣＯのフェロモン濃度マトリクスに代わる第１リストを示す図である。第１リストは、エージェントが探索を終了する度に更新される動的なリストであり、以下の説明においてはＤＣＬ（Dynamic Candidate List）と称するものとする。図示するように、全ての地点（１〜６）を一度ずつ訪問する巡回路のうち、現時点での（仮の）最短経路（５→１→４→３→６→２）が判明している。ＤＣＬは、この仮の最短経路に基づいて作成され、各地点に対し、上記の経路上において隣接する２つの地点が並べられている。例えば、地点３において、経路上で隣接する地点は１と６であり、これらはインデックス番号０及び１に対応する位置にそれぞれ収納されている。
【００２９】
ここで、実施例１に係る経路探索のアルゴリズムでは、複数のエージェントを用いた経路探索を複数回実行することにより、最良解（最短経路）の探索を行う。以下、複数のエージェントを用いた１回ごとの探索における最良解をiteration best（ib）、それまでの全ての探索結果から得られた現時点での最良解をglobal best（gb）と称する。前段落の「仮の最短経路」には、上記のiteration bestまたはglobal bestのいずれを採用してもよい。換言すれば、ＤＣＬの生成には、iteration bestまたはglobal bestのいずれを用いてもよい。
【００３０】
図５（ｂ）は、ＡＣＯのヒューリスティック情報に代わる第２リストを示す図である。第２リストは、経路探索の開始時に生成される静的なリストであり、ＤＣＬと異なり経路探索中における更新は行われない。以下の説明では、第２リストをＳＣＬ（Static Candidate List）と称するものとする。ＳＣＬは、各地点に対し、他の地点を距離の近い順に並べたリストであり、インデックス番号が小さい上位の地点ほど、地点間の距離が小さくなっている。例えば、地点１に対し、距離の近い地点は「５→４→３→２→６」の順であり、ＳＣＬのリストもこの順序でリストの上位（左）側から順に収納されている。
【００３１】
図６は、実際の経路探索における目的地決定のために使用される目的地リストを示す概念図である。後述する目的地決定のステップでは、図５（ａ）のＤＣＬ及び図５（ｂ）のＳＣＬの２つのリストに基づき目的地が決定されるが、図６に示す目的地リストは、説明の便宜のために２つのリストを合体させて表示したものであり、実際の実装方法とは必ずしも一致しない。後述するように、ＤＣＬとＳＣＬとでは、ＤＣＬの方が優先的に参照される。このため、ＳＣＬに含まれる地点のうち、ＤＣＬに含まれる地点と重複するものは、目的地の候補から外されている（斜線で図示）。また、後述するように、既にエージェントが一度訪問した地点も、同様に目的地の候補から外される。図６の合成リストに含まれる地点のうち、斜線で塗りつぶされていない地点は、目的地選択の際の候補となりうる地点である。
【００３２】
実施例１では、ＡＣＯの改良アルゴリズムを経路探索機能として電子装置に搭載した例について説明する。このような電子装置としては、例えば、経路探索機能を備えた各種の電子装置（カーナビゲーション装置、携帯電話（スマートフォン含む）、ＰＣ（Personal Computer）、腕時計等）が考えられる。また、実施例１に係る経路探索機能は、上記の他にも、ネットワークの設計装置、半導体装置の回路パターン設計装置、遺伝子情報の解析装置等の様々な電子装置に実装することができる。
【００３３】
図７は、実施例１に係る電子装置のハードウェアブロック図である。図示するように、ＣＰＵ１０（Central Processing Unit）、メモリ１２、入力部１４、及び出力部１６が、バス１８により互いに接続されている。
【００３４】
ＣＰＵ１０及びメモリ１２は、経路探索の計算を行うためのハードウェアの一例である。入力部１４は、ユーザがデータの入力を行うためのインターフェースであり、例えばマウス・キーボードのような入力装置の他、タッチパネル、ボタン等の入力インターフェースを用いることができる。入力部１４は、機械的な操作以外の方法（例えば、音声入力等）で、データの入力を行う構成であってもよい。出力部１６は、データの出力を行うためのインターフェースであり、例えばディスプレイ等の表示装置、スピーカ等による音声出力装置等、ユーザに対しデータの出力を行う構成を採用することができる。また、出力部１６は、経路探索により得られたデータを利用する他の電子装置に対して出力を行う構成であってもよい。
【００３５】
図８は、実施例１に係る電子装置の機能ブロック図である。電子装置における主な機能としては、経路探索を行う探索手段２０、第１リスト（ＤＣＬ）を保持する第１保持手段としてのＤＣＬ保持手段３０、第２リスト（ＳＣＬ）を保持する第２保持手段としてのＳＣＬ保持手段３２、探索結果を出力する出力手段３４等がある。ＤＣＬ保持手段３０には、ＤＣＬの更新を行うための更新手段３６が接続され、ＳＣＬ保持手段３２には、ＳＣＬの生成を行うためのＳＣＬ生成手段３８が接続されている。更新手段３６には、探索開始時における初期解を生成するための初期解生成手段４０が更に接続されている。
【００３６】
探索手段２０は、探索のためのエージェントを配置する配置手段２１、エージェントが次に訪れる地点（目的地）の決定を行う決定手段２２、エージェントを当該目的地に移動させる移動手段２３を含む。決定手段２２は、更に、条件分岐に応じて異なる方法により目的地の決定を行う第１判定手段２４〜第３判定手段２６を含む。ＤＣＬを保持するＤＣＬ保持手段３０の出力は、第１判定手段２４及び第２判定手段２５に入力され、ＳＣＬを保持するＳＣＬ保持手段３２の出力は、第３判定手段２６に入力されている。
【００３７】
配置手段２１及び移動手段２３における演算結果は、それぞれ記憶手段５０に入力される。記憶手段５０には、エージェントの移動距離を算出する移動距離算出手段５２の他、出力手段３４及び更新手段３６がそれぞれ接続されている。記憶手段５０は、エージェントが辿った経路を示す経路情報の他、移動距離算出手段５２により算出された経路の移動距離（評価値）等を記憶する。更新手段３６は、記憶手段５０に記憶された経路のうち最も評価値の良い（仮の）最短経路に基づいて、ＤＣＬの更新を行う。出力手段３４は、記憶手段５０に記憶された経路のうち（最終的な）最短経路を出力する。
【００３８】
図８に示す機能ブロックのうち、出力手段３４は図７の出力部１６により実現することができ、ＤＣＬ保持手段３０、ＳＣＬ保持手段３２、及び記憶手段５０は、それぞれ図７のメモリ１２により実現することができる。その他の機能ブロックは、それぞれ図７のＣＰＵ１０及びメモリ１２により実現することができる。
【００３９】
図９は、実施例１に係る電子装置の動作を示すフローチャートである。経路探索のためのデータとして、地点の数、地点間の距離、エージェントの数、後述の制御パラメータＰｓ、試行回数、探索の終了条件等のデータが予め入力されている。最初に、初期解生成手段４０が、ＤＣＬを生成する前提となる初期経路（解）の生成を行う（ステップＳ３０）。初期解はあくまでも仮の最良解であるため、例えば最近傍（Nearset Neighbor）法やランダム生成等の任意の方法により生成することができる。
【００４０】
次に、ＳＣＬ生成手段３８が、地点間の距離データに基づいて、ＳＣＬの生成を行う（ステップＳ３２）。次に、更新手段３６が、ステップＳ３０で生成された初期解に基づいて、ＤＣＬの更新（生成）を行う（ステップＳ３４）。生成されたＤＣＬ及びＳＣＬは、それぞれＤＣＬ保持手段３０及びＳＣＬ保持手段３２により保持される。
【００４１】
次に、探索手段２０が、エージェントによる経路（解）の探索を実行する（ステップＳ３６）。このステップについては、図１０にて詳細に説明する。次に、移動距離算出手段５２が、ステップ３６で求められた経路に基づいて、移動距離の算出を行う（ステップＳ３８）。移動距離算出手段５２は、更に、複数のエージェントの探索ごとに求められた経路の移動距離に基づいて、最短経路の算出を行う（ステップＳ４０）。ここで、ステップＳ４０では、その回の探索における最短経路（iteration best）と、それまでの全ての探索における最短経路（global best）の両方が算出される。
【００４２】
次に、探索手段２０が、探索の終了条件を満たしたか否かの判定を行う（ステップＳ４２）。終了条件が満たされていれば、出力手段３４が、記憶手段５０に記憶された経路のうち、最短経路の出力を行う（ステップＳ４４）。終了条件が満たされていない場合は、ステップＳ３４の前段に戻り、終了条件が満たされるまで、ＤＣＬの更新及び経路探索のステップを繰り返す。ここで、ＤＣＬの更新は、ステップＳ４０において求められた最短経路に基づき、更新手段３６により行われる。
【００４３】
ここで、前述したように、ＤＣＬが保持する「仮の最短経路」には、iteration bestまたはglobal bestのいずれかを採用することができる。iteration bestを採用する場合、ステップＳ３４におけるＤＣＬの更新では、探索が終了する度にＤＣＬが必ず更新され、前回の探索における最良解（iteration best）に基づきＤＣＬが生成される。一方、global bestを採用する場合、前回の探索で得られた最良解（iteration best）がそれまでに発見された最良解（global best）よりも良いものであれば、当該iteration bestが新たなglobal bestとなるため、ＤＣＬが更新される。しかし、そうでない場合には、ＤＣＬの更新は行われない。
【００４４】
ＤＣＬをglobal bestに基づき更新する場合、探索の集中化が進む。一方、ＤＣＬをiteration bestに基づき更新する場合、探索の多様化が進む。実施例１に係る経路探索アルゴリズムでは、集中化と多様化をうまくバランスすることにより、より良い解を発見することができるため、上記のＤＣＬの更新方法も、場合に応じて適切に使い分けることが好ましい。
【００４５】
図１０は、図９のステップ３６における、探索手段２０による経路探索の手順を示すフローチャートである。最初に、配置手段２１が、複数の地点のうち一の地点にエージェントを配置する（ステップＳ５０）。次に、探索手段２０は、エージェントが未訪問の地点があるか否かを判定する（ステップＳ５２）。未訪問の地点がある場合、決定手段２２が、次の目的地の決定を行う（ステップＳ５４）。このステップについては、図１１にて詳細に説明する。次に、移動手段２３が、決定手段２２の決定した目的地にエージェントを移動する（ステップＳ５６）。移動手段２３は、記憶手段５０に記憶されている経路情報（今回の探索でエージェントが辿った途中経路を示す情報）を更新する（ステップＳ５８）。
【００４６】
ステップＳ５８が終了すると、ステップＳ５２の前段に戻り、再び未訪問地点が残っているか否かの判定が行われる。ステップＳ５２にて未訪問の地点がなくなった場合、探索手段２０は、エージェントによる経路の探索を終了する。探索手段２０は、予め与えられたエージェントの数だけ、図１０の探索ステップを実行する。これにより、複数のエージェントのそれぞれについて、巡回経路の探索が完了する。
【００４７】
図１１は、図１０のステップＳ５４における、決定手段２２による目的地決定の手順を示すフローチャートである。最初に、決定手段２２が、現在地に対応するＤＣＬ（第１リスト）上の地点が２つとも未訪問であるか否かを判定する（ステップＳ６０）。ＤＣＬ上の地点が２つとも未訪問の場合、第１判定手段２４は、当該２つの地点のうちいずれか１つを候補地点として選択し（ステップＳ６２）、当該候補地点をエージェントの次の目的地とするか否かの判定を行う（ステップＳ６４）。ステップＳ６２における候補地点の選択では、例えば２つの地点のいずれかを０．５の確率により選択する構成とすることができる。
【００４８】
ここで、ステップＳ６４の判定は、例えば、所定範囲の乱数（例えば、０＜ｒａｎｄ＜１）を発生させ、当該乱数（ｒａｎｄ）を制御パラメータＰｓ（０＜Ｐｓ＜１）と比較する確率判定により行うことができる。実施例１では、乱数（ｒａｎｄ）がＰｓより小さい場合に、第１判定手段２４が、ステップＳ６２で選択されたＤＣＬ上の候補地点を次の目的地として決定する。ステップＳ６４においてＮＯと判定された場合は、ＳＣＬに基づく目的地選択のステップ（Ｓ７２以降）へと移行する。
【００４９】
ステップＳ６０においてＮＯと判定された場合、決定手段２２は、現在地に対応するＤＣＬの地点が１つだけ未訪問であるか否かを判定する（ステップＳ６８）。ＤＣＬの地点が１つだけ未訪問の場合、第２判定手段２５は、当該未訪問の地点を目的地の候補地点として選択し（ステップＳ７０）、当該候補地点をエージェントの次の目的地とするか否かの判定を行う（ステップＳ６４）。ステップＳ６４の判定ステップは、第１判定手段２４による判定ステップと同様である。
【００５０】
ステップＳ６０及びＳ６８においていずれもＮＯと判定された場合（ＤＣＬ上の地点が２つとも訪問済みの場合）、またはステップＳ６４においてＮＯと判定された場合（ＤＣＬ上の候補地点が目的地として選択されなかった場合）、ＳＣＬに基づく目的地の選択が行われる。最初に、第３判定手段２６が、ＳＣＬ上に候補地点が残ってないかどうかを判定する（ステップＳ７２）。ＳＣＬ上に候補地点が残っていない場合は、ステップＳ６０の前段に戻り、ＤＣＬ上の残りの候補地点の中から、次に目的地の選択を行う。
【００５１】
ステップＳ７２においてＮＯと判定された場合、第３判定手段２６は、ＳＣＬ上に残された候補地点のうち最上位の地点（現在地に最も近い地点）を、エージェントの次の目的地とするか否かの判定を行う（ステップＳ７６）。ここで、ステップＳ７８における判定は、ステップＳ６４の場合と同様に、制御パラメータＰｓを乱数（ｒａｎｄ）と比較する確率判定により行うことができる。本実施例では、ｒａｎｄがＰｓより小さい場合に、第３判定手段２６が、ＳＣＬの最上位地点を目的地として決定する（ステップＳ７４）。ステップＳ７８においてＮＯと判定された場合、第３判定手段２６は、ＳＣＬの最上位の地点を目的地の候補から削除し、ステップＳ７２の前段へと戻る。ステップＳ７２〜Ｓ７８は、ＳＣＬに基づき目的地が決定されるか、ＳＣＬ上の候補地点がなくなるまで繰り返される。
【００５２】
図１２及び図１３は、経路探索の状態遷移を示す図である。それぞれの図において、左側に地点及びエージェントの現在位置が、右側に目的地リスト（ＤＣＬ及びＳＣＬ）並びに経路情報が、それぞれ示されている。本実施例では、地点の数（ｎ）をｎ＝６とした場合を例に説明を行う。図の左上に示す「ｔ」は、探索開始からの経過時間（ステップ数）に対応する。
【００５３】
最初に、図１２（ａ）に示すように、ｔ＝１においてエージェントｋが地点「５」に配置されている。このとき、次の目的地の候補となる地点は、「１，２，３，４，６」のいずれかである。ＤＣＬを参照すると、地点番号「５」に対応する地点「１，２」はいずれも未訪問である。従って、最初に第１判定手段２４によるＤＣＬに基づく判定処理（図１１のステップＳ６０〜Ｓ６６）が行われ、目的地が決定されなかった場合に、第３判定手段２６によるＳＣＬに基づく判定処理（ステップＳ７２〜７８）が行われる。
【００５４】
上記の判定処理の結果、ＤＣＬに含まれる地点「１」が目的地として選択されたため、ｔ＝２では図１２（ｂ）に示すように、エージェントｋが地点「１」に位置している。このとき、次の目的地の候補となる地点は、「２，３，４，６」のいずれかである。ＤＣＬを参照すると、地点番号「１」に対応する地点のうち「３」のみが未訪問となっている。従って、最初に第２判定手段２５によるＤＣＬに基づく判定処理（図１１のステップＳ６８、Ｓ７０、Ｓ６４、Ｓ６６）が行われ、目的地が決定されなかった場合に、第３判定手段２６によるＳＣＬに基づく判定処理（ステップＳ７２〜７８）が行われる。
【００５５】
上記の判定処理の結果、ＳＣＬに含まれる地点「４」が目的地として選択されたため、ｔ＝３では図１２（ｃ）に示すように、エージェントｋが地点「４」に位置している。このとき、次の目的地の候補となる地点は、「２，３，６」のいずれかである。ＤＣＬを参照すると、地点番号「４」に対応する地点「２，６」はいずれも未訪問である。従って、最初に第１判定手段２４によるＤＣＬに基づく判定処理（図１１のステップＳ６０〜Ｓ６６）が行われ、目的地が決定されなかった場合に、第３判定手段２６によるＳＣＬに基づく判定処理（ステップＳ７２〜７８）が行われる。
【００５６】
上記の判定処理の結果、ＳＣＬに含まれる地点「３」が目的地として選択されたため、ｔ＝４では図１３（ａ）に示すように、エージェントｋが地点「３」に位置している。このとき、次の目的地の候補となる地点は、「２，６」のいずれかである。ＤＣＬを参照すると、地点番号「３」に対応する地点のうち「６」のみが未訪問となっている。従って、最初に第２判定手段２５によるＤＣＬに基づく判定処理（図１１のステップＳ６８、Ｓ７０、Ｓ６４、Ｓ６６）が行われ、目的地が決定されなかった場合に、第３判定手段２６によるＳＣＬに基づく判定処理（ステップＳ７２〜７８）が行われる。
【００５７】
上記の判定処理の結果、ＤＣＬに含まれる地点「６」が目的地として選択されたため、ｔ＝５では図１３（ｂ）に示すように、エージェントｋが地点「６」に位置している。このとき、次の目的地の候補となる地点は、「２」のみである。従って、当該地点「２」が、次の目的地として決定される。
【００５８】
図１３（ｃ）は、エージェントｋが最後の訪問地点である「２」に移動した状態を示す図である。ここで、未訪問の地点数は０となるため、図１０のステップＳ５２においてＮＯと判定され、当該エージェントｋによる探索処理が終了する。このように、エージェントによる探索は、上記と同様の方法でエージェントの数（ｍ）に対応する回数だけ実行され、全てのエージェント（１〜ｍ）による探索が完了した時点で、ＤＣＬの更新が行われる。
【００５９】
図１４及び図１５は、実施例１に係る経路探索の具体的なアルゴリズムである。図１４は全体のアルゴリズムを記述したものであり、図１５はエージェントによる経路探索ステップ（図９のステップＳ３６）に係るアルゴリズムを記述したものである。
【００６０】
次に、実施例１に係る経路探索方法（以下、「ＬＡＳ：List-based Ant System」と称する）を、他のＡＣＯアルゴリズムと比較した実験結果について説明する。
【００６１】
図１６は、ＡＣＯの派生的なアルゴリズムとして一般的に知られている４つのアルゴリズム（ｃＡＳ、ＭＭＡＳ、ＭＭＡＳ＋ｐｔｓ、ＡＣＳ）と、実施例１に係るＬＡＳとの対比を、解の評価値の平均及び最良評価値との誤差について行った結果を示す表である。最良の評価値は、予め解析的に算出されたものであり、アルゴリズムの性能を評価する上でのベンチマークとなるものである。最良評価値との誤差は、解の評価値の平均と上記のベンチマークとの差である。
【００６２】
実験の条件として、ＬＡＳの各パラメータは、エージェント数をｍ＝１０、ＳＣＬの長さをｎｌ＝ｎとし、制御パラメータＰｓについては、０．９０〜０．９９の範囲から予備的な実験において最も解の値が良かったものを採用した。ＤＣＬの初期解はNearest Neighbor法により算出した。試行回数は、比較例のデータにつきそれぞれ２５回、ＬＡＳについては５０回とした。また、計算に使用するＣＰＵにはInter Core2（登録商標）の３．００ＧＨｚを用いた。
【００６３】
図示するように、実験番号１（地点数ｎ＝５１）の実験結果では、ＬＡＳは評価値及び誤差の点でｃＡＳには劣るものの、その他のアルゴリズムに対しては両者において優れた結果となった。実験番号５（地点数ｎ＝１００）の実験結果では、ＬＡＳは評価値及び誤差の両方においてｃＡＳと同等であり、その他のアルゴリズムに対しては両者において優れた結果となった。実験番号１５（地点数ｎ＝１９８）の実験結果では、ＬＡＳは評価値及び誤差の両方において、他の全てのアルゴリズムに対して優れた結果となった。以上のように、実施例１に係る経路探索方法（ＬＡＳ）は、一般的なＡＣＯアルゴリズムに比べ、同等かそれ以上の解の探索精度を備えていることが分かる。
【００６４】
図１７は、ＡＣＯアルゴリズムのうちＭＭＡＳについて、更にＬＡＳとの詳細な比較を行った結果を示す表である。比較項目としては、図１６で示したものと同じ最適解との誤差に加え、最適解の発見回数及び計算にかかった時間（アルゴリズムの実行時間）を示している。
【００６５】
図示するように、誤差及び実行時間については、全ての実験番号においてＬＡＳがＭＭＡＳより優れた結果を示している。また、最適解の発見回数についても、ほぼ全ての実験番号において、ＬＡＳがＭＭＡＳより優れた結果を示している。このように、実施例１に係る実施例１に係る経路探索方法（ＬＡＳ）は、解の探索精度だけでなく、計算時間の点からも優れたアルゴリズムであることが分かる。
【００６６】
更に、実施例１に係る経路探索方法（ＬＡＳ）によれば、ＡＣＯで使用されるフェロモン濃度のマトリクスに代えて、ＤＣＬを用いている。換言すれば、ＡＣＯのように全ての地点間のフェロモン量を記憶するのではなく、記憶すべきフェロモンの堆積位置を現時点での最良巡回路上に限定している。これにより、経路探索において保持すべきデータ構造の量を、大幅に削減することに成功している。例えば、フェロモン濃度のマトリクスでは、ｎ×ｎのサイズのデータ構造が必要となり、フェロモン濃度を更新するたびにＯ（ｎ２）のオーダーの計算を行う必要がある。
【００６７】
これに対し、実施例１で用いられるＤＣＬのデータ構造の大きさは２×ｎであり、ＤＣＬを更新するたびに必要な計算量のオーダーはＯ（ｎ）である。その結果、実施例１に係る経路探索方法（ＬＡＳ）によれば、計算に必要なメモリ領域を大幅に削減することができると共に、計算速度を大幅に向上させることができる。また、上記のようにメモリ領域を削減することが可能であることから、実施例１に係る経路探索機能（ＬＡＳ）を、より小型の電子装置（例えば、携帯電話、腕時計等）に実装することが容易となる。
【００６８】
実施例１では、目的地を決定するための判定ステップ（図１１のステップＳ６４、Ｓ７６）における比較対象として、制御パラメータＰｓを用いた。この制御パラメータＰｓは、探索の集中化と多様化を決定するための、「Selection Probability」と称される重要なパラメータである。Ｐｓは、探索の問題ごとに、探索結果（解）が最良となるように決定することが望ましい。
【００６９】
図１８は、図１７で挙げた経路探索問題の各サンプルにつき、最良な解が発見された際のＰｓの値を示す表である。探索の集中化と多様化のバランスを最良なものとするためには、Ｐｓの値の範囲を例えば０．９〜０．９９（すなわち、図１１のステップＳ６４及びＳ７６において、候補地点が０．９以上０．９９以下の確率で目的地として選択されること）とすることが好ましい。
【００７０】
なお、ＬＡＳのアルゴリズムを説明する図９〜図１１においては、「エージェント」「地点」等の抽象的な文言を用いているが、ＬＡＳアルゴリズムによる経路探索機能を具体的な電子装置に実装した場合、これらは具体的な文言で置き換えることが可能である。例えば、経路案内の機能を備えた電子装置（カーナビゲーション、携帯電話等）であれば、「地点」とは目的地及び経由地点を意味し、「エージェント」とは目的地に向かって移動する移動体（例えば、車・人等）を意味する。
【００７１】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００７２】
１０    ＣＰＵ
１２    メモリ
１４    入力部
１６    出力部
１８    バス
２０    探索手段
２１    配置手段
２２    決定手段
２３    移動手段
２４    第１判定手段
２５    第２判定手段
２６    第３判定手段
３０    ＤＣＬ保持手段
３２    ＳＣＬ保持手段
３４    出力手段
３６    更新手段
３８    ＳＣＬ生成手段
４０    初期解生成手段
５０    記憶手段
５２    移動距離算出手段
【図１】
0005967416.tif 000006
【図２】
0005967416.tif 000007
【図３】
0005967416.tif 000008
【図４】
0005967416.tif 000009
【図５】
0005967416.tif 000010
【図６】
0005967416.tif 000011
【図７】
0005967416.tif 000012
【図８】
0005967416.tif 000013
【図９】
0005967416.tif 000014
【図１０】
0005967416.tif 000015
【図１１】
0005967416.tif 000016
【図１２】
0005967416.tif 000017
【図１３】
0005967416.tif 000018
【図１４】
0005967416.tif 000019
【図１５】
0005967416.tif 000020
【図１６】
0005967416.tif 000021
【図１７】
0005967416.tif 000022
【図１８】
0005967416.tif 000023