JP3254393B2 - 遺伝的アルゴリズムマシン及び遺伝的アルゴリズムマシンの製造方法及び遺伝的アルゴリズムの実行方法 - Google Patents

遺伝的アルゴリズムマシン及び遺伝的アルゴリズムマシンの製造方法及び遺伝的アルゴリズムの実行方法

Info

Publication number
JP3254393B2
JP3254393B2 JP30827096A JP30827096A JP3254393B2 JP 3254393 B2 JP3254393 B2 JP 3254393B2 JP 30827096 A JP30827096 A JP 30827096A JP 30827096 A JP30827096 A JP 30827096A JP 3254393 B2 JP3254393 B2 JP 3254393B2
Authority
JP
Japan
Prior art keywords
chromosome
crossover
chromosomes
genetic algorithm
fitness
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
Application number
JP30827096A
Other languages
English (en)
Other versions
JPH10149344A (ja
Inventor
シャクルフォード・ジェイ・バリー
悦子 大串
光宏 安田
貴司 岩本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP30827096A priority Critical patent/JP3254393B2/ja
Priority to US08/909,830 priority patent/US6185547B1/en
Priority to US08/910,103 priority patent/US5970487A/en
Publication of JPH10149344A publication Critical patent/JPH10149344A/ja
Application granted granted Critical
Publication of JP3254393B2 publication Critical patent/JP3254393B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

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)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、遺伝的アルゴリ
ズムを実行する遺伝的アルゴリズムマシンに関するもの
である。特に、遺伝的アルゴリズムを高速に実行するハ
ードウェアフレームワークに関するものである。また、
この発明は、遺伝的アルゴリズムマシンの製造方法に関
するものである。また、この発明は、遺伝的アルゴリズ
ムの実行方法に関するものである。
【0002】
【従来の技術】図25は、従来の遺伝的アルゴリズムの
概念図である。遺伝的アルゴリズムは、1975年にJ
ohn Hollandによって紹介されたアルゴリズ
ム(John H.Holland,Adaptati
onin Natural and Artifici
al Systems.University of
Michigan Press,1975(Secon
d edition:MIT Press,199
2.))である。遺伝的アルゴリズムは、複雑な問題の
中で最適な解を探索するための手法である。例えば、G
refenstetteによって述べられた巡回セール
スマン問題の最適解を探すために便利な手法である。遺
伝的アルゴリズムは、染色体の進化を模倣した手法によ
り最適下位を探す手法である。遺伝的アルゴリズムにお
いては、問題を解決するために、まず、候補となる解を
表現する染色体のデータ構造がデザインされる。次に、
そのデータ構造を持ったnビットの染色体がランダムに
生成される。生成された染色体は、集団として登録され
る。この集団から親となる親染色体が所定のアルゴリズ
ムに従って選択される。集団の中の染色体は、それぞれ
特定の問題に対して適応度を有している。適応度は、具
体的には、適応値で表される。集団からの染色体の選択
は、適応度の大きさに比例して行われる。即ち、適応度
が大きい染色体程、選択される可能性が高い。親染色体
が2つ選択されると、この2つの親染色体は、確率的に
発生させられる交叉位置を境界にして組み合わされる。
交叉位置が発生しない場合もある。この場合は、2つの
親染色体の一方がそのまま子染色体としてコピーされて
出力される。このようにして、新しい染色体が生成され
る。この新しい染色体は、親染色体の一部分又は全部を
有する子染色体である。子染色体には、更に、突然変異
の処理が施される。この突然変異の処理は、低い確率で
行われる。実際には、子染色体のあるビットの反転によ
り突然変異の処理が行われる。この突然変異の処理後、
子染色体は評価される。評価された子染色体は、次の世
代の新集団として記憶される。以上のようなプロセスを
繰り返すことにより、集団の中に残った染色体の適応度
は、上昇する。このようにして、問題の解が集団の中に
現れてくる。問題の解は、適応度の高い染色体が集団の
中に数多く現れることによって求められる。前述したよ
うな遺伝的アルゴリズムの大きな欠点は、通常の汎用コ
ンピュータ上でソフトウェアによってエミレーションさ
れているので、非常にその実効速度が遅いということで
ある。
【0003】遺伝的アルゴリズムの実行を高速にするた
めに、幾つかの提案がなされている。例えば、Grah
amらによって、Splash2というハードウェアを
用いて遺伝的アルゴリズムを実行することが提案されて
いる(Paul Graham and Brent
Nelson,“A Hardware Geneti
c Algorithm for the Trave
ling Salesman Problem on
Splash2”Field−Programmabl
e Logic and Applications,
ed.W.Moore and W.Luk,pp.3
52−361,Springer,Oxford,19
95)。また、Sitkoffらによって同じくハード
ウェアを用いて遺伝的アルゴリズムを高速に実行しよう
とする試みが提案されている(Nathan Sitk
off,Mike Wazlowski,Aaron
Smith,and Harvey Silverma
n,“Implementing a Genetic
Algorithm on a Parallel
Custom Computing Machin
e,”Proceedings of IEEE Wo
rkshop on FPGAs for Custo
m Computing Machines,pp.1
80−187,1995)。しかしながら、いずれの提
案も10倍程度の高速性を達成したのにとどまり、その
成果は充分なものとはいえない。その充分な成果を達成
していない理由は、Grahamら及びSitkoff
らの場合、Hollandによって提案された遺伝的ア
ルゴリズムを、そのままハードウェアで実行しようとし
たからである。Hollandの提案したオリジナルの
遺伝的アルゴリズムを忠実にハードウェアでインプリメ
ントする場合には、どうしても効率の悪い面が発生して
しまう。また、充分な成果が得られなかった他の理由
は、遺伝的アルゴリズムをインプリメントするために用
いたハードウェアのアーキテクチャにある。Graha
mらの場合には、Splash2を用いている。Spl
ash2は、再構成可能なコンピュータである。また、
Splash2は、リニアなシストリックデータを扱う
ためにデザインされたものである。例えば、SIMD
(single instruction,multi
ple data)とMIMD(multiple i
nstruction,multiple data)
とをプロセスするためにデザインされたものである。一
方、Sitkoffらの場合には、Armstrong
3を用いている。Armstrong3は、ラフに結合
されたMIMDマルチコンピュータである。Armst
rong3も、再構築可能な機能を持っている。このよ
うに、遺伝的アルゴリズムを実行するのに、ハードウェ
アを用いる試みがあるが、遺伝的アルゴリズムをインプ
リメントするために用いたハードウェアのアーキテクチ
ャが遺伝的アルゴリズムを実行するために開発されたも
のではない。従って、前述したように、これらの装置で
達成された高速性は、充分なものとはいえない。
【0004】
【発明が解決しようとする課題】前述したように、従来
の遺伝的アルゴリズムを実行する装置は、既存の汎用コ
ンピュータ上のソフトウェアにより達成されていたた
め、遺伝的アルゴリズムの実行が非常に遅いという欠点
があった。また、その欠点を補うために、ハードウェア
を用いて遺伝的アルゴリズムを実行する例があるが、充
分な高速性を達成するには至っていなかった。
【0005】この発明は、以上のような問題点を解決す
るためになされたものであり、遺伝的アルゴリズムの実
行速度を高速化することを目的とする。例えば、遺伝的
アルゴリズムの実行速度を従来に比べて、100倍又は
1000倍以上の高速性を達成することを目的とする。
また、この発明は、遺伝的アルゴリズムを実行するため
のハードウェアフレームワークを提供することを目的と
する。このハードウェアフレームワークは、不特定多数
の問題解決に対して遺伝的アルゴリズムを適応できるも
のである。また、この発明は、前述したハードウェアフ
レームワークを特定の問題解決のために容易に再構成す
ることが可能な装置を得ることを目的とする。また、こ
の発明は、遺伝的アルゴリズムを実行するハードウェア
を効果的に、かつ、無駄なく構成することを目的とす
る。また、この発明は、2次的なハードウェアを用いる
ことなく、或いは、2次的なハードウェアを介入させる
ことなく、遺伝的アルゴリズムを直接実行することがで
きる装置を得ることを目的とする。
【0006】
【課題を解決するための手段】この発明に係る遺伝的ア
ルゴリズムマシンは、nビットで表現される染色体を用
いて遺伝的アルゴリズムを実行する遺伝的アルゴリズム
マシンにおいて、適応度を伴った染色体の集団を記憶す
る集団メモリと、集団メモリに記憶された染色体の集団
の中から親染色体を選択する選択部と、選択部により選
択された親染色体に交叉処理を行い、子染色体を生成す
る交叉器と、交叉器により生成された子染色体に突然変
異の処理を行う突然変異器と、突然変異器により突然変
異の処理が行われた子染色体の特定の問題に対する適応
度を評価する適応評価器を搭載する適応評価器搭載部
と、上記適応評価器により評価される適応度に基づいて
子染色体の生存の可否を判定する生存判定器とを備えた
ことを特徴とする。
【0007】上記遺伝的アルゴリズムマシンは、上記集
団メモリと、選択部と、交叉器と、突然変異器と、生存
判定器とを不特定多数の問題に対して共通に用いられる
ハードウェアで構成することにより、上記集団メモリ
と、選択部と、交叉器と、突然変異器と、生存判定器と
を上記遺伝的アルゴリズムマシンのフレームワークとす
ることを特徴とする。
【0008】上記遺伝的アルゴリズムマシンは、種々の
異なる特定の問題向きの適応評価器を上記適応評価器搭
載部に搭載することにより、上記遺伝的アルゴリズムマ
シンを特定の問題向きの遺伝的アルゴリズムマシンとす
ることを特徴とする。
【0009】上記適応評価器を、再構築可能なハードウ
ェアで構成することを特徴とする。
【0010】上記再構築可能なハードウェアは、フィー
ルドプログラマブルゲートアレイ(FPGA)を有する
ことを特徴とする。
【0011】上記集団メモリと、選択部と、交叉器と、
突然変異器と、適応評価器と、生存判定器とは、共通の
マシンサイクルに同期して並列動作することを特徴とす
る。
【0012】上記集団メモリは、親染色体と子染色体と
をともに記憶する1つの連続したメモリ領域であること
を特徴とする。
【0013】上記遺伝的アルゴリズムマシンは、上記集
団メモリに記憶されている適応度の低い染色体を、より
適応度の高い子染色体で置き換えることにより、上記集
団メモリ内に適応度の高い染色体を適応度の低い染色体
より長く生存させることを特徴とする。
【0014】上記遺伝的アルゴリズムマシンは、上記集
団メモリに記憶されている染色体の前回の置き換え以後
に選択された親染色体の中で最も適応度の低い染色体の
アドレスを記憶するアドレスポインタレジスタを備え、
上記集団メモリは、アドレスポインタレジスタに記憶さ
れたアドレスにある染色体を子染色体で置き換えること
を特徴とする。
【0015】上記選択部は、上記集団メモリに記憶され
た染色体の中から染色体の適応度に関わらず、親染色体
をランダムに選択することを特徴とする。
【0016】上記選択部は、2以上の染色体を親染色体
として選択することを特徴とする。
【0017】上記選択部は、上記集団メモリから選択し
た染色体をシリアルに転送するとともに、上記交叉器へ
染色体を並列に出力する2以上の染色体レジスタを備え
たことを特徴とする。
【0018】上記交叉器は、交叉位置を示すパターンを
含む交叉テンプレートを発生する交叉テンプレート発生
器と、交叉テンプレート発生器により発生された交叉テ
ンプレートを入力して、交叉テンプレートをシフトする
nビットの交叉テンプレートシフトレジスタと、上記交
叉テンプレートシフトレジスタから出力されるnビット
の各ビットの値に基づいてnビットの親染色体の交叉処
理を各ビット並列に行うマルチプレクサとを備えたこと
を特徴とする。
【0019】上記マルチプレクサは、2以上の親染色体
のi(1≦i≦n)番目のビットを入力して交叉テンプ
レートシフトレジスタのi番目のビットの値に基づい
て、2以上の親染色体のi番目のビットの内、いずれか
のビットを選択して、子染色体のi番目のビットとして
出力するn個のマルチプレクサを備えたことを特徴とす
る。
【0020】上記交叉テンプレートシフトレジスタは、
q(q≧2)個の親染色体の交叉処理を行う場合log
2 q(小数点以下切り上げ)個の交叉テンプレートシフ
トレジスタを備え、上記マルチプレクサは、上記log
2 q個の交叉テンプレートシフトレジスタのi番目のビ
ットを入力してq(q≧2)個の親染色体のi番目のビ
ットの中から1つのビットを選択することを特徴とす
る。
【0021】上記交叉テンプレート発生器は、外部から
指定された交叉位置の数に基づいて上記交叉位置を示す
パターンの発生を確率的に自己制御することを特徴とす
る。
【0022】上記交叉テンプレート発生器は、上記交叉
テンプレートシフトレジスタ内の交叉位置を示すパター
ンの数をカウントするカウント回路と、上記カウント回
路がカウントした交叉位置を示すパターンの数と外部か
ら指定された交叉位置の数とを比較する交叉数比較器
と、上記交叉数比較器の比較結果に基づいて、交叉位置
を示すパターンを発生するための閾値を設定する閾値カ
ウンタと、上記閾値カウンタの閾値と乱数とを比較する
閾値比較器と、上記閾値比較器の比較結果に基づいて、
交叉位置を示すパターンを発生させるトグルフリップフ
ロップとを備えたことを特徴とする。
【0023】上記交叉テンプレート発生器は、上記カウ
ント回路がカウントした交叉位置を示すパターンの数に
基づいて強制的に交叉位置を示すパターンを発生させる
回路を備えたことを特徴とする。
【0024】上記突然変異器は、nビットの子染色体の
突然変異の処理を各ビット並列に、かつ、独立に実行す
る突然変異モジュールと、突然変異の処理が行われた子
染色体の各ビットを並列にロードする突然変異済染色体
レジスタとを備えたことを特徴とする。
【0025】上記突然変異器は、乱数に基づいて所定の
パルス密度pを持つ第1と第2のパルス列を発生させる
第1と第2のパルス列発生器と、上記第1と第2のパル
ス列発生器により発生された第1と第2のパルス列を積
算してパルス密度p2 を持つ第3のパルス列を発生する
ANDゲートと、上記ANDゲートで発生された第3の
パルス列と上記子染色体の各ビットの排他的論理和を求
めるXORゲートとを備えたことを特徴とする。
【0026】上記遺伝的アルゴリズムマシンは、更に、
上記適応評価器により適応度が評価された染色体とその
適応度を示す適応値を記憶する評価済染色体レジスタ
と、上記選択部により選択された親染色体の中で適応度
の低い親染色体の適応値を記憶する不適応値レジスタと
を備え、上記生存判定器は、上記評価済染色体レジスタ
と不適応値レジスタとに記憶された適応値を比較し、そ
の比較結果に基づいて上記評価済染色体レジスタに記憶
された染色体とその適応値を、上記集団メモリに記憶さ
せることを特徴とする。
【0027】上記遺伝的アルゴリズムマシンは、少なく
とも上記突然変異器の一部と上記適応評価器の一部とを
用いて、上記集団メモリを初期化する初期化回路を備え
たことを特徴とする。
【0028】上記初期化回路は、外部から指定されたパ
ラメータに基づいてランダムなビットパターンを順に発
生させ、上記適応評価器により上記ランダムなビットパ
ターンの適応度を評価させ、上記評価済のビットパター
ンとその適応度を上記集団メモリに順に記憶させること
を特徴とする。
【0029】この発明に係る遺伝的アルゴリズムマシン
の製造方法は、染色体を用いて遺伝的アルゴリズムを実
行する遺伝的アルゴリズムマシンの製造方法において、
集団メモリと、選択部と、交叉器と、突然変異器と、生
存判定器とを、遺伝的アルゴリズムを実行する専用のハ
ードウエアで製造する工程を備えたこと特徴とする。
【0030】この発明に係る遺伝的アルゴリズムマシン
の製造方法は、染色体を用いて遺伝的アルゴリズムを実
行する遺伝的アルゴリズムマシンの製造方法において、
少なくとも、集団メモリと、選択部と、交叉器と、突然
変異器と、生存判定器とのいずれかを、不特定多数の問
題に対して共通に用いられるフレームワークとして製造
する工程と、種々の異なる特定の問題向きの適応評価器
を製造して上記フレームワークに搭載することにより、
上記遺伝的アルゴリズムマシンを特定の問題向きの遺伝
的アルゴリズムマシンとする工程とを備えたこと特徴と
する。
【0031】この発明に係る遺伝的アルゴリズムの実行
方法は、適応度を伴った染色体の集団を記憶する集団メ
モリを備えた遺伝的アルゴリズムマシンの遺伝的アルゴ
リズムの実行方法において、上記集団メモリに記憶され
ている適応度の低い染色体を、遺伝的アルゴリズムの実
行により生成されたより適応度の高い子染色体で置き換
えることにより、上記集団メモリ内に適応度の高い染色
体を適応度の低い染色体より長く生存させる工程を備え
たことを特徴とする。
【0032】上記遺伝的アルゴリズムの実行方法は、上
記集団メモリに記憶されている染色体の前回の置き換え
以後に選択された親染色体の中で最も適応度の低い染色
体のアドレスを記憶する工程と、記憶されたアドレスに
ある染色体を子染色体で置き換える工程とを備えたこと
を特徴とする。
【0033】上記遺伝的アルゴリズムの実行方法は、上
記集団メモリに記憶された染色体の中から染色体の適応
度に関わらず、親染色体をランダムに選択する工程を備
えたことを特徴とする。
【0034】この発明に係る遺伝的アルゴリズムの実行
方法は、親染色体に対して交叉処理を行い子染色体を生
成する交叉器を備えた遺伝的アルゴリズムマシンの遺伝
的アルゴリズムの実行方法において、外部から指定され
た交叉位置の数に基づいて親染色体の交叉位置の数を確
率的に制御する工程を備えたことを特徴とする。
【0035】上記遺伝的アルゴリズムの実行方法は、上
記親染色体の交叉位置の数を確率的に制御する工程によ
り確率的に発生された交叉位置の数に基づいて、強制的
に交叉位置を発生させる工程を備えたことを特徴とす
る。
【0036】この発明に係る遺伝的アルゴリズムの実行
方法は、適応度を伴った染色体の集団を記憶する集団メ
モリと、染色体の特定の問題に対する適応度を評価する
適応評価器を備えた遺伝的アルゴリズムマシンの遺伝的
アルゴリズムの実行方法において、上記集団メモリを初
期化するために、外部から指定されたパラメータに基づ
いてランダムなビットパターンを順に発生させる工程
と、上記適応評価器により上記ランダムなビットパター
ンの適応度を評価させる工程と、上記評価済のビットパ
ターンとその適応度を上記集団メモリに順に記憶させる
工程とを備えたことを特徴とする。
【0037】
【発明の実施の形態】
実施の形態1.図1は、この発明に係る遺伝的アルゴリ
ズムマシンの一例を示すブロック図である。図2は、こ
の発明の遺伝的アルゴリズムの流れを示すフローチャー
トである。図2において、P1,P2は、親染色体を示
している。Cは子染色体を示している。C’は、突然変
異の処理を受けた子染色体を示している。Fは適応値を
示している。図1は、概念的な図である。その詳細につ
いては、後述する。図1は、遺伝的アルゴリズムマシン
のフレームワークを示している。ここで、フレームワー
クとは、不特定多種の問題に対して統一した処理環境を
提供するハードウエアを意味する。ここで、ハードウエ
アとは、物理的に配線された論理回路ばかりでなく、R
OM(リードオンリイメモリ)、PROM(プログラマ
ブルROM)、ゲートアレイにより構成された回路も含
むものとする。このフレームワークは、不特定多種の問
題に対して共通に用いることができるものであり、VL
SI(Very Large Scale Integ
rated Curcuit)又はFPGA(Fiel
d ProgrammableGate Array)
によって実現可能である。これらのVLSIやFPGA
は、例えば、IC(Integrated Curcu
it)合成装置により作成される。従って、フレームワ
ークに使用するメモリのビット幅やレジスタのビット幅
は、自由に変更して作成できる。また、このフレームワ
ークとして、よく用いられるビット幅のものを予め数種
類作成しておいてもよい。また、このフレームワーク
は、前述したように、物理的に配線された論理回路ばか
りでなく、ROM(リードオンリイメモリ)、PROM
(プログラマブルROM)、ゲートアレイにより構成さ
れた回路を含んでいてもよい。
【0038】以下に、図に示された各部について順を追
って説明する。集団メモリ30は、一例として、RAM
(Random Access Memory)により
構成される。集団メモリ30は、nビットの染色体の集
団を記憶するために用いられる。染色体は、それぞれ適
応度を示す適応値を伴って集団メモリ30に記憶され
る。適応度は、後述する適応評価器70により特定の問
題に対して評価された適応値で示される。このマシンを
動作させるには、まず、集団メモリ30に対してランダ
ムパターンを記憶させなければならない。ランダムパタ
ーンは、各ビットが0か1のnビットのビット列であ
る。また、同様に、そのランダムパターンに対応するm
ビットの適応値を記憶させなければならない。集団メモ
リ30の初期化処理については、後述する。
【0039】次に、集団メモリ30から2つの親染色体
が選択される。2つの親染色体は、ランダムに選択され
る。選択された親染色体は、順に第1の染色体レジスタ
41と第2の染色体レジスタ42にロードされる。不適
応染色体保持回路91は、親染色体が第1の染色体レジ
スタ41にロードされる度に、第1の染色体レジスタ4
1にロードされた親染色体90の適応値94の中で最も
低い値を示す適応値を保持する。また、不適応染色体保
持回路91は、その最も低い値を示す適応値を持つ親染
色体のアドレスを保持する。第1の染色体レジスタ41
と第2の染色体レジスタ42は、交叉器50に接続され
ている。交叉器50は、2つの親染色体を同じ交叉位置
で切り合わせることにより、子染色体を生成する。子染
色体は、第1の親染色体の交叉位置の左側部分と第2の
親染色体の交叉位置の右側部分とから構成される。生成
された子染色体は、突然変異により低い確率(例えば、
1ビットに対して1%以下の確率)で、突然変異の処理
を受ける。この突然変異の処理は、確率的なものであ
り、各ビットが同じ独立した突然変異の可能性を持って
いる。従って、nビットからなる1つの染色体の中で複
数のビットが突然変異を受ける場合も存在する。突然変
異の処理は、ビットの値を反転することにより行われ
る。即ち、0を1に反転すること、或いは、1を0に反
転することにより突然変異の処理が行われる。突然変異
の処理が行われた子染色体は、適応評価器搭載部95に
搭載される適応評価器70により評価される。適応評価
器70は、図1において、唯一フレームワークから除か
れている部分である。適応評価器70は、図1に示した
フレームワークを、ある特定の問題向きにプログラムす
るためのハードウェア回路である。例えば、適応評価器
70は、VLSI,FPGAによって実現可能である。
また、適応評価器搭載部95は、例えば、VLSI,F
PGAを搭載するソケットにより実現可能である。ま
た、適応評価器搭載部95は、適応評価器70をハンダ
付けする固定場所であっても構わない。適応評価器70
において、子染色体の適応度が計算され、出力される。
評価済染色体レジスタ79は、突然変異器60から出力
された子染色体と、適応評価器70から出力された適応
度を記憶する。生存判定器80には、子染色体の適応度
が入力される。また、生存判定器80には、集団メモリ
30に記憶されている染色体の中で適応度が低い不適応
染色体35の適応度が入力される。生存判定器80の判
定結果により、子染色体が不適応染色体35よりも、よ
り適応する場合には、集団メモリ30に記憶されている
不適応染色体35が子染色体により置き換えられる。以
上のような動作を繰り返すことにより、集団の中の適応
度が全体として増加している。このようにして、問題に
対する解の品質が増加していく。
【0040】前述したように、図1に示すフレームワー
クの特徴は、処理スピードを高速にするという点と、ハ
ードウェアを効果的に使用している点である。また、H
ollandが提案したオリジナルな遺伝的アルゴリズ
ムをそのまま用いるのではなく、Holland提案し
た遺伝的アルゴリズムを修正した形でハードウェアに実
現している点である。オリジナルの遺伝的アルゴリズム
をどのように修正したかについては、後述する。以下
に、図1に示したハードウェアによる遺伝的アルゴリズ
ムの動作を、図2を用いて説明する。
【0041】集団生成ステップS1 まず、集団メモリ30に対して染色体32をランダムに
生成する。また、染色体32を生成するとともに、適応
値33をそれぞれ評価して、集団メモリ30に記憶す
る。
【0042】親染色体選択ステップS2 集団メモリ30から親染色体をランダムに選択する。最
初の親染色体を第1の染色体レジスタ41にロードす
る。次に、親染色体を選択する場合は、第1の染色体レ
ジスタ41にロードした親染色体を第2の染色体レジス
タ42に転送する。新たに選択した親染色体は、第1の
染色体レジスタ41にロードされる。不適応染色体保持
回路91は、親染色体が第1の染色体レジスタ41にロ
ードされる度に、第1の染色体レジスタ41にロードさ
れた親染色体90の適応値94の中で最も低い値を示す
適応値を、不適応染色体35の適応値33として検出す
る。検出された不適応染色体35の適応値33は、不適
応染色体保持回路91内の図示していないレジスタ(後
述する不適応値レジスタ49)に登録される。また、不
適応染色体保持回路91には、不適応染色体35の集団
メモリ30のアドレスを示すポインタ(後述する不適応
ポインタ44)が存在している。もし、第1の染色体レ
ジスタ41にロードされた親染色体90の適応値94
が、現在の不適応染色体35の適応値33より小さい値
を示している場合には、第1の染色体レジスタ41にロ
ードされた親染色体90が新たな不適応染色体35とな
る。そして、新たな不適応染色体35のアドレスが図示
していないポインタとして記憶される。
【0043】交叉ステップS3 2つの親染色体から子染色体が交叉プロセスにより生成
される。この2つの親染色体は、第1の染色体レジスタ
41と第2の染色体レジスタ42から入力される。子染
色体は、交叉器50により交叉プロセスにより生成され
る。最も簡単な交叉プロセスは、1点交叉である。この
1点交叉の場合には、第1の染色体レジスタ41と第2
の染色体レジスタ42が同じビットポジションで分割さ
れ、第1の染色体レジスタ41の分割されたビットポジ
ションより左側の部分が子染色体の左側の部分として用
いられる。また、第2の染色体レジスタ42の分割しビ
ットポジションの右側の部分が子染色体の右側の部分と
して用いられる。
【0044】突然変異ステップS4 子染色体の各ビットは、突然変異の可能性を持ってい
る。各ビットの突然変異の可能性は、例えば、1%程度
である。
【0045】適応評価ステップS5 子染色体を適応評価器70により評価する。適応評価器
70は、再構築可能な回路であり、特定の問題に対して
子染色体がどのような適応度を有しているかを評価す
る。
【0046】生存判定ステップS6 適応評価器70により出力された評価値を用いて、子染
色体の生存の可否を決定する。子染色体の適応値は、不
適応染色体35の適応値と比較される。もし、子染色体
の適応度が高ければ、集団メモリ30に記憶されている
不適応染色体35が子染色体で置き換えられる。逆に、
子染色体の適応度が低ければ、子染色体は、単に捨てら
れる。
【0047】前述したS2〜S6のステップを繰り返す
ことにより、最適な解が求められる。
【0048】次に、図1及び図2で説明したこの実施の
形態のハードウェアによる遺伝的アルゴリズムマシン
と、従来のハードウェアによる遺伝的アルゴリズムマシ
ンとの違いについて説明する。 (1)集団メモリについて 従来においては、集団は、現在の集団と新集団に分けら
れている。現在の集団は、親染色体を記憶するものであ
る。新集団は、現在の集団の親染色体をコピーした子染
色体又は交叉処理を施した子染色体を記憶するものであ
る。従来は、このように現在の集団と新集団により、世
代の管理を行っている。しかしながら、このように集団
を記憶するメモリを世代毎に分けて存在させることは、
メモリ容量を増加させてしまうという欠点がある。特
に、従来の方式では、集団を記憶させるためのメモリの
容量は2倍になる。一方、この実施の形態によれば、集
団メモリは1つである。この1つの集団メモリに対し
て、親染色体と子染色体及びその子孫が混在して記憶さ
れる。
【0049】(2)選択 従来においては、親染色体は、適応度に比例して選択さ
れている。即ち、適応度に比例した選択確率で親染色体
を選択している。従って、より適応度の高い染色体が度
々選択されることになる。しかし、この方式は、適応度
に比例した選択をしなければならないため、ハードウェ
アが複雑になってしまうという欠点がある。或いは、ソ
フトウェアで行う場合には、適応度に比例した選択確率
を計算するという余分な時間を必要としてしまう。適応
度に比例した選択を行うのは、より適応度の高い染色体
を次の世代により多く反映させたいためである。この実
施の形態においては、より適応度の高い染色体を次の世
代に反映させるために、単にランダムな選択を行ってい
る。この実施の形態においては、適応度に応じた染色体
の選択を行わない。この実施の形態においては、1つの
集団メモリを用いて、適応度の低い染色体をより適応度
の高い子染色体によって置き換える構成としているた
め、適応度の高い染色体がより長いライフタイムを持つ
ことになる。即ち、適応度の高い染色体程、集団メモリ
30において存在する時間が長いことになる。この適応
度が高い染色体が集団メモリ30に長く存在することに
より、ランダムな選択を行うだけで、より適応度の高い
染色体がたびたび選択されることになり、適応度の高い
染色体をを次の世代に反映させるという趣旨が達成され
る。
【0050】(3)交叉の確率 従来の方式によれば、交叉は、確率的に実行される。従
って、従来の方式では、交叉が実行されない場合が存在
する。交叉が実行されない場合は、2つの親染色体の
内、一方の親染色体が単に子染色体としてコピーされる
だけである。この親染色体と同一の子染色体は、突然変
異の処理を受けた後、次の世代の集団として記憶され
る。一方、この実施の形態においては、集団メモリから
選択された全ての染色体に対して交叉が実行される。従
って、親染色体と同一の子染色体を生成してしまうこと
がない。また、全ての染色体が1つの集団メモリ30の
中に記憶されているので、従来方式のように、新集団を
生成するために親染色体を複写した子染色体を生成する
という必要は全くない。複写操作は、遺伝的アルゴリズ
ムのスループットを減少させるオーバヘッドとなるもの
であり、本実施の形態では、このような複写操作を行う
ことはない。また、その必要がない。
【0051】(4)生存 従来の方式においては、全ての子染色体が生存し、新集
団に転送される。この実施の形態においては、現在の不
適応染色体35よりも適応度が高い子染色体が生成され
た場合にだけ、その子染色体が生存する。即ち、子染色
体が集団メモリ30に転送され、より不適当な不適応染
色体35が集団メモリ30から消される。
【0052】前述した(1)〜(4)の相違は、従来の
ハードウェアによる遺伝的アルゴリズムマシンとの相違
点であるが、これらの相違点は、Hollandが提案
したオリジナルな遺伝的アルゴリズムとの相違でもあ
り、本実施の形態による遺伝的アルゴリズムマシンは、
前述した(1)〜(4)点で少なくともオリジナルの遺
伝的アルゴリズムと相違している。この相違点のおかげ
で本実施の形態の遺伝的アルゴリズムマシンは、高速処
理を行うことができるとともに、ハードウェアの構成を
著しく容易に、かつ、簡単にすることが可能となってい
る。
【0053】以下、図3〜図16を用いて、図1に示し
た各部の詳細な構成について説明する。特に、図示して
いないが、以下に述べる各部は、共通のマシンサイクル
に同期して動作するものとする。従って、各部には、図
示していない共通のクロック発生回路から図示していな
い信号線により、共通のクロックが供給されているもの
とする。なお、図17に、全体構成を示しているので、
必要に応じて参照されたい。 1.集団メモリ30 図3は、集団メモリ30の周辺回路を示す図である。集
団メモリ30は、ランダムアクセスメモリRAMで構成
されている。集団メモリ30は、染色体32(図中、C
で示す)の集団を記憶するものである。染色体32は、
各々が問題の解答となる候補解となるものである。染色
体32は、nビット(1≦n)のビット列から構成され
ている。各ビットの意味は、後述する適応評価器70の
みが理解していることであり、適応評価器70以外の集
団メモリ30を含むその他のハードウェアは、各ビット
の意味を全く意識せずに、染色体32を記憶したり処理
する。集団メモリ30は、染色体32とともに、適応値
33(図中、Fで示す)を記憶する。最適化の問題を解
く場合には、数多くの解が存在しており、適応値33
は、染色体32で示された解の品質を示すものである。
即ち、適応値33の値が高ければ高いほど、最適な解が
求められていることになる。
【0054】集団メモリ30のサイズについて説明す
る。集団メモリ30の1ワードのビット幅、即ち、RA
Mの1回のアクセスのビット幅が、染色体32のビット
幅(nビット)と適応値33のビット幅(mビット)を
加算したもの(n+mビット)である場合には、集団メ
モリ30へのデータアクセスが高速に行われるという利
点がある。即ち、集団メモリ30からの親染色体と適応
値の読み出しが1マシンサイクルで行われる。或いは、
集団メモリ30への子染色体と適応値の書き込みが1マ
シンサイクルで行われる。しかし、ビット幅が大きい場
合には、集団メモリ30を構成するRAMの回路又はパ
ッケージに多くの入出力線又は入出力ピンが必要になっ
てしまうという欠点がある。例えば、n+mビット幅の
場合は、RAMのパッケージにn+m個の入出力ピンが
必要である。集団メモリ30のサイズの別な例として、
染色体32と適応値33を分割して記憶する場合が考え
られる。染色体32をr個のセグメントに分割すること
により、RAMのビット幅を減少させることができる。
しかし、この場合には、rワード(r回)のアクセスを
しなければ、1つの染色体32と適応値33を読み書き
することができなくなってしまう。即ち、集団メモリ3
0に対して染色体を読み書きする際に、rマシンサイク
ルが必要である。このように、染色体32と適応値33
を分割して記憶する場合、入出力線や入出力ピンの数を
減少させるという利点はあるが、実行速度が減少してし
まうという欠点がある。
【0055】集団メモリ30のアドレッシングについて
説明する。集団メモリ30のアドレスを指定するため
に、以下の3つのアドレスソースを用意している。以下
の3つのアドレスソースは、この実施の形態の遺伝的ア
ルゴリズムマシンが持つ3つのモードに対応している。 (1)シーケンシャルカウンタ36 シーケンシャルカウンタ36は、集団メモリ30の初期
化モードでアドレスソースとして用いられる。即ち、シ
ーケンシャルカウンタ36は、集団メモリ30にランダ
ムな染色体32を生成する場合に用いられる。シーケン
シャルカウンタ36は、シーケンシャルなアドレスを生
成するので、染色体は、集団メモリ30の各アドレスに
対して順に書き込まれる。 (2)乱数発生器31(RN1) 乱数発生器31は、集団メモリ30から親染色体を選択
するセレクションモードにおいてアドレスソースとして
用いられる。乱数発生器31は、乱数によりアドレスを
発生する。この乱数により、集団メモリ30からランダ
ムに親染色体が選択される。乱数発生器31は、選択部
40の一部を構成する。 (3)不適応ポインタ44 不適応ポインタ44は、子染色体が集団メモリ30に書
き込まれるサバイバルモードにおいてアドレスソースと
して用いられる。不適応ポインタ44は、不適応染色体
保持回路91内の後述する不適応ポインタレジスタ45
に保持され、置き換えられる不適応染色体35のアドレ
スを示している。従って、不適応ポインタ44は、新し
い子染色体を集団メモリ30に書き込むアドレスを提供
する。
【0056】図4は、初期化モードにおいて、シーケン
シャルカウンタ36が集団メモリ30にアドレスを提供
する場合を示している。図中、太線が有効な信号である
ことを示している。初期化モードにおいては、初期化モ
ード信号と初期化書き込み信号がオンになり、第2のマ
ルチプレクサ38がオンになる。第2のマルチプレクサ
38によりシーケンシャルカウンタ36からのアドレス
が選択され、集団メモリ30のアドレスAに供給され
る。また、第3のマルチプレクサ39により集団メモリ
30のゲートG1がオープンされ、集団メモリ30が書
き込み可能になる。また、集団メモリ30には、後述す
るように、評価済染色体レジスタ79から書き込むべき
データがインプット1ADに転送される。
【0057】図5は、集団メモリ30から親染色体を選
択するセレクションモードにおいて、乱数発生器31
(RN1)が集団メモリ30にアドレスを提供する場合
を示している。図中、太線が有効な信号であることを示
している。図5は、選択部40の動作を示している。セ
レクションモードにおいては、初期化モード信号とサバ
イバル信号がオフのままであるため、第1のマルチプレ
クサ37と第2のマルチプレクサ38により乱数発生器
31からの乱数が集団メモリ30に供給される。乱数発
生器31により生成される乱数は、集団メモリ30のメ
モリ領域の範囲内の乱数である。集団メモリ30は、乱
数発生器31から供給されたアドレスに基づいて、染色
体を第1の染色体レジスタ41に出力する。
【0058】図6は、サバイバルモードにおいて、不適
応ポインタ44から集団メモリ30にアドレスを供給す
る場合を示している。図中、太線が有効な信号であるこ
とを示している。サバイバルモードにおいて、サバイバ
ル信号がオンになる。従って、第1のマルチプレクサ3
7、第2のマルチプレクサ38により不適応ポインタ4
4に記憶された不適応染色体35の値がアドレスとして
提供される。また、サバイバル信号が第3のマルチプレ
クサ39を経由して集団メモリ30のゲートG1を開け
る。また、集団メモリ30には、評価済染色体レジスタ
79から書き込むべき子染色体がインプットAD1に転
送される。
【0059】2.選択部40 選択部40は、集団メモリ30からランダムに染色体を
選択する。従来の方式では、適応度に応じた確率で染色
体を選択する。本実施の形態では、染色体をランダムに
選択する方式を採用しているので、適応度の合計値を算
出して個々の染色体の適応度との比を計算するという必
要が全くない。従って、本実施の形態のハードウェアで
の実現は非常に容易であり、かつ、安価であり、更に、
処理スピードが従来の方式に比べて非常に高速である。
【0060】3.不適応染色体保持回路91 図7は、選択部40の一部である不適応染色体保持回路
91の内部回路を示す図である。不適応ポインタ44
は、集団メモリ30の中に記憶された染色体の内、どの
染色体を新たに生成された子染色体で置き換えるかを示
すためのポインタである。集団メモリ30に記憶された
染色体は、子染色体の適応度がより高い場合には、置き
換えられる。不適応ポインタ44は、集団メモリ30に
記憶され、第1の染色体レジスタ41に読み出された親
染色体の中で最も適応度の低い不適応染色体35のアド
レスを保持するものである。不適応ポインタ44は、不
適応ポインタレジスタ45に記憶される。不適応ポイン
タ44は、集団メモリ30に記憶されている染色体の中
で適応度が最も低い染色体のアドレスを保持するもので
はない。もし、不適応ポインタ44が、集団メモリ30
に記憶されている染色体の中で適応度が最も低い染色体
のアドレスを保持するようにするならば、その適応度が
最も低い染色体が子染色体で置き換えらた場合、次に適
応度が最も低い染色体を捜す回路が必要なってしまう。
又は、次に適応度が最も低い染色体を捜すソート操作や
検索操作が必要なってしまう。しかし、この実施の形態
によれば、第1の染色体レジスタ41に読み出された親
染色体の中で最も適応度の低い不適応染色体35のアド
レスを保持するので、集団メモリ30に記憶されている
染色体の中から適応度が最も低い染色体を捜す回路や操
作が不要であり、回路構成が非常に簡単となる。また、
不適応ポインタ44で示された不適応染色体35の適応
値33は、不適応値48として不適応値レジスタ49に
保持される。不適応値レジスタ49は、第1の染色体レ
ジスタ41にロードされた親染色体90の適応値94を
現在の不適応値48と比較し、小さい方の値を自動的に
保持するものである。不適応値レジスタ49が不適応値
48の値を更新する場合、不適応ポインタレジスタ45
も同期して不適応ポインタ44の値を更新する。集団メ
モリアドレスレジスタ43は、第1の染色体レジスタ4
1に読み出された親染色体90のアドレスを保持するレ
ジスタである。不適応値レジスタ49が不適応値48の
値を更新する際には、集団メモリアドレスレジスタ43
に保持されたアドレスが不適応ポインタレジスタ45に
自動的に保持される。不適応値レジスタ49が不適応値
48を更新する場合には、不適応ポインタ有効フリップ
フロップ52がセットされる。不適応ポインタ有効フリ
ップフロップ52がセットされているということは、不
適応値レジスタ49と不適応ポインタレジスタ45に保
持されている不適応値48と不適応ポインタ44が有効
であるということを示している。不適応ポインタ有効フ
リップフロップ52は、集団メモリ30に対して、サバ
イバルモードにより子染色体が新たに書き込まれた場合
には、リセットされる。図7の不適応ポインタ有効フリ
ップフロップ52に示した「R!」の「!」は、不適応
ポインタ有効フリップフロップ52をセットする信号と
リセットする信号との両方が同時に有効となった場合
に、リセットする信号が優先され、不適応ポインタ有効
フリップフロップ52がリセットされることを意味して
いる。また、セレクションモードの動作を開始する場合
とサバイバルモードで集団メモリ30に子染色体が書か
れた場合には、不適応値レジスタ49の不適応値48
は、最大値に設定される。例えば、不適応値レジスタ4
9が10ビットのレジスタであれば、10ビットの最大
値である1023の値が設定される。サバイバルモード
からセレクションモードに変更され、集団メモリ30か
ら新たな親染色体が第1の染色体レジスタ41にロード
された場合、かつ、第1の染色体レジスタ41にロード
された親染色体90の適応値94が不適応値48より小
さい場合には、不適応値レジスタ49の不適応値48が
第1の染色体レジスタ41に読み込まれた適応値94に
更新される。同時に、不適応ポインタレジスタ45に第
1の染色体レジスタ41にロードされた親染色体90の
アドレスが設定される。また、不適応ポインタ有効フリ
ップフロップ52がセットされる。
【0061】4.第1の染色体レジスタ41、第2の染
色体レジスタ42 図8は、選択部40の一部である第1の染色体レジスタ
41、第2の染色体レジスタ42を示す図である。選択
部40には、第1の染色体レジスタ41と第2の染色体
レジスタ42が設けられている。第1の染色体レジスタ
41と第2の染色体レジスタ42は、集団メモリ30か
ら出力された親染色体をそれぞれ一時記憶するものであ
る。第1の染色体レジスタ41と第2の染色体レジスタ
42は、集団メモリ30から見てシリアルに接続されて
いる。また、第1の染色体レジスタ41と第2の染色体
レジスタ42は、交叉器50から見てパラレルに接続さ
れている。従って、集団メモリ30から出力された親染
色体は、第1の染色体レジスタ41を経て第2の染色体
レジスタ42に順に転送される。一方、交叉器50は、
第1の染色体レジスタ41と第2の染色体レジスタ42
から同時に2つの親染色体を読み出し、交叉処理を行
う。第1の染色体レジスタ41の入力は、集団メモリ3
0の出力に接続されている。第1の染色体レジスタ41
は、染色体32と適応値33を入力する。第2の染色体
レジスタ42の入力は、第1の染色体レジスタ41の染
色体32の出力に接続されている。第2の染色体レジス
タ42は、染色体32のみを入力する。選択部40をこ
のように構成することにより、1つの親染色体は、ある
サイクルで第1の親染色体として用いられ、次のサイク
ルで第2の親染色体として再び用いられることになる。
また、選択部40をこのように構成することにより、交
叉器50による交叉処理が全てのサイクルにおいて、実
行されることになる。即ち、集団メモリ30から親染色
体が選択される各セレクションサイクル毎に、交叉器5
0の交叉処理が行われることになる。なお、集団メモリ
30に対して、子染色体が書き込まれるサバイバルモー
ドにおいては、選択部40は、選択処理を行わない。即
ち、第1の染色体レジスタ41と第2の染色体レジスタ
42への親染色体の転送は、停止させられる。従って、
サバイバルモードにおいては、第1の染色体レジスタ4
1と第2の染色体レジスタ42の内容は変更されない。
但し、サバイバルモードにおいても、第1の染色体レジ
スタ41と第2の染色体レジスタ42に保持された同じ
親染色体から交叉器50の交叉処理が行われる。同じ親
染色体から子染色体が生成される場合でも、後述するよ
うに、各サイクル毎に交叉位置と突然変位を起こすビッ
ト位置が異なるので、異なる子染色体が生成される。
【0062】5.交叉器50 図9は、交叉器50を示す図である。交叉器50は、新
たな子染色体を生成するためのものである。交叉器50
が1点交叉を用いる場合には、一方の親染色体の左側と
他方の親染色体の右側を合わせることにより、新たな子
染色体を生成する。また、他の形態として、2点交叉処
理、或いは、3点以上の交叉位置を持つ交叉処理も可能
である。2点以上の交叉位置を持つ場合には、複数の親
染色体のどの部分を選択するかを示すことが必要とな
る。例えば、2点交叉を行う場合には、第1の交叉位置
まで第1の親染色体を選択し、その後、第2の交叉位置
まで第2の親染色体を選択し、最後に、第2の交叉位置
以降では、第1の親染色体を選択する。図9に示す場合
には、1点交叉を行う場合を示している。図中、P1,
P2は、親染色体を示している。Cは子染色体を示して
いる。P11 〜P1n は、親染色体P1のビット1〜n
を示している。P21 〜P2n は、親染色体P2のビッ
ト1〜nを示している。C1 〜Cn は、子染色体Cのビ
ット1〜nを示している。交叉器50は、以下に説明す
る交叉テンプレート発生器54、交叉テンプレートシフ
トレジスタ55、n個のマルチプレクサ59を有してい
る。交叉テンプレート発生器54は、交叉テンプレート
の元になるシリアルパターンを発生する。交叉テンプレ
ートシフトレジスタ55は、そのシリアルパターンを入
力して、逐一シフトしてnビットの交叉テンプレートを
出力する。マルチプレクサ59は、交叉テンプレートに
基づいて親染色体に交叉処理を施す。
【0063】交叉テンプレート発生器54について説明
する。図10は、交叉テンプレート発生器54の内部構
成を示す図である。交叉テンプレート発生器54は、交
叉テンプレートを発生させるものである。交叉テンプレ
ートは、2つの親染色体の選択を規則付ける交叉位置を
示すものである。2つの親染色体の選択は、0と1の2
進数からなるシリアルパターンを交叉テンプレートとし
て提供することにより決定される。交叉テンプレート発
生器54から発生されるシリアルパターンは、交叉テン
プレートシフトレジスタ55に入力される。交叉位置
は、「10」又は「01」のいずれかのデータパターン
により表現される。シリアルパターンの中に、前述した
データパターンのいずれかが存在するところが交叉位置
として認識される。交叉テンプレート発生器54は、外
部から与えられる交叉位置の数を示すパラメータ(図
中、CUTPOINTSとして示す)に基づいて、テン
プレートの中に所望の数の交叉位置を挿入することがで
きる。この交叉位置の生成は、以下の4つの要素に基づ
いて、確率的に行われる。 (1)外部から与えられる交叉位置の数を示すパラメー
タ(CUTPOINTS)。 (2)交叉テンプレートシフトレジスタ55の中に存在
している現在の交叉位置の数。 (3)乱数発生器RN2により発生された乱数列。 (4)閾値カウンタ26により保持されている現在の閾
値。
【0064】図10を用いて、交叉テンプレート発生器
54の動作について説明する。交叉テンプレートシフト
レジスタ55に存在するシリアルパターンを入力し、n
−1個のXORゲート29により現在の交叉位置の数を
検出する。前述したように、交叉位置は、「01」又は
「10」のいずれかのパターンで定義されているもので
あるから、XORゲート29は、これらの2つのパター
ンの内のいずれかが入力された場合には、1を出力す
る。いずれのパターンも検出しない場合、XORゲート
29は、0を出力する。XORゲート29の出力は、キ
ャリーセーブ加算器28により合計される。従って、キ
ャリーセーブ加算器28の出力は、交叉テンプレートシ
フトレジスタ55に存在している現在のシリアルパター
ンの中に存在している交叉位置の数を示していることに
なる。図10に示す場合は、XORゲート29とキャリ
ーセーブ加算器28により交叉位置の数をカウントする
カウント回路を構成しているが、図11に示すようなカ
ウント回路を用いても構わない。図11に示す場合は、
マシンが動作を開始する前に交叉テンプレートシフトレ
ジスタ55を0クリアし、かつ、アップダウンカウンタ
20の値を0に設定しておく。シリアルパターンが交叉
テンプレート発生器54から交叉テンプレートシフトレ
ジスタ55に入力されシフトされる場合、アップダウン
カウンタ20は、交叉位置を示すパターンである「0
1」又は「10」を検出し、検出した場合に、アップダ
ウンカウンタ20の値を増加させる。また、シリアルパ
ターンが交叉テンプレートシフトレジスタ55からシフ
トアウトされるときに、交叉位置を示すパターンである
「01」又は「10」を検出した場合に、アップダウン
カウンタ20のカウント値を減少させる。このような方
式によって、アップダウンカウンタ20により交叉テン
プレートシフトレジスタ55にある現在の交叉位置の数
を検出することが可能である。カウント回路(キャリー
セーブ加算器28、或いは、アップダウンカウンタ2
0)から出力された交叉位置の数は、交叉数比較器27
に入力される。交叉数比較器27には、外部から与えら
れた所望の交叉位置の数がパラメータ(CUTPOIN
TS)として入力され、カウント回路から出力された現
在の交叉位置の数と比較される。もし、キャリーセーブ
加算器28又はアップダウンカウンタ20から出力され
た交叉位置の数が外部から与えられた交叉位置の数より
も大きい場合には、閾値カウンタ26に対して閾値を減
少させる減少信号が送られる。逆に、キャリーセーブ加
算器28又はアップダウンカウンタ20から入力した現
在の交叉位置の数が外部から与えられた所望の交叉位置
の数より小さい場合には、閾値カウンタ26に記憶され
る閾値を増加させる増加信号が出力される。交叉テンプ
レートに用いられるシリアルパターンは、トグルフリッ
プフロップ21により生成される。トグルフリップフロ
ップ21は、ORゲート22を経由して閾値比較器25
に接続されている。閾値比較器25の一方には、閾値カ
ウンタ26からの閾値が入力される。また、閾値比較器
25の他方には、乱数発生器RN2からの乱数が入力さ
れる。この乱数発生器RN2は、他の乱数発生器から独
立した個別の乱数を発生させる。閾値比較器25の出力
は、閾値よりも乱数の値が小さければ1になる。その場
合には、トグルフリップフロップ21の出力が変更され
る。即ち、交叉テンプレートシフトレジスタ55に対し
て交叉位置を示すパターンを出力することになる。交叉
テンプレートシフトレジスタ55に対して交叉テンプレ
ートを生成するプロセスは、以上のように確率的に制御
されたものであり、かつ、その確率は、自己抑制されて
いるものである。即ち、現在の交叉位置の数が多すぎる
場合には、交叉位置を生成するための閾値が減少させら
れる。即ち、交叉位置を生成する確率が減少させられ
る。逆に、現在の交叉位置の数が少ない場合には、閾値
が増加させられる。即ち、交叉位置を発生する確率が増
加させられる。このようにして、交叉テンプレート発生
器54は、外部から与えられた交叉位置の数と現在の交
叉位置の数が一致するように、交叉テンプレートのパタ
ーンを自動的に生成する。
【0065】次に、図10に示した比較器24とAND
ゲート23の動作について説明する。ANDゲート23
と比較器24は、交叉テンプレートに対して強制的に交
叉位置を示すパターンを発生させる回路である。もし、
交叉テンプレートの中に交叉位置が1つも存在しない場
合には、2つの子染色体の内、どちらか一方の親染色体
がそのまま複写されることになる。この複写動作は、集
団の進化を遅らせるものであり、かつ、遺伝的アルゴリ
ズムのパフォーマンスを低下させるものである。この実
施の形態では、少なくとも1つの交叉位置を必ず交叉テ
ンプレートの中に発生させる。n−1ビット目とnビッ
トに対して接続されたXORゲート29の出力が、AN
Dゲート23に入力される。また、キャリーセーブ加算
器28から出力された現在の交叉位置の数が1であるか
どうかが比較器24により判定される。比較器24で判
定された結果が、真であるならば、かつ、XORゲート
29からの出力がオンである場合には、ANDゲート2
3の出力が1となる。即ち、ANDゲート23の出力が
オンになる場合とは、交叉テンプレートシフトレジスタ
55にあるnビットの交叉テンプレートのn−1ビット
目とnビットの間に、唯一の交叉位置が存在している場
合である。次のシフト動作が起きると、交叉テンプレー
トシフトレジスタ55には、1つの交叉位置も存在しな
くなる状態を示している。このような状態が発生するこ
とを、ANDゲート23及び比較器24により検出して
いる。このような状態が検出された場合には、ORゲー
ト22を経由してトグルフリップフロップ21に対し交
叉位置を示すパターンを強制的に発生させている。即
ち、次のシフト動作が起きた場合に、交叉テンプレート
シフトレジスタ55の1ビット目と2ビット目の間に交
叉位置を示すパターンが強制的に生成されることにな
る。図12は、ANDゲート23と比較器24により交
叉テンプレートシフトレジスタ55が最後の交叉位置を
出力する場合を検出した様子を示している。この場合
に、トグルフリップフロップ21は、次のサイクルで強
制的に新たな交叉位置を示すパターンを生成している。
【0066】図9に戻り、交叉器50について更に説明
する。交叉テンプレート発生器54により生成された交
叉テンプレートは、交叉テンプレートシフトレジスタ5
5に順に入力されシフトされる。この1ビットずつのシ
フト動作により、交叉位置の変化を生成することができ
る。この交叉位置の変更は、遺伝的アルゴリズムのオペ
レーションには必要なものである。このように、交叉テ
ンプレートが交叉テンプレートシフトレジスタ55内に
おいて右にシフトする度に、交叉テンプレートシフトレ
ジスタ55の左端から、トグルフリップフロップ21に
より生成された新たなシリアルパターンが順次入力され
る。交叉器50は、n個のマルチプレクサ59を備えて
いる。各マルチプレクサ59は、nビットの染色体の各
ビットに対応している。マルチプレクサ59は、2つの
インプット(インプット0とインプット1)と1つのア
ドレスAにより構成されている。マルチプレクサ59
は、アドレスAの値が0のとき、インプット0を選択す
る。また、アドレスAの値が1のとき、インプット1を
選択する。各マルチプレクサ59のアドレスAは、交叉
テンプレートシフトレジスタ55の対応するビットに接
続されている。従って、交叉テンプレートシフトレジス
タ55から出力された信号が0である場合には、対応す
るビット位置のデータが第1の染色体レジスタ41から
選択される。逆に、交叉テンプレートシフトレジスタ5
5から出力された信号が1である場合には、対応するビ
ットのデータが第2の染色体レジスタ42から選択され
る。
【0067】6.突然変異器60 図13は、突然変異器60の構成を示す図である。図
中、C1 〜Cn は、子染色体Cのビット1〜nを示す。
C’は、突然変異の処理後の子染色体を示す。C’1
C’n は、突然変異の処理後の子染色体C’のビット1
〜nを示す。前述した交叉器50を主たる遺伝的操作器
とするならば、この突然変異器60は、2次的な遺伝的
操作器である。突然変異器60は、あるビットポジショ
ンの遺伝的変化を与えるために行う操作である。この実
施の形態においては、突然変異の処理は、子染色体の全
てのビットに対して、確率的に同時に、かつ、独立に行
われる。突然変異の動作は、ビットの値を反転すること
により行われる。即ち、1を0にすること、或いは、0
を1にすることにより、突然変異が施される。突然変異
の確率は、例えば、1%、或いは、それ以下の非常に低
い確率である。遺伝的アルゴリズムをハードウェアで実
現するに当たって、突然変異の処理を高速に行うことが
望ましい。従来の方式においては、突然変異の処理は、
染色体の全てのビットを考慮した上で、或いは、他のビ
ットの突然変異を考慮した上で行われている。従って、
高速な処理を行うことができない。この実施の形態にお
いては、以下に述べるように、全てのビットが並列処理
される。従って、突然変異の処理が1つのマシンサイク
ルで完了する。
【0068】突然変異器60は、突然変異モジュール6
8と突然変異済染色体レジスタ69から構成されてい
る。突然変異モジュール68は、第1のパルス列発生器
84と第2のパルス列発生器85とn個のANDゲート
63とn個のXORゲート62により構成されている。
第1のパルス列発生器84は、乱数発生器RN3と第1
のシフトレジスタ64と絶対値比較器66から構成され
ている。第2のパルス列発生器85は、乱数発生器RN
4と第2のシフトレジスタ65と絶対値比較器67から
構成されている。この実施の形態においては、2つの相
関関係のない乱数に基づき、ランダムなパルス列が、第
1のパルス列発生器84と第2のパルス列発生器85に
よりそれぞれ生成される。絶対値比較器66は、乱数発
生器RN3から乱数列を入力し、外部から与えられた所
定のパルス密度pを示す値と比較する。以下、この外部
から与えられるパルス密度pを示す値をPDF(PUL
SEDENSITY FUNCTION)パラメータと
呼ぶ。パルス密度pは、0と1のビット列の中で1が発
生する確率を示すものである。例えば、乱数発生器RN
3が1から100の乱数を発生させる場合、かつ、パル
ス密度p=10%である場合、PDFパラメータの値
は、10となる。絶対値比較器66において、乱数の値
がPDFパラメータの値より小さい場合には、その出力
が1になる。その他の場合には、絶対値比較器66の出
力が0になる。絶対値比較器66から出力される0と1
のビット列は、1の発生確率が10%であるビット列と
なる。即ち、パルス密度pは、PDFパラメータの値と
乱数発生器RN3が発生する最大値との比である。絶対
値比較器66からの出力は、第1のシフトレジスタ64
に順次入力される。第1のシフトレジスタ64は、絶対
値比較器66からの出力を左から右にシフトする。同様
の動作が、乱数発生器RN4及び絶対値比較器67及び
第2のシフトレジスタ65についても行われる。ここ
で、絶対値比較器66に入力される乱数と絶対値比較器
67に入力される乱数は、全く相関関係がない。従っ
て、第1のシフトレジスタ64と第2のシフトレジスタ
65で保持しているビットストリームのパターンは、全
く相関関係はない。
【0069】図14は、突然変異モジュール68の具体
的動作を示す図である。第1のシフトレジスタ64と第
2のシフトレジスタ65の各ビットは、それぞれn個の
ANDゲート63に接続されており、各ビットの値がそ
れぞれ積算される。ANDゲート63は、第1のシフト
レジスタ64と第2のシフトレジスタ65の対応するビ
ットが両方とも1の場合にだけ(図14において、2ビ
ット目だけ)、1を出力する。このANDゲート63の
積算処理により、ANDゲート63から出力されるデー
タのパルス密度は、絶対値比較器66と絶対値比較器6
7により生成された2つのパルス列のパルス密度の積p
2 となる。例えば、パルス密度pが10%であると、A
NDゲート63から出力されるパルス列のパルス密度p
2 は、10%×10%=1%となる。ANDゲート63
からの出力と交叉器50からの出力は、n個のXORゲ
ート62に入力される。XORゲート62により子染色
体の特定のビットに対して突然変異の処理が施される。
XORゲート62が突然変異の処理を施すのは、AND
ゲート63からの出力が1の場合である。図14におい
ては、2ビット目だけ突然変異の処理が施される。XO
Rゲート62は、ANDゲート63から1を入力した場
合に、子染色体の対応するビットを反転させ、ANDゲ
ート63から0を入力した場合には、子染色体の対応す
るビットをそのまま出力する。XORゲート62から出
力された突然変異の処理を施された子染色体は、突然変
異済染色体レジスタ69に保持される。突然変異済染色
体レジスタ69は、ゲートG1のオンオフによりパラレ
ル入力とシリアル入力の2つの入力モードを持ってい
る。通常のセレクションモードでは、パラレル入力を用
いる。また、初期化モードでは、絶対比較器98からの
シリアル入力を用い、入力したデータを1ビットずつシ
フトする。シリアル入力については、後述する。
【0070】このようにして、XORゲート62は、子
染色体の各ビットに対して並列に、かつ、独立に、か
つ、各ビット間で相関関係を持たずに、突然変異の処理
を行うことができる。
【0071】7.適応評価器70 図15は、適応評価器70の一例を示す図である。図1
5においては、一例として、いわゆるナップサック問題
に適応する適応評価器70を示している。ナップサック
問題というのは、n個の品物がそれぞれ異なる重さと異
なる価値を持っており、その品物を限られた重さしか詰
めることができないナップサックに対して、できるだけ
合計した価値が大きくなるように詰め込むという問題で
ある。このナップサック問題を一例にして、適応評価器
70を説明する。染色体のデータ構造として、n個の品
物の各品物に対して染色体の1ビットを割り当てる。染
色体の対応するビットが1の場合には、その品物をナッ
プサックに詰め込むことを意味する。もし、染色体の対
応するビットが0の場合には、その品物をナップサック
に詰め込まないことを意味する。この例で用いる適応度
は、ナップサックに詰められた品物の合計の価値であ
る。但し、前述したように、ナップサックに詰められる
品物の合計の重さには制限がある。もし、ナップサック
に詰められた品物の合計の重さが最大値を上回っている
場合には、ナップサックに詰められた品物の合計価値を
0に設定するものとする。図15に示した適応評価器7
0は、選択された品物の合計の重さを計算し、その値を
その染色体の適応値として出力するものである。図15
に示すように、適応評価器70は、n個のマルチプレク
サ71を備えている。各マルチプレクサ71のアドレス
Aは、nビットの染色体の各対応するビットに接続され
ている。もし、染色体のあるビットの値が0の場合に
は、マルチプレクサ71は、0を出力する。即ち、染色
体のビットの値が0の場合には、その品物を選択しない
ことを意味しているから、重さが0であることを出力す
る。もし、ビットの値が1の場合には、マルチプレクサ
71は、その品物の重さを出力する。全てのマルチプレ
クサ71からの出力がキャリーセーブ加算器72に入力
され、合計の重さが計算される。重量比較器73は、キ
ャリーセーブ加算器72から出力される合計の重さがナ
ップサックの許す最大の重さ(図中、WEIGHT L
IMITとして示す)以内であるかどうかを比較する。
計算された合計の重さがナップサックの最大の重さ以下
である場合には、重量比較器73は、1を出力する。前
述したマルチプレクサ71及びキャリーセーブ加算器7
2と同様な構成で、マルチプレクサ74及びキャリーセ
ーブ加算器75が配置されている。マルチプレクサ74
は、選択された品物の価値を出力する。従って、キャリ
ーセーブ加算器75は、ナップサックに詰められた品物
の合計の価値を出力する。マルチプレクサ76は、合計
の重さが最大値を超えた場合に、適応値78として0を
出力し、そうでない場合に、キャリーセーブ加算器75
から出力された合計の価値を適応値78として出力す
る。
【0072】図15に示した適応評価器70は、一例で
あり、他の特定の問題に適合させる場合には、図15に
示した構成のものとは全く異なる適応評価器70が用い
られる。適応評価器70は、VLSIやFPGA等のI
C合成装置により作成できる再構成可能なもので構成さ
れている。また、適応評価器70は、適応評価器搭載部
95により着脱可能に取り付けられている。或いは、適
応評価器搭載部95にハンダ付けされて固定されていて
もよい。適応評価器70の評価方法を変えることによ
り、この発明における遺伝的アルゴリズムマシンを、容
易に色々な特定問題向きのマシンとすることができる。
【0073】8.生存判定器80 生存判定器80は、新たに生成された子染色体を集団メ
モリ30に登録させるものである。新たに生成された子
染色体が、集団メモリ30に登録されているいずれかの
染色体よりも適応度が高いことを生存判定器80により
判定する。この実施の形態においては、前述したよう
に、第1の染色体レジスタ41に読み込まれた親染色体
の中で適応度の低い染色体を子染色体で置き換える。図
16は、生存判定器80の周辺回路を示す図である。生
存判定器80は、評価済染色体レジスタ79の適応値7
8を記録した部分に接続されている。また、生存判定器
80は、不適応値レジスタ49に接続されている。不適
応値レジスタ49は、前回のサバイバルモードにおい
て、集団メモリ30が子染色体により更新されてから第
1の染色体レジスタ41に読み出された親染色体90の
中で、最も適応度の低い親染色体の適応値94を不適応
値48として記憶しているものである。もし、評価済染
色体77の適応値78が不適応値レジスタ49の不適応
値48より大きい場合には、生存判定器80の出力が1
になる。この出力がサバイバル信号であり、サバイバル
モードを発生させるものである。もし、不適応ポインタ
レジスタ45に保持されている不適応ポインタ44が有
効であるならば、評価済染色体レジスタ79に保持され
ている評価済染色体77と適応値78は、集団メモリ3
0に転送される。その転送されるアドレスは、不適応ポ
インタ44によって示されたアドレスである。もし、適
応値78の値が不適応値レジスタ49の適応値の値より
も小さい場合には、評価済染色体77及び適応値78
は、無視され捨てられる。また、もし、ANDゲート5
3によって示される不適応ポインタ44の値が有効でな
い場合には、同じく評価済染色体77と適応値78の値
は無視され捨てられる。
【0074】9.全体構成 図17は、前述した各部の構成を接続した全体構成を示
す図である。この実施の形態の動作は、前述したよう
に、以下の動作から構成される。 (1)集団メモリ30の初期化。 (2)親染色体の選択。 (3)交叉処理。 (4)突然変異の処理。 (5)適応評価処理。 (6)サバイバル判定処理。 これらの各処理は、新たな解が、或いは、改良された解
が生成されなくなるまで、或いは、予め定められた時間
まで、或いは、予め定められた回数になるまで繰り返し
実行される。同一の1つの問題に対しても、以下に述べ
る条件によって色々な解が生成される。 (1)集団メモリ30の初期化の際、染色体として生成
される0と1のランダムパターン中の1の値の密度。 (2)交叉位置の数。 (3)1つの同一の問題に対して複数回の試行が行われ
た場合に、各試行毎に突然変異の確率を変更した場合、
その各試行毎に変化する突然変異の確率。或いは、ま
た、ある1回の試行の中で動的に変更される突然変異の
確率。 これらのパラメータは、外部からオペレータにより、或
いは、他のコンピュータ等から与えることが可能なもの
である。この実施の形態では、特に外部がどのようなも
であるかはこの発明にとっては重要ではないため、特定
はしていない。また、この実施の形態では、各乱数発生
器が互いに相関関係のない乱数を発生するということ以
外、各乱数発生器の詳細については述べていない。パラ
メータの外部から与え方、或いは、乱数の発生の仕方
は、当業者が知っている公知の技術により行われるもの
であれば、どのようなものでも構わない。
【0075】10.初期化回路 前述したように、集団メモリ30は、この装置が動作を
開始する前に、初期化されなければならない。即ち、集
団メモリ30は、ランダムに生成された染色体の集団で
満たされていなければならない。また、集団メモリ30
は、染色体とともに、対応する適応度で満たされていな
ければならない。
【0076】この実施の形態の初期化回路は、既に述べ
た突然変異済染色体レジスタ69、適応評価器70、評
価済染色体レジスタ79等を利用している。図13に示
すように、突然変異済染色体レジスタ69は、データを
入力する場合、パラレル入力とシリアル入力の2つのモ
ードを持っている。初期化モード信号がオフの場合に
は、n個のXORゲート62からの出力を並列に入力す
る。一方、初期化モード信号がオンの場合に、突然変異
済染色体レジスタ69は、絶対値比較器98から出力さ
れたシリアルパターンを順に入力し、左から右に1ビッ
トずつシフトする。初期化モードの場合、絶対値比較器
98には、ランダムに生成される染色体の0と1から構
成されるビットパターン中の1の密度を示す閾値(T
H)パラメータが特別に入力されるものとする。絶対値
比較器98の動作は、絶対値比較器66と同じである。
このパルス密度を示す閾値(TH)パラメータの値を変
えることにより、異なるタイプのランダムなビット列を
発生することができる。
【0077】このようにして、突然変異済染色体レジス
タ69にランダムなビット列がシリアルに入力される
と、各マシンサイクル毎に適応評価器70は、突然変異
済染色体レジスタ69に保持されたランダムパターンに
対する評価値を算出して出力する。評価済染色体レジス
タ79は、前述した動作と同様に、評価済染色体77と
適応値78を保持する。生存判定器80には、不適応値
48が入力されているが、初期化モードの場合は、初期
化モード信号がORゲート86を経由して不適応値レジ
スタ49に入力されているため、不適応値48の値は0
クリアされている。従って、生存判定器80の比較結果
は、常にサバイバルモードを生成することになる。従っ
て、評価済染色体レジスタ79に保持された評価済染色
体77と適応値78は、集団メモリ30に書き込まれ
る。
【0078】初期化モードにおいては、図4に示したよ
うに、装置が初期化モードに設定された場合、シーケン
シャルカウンタ36は、0に設定される。突然変異済染
色体レジスタ69がランダムなデータで満たされてか
ら、初期書き込み信号が生成される。この初期書き込み
信号が生成されるタイミングは、生存判定器80により
評価済染色体レジスタ79に保持された評価済染色体7
7と適応値78が集団メモリ30に書き込み可能になっ
た時点である。集団メモリ30への書き込みは、シーケ
ンシャルカウンタ36により発生されたアドレスを用い
て行われる。シーケンシャルカウンタ36は、集団メモ
リ30への書き込みがある度に、その値を1ずつ増加さ
せ、集団メモリ30の連続した領域に新たな染色体を書
き込む。この実施の形態では、突然変異済染色体レジス
タ69が1ビットずつ右にデータをシフトする度に、新
たな染色体を集団メモリ30に書き込むようにしてい
る。このように、1ビットずつシフトする度に、新たな
染色体を生成しているので、集団メモリ30の初期化処
理が高速に行われる。初期化処理を高速に行うことも、
遺伝的アルゴリズムにとっては非常に重要なことであ
る。この実施の形態においては、初期化処理に必要な時
間は、集団メモリ30のビット幅には依存していない。
この実施の形態の初期化処理に必要な時間は、集団メモ
リ30のワード数に比例している。突然変異済染色体レ
ジスタ69に生成されるnビットのビット列が完全に新
たになるまで、新たな染色体を集団メモリ30に書き込
まないという方式もとることが可能であるが、その場合
には、1ビットずつシフトして、染色体を集団メモリ3
0に書き込む場合に比べて、初期化処理がn倍だけ遅く
なってしまう。この実施の形態によれば、1マシンサイ
クル毎に、1染色体を生成しており、非常に高速に初期
化処理を行える。初期化処理は、集団メモリ30が一杯
になるまで行われる。集団メモリ30が子染色体により
満たされた時点で、このマシンのセレクションモードの
動作開始が可能となる。
【0079】図18は、この実施の形態の全体動作を示
す図である。縦軸に、図17に示した各部を示してい
る。横軸に、セレクションモードの開始時点からのマシ
ンサイクルを示している。即ち、図18の場合は、マシ
ンサイクルが初期化モードが終了した時点から図示して
いる。図18において、P1からP10は、親染色体を
示している。C1からC9は、子染色体を示している。
C’1からC’7は、突然変異処理を受けた子染色体を
示している。P1AからP10Aは、親染色体P1から
P10のアドレスを示している。数字は、染色体の適応
値を示している。まず、最初のサイクル#1では、乱数
発生器31がアドレスソースとして選択され、集団メモ
リ30にアドレスを供給する。供給されたアドレスに記
憶されている染色体P1が、第1の染色体レジスタ41
に読み出される。そして、そのアドレスP1Aは、集団
メモリアドレスレジスタ43に転送されて保持される。
【0080】次のサイクル#2においては、第1の染色
体レジスタ41に保持された親染色体P1が第2の染色
体レジスタ42に転送される。また、第1の染色体レジ
スタ41に保持された適応値94(値100)は、不適
応値レジスタ49に保持された不適応値48と比較され
る。不適応値レジスタ49の値は、初期化モードの終了
時に、オール1に初期化されているものとする。図18
においては、最大値1023に設定されている。従っ
て、第1の染色体レジスタ41に保持されていた染色体
の適応値94(値100)は、この時点で不適応値レジ
スタ49に転送される。不適応値レジスタ49に新たな
値が設定される度に、不適応値レジスタ49は、パルス
を発生する。このパルスは、不適応ポインタレジスタ4
5に出力される。不適応ポインタレジスタ45は、この
パルスの発生に基づき、不適応ポインタ44を設定す
る。不適応ポインタ44には、集団メモリアドレスレジ
スタ43に保持されているアドレスが転送されて設定さ
れるものである。集団メモリアドレスレジスタ43は、
第1の染色体レジスタ41に読み出されていた親染色体
のアドレスを保持しているものである。また、このサイ
クル#2で、不適応ポインタ有効フリップフロップ52
がリセットされる。また、このサイクル#2で、新たな
親染色体P2が第1の染色体レジスタ41に読み出され
る。また、このサイクル#2において、親染色体P1と
P2の交叉処理が行われる。生成された子染色体C1
は、突然変異器60に送られ、突然変異器60におい
て、突然変異の処理を施される。
【0081】更に、次のサイクル#3においては、突然
変異器60において突然変異の処理を施された子染色体
C’1が、突然変異済染色体レジスタ69にロードされ
る。突然変異済染色体レジスタ69にロードされた子染
色体は、適応評価器70により評価される。また、この
サイクル#3で不適応値レジスタ49の値が値100か
ら値99に置き変わる。
【0082】更に、次のサイクル#4においては、適応
値78(値10)を伴った評価済染色体77が評価済染
色体レジスタ79にロードされる。評価済染色体レジス
タ79にロードされた適応値78(値10)は、生存判
定器80により不適応値レジスタ49に記憶された不適
応染色体35の適応値(値99)と比較される。もし、
子染色体の適応度が高い場合には、集団メモリ30に書
き込まれる。この書き込みアドレスは、不適応ポインタ
レジスタ45に保持された不適応ポインタ44により提
供される。
【0083】図18においては、サイクル#4から#7
まで、子染色体C’1からC’4の適応値(値10,2
0,30,40)は、不適応値レジスタ49に保持され
た不適応値(値99,98,70)の値よりも小さいた
め、サバイバルモードにはならず、子染色体C’1から
C’4は、捨てられている。しかし、サイクル#8にお
いて、子染色体C’5の適応値が不適応値(値70)よ
りも大きな値(値150)を示すことにより、生存判定
器80から出力されるサバイバル信号が1となる。
【0084】サイクル#9において、サバイバル信号が
1となったため、サバイバルモードとなる。子染色体
C’5が集団メモリ30に書き込まれる場合には、第1
と第2の染色体レジスタ41と42への読み込み動作を
停止する。また、不適応ポインタ有効フリップフロップ
52は、セットからリセットに変更される。従って、不
適応値レジスタ49も最大値1023へリセットされ
る。また、不適応ポインタ有効フリップフロップ52の
リセットにより不適応ポインタレジスタ45に保持され
た不適応ポインタ44も内容は変更されないが、無効と
される。サイクル#9では、第1と第2の染色体レジス
タ41と42への読み込み動作を停止するので、第1と
第2の染色体レジスタ41と42の内容は変更されない
まま、交叉処理と突然変異処理が実行される。交叉位置
が異なること及び突然変異処理をするビット位置が変化
することから、同一の親染色体P7とP8から生成され
る子染色体は異なる子染色体となる。図中、サイクル#
8で親染色体P7とP8から生成される子染色体をCa
7とし、サイクル#9で親染色体P7とP8から生成さ
れる子染色体をCb7としている。また、それらの突然
変異処理の子染色体とCa’7,Cb’7としている。
このように、第1と第2の染色体レジスタ41と42へ
の読み込み動作を停止する場合でも、各サイクルで子染
色体が生成されるようになっている。
【0085】以下に、前述した実施の形態の変更例につ
いて説明する。前述した例においては、集団メモリが1
つの連続した領域で構成されている場合を説明したが、
集団メモリ30は、複数の領域に存在していても構わな
い。集団メモリ30が複数の領域に分割されて存在する
場合には、集団メモリに対するアドレッシングの回路が
多少複雑になるが、メモリを分割することにより、柔軟
な記憶ができるとともに、メモリの増設等が容易に行え
る。
【0086】次に、選択部40の変更例について説明す
る。前述した選択部40では、不適応染色体保持回路9
1が、第1の染色体レジスタ41に読み出された親染色
体の中で最も適応値が低いものを不適応値48として、
不適応値レジスタ49に記憶する場合を示した。従っ
て、不適応値レジスタ49に保持されている適応値は、
いわば相対的な適応値であり、集団メモリ30に記憶さ
れている全ての染色体の中で最も低い値を示す適応値で
はなかった。即ち、絶対的な最低適応値を検出している
ものではなかった。しかし、特別なハードウェア回路、
或いは、特別なソートアルゴリズム等を適応することに
より、集団メモリ30内に記憶された染色体の中で最低
の適応値を検出して記憶するようにしても構わない。
【0087】また、上記選択部40が、ランダムに親染
色体を選択する場合を説明したが、選択部40が染色体
の適応値に応じてプライオリテイをつけて親染色体の選
択確率を変更するようにしても構わない。
【0088】次に、交叉器50の変更例について説明す
る。図19は、親染色体を4つ選択して交叉処理を行う
場合を示す構成図である。第1の染色体レジスタ41
は、マルチプレクサ59aのインプット0に接続されて
いる。第2の染色体レジスタ42は、マルチプレクサ5
9aのインプット1に接続されている。第3の染色体レ
ジスタ88は、マルチプレクサ59aのインプット2に
接続されている。第4の染色体レジスタ89は、マルチ
プレクサ59aのインプット3に接続されている。n個
のマルチプレクサ59aは、nビットの2つの交叉テン
プレートをアドレスA1,A2に入力し、図20に示す
規則に従って、インプットポート0〜3のいずれかを選
択する。このようにして、4つの染色体レジスタ41,
42,88,89からいずれか1つを選択して、子染色
体を生成することができる。図19に示すような構成に
することにより、4つの親染色体を用いた交叉処理が可
能である。
【0089】図21は、3つの親染色体の交叉処理を示
している。n個のデコーダ87は、nビットの2つの交
叉テンプレートをアドレスA1,A2に入力し、図22
に示す規則に従って、アウトプットポート0〜3のいず
れかを選択する。n個のORゲート99は、n個のデコ
ーダ87のアウトプットポート2と3をn個のマルチプ
レクサ59bのゲートG2に接続する。各マルチプレク
サ59bは、図22に示す規則に従って、ゲートG0〜
G3に対応して、インプットポート0〜2のいずれかを
選択する。このようにして、3つの親染色体の交叉処理
が可能となる。また、図示しないが、5つ以上の親染色
体を選択して交叉処理を行うようにすることも可能であ
る。q(q≧2)個の親染色体の交叉処理を行う場合、
log2 q(小数点以下切り上げ)個の数だけの交叉テ
ンプレートシフトレジスタ55を準備し、各交叉テンプ
レートシフトレジスタ55から出力された値によりq個
の親染色体の内、いずれの親染色体を選択して子染色体
とするかを判断する。
【0090】次に、交叉器50の変更例について説明す
る。上記交叉器50においては、交叉器が1点交叉処理
を行う場合を図示して説明したが、2点以上の交叉処理
を行う場合でも構わない。また、上記交叉器50におい
ては、強制的に交叉位置を発生させて交叉処理を行う場
合を説明したが、強制的に交叉位置を発生させずに、親
染色体のいずれか一方を子染色体として複写する場合が
あっても構わない。
【0091】次に、突然変異器60の変更例について説
明する。上記突然変異器60においては、最低1ビット
の突然変異を起こす場合について説明したが、突然変異
を必ず起こさない場合があっても構わない。その場合に
は、交叉器50により生成された子染色体が、そのまま
突然変異済染色体レジスタ79に出力される。
【0092】次に、初期化回路の変更例を説明する。図
23は、初期化回路の変更例を示す図である。図24
は、その全体構成図である。図13及び図17において
は、初期化回路の一部として専用の絶対値比較器98と
乱数発生器RN5を設け、ランダムなシリアルパターン
を発生させて、突然変異済染色体レジスタ69にランダ
ムな染色体を生成したが、図24に示すように、突然変
異モジュール68の絶対値比較器66を兼用してランダ
ムなシリアルパターンを発生させて、突然変異済染色体
レジスタ69にランダムな染色体を生成するようにして
もよい。ランダムなパターン中の1の値の密度は、PD
Fパラメータにより調整することができる。PDFパラ
メータは、外部から入力されるものであり、初期化モー
ドの場合に、このPDFパラメータを初期化用の値に設
定すればよい。
【0093】次に、遺伝的アルゴリズムマシンとフレー
ムワークの変更例を説明する。上記遺伝的アルゴリズム
マシンにおいては、集団メモリと、選択部と、交叉器
と、突然変異器と、生存判定器と、及び、適応評価器と
を、個別に説明したが、これは、これらが物理的に個別
に存在することを意味していない。この発明は、これら
集団メモリと、選択部と、交叉器と、突然変異器と、生
存判定器と、及び、適応評価器の機能が、遺伝的アルゴ
リズム専用のハードウエアで構成されていることが特徴
であり、物理的な構成や、物理的なパッケージイング
は、どのようなものでもよい。また、上記フレームワー
クにおいては、集団メモリと、選択部と、交叉器と、突
然変異器と、生存判定器とが、不特定多数の問題に対し
て共通に用いられる場合について説明したが、これらの
全てを、不特定多数の問題に対して共通に用いられるフ
レームワークとして製造する場合に限らず、集団メモリ
と、選択部と、交叉器と、突然変異器と、生存判定器の
内、ひとつ以上のものを、適応評価器と同様に、特定の
問題向きのものとして製造しても構わない。更に、集団
メモリと、選択部と、交叉器と、突然変異器と、生存判
定器の全てを、適応評価器と同様に、特定の問題向きに
製造しても構わない。この発明の特徴は、集団メモリ
と、選択部と、交叉器と、突然変異器と、生存判定器と
(及び、適応評価器と)を、遺伝的アルゴリズムが高速
に実行できるように遺伝的アルゴリズム専用のハードウ
エアで構成した点にある。従来は、汎用の計算機や最構
築可能な計算機を用いて遺伝的アルゴリズムを実行して
いたのに対して、この発明は、遺伝的アルゴリズムが高
速に実行できるように、集団メモリと、選択部と、交叉
器と、突然変異器と、生存判定器と(及び、適応評価器
と)を、マシンサイクルに同期して動作する専門のハー
ドウエアで構成したものである。このため、この発明の
遺伝的アルゴリズムマシンは、従来の遺伝的アルゴリズ
ムを実行するマシンに比べて、100倍或いは1000
倍の速さで遺伝的アルゴリズムを実行することができ
る。
【0094】
【発明の効果】以上のように、この発明によれば、ハー
ドウェアによる集団メモリ30と選択部40と交叉器5
0と突然変異器60と適応評価器70の適応評価器搭載
部95と生存判定器80により構成したので、遺伝的ア
ルゴリズムを高速に実行する遺伝的アルゴリズムマシン
を得ることができる。
【0095】また、この発明によれば、集団メモリ30
と選択部40と交叉器50と突然変異器60と生存判定
器80とを不特定多数の問題に対して共通に用いられる
ハードウェアで構成したので、遺伝的アルゴリズムのフ
レームワークとすることができる。
【0096】また、この発明によれば、適応評価器70
を特定の問題向きに変更することにより、遺伝的アルゴ
リズムマシンを容易に特定の問題向き遺伝的アルゴリズ
ムマシンとすることができる。
【0097】また、この発明によれば、適応評価器70
を再構築可能なハードウェアで構成することにより、遺
伝的アルゴリズムマシンを容易に特定の問題向きの遺伝
的アルゴリズムマシンとすることができる。
【0098】また、この発明によれば、適応評価器70
をフィールドプログラマブルゲートアレイにより作成す
ることができる。
【0099】また、この発明によれば、集団メモリ3
0、選択部40、交叉器50、突然変異器60、適応評
価器70、生存判定器80は、共通のマシンサイクルに
同期して並列動作するので、遺伝的アルゴリズムをパイ
プライン処理することができ、高速な処理を実現するこ
とができる。
【0100】また、この発明によれば、集団メモリ30
が1つのメモリで構成されているので、メモリ容量の少
ない装置を実現することができる。
【0101】また、この発明によれば、適応度の低い染
色体を適応度の高い染色体で置き換えるので、適応度の
高い染色体がより長期間集団メモリに存在することにな
り、適応度に比例した選択を行うための特別な回路が存
在しないにも関わらず、結果として、適応度の高い染色
体を選択する確率を増加させることができる。
【0102】また、この発明によれば、集団メモリの染
色体の置き換えをポインタ操作により行うので、高速な
置き換え処理が可能となる。
【0103】また、この発明によれば、集団メモリ30
から染色体をランダムに選択するので、選択部の構成が
簡単になる。
【0104】また、この発明によれば、2以上の染色体
を選択することができる。
【0105】また、この発明によれば、選択部を複数の
染色体レジスタにより構成しているので、選択部が簡単
な構成となる。
【0106】また、この発明によれば、交叉器50がn
ビットの親染色体の交叉処理を並列に行うので、交叉処
理が高速に行われる。
【0107】また、この発明によれば、nビットの交叉
処理がn個のマルチプレクサにより行われるので、交叉
器50を簡単に構成することができる。
【0108】また、この発明によれば、2以上の親染色
体の交叉処理を行う場合でも、2個の親染色体の交叉処
理を行う場合と同様の回路を用いることができる。
【0109】また、この発明によれば、交叉位置を確率
的に発生させることができる。
【0110】また、この発明によれば、簡単な回路を用
いて交叉器50が交叉位置を示すパターンの発生を確率
的に自己制御することができる。
【0111】また、この発明によれば、強制的に交叉位
置を示すパターンを発生させるので、交叉器50が必ず
交叉処理を実行することになり、交叉器50が常に親染
色体と異なる子染色体を生成することができる。
【0112】また、この発明によれば、突然変異器60
の突然変異の処理を各ビット並列、かつ、独立に実行す
るので、高速処理が可能な装置を得ることができる。
【0113】また、この発明によれば、突然変異を起こ
させるビットを簡単な回路により構成することができ
る。
【0114】また、この発明によれば、生存判定器が、
評価済染色体レジスタと不適応値レジスタとに記憶され
た適応値を比較し、その比較結果に基づいて上記評価済
染色体レジスタに記憶された染色体とその適応値を、集
団メモリに記憶させるので、世代毎に集団メモリを持つ
必要がない。
【0115】また、この発明によれば、前述した遺伝的
アルゴリズムに用いる回路を装置の初期化に兼用して用
いるので、特別な初期化回路を設ける必要がない。
【0116】また、この発明によれば、初期化に利用す
る各部を並列実行させるので、初期化が高速に行われ
る。
【図面の簡単な説明】
【図1】 この発明に係る遺伝的アルゴリズムマシンの
一例を示す概念的ブロック図である。
【図2】 この発明の遺伝的アルゴリズムの流れを示す
フローチャート図である。
【図3】 この発明の集団メモリ30の周辺回路を示す
図である。
【図4】 この発明の初期化モードにおいてシーケンシ
ャルカウンタ36が集団メモリ30にアドレスを提供す
る場合を示す図である。
【図5】 この発明のセレクションモードにおいて、乱
数発生器31が集団メモリ30にアドレスを提供する場
合を示す図である。
【図6】 この発明のサバイバルモードにおいて、不適
応ポインタ44から集団メモリ30にアドレスを供給す
る場合を示す図である。
【図7】 この発明の選択部40の一部である不適応染
色体保持回路91の内部回路を示す図である。
【図8】 この発明の選択部40の一部である第1と第
2の染色体レジスタを示す図である。
【図9】 この発明の交叉器50の内部回路を示す図で
ある。
【図10】 この発明の交叉テンプレート発生器54の
内部回路を示す図である。
【図11】 この発明のカウント回路の他の例を示す図
である。
【図12】 この発明の強制的に交叉位置を示すパター
ンを発生させる回路を示す図である。
【図13】 この発明の突然変異モジュール68の内部
回路を示す図である。
【図14】 この発明の突然変異モジュール68の具体
的動作を示す図である。
【図15】 この発明の適応評価器70の一例を示す図
である。
【図16】 この発明の生存判定器80の周辺回路を示
す図である。
【図17】 この発明の全体詳細構成図である。
【図18】 この発明の全体動作を説明する図である。
【図19】 この発明の4つの染色体の交叉処理を示す
図である。
【図20】 この発明の4つの染色体の交叉処理に用い
るマルチプレクサの動作を示す図である。
【図21】 この発明の3つの染色体の交叉処理を示す
図である。
【図22】 この発明の3つの染色体の交叉処理に用い
るデコーダとマルチプレクサの動作を示す図である。
【図23】 この発明の初期化回路の他の例を示す図で
ある。
【図24】 この発明の初期化回路の他の例を用いた全
体詳細構成図である。
【図25】 従来の遺伝的アルゴリズムを示す図であ
る。
【符号の説明】
20 アップダウンカウンタ、21 トグルフリップフ
ロップ、22 ORゲート、23 ANDゲート、24
比較器、25 閾値比較器、26 閾値カウンタ、2
7 交叉数比較器、28 キャリーセーブ加算器、29
XORゲート、30 集団メモリ、31 乱数発生
器、32 染色体、33 適応値、35不適応染色体、
36 シーケンシャルカウンタ、37 第1のマルチプ
レクサ、38 第2のマルチプレクサ、39 第3のマ
ルチプレクサ、40 選択部、41 第1の染色体レジ
スタ、42 第2の染色体レジスタ、43 集団メモリ
アドレスレジスタ、44 不適応ポインタ、45 不適
応ポインタレジスタ、48不適応値、49 不適応値レ
ジスタ、50 交叉器、51 乱数発生器、52不適応
ポインタ有効フリップフロップ、53 ANDゲート、
54 交叉テンプレート発生器、55 交叉テンプレー
トシフトレジスタ、56 ANDゲート、57 AND
ゲート、58 ORゲート、59 マルチプレクサ、6
0 突然変異器、61 乱数発生器、62 XORゲー
ト、63 ANDゲート、64第1のシフトレジスタ、
65 第2のシフトレジスタ、66 絶対値比較器、6
7 絶対値比較器、68 突然変異モジュール、69
突然変異済染色体レジスタ、70 適応評価器、71
マルチプレクサ、72 キャリーセーブ加算器、73
重量比較器、77 評価済染色体、78 適応値、79
評価済染色体レジスタ、80 生存判定器、84 第
1のパルス列発生器、85 第2のパルス列発生器、8
6 ORゲート、91 不適応染色体保持回路、95
適応評価器搭載部。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 岩本 貴司 東京都千代田区丸の内二丁目2番3号 三菱電機株式会社内 (56)参考文献 特開 平6−161980(JP,A) 特開 平5−225223(JP,A) 特開 平7−200516(JP,A) 特開 平7−105180(JP,A) 特開 平8−194675(JP,A) 坂和正敏、田中雅博,ソフトコンピュ ーティングシリーズ1 遺伝的アルゴリ ズム,株式会社朝倉書店 Stephen D.Scott e t.al,HGA:A Hardwar e−Based Genetic Al gorithm,1995 ACM Thi rd International S ymposium on Field− Programmable Gate Arrays(FPGA’95) 山田武士、中野良平,遺伝的アルゴリ ズムにおける探索空間水準の影響,電子 情報通信学会技術研究報告、,Vol. 93,No.424(AI93−72),p.1 −p.8 B.C.H.Turton,T.Ar slan,A Parallel Ge netic VLSI Archite cture for Combinat orial Real−Time Ap plivations − Disc Scheduling,First I nternational Confe rence on Genetic A lgorithms in Engin eering Systems:Inn ovations and App l.,p.493−p.498 米澤保雄,遺伝的アルゴリズム 進化 理論の情報科学,森北出版株式会社 L.デービス編:嘉数他訳,遺伝アル ゴリズムハンドブック,森北出版株式会 社 (58)調査した分野(Int.Cl.7,DB名) G06N 3/12 JICSTファイル(JOIS)

Claims (9)

    (57)【特許請求の範囲】
  1. 【請求項1】 nビットで表現される染色体を用いて遺
    伝的アルゴリズムを実行する遺伝的アルゴリズムマシン
    において、 適応度を伴った染色体の集団を記憶する集団メモリと、 集団メモリに記憶された染色体の集団の中から親染色体
    を選択する選択部と、 選択部により選択された親染色体に交叉処理を行い、子
    染色体を生成する交叉器と、 交叉器により生成された子染色体に突然変異の処理を行
    う突然変異器と、 突然変異器により突然変異の処理が行われた子染色体の
    特定の問題に対する適応度を評価する適応評価器を着脱
    可能に搭載する適応評価器搭載部と、 上記適応評価器により評価される適応度に基づいて子染
    色体の生存の可否を判定する生存判定器とを備え 上記集団メモリは、親染色体と子染色体とをともに記憶
    する1つの連続したメモリ領域であり、 上記遺伝的アルゴリズムマシンは、上記集団メモリに記
    憶されている適応度の低い染色体を、より適応度の高い
    子染色体で置き換えることにより、上記集団メモリ内に
    適応度の高い染色体を適応度の低い染色体より長く生存
    させ、 上記遺伝的アルゴリズムマシンは、上記集団メモリに記
    憶されている染色体の前回の置き換え以後に選択された
    親染色体の中で最も適応度の低い染色体のアドレスを記
    憶するアドレスポインタレジスタを備え、上記集団メモ
    リは、アドレスポインタレジスタに記憶されたアドレス
    にある染色体を子染色体で置き換えることを特徴とする
    遺伝的アルゴリズムマシン。
  2. 【請求項2】 nビットで表現される染色体を用いて遺
    伝的アルゴリズムを実行する遺伝的アルゴリズムマシン
    において、 適応度を伴った染色体の集団を記憶する集団メモリと、 集団メモリに記憶された染色体の集団の中から親染色体
    を選択する選択部と、 選択部により選択された親染色体に交叉処理を行い、子
    染色体を生成する交叉器と、 交叉器により生成された子染色体に突然変異の処理を行
    う突然変異器と、 突然変異器により突然変異の処理が行われた子染色体の
    特定の問題に対する適応度を評価する適応評価器を着脱
    可能に搭載する適応評価器搭載部と、 上記適応評価器により評価される適応度に基づいて子染
    色体の生存の可否を判定する生存判定器とを備え、 上記集団メモリは、親染色体と子染色体とをともに記憶
    する1つの連続したメモリ領域であり、 上記遺伝的アルゴリズムマシンは、上記集団メモリに記
    憶されている適応度の低い染色体を、より適応度の高い
    子染色体で置き換えることにより、上記集団メモリ内に
    適応度の高い染色体を適応度の低い染色体より長く生存
    させ、 上記選択部は、上記集団メモリに記憶された染色体の中
    から染色体の適応度に関わらず、親染色体をランダムに
    選択し、 上記選択部は、2以上の染色体を親染色体として選択
    し、 上記選択部は、上記集団メモリから選択した染色体をシ
    リアルに転送するとともに、上記交叉器へ染色体を並列
    に出力する2以上の染色体レジスタを備えたことを特徴
    とする遺伝的アルゴリズムマシン。
  3. 【請求項3】 nビットで表現される染色体を用いて遺
    伝的アルゴリズムを実行する遺伝的アルゴリズムマシン
    において、 適応度を伴った染色体の集団を記憶する集団メモリと、 集団メモリに記憶された染色体の集団の中から親染色体
    を選択する選択部と、 選択部により選択された親染色体に交叉処理を行い、子
    染色体を生成する交叉器と、 交叉器により生成された子染色体に突然変異の処理を行
    う突然変異器と、 突然変異器により突然変異の処理が行われた子染色体の
    特定の問題に対する適応度を評価する適応評価器を着脱
    可能に搭載する適応評価器搭載部と、 上記適応評価器により評価される適応度に基づいて子染
    色体の生存の可否を判定する生存判定器とを備え、 上記集団メモリは、親染色体と子染色体とをともに記憶
    する1つの連続したメモリ領域であり、 上記遺伝的アルゴリズムマシンは、上記集団メモリに記
    憶されている適応度の低い染色体を、より適応度の高い
    子染色体で置き換えることにより、上記集団メモリ内に
    適応度の高い染色体を適応度の低い染色体より長く生存
    させ、 上記遺伝的アルゴリズムマシンは、更に、上記適応評価
    器により適応度が評価された染色体とその適応度を示す
    適応値を記憶する評価済染色体レジスタと、 上記選択部により選択された親染色体の中で適応度の低
    い親染色体の適応値を記憶する不適応値レジスタとを備
    え、 上記生存判定器は、上記評価済染色体レジスタと不適応
    値レジスタとに記憶された適応値を比較し、その比較結
    果に基づいて上記評価済染色体レジスタに記憶された染
    色体とその適応値を、上記集団メモリに記憶させること
    を特徴とする遺伝的アルゴリズムマシン。
  4. 【請求項4】 nビットで表現される染色体を用いて遺
    伝的アルゴリズムを実行する遺伝的アルゴリズムマシン
    において、 適応度を伴った染色体の集団を記憶する集団メモリと、 集団メモリに記憶された染色体の集団の中から親染色体
    を選択する選択部と、 選択部により選択された親染色体に交叉処理を行い、子
    染色体を生成する交叉器と、 交叉器により生成された子染色体に突然変異の処理を行
    う突然変異器と、 突然変異器により突然変異の処理が行われた子染色体の
    特定の問題に対する適応度を評価する適応評価器を着脱
    可能に搭載する適応評価器搭載部と、 上記適応評価器により評価される適応度に基づいて子染
    色体の生存の可否を判定する生存判定器とを備え、 上記交叉器は、 交叉位置を示すパターンを含む交叉テンプレートを発生
    する交叉テンプレート発生器と、 交叉テンプレート発生器により発生された交叉テンプレ
    ートを入力して、交叉テンプレートをシフトするnビッ
    トの交叉テンプレートシフトレジスタと、 上記交叉テンプレートシフトレジスタから出力されるn
    ビットの各ビットの値に基づいてnビットの親染色体の
    交叉処理を各ビット並列に行うマルチプレクサとを備
    え、 上記交叉テンプレート発生器は、外部から指定された交
    叉位置の数と現在の交叉位置の数とが一致するように交
    叉テンプレートのパターンを変更することを特徴とする
    遺伝的アルゴリズムマシン。
  5. 【請求項5】 上記交叉テンプレート発生器は、 上記交叉テンプレートシフトレジスタ内の交叉位置を示
    すパターンの数をカウントするカウント回路と、 上記カウント回路がカウントした交叉位置を示すパター
    ンの数と外部から指定された交叉位置の数とを比較する
    交叉数比較器と、 上記交叉数比較器の比較結果に基づいて、交叉位置を示
    すパターンを発生するための閾値を設定する閾値カウン
    タと、 上記閾値カウンタの閾値と乱数とを比較する閾値比較器
    と、 上記閾値比較器の比較結果に基づいて、交叉位置を示す
    パターンを発生させるトグルフリップフロップとを備え
    たことを特徴とする請求項4記載の遺伝的アルゴリズム
    マシン。
  6. 【請求項6】 上記交叉テンプレート発生器は、上記カ
    ウント回路がカウントした交叉位置を示すパターンの数
    に基づいて強制的に交叉位置を示すパターンを発生させ
    る回路を備えたことを特徴とする請求項5記載の遺伝的
    アルゴリズムマシン。
  7. 【請求項7】 nビットで表現される染色体を用いて遺
    伝的アルゴリズムを実行する遺伝的アルゴリズムマシン
    において、 適応度を伴った染色体の集団を記憶する集団メモリと、 集団メモリに記憶された染色体の集団の中から親染色体
    を選択する選択部と、 選択部により選択された親染色体に交叉処理を行い、子
    染色体を生成する交叉 器と、 交叉器により生成された子染色体に突然変異の処理を行
    う突然変異器と、 突然変異器により突然変異の処理が行われた子染色体の
    特定の問題に対する適応度を評価する適応評価器を着脱
    可能に搭載する適応評価器搭載部と、 上記適応評価器により評価される適応度に基づいて子染
    色体の生存の可否を判定する生存判定器とを備え、 上記突然変異器は、 nビットの子染色体の突然変異の処理を各ビット並列
    に、かつ、独立に実行する突然変異モジュールと、 突然変異の処理が行われた子染色体の各ビットを並列に
    ロードする突然変異済染色体レジスタとを備え、 上記突然変異器は、 乱数に基づいて所定のパルス密度pを持つ第1と第2の
    パルス列を発生させる第1と第2のパルス列発生器と、 上記第1と第2のパルス列発生器により発生された第1
    と第2のパルス列を積算してパルス密度p 2 を持つ第3
    のパルス列を発生するANDゲートと、 上記ANDゲートで発生された第3のパルス列と上記子
    染色体の各ビットの排他的論理和を求めるXORゲート
    とを備えたことを特徴とする遺伝的アルゴリズムマシ
    ン。
  8. 【請求項8】 適応度を伴った染色体の集団を記憶する
    集団メモリを備えた遺伝的アルゴリズムマシンの遺伝的
    アルゴリズムの実行方法において、 上記集団メモリに記憶されている適応度の低い染色体
    を、遺伝的アルゴリズムの実行により生成されたより適
    応度の高い子染色体で置き換えることにより、上記集団
    メモリ内に適応度の高い染色体を適応度の低い染色体よ
    り長く生存させる工程を備え、 上記遺伝的アルゴリズムの実行方法は、 上記集団メモリに記憶されている染色体の前回の置き換
    え以後に選択された親 染色体の中で最も適応度の低い染
    色体のアドレスを記憶する工程と、 記憶されたアドレスにある染色体を子染色体で置き換え
    る工程とを備えたことを特徴とする遺伝的アルゴリズム
    の実行方法。
  9. 【請求項9】 上記遺伝的アルゴリズムの実行方法は、
    上記集団メモリに記憶された染色体の中から染色体の適
    応度に関わらず、親染色体をランダムに選択する工程を
    備えたことを特徴とする請求項8記載の遺伝的アルゴリ
    ズムの実行方法。
JP30827096A 1996-11-19 1996-11-19 遺伝的アルゴリズムマシン及び遺伝的アルゴリズムマシンの製造方法及び遺伝的アルゴリズムの実行方法 Expired - Fee Related JP3254393B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP30827096A JP3254393B2 (ja) 1996-11-19 1996-11-19 遺伝的アルゴリズムマシン及び遺伝的アルゴリズムマシンの製造方法及び遺伝的アルゴリズムの実行方法
US08/909,830 US6185547B1 (en) 1996-11-19 1997-08-12 Fitness function circuit
US08/910,103 US5970487A (en) 1996-11-19 1997-08-13 Genetic algorithm machine and its production method, and method for executing a genetic algorithm

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30827096A JP3254393B2 (ja) 1996-11-19 1996-11-19 遺伝的アルゴリズムマシン及び遺伝的アルゴリズムマシンの製造方法及び遺伝的アルゴリズムの実行方法

Publications (2)

Publication Number Publication Date
JPH10149344A JPH10149344A (ja) 1998-06-02
JP3254393B2 true JP3254393B2 (ja) 2002-02-04

Family

ID=17979006

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30827096A Expired - Fee Related JP3254393B2 (ja) 1996-11-19 1996-11-19 遺伝的アルゴリズムマシン及び遺伝的アルゴリズムマシンの製造方法及び遺伝的アルゴリズムの実行方法

Country Status (2)

Country Link
US (1) US5970487A (ja)
JP (1) JP3254393B2 (ja)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185547B1 (en) * 1996-11-19 2001-02-06 Mitsubishi Denki Kabushiki Kaisha Fitness function circuit
DE59904766D1 (de) * 1998-09-30 2003-04-30 Infineon Technologies Ag Verfahren zur ausführung einzelner algorithmen mittels einer rekonfigurierbaren schaltung und vorrichtung zur durchführung eines solchen verfahrens
US6728666B1 (en) * 1999-09-13 2004-04-27 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Evolvable circuit with transistor-level reconfigurability
US7072814B1 (en) 1999-09-13 2006-07-04 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Evolutionary technique for automated synthesis of electronic circuits
WO2001086591A2 (en) * 2000-05-08 2001-11-15 General Electric Company High throughput screening method and system
GB0105357D0 (en) * 2001-03-03 2001-04-18 Marconi Comm Ltd Evolutionary programming of configurable logic devices
US6957200B2 (en) * 2001-04-06 2005-10-18 Honeywell International, Inc. Genotic algorithm optimization method and network
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
WO2003038749A1 (en) * 2001-10-31 2003-05-08 Icosystem Corporation Method and system for implementing evolutionary algorithms
US7065510B2 (en) * 2001-11-09 2006-06-20 Hewlett-Packard Development Company, L.P. Combinatorial fitness function circuit
US6477519B1 (en) * 2001-11-19 2002-11-05 Hewlett-Packard Company Cellular array for implementing the set merging function
US20030095151A1 (en) * 2001-11-20 2003-05-22 Shackleford J. Barry Real-time interactive adjustment of control parameters for a genetic algorithm computer
US7366185B2 (en) * 2003-02-07 2008-04-29 Lockheed Martin Corporation System for evolutionary service migration
EP1611546B1 (en) * 2003-04-04 2013-01-02 Icosystem Corporation Methods and systems for interactive evolutionary computing (iec)
US20040210399A1 (en) * 2003-04-15 2004-10-21 Shackleford J. Barry Random number generator method and system for genetic algorithm analysis
US7076313B2 (en) * 2003-06-06 2006-07-11 Visteon Global Technologies, Inc. Method for optimizing configuration of pick-and-place machine
US7333960B2 (en) 2003-08-01 2008-02-19 Icosystem Corporation Methods and systems for applying genetic operators to determine system conditions
US7356518B2 (en) * 2003-08-27 2008-04-08 Icosystem Corporation Methods and systems for multi-participant interactive evolutionary computing
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
US20050159897A1 (en) * 2004-01-21 2005-07-21 Anderson David M. Postponing validation of speculative chromosomes
US20050197987A1 (en) * 2004-01-21 2005-09-08 Anderson David M. Systems and methods for selecting a value set
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
US7707220B2 (en) 2004-07-06 2010-04-27 Icosystem Corporation Methods and apparatus for interactive searching techniques
US20070094161A1 (en) * 2005-07-27 2007-04-26 Stmicroelectronics S.R.L. Hardware device for genetic algorithms
ES2278516B1 (es) * 2005-08-24 2008-06-16 Universitat De Les Illes Balears Circuito digital que implementa un algoritmo genetico para la configuracion de circuitos de proposito general.
US8423323B2 (en) 2005-09-21 2013-04-16 Icosystem Corporation System and method for aiding product design and quantifying acceptance
US7519476B1 (en) 2006-07-28 2009-04-14 Seisnetics, Llc Method of seismic interpretation
US7792816B2 (en) 2007-02-01 2010-09-07 Icosystem Corporation Method and system for fast, generic, online and offline, multi-source text analysis and visualization
US8229867B2 (en) * 2008-11-25 2012-07-24 International Business Machines Corporation Bit-selection for string-based genetic algorithms
US8250007B2 (en) * 2009-10-07 2012-08-21 King Fahd University Of Petroleum & Minerals Method of generating precedence-preserving crossover and mutation operations in genetic algorithms
RU2447503C1 (ru) * 2010-12-13 2012-04-10 Государственное образовательное учреждение высшего профессионального образования "Южно-Российский государственный университет экономики и сервиса" (ГОУ ВПО "ЮРГУЭС") Устройство аппаратной реализации эволюционного алгоритма с нечеткими операторами
US10481992B1 (en) * 2011-03-31 2019-11-19 EMC IP Holding Company LLC Optimization of flash storage
CN103116806B (zh) * 2013-03-13 2016-08-03 兰州理工大学 基于混沌克隆算子的铝液抬包配载优化方法
RU2572379C1 (ru) * 2014-07-22 2016-01-10 Федеральное Государственное Бюджетное Образовательное Учреждение Высшего Профессионального Образования "Донской Государственный Технический Университет" (Дгту) Реконфигурируемое устройство аппаратной реализации генетического алгоритма
CN108780518A (zh) 2016-01-05 2018-11-09 思腾科技(巴巴多斯)有限公司 使用人工神经网络来进行网页界面生成和测试
US11403532B2 (en) 2017-03-02 2022-08-02 Cognizant Technology Solutions U.S. Corporation Method and system for finding a solution to a provided problem by selecting a winner in evolutionary optimization of a genetic algorithm
US10726196B2 (en) 2017-03-03 2020-07-28 Evolv Technology Solutions, Inc. Autonomous configuration of conversion code to control display and functionality of webpage portions
US11574201B2 (en) 2018-02-06 2023-02-07 Cognizant Technology Solutions U.S. Corporation Enhancing evolutionary optimization in uncertain environments by allocating evaluations via multi-armed bandit algorithms
US11755979B2 (en) 2018-08-17 2023-09-12 Evolv Technology Solutions, Inc. Method and system for finding a solution to a provided problem using family tree based priors in Bayesian calculations in evolution based optimization
RU2706458C1 (ru) * 2019-05-08 2019-11-19 Владимир Сергеевич Пахомов Способ и устройство оптимизации параметров стратегии долгосрочного планирования мероприятий по обеспечению требуемого состояния сложной организационно-технической системы
CN112947006B (zh) * 2019-11-26 2023-08-29 上海微电子装备(集团)股份有限公司 一种对准标记选择方法、装置、设备、光刻系统及介质
US11748631B2 (en) * 2020-08-13 2023-09-05 Capital One Services, Llc Genetic modeling for attribute selection within a cluster

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5255345A (en) * 1988-02-17 1993-10-19 The Rowland Institute For Science, Inc. Genetic algorithm
US4935877A (en) * 1988-05-20 1990-06-19 Koza John R Non-linear genetic algorithms for solving problems
US5390283A (en) * 1992-10-23 1995-02-14 North American Philips Corporation Method for optimizing the configuration of a pick and place machine
US5819244A (en) * 1995-10-02 1998-10-06 Apple Computer, Inc. Adaptive computing systems, computer readable memories and processes employing hyperlinear chromosomes
US5867397A (en) * 1996-02-20 1999-02-02 John R. Koza Method and apparatus for automated design of complex structures using genetic programming
US5864832A (en) * 1997-01-24 1999-01-26 Hewlett-Packard Company Method and apparatus for selecting higher order terms for a holographic neural network

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
B.C.H.Turton,T.Arslan,A Parallel Genetic VLSI Architecture for Combinatorial Real−Time Applivations − Disc Scheduling,First International Conference on Genetic Algorithms in Engineering Systems:Innovations and Appl.,p.493−p.498
L.デービス編:嘉数他訳,遺伝アルゴリズムハンドブック,森北出版株式会社
Stephen D.Scott et.al,HGA:A Hardware−Based Genetic Algorithm,1995 ACM Third International Symposium on Field−Programmable Gate Arrays(FPGA’95)
坂和正敏、田中雅博,ソフトコンピューティングシリーズ1 遺伝的アルゴリズム,株式会社朝倉書店
山田武士、中野良平,遺伝的アルゴリズムにおける探索空間水準の影響,電子情報通信学会技術研究報告、,Vol.93,No.424(AI93−72),p.1−p.8
米澤保雄,遺伝的アルゴリズム 進化理論の情報科学,森北出版株式会社

Also Published As

Publication number Publication date
JPH10149344A (ja) 1998-06-02
US5970487A (en) 1999-10-19

Similar Documents

Publication Publication Date Title
JP3254393B2 (ja) 遺伝的アルゴリズムマシン及び遺伝的アルゴリズムマシンの製造方法及び遺伝的アルゴリズムの実行方法
JP4900717B2 (ja) 再構成可能な装置
US5285524A (en) Neural network with daisy chain control
US5349659A (en) Hierarchical ordering of logical elements in the canonical mapping of net lists
US5787010A (en) Enhanced dynamic programming method for technology mapping of combinational logic circuits
US20030061601A1 (en) Data processing apparatus and method, computer program, information storage medium, parallel operation apparatus, and data processing system
US5696922A (en) Recursive address centrifuge for distributed memory massively parallel processing systems
US20200090051A1 (en) Optimization problem operation method and apparatus
JP2018200692A (ja) ベクトルプロセッサの配列ソート方法
Petrica et al. Memory-efficient dataflow inference for deep cnns on fpga
JPH04233634A (ja) ファジィ推論システム
US11580055B2 (en) Devices for time division multiplexing of state machine engine signals
US9570125B1 (en) Apparatuses and methods for shifting data during a masked write to a buffer
Lee et al. A parallel genetic-neuro scheduler for job-shop scheduling problems
JP4310500B2 (ja) 重要成分優先計算方式ならびに装置
JP2752634B2 (ja) ソート処理装置
US6185547B1 (en) Fitness function circuit
JP3279497B2 (ja) 適応評価器
JP3176577B2 (ja) 適応評価器
Sidhu et al. Efficient metacomputation using self-reconfiguration
Middendorf et al. An evolutionary approach to dynamic task scheduling on FPGAs with restricted buffer
JPS6354637A (ja) コンピユ−タ
Bidlo et al. Instruction-based development: From evolution to generic structures of digital circuits
Ye Field-programmable gate array architectures and algorithms optimized for implementing datapath circuits
JP4036257B2 (ja) 共有ライブラリ生成方法およびシステム

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20010807

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20011113

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040520

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071122

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081122

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees