JP3577207B2 - 遺伝的アルゴリズム実行装置、実行方法およびそのプログラム記憶媒体 - Google Patents
遺伝的アルゴリズム実行装置、実行方法およびそのプログラム記憶媒体 Download PDFInfo
- Publication number
- JP3577207B2 JP3577207B2 JP33753597A JP33753597A JP3577207B2 JP 3577207 B2 JP3577207 B2 JP 3577207B2 JP 33753597 A JP33753597 A JP 33753597A JP 33753597 A JP33753597 A JP 33753597A JP 3577207 B2 JP3577207 B2 JP 3577207B2
- Authority
- JP
- Japan
- Prior art keywords
- character
- genetic algorithm
- randomness
- distribution
- degree
- 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.)
- Expired - Fee Related
Links
- 238000004422 calculation algorithm Methods 0.000 title claims description 89
- 230000002068 genetic effect Effects 0.000 title claims description 80
- 238000000034 method Methods 0.000 title claims description 79
- 238000009826 distribution Methods 0.000 claims description 139
- 230000035772 mutation Effects 0.000 claims description 117
- 238000012545 processing Methods 0.000 claims description 104
- 238000004364 calculation method Methods 0.000 claims description 72
- 238000011156 evaluation Methods 0.000 claims description 70
- 238000006073 displacement reaction Methods 0.000 claims description 7
- 238000005457 optimization Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 description 55
- 230000008569 process Effects 0.000 description 44
- 238000007796 conventional method Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 19
- 230000008859 change Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 7
- 210000000349 chromosome Anatomy 0.000 description 6
- 108090000623 proteins and genes Proteins 0.000 description 6
- 231100000518 lethal Toxicity 0.000 description 5
- 230000001665 lethal effect Effects 0.000 description 5
- 230000008707 rearrangement Effects 0.000 description 4
- 108700028369 Alleles Proteins 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000007423 decrease Effects 0.000 description 2
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000009827 uniform distribution Methods 0.000 description 2
- 206010034719 Personality change Diseases 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004055 genetic distribution Effects 0.000 description 1
- 238000010353 genetic engineering Methods 0.000 description 1
- 230000008303 genetic mechanism Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Genetics & Genomics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Physiology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
【発明の属する技術分野】
本発明は、遺伝的アルゴリズムを利用して解の探索を効率的におこなう遺伝的アルゴリズム実行装置と実行方法、およびそのプログラム記憶媒体に関する。
【0002】
【従来の技術】
遺伝的アルゴリズムとは、生物の遺伝の機構を工学的に模倣・応用した技術である。生物の進化の過程では、既存の個体(親)から新たなる個体(子)が生まれる際に、個体の持つ染色体同士の交叉、染色体上の遺伝子の突然変異などが起こる。そして、環境に適応しない個体は淘汰され、より適応した個体が生き延びて新たな親となり、さらに新たな子孫を作っていく。このようにして、環境に適応した個体の集団が生き延びていく。各個体がどの程度環境に適応するかは、染色体あるいはゲノムによって決定される。
【0003】
遺伝的アルゴリズムでは、組合せ最適化問題の解候補を、遺伝子の1次元ストリングである染色体に対応させて文字列として表現し、解候補の集団に対して、選択および自己複製による淘汰、交叉、突然変異等の遺伝子操作を繰り返し行うことにより解の探索を行う。なお、上述の文字列とは、例えば0と1を使って表されるような数列等も含むものとする。
【0004】
ここでは、生物進化は、解候補に対する目的関数(解候補の適性度を評価する関数)の値が最適値に近づくことに相当し、目的関数を最適にするものほど大きい値を取るような適応度関数が文字列(染色体)に対して定義される。淘汰とは、図24(A)に示すように、適応度関数により各文字列の評価値を算出し、集団の中で評価値の高い文字列を持つ解候補を、より高い確率で選択して次世代の解候補集団とする操作である。突然変異とは、図24(B)に示すように、1つの文字列の一部の文字(遺伝子)をランダムに別の文字(アレル値)に置き換える操作である。交叉とは、図24(C)に示すように、2つの文字列の一部を相互に入れ換える操作である。
【0005】
これらの操作を繰り返すことによって評価値のより高い文字列、すなわち目的関数をより最適化する解候補を得ることができる。
【0006】
【発明が解決しようとする課題】
従来の遺伝的アルゴリズムにおける突然変異では、文字列の文字位置(遺伝子座:配列中の各遺伝子の位置に対応)に対して一様の変異率で変異(文字の変更)を行っている。各文字位置においてとりうる文字(例えば、「0、1、・・・」のような数値、「a、b、c、・・・」のような文字等)は、遺伝子工学におけるアレル(対立遺伝子)に対応する。
【0007】
しかし、多くの問題においては、その探索の過程で変異する必要がなくなる文字位置と、逆に変異を頻繁に行うべき文字位置とに分かれてくる。このような場合に、文字位置全体に一様な変異率による突然変異を行うと、文字列の評価値を下げることが多くなり、最適解の探索の効率が低下する。
【0008】
したがって、上記のような従来の方法では、特に問題が大規模のときに、解を得る確率が非常に低くなってしまうという問題があった。
解の探索を効率的に行うための方法として、探索過程で文字位置ごとに変異率を適当に調節する改善方法が考えられる。しかし、どの文字位置の変異率をどのような値に設定すればよいのかは、予めわかっているわけではない。そこで、探索時にそれらを推定する方法が必要である。
【0009】
また、従来の遺伝的アルゴリズムでは、予め指定されている繰り返し回数(世代数)分の処理が終了した時点でアルゴリズムが終了されるので、利用者は実行前に終了世代数を指定しなければならなかった。しかし、適切な終了世代数は対象となる問題や突然変異率などのパラメータ値によって異なるので、通常は処理開始前に適切な終了世代数を知ることはできない。そこで、従来の遺伝的アルゴリズムの実行時には、対象となる問題の解を得るために十分に大きいと思われる世代数を指定していたが、その値は解を得るために必要な世代数よりもはるかに大きい場合が多かった。
【0010】
したがって、従来の方法では、すでに解が得られており、それ以上の処理を繰り返しても無駄であるような状況であっても、指定された世代までは処理が実行されることになり、計算効率の観点から問題があった。
【0011】
【課題を解決するための手段】
本発明の目的は、各文字位置に設定されている変異率を、与えられた問題に適合するように探索の過程で再設定して突然変異を実行することにより、遺伝的アルゴリズムにおける探索効率を向上させることにある。また、所定の値よりも高い乱雑度をもつ文字位置を選択し、選択した文字位置の文字を変更して解候補の文字列を変化させることにより、解の探索効率を向上させることも目的とする。
【0012】
また本発明の目的は、終了世代を自動的に判定して、遺伝的アルゴリズムを適切な世代で終了させ、計算効率を向上させることにある。アルゴリズムを適切な世代で終了させるためには、それ以上処理を繰り返しても変化がない状態、すなわち解集団が定常状態に到達したことを感知すればよい。定常状態では、淘汰によって生き残る解候補の文字列がそろっているので、この文字列のパターンのそろいぐあいによって定常状態に達したかどうかを判定することができる。したがって本発明では、遺伝的アルゴリズムの終了条件として各文字位置の文字の分布(文字分布)を用いることにより、終了世代を決定する。
【0013】
本発明の遺伝的アルゴリズム実行装置は、遺伝的アルゴリズムに基づいて最適化問題を解く遺伝的アルゴリズム実行装置であって、解候補集団を構成する複数の文字列(数列、記号列等も含む)に対して各文字位置毎に文字分布を計算する文字分布計算部と、該文字分布を用いて各文字位置毎に乱雑度を求め、求めた乱雑度に基づいて各文字位置毎に変位率を設定する変異率計算部と、該変異率に応じて解候補に対して突然変異を実行し、新たな解候補を作成する突然変異処理部とを備えている。このように、文字位置の乱雑度に応じて変異率が設定されるので、より変異させたい文字位置を重点的に変異させることができ、解の探索効率が向上する。ここで、乱雑度がより大きい文字位置の変位率はより高く設定され、乱雑度がより小さい文字位置の変位率はより低く設定される。
【0014】
本発明の遺伝的アルゴリズム実行装置は、さらに、前記文字分布計算部が計算した文字分布を記録する文字分布記録部を備えてもよく、前記変異率計算部は、該文字分布記録部に記録された文字分布に基づいて前記乱雑度を求めてもよい。この装置はさらに、解候補集団の世代数をカウントする世代数カウント部と、前記文字分布計算部が求めた文字分布および該世代数カウント部によるカウント値のうちの少なくとも一方を用いて、遺伝的アルゴリズムによる計算処理を終了させるかどうかを判断する終了条件評価部とを備えていてもよい。このように、終了条件を用いて適切な時期に処理を終了させることにより、探索時間の短縮を図ることができる。ここで、前記終了条件評価部は、例えば前記文字分布計算部が計算した文字分布の偏り具合が所定の値以下であることを判断した場合、遺伝的アルゴリズムによる計算処理を終了させる。
【0015】
本発明による他の遺伝的アルゴリズム実行装置は、解候補集団を構成する複数の文字列に対して各文字位置毎に文字分布を計算する文字分布計算部と、該文字分布を用いて各文字位置毎に乱雑度を求め、所定の値よりも高い乱雑度をもつ文字位置を選択する文字位置選択部と、該複数の文字列における該選択した文字位置の文字を変更して新たな解候補を作成する組み合せ生成部と、を備えている。このように、選択した文字位置の文字のみを変更して新たな解候補を作成することにより、解の探索効率が向上する。ここで、前記組み合せ生成部は、前記複数の文字列のそれぞれに対して前記選択した文字位置の文字を設定可能な文字に置き換えた文字列の全ての組み合わせを設定し、設定した組み合わせの中から評価値の高い文字列を選択して、新たな解候補集団を作成する。
【0016】
前記文字位置選択部は、前記所定の値よりも高い乱雑度をもつ文字位置の数が所定の数よりも多かった場合、乱雑度が高い文字位置から該所定の数分の文字位置を選択することができる。これにより、選択される文字位置の数がさらに制限され、探索時間がさらに短縮される。
【0017】
本発明の遺伝的アルゴリズム実行方法は、遺伝的アルゴリズムに基づいて最適化問題を解くための遺伝的アルゴリズム実行方法であって、解候補集団を構成する複数の文字列に対して、各文字位置毎に文字分布を計算するステップと、該文字分布を用いて各文字位置毎に乱雑度を求めるステップと、求めた乱雑度に基づいて各文字位置毎に変位率を設定するステップと、該変異率に応じて解候補に対して突然変異を実行して新たな解候補を作成するステップと、を含んでいる。乱雑度がより大きい文字位置の変位率はより高く設定され、乱雑度がより小さい文字位置の変位率はより低く設定される。このように、文字位置の乱雑度に応じて変異率が設定されるので、より変異させたい文字位置を重点的に変異させることができ、解の探索効率が向上する。
【0018】
この方法はさらに、解候補集団の世代数をカウントするステップと、前記文字分布および該世代数のカウント値のうちの少なくとも一方を用いて、遺伝的アルゴリズムによる計算処理を終了させるかどうかを判断するステップとを含んでいてもよい。このように、終了条件を用いて適切な時期に処理を終了させることにより、探索時間の短縮を図ることができる。ここでは、例えば、前記文字分布の偏り具合が所定の値以下であることを判断した場合、遺伝的アルゴリズムによる計算処理を終了させてもよい。
【0019】
本発明による他の遺伝的アルゴリズム実行方法は、解候補集団を構成する複数の文字列に対して各文字位置毎に文字分布を計算するステップと、該文字分布を用いて各文字位置毎に乱雑度を求めるステップと、所定の値よりも高い乱雑度をもつ文字位置を選択するステップと、該複数の文字列における該選択した文字位置の文字を変更して新たな解候補を作成するステップとを含んでいる。このように、選択した文字位置の文字のみを変更して新たな解候補を作成することにより、最適解の探索効率が向上する。
【0020】
新たな解候補を作成するステップでは、前記複数の文字列のそれぞれに対して、前記選択した文字位置の文字を設定可能な文字に置き換えた文字列の全ての組み合わせが設定され、設定された組み合わせの中から評価値の高い文字列が選択されて新たな解候補集団を作成する。
【0021】
前記文字位置を選択するステップでは、前記所定の値よりも高い乱雑度をもつ文字位置の数が所定の数よりも多かった場合、乱雑度が高い文字位置から該所定の数分の文字位置が選択されうる。これにより、選択される文字位置の数がさらに制限され、探索時間がさらに短縮される。
【0022】
本発明の記憶媒体は、遺伝的アルゴリズムに基づいて最適化問題を解くための遺伝的アルゴリズム実行方法を実現するコンピュータプログラムを格納した記憶媒体であって、このコンピュータプログラムによる遺伝的アルゴリズム実行方法は、上記の本発明の遺伝的アルゴリズム実行方法の各ステップを含みうる。この記憶媒体が外部記憶媒体である場合、それはCDROM等の光記憶媒体、フロッピーディスク等の磁気記憶媒体、MD等の光−磁気記憶媒体によって実現され、内部記憶媒体であれば、ハードディスク、ROM、RAM等によって実現される。
【0023】
【発明の実施の形態】
図1は、本発明による遺伝的アルゴリズム実行装置の実施形態の構成を表すブロック図である。
【0024】
図1(A)に示すように、この遺伝的アルゴリズム実行装置10は、CPUおよびメモリ等からなり、解候補を表す文字列(染色体)の個体群からなる解候補集団の初期集団を生成(あるいは選択)する初期集団生成部11と、解候補集団における文字列の選択や複製の操作により評価値(適応度)の低い文字列についての淘汰を行う淘汰処理部12と、突然変異等の操作によって探索の効率化を促進させる探索効率化部13と、解候補集団の中から選んだ複数の文字列について交叉を行う交叉処理部14を備えている。なお、解候補を表す文字列は、文字の列や数の列などを含む、何らかの意味を持つ全ての種類の記号の列でありうる。
【0025】
遺伝的アルゴリズム実行装置10の探索効率化部13は、図1の(B)に示すように、文字分布計算部1と、変異率計算部2と、突然変異処理部3と、文字位置選択部4と、組合せ生成部5と、文字分布記録部6とを備えている。この探索効率化部13は、文字分布計算部1と、変異率計算部2と、突然変異処理部3とによって、あるいはこれに文字分布記録部6を加えて構成されてもよく、さらに文字分布計算部1と、文字位置選択部4と、組合せ生成部5によって、あるいはこれに文字分布記録部6を加えて構成されてもよい。
【0026】
文字分布計算部1は、淘汰により生き残った解候補の文字列の集まりを入力して、文字列の各文字位置(遺伝子座)について文字分布を計算する。各文字位置(j=1、2、・・・、L)における文字分布は、文字aの存在する頻度pj (a)により構成される。ここに、pj (a)は、第j番目の文字がaである解候補数(個体数)の解候補集団全体数に対する割合である。以後、第j文字位置に出現する全ての文字aに対するpj (a)の値の並びを括弧を付けて<pj (a)>と記す。
【0027】
文字分布の計算は、それぞれの文字位置について、その文字列が変異すると死んでしまうかどうか(致死的かどうか)、すなわち変異によって評価値が極端に低下するかどうかを判断するために行われる。ある文字位置の文字種類が偏った分布をする場合には、その文字位置は淘汰圧を強く受けていることになり、出現しない文字への変異は、致死的であるかまたは評価値を下げると推察される。したがって、このような文字位置の変異は行わないほうがよい。
【0028】
逆に、文字種類の偏りが少ない分布のときには、その文字位置の淘汰圧は弱いものとみなされ、その文字位置に対して変異が行われることによって、より評価値の高い解候補が生じる可能性がある。
【0029】
変異率計算部2は、文字分布計算部1から得た文字分布<pj (a)>をもとに、所定の乱雑度関数Rj (<pj (a)>)の値として得られる各文字位置の乱雑度rj を求め、それらの値(r1 、・・・、rL )から各文字位置の変異率mj (j=1、・・・、L)を計算する。
【0030】
乱雑度関数Rj (<pj (a)>)から求められる乱雑度rj は、第j文字位置に出現する文字の乱雑さの度合いを示すものである。乱雑度関数Rj (<pj (a)>)は、文字分布<pj (a)>に対して実数を対応させる関数とし、pj (a)がすべての文字aについて等しいとき、すなわち偏りのない分布(一様分布)のときに最大値をとる非負関数とする。乱雑度はその値が大きいほど乱雑さの度合が高いことを意味する。
【0031】
変異率mj の設定では、文字分布<pj (a)>から求めた乱雑度rj が低い文字位置の変異率が低くなり、乱雑度rj が高い文字位置の変異率が高くなるように変異率を再設定する。すなわち、乱雑度rj が低い文字位置の変異率mj を低く抑え、その分を乱雑度rj が高い(淘汰圧が弱く致死的でないと思われる)文字位置へ振り分けるようにする。変異が致死的な文字(遺伝子)を固定して、そうでない文字位置を重点的に変異させることにより、探索の効率化が達成される。
【0032】
第j文字位置の変異率mj は、各文字位置の乱雑度rj を用いて変異率関数Mj によって求める。各文字位置の乱雑度rj が(r1 、r2 、・・・、rL )であるとき、変異率関数の値をMj (r1 、r2 、・・・、rL )と記す。変異率関数の値は0以上1以下の実数とする。また、第j文字位置の変異率関数Mj は、第j文字位置の乱雑度rj について非減少性の性質を持つ関数とする。
【0033】
すなわち、変異率関数Mj はr’j <r”j ならば、
Mj (r1 、・・・、rj−1 、r’j、rj+1 、・・・、rL )≦Mj (r1 、・・・、rj−1 、r”j、rj+1 、・・・、rL )
という性質を持つものとする。
【0034】
このように、適当な乱雑度関数Rj および変異率関数Mj を定め、文字分布<p1 (a)>、<p2 (a)>、・・・、<pL (a)>に対して、第j文字位置の変異率mj を、
mj =Mj (R1 (<p1 (a)>)、R2 (<p2 (a)>)、・・・、RL (<pL (a)>))
と設定する。
【0035】
突然変異処理部3は、変異率計算部2で得た変異率mj に基づいて突然変異を行う。これにより、解候補集団の解候補に対して、致死的ではなく、評価値が高くなる可能性をもつ突然変異の操作を施すことが可能となる。
【0036】
文字分布を利用して解の探索を効率化する別の手段として、以下の手段を用いることも有効である。
文字位置選択部(遺伝子座選択部)4は、文字分布計算部1によって得た文字分布<pj (a)>をもとに各文字位置の乱雑度rj を計算し、乱雑度rj が所定の値より大きい文字位置を選択する。
【0037】
組合せ生成部5は、文字位置選択部4で選択されたすべての文字位置の各々に対して文字aを変化させたすべての組合せを生成し、選択されない文字位置については、それを元の文字または最もpj (a)が大きい文字に固定して全組合せ数の文字列を生成し、生成された文字列をもつ解候補の中から最も評価値の高い解候補(最も適応度の高い個体)を選択して元の解候補と置き換える。
【0038】
文字分布をもとにした文字位置選択部4および組合せ生成部5の処理によって、強制的に評価値が高くなる変異を実施し、解候補の集団の改善を図ることが可態になる。この処理は、ある程度世代交代が進んだ状態で行われるのが望ましい。また、この処理は、前述した変異率に基づく突然変異処理部3による突然変異の処理と併せて実施してもよい。この場合、例えばある解候補については、突然変異処理部3による突然変異を行い、別の解候補については、文字位置選択部4および組合せ生成部5の処理を行うといった解候補に対する操作(遺伝子操作)を行うことが考えられる。
【0039】
文字分布記録部6は、文字分布計算部1で得た文字分布を記録する手段である。各世代ごとに毎回文字分布計算部1によって文字分布を計算していたのでは、その計算のためのオーバへッドが大きくなるおそれがある。そこで、複数世代ごとに文字分布計算部1により文字分布を計算することとし、文字分布を計算しない世代については、文字分布記録部6に記録しておいた過去の文字分布を用いて変異率計算または文字位置選択の処理を行う。これにより、さらに処理を効率化することもできる。
【0040】
以下、本発明による遺伝的アルゴリズム実行装置の具体的動作について説明する。
図2は、上記の実施形態による遺伝的アルゴリズム実行装置の動作処理の第1例を表している。図2中、ステップS4〜ステップS6の処理が図1に示す探索効率化部13による処理である。
【0041】
ステップS1では、与えられた問題の解候補を文字列で表したものをランダムに複数生成し、それを初期の解候補集団とする。ステップS2では、その解候補集団を構成する各文字列に対して、所定の評価関数(適応度関数)を用いて評価値(適応度)を計算する。
【0042】
続いて、ステップS3の淘汰処理では、各文字列の評価値に従って、例えばルーレット選択法などにより評価値の高い文字列を低いものより高い確率で選択し、その複製を行う。これにより、解候補として適切でない評価値の低い文字列は淘汰されることになる。
【0043】
ステップS4では、図1の(B)に示した文字分布計算部1が、淘汰された文字列の集まり(解候補集団)から各文字位置jの文字分布<pj (a)>を計算する。
【0044】
図3は、文字分布の概念を説明する図である。
図3(A)は、各文字位置(遺伝子座)の文字aが「0、1、2、3」である、すなわち文字位置に表れうる文字の種類が「0、1、2、3」の4つである、L個の文字位置座を持つN個の文字列(解候補)の集まりを示している。
【0045】
図3(B)は、図3(A)に示す文字列の第j文字位置における文字分布<pj (a)>を示している。
図3(A)の文字列の集まりにおいて、例えば第j文字位置に着目すると、第j文字位置で第1番目の文字列(解候補)から第N番目の文字列までに出現する文字は、「0」、「2」、「0」、「0」、・・・、「1」となっている。ここで、文字a=0である文字列数の全文字列数Nに対する割合が0.36、文字a=1である文字列数の割合が0.21、文字a=2である文字列数の割合が0.29、文字a=3である文字列数の割合が0.14であるとすると、文字分布は図3(B)に示すようになり、pj (0)=0.36、pj (1)=0.21、pj (2)=0.29、pj (3)=0.14となる。因みに、この第j文字位置の文字分布は一様分布に近く、淘汰圧が比較的低い文字位置であると考えられる。
【0046】
文字分布計算部1は、すべての文字位置について、以上のような文字分布を計算する。なお、文字分布記録部6を利用する場合には、文字分布計算部1は、求めた文字分布を文字分布記録部6に記録する。
【0047】
ステップS5において、変異率計算部2は乱雑度関数Rj (<pj (a)>)を用いて文字分布<pj (a)>に対する各文字位置jの乱雑度rj を求め、これをもとに各文字位置の変異率を再設定する。
【0048】
図4は、乱雑度関数を説明するための図である。
図4(A)は、乱雑度関数Rj の例を示しており、図4(B)は、文字が0および1である割合に対応する乱雑度関数Rj (<pj (a)>)の値(乱雑度rj )を示している。
【0049】
ここでは、図4(A)に示すように、文字位置数L=4、文字aは0または1であるとし、乱雑度関数Rj は、例えば、Rj =6−5×|0の割合−0.5|−5×|1の割合−0.5|というように定める。ここで、|・・・|は絶対値を示し、「0の割合」とはpj (0)を、また「1の割合」とはpj (1)を表している。
【0050】
この乱雑度関数Rj を用いた場合の、文字0および1の各割合に対応する乱雑度rの値は図4(B)および(C)に示すようになり、文字の分布が均一のとき、すなわち文字0と1の出現する割合がそれぞれ0.5のときに、乱雑度rは最大値6を示す。0および1の割合の和は常に1である。この乱雑度関数Rj は一例であり、同様な性質を持つ他の関数を用いてもよい。
【0051】
図5は、乱雑度を説明するための図である。
図5に示す総数10個の解候補集団について文字分布<pj (a)>を計算し、乱雑度関数Rj の値を求める場合を例として説明する。
第1文字位置において、文字が0である個数は8個であるから、文字分布p1 (0)は8/10(=0.8)、文字が1である個数は2個であるから、文字分布p1 (1)は2/10(=0.2)となり、図4(B)の乱雑度関数Rj の対応表に従って第1文字位置の乱雑度はr=3となる。
【0052】
同様にして、第2文字位置の乱雑度はr=6、第3文字位置の乱雑度はr=1、第4文字位置の乱雑度はr=4となる。
変異率は、例えば以下のように定義する。
【0053】
mj =[{L×Rj (<pj (a)>)}/{Σk Rk (<pk (a)>)}]×μ
ただし、Σk は、k=1からLまでの総和である。Σk Rk (<pk (a)>)が0の場合には、mj =μと設定する。この方法では、m1 、m2 、・・・、mL の平均は常に一定値μである。
【0054】
また、別の方法として、変異率関数Mj が第j文字位置の乱雑度rj のみに依存する関数fj であるとして、非負の要素を持つ定数行列Ai,j を用いて、第j文字位置の変異率mj を、次式のように定めることもできる。
【0055】
mj =Σi Ai,j fi (ri )
ただし、Σi はi=1からLまでの総和を表す。
特に、定数行列Ai,j をi=jで1、それ以外で0をとる行列とすれば、第j文字位置の変異率は、
mj =fj (rj )
のように乱雑度rj のみに依存する関数fj で表される。この式は前式の最も簡単な場合であり、計算速度の点で有効性があるため、実用性が高いものと考えられる。
【0056】
なお、変異率計算部2は、文字分布を計算しない世代については、文字分布記録部6に記録した過去の世代の文字分布を用いて乱雑度を求めてもよい。
ステップS6では、突然変異処理部3により、変異率計算部2によって計算した変異率にもとづいて突然変異処理を行い、新しい文字列の解候補の集団を出力する。
【0057】
その後、上記のように求めた新しい文字列の解候補集団に対し、交叉(ステップS7)、適応度評価(ステップS8)の処理(評価値算出)を行い、制限回数(所定の終了条件)に達したかどうかを判定して(ステップS9)、制限回数に達するまでステップS1〜ステップS9の処理を繰り返す。
【0058】
なお、図2に示す処理の流れにおいて、例えばステップS7の交叉処理をステップS4の前に行うように変化させてもよく、処理の順番は必ずしも図2に示すとおりでなくてもよい。ステップS7の交叉処理は省くことも可能である。また、ステップS4およびステップS5による変異率の設定を、毎世代行うのではなく、特定の世代についてだけ行うようにしてもよい。また、この処理における適応度評価(評価値の計算および評価)を専門に行なう処理部を、遺伝的アルゴリズム実行装置のなかに、図1(A)に示す構成要素11〜14とは別に設けてもよい。
【0059】
図6は、文字分布計算部1の処理を表すフローチャートである。
図6の中で、Lは文字位置数、Nは解候補(文字列)の総数、A(j)は第j文字位置における文字の数(文字の種類の数)、x(n,j)は第n解候補の文字列における第j文字位置の文字、p(j,a)は第j文字位置の文字がaである解候補が全体に占める割合を表す。
【0060】
文字分布計算部1は、j=1からNまで、以下の処理を繰り返す(ステップ101、102)。
まず、すべてのp(j、a)の値を0に初期化する処理を行う(ステップ103〜ステップ107)。
【0061】
次に、第n解候補の第j文字位置の各文字aの個数をカウントする処理を行う(ステップ108〜ステップ111)。
続いて、第j文字位置の文字がaである解候補が全体に占める割合p(j,a)を計算する処理を行う(ステップ112〜ステップ115)。
【0062】
図7は、変異率計算部2の処理を表すフローチャートである。
図7の中で、Lは文字位置数、r(j)は第j文字位置の乱雑度、A(j)は第j文字位置における文字の種類の数、p(j,a)は第j文字位置の文字がaである解候補が全体に占める割合、R(j,・・・)は第j文字位置における乱雑度関数、Mは平均変異率、m(j)はこの処理によって得られる第j文字位置の変異率を表す。
【0063】
変異率計算部2は、乱雑度関数R(j,・・・)によって第j文字位置の乱雑度r(j)を求める処理を行う(ステップ121〜ステップ124)。
次に、前述した式、
mj =[{L×Rj (<pj (a)>)}/{Σk Rk (<pk (a)>)}]×μ
における(Σk Rk (<pk (a)>)を求める処理、すなわち乱雑度r(j)の総和Cを求める処理を行う(ステップ127〜ステップ129)。ここで、乱雑度r(j)の総和Cが0である場合には、第j文字位置の変異率を平均変異率Mとする(ステップ130〜ステップ134)。乱雑度r(j)の総和Cが0でない場合には、上記の式に従って第j文字位置の変異率m(j)を計算する(ステップ135〜ステップ140)。
【0064】
続いて、本発明の遺伝的アルゴリズムによる処理の実施例について説明する。
この実施例としてナップザック問題を取り上げて説明する。ナップザック問題とは、限られた容量のナップザックに入れる荷物の値段の合計額が最も高くなるように荷物を選択するといった問題である。
【0065】
ナップザックに入れる例えば50個の荷物を順番に並べ、各々の荷物に対して1ビットを対応させ、その荷物を選択する場合を「ビット値=1」、選択しない場合を「ビット値=0」と表せば、この例題の探索空間を50ビットでコード化することができる。このビット配列を文字列と考えて本発明の遺伝的アルゴリズムを実行する。この場合、すべての文字位置の文字aは0か1となる。評価値は選択した荷物の値段の合計とするが、選択した荷物の全容積がナップザックの容量を超えた場合には0とする。
【0066】
ここで、変異率の再設定に用いる乱雑度関数R(p(0)、p(1))として、
R(p(0)、p(1))=20−19×|p(0)−0.5|−19×|p(1)−0.5|
(ただし、|・・・|は絶対値を表す。)
を用いた。ただし、ここではすべての文字位置について同一の条件であるため、文字位置を意味するサフィックスjを省略する。
【0067】
この関数は、最大値=20(p(0)=p(1)=0.5のとき)、および最小値=1(p(0)=1、p(1)=0のとき、またはp(0)=0、p(1)=1のとき)を持つ。
【0068】
図12は、本実施例で試行したナップザック問題の例を示している。荷物数は50で、容量当たりの値段が高いものから順番に1から50までの番号をふってある。ナップザックの制限容量を1500とすると、最高合計金額(=最適値)は2230である。この解は、図12の「解」の列に示されており、解の列の「1」はその荷物を選択することを、「0」はその荷物を選択しないことを意味する。
【0069】
図13は、遺伝的アルゴリズムの従来法の方法と本発明の方法との性能比較を示している。
制限世代(制限回数)を100とした場合および制限世代を1000とした場合について、従来の方法と本発明による方法を各々10回ずつ試行した。10回の試行の間に得られた評価値の最大値およびそれが得られた世代数を、それぞれの方法毎に図13に示している。これらの試行において、平均変異率mは0.08、解候補数Nは100、交叉の確率は0.5とした。
【0070】
図13(A)は制限世代を100とした場合の各試行の結果を示しており、制限世代が100の場合においては、従来の方法では解(2230)が1度も得られなかったが、本発明の方法では10回中8回の試行で最大値が2230を示しており、解が得られている。また、解を得られなかった残りの2回の試行でも、解に極めて近い評価値(2228)を持つ解が得られた。
【0071】
図13(B)は制限世代を1000とした場合の各試行の結果を示している。制限世代数が1000の場合においては、従来の方法では解が得られた試行は3回であるが、本発明の方法ではすべての試行で解が得られている。また、解が得られるまでにかかる世代数は、本発明の方法では平均47.7世代であるのに対し、従来の方法では、解が得られた3回の試行の場合においても、それぞれ798世代、463世代および123世代かかっており平均でも461.3世代となっている。
【0072】
この結果は、本発明が解を得る能力と、解を得るまでの速さの両面において非常に有効であることを示すものである。
以上の効果がどのような理由によって得られるのかを示すため、探索の様子を以下に詳しく説明する。
【0073】
図14は、図13に示す従来の方法の試行1における第30世代の解候補の文字列の状態を示しており、図15は、図13に示す本発明の方法の試行1における第30世代の解候補の文字列の状態を示している。文字列の表示は、左から順に荷物の番号1〜50に対応させている(図12参照)。また、右端の数字は評価値を表したものである。
【0074】
ナップザック問題では、一般に容量当たりの値段が大きい荷物を選択する方が効果的である。したがって図12に示す問題では、荷物は容量当たりの値段が大きい順番に1から番号を付与して並べてあるので、なるべく番号が小さい荷物を選ぶのがよく、番号が大きいものを選ばない方がよい。これは、文字列に対応させれば、左端に近い文字位置を1に、また右端に近い文字位置を0に固定しておくのが効果的であることを意味する。すなわち、左右両端に近い文字位置は、致死的であると考えられる。実際に、右側の文字位置に1が存在する解候補は、制限容量を超えてしまいがちであるため、その評価値は0の場合が多く、それらはすべて淘汰される。また、左側の文字位置に0がある解候補は評価値が下がり、それらもやはり淘汰される可能性が高い。このような状況でより良い評価値を得るためには、左右両端に近い文字位置の変異率はなるべく抑え、その分中央部の文字位置の変異率を高くすることが効率的であると考えられる。
【0075】
従来の方法および本発明の方法における文字列の様子を見ると、従来の方法に比べて、本発明の方法による変異では、両端の致死的文字位置の変異率が低く、文字のバラツキが少なく抑えられ、その分中央の文字位置の変異率を高くして、文字のバラツキが多くなっていることがわかる。そのため、従来の方法では59個の解候補が制限容量を超え評価値が0になるのに対して、本発明の方法では、そのような解候補は38個に抑えられた。
【0076】
以上のような違いが、探索の効率化をもたらすものと考えられる。
図16は、従来の方法と本発明の方法を用いた場合について、最適値へ達するまでの各世代における最大評価値の変化を示している。本発明の方法では、解候補集団における最大評価値が世代交代によって急激に上昇し、最適値へ達するまでにかかる世代数Gaが、従来の方法での世代数Gcより、はるかに少ないことがわかる。
【0077】
また、図17は、各荷物数について異なる5問の問題を解く場合に、従来の方法と本発明の方法とで、最適値を得るのにかかった世代数の比Gc/Gaの範囲(図中、線で示す)およびその平均値(図中、黒丸で示す)を示している。これによると、荷物数が増加すると、従来の方法での世代数Gcと本発明による方法での世代数Gaとの比Gc/Gaも増加し、荷物数が増加すればするほど、すなわち問題の規模が大きくなればなるほど、本発明の効果が大きくなることがわかる。
【0078】
図8は、本発明による遺伝的アルゴリズム実行装置の第2の動作例を表している。
本動作例では、図8に示すように、図2に示した第1の動作例の処理におけるステップS5およびステップS6の処理の代わりにステップS10(文字位置選択部4による文字位置選択処理)とステップS11(組み合せ生成部5による組み合せ生成処理)を行う。ステップS10およびステップS11以外の処理は、図2における処理と同様であるので説明を省略する。
【0079】
ステップS10(文字位置選択処理)では、文字位置選択部4が文字分布<pj (a)>に対する乱雑度関数Rj (<pj (a)>)を用いて各文字位置の乱雑度を求め、所定の値より高い乱雑度の文字位置を選択する。
【0080】
図9は、上記の文字位置選択処理(ステップS10)、およびそれに続く組合せ生成処理(ステップS11)を説明する図である。
図9(A)は、ステップS1〜ステップS3までの処理を経た解候補集団(文字列集団)の例を示している。図に示すように、この解候補集団の第3および第6文字位置は「0、1、2」の文字を持ち、他の(第1、第2、第4、第5)文字位置は、「0、1」の文字を持つ。この解候補集団に対して各文字位置の文字分布を計算し(ステップS4)、第j文字位置の乱雑度rj を求める(ステップS10)。
【0081】
さらにステップS10では、文字位置選択のための乱雑度の閾値が例えば4に設定されている場合、図9(A)に示すように、乱雑度が4より大きい第3および第5文字位置が選択される。
【0082】
次にステップS11では、組合せ生成部5が、選択された文字位置の文字の全組合せを生成して、それらの組合せの文字を選択された文字位置に当てはめた解候補を生成する(図10(B)参照)。その後、このようにして生成した全組合せ数の解候補集団から最も評価値の高い解候補を選択して元の解候補と置き換え、新しい文字列の集まりが出力される(図10(C)参照)。
【0083】
これより、図9(A)に示す古い解候補集団の第1番目の文字列(G1)についての処理を具体的に説明する。
まず、所定の閾値4より大きい乱雑度を持つ第3および第5文字位置の文字のすべての組合せを生成する。第3文字位置は「0、1、2」の文字を持ち、第5文字位置は「0、1」の文字を持つので、生成される文字の組合せは、「0、0」、「1、0」.「2、0」、「0、1」、「1、1」、「2、1」の6通りである。これらの組合せを元の解候補G1に当てはめて、6個の解候補を生成する。
【0084】
図9(B)は、解候補G1から生成された6個の解候補集団を示す。
次に、図9(B)に示す解候補について評価値を計算し、これらの中で最も評価値の高い解候補(評価値=72の解候補)をG1’として元の解候補G1と置き換える。同様の処理を解候補G2〜G8についても行うと、例えば図9(C)に示す解候補G1’〜G8’からなる新しい解候補集団が生成される。もちろん、特定の解候補についてだけ、上記の置き換えを行ってもよい。
【0085】
図10は、文字位置選択部4の処理を表すフローチャートである。
図中、Lは文字位置数、R(j、・・・)は第j文字位置における乱雑度関数、r(j)は第j文字位置の乱雑度、A(j)は第j文字位置における文字の種類の数、p(j,a)は第j文字位置の文字がaである解候補が全体に占める割合、Qは所定の閾値、S(j)は第j文字位置の選択/非選択を表す識別値(選択/非選択識別値)である。
【0086】
文字位置選択部4は、第j文字位置における乱雑度関数R(j、・・・)に従って、各文字位置ごとに乱雑度r(j)を求める(ステップ151〜ステップ154)。
【0087】
続いて、第j文字位置の乱雑度r(j)が閾値Qより大きいかどうかを調べて、乱雑度r(j)が閾値Qより大きい場合には選択/非選択識別値S(j)を1(選択を示す)とし、乱雑度r(j)が閾値Qより小さい場合には選択/非選択識別値S(j)を0(非選択をしめす)とする(ステップ155〜ステップ160)。このようにして決定された識別子S(j)が文字位置選択部4から出力される。
【0088】
図11は、組合せ生成部5の処理を表すフローチャートである。
図中、Lは文字位置数、Nは解候補総数、A(j)は第j文字位置における文字の種類の数、x(n,j)は第n解候補の文字列における第j文字位置の文字、S(j)は第j文字位置の選択/非選択識別値、g(・・・)は評価関数、y(n,j)は新しい第n解候補の第j文字位置における文字を表す。
【0089】
組合せ生成部5は、解候補集団の中の1番目の解候補からN番目の解候補まで、解候補番号nを1ずつ加算しながら(ステップ202)、以下の処理を繰り返す(ステップ171、172)。
【0090】
まず、着目しているn番目の解候補に対する評価関数g(・・・)の結果(評価値)を、作業変数Hに代入する(ステップ173)。次に、n番目の解候補のすべての文字位置の文字x(n,j)を新解候補の文字位置の文字y(n,j)へ移す(ステップ174〜ステップ177)。
【0091】
次に、第j文字位置の選択/非選択識別値S(j)が1であるすべての文字位置の文字の組合せ総数Bを求める(ステップ178〜ステップ184)。
次に、第j文字位置の選択/非選択識別値S(j)が1である文字位置に埋め込むべき全文字の組合せを1つずつ生成し、新しい解候補の選択/非選択識別値S(j)が1である文字位置に代入する(ステップ185〜ステップ193:図9の(B)に対応)。
【0092】
このとき、上記文字の組み合わせが代入された解候補の評価関数g(・・・)の結果が変数Gに代入され(ステップ194)、古い解候補の評価関数の結果(あるいはそれ以前に代入された評価値)Hと比較される。Gの値がHよりも大きい場合にはGの値をHへ代入し、新解候補の文字位置の文字y(n,j)に、その時点で考慮されている文字列(評価値Gを生み出した組み合わせの文字列)の文字x(n,j)を代入する。Gの値がHより大きくない場合には、Hおよび新解候補の文字位置の文字y(n,j)は元のままとする(ステップ195〜ステップ200)。
【0093】
このようにして、古い解候補に対して第j文字位置の選択/非選択識別値S(j)が1であるすべての文字位置の文字の組合せ総数Bだけ解候補が生成され(ステップ201)、その中からもっとも評価値の高い解候補が古い解候補に置き換えられていく(ステップ185〜201)。この処理は古い解候補の全てに対して行なわれる(ステップ202)。
【0094】
本発明による動作例として、図2に示すように、文字分布計算(ステップS4)を行った後に突然変異率計算処理(ステップS5)と突然変異処理(ステップS6)を行う場合と、図8に示すように、文字分布計算(ステップS4)を行った後に文字位置選択(ステップS10)と組合せ生成(ステップS11)を行う場合とに分けて説明したが、これらの処理を適宜組み合わせて処理を行ってもよく、また例えば何世代かおきにこれらの処理を行ったり、特定の世代のみを対象としてこの処理を行ってもよい。
【0095】
図18は、本発明による遺伝的アルゴリズム実行装置の第3の動作例を表している。
本動作例は、図18に示すように、図8に示した第2の動作例のなかで、ステップ4(文字分布計算)からステップ11(組み合せ生成)までの処理に変更を加えたものである。
【0096】
この処理では、淘汰処理(ステップS3)の後に文字分布計算部1によって各文字位置jに対する文字分布(例えば文字が「0」と「1」の場合はpj (0)とpj (1))を求め、求めた文字分布を文字分布記録部6に記録する(ステップ4’)。次に、文字位置選択部4は文字分布記録部6に所定のT回分の文字分布のデータが記録された時点で、各文字位置の文字分布の平均値p’j(0)とp’j(1)を計算し、各文字位置の乱雑度rjを次の乱雑度関数によって求める。
【0097】
rj=1−|p’j(0)−0.5|−|p’j(1)−0.5|
この後、文字位置選択部4は乱雑度rjの値がQ(所定の閾値)以上である文字位置を選択して記録する(ステップS10’)。ここで、文字位置選択部4は、この条件を満たす文字位置の数が所定の値であるW個よりも多い場合には、乱雑度が大きい順にW個の文字位置を選択する。この操作により、最終的に選択される文字位置の数は常に最大でW個に限定される。この限定により、選択される文字位置の数が制限されるので、次のステップS11における組み合せ計算に要する時間を節約することができる。
【0098】
次に、ステップS11において組合せ生成部5は、選択された文字位置の文字の全組合せを生成して、それらの組合せの文字を選択された文字位置に当てはめた解候補を生成し、生成した全組合せ数の解候補集団から最も評価値の高い解候補を選択して元の解候補と置き換え、新しい文字列の集まりとして出力する。このとき、文字分布記録部のデータはクリアされ、処理はS7の交叉処理へと進む。
【0099】
図19は、この第3の動作例に基づいて図12のナップザック問題に対して実行された処理(制限世代100及び1000)の結果を表している(図13に対応)。ここでは、文字分布記録部に記録されるデータ回数は2(T=2)、乱雑度の閾値は0.5(Q=0.5)、選択する文字位置数の制限値は8(W=8)とした。
【0100】
図19に示すように、制限世代数を100とした場合の処理によって、一例だけではあるが解(2230)が得られている。また、制限世代数を1000とした場合の処理では、8例の解と2例の解に近い値が得られており、この8例の解の平均世代数は456.3であった。この結果から、第3の動作例においても従来例に比べて遺伝的アルゴリズム処理が改善されたことがわかる。なお、この第3動作例は上述の第1動作例に比べると改善の度合いが少ないが、その優劣は与える問題に強く依存するものと考えられる。
【0101】
次に、本発明による遺伝的アルゴリズム実行装置の第2の実施形態について説明する。この第2の実施形態の遺伝的アルゴリズム実行装置は図1(A)に示す構成のなかの探索効率化部13を、以下に説明する探索効率化部13’に置き換えたものである。
【0102】
図20は、この探索効率化部13’の構成を示している。この図に示すように、探索効率化部13’は、文字分布計算部1と、変異率計算部2と、突然変異処理部3と、文字位置選択部4と、組合せ生成部5と、文字分布記録部6と、世代数カウント部7と、終了条件評価部8とを備えている。文字分布計算部1と、変異率計算部2と、突然変異処理部3と、文字位置選択部4と、組合せ生成部5と、文字分布記録部6は図1(A)もののと同じ機能を持つので、ここではその説明を省略する。
【0103】
世代数カウント部7は、世代数カウンタを備えており、これによって世代数を数えて記録する。世代数カウンタは、1つの遺伝的アルゴリズム処理の初期にリセット信号によってゼロにリセットされ、1世代の処理が行なわれるごとにカウントアップ信号によってカウント値を1づつ上げていく。
【0104】
終了条件評価部8は、文字分布計算部1及び/または文字分布記録部6のデータと、世代数カウント部7のデータを評価して、終了条件が満たされているか否かを判定する。終了条件が満たされていれば、終了条件評価部8は終了信号を外部に出力してアルゴリズムを終了させ、終了条件が満たされていないときには、文字分布の情報を変異率計算部2及び/又は文字位置選択部4に送り、また文字列の配列情報を突然変異処理部3及び/又は組み合せ生成部5に送り、新しい文字列の集まりを得る。さらに、これと同時に終了条件評価部8は継続信号を外部に送って、終了条件が満たされなかったことを知らせる。
【0105】
文字分布計算部1によって得られる文字分布は、第j文字位置に対する文字がaである解候補の全解候補に対する割合pj (a)によって表される。ここで、全ての文字位置jに関する<pj (a)>の並びを{pj (a)}と記すことにする。本実施形態に基づく処理では、{pj (a)}と世代数tに依存する関数(終了条件関数)をE({pj (a)}、t)と定義し、この終了条件関数の値と所定の値εとの大小関係(終了条件式による評価)をアルゴリズムの終了条件として用いる。
【0106】
次に、第2実施形態の遺伝的アルゴリズム実行装置に基づく動作処理について説明する。図21は、この動作処理の流れを表すフローチャートである。この処理において、ステップS1とS2は、それぞれ図2及び図8のステップS1とS2に対応し、ステップS3−1〜N、S4−1〜N、S8−1〜Nは、それぞれ図2及び図8のステップS3、S4、S8に対応しているので、その詳しい説明は省略する。また、ステップS12−1〜N(組み替え処理)は、図2に示した処理におけるステップS5とS6とS7の処理をまとめたものである。
【0107】
本処理では、まずステップ1において初期集団生成部11によって解候補の初期集団が生成され、ステップ2においてそれぞれの解候補の適応度が求められると、ステップ13において世代数カウント部7の世代数カウンタがリセットされ0にセットされる。次に、ステップS3−1において淘汰処理部12による解候補の淘汰がなされたあと、ステップS4−1において文字分布計算部1が各文字位置に対する文字分布を計算する。このとき求めた文字分布は文字分布記録部6に記録される。次に、ステップS12−1において組み替え処理がおこなわれるが、この組み替え処理では、変異率計算部2による変異率計算処理(図2のS5に対応)と、突然変異処理部3による突然変異処理(S6に対応)と、交叉処理部14による交叉処理(S7に対応)が行われる。なお、ステップS12−1では、変異率計算部2による変異率計算処理(図2のS5に対応)と、突然変異処理部3による突然変異処理(S6に対応)と、S7の交叉処理を行なってもよい
。
【0108】
次に、S8−1において組み替え処理(S12−1)で得られた解候補の適応度が求められ、S14−1において世代数カウント部7が世代数カウンタをインクリメントする(カウント値0→1)。この後、ステップS9−1において、終了条件評価部8が、世代数カウンタと文字分布のデータを第1終了条件式に当てはめて第1終了条件(終了条件1)が満たされているかどうかを判断する。第1終了条件が満たされていなければ(ステップS9−1、No)再びステップS3−1へ戻り、満たされていれば(ステップS9−1、Yes)ステップS3−2へと進む。
【0109】
ステップS3−2からは、前述のステップS3−1〜S9−1と同様の処理(ステップS3−2〜S9−2、・・・、ステップS3−N〜S9N)を繰り返し、終了条件評価部8は第2処理条件(処理条件2)〜第N処理条件(処理条件N)を判断する。そして、最後の処理条件Nが満たされた時点でアルゴリズムを終了する。
【0110】
次に、第2実施形態の遺伝的アルゴリズム実行装置による処理動作について説明する。ここでは、図12に示したナップザック問題を解く場合を例として用いている。終了条件としては、次のような世代数tと文字分布{pj (a)}に関する2つの終了条件を用いるものとする。
終了条件1:t>10
終了条件2:
(1/50)Σj (20−19×|pj (0)−0.5|−19×|pj (1)−0.5|)≦1.3
上記の終了条件1を用いているので、第10世代までは図2に示す処理と同じ処理がなされる。第11世代以降は、上記の終了条件2に基づいて文字分布が十分そろったことが判断された時点で処理を終了する。
【0111】
次に、上記のアルゴリズム実行処理の結果について説明する。
図22は、上記アルゴリズム実行処理の10回の試行の結果を表している。ここには、それぞれの試行結果における評価値の最大値と、最大値が得られた世代と、アルゴリズムが終了した世代(終了世代)を示している。この図からわかるように、いずれの試行においても最大値として解(2230)が得られており、終了世代は最大でも334であった。また、終了世代の平均は142.6であり、第1実施形態による試行において解を得るために1000世代まで計算を続けていたことに比べて、処理の計算時間を大幅に短縮することができた。
【0112】
図23は、本発明の遺伝的アルゴリズム実行装置(図1や図20に示す装置)を実現するコンピュータシステムの例を表しており、図2、図6〜図11、図18、図21に示したような処理をコンピュータプログラムによって実行しようとする場合、そのプログラムの実行に用いられるコンピュータシステムの例を表している。
【0113】
このコンピュータシステムは、コンピュータ本体100とディスプレイ200とキーボード及びマウスからなる入力装置850を備えており、コンピュータ本体100はプロセッサ110とメモリ120と記憶媒体用ドライバ130を備えている。
【0114】
プロセッサ110は、図1(A)の初期集団生成部11、淘汰処理部12、交叉処理部14、探索効率化部13の動作を実行し、さらに、図1(B)及び図20の文字分布計算部1、変異率計算部2、突然変異処理部3、文字位置選択部4、組み合せ生成部5、世代数カウント部7、終了条件評価部8の動作を実行する。この処理は具体的には、コンピュータプログラムによって図2、図6〜図11、図18、図21に示したような処理を実行することによって実現される。
【0115】
メモリ120は、そのコンピュータプログラムやプログラムの実行に必要なデータ(初期解候補集団の文字列、評価関数、乱雑度関数、各所定値、閾値、条件値等)、さらにはプログラムの実行によって得られたデータ(文字分布、評価値、乱雑度、変異率、世代数、新たな解候補集団の文字列等)を保持する。また、メモリ120は文字分布記録部6としても機能する。
【0116】
ドライバ130は外部記憶媒体に格納されたプログラムやデータをプロセッサ110やメモリ120に導入するためのものであり、本発明の処理を実行するためのコンピュータプログラムが外部記憶媒体に格納されている場合、このドライバ130を介して外部記憶媒体に格納されたプログラムが実行される。なお、入力装置250はユーザがプログラムの実行に必要なデータや命令を入力するために用いられる。
【0117】
本発明の処理を実行するためのコンピュータプログラムが外部記憶媒体に格納される場合、それはCDROM等の光記憶媒体、フロッピーディスク等の磁気記憶媒体、MD等の光−磁気記憶媒体によって実現されうる。また、本発明による処理を実行するためのコンピュータプログラムは、ハードディスク、ROM、RAM等の内部記憶媒体にも格納されうる。
【0118】
【発明の効果】
本発明によれば、遺伝的アルゴリズムにおいて問題を解く場合に、問題が大規模であっても、各文字位置に設定されている変異率を文字位置ごとの文字分布に基づいて再設定することにより、効率的に最適解を探索することができ、探索の効率化により探索の世代数を少なくして、探索処理の速度を向上させることができる。
【0119】
また、各文字位置の文字分布に基づいて乱雑度の大きい文字位置についての文字の変更を試み、評価値が高くなる文字列を作り出すことにより、探索の効率化を図り、最適解を得るまでの世代数を大幅に減少させることが可能になる。
【0120】
さらに、第2実施形態によれば、遺伝的アルゴリズムによって問題を解く場合に、必要のない繰り返し計算を行なうことがなくなるので、処理にかかる計算時間を節約することができる。
【図面の簡単な説明】
【図1】本発明による遺伝的アルゴリズム実行装置の基本構成を表すブロック図である。
【図2】本発明による遺伝的アルゴリズム実行処理の第1の動作例を表すフローチャートである。
【図3】文字分布の概念を説明するための図である。
【図4】乱雑度関数を説明するための図である。
【図5】乱雑度を説明するための図である。
【図6】文字分布計算部の処理を表すフローチャートである。
【図7】変異率計算部の処理を表すフローチャートである。
【図8】本発明による遺伝的アルゴリズム実行処理の第2の動作例を表すフローチャートである。
【図9】文字位置選択/組合せ生成処理の説明図である。
【図10】文字位置選択部の処理を表すフローチャートである。
【図11】組合せ生成部の処理を表すフローチャートである。
【図12】ナップザック問題の例を示す図である。
【図13】従来法と本発明の方法との性能比較を示す図である。
【図14】従来の方法による途中世代の文字列の状態を示す図である。
【図15】本発明の方法による途中世代の文字列の状態を示す図である。
【図16】従来の方法と本発明の方法における評価値および世代数の関係を示す図である。
【図17】ナップザック問題の解を得るのにかかった従来の方法による世代数Gcと本発明の方法による世代数Gaとの比を示す図である。
【図18】本発明による遺伝的アルゴリズム実行処理の第3の動作例を表すフローチャートである。
【図19】第3の動作例に基づく処理の結果を表した図である。
【図20】本発明による遺伝的アルゴリズム実行装置の第2の実施形態を表すブロック図である。
【図21】第2実施形態による遺伝的アルゴリズム実行処理を表すフローチャートである。
【図22】第2実施形態の遺伝的アルゴリズム実行装置による処理結果を表している。
【図23】本発明の遺伝的アルゴリズムアルゴリズム実行装置を実現するコンピュータ装置を表している。
【図24】遺伝的アルゴリズムの説明図である。
【符号の説明】
1 文字分布計算部
2 変異率計算部
3 突然変異処理部
4 文字位置選択部
5 組み合せ生成部
6 文字分布記録部
7 世代数カウント部
8 終了条件評価部
10 遺伝的アルゴリズム実行装置
11 初期集団生成部
12 淘汰処理部
13、13’ 探索効率化部
14 交叉処理部
Claims (14)
- 遺伝的アルゴリズムに基づいて最適化問題を解く遺伝的アルゴリズム実行装置であって、
解候補集団を構成する複数の文字列に対して、各文字位置毎に文字分布を計算する文字分布計算手段と、
該文字分布を用いて各文字位置毎に乱雑度を求め、求めた乱雑度に基づいて各文字位置毎に変異率を設定する変異率計算手段と、
該変異率に応じて解候補に対して突然変異を実行し、新たな解候補を作成する突然変異処理手段とを備え、
前記変異率計算手段は、前記乱雑度がより大きい文字位置の変異率をより高く設定するか、あるいは前記乱雑度がより小さい文字位置の変異率をより低く設定する、
ことを特徴とする遺伝的アルゴリズム実行装置。 - さらに、前記文字分布計算手段が計算した文字分布を記録する文字分布記録手段を備えており、
前記変異率計算手段は、該文字分布記録手段に記録された文字分布に基づいて前記乱雑度を求める、
ことを特徴とする請求項1に記載の遺伝的アルゴリズム実行装置。 - さらに、解候補集団の世代数をカウントする世代数カウント手段と、
前記文字分布計算手段が求めた文字分布および該世代数カウント手段によるカウント値のうちの少なくとも一方を用いて、遺伝的アルゴリズムによる計算処理を終了させるかどうかを判断する終了条件評価手段と、
を備えることを特徴とする、請求項1に記載の遺伝的アルゴリズム実行装置。 - 前記終了条件評価手段は、前記文字分布計算手段が計算した文字分布の偏り具合が所定の値以下であることを判断した場合、遺伝的アルゴリズムによる計算処理を終了させる、
ことを特徴とする請求項3に記載の遺伝的アルゴリズム実行装置。 - さらに、該文字分布を用いて各文字位置毎に乱雑度を求め、所定の値よりも高い乱雑度をもつ文字位置を選択する文字位置選択手段と、
該複数の文字列における該選択した文字位置の文字を変更して、新たな解候補を作成する組み合せ生成手段と、
を備えることを特徴とする、請求項1に記載の遺伝的アルゴリズム実行装置。 - 前記組み合せ生成手段は、前記複数の文字列のそれぞれに対して、前記選択した文字位置の文字を設定可能な文字に置き換えた文字列の全ての組み合わせを設定し、設定した組み合わせの中から評価値の高い文字列を選択して、新たな解候補集団を作成する、
ことを特徴とする請求項5に記載の遺伝的アルゴリズム実行装置。 - 前記文字位置選択手段は、前記所定の値よりも高い乱雑度をもつ文字位置の数が所定の数よりも多かった場合、乱雑度が高い文字位置から該所定の数分の文字位置を選択する、
ことを特徴とする請求項5に記載の遺伝的アルゴリズム実行装置。 - 遺伝的アルゴリズムに基づいて最適化問題を解くための遺伝的アルゴリズム実行プログラムを記録した記憶媒体であって、
前記遺伝的アルゴリズム実行プログラムはコンピュータを
解候補集団を構成する複数の文字列に対して、各文字位置毎に文字分布を計算する文字分布計算手段と、
該文字分布を用いて各文字位置毎に乱雑度を求め、求めた乱雑度に基づいて各文字位置毎に変異率を設定する変異率計算手段と、
該変異率に応じて解候補に対して突然変異を実行し、新たな解候補を作成する突然変異処理手段として機能させるためのプログラムであって、
前記変異率計算手段では、乱雑度がより大きい文字位置の変異率がより高く設定されるか、あるいは乱雑度がより小さい文字位置の変位率がより低く設定されることを特徴とする遺伝的アルゴリズム実行プログラムを記録したコンピュータが読取可能な記憶媒体。 - さらに、前記文字分布計算手段が計算した文字分布を記録する文字分布記録手段を含み、
前記変異率計算手段は、該文字分布記録手段に記録された文字分布に基づいて前記乱雑度を求める、
ことを特徴とする請求項8に記載の遺伝的アルゴリズム実行プログラムを記録したコンピュータが読取可能な記憶媒体。 - さらに、解候補集団の世代数をカウントする世代数カウント手段と、
前記文字分布計算手段が求めた文字分布および該世代数カウント手段によるカウント値のうちの少なくとも一方を用いて、遺伝的アルゴリズムによる計算処理を終了させるかどうかを判断する終了条件評価手段と、
を含む、請求項8に記載の遺伝的アルゴリズム実行プログラムを記録したコンピュータが読取可能な記憶媒体。 - 前記終了条件評価手段は、前記文字分布計算が計算した文字分布の偏り具合が所定の値以下であることを判断した場合、遺伝的アルゴリズムによる計算処理を終了させる、ことを特徴とする請求項10に記載の遺伝的アルゴリズム実行プログラムを記録したコンピュータが読取可能な記憶媒体。
- さらに、該文字分布を用いて各文字位置毎に乱雑度を求め、所定の値よりも高い乱雑度をもつ文字位置を選択する文字位置選択手段と、
該複数の文字列における該選択した文字位置の文字を変更して、新たな解候補を作成する組み合わせ生成手段と、
を備えることを特徴とする請求項8に記載の遺伝的アルゴリズム実行プログラムを記録したコンピュータが読取可能な記憶媒体。 - 前記組み合わせ生成手段は、前記複数の文字列のそれぞれに対して、前記選択した文字位置の文字を設定可能な文字に置き換えた文字列の全ての組み合わせを設定し、設定した組み合わせの中から評価値の高い文字列を選択して、新たな解候補集団を作成する、
ことを特徴とする請求項12に記載の遺伝的アルゴリズム実行プログラムを記録したコンピュータが読取可能な記憶媒体。 - 前記文字位置選択手段は、前記所定の値よりも高い乱雑度をもつ文字位置の数が所定の数よりも多かった場合、乱雑度が高い文字位置から該所定の数分の文字位置を選択する、ことを特徴とする請求項12に記載の遺伝的アルゴリズム実行プログラムを記録したコンピュータが読取可能な記憶媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP33753597A JP3577207B2 (ja) | 1996-12-12 | 1997-12-08 | 遺伝的アルゴリズム実行装置、実行方法およびそのプログラム記憶媒体 |
US08/990,050 US6182057B1 (en) | 1996-12-12 | 1997-12-12 | Device, method, and program storage medium for executing genetic algorithm |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8-331999 | 1996-12-12 | ||
JP33199996 | 1996-12-12 | ||
JP33753597A JP3577207B2 (ja) | 1996-12-12 | 1997-12-08 | 遺伝的アルゴリズム実行装置、実行方法およびそのプログラム記憶媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10228460A JPH10228460A (ja) | 1998-08-25 |
JP3577207B2 true JP3577207B2 (ja) | 2004-10-13 |
Family
ID=26574042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP33753597A Expired - Fee Related JP3577207B2 (ja) | 1996-12-12 | 1997-12-08 | 遺伝的アルゴリズム実行装置、実行方法およびそのプログラム記憶媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6182057B1 (ja) |
JP (1) | JP3577207B2 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030074301A1 (en) * | 1999-11-01 | 2003-04-17 | Neal Solomon | System, method, and apparatus for an intelligent search agent to access data in a distributed network |
US20020069134A1 (en) * | 1999-11-01 | 2002-06-06 | Neal Solomon | System, method and apparatus for aggregation of cooperative intelligent agents for procurement in a distributed network |
US20020055903A1 (en) * | 1999-11-01 | 2002-05-09 | Neal Solomon | System, method, and apparatus for a cooperative communications network |
US20020046157A1 (en) * | 1999-11-01 | 2002-04-18 | Neal Solomon | System, method and apparatus for demand-initiated intelligent negotiation agents in a distributed network |
JP2001307977A (ja) * | 2000-02-18 | 2001-11-02 | Nikon Corp | 荷電粒子線露光装置の設計方法、荷電粒子線露光装置、及び半導体デバイスの製造方法 |
US6859796B1 (en) | 2001-07-19 | 2005-02-22 | Hewlett-Packard Development Company, L.P. | Method of using multiple populations with cross-breeding in a genetic algorithm |
GB0126298D0 (en) * | 2001-11-01 | 2002-01-02 | Rolls Royce Plc | Fault diagnosis |
US20040039716A1 (en) * | 2002-08-23 | 2004-02-26 | Thompson Dean S. | System and method for optimizing a computer program |
US20050197987A1 (en) * | 2004-01-21 | 2005-09-08 | Anderson David M. | Systems and methods for selecting a value set |
US20050159897A1 (en) * | 2004-01-21 | 2005-07-21 | Anderson David M. | Postponing validation of speculative chromosomes |
US20050197978A1 (en) * | 2004-01-21 | 2005-09-08 | Anderson David M. | Speculative pool |
US20050197979A1 (en) * | 2004-01-21 | 2005-09-08 | Anderson David M. | Speculation count in a genetic algorithm |
US7139986B2 (en) * | 2004-03-11 | 2006-11-21 | Hewlett-Packard Development Company, L.P. | Systems and methods for determining costs associated with a selected objective |
JP4247908B2 (ja) | 2004-12-15 | 2009-04-02 | 株式会社カシオ日立モバイルコミュニケーションズ | 携帯端末装置およびデータ回収方法 |
JP4918868B2 (ja) * | 2007-02-07 | 2012-04-18 | 富士通株式会社 | 入力値選定プログラム、入力値選定方法および入力値選定装置 |
CN106708609B (zh) * | 2015-11-16 | 2020-06-26 | 阿里巴巴集团控股有限公司 | 一种特征生成方法及系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5148513A (en) * | 1988-05-20 | 1992-09-15 | John R. Koza | Non-linear genetic process for use with plural co-evolving populations |
US5319781A (en) * | 1991-05-03 | 1994-06-07 | Bolt Beranek And Newman Inc. | Generation of schedules using a genetic procedure |
GB9201856D0 (en) * | 1992-01-29 | 1992-03-18 | British Telecomm | Method of forming a template |
US5557533A (en) * | 1994-04-19 | 1996-09-17 | Lsi Logic Corporation | Cell placement alteration apparatus for integrated circuit chip physical design automation system |
FR2719140A1 (fr) * | 1994-04-20 | 1995-10-27 | Philips Laboratoire Electroniq | Méthode pour l'analyse d'écriture cursive. |
US5819244A (en) * | 1995-10-02 | 1998-10-06 | Apple Computer, Inc. | Adaptive computing systems, computer readable memories and processes employing hyperlinear chromosomes |
US5974355A (en) * | 1996-07-26 | 1999-10-26 | Fujitsu Limited | Automatic time series pattern creating method |
US5848403A (en) * | 1996-10-04 | 1998-12-08 | Bbn Corporation | System and method for genetic algorithm scheduling systems |
-
1997
- 1997-12-08 JP JP33753597A patent/JP3577207B2/ja not_active Expired - Fee Related
- 1997-12-12 US US08/990,050 patent/US6182057B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6182057B1 (en) | 2001-01-30 |
JPH10228460A (ja) | 1998-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3577207B2 (ja) | 遺伝的アルゴリズム実行装置、実行方法およびそのプログラム記憶媒体 | |
Lucasius et al. | Understanding and using genetic algorithms Part 2. Representation, configuration and hybridization | |
US7085690B2 (en) | Unsupervised machine learning-based mathematical model selection | |
US20060230018A1 (en) | Mahalanobis distance genetic algorithm (MDGA) method and system | |
CN112559374A (zh) | 测试用例排序方法及电子设备 | |
Huang et al. | Bi-phase evolutionary searching for biclusters in gene expression data | |
EP1711919A1 (en) | Example-based diagnosis decision support | |
CN114936518A (zh) | 一种拉伸/压缩弹簧设计参数求解方法 | |
JP2873955B1 (ja) | 画像処理方法および装置 | |
Asokan et al. | Machine-cell grouping in cellular manufacturing systems using non-traditional optimisation techniques-A comparative study | |
CA2435254A1 (en) | Methods of identifying patterns in biological systems and uses thereof | |
JP3530842B2 (ja) | 核酸塩基配列アセンブル装置及びその動作方法 | |
KR20230170679A (ko) | 심층 학습을 위한 효율적인 복셀화 | |
JP2000040106A (ja) | 生産システムの工程編成方法及び生産システムの工程編成装置並びに生産システムの工程編成プログラムを記録した記録媒体 | |
KR20230171930A (ko) | 3차원(3d) 단백질 구조들을 사용하여 변이체 병원성을 예측하기 위한 심층 콘볼루션 신경망들 | |
US20220336056A1 (en) | Multi-channel protein voxelization to predict variant pathogenicity using deep convolutional neural networks | |
US11515010B2 (en) | Deep convolutional neural networks to predict variant pathogenicity using three-dimensional (3D) protein structures | |
CN111462915B (zh) | 一种医疗文本数据自动标注方法 | |
CN108897990B (zh) | 面向大规模高维序列数据的交互特征并行选择方法 | |
US20240153582A1 (en) | Systems and methods for myopic estimation of nucleic acid binding | |
CN111383710A (zh) | 基于粒子群优化双子支持向量机的基因剪接位点识别模型构建方法 | |
CN117634618B (zh) | 一种迭代更新的生物学高维数据集的知识推理方法及系统 | |
CN108280327B (zh) | 一种提高样本库样本多样性的出库方法 | |
CN113779877A (zh) | 一种基于遗传算法的自动化特征构建方法 | |
KR20240082269A (ko) | 3차원(3d) 단백질 구조 복셀을 사용하는 진화 보존으로부터의 변이체 병원성 예측 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040106 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040226 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040330 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040527 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040706 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040709 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080716 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090716 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100716 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100716 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110716 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110716 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120716 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120716 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130716 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |