JP2004258842A - 遺伝的アルゴリズムを用いた並列処理装置 - Google Patents
遺伝的アルゴリズムを用いた並列処理装置 Download PDFInfo
- Publication number
- JP2004258842A JP2004258842A JP2003046897A JP2003046897A JP2004258842A JP 2004258842 A JP2004258842 A JP 2004258842A JP 2003046897 A JP2003046897 A JP 2003046897A JP 2003046897 A JP2003046897 A JP 2003046897A JP 2004258842 A JP2004258842 A JP 2004258842A
- Authority
- JP
- Japan
- Prior art keywords
- individual
- individuals
- shared storage
- processors
- generation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Multi Processors (AREA)
Abstract
【課題】遺伝的アルゴリズムの並列処理において、プロセッサ間での個体生成処理時間のばらつきによって生じる待ち時間や通信処理時間が処理を遅らせている。本発明は、この遅れ時間がなく、各プロセッサが効率よく並列処理し最適化問題をより高速にそしてより高品質に解くことができる並列処理装置を提供することにある。
【解決手段】複数のプロセッサにより構成した並列処理装置であって、前記複数のそれぞれのプロセッサが生成した最適化問題の解候補としての個体を制限された個体数だけ記憶する共有記憶手段と、前記それぞれのプロセッサは前記共有記憶手段から子個体を生成するための個体を選択する選択手段と、前記選択された個体から新たな個体を生成するための個体生成手段と、前記新たに生成された個体を前記共有記憶手段に記憶させるとき前記共有記憶手段に記憶させる個体の数を制限しつつ記憶させる淘汰手段と、を備えた遺伝的アルゴリズムを用いた並列処理装置。
【選択図】 図1
【解決手段】複数のプロセッサにより構成した並列処理装置であって、前記複数のそれぞれのプロセッサが生成した最適化問題の解候補としての個体を制限された個体数だけ記憶する共有記憶手段と、前記それぞれのプロセッサは前記共有記憶手段から子個体を生成するための個体を選択する選択手段と、前記選択された個体から新たな個体を生成するための個体生成手段と、前記新たに生成された個体を前記共有記憶手段に記憶させるとき前記共有記憶手段に記憶させる個体の数を制限しつつ記憶させる淘汰手段と、を備えた遺伝的アルゴリズムを用いた並列処理装置。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、各種分野における様々な計画立案、設計、制御における組み合わせ最適化問題を解く計算機の並列処理装置関し、特に組み合わせ数が膨大になる問題に対して、高速に処理するために遺伝的アルゴリズムを用い複数の計算機により構成した並列処理装置に関する。
【0002】
【従来の技術】
【特許文献1】特開2002−170097号公報
【特許文献2】特開平7−262016号公報
【特許文献3】特開平8−194676号公報
組み合わせ最適化問題を、現実的に許容し得る時間内に見つけ出すための手法として、例えば、生物の遺伝と進化のメカニズムを工学的にモデル化した遺伝的アルゴリズム(Genetic Algorithm)がある。遺伝的アルゴリズムは探索空間を効率よく探索し、実用上の最適解を速やかに見出す探索アルゴリズムとして有効であるとされ、工学分野においても様々な応用が試みられている。
【0003】
前記特許文献1では、プロセッサ間の通信によっておこなわれる通信による個体交換は、個体の交換をおこなう他のプロセッサが個体交換可能かどうかの可否をチェックし、可のときのみ個体交換をして記憶する並列処理について述べている。
【0004】
また、遺伝的アルゴリズムについては、前記特許文献2で「並列遺伝的アルゴリズム実行装置」として紹介されている。この文献の記載は、最適計画立案における場合で、所定時間連続して前記計画の解に変化がないとき、他の処理装置によって生成された、優れた計画案を自身の処理装置に取り込んで最適計画の探索をおこなう、いわば自律淘汰手段を備えたものである。
【0005】
また、前記特許文献3の記載は、並列計算機を用いて遺伝的アルゴリズムにより最適化問題を解く場合に、各プロセッサが担当する解候補の個体情報の適応度値のみプロセッサ間で通信をおこない、通信量を減少させるものである。すなわち、プロセッサ間の通信に多くの時間を要する場合には、交叉対象の個体のみ各プロセッサ間で通信することにより、通信時間の削減をはかる方法を提案している。
【0006】
【発明が解決しようとする課題】
並列計算機を用いた遺伝的アルゴリズムの並列処理において、相互の通信時間の短縮がいろいろ試みられている。しかし、実際の処理では各々の個体生成の処理量が不均等であったり、マルチタスクシステムでは当該処理以外の処理が平行処理されており、特定のプロセッサやバスまたはハードディスク等の電子計算機資源の利用負荷が高くなっていたりすると、各プロセッサの個体生成の処理時間がどうしても不均等になる。
【0007】
これらの問題点を以下の例により説明する。図7は、図6による2個体、2世代、の遺伝的アルゴリズムのタイムチャートを示している。
先ず、初期個体生成を行い、1世代目の個体(1)生成のための選択、個体(1)生成、1世代目の個体(2)生成のための選択、個体(2)生成、1世代目の淘汰、2世代目の個体(1)生成のための選択、個体(1)生成、2世代目の個体(2)生成のための選択、個体(2)生成、2世代目の淘汰、の順に処理が行われる。
【0008】
図6は、遺伝的アルゴリズムのフローの一例を示している。まずステップS41の初期個体生成では、最適化問題の解の候補を生物の染色体のアナロジーとしての数列等で表現し、これを予め指定された数N(この数Nは個体数と呼ばれる)だけ作成する。この最適化問題の解の候補を表現する数列等を個体と呼ぶ。個体数は一つでも複数でもよい。ステップS42では、終了判定を満たしたかを判定する。ここで終了判定例として、予め指定された繰り返し数Gが満たされたか(この数Gは世代数と呼ばれる)、予め指定された処理経過時間が費やされたか、等が考えられる。ステップS43では、個体数N個に対して計N回の繰り返し処理がおこなわれたかどうかを判定する。
【0009】
ステップS44の選択では、既存の個体から子個体のもととなる親個体を選択する。ここで親個体を選択する方法として、既存の各個体の適応度とその総計を求めて適応度の総計に対する各個体の割合を選択確率として個体を選択するルーレット選択や、適応度の大きな個体から選択するランキング選択、等が考えられる。
【0010】
ステップS45の個体生成では、ステップS44で選択した親個体から子個体を生成する。ここでの子個体の生成方法として、複数の親個体を組み合わせる交叉や、1つの親個体の要素をランダムに変化させる突然変異、等がある。ステップS46では、個体が親個体N個と子個体N個の合計2N個となったものをN個に制限する。ここで個体の数の制限方法として、子個体のみを残す方式や、個体の最適化問題に対する適応度の良いものを残す方式、等が考えられる。
【0011】
このような処理は、逐次処理で実行できるが、並列計算機を用いて並列処理することができる。例えば、P台のプロセッサを持つ並列計算機を用いて、N個の個体の計算を行う場合、各プロセッサはN個の個体のコピーを持つが、各世代の個体生成処理は、各プロセッサがN/P個の個体生成処理を担当し、新たに作成された全ての個体を各プロセッサ間で通信によって更新する方法である。また、日々の技術進歩により、LANやバス等のデータ通信機器の性能も向上しており、同じデータ容量でも、この通信時間は削減されつつある。
【0012】
図8はP個のプロセッサを用いた並列処理による遺伝的アルゴリズムの各プロセッサのフローである。まずステップS61の初期個体生成では、S41と同様に個体を個体数Nだけ作成する。ステップS62では、S42と同様に、終了判定を満たしたかを判定する。ステップS63では、個体数N/P回の繰り返しを行ったかを判定する。ステップS64では、S44と同様に、既存の個体から子個体のもととなる親個体を選択する。ステップS65では、S45と同様に、ステップS64で選択した親個体から子個体を生成する。ステップS66では、新たに作成された各子個体を各プロセッサ間で通信によって送受信して各プロセッサでN個体全ての情報を得る。ステップS67では、S46と同様に、個体が親個体N個と子個体N個の合計2N個であるものをN個に制限する。
【0013】
図9の(A),(B)は、図8による、2個体、2世代、の遺伝的アルゴリズムの各個体生成処理時間が均等でプロセッサ数が2つの場合のタイムチャートを示している。プロセッサ#aでは、先ず、初期個体生成を行い、1世代目の個体生成のための選択、個体生成、プロセッサ#bとの通信、1世代目の淘汰、2世代目の個体生成のための選択、個体生成、プロセッサ#bとの通信、2世代目の淘汰、の順に処理が行われる。プロセッサ#bでは、先ず、初期個体生成を行い、1世代目の個体生成のための選択、個体生成、プロセッサ#aとの通信、1世代目の淘汰、2世代目の個体生成のための選択、個体生成、プロセッサ#aとの通信、2世代目の淘汰、の順に処理が行われる。この場合は全く並行に処理が進んでいて、お互いに処理時間待ちが発生していない。
【0014】
これに対して図9の(C)、(D)は図8による、2個体、2世代、の遺伝的アルゴリズムの各個体生成処理時間が不均等でプロセッサ数が2つの場合のタイムチャートを示している。この場合も、プロセッサ#a、プロセッサ#bでの処理内容と処理順番は図9の(A),(B)と同じであるが、各個体生成の処理時間が不均等であるため、各プロセッサでの個体生成処理の終了時刻が異なる。また、通信は各プロセッサで同期する必要があるため、斜線部分Wa,Wbで示したような待ち時間が生じてしまう。
【0015】
そのため各プロセッサは利用効率が悪くなり、その結果、遺伝的アルゴリズムの処理の効率が悪くなってしまうという問題が生じる。特に最適化問題の処理の規模が大きくなるとこの待ち時間は大きくなり、並列化処理による高速化は期待できなくなる。
【0016】
本発明は、規模が大きい最適化問題における処理に伴う問題を解決し、並列処理による効率向上を図るための、遺伝的アルゴリズムを用いた並列処理装置を提供するものである。
【0017】
【課題を解決するための手段】
前記課題は、以下の並列処理手段により解決することができる。
複数のプロセッサにより構成し遺伝的アルゴリズムを用いて最適化問題の解を見出す並列処理装置であって、
前記複数のそれぞれのプロセッサが生成した最適化問題の解候補としての個体を制限された個体数だけ記憶する共有記憶手段と、
前記それぞれのプロセッサは前記共有記憶手段から子個体を生成するための個体を選択する選択手段と、
前記選択された個体から新たな個体を生成するための個体生成手段と、
前記新たに生成された個体を前記共有記憶手段に記憶させるとき前記共有記憶手段に記憶させる個体の数を制限しつつ記憶させる淘汰手段と、
を備え、前記それぞれのプロセッサは他のプロセッサとは独立して作動し共有記憶手段に記憶させる遺伝的アルゴリズムを用いた並列処理装置により前記課題を解決することができる。
【0018】
また、前記共有記憶手段に記憶させる個体の数を制限しつつ記憶させる淘汰手段は、最適化問題の解候補としての個体を前記共有記憶手段に記憶させるとき個体の適応度のよりよいものを残すように個体数を制限して記憶させる淘汰手段であること。また、前記個体生成手段は交叉あるいは全突変異を含む遺伝的アルゴリズムにしたがって固体生成をおこなう個体生成手段を有することにより前記課題を解決することができる。
【0019】
【発明の実施の形態】
以下、図1を用いて本発明の実施の形態に係る遺伝的アルゴリズム並列処理装置を説明する。図1は本発明に係る遺伝的アルゴリズムを用いた並列処理装置の機能構成を示している。本実施例の遺伝的アルゴリズム並列処理装置は、図1に示すように、プロセッサ#a〜プロセッサ#pの複数のプロセッサ用いて構成している。プロセッサ#aについて説明すると、GA(遺伝的アルゴリズム)制御手段11aと、初期個体生成手段12aと、個体生成手段13aと、選択手段14aと淘汰手段15aを備えている。これらの構成により複数のプロセッサ#a〜#pを有し、遺伝的アルゴリズムを用いることにより最適化問題を処理する並列処理装置を構成している。
【0020】
また、各プロセッサの操作対象である個体を記憶する共有記憶手段16を1つ備え、更に各プロセッサは、共有記憶手段から子個体を生成するための親個体としての固体を選択する選択手段14aと、生成した子個体を共有記憶手段16に記憶させると同時に、共有記憶手段16が記憶している個体の数を制限する淘汰手段15aとにより、GA制御手段11aによる制御のもと、最適な解をもとめていく。プロセッサ#b〜pについても構成はまったく同じである。
【0021】
ここで、プロセッサaについていうと、GA制御手段11aと初期個体生成手段12aと個体生成手段13aと選択手段14aと淘汰手段15aは、電子計算機上のプログラム(プロセス)として実現できる。共有記憶手段16は、SMP(Symmetric Multiple Processor)と言われている電子計算機上の共有メモリとすることで、当該電子計算機の複数のプロセッサからアクセスできる記憶装置として実現できる。また、共有記憶手段16はSAN(Storage Area Network)やNAS(Network Attached Storage)とすることで、ネットワーク上の、複数の電子計算機のプロセッサからアクセスできる記憶装置としても実現することができる。
【0022】
前記構成により、各プロセッサは他のプロセッサと独立に動作することが可能となる。以下、本発明の動作例について図2と図3により詳細に説明する。説明のためプロセッサ数P=2、個体数N=2、世代数G=2とするが、実際はプロセッサ数、個体数、世代数は任意の自然数であってもかまわない。本装置の処理が開始されると、この例ではプロセッサ数は2であるから、プロセッサ#aとプロセッサ#bとでは、図2のフローは独立に、しかも非同期に動作することができる。図2はプロセッサ#aの例について示している。
【0023】
図2において、プロセッサ#aでは、ステップS21で初期個体生成手段12にて1個の初期個体を生成し、共有記憶手段16に初期個体を記憶させる。S22では、世代数G=2が満たされたかのチェックが行われる。しかし、現在は1世代目なのでNOである。そしてステップS23で個体数/P=2/2=1回の繰り返しが行われたかのチェックが行われる。現在は0回目なのでNOである。
【0024】
ステップS24では選択手段14aにより、共有記憶手段16より個体(親個体)が選択される。これは共有記憶手段16に記憶されている個体を親個体として個体を生成するためのものである。それは、親個体として記憶されている個体を選択するというわけではなく、共有記憶手段16から読み出した個体を親として子個体を生成するので便宜上親という。ここで親個体を選択する方法として、既存の各個体の適応度とその総計を求めて適応度の総計に対する各個体の割合を選択確率として個体を選択するルーレット選択や、適応度の大きな個体から選択するランキング選択、等が考えられる。
【0025】
ステップS25における個体生成は、選択された個体を親として新たに個体を生成する(個体生成手段13a)。それは、前記ステップS24で選択された親個体をもとに、交叉、突然変異等の処理を行って、1世代目の個体が作成される。そして、ステップS23で、個体数/P=2/2=1回、のチェックがおこなわれ、(個体数/p)の繰り返しが行われたかのチェックが行われる。いまは1回目なのでYesである。ステップS26に進み、前記S25で生成した個体を共有記憶手段16に記憶させる。ここで、親個体2個と子個体1個の合計3個となったものを2個に制限する。
【0026】
ここで個体の数の制限方法として、個体の作成された時刻の新しいものを残す方式や、個体の最適化問題に対する適応度の良いものを残す方式、等が考えられる。例えば、最大値を求めるような最適化問題の場合は、生成された個体が記憶されている個体のうち一番小さいものよりも大きい場合はそれを記憶手段に記憶させ、記憶されている個体の一番小さいものを削除する。このようにして、個体数を2個に制限することがおこなわれる。更に(S22)(S23)(S24)(S25)(S23)(S25)(S23)と進み処理を終了する。同様にプロセッサ#bでもプロセッサ#aと同じ処理が行われる。
【0027】
図3により、共有記憶装置16について説明する。例えば個体(1)のPbは、プロセッサ#bにより処理された結果が記憶されていることを示している。個体(N)は、プロセッサPaはプロセッサ#aにより処理された結果を共有記憶手段に記憶されていることを示している。このように共有記憶装置16には複数のプロセッサで処理された結果のうち、個体数Nで制限された結果が記憶されている。その個体はいわゆる解の候補であって、数列又は文字列に変換された染色体を表わしている。図4はこの固体を、1,0、の数列で表した例であって、図4の(A)は記憶手段に記憶されている数列(解候補)を示している。ステップS25の個体生成ではこれに基づいて図4の(B)あるいは(C)の解候補を生成する。その方法は、交叉(2つの親個体から新しい子個体を生成)、あるいは突然変異(ランダムに突然変異をおこす)などの方法が適用される。
【0028】
そして(個体数/P)だけ繰り返した場合は、淘汰手段ステップS26により共有記憶手段16に記憶させる。この場合、最適化問題が最大値を求めるものであったとする。その場合,いま共有記憶手段16に記憶されている個体数はN個に制限されているので、個体(N)個の内の最も小さい値よりも大きくない限り記憶手段に記憶させることが出来ない。すなわち、個体(N)個の内の最も小さい値よりも小さいときは、解候補としては適当ではないので、N個に制限されたて解候補にはなり得ないことになる。また、個体(N)個の内の最も小さい値よりは大きいときは、すでに記憶されている最小値が記憶手段から削除され、新たな解候補が記憶されることになる。最小化問題のときは逆になるが、動作は全く同じである。前記淘汰手段はこれらの判断をした結果を、記憶手段16に記憶させることになる。この例では単純に大小関係について述べたが、実際には解としての適合度などが評価され、適合度が大きい方が生き残るような記憶処理がおこなわれる。
【0029】
これらの処理結果を図5に示す。プロセッサa、b、による処理の流れを模式的に示した。プロセッサa、b、とも相手の処理の同期を待つことなく、独自に処理が進んでいる。このようにたとえS25における個体生成の処理時間が不均等であってもプロセッサ#aとプロセッサ#bとは独立(非同期)に動作できるため、待ち時間の例として図9に斜線で示したような処理の待ち時間が発生せず、さらに通信処理時間も必要ではないので、タイミングチャートは図5のようになる。
【0030】
この並列処理方式では、図9に示したような待ち時間(斜線部分)の発生はなく極めて効率的に処理が進められていることがわかる。図5のように(S25)個体生成の処理時間が不均等でもプロセッサ#1とプロセッサ#2とは独立(非同期)に動作できるため、図9(C),(D)の斜線部分で示したようなプロセッサの待ち時間が発生しない。
【0031】
つまり、本発明では各プロセッサにおける処理の待ち時間の発生がなく、通信処理も必要としないため、従来技術と比較して、より高速に解を求めることができるか、または単位時間当たりの個体生成をより多く処理できるため、解の質が向上する効果もある。
【0032】
【発明の効果】
本発明によれば、遺伝的アルゴリズムの並列処理における通信処理時の待ち時間がなく、各プロセッサの処理能力を十分に利用できるから、単位時間当たりの個体生成数が多くなるから、最適化問題をより高速により高品質に解くことができる。
【図面の簡単な説明】
【図1】本発明の一実施例を示す機能構成図である。
【図2】図1の処理のフローを示す図である。
【図3】共有記憶手段の説明図である。
【図4】固体の構成例を示す図である。
【図5】図1におけるプロセッサa,bの場合の処理の流れを示す図である。
【図6】遺伝的アルゴリズムの処理のフロー例を示す図である。
【図7】図6において、各個体作成処理時間が均等の場合の、処理のタイミングチャート例を示す図である。
【図8】図6において、各個体作成処理時間が不均等の場合の、処理のフローの例を示す図である。
【図9】個体作成処理時間が不均等の場合の、処理のタイミングチャート例を示す図である。
【符号の説明】
11(a〜p);GA制御手段 12(a〜p);初期個体生成手段 13(a〜p);個体生成手段 14(a〜p);選択手段 15(a〜p);淘汰手段
16;共有記憶手段。
【発明の属する技術分野】
本発明は、各種分野における様々な計画立案、設計、制御における組み合わせ最適化問題を解く計算機の並列処理装置関し、特に組み合わせ数が膨大になる問題に対して、高速に処理するために遺伝的アルゴリズムを用い複数の計算機により構成した並列処理装置に関する。
【0002】
【従来の技術】
【特許文献1】特開2002−170097号公報
【特許文献2】特開平7−262016号公報
【特許文献3】特開平8−194676号公報
組み合わせ最適化問題を、現実的に許容し得る時間内に見つけ出すための手法として、例えば、生物の遺伝と進化のメカニズムを工学的にモデル化した遺伝的アルゴリズム(Genetic Algorithm)がある。遺伝的アルゴリズムは探索空間を効率よく探索し、実用上の最適解を速やかに見出す探索アルゴリズムとして有効であるとされ、工学分野においても様々な応用が試みられている。
【0003】
前記特許文献1では、プロセッサ間の通信によっておこなわれる通信による個体交換は、個体の交換をおこなう他のプロセッサが個体交換可能かどうかの可否をチェックし、可のときのみ個体交換をして記憶する並列処理について述べている。
【0004】
また、遺伝的アルゴリズムについては、前記特許文献2で「並列遺伝的アルゴリズム実行装置」として紹介されている。この文献の記載は、最適計画立案における場合で、所定時間連続して前記計画の解に変化がないとき、他の処理装置によって生成された、優れた計画案を自身の処理装置に取り込んで最適計画の探索をおこなう、いわば自律淘汰手段を備えたものである。
【0005】
また、前記特許文献3の記載は、並列計算機を用いて遺伝的アルゴリズムにより最適化問題を解く場合に、各プロセッサが担当する解候補の個体情報の適応度値のみプロセッサ間で通信をおこない、通信量を減少させるものである。すなわち、プロセッサ間の通信に多くの時間を要する場合には、交叉対象の個体のみ各プロセッサ間で通信することにより、通信時間の削減をはかる方法を提案している。
【0006】
【発明が解決しようとする課題】
並列計算機を用いた遺伝的アルゴリズムの並列処理において、相互の通信時間の短縮がいろいろ試みられている。しかし、実際の処理では各々の個体生成の処理量が不均等であったり、マルチタスクシステムでは当該処理以外の処理が平行処理されており、特定のプロセッサやバスまたはハードディスク等の電子計算機資源の利用負荷が高くなっていたりすると、各プロセッサの個体生成の処理時間がどうしても不均等になる。
【0007】
これらの問題点を以下の例により説明する。図7は、図6による2個体、2世代、の遺伝的アルゴリズムのタイムチャートを示している。
先ず、初期個体生成を行い、1世代目の個体(1)生成のための選択、個体(1)生成、1世代目の個体(2)生成のための選択、個体(2)生成、1世代目の淘汰、2世代目の個体(1)生成のための選択、個体(1)生成、2世代目の個体(2)生成のための選択、個体(2)生成、2世代目の淘汰、の順に処理が行われる。
【0008】
図6は、遺伝的アルゴリズムのフローの一例を示している。まずステップS41の初期個体生成では、最適化問題の解の候補を生物の染色体のアナロジーとしての数列等で表現し、これを予め指定された数N(この数Nは個体数と呼ばれる)だけ作成する。この最適化問題の解の候補を表現する数列等を個体と呼ぶ。個体数は一つでも複数でもよい。ステップS42では、終了判定を満たしたかを判定する。ここで終了判定例として、予め指定された繰り返し数Gが満たされたか(この数Gは世代数と呼ばれる)、予め指定された処理経過時間が費やされたか、等が考えられる。ステップS43では、個体数N個に対して計N回の繰り返し処理がおこなわれたかどうかを判定する。
【0009】
ステップS44の選択では、既存の個体から子個体のもととなる親個体を選択する。ここで親個体を選択する方法として、既存の各個体の適応度とその総計を求めて適応度の総計に対する各個体の割合を選択確率として個体を選択するルーレット選択や、適応度の大きな個体から選択するランキング選択、等が考えられる。
【0010】
ステップS45の個体生成では、ステップS44で選択した親個体から子個体を生成する。ここでの子個体の生成方法として、複数の親個体を組み合わせる交叉や、1つの親個体の要素をランダムに変化させる突然変異、等がある。ステップS46では、個体が親個体N個と子個体N個の合計2N個となったものをN個に制限する。ここで個体の数の制限方法として、子個体のみを残す方式や、個体の最適化問題に対する適応度の良いものを残す方式、等が考えられる。
【0011】
このような処理は、逐次処理で実行できるが、並列計算機を用いて並列処理することができる。例えば、P台のプロセッサを持つ並列計算機を用いて、N個の個体の計算を行う場合、各プロセッサはN個の個体のコピーを持つが、各世代の個体生成処理は、各プロセッサがN/P個の個体生成処理を担当し、新たに作成された全ての個体を各プロセッサ間で通信によって更新する方法である。また、日々の技術進歩により、LANやバス等のデータ通信機器の性能も向上しており、同じデータ容量でも、この通信時間は削減されつつある。
【0012】
図8はP個のプロセッサを用いた並列処理による遺伝的アルゴリズムの各プロセッサのフローである。まずステップS61の初期個体生成では、S41と同様に個体を個体数Nだけ作成する。ステップS62では、S42と同様に、終了判定を満たしたかを判定する。ステップS63では、個体数N/P回の繰り返しを行ったかを判定する。ステップS64では、S44と同様に、既存の個体から子個体のもととなる親個体を選択する。ステップS65では、S45と同様に、ステップS64で選択した親個体から子個体を生成する。ステップS66では、新たに作成された各子個体を各プロセッサ間で通信によって送受信して各プロセッサでN個体全ての情報を得る。ステップS67では、S46と同様に、個体が親個体N個と子個体N個の合計2N個であるものをN個に制限する。
【0013】
図9の(A),(B)は、図8による、2個体、2世代、の遺伝的アルゴリズムの各個体生成処理時間が均等でプロセッサ数が2つの場合のタイムチャートを示している。プロセッサ#aでは、先ず、初期個体生成を行い、1世代目の個体生成のための選択、個体生成、プロセッサ#bとの通信、1世代目の淘汰、2世代目の個体生成のための選択、個体生成、プロセッサ#bとの通信、2世代目の淘汰、の順に処理が行われる。プロセッサ#bでは、先ず、初期個体生成を行い、1世代目の個体生成のための選択、個体生成、プロセッサ#aとの通信、1世代目の淘汰、2世代目の個体生成のための選択、個体生成、プロセッサ#aとの通信、2世代目の淘汰、の順に処理が行われる。この場合は全く並行に処理が進んでいて、お互いに処理時間待ちが発生していない。
【0014】
これに対して図9の(C)、(D)は図8による、2個体、2世代、の遺伝的アルゴリズムの各個体生成処理時間が不均等でプロセッサ数が2つの場合のタイムチャートを示している。この場合も、プロセッサ#a、プロセッサ#bでの処理内容と処理順番は図9の(A),(B)と同じであるが、各個体生成の処理時間が不均等であるため、各プロセッサでの個体生成処理の終了時刻が異なる。また、通信は各プロセッサで同期する必要があるため、斜線部分Wa,Wbで示したような待ち時間が生じてしまう。
【0015】
そのため各プロセッサは利用効率が悪くなり、その結果、遺伝的アルゴリズムの処理の効率が悪くなってしまうという問題が生じる。特に最適化問題の処理の規模が大きくなるとこの待ち時間は大きくなり、並列化処理による高速化は期待できなくなる。
【0016】
本発明は、規模が大きい最適化問題における処理に伴う問題を解決し、並列処理による効率向上を図るための、遺伝的アルゴリズムを用いた並列処理装置を提供するものである。
【0017】
【課題を解決するための手段】
前記課題は、以下の並列処理手段により解決することができる。
複数のプロセッサにより構成し遺伝的アルゴリズムを用いて最適化問題の解を見出す並列処理装置であって、
前記複数のそれぞれのプロセッサが生成した最適化問題の解候補としての個体を制限された個体数だけ記憶する共有記憶手段と、
前記それぞれのプロセッサは前記共有記憶手段から子個体を生成するための個体を選択する選択手段と、
前記選択された個体から新たな個体を生成するための個体生成手段と、
前記新たに生成された個体を前記共有記憶手段に記憶させるとき前記共有記憶手段に記憶させる個体の数を制限しつつ記憶させる淘汰手段と、
を備え、前記それぞれのプロセッサは他のプロセッサとは独立して作動し共有記憶手段に記憶させる遺伝的アルゴリズムを用いた並列処理装置により前記課題を解決することができる。
【0018】
また、前記共有記憶手段に記憶させる個体の数を制限しつつ記憶させる淘汰手段は、最適化問題の解候補としての個体を前記共有記憶手段に記憶させるとき個体の適応度のよりよいものを残すように個体数を制限して記憶させる淘汰手段であること。また、前記個体生成手段は交叉あるいは全突変異を含む遺伝的アルゴリズムにしたがって固体生成をおこなう個体生成手段を有することにより前記課題を解決することができる。
【0019】
【発明の実施の形態】
以下、図1を用いて本発明の実施の形態に係る遺伝的アルゴリズム並列処理装置を説明する。図1は本発明に係る遺伝的アルゴリズムを用いた並列処理装置の機能構成を示している。本実施例の遺伝的アルゴリズム並列処理装置は、図1に示すように、プロセッサ#a〜プロセッサ#pの複数のプロセッサ用いて構成している。プロセッサ#aについて説明すると、GA(遺伝的アルゴリズム)制御手段11aと、初期個体生成手段12aと、個体生成手段13aと、選択手段14aと淘汰手段15aを備えている。これらの構成により複数のプロセッサ#a〜#pを有し、遺伝的アルゴリズムを用いることにより最適化問題を処理する並列処理装置を構成している。
【0020】
また、各プロセッサの操作対象である個体を記憶する共有記憶手段16を1つ備え、更に各プロセッサは、共有記憶手段から子個体を生成するための親個体としての固体を選択する選択手段14aと、生成した子個体を共有記憶手段16に記憶させると同時に、共有記憶手段16が記憶している個体の数を制限する淘汰手段15aとにより、GA制御手段11aによる制御のもと、最適な解をもとめていく。プロセッサ#b〜pについても構成はまったく同じである。
【0021】
ここで、プロセッサaについていうと、GA制御手段11aと初期個体生成手段12aと個体生成手段13aと選択手段14aと淘汰手段15aは、電子計算機上のプログラム(プロセス)として実現できる。共有記憶手段16は、SMP(Symmetric Multiple Processor)と言われている電子計算機上の共有メモリとすることで、当該電子計算機の複数のプロセッサからアクセスできる記憶装置として実現できる。また、共有記憶手段16はSAN(Storage Area Network)やNAS(Network Attached Storage)とすることで、ネットワーク上の、複数の電子計算機のプロセッサからアクセスできる記憶装置としても実現することができる。
【0022】
前記構成により、各プロセッサは他のプロセッサと独立に動作することが可能となる。以下、本発明の動作例について図2と図3により詳細に説明する。説明のためプロセッサ数P=2、個体数N=2、世代数G=2とするが、実際はプロセッサ数、個体数、世代数は任意の自然数であってもかまわない。本装置の処理が開始されると、この例ではプロセッサ数は2であるから、プロセッサ#aとプロセッサ#bとでは、図2のフローは独立に、しかも非同期に動作することができる。図2はプロセッサ#aの例について示している。
【0023】
図2において、プロセッサ#aでは、ステップS21で初期個体生成手段12にて1個の初期個体を生成し、共有記憶手段16に初期個体を記憶させる。S22では、世代数G=2が満たされたかのチェックが行われる。しかし、現在は1世代目なのでNOである。そしてステップS23で個体数/P=2/2=1回の繰り返しが行われたかのチェックが行われる。現在は0回目なのでNOである。
【0024】
ステップS24では選択手段14aにより、共有記憶手段16より個体(親個体)が選択される。これは共有記憶手段16に記憶されている個体を親個体として個体を生成するためのものである。それは、親個体として記憶されている個体を選択するというわけではなく、共有記憶手段16から読み出した個体を親として子個体を生成するので便宜上親という。ここで親個体を選択する方法として、既存の各個体の適応度とその総計を求めて適応度の総計に対する各個体の割合を選択確率として個体を選択するルーレット選択や、適応度の大きな個体から選択するランキング選択、等が考えられる。
【0025】
ステップS25における個体生成は、選択された個体を親として新たに個体を生成する(個体生成手段13a)。それは、前記ステップS24で選択された親個体をもとに、交叉、突然変異等の処理を行って、1世代目の個体が作成される。そして、ステップS23で、個体数/P=2/2=1回、のチェックがおこなわれ、(個体数/p)の繰り返しが行われたかのチェックが行われる。いまは1回目なのでYesである。ステップS26に進み、前記S25で生成した個体を共有記憶手段16に記憶させる。ここで、親個体2個と子個体1個の合計3個となったものを2個に制限する。
【0026】
ここで個体の数の制限方法として、個体の作成された時刻の新しいものを残す方式や、個体の最適化問題に対する適応度の良いものを残す方式、等が考えられる。例えば、最大値を求めるような最適化問題の場合は、生成された個体が記憶されている個体のうち一番小さいものよりも大きい場合はそれを記憶手段に記憶させ、記憶されている個体の一番小さいものを削除する。このようにして、個体数を2個に制限することがおこなわれる。更に(S22)(S23)(S24)(S25)(S23)(S25)(S23)と進み処理を終了する。同様にプロセッサ#bでもプロセッサ#aと同じ処理が行われる。
【0027】
図3により、共有記憶装置16について説明する。例えば個体(1)のPbは、プロセッサ#bにより処理された結果が記憶されていることを示している。個体(N)は、プロセッサPaはプロセッサ#aにより処理された結果を共有記憶手段に記憶されていることを示している。このように共有記憶装置16には複数のプロセッサで処理された結果のうち、個体数Nで制限された結果が記憶されている。その個体はいわゆる解の候補であって、数列又は文字列に変換された染色体を表わしている。図4はこの固体を、1,0、の数列で表した例であって、図4の(A)は記憶手段に記憶されている数列(解候補)を示している。ステップS25の個体生成ではこれに基づいて図4の(B)あるいは(C)の解候補を生成する。その方法は、交叉(2つの親個体から新しい子個体を生成)、あるいは突然変異(ランダムに突然変異をおこす)などの方法が適用される。
【0028】
そして(個体数/P)だけ繰り返した場合は、淘汰手段ステップS26により共有記憶手段16に記憶させる。この場合、最適化問題が最大値を求めるものであったとする。その場合,いま共有記憶手段16に記憶されている個体数はN個に制限されているので、個体(N)個の内の最も小さい値よりも大きくない限り記憶手段に記憶させることが出来ない。すなわち、個体(N)個の内の最も小さい値よりも小さいときは、解候補としては適当ではないので、N個に制限されたて解候補にはなり得ないことになる。また、個体(N)個の内の最も小さい値よりは大きいときは、すでに記憶されている最小値が記憶手段から削除され、新たな解候補が記憶されることになる。最小化問題のときは逆になるが、動作は全く同じである。前記淘汰手段はこれらの判断をした結果を、記憶手段16に記憶させることになる。この例では単純に大小関係について述べたが、実際には解としての適合度などが評価され、適合度が大きい方が生き残るような記憶処理がおこなわれる。
【0029】
これらの処理結果を図5に示す。プロセッサa、b、による処理の流れを模式的に示した。プロセッサa、b、とも相手の処理の同期を待つことなく、独自に処理が進んでいる。このようにたとえS25における個体生成の処理時間が不均等であってもプロセッサ#aとプロセッサ#bとは独立(非同期)に動作できるため、待ち時間の例として図9に斜線で示したような処理の待ち時間が発生せず、さらに通信処理時間も必要ではないので、タイミングチャートは図5のようになる。
【0030】
この並列処理方式では、図9に示したような待ち時間(斜線部分)の発生はなく極めて効率的に処理が進められていることがわかる。図5のように(S25)個体生成の処理時間が不均等でもプロセッサ#1とプロセッサ#2とは独立(非同期)に動作できるため、図9(C),(D)の斜線部分で示したようなプロセッサの待ち時間が発生しない。
【0031】
つまり、本発明では各プロセッサにおける処理の待ち時間の発生がなく、通信処理も必要としないため、従来技術と比較して、より高速に解を求めることができるか、または単位時間当たりの個体生成をより多く処理できるため、解の質が向上する効果もある。
【0032】
【発明の効果】
本発明によれば、遺伝的アルゴリズムの並列処理における通信処理時の待ち時間がなく、各プロセッサの処理能力を十分に利用できるから、単位時間当たりの個体生成数が多くなるから、最適化問題をより高速により高品質に解くことができる。
【図面の簡単な説明】
【図1】本発明の一実施例を示す機能構成図である。
【図2】図1の処理のフローを示す図である。
【図3】共有記憶手段の説明図である。
【図4】固体の構成例を示す図である。
【図5】図1におけるプロセッサa,bの場合の処理の流れを示す図である。
【図6】遺伝的アルゴリズムの処理のフロー例を示す図である。
【図7】図6において、各個体作成処理時間が均等の場合の、処理のタイミングチャート例を示す図である。
【図8】図6において、各個体作成処理時間が不均等の場合の、処理のフローの例を示す図である。
【図9】個体作成処理時間が不均等の場合の、処理のタイミングチャート例を示す図である。
【符号の説明】
11(a〜p);GA制御手段 12(a〜p);初期個体生成手段 13(a〜p);個体生成手段 14(a〜p);選択手段 15(a〜p);淘汰手段
16;共有記憶手段。
Claims (3)
- 複数のプロセッサにより構成し遺伝的アルゴリズムを用いて最適化問題の解を見出す並列処理装置であって、
前記複数のそれぞれのプロセッサが生成した最適化問題の解候補としての個体を制限された個体数だけ記憶する共有記憶手段と、
前記それぞれのプロセッサは前記共有記憶手段から子個体を生成するための個体を選択する選択手段と、
前記選択された個体から新たな個体を生成するための個体生成手段と、
前記新たに生成された個体を前記共有記憶手段に記憶させるとき前記共有記憶手段に記憶させる個体の数を制限しつつ記憶させる淘汰手段と、
を備え、前記それぞれのプロセッサは他のプロセッサとは独立して作動し共有記憶手段に記憶させる遺伝的アルゴリズムを用いた並列処理装置。 - 請求項1において、前記共有記憶手段に記憶させる個体の数を制限しつつ記憶させる淘汰手段は、最適化問題の解候補としての個体を前記共有記憶手段に記憶させるとき個体の適応度のよりよいものを残すように個体数を制限して記憶させる淘汰手段を有する遺伝的アルゴリズムを用いた並列処理装置。
- 請求項1において、前記個体生成手段は交叉あるいは全突変異を含む遺伝的アルゴリズムにしたがって固体生成をおこなう個体生成手段を有する遺伝的アルゴリズムを用いた並列処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003046897A JP2004258842A (ja) | 2003-02-25 | 2003-02-25 | 遺伝的アルゴリズムを用いた並列処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003046897A JP2004258842A (ja) | 2003-02-25 | 2003-02-25 | 遺伝的アルゴリズムを用いた並列処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004258842A true JP2004258842A (ja) | 2004-09-16 |
Family
ID=33113284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003046897A Pending JP2004258842A (ja) | 2003-02-25 | 2003-02-25 | 遺伝的アルゴリズムを用いた並列処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004258842A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007104638A (ja) * | 2005-09-06 | 2007-04-19 | Ntt Docomo Inc | アンテナ設計方法、アンテナ設計プログラム、及び、このアンテナ設計方法によって設計されたアンテナ |
JP2011141882A (ja) * | 2005-09-06 | 2011-07-21 | Ntt Docomo Inc | アンテナ設計方法、アンテナ設計プログラム、及び、このアンテナ設計方法によって設計されたアンテナ |
CN102930339A (zh) * | 2012-09-28 | 2013-02-13 | 北京航空航天大学 | 一种飞行冲突解脱方法及装置 |
JP2019211989A (ja) * | 2018-06-04 | 2019-12-12 | 株式会社東芝 | 運転計画システム、運転計画方法および運転計画装置 |
-
2003
- 2003-02-25 JP JP2003046897A patent/JP2004258842A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007104638A (ja) * | 2005-09-06 | 2007-04-19 | Ntt Docomo Inc | アンテナ設計方法、アンテナ設計プログラム、及び、このアンテナ設計方法によって設計されたアンテナ |
JP2011141882A (ja) * | 2005-09-06 | 2011-07-21 | Ntt Docomo Inc | アンテナ設計方法、アンテナ設計プログラム、及び、このアンテナ設計方法によって設計されたアンテナ |
CN102930339A (zh) * | 2012-09-28 | 2013-02-13 | 北京航空航天大学 | 一种飞行冲突解脱方法及装置 |
JP2019211989A (ja) * | 2018-06-04 | 2019-12-12 | 株式会社東芝 | 運転計画システム、運転計画方法および運転計画装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sariyüce et al. | Betweenness centrality on GPUs and heterogeneous architectures | |
Wang et al. | A Pareto-based estimation of distribution algorithm for the multi-objective flexible job-shop scheduling problem | |
Li et al. | A hybrid tabu search algorithm with an efficient neighborhood structure for the flexible job shop scheduling problem | |
Regis | Trust regions in Kriging-based optimization with expected improvement | |
Sebt et al. | Hybridization of genetic algorithm and fully informed particle swarm for solving the multi-mode resource-constrained project scheduling problem | |
JP2021520546A (ja) | 量子計算のための方法及びシステム | |
JP2002203228A (ja) | 多目的最適化方法 | |
Rosenberg | On scheduling mesh-structured computations for Internet-based computing | |
Klenk et al. | Relaxations for high-performance message passing on massively parallel SIMT processors | |
Tran et al. | A hybrid water flow algorithm for multi-objective flexible flow shop scheduling problems | |
Möbius et al. | Combinatorial optimization by iterative partial transcription | |
Teijeiro et al. | Towards cloud-based parallel metaheuristics: a case study in computational biology with differential evolution and spark | |
Boyd et al. | Thermodynamic machine learning through maximum work production | |
Shirvani | A novel discrete grey wolf optimizer for scientific workflow scheduling in heterogeneous cloud computing platforms | |
Celik et al. | A novel simulated annealing-based optimization approach for cluster-based task scheduling | |
Navaneetha Krishnan et al. | Multi‐objective task scheduling in fog computing using improved gaining sharing knowledge based algorithm | |
Franca et al. | Genetic algorithms for the no-wait flowshop sequencing problem with time restrictions | |
JP2004258842A (ja) | 遺伝的アルゴリズムを用いた並列処理装置 | |
Evangelinos et al. | Many task computing for real-time uncertainty prediction and data assimilation in the ocean | |
Li et al. | On the accelerated convergence of genetic algorithm using GPU parallel operations | |
Ertl et al. | Design and optimisation of an efficient HDF5 I/O Kernel for massive parallel fluid flow simulations | |
Benjamas et al. | Impact of I/O and execution scheduling strategies on large scale parallel data mining | |
JP7513868B2 (ja) | 情報処理システム、情報処理方法およびプログラム | |
Posada et al. | Alphafold2 workflow optimization for high throughput predictions in hpc environment | |
Eiben et al. | Exploring selection mechanisms for an agent-based distributed evolutionary algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041004 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060926 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20060926 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070206 |