(57)【要約】【課題】遺伝的アルゴリズムの並列処理において、プロセッサ間での個体生成処理時間のばらつきによって生じる待ち時間や通信処理時間が処理を遅らせている。本発明は、この遅れ時間がなく、各プロセッサが効率よく並列処理し最適化問題をより高速にそしてより高品質に解くことができる並列処理装置を提供することにある。【解決手段】複数のプロセッサにより構成した並列処理装置であって、前記複数のそれぞれのプロセッサが生成した最適化問題の解候補としての個体を制限された個体数だけ記憶する共有記憶手段と、前記それぞれのプロセッサは前記共有記憶手段から子個体を生成するための個体を選択する選択手段と、前記選択された個体から新たな個体を生成するための個体生成手段と、前記新たに生成された個体を前記共有記憶手段に記憶させるとき前記共有記憶手段に記憶させる個体の数を制限しつつ記憶させる淘汰手段と、を備えた遺伝的アルゴリズムを用いた並列処理装置。【選択図】  図１
2004258842.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサにより構成し遺伝的アルゴリズムを用いて最適化問題の解を見出す並列処理装置であって、
前記複数のそれぞれのプロセッサが生成した最適化問題の解候補としての個体を制限された個体数だけ記憶する共有記憶手段と、
前記それぞれのプロセッサは前記共有記憶手段から子個体を生成するための個体を選択する選択手段と、
前記選択された個体から新たな個体を生成するための個体生成手段と、
前記新たに生成された個体を前記共有記憶手段に記憶させるとき前記共有記憶手段に記憶させる個体の数を制限しつつ記憶させる淘汰手段と、
を備え、前記それぞれのプロセッサは他のプロセッサとは独立して作動し共有記憶手段に記憶させる遺伝的アルゴリズムを用いた並列処理装置。
【請求項２】
請求項１において、前記共有記憶手段に記憶させる個体の数を制限しつつ記憶させる淘汰手段は、最適化問題の解候補としての個体を前記共有記憶手段に記憶させるとき個体の適応度のよりよいものを残すように個体数を制限して記憶させる淘汰手段を有する遺伝的アルゴリズムを用いた並列処理装置。
【請求項３】
請求項１において、前記個体生成手段は交叉あるいは全突変異を含む遺伝的アルゴリズムにしたがって固体生成をおこなう個体生成手段を有する遺伝的アルゴリズムを用いた並列処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、各種分野における様々な計画立案、設計、制御における組み合わせ最適化問題を解く計算機の並列処理装置関し、特に組み合わせ数が膨大になる問題に対して、高速に処理するために遺伝的アルゴリズムを用い複数の計算機により構成した並列処理装置に関する。
【０００２】
【従来の技術】
【特許文献１】特開２００２−１７００９７号公報
【特許文献２】特開平７−２６２０１６号公報
【特許文献３】特開平８−１９４６７６号公報
組み合わせ最適化問題を、現実的に許容し得る時間内に見つけ出すための手法として、例えば、生物の遺伝と進化のメカニズムを工学的にモデル化した遺伝的アルゴリズム（Ｇｅｎｅｔｉｃ  Ａｌｇｏｒｉｔｈｍ）がある。遺伝的アルゴリズムは探索空間を効率よく探索し、実用上の最適解を速やかに見出す探索アルゴリズムとして有効であるとされ、工学分野においても様々な応用が試みられている。
【０００３】
前記特許文献１では、プロセッサ間の通信によっておこなわれる通信による個体交換は、個体の交換をおこなう他のプロセッサが個体交換可能かどうかの可否をチェックし、可のときのみ個体交換をして記憶する並列処理について述べている。
【０００４】
また、遺伝的アルゴリズムについては、前記特許文献２で「並列遺伝的アルゴリズム実行装置」として紹介されている。この文献の記載は、最適計画立案における場合で、所定時間連続して前記計画の解に変化がないとき、他の処理装置によって生成された、優れた計画案を自身の処理装置に取り込んで最適計画の探索をおこなう、いわば自律淘汰手段を備えたものである。
【０００５】
また、前記特許文献３の記載は、並列計算機を用いて遺伝的アルゴリズムにより最適化問題を解く場合に、各プロセッサが担当する解候補の個体情報の適応度値のみプロセッサ間で通信をおこない、通信量を減少させるものである。すなわち、プロセッサ間の通信に多くの時間を要する場合には、交叉対象の個体のみ各プロセッサ間で通信することにより、通信時間の削減をはかる方法を提案している。
【０００６】
【発明が解決しようとする課題】
並列計算機を用いた遺伝的アルゴリズムの並列処理において、相互の通信時間の短縮がいろいろ試みられている。しかし、実際の処理では各々の個体生成の処理量が不均等であったり、マルチタスクシステムでは当該処理以外の処理が平行処理されており、特定のプロセッサやバスまたはハードディスク等の電子計算機資源の利用負荷が高くなっていたりすると、各プロセッサの個体生成の処理時間がどうしても不均等になる。
【０００７】
これらの問題点を以下の例により説明する。図７は、図６による２個体、２世代、の遺伝的アルゴリズムのタイムチャートを示している。
先ず、初期個体生成を行い、１世代目の個体（１）生成のための選択、個体（１）生成、１世代目の個体（２）生成のための選択、個体（２）生成、１世代目の淘汰、２世代目の個体（１）生成のための選択、個体（１）生成、２世代目の個体（２）生成のための選択、個体（２）生成、２世代目の淘汰、の順に処理が行われる。
【０００８】
図６は、遺伝的アルゴリズムのフローの一例を示している。まずステップＳ４１の初期個体生成では、最適化問題の解の候補を生物の染色体のアナロジーとしての数列等で表現し、これを予め指定された数Ｎ（この数Ｎは個体数と呼ばれる）だけ作成する。この最適化問題の解の候補を表現する数列等を個体と呼ぶ。個体数は一つでも複数でもよい。ステップＳ４２では、終了判定を満たしたかを判定する。ここで終了判定例として、予め指定された繰り返し数Ｇが満たされたか（この数Ｇは世代数と呼ばれる）、予め指定された処理経過時間が費やされたか、等が考えられる。ステップＳ４３では、個体数Ｎ個に対して計Ｎ回の繰り返し処理がおこなわれたかどうかを判定する。
【０００９】
ステップＳ４４の選択では、既存の個体から子個体のもととなる親個体を選択する。ここで親個体を選択する方法として、既存の各個体の適応度とその総計を求めて適応度の総計に対する各個体の割合を選択確率として個体を選択するルーレット選択や、適応度の大きな個体から選択するランキング選択、等が考えられる。
【００１０】
ステップＳ４５の個体生成では、ステップＳ４４で選択した親個体から子個体を生成する。ここでの子個体の生成方法として、複数の親個体を組み合わせる交叉や、１つの親個体の要素をランダムに変化させる突然変異、等がある。ステップＳ４６では、個体が親個体Ｎ個と子個体Ｎ個の合計２Ｎ個となったものをＮ個に制限する。ここで個体の数の制限方法として、子個体のみを残す方式や、個体の最適化問題に対する適応度の良いものを残す方式、等が考えられる。
【００１１】
このような処理は、逐次処理で実行できるが、並列計算機を用いて並列処理することができる。例えば、Ｐ台のプロセッサを持つ並列計算機を用いて、Ｎ個の個体の計算を行う場合、各プロセッサはＮ個の個体のコピーを持つが、各世代の個体生成処理は、各プロセッサがＮ／Ｐ個の個体生成処理を担当し、新たに作成された全ての個体を各プロセッサ間で通信によって更新する方法である。また、日々の技術進歩により、ＬＡＮやバス等のデータ通信機器の性能も向上しており、同じデータ容量でも、この通信時間は削減されつつある。
【００１２】
図８はＰ個のプロセッサを用いた並列処理による遺伝的アルゴリズムの各プロセッサのフローである。まずステップＳ６１の初期個体生成では、Ｓ４１と同様に個体を個体数Ｎだけ作成する。ステップＳ６２では、Ｓ４２と同様に、終了判定を満たしたかを判定する。ステップＳ６３では、個体数Ｎ／Ｐ回の繰り返しを行ったかを判定する。ステップＳ６４では、Ｓ４４と同様に、既存の個体から子個体のもととなる親個体を選択する。ステップＳ６５では、Ｓ４５と同様に、ステップＳ６４で選択した親個体から子個体を生成する。ステップＳ６６では、新たに作成された各子個体を各プロセッサ間で通信によって送受信して各プロセッサでＮ個体全ての情報を得る。ステップＳ６７では、Ｓ４６と同様に、個体が親個体Ｎ個と子個体Ｎ個の合計２Ｎ個であるものをＮ個に制限する。
【００１３】
図９の（Ａ），（Ｂ）は、図８による、２個体、２世代、の遺伝的アルゴリズムの各個体生成処理時間が均等でプロセッサ数が２つの場合のタイムチャートを示している。プロセッサ＃ａでは、先ず、初期個体生成を行い、１世代目の個体生成のための選択、個体生成、プロセッサ＃ｂとの通信、１世代目の淘汰、２世代目の個体生成のための選択、個体生成、プロセッサ＃ｂとの通信、２世代目の淘汰、の順に処理が行われる。プロセッサ＃ｂでは、先ず、初期個体生成を行い、１世代目の個体生成のための選択、個体生成、プロセッサ＃ａとの通信、１世代目の淘汰、２世代目の個体生成のための選択、個体生成、プロセッサ＃ａとの通信、２世代目の淘汰、の順に処理が行われる。この場合は全く並行に処理が進んでいて、お互いに処理時間待ちが発生していない。
【００１４】
これに対して図９の（Ｃ）、（Ｄ）は図８による、２個体、２世代、の遺伝的アルゴリズムの各個体生成処理時間が不均等でプロセッサ数が２つの場合のタイムチャートを示している。この場合も、プロセッサ＃ａ、プロセッサ＃ｂでの処理内容と処理順番は図９の（Ａ），（Ｂ）と同じであるが、各個体生成の処理時間が不均等であるため、各プロセッサでの個体生成処理の終了時刻が異なる。また、通信は各プロセッサで同期する必要があるため、斜線部分Ｗａ，Ｗｂで示したような待ち時間が生じてしまう。
【００１５】
そのため各プロセッサは利用効率が悪くなり、その結果、遺伝的アルゴリズムの処理の効率が悪くなってしまうという問題が生じる。特に最適化問題の処理の規模が大きくなるとこの待ち時間は大きくなり、並列化処理による高速化は期待できなくなる。
【００１６】
本発明は、規模が大きい最適化問題における処理に伴う問題を解決し、並列処理による効率向上を図るための、遺伝的アルゴリズムを用いた並列処理装置を提供するものである。
【００１７】
【課題を解決するための手段】
前記課題は、以下の並列処理手段により解決することができる。
複数のプロセッサにより構成し遺伝的アルゴリズムを用いて最適化問題の解を見出す並列処理装置であって、
前記複数のそれぞれのプロセッサが生成した最適化問題の解候補としての個体を制限された個体数だけ記憶する共有記憶手段と、
前記それぞれのプロセッサは前記共有記憶手段から子個体を生成するための個体を選択する選択手段と、
前記選択された個体から新たな個体を生成するための個体生成手段と、
前記新たに生成された個体を前記共有記憶手段に記憶させるとき前記共有記憶手段に記憶させる個体の数を制限しつつ記憶させる淘汰手段と、
を備え、前記それぞれのプロセッサは他のプロセッサとは独立して作動し共有記憶手段に記憶させる遺伝的アルゴリズムを用いた並列処理装置により前記課題を解決することができる。
【００１８】
また、前記共有記憶手段に記憶させる個体の数を制限しつつ記憶させる淘汰手段は、最適化問題の解候補としての個体を前記共有記憶手段に記憶させるとき個体の適応度のよりよいものを残すように個体数を制限して記憶させる淘汰手段であること。また、前記個体生成手段は交叉あるいは全突変異を含む遺伝的アルゴリズムにしたがって固体生成をおこなう個体生成手段を有することにより前記課題を解決することができる。
【００１９】
【発明の実施の形態】
以下、図１を用いて本発明の実施の形態に係る遺伝的アルゴリズム並列処理装置を説明する。図１は本発明に係る遺伝的アルゴリズムを用いた並列処理装置の機能構成を示している。本実施例の遺伝的アルゴリズム並列処理装置は、図１に示すように、プロセッサ＃ａ〜プロセッサ＃ｐの複数のプロセッサ用いて構成している。プロセッサ＃ａについて説明すると、ＧＡ（遺伝的アルゴリズム）制御手段１１ａと、初期個体生成手段１２ａと、個体生成手段１３ａと、選択手段１４ａと淘汰手段１５ａを備えている。これらの構成により複数のプロセッサ＃ａ〜＃ｐを有し、遺伝的アルゴリズムを用いることにより最適化問題を処理する並列処理装置を構成している。
【００２０】
また、各プロセッサの操作対象である個体を記憶する共有記憶手段１６を１つ備え、更に各プロセッサは、共有記憶手段から子個体を生成するための親個体としての固体を選択する選択手段１４ａと、生成した子個体を共有記憶手段１６に記憶させると同時に、共有記憶手段１６が記憶している個体の数を制限する淘汰手段１５ａとにより、ＧＡ制御手段１１ａによる制御のもと、最適な解をもとめていく。プロセッサ＃ｂ〜ｐについても構成はまったく同じである。
【００２１】
ここで、プロセッサａについていうと、ＧＡ制御手段１１ａと初期個体生成手段１２ａと個体生成手段１３ａと選択手段１４ａと淘汰手段１５ａは、電子計算機上のプログラム（プロセス）として実現できる。共有記憶手段１６は、ＳＭＰ（Ｓｙｍｍｅｔｒｉｃ  Ｍｕｌｔｉｐｌｅ  Ｐｒｏｃｅｓｓｏｒ）と言われている電子計算機上の共有メモリとすることで、当該電子計算機の複数のプロセッサからアクセスできる記憶装置として実現できる。また、共有記憶手段１６はＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）とすることで、ネットワーク上の、複数の電子計算機のプロセッサからアクセスできる記憶装置としても実現することができる。
【００２２】
前記構成により、各プロセッサは他のプロセッサと独立に動作することが可能となる。以下、本発明の動作例について図２と図３により詳細に説明する。説明のためプロセッサ数Ｐ＝２、個体数Ｎ＝２、世代数Ｇ＝２とするが、実際はプロセッサ数、個体数、世代数は任意の自然数であってもかまわない。本装置の処理が開始されると、この例ではプロセッサ数は２であるから、プロセッサ＃ａとプロセッサ＃ｂとでは、図２のフローは独立に、しかも非同期に動作することができる。図２はプロセッサ＃ａの例について示している。
【００２３】
図２において、プロセッサ＃ａでは、ステップＳ２１で初期個体生成手段１２にて１個の初期個体を生成し、共有記憶手段１６に初期個体を記憶させる。Ｓ２２では、世代数Ｇ＝２が満たされたかのチェックが行われる。しかし、現在は１世代目なのでＮＯである。そしてステップＳ２３で個体数／Ｐ＝２／２＝１回の繰り返しが行われたかのチェックが行われる。現在は０回目なのでＮＯである。
【００２４】
ステップＳ２４では選択手段１４ａにより、共有記憶手段１６より個体（親個体）が選択される。これは共有記憶手段１６に記憶されている個体を親個体として個体を生成するためのものである。それは、親個体として記憶されている個体を選択するというわけではなく、共有記憶手段１６から読み出した個体を親として子個体を生成するので便宜上親という。ここで親個体を選択する方法として、既存の各個体の適応度とその総計を求めて適応度の総計に対する各個体の割合を選択確率として個体を選択するルーレット選択や、適応度の大きな個体から選択するランキング選択、等が考えられる。
【００２５】
ステップＳ２５における個体生成は、選択された個体を親として新たに個体を生成する（個体生成手段１３ａ）。それは、前記ステップＳ２４で選択された親個体をもとに、交叉、突然変異等の処理を行って、１世代目の個体が作成される。そして、ステップＳ２３で、個体数／Ｐ＝２／２＝１回、のチェックがおこなわれ、（個体数／ｐ）の繰り返しが行われたかのチェックが行われる。いまは１回目なのでＹｅｓである。ステップＳ２６に進み、前記Ｓ２５で生成した個体を共有記憶手段１６に記憶させる。ここで、親個体２個と子個体１個の合計３個となったものを２個に制限する。
【００２６】
ここで個体の数の制限方法として、個体の作成された時刻の新しいものを残す方式や、個体の最適化問題に対する適応度の良いものを残す方式、等が考えられる。例えば、最大値を求めるような最適化問題の場合は、生成された個体が記憶されている個体のうち一番小さいものよりも大きい場合はそれを記憶手段に記憶させ、記憶されている個体の一番小さいものを削除する。このようにして、個体数を２個に制限することがおこなわれる。更に（Ｓ２２）（Ｓ２３）（Ｓ２４）（Ｓ２５）（Ｓ２３）（Ｓ２５）（Ｓ２３）と進み処理を終了する。同様にプロセッサ＃ｂでもプロセッサ＃ａと同じ処理が行われる。
【００２７】
図３により、共有記憶装置１６について説明する。例えば個体（１）のＰｂは、プロセッサ＃ｂにより処理された結果が記憶されていることを示している。個体（Ｎ）は、プロセッサＰａはプロセッサ＃ａにより処理された結果を共有記憶手段に記憶されていることを示している。このように共有記憶装置１６には複数のプロセッサで処理された結果のうち、個体数Ｎで制限された結果が記憶されている。その個体はいわゆる解の候補であって、数列又は文字列に変換された染色体を表わしている。図４はこの固体を、１，０、の数列で表した例であって、図４の（Ａ）は記憶手段に記憶されている数列（解候補）を示している。ステップＳ２５の個体生成ではこれに基づいて図４の（Ｂ）あるいは（Ｃ）の解候補を生成する。その方法は、交叉（２つの親個体から新しい子個体を生成）、あるいは突然変異（ランダムに突然変異をおこす）などの方法が適用される。
【００２８】
そして（個体数／Ｐ）だけ繰り返した場合は、淘汰手段ステップＳ２６により共有記憶手段１６に記憶させる。この場合、最適化問題が最大値を求めるものであったとする。その場合，いま共有記憶手段１６に記憶されている個体数はＮ個に制限されているので、個体（Ｎ）個の内の最も小さい値よりも大きくない限り記憶手段に記憶させることが出来ない。すなわち、個体（Ｎ）個の内の最も小さい値よりも小さいときは、解候補としては適当ではないので、Ｎ個に制限されたて解候補にはなり得ないことになる。また、個体（Ｎ）個の内の最も小さい値よりは大きいときは、すでに記憶されている最小値が記憶手段から削除され、新たな解候補が記憶されることになる。最小化問題のときは逆になるが、動作は全く同じである。前記淘汰手段はこれらの判断をした結果を、記憶手段１６に記憶させることになる。この例では単純に大小関係について述べたが、実際には解としての適合度などが評価され、適合度が大きい方が生き残るような記憶処理がおこなわれる。
【００２９】
これらの処理結果を図５に示す。プロセッサａ、ｂ、による処理の流れを模式的に示した。プロセッサａ、ｂ、とも相手の処理の同期を待つことなく、独自に処理が進んでいる。このようにたとえＳ２５における個体生成の処理時間が不均等であってもプロセッサ＃ａとプロセッサ＃ｂとは独立（非同期）に動作できるため、待ち時間の例として図９に斜線で示したような処理の待ち時間が発生せず、さらに通信処理時間も必要ではないので、タイミングチャートは図５のようになる。
【００３０】
この並列処理方式では、図９に示したような待ち時間（斜線部分）の発生はなく極めて効率的に処理が進められていることがわかる。図５のように（Ｓ２５）個体生成の処理時間が不均等でもプロセッサ＃１とプロセッサ＃２とは独立（非同期）に動作できるため、図９（Ｃ），（Ｄ）の斜線部分で示したようなプロセッサの待ち時間が発生しない。
【００３１】
つまり、本発明では各プロセッサにおける処理の待ち時間の発生がなく、通信処理も必要としないため、従来技術と比較して、より高速に解を求めることができるか、または単位時間当たりの個体生成をより多く処理できるため、解の質が向上する効果もある。
【００３２】
【発明の効果】
本発明によれば、遺伝的アルゴリズムの並列処理における通信処理時の待ち時間がなく、各プロセッサの処理能力を十分に利用できるから、単位時間当たりの個体生成数が多くなるから、最適化問題をより高速により高品質に解くことができる。
【図面の簡単な説明】
【図１】本発明の一実施例を示す機能構成図である。
【図２】図１の処理のフローを示す図である。
【図３】共有記憶手段の説明図である。
【図４】固体の構成例を示す図である。
【図５】図１におけるプロセッサａ，ｂの場合の処理の流れを示す図である。
【図６】遺伝的アルゴリズムの処理のフロー例を示す図である。
【図７】図６において、各個体作成処理時間が均等の場合の、処理のタイミングチャート例を示す図である。
【図８】図６において、各個体作成処理時間が不均等の場合の、処理のフローの例を示す図である。
【図９】個体作成処理時間が不均等の場合の、処理のタイミングチャート例を示す図である。
【符号の説明】
１１（ａ〜ｐ）；ＧＡ制御手段  １２（ａ〜ｐ）；初期個体生成手段  １３（ａ〜ｐ）；個体生成手段  １４（ａ〜ｐ）；選択手段  １５（ａ〜ｐ）；淘汰手段
１６；共有記憶手段。
【図１】
2004258842.tif 000003
【図２】
2004258842.tif 000004
【図３】
2004258842.tif 000005
【図４】
2004258842.tif 000006
【図５】
2004258842.tif 000007
【図６】
2004258842.tif 000008
【図７】
2004258842.tif 000009
【図８】
2004258842.tif 000010
【図９】
2004258842.tif 000011