(57)【特許請求の範囲】
【請求項１】
地図情報を記憶する地図情報記憶媒体、自車位置を検出する車両位置検出部、目的地や経由点を設定する手段、出発地から設定された経由点を通って目的地に到る最適経路を遺伝的アルゴリズムに基づいて探索する経路探索ユニットを備えたナビゲーション装置において、
前記経路探索ユニットは、
出発地から指定されたＮ個の経由点を通って目的地に到る経路を探索する場合、全実ノードにおける最大接続ノード数Ｍと指定経由点数に１を加えた(N+1)のうち小さい方を仮想ノード数ｋとし、各実ノードについてｋ個の仮想ノードを用意し、該仮想ノードを遺伝子として有する拡張遺伝子型の前記出発地から目的地までの経路（個体）を所定数、初期個体群として用意する初期集団作成部、
前記個体に含まれる指定経由点数に応じて重みを決定し、該個体の出発地から目的地までの距離に前記重みを乗じた値の逆数を遺伝的アルゴリズムにおける評価関数とし、該評価関数を用いて各個体の適応度を計算する適応度算出部、
適応度が大きい全体の所定割合の個体を選択して残りを淘汰する選択淘汰処理部、
選択された個体に交叉処理、突然変異処理を施して新たな個体を生成して総計が前記所定数の個体よりなる個体群を生成する交叉/突然変異処理部、
適応度の改善が見られなくなるまで、あるいは、遺伝的アルゴリズムの適用回数が設定回数になるまで、前記個体群を構成する各個体に上記適応度算出処理、選択淘汰処理、交叉処理、突然変異処理を施し、適応度の改善が見られなくなったとき、あるいは、遺伝的アルゴリズムの適用回数が設定回数になったとき、適応度が最良の個体を最適経路として出力する最適経路出力部、
を備えたことを特徴とするナビゲーション装置。
【請求項２】
前記適応度算出部は、
前記重みの初期値を小さめに設定し、遺伝的アルゴリズムを適用する毎に求まるｎ個の指定経由点を含む経路の最短経路長Ｌnと、(n-1)個の指定経由点を含む経路の最短経路長Ｌn-1に重みαn-1を乗算した経路長Ｌn-1・αn-1との大小を比較し、Ｌn＞Ｌn-1・αn-1であれば、重みを増加する、
ことを特徴とする請求項1記載のナビゲーション装置。
【請求項３】
前記初期集団作成部は、前記出発地と目的地が同一地点である最適巡回経路を探索する場合、出発地から(N-1)個の指定経由点を通って最後の経由点に到る拡張遺伝子型経路と、最後の指定経由点から出発地に到る遺伝子型経路とを組み合わせて表現された巡回経路を所定数、初期個体群として用意し、
前記経路探索ユニットは、前記個体群に遺伝的アルゴリズムを繰り返し適用して全指定経由点を通って出発地に戻る最適巡回経路を探索する、
ことを特徴とする請求項１記載のナビゲーション装置。
【請求項４】
前記初期集団作成部は、指定経由点を全て通る所定数の第１の個体群、(N-1)個の指定経由点を通る所定数の第２の個体群、(N-2)個の指定経由点を通る所定数の第３の個体群、・・・を用意し、
前記経路探索ユニットは、それぞれの個体群について遺伝的アルゴリズムを繰り返し適用して全経由点を通過する最適の巡回経路、(N-1)個の経由点を通る最適の巡回経路、(N-2)個の経由点を通る最適の巡回経路、・・・を求め、指定された上限コスト以下で最大数の経由点を通過する巡回経路を探索する、
ことを特徴とする請求項３記載のナビゲーション装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は遺伝的アルゴリズム(ＧＡ:Genetic Algorithm)を用いて最適経路を探索するナビゲーション装置に係り、特に、少ない演算量で全指定経由点を通る出発地から目的地までの最適経路を探索するナビゲーション装置、並びに、出発地と目的地が同一で全指定経由点を通過する最適巡回経路、あるいは指定された上限コスト以下で最大数の経由点を通過する最適巡回経路を探索するナビゲーション装置に関する。
【０００２】
【従来の技術】
車載ナビゲーション装置には、車両を出発地から目的地まで誘導する経路誘導機能が設けられている。かかる経路誘導機能によれば、目的地を設定すると、出発地（現車両位置）から目的地までの最適経路（例えば最短距離の経路）を探索し、探索した最短経路をモニター画面に表示してドライバを目的地に向けて案内する。従来、かかる最短経路問題に使用可能な探索法として、全探索法の一種である深さ優先探索(dfs)法、幅優先探索(bfs)法が知られている。しかし、これらは探索に時間がかかるという欠点を持っている。そこで、幅優先探索法の一種であるダイクストラ（dijkstra）法が提案されている。ダイクストラ法は探索時間が短いため、この方法を応用した多くの手法が提案され、主流となっている。
【０００３】
しかしながら、従来のダイクストラ法等の経路探索法では、二地点間距離が短い複数の経路候補（最短経路及びそれに準ずる経路）を一度の探索で選び出すことは困難であった。このため、ドライバは選ばれた最短経路に満足できなければ、次の候補を見つけ出すために、新たに経路探索を始めからやり直さなければならない問題がある。又、従来の経路探索方法では、最初から経路探索をやり直しても、第２順位に短い経路が必ず選ばれるとは限らない問題がある。
そこで、本願出願人は、特願平9-285154号(出願日:平成9年10月17日、発明の名称:最適経路探索方法)において、遺伝的アルゴリズム(ＧＡ)を用いて最適経路を探索でき、しかも、１回の経路探索で最短経路とこれに準ずる経路を同時に探索できる最適経路探索方法を提案している（第１提案方法）。
【０００４】
一方、複数の経由地を通り目的地に到着する場合の最適経路探索が知られている。従来の複数経由点を通過する経路探索では、
▲１▼ユーザーが経由地点を経由順、および最終目的地を入力し、
▲２▼ナビゲーション装置が出発点から第１経由地までの最短経路をダイクストラ法などにより探索し、
▲３▼ついで、第１経由地から第２経由地までの最短経路を探索し、・・・以下同様の手順を踏む事により複数の経由地を通り目的地に到着する最適経路の探索を行っている。
しかし、この方法では、経由地点の経由順が固定されており、得られた結果が全ルートに対し最適なものであるとの保証はない。特に、近隣観光地を効率よく巡るような場合、不慣れな観光地周辺の経由順を事前に入力する事は難しいのが現実である。そこで、本願発明者等は、遺伝的アルゴリズム（ＧＡ）により、出発地より複数の経由地を通り目的地に到着する場合の最適経路探索法を提案している(第２提案方法、97年12月電気通信学会 IE研究会にて報告、電気通信学会技術報告書 CAS97-6,VLD97-6,DSP97-21:論文名「複数経由指定を伴う経路探索に関する考察」参照)。
【０００５】
【発明が解決しようとする課題】
しかしながら、第２の提案方法では、探索過程において全経由点を通過する経路を表現する個体以外を致死遺伝子としている。このため、初期集団の発生や交叉の際に、致死遺伝子でない個体が生成されるまでの個体発生の処理を繰り返すため、多くの計算量を要する。
又、出発地より複数の指定経由地を通って目的地に到る最適経路探索に加えて、いくつかの指定経由地（たとえば観光地）を巡って出発点に戻るいわゆる巡回ルートの最適経路探索もナビゲーション装置の有効活用の点から必要不可欠な機能である。
又、上限コスト（たとえば最大走行距離）で全指定経由地を巡回できなければ、上限コスト以内で最大数の指定経由地を通過して出発地に戻る最適巡回経路を探索することもナビゲーション装置の有効活用の点から必要不可欠な機能である。このためこれら機能を実現する経路探索方法が要望されている。
【０００６】
以上より、本発明の目的は、少ない計算量で、かつ、短時間に全指定経由点を通過する最適経路を探索できるナビゲーション装置を提供することである。
本発明の別の目的は、重みを最適値になるように決定し、これにより、局所解に陥ることなく最適解が得られるようにすることである。
本発明の別の目的は、指定された全経由地点を通過する最適な巡回経路の探索ができるナビゲーション装置を提供することである。
本発明の別の目的は、上限コスト以下で最大数の指定経由地を通過して出発地に戻る最適の巡回経路の探索ができるナビゲーション装置を提供することである。
【０００７】
【課題を解決するための手段】
上記課題は本発明によれば、地図情報を記憶する地図情報記憶媒体、自車位置を検出する車両位置検出部、目的地や経由点を設定する手段、出発地から設定された経由点を通って目的地に到る最適経路を遺伝的アルゴリズムに基づいて探索する経路探索ユニットを備えたナビゲーション装置において、前記経路探索ユニットは、(1)出発地から指定されたＮ個の経由点を通って目的地に到る経路を探索する場合、全実ノードにおける最大接続ノード数Ｍと指定経由点数に１を加えた(N+1)のうち小さい方を仮想ノード数ｋとし、各実ノードについてｋ個の仮想ノードを用意し、該仮想ノードを遺伝子として有する拡張遺伝子型の前記出発地から目的地までの経路（個体）を所定数、初期個体群として用意する初期集団作成部、(2)前記個体に含まれる指定経由点数に応じて重みを決定し、該個体の出発地から目的地までの距離に前記重みを乗じた値の逆数を遺伝的アルゴリズムにおける評価関数とし、該評価関数を用いて各個体の適応度を計算する適応度算出部、(3)適応度が大きい全体の所定割合の個体を選択して残りを淘汰する選択淘汰処理部、(4)選択された個体に交叉処理、突然変異処理を施して新たな個体を生成して総計が前記所定数の個体よりなる個体群を生成する交叉/突然変異処理部、(5)適応度の改善が見られなくなるまで、あるいは、遺伝的アルゴリズムの適用回数が設定回数になるまで、前記個体群を構成する各個体に上記適応度算出処理、選択淘汰処理、交叉処理、突然変異処理を施し、適応度の改善が見られなくなったとき、あるいは、遺伝的アルゴリズムの適用回数が設定回数になったとき、適応度が最良の個体を最適経路として出力する最適経路出力部、を備えたナビゲーション装置により達成される。以上のようにすれば、従来、致死遺伝子としていた個体を活用して効率的に最適経路探索を行え、計算量を削減し、かつ、短時間で最適経路の探索ができる。
又、重みは最初小さめに設定し、遺伝的アルゴリズムを適用する毎に求まるｎ個の指定経由点を含む経路の最短経路長Ｌnと、(n-1)個の指定経由点を含む経路の最短経路長Ｌn-1に重みαn-1を乗算した経路長Ｌn-1・αn-1との大小を比較し、Ｌn＞Ｌn-1・αn-1であれば、重みを所定割合増加し、重みが最適値になるように制御する。このように、重みが最適値になるように制御するから、局所解に陥ることなく極めて高い確率で最適解を得ることができる。
【０００８】
又、上記の最適経路探索において、第１の地点と第２の地点が同一地点（出発地）である最適巡回経路を探索する場合、出発地から(N-1)個の指定経由点を通って最後の経由点に到る経路の全通過実ノードに応じた仮想ノードを遺伝子として有する拡張遺伝子型と、最後の指定経由点から出発地に到る経路の全通過実ノードを遺伝子として有する遺伝子型とを組み合わせて表現された巡回経路（個体）を所定数、初期個体群として用意し、前記個体群に遺伝的アルゴリズムを繰り返し適用して全指定経由点を通って出発地に戻る最適巡回経路を探索する。
【０００９】
更に、指定経由点を全て通る所定数の第１の個体群、(N-1)個の指定経由点を通る所定数の第２の個体群、(N-2)個の指定経由点を通る所定数の第３の個体群、・・・を用意し、それぞれの個体群について遺伝的アルゴリズムを繰り返し適用して全経由点を通過する最適の巡回経路、(N-1)個の経由点を通る最適の巡回経路、(N-2)個の経由点を通る最適の巡回経路、・・・を求め、指定された上限コスト以下で最大数の経由点を通過する巡回経路を探索する。
【００１０】
【発明の実施の形態】
（Ａ）本発明の概略
（ａ）本発明を適用できるナビゲーション装置の第１の構成
図１は本発明の最適経路探索を説明するためのナビゲーション装置の概略構成図である。図中、１は地図情報を記憶するＣＤ−ＲＯＭ、ＤＶＤ等の地図情報記憶媒体、２は自車位置を検出する車両位置検出部で、自立航法センサー（車速センサー、方位センサーなど）やＧＰＳで構成されるもの、３は目的地や経由点の設定、メニュー項目選択による各種指示、地図の拡大／縮小等の操作を行うリモコンユニット、４はナビゲーション制御部における経路探索ユニット、５は地図及び最適経路たとえば出発地Ｓから指定経由点Ａ、Ｂを通って目的地に至る最適経路ＭＳＰを表示するモニターである。
【００１１】
経路探索ユニット４は、出発地Ｓ、目的地Ｇ及び経由点Ａ，Ｂが入力されて経路探索が指令されると、遺伝的アルゴリズム（ＧＡ）に基づいて出発地Ｓから指定経由点Ａ，Ｂを通って目的地Ｇに至る最適経路探索を開始し、得られた最適経路ＭＳＰをモニター５に表示する。すなわち、経路探索ユニット４は、拡張遺伝子型により表現された出発地から目的地までの経路（個体）を所定数、初期個体群として用意し、該拡張遺伝子型構造を備えた個体群に遺伝的アルゴリズムを繰り返し適用し、該遺伝的アルゴリズムにより全経由点を通過する出発地から目的地までの最適経路を探索する。この場合、前記個体（経路）に含まれる指定経由点数に応じて重みを決定し、該個体の出発地から目的地までの距離に前記重みを乗じた値の逆数を遺伝的アルゴリズムにおける評価関数とする。重みは最初小さめに設定し、遺伝的アルゴリズムを適用する毎に求まるｎ個の指定経由点を含む経路の最短経路長Ｌnと、(n-1)個の指定経由点を含む経路の最短経路長Ｌn-1に重みαn-1を乗算した経路長Ｌn-1・αn-1との大小を比較し、Ｌn＞Ｌn-1・αn-1であれば、重みを所定割合増加し、重みが最適値になるように制御する。
【００１２】
以上、本発明の経路探索方法は、ビルディングブロック仮設(D.E.Goldberg,  "Generic Algorithms in Search Optimization and Machine Learning" Addison. Wesley, 1989)に基づき、個体(経路)の持つ経由点数に依存する重みを評価関数に導入した探索手法である。この重みの制御により、従来、致死遺伝子としていた個体に含まれる有効なスキマタ(schemata:schemaの複数形)を消失することなく効率的に探索を行い、計算量を削減することが可能となる。スキマタとは「配列」を意味し、ＧＡでは染色体中の意味のあるパターン、あるいは遺伝子の並びのことをいう。
【００１３】
図２は本発明の最適巡回経路探索を説明するためのナビゲーション装置の概略構成図であり、図１と同一部分には同一符号を付しており、モニター５には地図及び最適巡回経路たとえば出発地Ｓから指定経由点Ａ、Ｂ、Ｃを通って出発地に戻る最適巡回経路ＭＳＲＰが表示されている。
経路探索ユニット４は、出発地Ｓ及び経由点Ａ，Ｂ，Ｃが入力されて巡回経路探索が指令されると、遺伝的アルゴリズム（ＧＡ）に基づいて出発地Ｓから指定経由点Ａ，Ｂ，Ｃを通って出発地に戻る最適巡回経路探索を開始し、得られた最適巡回経路ＭＳＲＰをモニター５に表示する。すなわち、経路探索ユニット４は、最適巡回経路を探索する場合、出発地から(N-1)個（上記例ではN=3)の指定経由点を通過して最後のN番目の経由点に到る経路の拡張遺伝子型構造と、最後のN番目の指定経由点から出発地に到る経路の遺伝子型構造を組み合わせて表現した巡回経路（個体）を所定数、初期個体群として用意し、該個体群に遺伝的アルゴリズムを繰り返し適用して最適巡回経路ＭＳＲＰを探索する。
【００１４】
又、経路探索ユニット４は、上限コストが指定されている場合には、指定経由点を全て通る所定数の第１の個体群、(N-1)個の指定経由点を通る所定数の第２の個体群、(N-2)個の指定経由点を通る所定数の第３の個体群、・・・を用意し、それぞれの個体群について遺伝的アルゴリズムを繰り返し適用して全経由点を通過する最適の巡回経路、(N-1)個の経由点を通る最適の巡回経路、(N-2)個の経由点を通る最適の巡回経路、・・・を求め、指定された上限コスト以下で最大数の経由点を通過する巡回経路を探索する。
【００１５】
（ｂ）遺伝的アルゴリズムの概略
図３は遺伝的アルゴリズムの概略フロー図であり、図４は遺伝的アルゴリズムにおける一般的な個体表現説明図である。
遺伝的アルゴリズムＧＡにおいて、各個体（探索点）の形質は染色体として表わされる（図４参照）。染色体は遺伝子により構成され、各遺伝子は個体の部分形質を表現する。各個体の染色体は後述する各ＧＡ操作が有効に行われるように表現する必要がある。更に、問題の解候補をすべて探索範囲とするために、全ての解候補を表現できる必要があり、また染色体で表現可能な個体は冗長な探索を防ぐため、全て解候補であることが望ましい。
【００１６】
遺伝的アルゴリズムＧＡにおいては、個体の初期集団を乱数を用いて作成する（ステップ１０１）。但し、何らかの予備知識が存在する場合には、適応度が高いと思われる個体を初期集団として作成する。初期集団内に存在しない遺伝子は突然変異によってのみ発生する。このため初期集団の作成法が探索効率に大きく影響する場合がある。
ついで、個体の適応度を評価する（ステップ１０２）。適応度は各個体の染色体が表す形質の評価である。この適応度の評価関数を任意に決定できることがＧＡの特徴の一つである。また、この適応度を用いて選択を行なうために評価関数の設定が探索の効率に大きく影響する。
各個体について適応度が求まれば、探索点集合（最初は、初期集団）から個々の適応度や探索の進み具合などに応じて次世代の個体の基となる個体を選択する（選択淘汰、ステップ１０３）。尚、選択法によっては、特定の遺伝子が急速に広がり局所解ですらない同一の個体で占められてしまう初期収束の問題が生じる場合がある。
【００１７】
しかる後、選択操作によって選ばれた複数の個体からなる個体群から所定の発生頻度で２つの親個体を選択し染色体を組み変えて、子の染色体を作る（交叉、ステップ１０４）。交叉によって作成された新しい個体は基となる複数の親の形質を継承していることが重要である。
交叉処理後、突然変異操作により遺伝子を一定の確率で変化させる（突然変異、ステップ１０５）。突然変異はあまり頻繁に発生すると、ランダムサーチ化してしまう。しかし、初期集団の遺伝子の組み合わせ以外の染色体の作成には、突然変異による遺伝子の変化が必要である。
上記ステップ１０２〜１０５を終了条件が満たされるまで繰返し（ステップ１０６）、該条件が成立すると探索処理を終了する。
【００１８】
以上が一般的な遺伝的アルゴリズムＧＡの概略であり、かかる遺伝的アルゴリズムＧＡを最適経路探索に適用するには、予め以下の項目（各種の規則やパラメータ）を経路探索用に変形あるいは実現する必要がある。これらのパラメータを適切に選ばなければ、最適解に収束するために多くの計算時間がかかったり、局所解に陥って最適解が得られないなどの問題が起こる。
・個体の形質表現
・初期集団の作成法
・適応度の評価関数
・選択淘汰方法
・交叉方法
・突然変異方法
・探索終了条件
・個体数
【００１９】
（ｃ）２点間最短経路探索に適用できる遺伝子型の設計
交叉の際の計算量および致死遺伝子の抑制、次世代の個体の多様性の維持を目的として次のような遺伝子型を設計した。
図５は個体である経路を表現する構造（遺伝子型構造）の説明図であり、
（ａ）はマップ情報、（ｂ）遺伝子説明図、（ｃ）は出発地０から目的地４までの経路０→５→９→１０→４を表現型としてもつ遺伝子型の例である。
この遺伝子型は、経由するノード番号を遺伝子として持つ。これは後述の交叉の条件を満たすため、パス表現を応用した等長の遺伝子型となっている。具体的には、ノード番号ｍからノード番号ｎへの経路(以後、経路ｍ→ｎと表す)はｍ番目の遺伝子座にｎを格納することによって表され、出発点から到着点までの経路についてこれを繰り返し、途中一度も経由しないノードについてはそのノードが接続しているノードの集合の中から、ランダムに一つを選択して格納する。例えば図５（ａ）に示すマップ情報が与えられている場合、経路０→５→９→１０→４を表現型に持つ遺伝子型の一例は、図５（ｃ）に示すように
0003792938.tif 000002
となる。上段はノード番号、下段は遺伝子座である。
【００２０】
０番目の遺伝子座に５が、５番目の遺伝子座に９が、９番目の遺伝子座に１０が、１０番目の遺伝子座に４が格納されていることが確認できる。下線を付さないノード番号で示した遺伝子座にある遺伝子は、ノード番号の遺伝子（ノード）から次に行くことのできるノードの中からランダムに選んだものを格納しており、このノードの選び方によって、同じ表現型を持った異なる遺伝子型が生成されることがわかる。以上により設計された遺伝子型は、表現型と遺伝子型が１対多に対応している。
【００２１】
（Ｂ）２点間最短経路探索（第１提案方法）
図６は２点間最短経路探索を遺伝的アルゴリズムＧＡに基づいて実行する構成図である。尚、後述する「複数経由点指定を伴う最短経路探索」、「全指定経由点を通る最適巡回経路探索」、「上限コストが設定されている場合の最適巡回経路探索」を実行する構成も図６と同一になるが、処理方法は異なる。
図中、１１は計算機により算出された出発地から目的地までの経路（個体）の初期集団を作成する初期集団作成部、１２は評価関数に基づいて各個体の適応度を計算する適応度算出部、１３は探索終了判定部であり、適応度が変化しなくなったとき、あるいは探索回数が設定回数になったとき探索終了と判定するもの、１４は探索終了により探索された個体、すなわち、適応度が最高の経路（たとえば最短経路）を出力し、あるいは、必要に応じて最短経路と共に第２、第３順位の経路を出力する最短経路出力部、１５は適応度の高い個体を選択する選択淘汰処理部、１６は選択された個体（親）の遺伝子（ノード）を入れ替える交叉処理部、１７は個体の遺伝子（ノード）を所定の規則に従って変異させる突然変異処理部である。
【００２２】
（ａ）初期集団作成部
２点間最短経路探索では図５に示すように地図上の道路交差点（ノード）を遺伝子として用い、その遺伝子座における１次元配列を染色体として扱う。個体数は多いほど探索点が多くなるため解候補の多様性が高くなり、良い結果が得られるが、探索時間が長くなる。実験を行った結果、約４０以下の個体数では安定した探索が行われないことが確認された。従って、本実験では個体数を５０に定める。以上より、初期集団作成部１１は、５０個の個体からなる初期集団を作成する。
【００２３】
（ｂ）適応度算出部
適応度算出部１２は、各個体の適応度を次式
Fitness =1/(Σrlength(i))  i=1〜M      (1)
で示す評価関数を用いて算出する。
ただし、Ｍを出発点から到着点までに経由するノードの個数、rlength(i)をi番目と(i-1)番目のノード間の経路長とする。最短経路問題では経路長が短いほど適応度が高くなる評価関数を設定する必要があり、式(1)のように、経路長の総和の逆数により定義した。
【００２４】
（ｃ）探索終了判定部
探索終了の条件は、▲１▼各世代における個体の最大適応度が、たとえば５０世代連続して改善されないこと、及び、▲２▼探索が１０００世代まで達したことである。なお、▲１▼のみを探索終了条件とすることもできる。図７は探索終了判定部１３による探索終了判定処理のフローである。
適応度算出部１２から各個体の適応度を受信すると（ステップ３０１）、ｉを歩進し（ｉ＋１→ｉ、ステップ３０２）、ついで、現世代における個体の最大適応度が前回の最大適応度より大きいか、換言すれば、探索経路が距離的に改善されたかチェックする（ステップ３０３）。
【００２５】
改善されていなければ、カウント値ｃ（初期値は０）を１カウントアップし（ステップ３０４）、ついで、ｃ≧５０かチェックする（ステップ３０５）。ｃ≧５０の場合には、最短経路の個体探索が完了したものとして探索処理を終了する（ステップ３０６）。ｃ＜５０の場合には、ｉ＝１０００になったか、換言すれば、探索が１０００世代まで達したかチェックする（ステップ３０７）。ｉ＜１０００であれば、ステップ３０１に戻り以降の処理を繰返し、ｉ＝１０００であれば、探索処理を終了する（ステップ３０６）。
一方、ステップ３０３において、探索経路が距離的に改善されていれば、カウント値ｃをクリアし（ステップ３０８）、ついで、ステップ３０７以降の処理を実行する。
【００２６】
(ｄ) 選択淘汰処理部
選択淘汰は、評価値（適応度）の最も良い個体を無条件に次世代に残すエリート保存戦略、その他の個体については評価値に比例した確率で選択淘汰を行うルーレット戦略を採用した。すなわち、選択淘汰処理部１５は、適応度の高い６０％の個体において、一般的である適応度比例戦略にエリート保存戦略を組み合わせて選択淘汰処理を実行する。ただし、最大の適応度が減小した場合、前世代における最大適応度の個体を新しい個体として加えるのではなく、最も適応度の低い個体と入れ換えることにより個体数の増加を防ぐ。６０％の値は実験を行なった結果、５０％以下では安定した探索が行なわれない場合があるからである。
図８は選択淘汰、交叉、突然変異処理の説明図である。
選択淘汰処理部１５（図６）は個体群を構成するＮ個の個体を取り込み、それぞれの個体の適応度を高い順に
個体１（Ｉ1）、個体２（Ｉ2）、・・・、個体Ｎ（ＩN）
と個体の数（＝Ｎ）だけ並べる。このように配列した個体の内、適応度が高い順に全体の６０％のものだけを選択し、それ以外の残り４０％の個体は淘汰する。
【００２７】
交叉処理部１６、突然変異処理部１７は、選択されて残った個体を用いて後述する交叉、突然変異を施して新たな個体を作り、トータルの個体数をＮ個にする。ここで、交叉に用いられる元の個体の使用頻度は適応度に比例する確率で選択する（ルーレット戦略）。次に、所定の交叉、突然変異が施されてできた新しい個体群の全てのＮ個の個体について適応度算出部１２で適応度を計算し、適応度の高い順にそれぞれ
個体１（Ｉ′1）、個体２（Ｉ′2）、・・・、個体Ｎ（Ｉ′N）
と個体の数（＝Ｎ）だけ並べる。ついで、今回の個体群の中で最も適応度が高い個体１（Ｉ′1）と前回の個体群の中で最も適応度が高い個体１（Ｉ1）との間で適応度の大小を比較する。
Ｉ1＞Ｉ′1の場合には、すなわち、今回の最大適応度Ｉ′1が前回の最大適応度Ｉ1より小さい場合には、新しい個体群の中で最も適応度の低い個体６０（Ｉ′60）を捨て、代わりに前回の個体群の中で最も適応度が高い個体１（Ｉ1）を新しい個体群の中の個体として入れる処理を行う。これにより、常に、新しい個体群の最大の適応度が元の個体群の最大の適応度以上にする。
以上により新しい個体群が作り出される。そして、この操作を繰返し行うことにより、遺伝的アルゴリズムが実行される。
【００２８】
図９は、選択淘汰の処理フローである。
選択淘汰処理部１５は個体群を構成するＮ個の個体を取り込み（ステップ４０１）、それぞれの個体の適応度を高い順に
個体１（Ｉ1）、個体２（Ｉ2）、・・・、個体Ｎ（ＩN）
と個体の数（＝Ｎ）だけ並べ替える（ステップ４０２）。ついで、このように配列した個体の内、適応度が高い順に全体の６０％のものだけを選択し、それ以外の残り４０％の個体は淘汰する（ステップ４０３）。この様にして選択された個体群は所定の発生頻度に従った次世代の親個体として使用される。尚、ルーレット戦略でも淘汰できるから選択淘汰部において１００％選択することもでき、実際に実施例では１００％とした。
【００２９】
(ｅ) 交叉処理部
交叉の一般的なものとして、一点交叉、多点交叉、一様交叉などが存在する。交叉処理部１６はその一つである一様交叉に基づいて交叉処理を実行する。
一様交叉は、２つの別の個体から新しい個体を作り出すために用いるもので、親となるそれぞれの個体の性質を引き継ぐために染色体に含まれる遺伝子がいずれかの親と全く同じになる別の個体を作る。図１０は一様交叉の説明図である。図中、Ｐ１，Ｐ２は一様交叉処理の対象となる個体（親１、親２）、ＭＫは一様交叉処理に用いるマスク、ＣＨは一様交叉により得られた新たな個体（子）である。マスクＭＫで１が立っている部分では親個体Ｐ２の遺伝子が、０の部分では親個体Ｐ１の遺伝子がそれぞれ受け継がれて新しい子個体ＣＨが作られる。
【００３０】
一様交叉に使用するマスクＭＫは常に同じではなく、乱数を用いて変更するようになっている。又、親個体の決定法は、適応度に応じた発生頻度でランダムに選択する。簡単のため個体数を３としてそれぞれの適応度を個体１はａ，個体２はｂ、個体３はｃとする。このときの各個体が選択される確率（全体の確率は１となる）は、
個体１：a/(a+b+c)
個体２：b/(a+b+c)
個体３：c/(a+b+c)
で表現される。
【００３１】
図１１は遺伝子型で表現した個体に一様交叉を施す説明図である。
交叉は二つの親の個体から一つの子の個体を生成する操作である。この手法は経路探索を行うものであり、交叉の後、得られた子の個体は、指定された出発点及び到達点を始・終点とする経路集合の中に入っていなければならない。そこで前述の遺伝子型を用意し、一様交叉をもとにした次のような交叉方法を考えた。まず、ルーレット戦略によって選ばれた二つの個体(親１,親２とする)より、出発点のノード番号の遺伝子座にあるノード番号の内からランダムに一つを選択して、子の同じ遺伝子座に格納する。格納されたノード番号と同じ番号の二つの親の遺伝子座にあるノード番号のうちからランダムに一つを選択して、子の同じ遺伝子座に格納し、これを到着点に達するまで繰り返し、経由しなかったノードについては親の個体の遺伝子のどちらかをランダムに選択して格納する。
【００３２】
図１１を用いて交叉法を具体的に説明すると（ノード番号０：出発点、ノード番号４：は到達点）、まず親１の０番目の遺伝子座にある５と親２の１の二つについてどちらかを選択し、選択された５によって、ノード番号５の遺伝子座にある親１の９と親２の６の二つのうちどちらかを選択する。これを到着点(ノード番号４)に達するまで繰り返す。経由していなかったノード(図１１の子において□で囲まれていないノード)については、親の個体の遺伝子からランダムに選択する。
【００３３】
図１２は一様交叉処理の流れ図であり、後述する突然変異処理と連携しながら交叉処理を実行する。まず、乱数を用いてマスクＭＫを作成し（ステップ５０１）、ついで、選択淘汰された個体群より適応度に応じた発生頻度でランダムに親個体Ｐ１，Ｐ２を選択する（ステップ５０２）。しかる後、親個体Ｐ１，Ｐ２及びマスクＭＫを用いて一様交叉処理を実行して子個体ＣＨを作成する（ステップ５０３）。子個体生成後、必要に応じて該子個体に突然変異処理を施す（ステップ５０４）。ついで必要な数の子個体が生成されたかチェックし（ステップ５０５）、生成されていれば、交叉処理を終了し、必要な数の子個体が生成されていなければステップ５０１に戻り、上記処理を繰り返す。
【００３４】
(ｆ) 突然変異処理部
突然変異は突然変異確率に応じて行なわれるだけでなく、同じ世代にすでに全く同じ遺伝子を持つ個体が存在する場合には該個体に対しても行う。つまり、探索の初期において、解の多様性が高い間は突然変異は突然変異確率にほぼ従った割合でしか生じないが、探索の後半において多様性が低くなると突然変異が多く生じ、解の多様性が保持されることになる。突然変異確率は多数実験を行い、３％〜２０％の範囲で探索結果が大きく変化しないことを確認した。そのため5％とした。
【００３５】
図１３は突然変異処理の説明図である。探索を開始した初期の段階では、子個体群のなかに全く同じ遺伝子構造（染色体）を持つことはあまりない。このような時は、予め定めておいた突然変異確率に従って突然変異を行う。例えば、１００回の交叉に対して５回の突然変異を行う。
図１４は突然変異処理部１７による突然変異処理のフローであり、図１２の突然変異処理ステップ（ステップ５０４）の詳細である。２つの親個体Ｐ１，Ｐ２を選択し、該親個体Ｐ１，Ｐ２及びマスクを用いて一様交叉処理を実行して子個体を作成する（ステップ５０２、５０３）。子個体生成後、該子個体と同じ遺伝子構造の子個体が別に存在するかチェックする（ステップ５０４ａ）。存在する場合には、新たな子個体の遺伝子（ノード）を変化して突然変異させる（ステップ５０４ｂ）。
【００３６】
一方、ステップ５０４ａにおいて同じ遺伝子構造の子個体が別に存在しなければ、突然変異確率に従って突然変異を行う。例えば、前述のように１００回の交叉に対して５回の突然変異を行う。従って、ステップ５０４ａにおいて「NO」の場合には、突然変異確率に基づいて突然変異をさせるべきかチェックし（ステップ５０４ｃ）、突然変異させるべきであれば、ステップ５０４ｂの処理を実行して子個体の遺伝子（ノード）を変化して突然変異させ、突然変異させるべきでなければ突然変異処理を終了する。
以後、新たに生成したＮ個の個体からなる個体群に対して、適応度算出処理、探索終了判定処理、選択淘汰処理、交叉処理、突然変異処理を繰り返す。
【００３７】
(ｇ) シミュレーション結果
いわき市のマップ情報に対して遺伝子アルゴリズム（ＧＡ）を用いた２点間最適経路探索のシミュレーション実験を行った。交差点数(ノード数）は７２である。又、個体数を５０、終了条件を５０世代無進化、突然変異確率を５％とした。上記パラメータを用いて実験を行った結果、図１５に示す最短経路ＭＳＰが得られた。これは出発点Ｓと到着点Ｄ間の最短経路で、ダイクストラ法によって求めた最適経路と一致する。
【００３８】
最短経路のみを探索して表示することは、ダイクストラ法に代表される従来方法でも可能である。しかし、従来方法では最適経路しか求まらず、最適経路に準じた第２順位、第３順位の経路を同時に求めることができない。このため、最短経路と異なる経路であって、距離的に大きな差がない別の経路が要求されると、従来方法ではパラメータを変更して最初から探索をやり直さなければならない。又、最初から探索をやり直した場合でも確実に第２順位、第３順位の経路が得られる保証がない。
これに対して、ＧＡを用いた最適経路探索法においては、最適経路探索の過程において、多くの解候補を生成する。このため、これらの解候補を幾つか記憶させることにより１回の最適経路探索処理によって上位ｍ個(メモリの許す限り大きくすることが可能)の解を探索して出力することができる。図１６（ａ），（ｂ）は図１５に示す最適経路ＭＳＰの探索時に同時に得られた第２順位及び第３位の個体（経路）ＭＳＰ１，ＭＳＰ２を示している。このように、ＧＡによる最適経路探索によれば、経路の持つ適応度の記憶とソートのみから第ｎ順位までの個体を探索できる。
【００３９】
（Ｃ）複数経由点指定を伴う最短経路探索（第２の提案方法）
以上では２点間の最短経路を探索する経路探索法を説明したが、以下では指定された複数の経由点をすべて通過する最短経路探索法について説明する。
指定された複数の経由点を通過する最短経路を求める従来法では、出発点と各経由点、経由点間、各経由点と到着点の最短経路探索を行わなければならない。このため指定経由点の総数をＮとすると、最大でN(N+3)/2回の探索が必要となる。さらに、求めた各々の最短経路および経路長を用いて、出発点から全経由点を通り到着点に至る全ての順列（Ｎ！通り）の経路長を調べ、その中で最短経路長を持つものが解となる。以上の理由より従来法は、指定される経由点の数が多くなると、多くの計算量を伴うという問題点がある。
【００４０】
遺伝的アルゴリズムＧＡは、その探索過程において、多くの解候補となる個体を生成する。このうち、全経由点を通過する個体のみを用いて世代交代を行うことによって、一回の探索で指定されたすべての点を経由する最短経路の探索が可能となる。ただし、経由点を通る最短経路は、同一ノードを複数回通過する可能性があり図５（ｃ）で示した遺伝子型では表現できない。そこで遺伝子型に次のような変更を加えて拡張遺伝子型を設計する。
【００４１】
（ａ）拡張遺伝子型の設計
同一ノードをｋ回通過する経路を考える。一つのノードの位置に仮想的にｋ個のノードが存在するものとして、その仮想ノード全てに異なるノード番号を与える。図１７にｋ＝２の場合の例を示す。仮想ノード０と１，３と４は、実際にはそれぞれ実ノードａ，ｂの位置に存在する、図５（ｃ）の遺伝子型は同一のノードを複数回通過する経路のコード化が不可能なので、実ノード番号を用いた経路Ｓ→ａ→ｂ→ａ→Ｇを表現することはできない。しかし仮想ノード番号を用いた経路Ｓ→０→３→１→Ｇは複数回通過するノードがなく、コード化が可能である。このように、仮想ノード番号を用いてコード化した遺伝子型を用いてＧＡ処理を行い、得られた個体から表現型を生成する際に実ノード番号に戻すことによって、最短経路を得ることができる。
【００４２】
仮想ノードの数ｋが大きくなると、遺伝子長が長くなって計算量が増加する。よって必要最小限のｋを求める必要があるが、このｋの値は一つのノードが接続しているノード数ならびに経由点の数に依存する。
任意の２つのノード間を結ぶパスを２往復以上する経路は最短経路ではないので、図１８に示すようなノード群を考えると、点ｃを通過する回数は、経路Ｓ→ｃ→ｄ→ｃ→ｅ→ｃ→ｆ→ｃ→Ｓの場合に最大となり、点ｃに接続するノードの数に等しい（ｄ，ｃ，ｆは指定経由点に限らない）。探索範囲内に含まれるすべてのノードについて接続ノード数を調べ、その最大値をＭとする。
また、任意のノードに注目すると、そのノードを通過する最大の回数は、すべての指定経由点に向かう際と到着点に向かう際の（指定経由点数＋１）回である。たとえば、全指定経由点が図１８中の点ｄ，ｅ，ｆのように配置された場合、点ｃを通過する回数は経路Ｓ→ｃ→ｄ→ｃ→ｅ→ｃ→ｆ→ｃ→Ｓの場合に最大となり、指定経由点数をＮとすれば（Ｎ＋１）回である。他に点ｃに接続するノードが存在していてもこの値は変わらない。
【００４３】
従って仮想ノード数ｋの値はＭ，（Ｎ＋１）の小さい方を採用すればよく
ｋ＝min｛Ｍ，（Ｎ＋１）｝  (2)
となる。たとえば、図１９（ａ）に示すマップ情報（Ｍ＝５）が与えられている場合、出発地をノード０、目的地をノード４、指定経由点をノード９（Ｎ＝１）とすれば、仮想ノード数ｋ＝２となり、経路０→１→９→１→２→３→４を表現型に持つ拡張遺伝子型の一例は、図１９（ｂ）に示すようになる。上段は各実ノードに応じた仮想ノードを表現した遺伝子であり、下段は各遺伝子座に存在する遺伝子の値である。
ｋ個の仮想ノードを用いた遺伝子型は、ＧＡ処理自体に変更を伴うことなく、同一の実ノードに対してｋ回の通過を許した経路探索が可能となる点で有利である。
【００４４】
(ｂ) シミュレーション結果
前述のいわき市のマップ情報に対して３つの経由点Ａ，Ｂ，Ｃを指定し、これらの３点をすべて通過する最短経路を探索する。この地図データにおいてＭ＝４，またＮ＝３であるから、式(2)よりｋ＝４となる。一つの実ノードに対する仮想ノードを４つずつ用意し、拡張遺伝子型を設計する。
個体数を５０、終了条件を５０世代無進化、突然変異確率を５％として実験を行った結果、図２０に示す最短経路ＭＳＰが得られた。
図より、３つの指定した経由点Ａ，Ｂ，Ｃを全て経由する最短経路が得られていることがわかる。また、点Ｂ，Ｃを経由する経路は重複して通過するノードを持つが、このよう経路を持つ最短経路についても探索が可能となっている。
【００４５】
以上より従来法では困難であった、指定された複数の経由点をすべて通過する最短経路を一回の処理で探索することが可能となった。また複数回通過するノードを持つ経路に対しても、仮想ノードを導入した遺伝子型の設計により、コード化が可能となった。
なお、ＧＡ処理の過程で全経由点を通る個体のみでＧＡ処理を行うために、ランダムに個体を発生させ、全経由点を通過する個体以外を致死遺伝子として殺している。このため、計算量が多くなる問題点がある。
【００４６】
（Ｄ）本発明の全指定経由点を通る最適経路探索
（ａ）重みを導入した評価関数による最短経路探索
（a-1)  第２の提案方法の問題点
第２の提案方法は、前述のようにGAの処理過程において生成する多くの解候補のうち、指定した経由点の全てを通る経路を持つ個体のみを用いて探索を行うものである。この第２の提案方法を本発明と比較するために、第２の提案方法によりいわき市のマップ情報に対して適用した結果を図２１に示す。使用した各パラメータは図２２に示す通りである。
図中の点ＡおよびＢはあらかじめ指定した経由点であり、この２点を経由する最短経路が得られている。なお、本探索の計算時間は、Sun SuperSparc 85MHz+GCC(-O3)で34.41秒である。このうち初期集団の発生に14.19秒を要しており、この手法は個体発生を伴う処理に多くの計算量を要する問題点を持つ。
【００４７】
（a-2) 本発明の経路探索方法
第２の提案方法の問題点は、初期集団の発生や交叉の際に、設定した全経由点を通過する個体以外をすべて致死遺伝子としており、致死遺伝子でない個体が生まれるまで個体発生の処理を繰り返していることによるものである。ところが致死遺伝子としている個体中には、有効なスキマタを持つ個体(例えば指定した経由点のうちいくつかを経由する個体)が含まれている。このような有効なスキマタを探索に生かして効率的な探索を行い、計算量を削減するために、ビルディングブロック仮説に基づいた探索手法を提案する。
ビルディングブロック仮設とは、GAの処理過程において、高い適応度のスキマタが積み木のように組み合わされ、より高い適応度を持つ個体を生成し効率的に探索を行うという仮説である。多くの問題点においては、ビルディングブロックが形成されていることが、GAによって効率的に探索できていることの一つの目安となる。
【００４８】
ところでビルディングブロックが形成されるような評価関数の設定は、一般にどのスキマタがビルディングブロックとなるかが未知のため困難である。しかしながら本発明は、設定した経由点を通る経路を探索するものであるため、経由点の通過を表現するスキマタは明らかにビルディングブロックの一部となる。したがって、多くの経由点を経路上に持つ個体に対してより高い適応度を与えることによって、経由点の通過を表現するスキマタの選択確率を高め、これをビルディングブロックとする探索が可能となる。
具体的には、遺伝的アルゴリズムにおいて使用する評価間数として次式
Fitness =1/(Σrlength(i)×αn)  i=1〜M      (3)
を使用する。すなわち、個体（経路）に含まれる指定経由点数ｎに応じて重み  αnを決定し、該経路の出発地から目的地までの距離に重みαnを乗じた値の逆数を遺伝的アルゴリズムにおける評価関数とする。ただし、αnは通過する経由点数nに応じてつける重みで、全経由点数をNとして1≦αN＜αN-1＜・・・＜α0となるように設定する。
【００４９】
この評価関数を導入し、いわき市のマップ情報に対して本発明を適用した結果、図２１と同じ経路を得ることができた。用いた各パラメータや選択淘汰、交叉、突然変異の方法は第２の提案方法と同じである。また重みの大きさはα0=3.0,α1=2.0,α2=1.0とした。本発明の探索に要する計算時間は前述と同じ計算機で 3.40秒であり、第２の提案方法と比較して90.1%の削減となっており、有効である。
【００５０】
（ｂ）重みの決定方法
以上のように、評価間数を決めると計算量の大幅な削減が可能となるが、αnの値を適切に設定することにより、指定した経由点を通過しない経路が得られたり、全経由点を通過しても局所解に陥るような誤探索の確率を減少させ、より良好な探索が可能となる。理論的には、
0003792938.tif 000003
となるように重みを設定すれば最適解が得られる。しかし探索前には最短経路長が未知であることから、この式のみから重みの値を決定することはできない。
以下では、いくつかのシミュレーションを重みを変えて行い、得られる結果から誤探索の原因と適切な重みの値の設定法について考察する。
【００５１】
（b-1) 重みの大きさと最適解の探索能力
図２１の経路探索で用いたマップ情報と２つの指定経由点Ａ，Ｂに対し、αを1〜100までの範囲で変化させて各々100回づつの探索を行い、最適解が得られた回数を調べる。ただし、α0〜α2は、
α0=α, α1=(1+α)/2, α2=1としてる。αと最適解が得られる確率の関係を図２３に示す。図中の点線は最適解の探索確率が95%を超えるαの範囲で3.0≦α≦10.5である。図より、αが大きくなると、最適解の探索確率は急激に上昇した後、再び下降する。α<3.0の範囲とα>10.5の範囲のそれぞれについて、誤探索の原因を以下に示す。
【００５２】
（b-2)  局所解の原因
▲１▼αが小さい場合
α0=1.5, α1=1.25, α2=1.0とした時の探索結果の一例を図２４に示す。この図からわかるように、あらかじめ設定した２点の経由点のうち1点（Ａ点）のみ通過する経路が得られている。これはαが小さいため、
(2点を経由する最短経路長)>(1点を経由する最短経路長×α1)
となるからであり、上記重みを用いた評価関数では最適解を得ることができない。
【００５３】
▲２▼αが大きい場合
αを十分大きくした場合、▲１▼のように論理的に最適解が得られない評価関数となることはないが、局所解に陥る確率が増加する。図２５に
α=100.0, α0=α, α1=(1+α)/2, α2=1
として探索した場合の局所解の一例を示す。
図２５より、指定経由点Ａ，Ｂを全て通過しているものの、局所解に陥っていることがわかる。局所解に陥る原因として、探索段階で個体群の多様性が失われているからである。これを検証するために、世代交代に伴う個体群の実経路長の分散の変化を調べる。その結果を図２６に示す。
【００５４】
図中の実線はα=3.0で最適解が得られている場合の分散、点線はα=100.0で局所解に陥っている場合の分散を示す。図２６より、α=100.0の場合は探索の速い段階で分散が小さくなっており、個体群の多様性が急激に失われていることがわかる。上記多様性の消失の理由について考察する。本発明では初期集団をランダムに生成しており、多くの経由点を持つ個体は少ない経由点を持つ個体に比べて発生確率が低い。αの設定が大きすぎると、経由点数によって適応度に大きな差が生じる。このため、多くの経由点数を持つ少ない個体の選択確率が高くなる。したがって個体群が同じ個体で占められることになり、個体群の多様性が失われる。
個体群の多様性が小さい場合、ビルディングブロックとなりうるスキマタの種類が少なくなり、最適なビルディングブロックが形成される確率が低くなる。さらに、探索処理の速い段階で局所解に収束するため、最適解探索の処理は突然変異のみとなる。しかしながら、突然変異で有効なスキマタを持つ個体が生成されても、適応度の大きな差によって淘汰される可能性が高く、局所解からの脱出は困難である。
【００５５】
一方、αを最適に設定した場合は、個体の選択確率に極端な偏りを生じない。これにより、探索過程での多様性が維持され、個体中の有効なスキマタがビルディングブロックとなって残っていくため、最適解を求めることが可能となる。図２７、図２８にα=3.0の場合とα=100.0の場合のビルディングブロック形成の様子の一例を示す。なお、図中の点線は経由点Ａを持つ個体数、破線は経由点Ｂを持つ個体数、実線はその両方を持つ個体数の推移を示す。
図より、適切なα（＝3.0)を設定した場合、世代交代が進むにしたがって、有効なスキマタが組み合わされることにより、ビルディングブロックを形成していることがわかる。逆にαが大きすぎる場合にはビルディングブロックが形成されていないことがわかる。
【００５６】
（b-3) 重みの決定手順
以上よりαの値は、個体群の多様性を維持し局所解に陥る確率を少なくするために、全経由点を通過する経路が選ばれる範囲で、なるべく小さい値に設定すればよい。つまり、αの初期値を小さく設定し、探索過程で各個体を観察して
(経由点数nの最良個体の経路長)>(経由点数n-1の最良個体の経路長×αn-1)
となる個体が出現した場合に、αの値を大きくすればよい。
図２９は重みの決定処理フローである。
初期時、重みαの値を小さめに設定し（ステップ５５１）、第ｉ世代に対して遺伝的アルゴリズム適用し（ステップ５５２）、ついで、終了条件が満たされたかチェックする(ステップ５５３）。終了条件が満たされていなければ、個体(経路)群の中から、n個の全経由点を通る最短経路長Ｌnと(n-1)個の経由点を通る最短経路長Ｌn-1を求め、
Ｌn＜Ｌn-1・αn-1  (5)
が成立するかチェックし（ステップ５５４）、成立すれば、重みを変更せずｉを歩進し（ステップ５５５）、ステップ５５２以降の処理を繰り返す。
一方、ステップ５５４において、(5)式が成立しなければ重みを25%増大し(ステップ５５６）、ｉを歩進してステップ５５２以降の処理を行う。又、ステップ５５３において、終了条件が満たされれば、処理を終了する。
【００５７】
(b-4) 重み決定の実現例
具体的な数値を用いた上述の重み設定法の実現例を説明する。この実現例では重みαに関する制約を満足する値を各点間の距離を用いて設定し、図２１の地図情報に適用する。まず出発点Ｓ、経由点Ａ，Ｂ、到着点Ｇの各点間の直線距離SA, AB, BG, AG,SGを調べる。これを用いて出発点と到達点の直線距離SG、1点経由の最短直線距離SAG(=SA+AG),2点経由の最短直線距離SABG(=SA+AB+BG)を求め、 α0=(SA+AB+BG)/SG, α1=(SA+AG)/SGを初期値として探索を開始する。
探索過程において、
(経由点数nの最良個体の経路長)>(経由点数n-1の最良個体の経路長×αn-1)
となる個体が出現した場合、α0を初期値の25%ずつ増加し、α1は
α1=(α0-1)×(α1の初期値/α0の初期値)+1
となるように更新する。探索の結果、最適解が得られた。探索時間は3.49秒で、第2の提案方法と比較して89.9%の削減となっている。また、100回の探索を行ったところ、探索終了時の重みの値はいずれも図２３に点線で示した範囲内であり、最適解が得られた回数は99回であった、
以上の結果により、この重みの決定法は有効であるといえる。
【００５８】
（Ｅ）全指定経由点を通る最適巡回経路探索
以上では出発地と目的地が異なる場合において指定された全経由点を通過する最短経路探索法について説明したが、以下では出発地と目的地が同一の場合において指定された全経由点を通る最短巡回経路探索について説明する。
（ａ）遺伝子型の設計
図１９(b)の拡張遺伝子型は出発点と到着点が異なる場合のみ表現可能である。このため、出発地と目的地が同一の場合の遺伝子型を設計する必要がある。本発明では巡回経路を、出発地から(N-1)個の指定経由点を通過して最後のN番目の経由点に到る第１経路と、最後の指定経由点から出発地に到る第２経路とに分け、それぞれの経路を遺伝子型で表現し、各遺伝子型を組み合わせることにより巡回経路（個体）を表現する。すなわち、出発地から(N-1)個の指定経由点を通過して最後のN番目の経由点に到る第１経路の全通過実ノードに対応する仮想ノードを遺伝子として有する図１９（ｂ）の拡張遺伝子型｛Ｇ1｝と、最後の指定経由点から出発地に到る第２経路の全通過実ノードを遺伝子として有する図５（ｃ）の遺伝子型｛Ｇ2｝の二つを連結してなる遺伝子型
｛Ｇ1｝｛Ｇ2｝
で巡回経路（個体）を表現する。
【００５９】
(ｂ)シミュレーション結果
前述のいわき市のマップ情報に対して３つの経由点Ａ，Ｂ，Ｃを指定し、これらの３点をすべて出発地Ｓから巡回する最短巡回経路を探索する。なお、適応度は巡回経路の全長の逆数によって計算し、選択淘汰はルーレット戦略ならびにエリート保存戦略を用いる。また、交叉は二つの遺伝子型から、巡回するノードの順序が類似するような新たな遺伝子が生成されるように行うものとする。突然変異は設定した変異確率に基づいて行う。
個体数を５０、終了条件を５０世代無進化、突然変異確率を５％として実験を行った結果、図３０に示す最短経路ＭＳＲＰが得られた。図より、３つの指定した経由点Ａ，Ｂ，Ｃを全て経由する最短巡回経路が得られていることがわかる。また、点Ｂを経由する経路は重複して通過するノードを持つが、このよう経路を持つ最短巡回経路についても探索が可能となっている。
以上より従来法では困難であった、指定された複数の経由点をすべて巡回する最短巡回経路を一回の処理で探索することが可能となった。
【００６０】
（ｃ）上限コストが設定されている場合の最適巡回経路探索
指定された経由点を巡回する最適巡回経路探索において、巡回コストの上限（たとえば最大走行距離）が設定されていると上限コスト以内で全指定経由点を巡回できない場合である。かかる場合は、上限コスト以下で最大数の指定経由点を巡回する巡回経路を探索して出力する必要がある。
図３１は上限コスト以下で最大数の指定経由点を通る最適巡回経路の探索処理フローである。
指定経由点の数をNとすれば、N個全ての経由点を通る所定数ｍ（例えばm=25)の第１の個体群、(N-1)個の指定経由点を通る所定数ｍの第２の個体群、(N-2)個の指定経由点を通る所定数ｍの第３の個体群、・・１個の指定経由点を通る所定数ｍの第Nの個体群を作成して初期集団とする（ステップ６０１）。尚、個々の個体は前記（ａ）で説明した遺伝子型｛Ｇ1｝｛Ｇ2｝で表現する。
【００６１】
それぞれの個体群について遺伝的アルゴリズムを繰り返し適用して全経由点を通過する最短（最適）の巡回経路、(N-1)個の経由点を通る最短の巡回経路、(N-2)個の経由点を通る最短の巡回経路、・・・、１個の指定経由点を通る最短の巡回経路を求める（ステップ６０２）。この場合、(N-1)個の経由点を通過する個体群に対してＧＡを適用する過程で新たな個体が発生するが、(N-1)個の経由点を通過しない個体は致死遺伝子として殺す必要がある。
各個体群における最適巡回経路が求まれば、設定されている上限コスト(最大走行距離)以下の最適巡回経路が存在するかチェックする(ステップ６０３）。上限コスト以下であるか否かは、適応度(Fitness)の逆数により巡回経路の走行距離を求め、該走行距離が上限コスト(最大走行距離)以下であるか否かにより決定する。
上限コスト(最大走行距離)以下の最適巡回経路が存在すれば、それら最適巡回経路のうちで最大数の経由点を通過する巡回経路を探索し、例えば、ディスプレイ画面に表示する(ステップ６０４）。
【００６２】
（ｄ）シミュレーション結果
前述のいわき市のマップ情報に本手法を適用した実験を行った。指定した経由点は地図中Ａ〜Ｃの３点である。全個体を３つの個体群に分け、それぞれ経由点のうち、１，２，３個の点を通過する個体のみを用いてＧＡ処理を行う。本実験において使用したパラメータは、各個体群につき個体数が５０、終了条件が５０世代無進化、突然変異確率が５％である。
上限コストが２５ｋｍの場合は図３２（ａ）に示すように全経由点を通過する最短巡回経路が得られ、前述の全指定経由点を巡回する最適巡回経路探索法と同じ結果が得られる。又、上限コストが１０ｋｍの場合は、図３２（ｂ）に示すように経由点のうち２点Ａ，Ｂを通る最短巡回経路が得られる。すなわち、上限コストが１０ｋｍの場合、３点を経由する最短巡回経路の走行距離は上限コストを超えており、２点Ａ，Ｂを通る最適経路を解とすることで、上限コストの範囲内で最大数の経由点を通る最短経路を得ることができる。
以上、本発明はカーナビゲーションシステムにおける巡回経路探索や宅配ルート探索などに適用できる。
以上、本発明を実施例により説明したが、本発明は請求の範囲に記載した本発明の主旨に従い種々の変形が可能であり、本発明はこれらを排除するものではない。
【００６３】
【発明の効果】
以上本発明によれば、個体（経路）に含まれる指定経由点数に応じて重みを決定し、該個体の出発地から目的地までの距離に前記重みを乗じた値の逆数を遺伝的アルゴリズムにおける評価関数としたから、従来、致死遺伝子としていた個体を活用して効率的に最適経路探索を行え、計算量を削減し、かつ、短時間で最適経路の探索が可能となった。
又、本発明によれば、重みを最初小さめに設定し、遺伝的アルゴリズムを適用する毎に求まるｎ個の指定経由点を含む経路の最短経路長Ｌnと、(n-1)個の指定経由点を含む経路の最短経路長Ｌn-1に重みαn-1を乗算した経路長Ｌn-1・αn-1との大小を比較し、Ｌn＞Ｌn-1・αn-1であれば、重みを所定割合増加し、重みが最適値になるように制御したから、局所解に陥ることなく最適解を得ることができる。
又、本発明によれば、最適巡回経路を探索する場合、出発地から(N-1)個の指定経由点を通過して最後の経由点に到る経路の全通過実ノードに応じた仮想ノードを遺伝子として有する拡張遺伝子型と、最後の指定経由点から出発地に到る経路の全通過実ノードを遺伝子として有する遺伝子型とを組み合わせて表現した巡回経路（個体）を所定数、初期個体群として用意し、該個体群に遺伝的アルゴリズムを繰り返し適用するように構成したから、指定された全経由地点を通過する最適な巡回経路の探索ができる。
【００６４】
又、本発明によれば、指定経由点を全て通る所定数の第１の個体群、(N-1)個の指定経由点を通る所定数の第２の個体群、(N-2)個の指定経由点を通る所定数の第３の個体群、・・・を設け、それぞれの個体群について遺伝的アルゴリズムを繰り返し適用して全経由点を通過する最適の巡回経路、(N-1)個の経由点を通る最適の巡回経路、(N-2)個の経由点を通る最適の巡回経路、・・・を求め、指定された上限コスト以下で最大数の経由点を通過する巡回経路を探索するように構成したから、上限コスト以下で最大数の指定経由地を通過して出発地に戻る巡回経路の探索ができる。
【図面の簡単な説明】
【図１】本発明の最適経路探索を説明するためのナビゲーション装置の概略構成図である。
【図２】本発明の最適巡回経路探索を説明するためのナビゲーション装置の概略構成図である。
【図３】ＧＡの処理手順説明図である。
【図４】一般的な個体表現説明図である。
【図５】２点間最短経路探索に適用できる遺伝子型の説明図である。
【図６】最短経路探索をＧＡに基づいて実行する構成図である。
【図７】探索終了判定処理フローである。
【図８】選択淘汰処理説明図である。
【図９】選択淘汰処理フローである。
【図１０】一様交叉説明図である。
【図１１】遺伝子型個体に一様交叉を施した例である。
【図１２】交叉処理フローである。
【図１３】突然変異処理説明図である。
【図１４】突然変異処理フローである。
【図１５】最短経路探索結果説明図である。
【図１６】最短経路探索において、最短経路と同時に得られる第２順位、第３順位の経路説明図である。
【図１７】仮想ノードを持つ経路の説明図である。
【図１８】接続ノード例である。
【図１９】拡張遺伝子型説明図である。
【図２０】全指定経由点を通る最短経路の探索結果説明図である。
【図２１】２経由点を含む経路の探索結果説明図である。
【図２２】各パラメータ説明図表である。
【図２３】重みαに対する最適解の探索能力説明図である。
【図２４】局所解の一例である（α＝1.5）である。
【図２５】局所解の一例である（α＝100.0)である。
【図２６】世代交代と個体群の分散の関係図である。
【図２７】ビルディングブロックの形成説明図である（α＝3.0）。
【図２８】ビルディングブロックの形成説明図である（α＝100.0）。
【図２９】重み決定処理フローである。
【図３０】全指定経由点を通る最短巡回経路の探索結果説明図である。
【図３１】上限コスト以下の最短巡回経路の探索処理フローである。
【図３２】上限コスト以下で最大数の指定経由点を通る最適巡回経路の探索結果説明図である。
【符号の説明】
１・・地図情報記憶媒体
２・・車両位置検出部
３・・モコンユニット
４・・ＧＡにより最適経路を探索する経路探索ユニット
５・・モニター
Ｓ・・出発地
Ｇ・・目的地
Ａ，Ｂ・・経由点
ＭＳＰ・・最短経路
【図１】
0003792938.tif 000004
【図２】
0003792938.tif 000005
【図３】
0003792938.tif 000006
【図４】
0003792938.tif 000007
【図５】
0003792938.tif 000008
【図６】
0003792938.tif 000009
【図７】
0003792938.tif 000010
【図８】
0003792938.tif 000011
【図９】
0003792938.tif 000012
【図１０】
0003792938.tif 000013
【図１１】
0003792938.tif 000014
【図１２】
0003792938.tif 000015
【図１３】
0003792938.tif 000016
【図１４】
0003792938.tif 000017
【図１５】
0003792938.tif 000018
【図１６】
0003792938.tif 000019
【図１７】
0003792938.tif 000020
【図１８】
0003792938.tif 000021
【図１９】
0003792938.tif 000022
【図２０】
0003792938.tif 000023
【図２１】
0003792938.tif 000024
【図２２】
0003792938.tif 000025
【図２３】
0003792938.tif 000026
【図２４】
0003792938.tif 000027
【図２５】
0003792938.tif 000028
【図２６】
0003792938.tif 000029
【図２７】
0003792938.tif 000030
【図２８】
0003792938.tif 000031
【図２９】
0003792938.tif 000032
【図３０】
0003792938.tif 000033
【図３１】
0003792938.tif 000034
【図３２】
0003792938.tif 000035