JP3649551B2 - Autonomous evolution system - Google Patents

Autonomous evolution system Download PDF

Info

Publication number
JP3649551B2
JP3649551B2 JP11971397A JP11971397A JP3649551B2 JP 3649551 B2 JP3649551 B2 JP 3649551B2 JP 11971397 A JP11971397 A JP 11971397A JP 11971397 A JP11971397 A JP 11971397A JP 3649551 B2 JP3649551 B2 JP 3649551B2
Authority
JP
Japan
Prior art keywords
circuit
control
arithmetic
unit
calculation
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
JP11971397A
Other languages
Japanese (ja)
Other versions
JPH10307805A (en
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 Heavy Industries Ltd
Original Assignee
Mitsubishi Heavy Industries Ltd
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 Heavy Industries Ltd filed Critical Mitsubishi Heavy Industries Ltd
Priority to JP11971397A priority Critical patent/JP3649551B2/en
Publication of JPH10307805A publication Critical patent/JPH10307805A/en
Application granted granted Critical
Publication of JP3649551B2 publication Critical patent/JP3649551B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、各種のハードウェアを組み合わせて演算・制御を行うシステムに係り、特に環境の変化に対応して自律的にハードウェア構成を変更させる自律進化型システムに関する。
【0002】
【従来の技術】
従来から、セレクタ、カウンタ、加算器、乗算器などの各種のハードウェアを組み合わせて演算・制御を行うシステムでは、設計段階において将来システムがおかれる環境を予測し、それに適応するようにハードウェアおよびソフトウェアの構成を定めている。図10は、このような従来のシステムを示しており、演算・制御装置101は実行命令信号およびフィードバック信号に基づいて演算・制御対象102に対する処理を行い、演算・制御対象102から処理結果に応じたフィードバック信号を戻すことによって、予め予測された範囲内で外乱などの影響を補償している。
【0003】
【発明が解決しようとする課題】
従来のシステムでは、環境の変化により予測できない事態が発生した場合、システムの初期性能の維持が困難となったり、システムダウンや誤動作が起こるという問題があった。
【0004】
この対策として、環境の変化に応じてシステムのソフトウェアやハードウェアの変更が行われていたが、従来はソフトウェアの変更による対応が主体となっており、設計段階で予測されなかった状況が起こりソフトウェアで対応できなくなったときにハードウェアを変更するという方法がとられていた。しかし、ソフトウェアやハードウェアを変更するためには、いずれにしろ一旦システムを停止させて原因を解明し、その結果によりソフトウェアやハードウェアの変更を行って、その後で再度システムを立ち上げるといった手順をふむ必要があるため、人手や時間がかかるという問題があった。
【0005】
また、ネットワークを介して接続されたシステムのように直接ハードウェアを変更することができないときは、通信によってソフトウェアのみを変更する方法が考えられるが、その方法ではシステムの再立ち上げまでに多大の時間が必要となる。
【0006】
さらに、ソフトウェアを遺伝的アルゴリズムによって自律的に変更させることが考えられるが、ソフトウェアの変更だけでは環境の変化に対応しきれなかったり、実行速度が遅くなるといった問題が生じる。
【0007】
本発明は、このような問題点を解消するためになされたもので、環境の変化に対応して自律的にハードウェア構成を変化させる自律進化型システムを提供することを目的とする。
【0008】
【課題を解決するための手段】
上記課題を解決するため、本発明は再構成可能に構成される回路を有し、演算・制御対象の演算および制御の少なくとも一方の処理を行う演算・制御手段と、この演算・制御手段上に構成される回路の環境に対する適応度を評価し、その評価結果に基づいて演算・制御手段の回路を再構成する手段とを設けるようにしたものである。
【0009】
さらに詳しくは、本発明の自律進化型システムは、再構成可能に構成される回路を有し、演算・制御対象の演算および制御の少なくとも一方の処理を行う演算・制御手段と、この演算・制御手段上に構成すべき回路を生成し、回路の構成を示す回路構成情報を出力する回路生成手段と、この回路生成手段により生成された回路が演算・制御手段上に構成されたときの回路の環境に対する適応度を評価する適応度評価手段と、この適応度評価手段の評価結果に基づいて、回路生成手段により生成される回路を変更して進化させる処理を行う進化的処理手段と、この進化的処理手段により進化を遂げた回路の構成を示す回路構成情報を回路生成手段から受け、この回路構成情報に基づいて演算・制御手段の回路を再構成する再構成処理手段とを備えたものである。
【0010】
ここで、演算・制御手段を多重化して、再構成処理手段により演算・制御手段の処理を停止させることなく、回路を再構成することが望ましい。
また、回路生成手段は機能ブロックレベル、回路構成情報ビットレベル、論理ゲートレベルもしくはハードウェア記述言語のキーワードレベルのいずれかを最小変更単位として生成する回路を変更することが望ましい。
【0011】
さらに、回路生成手段は複数の回路を生成し、適応度評価手段は複数の回路をそれぞれ評価し、進化的処理手段は複数の回路の各評価結果に基づいて遺伝的アルゴリズムによって複数の回路を変更することで進化を遂げた回路を求めることが望ましい。
【0012】
このとき、回路生成手段において複数の回路を機能変更単位に対応したビット列からなる複数の染色体情報によってそれぞれ記述し、進化的処理手段において遺伝的アルゴリズムにより複数の回路を変更するとき、複数の染色体情報のうちのいずれかを選択し、選択されなかった染色体情報を取り除く第1の処理と、複数の染色体情報の間でビット列の任意部分を交換する第2の処理と、複数の染色体情報のビット列の任意部分を反転させる第3の処理とを組み合わせて行うことがさらに望ましい。
【0013】
【発明の実施の形態】
(第1の実施形態)
図1は、本発明の第1の実施形態に係るシステムの構成を示すブロック図である。このシステムは、演算・制御対象9に対する演算もしくは制御処理を司る演算・制御装置5と、この演算・制御装置5のハードウェア構成を変更させるための回路生成部1、適応度評価部2、進化的処理部3および再構成処理部4とで構成されている。
【0014】
演算・制御装置5は、演算・制御処理部6−1,6−2、入力制御回路7および出力制御回路8からなる。演算・制御処理部6−1,6−2は、再構成可能に構成される回路を有している。演算・制御処理部6−1,6−2の各回路には、機能変更に対応した複数の再構成可能素子が設けられており、これら複数の再構成可能素子の使用状態および接続状態などによって回路の機能が決定される。
【0015】
ここで、演算・制御処理部6−1,6−2は二重化されており、それぞれ同種および同数の再構成可能素子が設けられて、各々で実現し得る回路が同一になるように構成されている。このとき、演算・制御処理部6−1,6−2のハードウェアの全てを二重化しても、再構成可能な領域、すなわち再構成可能素子により構成される回路部分のみを二重化してもよく、少なくとも演算・制御処理部6−1と6−2との間で再構成可能素子の構成が同じであれば、同一構成で同一機能の回路が得られるようにする。なお、本実施形態では演算・制御処理部6−1,6−2のうちのいずれか一方のみを有効状態として演算・制御対象9に対する処理を行う。
【0016】
再構成可能素子は、実際には回路の機能ブロック、回路構成情報ビット、論理ゲートもしくはハードウェア記述言語のキーワードなどに対応して設定される。機能ブロックとは、セレクタ、カウンタ、加算器および乗算器などのことであり、各機能ブロックの使用状態や接続状態を変更することにより回路構成が変更される。
【0017】
回路構成情報ビットとは、PLD(Programmable Logic Device )やFPGA(Field Programmable Gate Array )のコンフィギュレーションビットなどのことであり、このコンフィギュレーションビットを直接変更することにより回路構成が変更される。
【0018】
論理ゲートとは、ANDゲート、ORゲート、NANDゲート、NORゲートおよびEX−ORゲートなどのことであり、機能ブロックと同じく各ゲートの使用状態および接続状態を変更するほか、いくつかのゲートにより構成されるROMの内容の書き換えやPLAやマルチプレクサによる切り替えを行うことにより回路構成が変更される。
【0019】
ハードウェア記述言語のキーワードとは、例えば図2に示されるようにNOTゲート41、NORゲート42、3つのNOTゲート43および8つのNANDゲート44で構成される3to8デコーダについて、図3で示されるように記述したときの点線部分45や46などの記述内容に相当し、これらの記述内容を書き換えることにより回路構成が変更される。
【0020】
なお、回路に設けられている各再構成可能素子が機能ブロック、回路構成情報ビット、論理ゲートおよびハードウェア記述言語のキーワードのいずれか一種類にのみ対応していても、機能ブロック、回路構成情報ビット、論理ゲートもしくはハードウェア記述言語のキーワードに任意に対応していてもよい。
【0021】
ところで、このシステムでは再構成可能素子の構成に応じて演算・制御処理部6−1,6−2に形成される様々な回路を識別するために以下に示す染色体データが用いられる。
【0022】
染色体データは、演算・制御処理部6−1,6−2の回路の機能変更の最小単位に対応したビット列によって示されるデータであり、この染色体データだけで例えば回路に設けられている再構成可能素子の種類および数、各再構成可能素子の使用状態および接続状態のように回路構成の変更に必要な情報を判断できるようにしておく。
【0023】
また、染色体データは演算・制御処理部6−1,6−2の各回路に設けられている再構成可能素子、すなわち機能ブロック、回路構成情報ビット、論理ゲートもしくはハードウェア記述言語のキーワードに対応させて記述されている。従って、演算・制御処理部6−1,6−2の回路の機能変更の最小単位は、機能ブロックレベル、回路構成情報ビットレベル、論理ゲートレベルもしくはハードウェア記述言語のキーワードレベルのいずれかになる。
【0024】
図4は、このような染色体データの例を示したものである。ここでは、回路31と回路32は同種および同数の機能ブロックを備えており、回路31は染色体データが”1101101”と示され、Nビットの入力信号A,Bに基づいて、C=A×B−1という演算を行った後、2Nビットの出力信号Cを出力する機能を有し、回路32は染色体データが”1101110”と示され、Nビットの入力信号A,Bに基づいて、C=A×Bという演算を行った後、2Nビットの出力信号Cを出力する機能を有していることを考える。
【0025】
この場合、後述する遺伝的処理によって、回路31の染色体データを”1101101”から”1101110”に変化させれば、回路31は回路32と同様機能を実現するように回路構成、この場合は複数の機能ブロックの使用状態および接続状態を変更する。また、ある回路の染色体データが”1101101”と示されていれば、その回路は回路31と同一構造で同一機能を有していると判断でき、同様に染色体データが”1101110”と示されていれば、回路32と同一構造で同一機能を持っていると判断することができる。
【0026】
以下、このシステムの動作について通常運転時と回路の再構成時とに分けて説明する。
通常運転時には、主に演算・制御装置5のみを動作させて演算・制御対象9に対する処理を行う。具体的には、入力制御回路7に実行命令信号およびフィードバック信号が入力され、入力制御回路7はこれらの実行命令信号およびフィードバック信号を演算・制御処理部6−1もしくは6−2のうち有効状態に設定されている一方に信号線22−1,23−1もしくは信号線22−2,23−2を介して出力する。なお、演算・制御処理部6−1,6−2の有効/無効に応じて、予め入力制御回路7に接続された二組の信号線22−1,23−1もしくは信号線22−2,23−2のいずれか一組を有効に切り替えておく。
【0027】
演算・制御処理部6−1,6−2のうちで有効状態のものは、入力制御回路7から入力される実行命令信号およびフィードバック信号に基づいて演算・制御信号を生成し、生成した演算・制御信号を信号線24−1,24−2を介して制御回路8に出力する。
【0028】
出力制御回路8は、有効状態の演算・制御処理部6−1,6−2から入力される演算・制御信号に基づいて、演算・制御対象9の処理を行う。演算・制御対象9は、その結果に応じたフィードバック信号を入力制御回路7に出力する。なお、演算・制御処理部6−1,6−2の有効/無効状態に対応させて、出力制御回路8の信号線24−1もしくは24−2のいずれか一方を有効に切り替えておく。
【0029】
ところで、後述するように通常運転中に適応度評価部2を動作させることにより、有効状態の演算・制御処理部6−1,6−2の評価値を常時求めるようしておき、有効状態の演算・制御処理部6−1,6−2では環境に適応できなくなったとき、システムが自律的に回路の再構成を開始するようにしておくことが望ましい。
【0030】
次に、演算・制御処理部6−1,6−2の回路の再構成を行う場合について説明する。本システムでは、演算・制御処理部6−1,6−2上に構成すべき回路、すなわち環境に対する適応度の高い回路を求めるために、染色体データに着目して回路のシミュレーションを行い、最適なシミュレーション結果が得られた染色体データから逆に実際の実際の演算・制御処理部6−1,6−2の回路を再構成する。
【0031】
具体的には、図5のフローチャートに示されるように、まず回路生成部1において演算・制御処理部6−1,6−2上に構成すべき回路を複数生成し、各回路に対応する複数の染色体データを染色体データの初期集団として設定する(ステップS1)。この場合、回路生成部1では上述した機能ブロックレベル、回路構成情報ビットレベル、論理ゲートレベルもしくはハードウェア記述言語のキーワードレベルのいずれかを最小変更単位として、生成する回路を変更するようにしている。
【0032】
ただし、上述したように染色体データは機能ブロックレベル、回路構成情報ビットレベル、論理ゲートレベルもしくはハードウェア記述言語のキーワードレベルに対応して記述されているため、実際には回路生成部1は予め保持されていた有効状態の演算・制御処理部6−1,6−2の回路を示す染色体データのビット列を適当な乱数発生処理によって変化させることによってn個の染色体データを直接生成し、これらn個の染色体データをn種類の回路に対応する染色体データの初期集団としている。
【0033】
回路生成部1で生成されたn個の染色体データは、信号線10−1〜10−nを介して適応度評価部2および進化的処理部3にそれぞれ出力される。
次に、適応度評価部2は回路生成部1から入力されたn個の染色体データに対応するn種類の回路の適応度をそれぞれ評価してn個の評価値を求める(ステップS2)。
【0034】
このとき、適応度評価部2は回路生成部1から入力された染色体データによって示される回路が演算・制御処理部6−1,6−2上に構成されたときの各回路の環境に対する適応度、言い替えれば回路生成部1によって生成された回路が演算・制御処理部6−1,6−2の回路としてどの程度環境に適応した処理を実行し得るかを評価している。
【0035】
そのため、適応度評価部2には演算・制御処理部6−1,6−2に設けられた再構成可能素子に対応するモデル(以下、素子モデル)および演算・制御対象9に対応するモデル(以下、対象モデル)が予め定義されており、各素子モデルによって染色体データに対応する回路モデルを作成し、この回路モデルと対象モデルを用いたときのシミュレーションを行って、そのシミュレーション結果を評価値として出力している。
【0036】
このシミュレーションを実行するために、適応度評価部2には演算・制御装置5に入力された実行命令信号、その実行命令信号に基づいて有効状態の演算・制御処理部6−1,6−2の処理を介して実際に演算・制御装置5で求められた演算・制御信号、演算制御対象9から出力される評価用信号および環境変化信号が入力されている。なお、評価用信号はフィードバック信号に含まれるものであり、演算・制御対象9の状態をモニタするために用いられる。また、環境変化信号も同様にフィードバック信号に含まれるものであり、環境変化による外乱などに対応している。
【0037】
適応度評価部2は、このようなシミュレーションによって得られたn個の評価値を対応するn個の染色体データと共に、信号線12−1〜12−nを介して進化的処理部3に出力する。
【0038】
さらに、適応度評価部2は最も良い評価値が得られた染色体データをその最大評価値と共に信号線13を介して回路生成部1に出力し、有効状態の演算・制御処理部6−1,6−2の回路よりも環境に適応した回路、つまり進化した回路が得られたことを示す信号を信号線14を介して再構成処理部4に出力する。
【0039】
この適応度評価部2において、有効状態の演算・制御処理部6−1,6−2の評価値も同時に求めるようにしておき、シミュレーションで得られた最大評価値が有効状態の演算・制御6−1,6−2の回路の評価値を上回ったときのみ、回路生成部1および再構成処理部4に上述した各信号を出力させるようにしてもよい。
【0040】
さらに、適応度評価部2をシステムの通常運転中も動作させることにより、有効状態の演算・制御処理部6−1,6−2の評価値を常時求めるようにしておき、この評価値が適当な基準値を下回ったとき、演算・制御処理部6−1,6−2が環境に対応できなくなった、つまり初期性能が維持できなくなったものと判断して、システムが自動的に回路の再構成処理を開始させるようにしておくことが望ましい。
【0041】
一方、回路生成部1は適応度評価部2から入力された最大評価値の染色体データを次世代の演算・制御処理部6−1,6−2の回路の候補となる染色体データとして、その時点で保存している染色体データに換えて保存し(ステップS3)、さらにその染色体データによって示される回路が十分に進化を遂げたか否かを判断するために、染色体データと共に適応度評価部2から送られてきた最大評価値を予め設定された基準値と比較する(ステップS4)。
【0042】
回路生成部1で比較を行った結果、最大評価値が基準値よりも小さかった場合(ステップS4でNo)、回路が十分な進化を遂げなかったものとして、進化的処理部3により各染色体データに対して以下に述べるような遺伝的処理を施し(ステップS5)、適応度評価部2で引き続きシミュレーションを行うための新しい染色体データの集団を設定する(ステップS6)。
【0043】
図6は、進化的処理部3による遺伝的処理を具体的に説明するための図である。ここでは、遺伝的処理を施すべき染色体データとして、ブロック61に示されるようにデータ総数n=4の染色体データ41〜44が入力されたことを考える。
【0044】
進化的処理部3における遺伝的処理は、以下に述べるような遺伝的アルゴリズムに従って実行される。まず、染色体データ41〜44のうちの任意の染色体データを選択し、選択されなかった染色体データを取り除いて淘汰する選択淘汰処理が行われる。このとき、初期状態の染色体データ41〜44のデータ総数n=4を保つために、選択された染色体データを増殖させ、増殖した分の染色体データが取り除かれるようにする。例えば、ブロック61からブロック62へ至る選択淘汰処理では、染色体データ41が選択されると共に、染色体データ44が淘汰されて、ブロック62では染色体データ41と同じビット列のデータが新しい染色体データ44として設定されている。
【0045】
選択および淘汰の基準値としては、各染色体データ41〜44の評価値が用いられており、例えば評価値が高いものほど選択される確率が高くなり、逆に評価値の低いものほど淘汰され易くなる確率的処理などによって染色体データ41〜44の選択・淘汰が実行される。
【0046】
次に、任意の二つの染色体データ41〜44の間で相互に任意部分のビット列を交換する交叉処理が行われる。例えば、ブロック62からブロック63へ至る交叉処理では、染色体データ41と染色体データ42との間でビット列45とビット列46とが交換され、さらに染色体データ43と染色体データ44との間でビット列47とビット列48とが交換されている。
【0047】
さらに、任意の染色体データ41〜44の任意のビット列を反転させる突然変異処理が行われる。例えば、ブロック63からブロック64へ至る突然変異処理では、染色体データ44のビット列49が反転されている。
【0048】
以上のような選択淘汰処理、交叉処理および突然変異処理を予め設定された終了条件を満す染色体データ41〜44が得られるまで繰り返し、最終的に得られた染色体データ41〜44を最終世代、すなわち適応度評価部2で次のシミュレーションを行うための染色体データの新しい集団として設定する。
【0049】
このように染色体データのビット列そのものを変更すると、変更後の染色体データでは演算・制御処理部6−1,6−2の回路として意味をなさない場合が生じる。従って、上述した終了条件には少なくとも染色体データ41〜44が演算・制御処理部6−1,6−2の回路として意味をなすか否かを条件として含ませつ必要があり、最低でも適応度評価部2でシミュレーションを行うことができる回路を示す染色体データ41〜44が得られるまで遺伝的処理を繰り返す。また、選択淘汰処理、交叉処理および突然変異処理は上の説明のように順番に一つづつ繰り返す必要はなく、各処理の順番および回数は任意に定めることができる。
【0050】
図7は、この遺伝的処理によって染色体データを変更したときの演算・制御処理部の回路構成の変化を示したものである。なお、A,Bは入力信号、Cは出力信号を表している。
【0051】
例えば、6つの機能ブロックa〜fが配置されている演算・制御処理部6−1もしくは6−2の回路51について、遺伝的処理を行う前(進化前)には各機能ブロックa〜fがどれも接続されていない状態とする。このとき、遺伝的処理によって回路51の染色体データを変更することによって、回路52や53のように各機能ブロックa〜fの使用状態や接続状態が変更されることになる。この場合、染色体データのビット列そのものを変更しているため、回路52の機能ブロックa,cや回路53の機能ブロックbのように、他の機能ブロックに接続されているだけで回路全体の処理には影響がない部分が生じることもある。そして、このような遺伝的処理が繰り返されて、回路54や55のように、最終世代の機能ブロックa〜fの使用状態および接続状態が決定される。
【0052】
説明を戻すと、進化的処理部3は上述した遺伝的処理によって得られた各染色体データを信号線17−1〜17−nを介して回路生成部1に出力する。回路生成部1は、進化的処理部3から入力された染色体データを信号線10−1〜10−nを介して適応度評価部2に送って、これら新しい染色体データに基づいて適応度評価部2において引き続きシミュレーションが行われるようにする。
【0053】
以上のようなステップS2〜S6の処理、すなわち適応度評価部2における各染色体データに対応する回路の評価値算出、回路生成部1における最大評価値と基準値との比較、そして進化的処理部3における染色体データへの遺伝的処理を回路生成部1、適応度評価部2および進化的処理部3を並列に有効させながら繰り返す。
【0054】
そして、適応度評価部2のシミュレーションで得られた染色体データの最大評価値が回路生成部1で設定されている基準値より大きくなったとき(ステップS4でYes)、その染色体データによって示される回路が十分に進化を遂げたものとみなして、実際に演算・制御処理部6−1,6−2の回路の再構成を行う(ステップS7)。
【0055】
このとき、無効状態の演算・制御処理部6−1,6−2を対象として回路の再構成を行い、その再構成が完了した後で演算・制御処理部6−1,6−2の有効/無効を互いに切り替えることによって、それまで有効状態であった演算・制御処理部6−1,6−2に代わり再構成された演算・制御処理部6−1,6−2の動作を開始させるようにする(ステップS8)。
【0056】
この場合、まず回路生成部1は最大評価値が基準値より大きくなった染色体データを実際に回路構成を変化させるための回路構成情報ビット形式に従った回路構成情報へと変換し、得られた回路構成情報を信号線11を介して再構成処理部4に出力する。
【0057】
再構成処理部4は、回路生成部1から入力された回路構成情報を無効状態の演算・制御処理部6−1,6−2に信号線18−1,18−1を介して出力すると共に、そのほかに回路の再構成に必要とされる再構成制御信号を生成して、同じく無効状態の演算・制御処理部6−1,6−2に向けて信号線19−1,19−2を介して出力する。
【0058】
無効状態の演算・制御処理部6−1,6−2は、再構成処理部4から入力された回路構成情報および再構成制御情報に基づいて、自らの再構成可能素子の使用状態および接続状態などを変更して回路を再構成する。
【0059】
無効状態の演算・制御処理部6−1,6−2の回路の再構成が完了すると、再構成処理部4は再構成された演算・制御処理部6−1,6−2を有効状態に切り替えると共に、それまで有効状態であった演算・制御処理部6−1,6−2を無効状態に切り替える。さらに、再構成処理部4は入力制御信号および出力制御信号を信号線20および21を介して入力制御回路7および出力制御回路8にそれぞれ出力し、入力制御回路7の信号線22−1,22−2および信号線23−1,23−2、出力制御回路8の信号線24−1,24−2の有効/無効の切り替えを行う。
【0060】
この結果、回路が再構成された演算・制御処理部6−1,6−2が、それまで有効状態であった演算・制御処理部6−1,6−2に代わって演算・制御対象9に対する処理を実行し始める。
【0061】
以上述べたように、本実施形態のシステムでは、回路を再構成することができる演算・制御処理部6−1,6−2を演算・制御装置5に設けて、演算・制御装置5をより環境に適応させる必要が生じた場合、回路生成部1で演算・制御処理部6−1,6−2上に構成すべき回路を生成し、この回路の構成を示す染色体データに着目して、適応度評価部2で染色体データによって示される回路が演算・制御処理部6−1,6−2上に構成されたときのシミュレーションを行って回路の環境に対する適応度を評価し、この評価結果に基づいて進化的処理部3で染色体データに対する遺伝的処理を行うことで、回路生成部1で生成された回路を変更して進化させる処理を行い、この結果として進化を遂げた回路の構成を示す染色体データに基づいて再構成処理部4によって演算・制御処理部6−1,6−2の回路を再構成する。
【0062】
このようにすることで、動作中の演算・制御装置5では環境に適応しきれなくなったり、初期性能が維持できなくなった場合でも、演算・制御処理部6−1,6−2の回路がその環境に適応するように再構成される。つまり、演算・制御装置5は、環境の変化に応じて自律的にハードウェア構成を変更させる自律進化機能を有することになるため、従来のようにシステムの機能変更のために人手や時間をかける必要がなくなる。しかも、演算・制御処理部6−1,6−2の回路構成、すなわち演算・制御装置5のハードウェア構成を直接変更するので、ソフトウェアの変更では対応できない大きな環境変化にも対応でき、実行速度も高速のままに保つことができる。
【0063】
演算・制御処理部6−1,6−2を二重化し、さらにいずれか一方のみを有効にして演算・制御対象9に対する処理を行わせ、演算・制御処理部6−1,6−2の回路を再構成するときは、有効状態の演算・制御処理部6−1,6−2の動作はそのままで、無効状態の演算・制御処理部6−1,6−2を対象として回路を再構成し、再構成が完了した後で互いの有効/無効を切り替えるようにしているので、演算・制御処理部6−1,6−2の回路の再構成のために、演算・制御装置5の処理を停止させる必要がない。
【0064】
染色体データは、演算・制御処理部6−1,6−2の回路の機能変更の最小単位に対応させたビット列によって記述され、進化的処理部3において回路の変更を行うときは、選択淘汰処理、交叉処理もしくは突然変異処理などの遺伝的処理によって、染色体データのビット列そのものを変更しているので、演算・制御処理部6−1,6−2において実現し得る様々な回路についてシミュレーションを行うことが可能となり、環境の変化に対して柔軟に対応することができる。
【0065】
次に、上述したシステムを画像認識装置に適用した例について図8を参照して説明する。
この画像認識装置は、画像認識部71、認識率評価部72およびフィルタ構成変更部73からなり、画像認識部71はフィルタリング部74とマッチング部75とを備えている。この画像認識装置と図1に示したシステムとの関係を考えると、画像認識部71が演算・制御装置5に対応し、フィルタリング部74が演算・制御処理部6−1,6−2に対応している。また、認識率評価部72が適応度評価部2に対応し、フィルタ構成変更部73が回路生成部1、進化的処理部3および再構成処理部4に対応している。さらに、画像信号が演算・制御対象9に対応し、画像信号に基づいた演算処理が行われる。この場合、フィルタリング部74に再構成可能素子で構成される回路を設けておくことにより、例えばフィルタの次数や帯域分割幅などのフィルタ構成を変更できるようにしておく。
【0066】
画像認識部71に画像信号が入力された場合、この画像信号に対してフィルタリング部74でフィルタリング処理を施すことにより、例えばエッジ強調、画像の先鋭化および雑音除去などを行って特徴を抽出し、抽出された特徴に基づいてマッチング部75で所定の認識対象とのマッチングを行うことにより認識結果が出力される。
【0067】
この認識結果は、認識率評価部に入力されており、例えば文字、図形、その他の認識対象を変更して認識率が低下した場合など、これら認識率評価部72およびフィルタ構成変更部73によってフィルタリング部74の新しいフィルタ構成についてシミュレーションを行い、その結果に基づいてフィルタリング部74のフィルタ構成の変更を行う。
【0068】
このようにすることで、認識対象の変化に応じてフィルタリング部74の構成が変更され、画像信号に対するフィルタリング処理を常に最適に行うことができるため、高い認識率を維持することが可能になる。さらに、認識対象が未知の場合のように予め最適なフィルタ構成が分からないときは、とりあえず処理を開始するようにして、すぐにシミュレーションを行ってフィルタリング部74のフィルタ構成を変化させれば、自動的にフィルタ構成が最適なものへと変更される。つまり、画像認識装置が未知の認識対象に対して自ら最適なフィルタ構成を学習するようになる。
【0069】
(第2の実施形態)
は、本発明の第2の実施形態にかかるシステムの構成を示すブロック図である。なお、以下では図1と相対応する部分に同一符号を付して第1の実施形態との相違点を中心にして説明を行う。
【0070】
本実施形態は、複数の演算・制御処理部を多重化と並列化とを組み合わせて構成したものである。すなわち、演算・制御装置5にはn個の演算・制御処理部6−1〜6−nが設けられており(多重化)、通常運転時はこれら全ての演算・制御処理部6−1〜6−nを動作させる(並列化)。このとき、出力制御回路8は例えば演算・制御処理部6−1〜6−nの出力信号24−1〜24−n重み和を演算・制御信号として出力する。また、後述するようにこのシステムでは回路の再構成のために演算・制御処理部6−1〜6−nの一部を一時停止させる必要があるため、このような場合でもシステムが停止したりエラーが起こらないように構成しておく。
【0071】
ここで、第1の実施形態と同様に演算・制御処理部6−1〜6−nの各回路に同種および同数の再構成可能素子が設けられていても、各回路に各々異なる再構成可能素子が設けられていてもよい。後者の場合、適応度評価部2には演算処理部6−1〜6−nの回路に設けられている全ての再構成可能素子に対応する素子モデルを定義しておく。
【0072】
このシステムでは、回路の再構成を行う場合、全ての演算・制御処理部6−1〜6−nを動作させたままでシミュレーションを行い、そのシミュレーション結果に応じて回路を再構成すべき演算・制御処理部を選択する。そして、選択された演算・制御処理部のみを一時的に停止状態にして、それ以外の演算・制御処理部は引き続き動作させたままで、選択された演算・制御処理部の回路の再構成を行い、再構成が完了した後で動作中の他の演算・制御処理部と同期するように動作を再開させる。
【0073】
このようにすることで、複数の演算・制御処理部6−1〜6−nの回路を同時に再構成することができ、しかも各回路は各々異なった構成、すなわち各々異なった機能に変更することができるので、第1の実施形態よりも演算・制御装置5のハードウェア構成が柔軟に変更され、環境の変化により適切に対応することが可能となる。また、必要最小限の演算・制御処理部6−1〜6−nの回路を再構成するだけで十分な効果を得ることができる。
【0074】
【発明の効果】
以上説明したように本発明によれば、演算・制御手段上に構成される回路の環境に対する適応度を評価し、その評価結果に基づいて演算・制御手段の回路を再構成することにより、システムのハードウェア構成が環境の変化に応じて自律的に変更される。
【0075】
このとき、演算・制御手段上に構成すべき回路を生成し、この回路が演算・制御手段上に構成されたときの環境に対する適応度を評価して、この評価結果に基づいて回路を変更して進化させる処理を行い、この結果進化を遂げた回路が演算・制御手段に再構成されるようにしているので、環境の変化に対して柔軟かつ適切に対応することができる。
【0076】
演算・制御手段を多重化し、再構成処理手段により演算・制御手段の処理を停止させることなく、回路が再構成されるので、演算・制御対象に対する処理を続けたままで環境に対する適応度のみを向上させることができる。
【0077】
回路生成手段において複数の回路を生成し、適応度評価手段において複数の回路をそれぞれ評価し、進化的処理手段において複数の回路の各評価結果に基づいて遺伝的アルゴリズムによって複数の回路を変更しているので、実現し得る様々な回路を解析することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係るシステムの構成を示すブロック図
【図2】同実施形態におけるハードウェア構成の記述言語のキーワードについて説明するための図
【図3】同実施形態におけるハードウェア構成の記述言語のキーワードについて説明するための図
【図4】同実施形態における染色体データについて説明するための図
【図5】同実施形態における回路の再構成処理について説明するためのフローチャート
【図6】同実施形態における遺伝的処理について説明するための図
【図7】同実施形態における染色体データの変更による回路構成の変更の例を示す図
【図8】同実施形態を画像認識装置に適用した例を示すブロック図
【図9】本発明の第2の実施形態に係るシステムの構成を示すブロック図
【図10】従来のシステムの例を示す図
【符号の説明】
1…回路生成部
2…適応度評価部
3…進化的処理部
4…再構成処理部
5…演算・制御装置
6−1〜6−n…演算・制御処理部
7…入力制御装置
8…出力制御装置
9…演算・制御対象
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a system that performs calculation and control by combining various types of hardware, and more particularly to an autonomous evolution system that autonomously changes a hardware configuration in response to environmental changes.
[0002]
[Prior art]
Conventionally, in a system that performs calculation and control by combining various hardware such as selectors, counters, adders, and multipliers, the hardware and hardware are designed to predict and adapt to the future environment in the design stage. Defines the software configuration. FIG. 10 shows such a conventional system. The arithmetic / control device 101 performs processing on the arithmetic / control target 102 based on the execution command signal and the feedback signal, and the arithmetic / control target 102 responds to the processing result. By returning the feedback signal, the influence of disturbance or the like is compensated within the range predicted in advance.
[0003]
[Problems to be solved by the invention]
In the conventional system, when an unpredictable situation occurs due to environmental changes, there are problems that it is difficult to maintain the initial performance of the system, or that the system goes down or malfunctions.
[0004]
As a countermeasure, system software and hardware have been changed in response to changes in the environment. Traditionally, however, software changes have mainly been dealt with, and a situation unforeseen at the design stage has occurred. The method of changing the hardware when it became impossible to cope with was taken. However, in order to change the software or hardware, in any case, stop the system once to elucidate the cause, change the software or hardware based on the result, and then start the system again. There is a problem that it takes manpower and time because it is necessary.
[0005]
In addition, when the hardware cannot be changed directly as in a system connected via a network, a method of changing only the software by communication can be considered, but this method requires a great deal of time until the system is restarted. Time is needed.
[0006]
Furthermore, although it is conceivable to change the software autonomously by a genetic algorithm, there are problems that the change of the software alone cannot cope with the change of the environment or the execution speed becomes slow.
[0007]
The present invention has been made to solve such problems, and an object of the present invention is to provide an autonomous evolution system that autonomously changes the hardware configuration in response to environmental changes.
[0008]
[Means for Solving the Problems]
In order to solve the above-described problems, the present invention has a circuit configured to be reconfigurable, and includes an arithmetic / control unit that performs at least one of arithmetic / control processing on the arithmetic / control target, and the arithmetic / control unit. Means for evaluating the adaptability of the constructed circuit to the environment and means for reconfiguring the circuit of the calculation / control means based on the evaluation result are provided.
[0009]
In more detail, the autonomous evolution system of the present invention has a circuit configured to be reconfigurable, an arithmetic / control means for performing at least one of arithmetic / control processing of an arithmetic / control target, and the arithmetic / control A circuit generating means for generating a circuit to be configured on the means and outputting circuit configuration information indicating the circuit configuration; and a circuit when the circuit generated by the circuit generating means is configured on the arithmetic / control means. The fitness evaluation means for evaluating the fitness for the environment, the evolution processing means for performing the evolution process by changing the circuit generated by the circuit generation means based on the evaluation result of the fitness evaluation means, and this evolution Reconfiguration processing means for receiving from the circuit generation means circuit configuration information indicating the circuit configuration evolved by the general processing means and reconfiguring the circuit of the arithmetic / control means based on the circuit configuration information. Those were.
[0010]
Here, it is desirable to multiplex the arithmetic / control means and reconfigure the circuit without stopping the processing of the arithmetic / control means by the reconfiguration processing means.
Further, it is desirable that the circuit generation means change the circuit to be generated with the function block level, the circuit configuration information bit level, the logic gate level, or the keyword level of the hardware description language as a minimum change unit.
[0011]
Furthermore, the circuit generation unit generates a plurality of circuits, the fitness evaluation unit evaluates each of the plurality of circuits, and the evolutionary processing unit changes the plurality of circuits by a genetic algorithm based on each evaluation result of the plurality of circuits. It is desirable to find a circuit that has evolved.
[0012]
At this time, when the plurality of circuits are described by the plurality of chromosome information composed of bit strings corresponding to the function change units in the circuit generation means, and the plurality of circuits are changed by the genetic algorithm in the evolutionary processing means, the plurality of chromosome information A first process for selecting any of the chromosome information and removing the unselected chromosome information; a second process for exchanging an arbitrary part of the bit string between the plurality of chromosome information; and a plurality of bit information of the chromosome information It is further desirable to perform in combination with the third process for inverting the arbitrary portion.
[0013]
DETAILED DESCRIPTION OF THE INVENTION
(First embodiment)
FIG. 1 is a block diagram showing a configuration of a system according to the first embodiment of the present invention. This system includes an arithmetic / control device 5 that controls arithmetic or control processing on an arithmetic / control target 9, a circuit generation unit 1 for changing the hardware configuration of the arithmetic / control device 5, an fitness evaluation unit 2, an evolution The processing unit 3 and the reconstruction processing unit 4 are configured.
[0014]
The arithmetic / control device 5 includes arithmetic / control processing units 6-1 and 6-2, an input control circuit 7 and an output control circuit 8. The arithmetic / control processing units 6-1 and 6-2 have circuits configured to be reconfigurable. Each circuit of the arithmetic / control processing units 6-1 and 6-2 is provided with a plurality of reconfigurable elements corresponding to the function change. Depending on the use state and connection state of the plurality of reconfigurable elements, etc. The function of the circuit is determined.
[0015]
Here, the arithmetic / control processing units 6-1 and 6-2 are duplicated, and the same kind and the same number of reconfigurable elements are provided, and the circuits that can be realized in each are configured to be the same. Yes. At this time, even if all of the hardware of the arithmetic / control processing units 6-1 and 6-2 are duplicated, only a reconfigurable region, that is, a circuit part constituted by a reconfigurable element may be duplicated. If at least the reconfigurable elements have the same configuration between the arithmetic / control processing units 6-1 and 6-2, a circuit having the same configuration and the same function is obtained. In the present embodiment, only one of the calculation / control processing units 6-1 and 6-2 is set to the valid state, and the process for the calculation / control target 9 is performed.
[0016]
The reconfigurable element is actually set corresponding to a functional block of a circuit, a circuit configuration information bit, a logic gate, or a keyword of a hardware description language. Functional blocks are selectors, counters, adders, multipliers, and the like, and the circuit configuration is changed by changing the use state and connection state of each functional block.
[0017]
The circuit configuration information bits are configuration bits of PLD (Programmable Logic Device) and FPGA (Field Programmable Gate Array), and the circuit configuration is changed by directly changing the configuration bits.
[0018]
Logic gates are AND gates, OR gates, NAND gates, NOR gates, EX-OR gates, etc., and change the use state and connection state of each gate in the same way as functional blocks, and are composed of several gates. The circuit configuration is changed by rewriting the contents of the ROM to be read and switching by PLA or multiplexer.
[0019]
The keyword of the hardware description language is, for example, as shown in FIG. 3 for a 3to8 decoder including NOT gate 41, NOR gate 42, three NOT gates 43, and eight NAND gates 44 as shown in FIG. This corresponds to the description contents of the dotted line portions 45 and 46, etc., and the circuit configuration is changed by rewriting these description contents.
[0020]
Note that even if each reconfigurable element provided in the circuit supports only one of the functional block, circuit configuration information bit, logic gate, and hardware description language keyword, the functional block and circuit configuration information Bits, logic gates, or hardware description language keywords may be arbitrarily supported.
[0021]
By the way, in this system, the following chromosomal data is used to identify various circuits formed in the arithmetic / control processing units 6-1 and 6-2 according to the configuration of the reconfigurable element.
[0022]
Chromosome data is data indicated by a bit string corresponding to the minimum unit of function change of the circuit of the arithmetic / control processing units 6-1 and 6-2, and can be reconfigured, for example, provided in the circuit only by this chromosome data. Information necessary for changing the circuit configuration, such as the type and number of elements, the use state and connection state of each reconfigurable element, can be determined.
[0023]
Chromosome data corresponds to reconfigurable elements provided in each circuit of the arithmetic / control processing units 6-1 and 6-2, that is, functional blocks, circuit configuration information bits, logic gates, or keywords of hardware description languages. Is described. Therefore, the minimum unit of function change of the circuits of the arithmetic / control processing units 6-1 and 6-2 is any one of the function block level, the circuit configuration information bit level, the logic gate level, or the keyword level of the hardware description language. .
[0024]
FIG. 4 shows an example of such chromosome data. Here, the circuit 31 and the circuit 32 have the same type and the same number of functional blocks, and the circuit 31 has the chromosome data “1101101”, and C = A × B based on the N-bit input signals A and B. The circuit 32 has a function of outputting a 2N-bit output signal C after performing an operation of −1, and the circuit 32 indicates that the chromosome data is “1101110”. Based on the N-bit input signals A and B, C = Ax B and It is assumed that a 2N-bit output signal C is output after performing this operation.
[0025]
In this case, if the chromosome data of the circuit 31 is changed from “1101101” to “1101110” by genetic processing described later, the circuit 31 has a circuit configuration so as to realize the same function as the circuit 32. Change the usage status and connection status of the function block. If the chromosome data of a certain circuit is indicated as “1101101”, it can be determined that the circuit has the same structure and the same function as the circuit 31, and the chromosome data is indicated as “1101110”. Thus, it can be determined that the circuit 32 has the same structure and the same function.
[0026]
Hereinafter, the operation of this system will be described separately for normal operation and circuit reconfiguration.
During normal operation, only the arithmetic / control device 5 is operated to perform processing on the arithmetic / control target 9. Specifically, an execution command signal and a feedback signal are input to the input control circuit 7, and the input control circuit 7 outputs the execution command signal and the feedback signal to a valid state in the arithmetic / control processing unit 6-1 or 6-2. Is output to the other set via the signal lines 22-1 and 23-1 or the signal lines 22-2 and 23-2. Depending on the validity / invalidity of the arithmetic / control processing units 6-1 and 6-2, two sets of signal lines 22-1 and 23-1 or signal lines 22-2, which are connected to the input control circuit 7 in advance. Any one set of 23-2 is switched effectively.
[0027]
Among the arithmetic / control processing units 6-1 and 6-2, those in the valid state generate arithmetic / control signals based on the execution command signal and feedback signal input from the input control circuit 7, The control signal is output to the control circuit 8 through the signal lines 24-1 and 24-2.
[0028]
The output control circuit 8 performs processing of the calculation / control target 9 based on the calculation / control signals input from the calculation / control processing units 6-1 and 6-2 in the valid state. The calculation / control target 9 outputs a feedback signal corresponding to the result to the input control circuit 7. Note that either one of the signal lines 24-1 and 24-2 of the output control circuit 8 is switched to be valid in accordance with the valid / invalid state of the arithmetic / control processing units 6-1 and 6-2.
[0029]
By the way, as described later, by operating the fitness evaluation unit 2 during normal operation, the evaluation values of the calculation / control processing units 6-1 and 6-2 in the valid state are always obtained, It is desirable that the arithmetic / control processing units 6-1 and 6-2 start the circuit reconfiguration autonomously when it becomes impossible to adapt to the environment.
[0030]
Next, a case where the circuits of the arithmetic / control processing units 6-1 and 6-2 are reconfigured will be described. In this system, in order to obtain a circuit to be configured on the arithmetic / control processing units 6-1 and 6-2, that is, a circuit having high adaptability to the environment, a circuit simulation is performed by paying attention to chromosome data, and the optimum On the contrary, the circuits of the actual actual calculation / control processing units 6-1 and 6-2 are reconfigured from the chromosome data obtained from the simulation result.
[0031]
Specifically, as shown in the flowchart of FIG. 5, first, the circuit generation unit 1 generates a plurality of circuits to be configured on the arithmetic / control processing units 6-1 and 6-2, and a plurality of circuits corresponding to the respective circuits. Are set as an initial population of chromosome data (step S1). In this case, the circuit generation unit 1 changes the circuit to be generated with the function block level, the circuit configuration information bit level, the logic gate level, or the keyword level of the hardware description language as the minimum change unit. .
[0032]
However, as described above, since the chromosome data is described corresponding to the functional block level, the circuit configuration information bit level, the logic gate level, or the keyword level of the hardware description language, the circuit generation unit 1 actually holds in advance. The n pieces of chromosome data are directly generated by changing the bit sequence of the chromosome data indicating the circuit of the arithmetic / control processing units 6-1 and 6-2 in the valid state by appropriate random number generation processing. Is an initial population of chromosome data corresponding to n types of circuits.
[0033]
The n pieces of chromosome data generated by the circuit generation unit 1 are output to the fitness evaluation unit 2 and the evolution processing unit 3 via signal lines 10-1 to 10-n, respectively.
Next, the fitness evaluation unit 2 evaluates the fitness of the n types of circuits corresponding to the n chromosome data input from the circuit generation unit 1 to obtain n evaluation values (step S2).
[0034]
At this time, the fitness evaluation unit 2 is adapted to the environment of each circuit when the circuit indicated by the chromosome data input from the circuit generation unit 1 is configured on the arithmetic / control processing units 6-1 and 6-2. In other words, it is evaluated to what extent the circuit generated by the circuit generation unit 1 can execute processing suitable for the environment as the circuit of the arithmetic / control processing units 6-1 and 6-2.
[0035]
Therefore, the fitness evaluation unit 2 includes models corresponding to reconfigurable elements provided in the calculation / control processing units 6-1 and 6-2 (hereinafter referred to as element models) and models corresponding to the calculation / control target 9 ( Hereafter, the target model) is defined in advance, a circuit model corresponding to the chromosome data is created by each element model, a simulation is performed using this circuit model and the target model, and the simulation result is used as an evaluation value. Output.
[0036]
In order to execute this simulation, the fitness evaluation unit 2 executes the execution command signal input to the calculation / control device 5, and the calculation / control processing units 6-1 and 6-2 in the valid state based on the execution command signal. The calculation / control signal actually obtained by the calculation / control device 5 through the above process, the evaluation signal output from the calculation control target 9 and the environment change signal are input. The evaluation signal is included in the feedback signal, and is used to monitor the state of the calculation / control target 9. Similarly, the environment change signal is also included in the feedback signal, and corresponds to a disturbance caused by an environment change.
[0037]
The fitness evaluation unit 2 outputs the n evaluation values obtained by such a simulation to the evolutionary processing unit 3 through the signal lines 12-1 to 12-n together with the corresponding n chromosome data. .
[0038]
Furthermore, the fitness evaluation unit 2 outputs the chromosomal data from which the best evaluation value is obtained to the circuit generation unit 1 through the signal line 13 together with the maximum evaluation value, and the calculation / control processing unit 6-1 in the valid state. A signal indicating that a circuit adapted to the environment rather than the circuit 6-2, that is, an evolved circuit, is obtained is output to the reconstruction processing unit 4 via the signal line 14.
[0039]
In this fitness evaluation unit 2, the evaluation values of the calculation / control processing units 6-1 and 6-2 in the valid state are also obtained at the same time, and the maximum evaluation value obtained by the simulation is calculated and controlled in the effective state 6 Only when the evaluation value of the circuit of −1, 6-2 is exceeded, the above-described signals may be output to the circuit generation unit 1 and the reconstruction processing unit 4.
[0040]
Furthermore, by operating the fitness evaluation unit 2 during normal operation of the system, the evaluation values of the computation / control processing units 6-1 and 6-2 in the valid state are always obtained, and this evaluation value is appropriate. When the value falls below a certain reference value, it is determined that the arithmetic / control processing units 6-1 and 6-2 cannot cope with the environment, that is, the initial performance cannot be maintained, and the system automatically restarts the circuit. It is desirable to start the configuration process.
[0041]
On the other hand, the circuit generation unit 1 uses the chromosome data of the maximum evaluation value input from the fitness evaluation unit 2 as chromosome data to be candidates for the circuits of the next generation arithmetic / control processing units 6-1 and 6-2. (Step S3), and further sent from the fitness evaluation unit 2 together with the chromosome data to determine whether or not the circuit indicated by the chromosome data has sufficiently evolved. The obtained maximum evaluation value is compared with a preset reference value (step S4).
[0042]
If the maximum evaluation value is smaller than the reference value as a result of comparison in the circuit generation unit 1 (No in step S4), it is determined that the circuit has not sufficiently evolved. Are subjected to genetic processing as described below (step S5), and the fitness evaluation unit 2 sets a new chromosome data group for subsequent simulation (step S6).
[0043]
FIG. 6 is a diagram for specifically explaining the genetic processing by the evolutionary processing unit 3. Here, it is considered that chromosome data 41 to 44 having a total number of data n = 4 are input as chromosome data to be subjected to genetic processing as shown in block 61.
[0044]
The genetic processing in the evolution processing unit 3 is executed according to a genetic algorithm as described below. First, any chromosome data in the chromosome data 41 to 44 is selected. T Chromosome data selected and not selected T A selection process is performed to remove and enter. At this time, in order to keep the total number n = 4 of the chromosome data 41 to 44 in the initial state, the selected chromosome data T Chromosome data for the proliferated and proliferated portion T To be removed. For example, in the selection selection process from the block 61 to the block 62, the chromosome data 41 is selected and the chromosome data 44 is selected, and in the block 62, data having the same bit string as the chromosome data 41 is set as new chromosome data 44. ing.
[0045]
As reference values for selection and selection, the evaluation values of the chromosome data 41 to 44 are used. For example, the higher the evaluation value, the higher the probability of selection, and the lower the evaluation value, the easier it is to be deceived. The selection and selection of the chromosome data 41 to 44 is executed by the stochastic process.
[0046]
Next, a crossover process is performed in which arbitrary two bit strings are exchanged between two arbitrary chromosome data 41 to 44. For example, in the crossover process from the block 62 to the block 63, the bit string 45 and the bit string 46 are exchanged between the chromosome data 41 and the chromosome data 42, and the bit string 47 and the bit string are further exchanged between the chromosome data 43 and the chromosome data 44. 48 has been exchanged.
[0047]
Further, a mutation process for inverting an arbitrary bit string of arbitrary chromosome data 41 to 44 is performed. For example, in the mutation process from the block 63 to the block 64, the bit string 49 of the chromosome data 44 is inverted.
[0048]
The selection selection process, the crossover process, and the mutation process as described above are repeated until chromosome data 41 to 44 satisfying preset termination conditions are obtained, and finally obtained chromosome data 41 to 44 are used as the final generation, That is, the fitness evaluation unit 2 sets a new group of chromosome data for performing the next simulation.
[0049]
If the chromosome data bit string itself is changed in this way, the changed chromosome data may not make sense as a circuit of the arithmetic / control processing units 6-1 and 6-2. Therefore, it is necessary to include at least whether or not the chromosome data 41 to 44 make sense as a circuit of the arithmetic / control processing units 6-1 and 6-2 in the termination condition described above. The genetic processing is repeated until chromosome data 41 to 44 indicating circuits that can be simulated by the unit 2 are obtained. Further, the selection process, the crossover process, and the mutation process do not have to be repeated one by one as described above, and the order and number of each process can be arbitrarily determined.
[0050]
FIG. 7 shows a change in the circuit configuration of the arithmetic / control processing unit when chromosome data is changed by this genetic processing. A and B represent input signals, and C represents an output signal.
[0051]
For example, regarding the circuit 51 of the arithmetic / control processing unit 6-1 or 6-2 in which six functional blocks a to f are arranged, before the genetic processing is performed (before evolution), each functional block a to f is None of them are connected. At this time, by changing the chromosome data of the circuit 51 by genetic processing, the use states and connection states of the functional blocks a to f are changed as in the circuits 52 and 53. In this case, since the bit string itself of the chromosome data is changed, the entire circuit can be processed only by being connected to other functional blocks such as the functional blocks a and c of the circuit 52 and the functional block b of the circuit 53. In some cases, there is an unaffected part. Then, such genetic processing is repeated, and the use state and connection state of the last generation function blocks a to f are determined as in the circuits 54 and 55.
[0052]
Returning to the description, the evolutionary processing unit 3 outputs each chromosome data obtained by the above-described genetic processing to the circuit generation unit 1 via the signal lines 17-1 to 17-n. The circuit generation unit 1 sends the chromosome data input from the evolutionary processing unit 3 to the fitness evaluation unit 2 via the signal lines 10-1 to 10-n, and the fitness evaluation unit based on these new chromosome data In step 2, the simulation is continued.
[0053]
The processing of steps S2 to S6 as described above, that is, the evaluation value calculation of the circuit corresponding to each chromosome data in the fitness evaluation unit 2, the comparison between the maximum evaluation value and the reference value in the circuit generation unit 1, and the evolution processing unit 3 enables the genetic processing to the chromosome data in the circuit generator 1, fitness evaluation unit 2, and evolutionary processor 3 in parallel. When Repeat while letting.
[0054]
When the maximum evaluation value of the chromosome data obtained by the simulation of the fitness evaluation unit 2 becomes larger than the reference value set in the circuit generation unit 1 (Yes in step S4), the circuit indicated by the chromosome data As a result, the circuits of the arithmetic / control processing units 6-1 and 6-2 are actually reconfigured (step S7).
[0055]
At this time, the circuit is reconfigured for the invalid operation / control processing units 6-1 and 6-2, and after the reconfiguration is completed, the operation / control processing units 6-1 and 6-2 are enabled. By switching between / invalid each other, the operations of the reconfigured arithmetic / control processing units 6-1 and 6-2 are started instead of the arithmetic / control processing units 6-1 and 6-2 that have been in the valid state so far. (Step S8).
[0056]
In this case, first, the circuit generation unit 1 converts the chromosomal data whose maximum evaluation value is larger than the reference value into circuit configuration information according to the circuit configuration information bit format for actually changing the circuit configuration. The circuit configuration information is output to the reconfiguration processing unit 4 via the signal line 11.
[0057]
The reconfiguration processing unit 4 outputs the circuit configuration information input from the circuit generation unit 1 to the computation / control processing units 6-1 and 6-2 in an invalid state via the signal lines 18-1 and 18-1. In addition, a reconfiguration control signal required for circuit reconfiguration is generated, and signal lines 19-1 and 19-2 are connected to the computation / control processing units 6-1 and 6-2 in the invalid state. To output.
[0058]
The calculation / control processing units 6-1 and 6-2 in the invalid state are based on the circuit configuration information and the reconfiguration control information input from the reconfiguration processing unit 4, and the usage states and connection states of their own reconfigurable elements Change the circuit and reconfigure the circuit.
[0059]
When the reconfiguration of the circuits of the invalid operation / control processing units 6-1 and 6-2 is completed, the reconfiguration processing unit 4 puts the reconfigured operation / control processing units 6-1 and 6-2 into an effective state. At the same time, the calculation / control processing units 6-1 and 6-2 that have been in the valid state are switched to the invalid state. Further, the reconstruction processing unit 4 outputs the input control signal and the output control signal to the input control circuit 7 and the output control circuit 8 through the signal lines 20 and 21, respectively, and the signal lines 22-1 and 22 of the input control circuit 7 are output. -2 and signal lines 23-1 and 23-2, and signal lines 24-1 and 24-2 of the output control circuit 8 are switched between valid / invalid.
[0060]
As a result, the arithmetic / control processing units 6-1 and 6-2 whose circuits are reconfigured are replaced with the arithmetic / control processing units 6-1 and 6-2 that have been valid until then, and the arithmetic / control target 9. The processing for is started.
[0061]
As described above, in the system according to the present embodiment, the arithmetic / control processing units 6-1 and 6-2 that can reconfigure the circuit are provided in the arithmetic / control device 5, and the arithmetic / control device 5 is further provided. When it is necessary to adapt to the environment, the circuit generation unit 1 generates a circuit to be configured on the arithmetic / control processing units 6-1 and 6-2, and pays attention to chromosome data indicating the configuration of the circuit. The fitness evaluation unit 2 evaluates the fitness of the circuit with respect to the environment by performing a simulation when the circuit indicated by the chromosome data is configured on the arithmetic / control processing units 6-1 and 6-2. Based on this, the evolutionary processing unit 3 performs genetic processing on the chromosomal data to change and evolve the circuit generated by the circuit generation unit 1, and as a result, shows the configuration of the evolved circuit. Based on chromosome data Reconstructing the circuit of the arithmetic and control unit 6-1, 6-2 by the configuration processing unit 4.
[0062]
In this way, even when the computing / control device 5 in operation cannot be adapted to the environment or the initial performance cannot be maintained, the circuits of the computation / control processing units 6-1 and 6-2 are not affected. Reconfigured to adapt to the environment. In other words, since the arithmetic / control device 5 has an autonomous evolution function that autonomously changes the hardware configuration in response to a change in the environment, it takes time and labor to change the function of the system as in the past. There is no need. In addition, since the circuit configuration of the arithmetic / control processing units 6-1 and 6-2, that is, the hardware configuration of the arithmetic / control device 5 is directly changed, it is possible to cope with a large environmental change that cannot be dealt with by software change, and the execution speed. Can also be kept fast.
[0063]
The arithmetic / control processing units 6-1 and 6-2 are duplicated, and only one of them is enabled to perform processing on the arithmetic / control target 9, and the circuits of the arithmetic / control processing units 6-1 and 6-2 are performed. When reconfiguring, the operation of the computation / control processing units 6-1 and 6-2 in the valid state remains unchanged, and the circuit is reconfigured for the computation / control processing units 6-1 and 6-2 in the invalid state. Since the mutual valid / invalid are switched after the reconfiguration is completed, the processing of the arithmetic / control device 5 is performed for the reconfiguration of the circuits of the arithmetic / control processing units 6-1 and 6-2. There is no need to stop.
[0064]
Chromosome data is described by a bit string corresponding to the minimum unit of function change of the circuit of the arithmetic / control processing units 6-1 and 6-2. When the evolutionary processing unit 3 changes the circuit, the selection process Since the bit sequence of the chromosome data itself is changed by genetic processing such as crossover processing or mutation processing, simulation is performed on various circuits that can be realized in the arithmetic / control processing units 6-1 and 6-2. It is possible to respond flexibly to changes in the environment.
[0065]
Next, an example in which the above-described system is applied to an image recognition apparatus will be described with reference to FIG.
The image recognition apparatus includes an image recognition unit 71, a recognition rate evaluation unit 72, and a filter configuration change unit 73. The image recognition unit 71 includes a filtering unit 74 and a matching unit 75. Considering the relationship between this image recognition device and the system shown in FIG. 1, the image recognition unit 71 corresponds to the calculation / control device 5, and the filtering unit 74 corresponds to the calculation / control processing units 6-1 and 6-2. doing. The recognition rate evaluation unit 72 corresponds to the fitness evaluation unit 2, and the filter configuration change unit 73 corresponds to the circuit generation unit 1, the evolution processing unit 3, and the reconstruction processing unit 4. Further, the image signal corresponds to the calculation / control target 9, and calculation processing based on the image signal is performed. In this case, by providing a circuit composed of reconfigurable elements in the filtering unit 74, for example, the filter configuration such as the filter order and the band division width can be changed.
[0066]
When an image signal is input to the image recognition unit 71, a filtering process is performed on the image signal by the filtering unit 74 to extract features by performing, for example, edge enhancement, image sharpening, and noise removal, Based on the extracted features, the matching unit 75 performs matching with a predetermined recognition target to output a recognition result.
[0067]
The recognition result is input to the recognition rate evaluation unit, and is filtered by the recognition rate evaluation unit 72 and the filter configuration change unit 73, for example, when the recognition rate is lowered by changing characters, figures, or other recognition targets. The new filter configuration of the unit 74 is simulated, and the filter configuration of the filtering unit 74 is changed based on the result.
[0068]
By doing in this way, the structure of the filtering part 74 is changed according to the change of recognition object, and the filtering process with respect to an image signal can always be performed optimally, Therefore It becomes possible to maintain a high recognition rate. Furthermore, when the optimum filter configuration is not known in advance as in the case where the recognition target is unknown, the processing is started for the time being, and if the simulation is immediately performed and the filter configuration of the filtering unit 74 is changed, Therefore, the filter configuration is changed to an optimum one. That is, the image recognition apparatus learns an optimum filter configuration for an unknown recognition target.
[0069]
(Second Embodiment)
Figure 9 These are block diagrams which show the structure of the system concerning the 2nd Embodiment of this invention. In the following description, portions corresponding to those in FIG. 1 are denoted by the same reference numerals, and description will be made focusing on differences from the first embodiment.
[0070]
In the present embodiment, a plurality of arithmetic / control processing units are configured by combining multiplexing and parallelization. That is, the arithmetic / control device 5 is provided with n arithmetic / control processing units 6-1 to 6-n (multiplexing), and during normal operation, all these arithmetic / control processing units 6-1 to 6-1. 6-n is operated (parallelization). At this time, the output control circuit 8 outputs, for example, output signals 24-1 to 24-n of the arithmetic / control processing units 6-1 to 6-n. of The sum of weights is output as a calculation / control signal. As will be described later, in this system, it is necessary to temporarily stop a part of the arithmetic / control processing units 6-1 to 6-n for circuit reconfiguration. Configure to prevent errors.
[0071]
Here, as in the first embodiment, even if the same and the same number of reconfigurable elements are provided in each circuit of the arithmetic / control processing units 6-1 to 6-n, each circuit can be reconfigured differently. An element may be provided. In the latter case, the fitness evaluation unit 2 defines element models corresponding to all the reconfigurable elements provided in the circuits of the arithmetic processing units 6-1 to 6-n.
[0072]
In this system, when the circuit is reconfigured, the simulation is performed with all the arithmetic / control processing units 6-1 to 6-n being operated, and the arithmetic / control to reconfigure the circuit according to the simulation result. processing Part select. And the selected computation / control process Part Temporarily stop operation, and other computation / control processing Part is The selected computation / control process while still operating Part Other computation / control processing in operation after the circuit is reconfigured and the reconfiguration is complete Department and Resume operation to synchronize.
[0073]
In this way, the circuits of the plurality of arithmetic / control processing units 6-1 to 6-n can be reconfigured at the same time, and each circuit has a different configuration, that is, has a different function. Therefore, the hardware configuration of the arithmetic / control device 5 can be changed more flexibly than in the first embodiment, and it becomes possible to appropriately cope with changes in the environment. In addition, a sufficient effect can be obtained only by reconfiguring the necessary minimum arithmetic / control processing units 6-1 to 6-n.
[0074]
【The invention's effect】
As described above, according to the present invention, the adaptability of the circuit configured on the calculation / control unit with respect to the environment is evaluated, and the circuit of the calculation / control unit is reconfigured based on the evaluation result. The hardware configuration is changed autonomously according to environmental changes.
[0075]
At this time, a circuit to be configured on the arithmetic / control unit is generated, the adaptability to the environment when the circuit is configured on the arithmetic / control unit is evaluated, and the circuit is changed based on the evaluation result. The circuit that has evolved as a result of this process is reconfigured in the calculation / control means, so that it is possible to respond flexibly and appropriately to changes in the environment.
[0076]
Multiplexing calculation and control means, and reconfiguration processing means without resuming calculation and control means processing, the circuit is reconfigured, improving the fitness only for the environment while continuing the processing for the calculation and control target Can be made.
[0077]
The circuit generation unit generates a plurality of circuits, the fitness evaluation unit evaluates the plurality of circuits, and the evolutionary processing unit changes the plurality of circuits by a genetic algorithm based on the evaluation results of the plurality of circuits. Therefore, it is possible to analyze various circuits that can be realized.
[Brief description of the drawings]
FIG. 1 is a block diagram showing the configuration of a system according to a first embodiment of the present invention.
FIG. 2 is a diagram for explaining keywords of a description language of a hardware configuration in the embodiment;
FIG. 3 is a diagram for explaining keywords of a description language of a hardware configuration in the embodiment;
FIG. 4 is a diagram for explaining chromosome data in the embodiment
FIG. 5 is a flowchart for explaining circuit reconfiguration processing in the embodiment;
FIG. 6 is a diagram for explaining genetic processing in the embodiment;
FIG. 7 is a diagram showing an example of changing the circuit configuration by changing chromosome data in the embodiment;
FIG. 8 is a block diagram showing an example in which the embodiment is applied to an image recognition apparatus;
FIG. 9 is a block diagram showing a configuration of a system according to a second embodiment of the present invention.
FIG. 10 is a diagram showing an example of a conventional system
[Explanation of symbols]
1 ... Circuit generator
2 ... Fitness evaluation section
3 ... Evolutionary processing department
4 ... Reconfiguration processing unit
5 ... Calculation / control device
6-1 to 6-n. Calculation / control processing section
7. Input control device
8 ... Output control device
9 ... Calculation / control target

Claims (3)

再構成可能に構成される回路をそれぞれ有し、演算・制御対象の演算および制御を同時に行う複数の演算・制御手段と、
前記演算・制御手段上に構成すべき回路を生成し、該回路の構成を示す回路構成情報を出力する回路生成手段と、
この回路生成手段により生成された回路が前記演算・制御手段上に構成されたときの環境に対する該回路の適応度を評価する適応度評価手段と、
この適応度評価手段の評価結果に基づいて、前記回路生成手段により生成される回路を変更して進化させる処理を行う進化的処理手段と、
この進化的処理手段により進化を遂げた回路の構成を示す回路構成情報を前記回路生成手段から受け、この回路構成情報に基づいて前記複数の演算・制御手段のうち選択された演算・制御手段のみ一時的に停止状態した後に前記選択された演算・制御手段の回路を再構成する再構成処理手段と
を備えたことを特徴とする自律進化型システム。
Each of the circuits configured to be reconfigurable, and a plurality of calculation / control means for performing calculation and control of the calculation / control target simultaneously,
A circuit generating unit that generates a circuit to be configured on the arithmetic / control unit and outputs circuit configuration information indicating the configuration of the circuit;
Fitness evaluation means for evaluating the fitness of the circuit with respect to the environment when the circuit generated by the circuit generation means is configured on the calculation / control means;
Based on the evaluation result of the fitness evaluation means, evolution processing means for performing a process of changing and evolving the circuit generated by the circuit generation means,
Circuit configuration information indicating the circuit configuration evolved by the evolution processing means is received from the circuit generation means, and only the calculation / control means selected from the plurality of calculation / control means based on the circuit configuration information An autonomous evolution system comprising: a reconfiguration processing unit configured to reconfigure the circuit of the selected calculation / control unit after being temporarily stopped.
前記回路生成手段は、機能ブロックレベル、回路構成情報ビットレベル、論理ゲートレベルもしくはハードウェア記述言語のキーワードレベルのいずれかを最小変更単位として、生成する回路を変更することを特徴とする請求項1に記載の自律進化型システム。  2. The circuit generation unit according to claim 1, wherein the circuit generation unit changes a circuit to be generated using any one of a function block level, a circuit configuration information bit level, a logic gate level, and a hardware description language keyword level as a minimum change unit. Autonomous evolution system described in 1. 前記回路生成手段は、前記回路を最小機能変更単位に対応したビット列からなる複数の染色体情報によってそれぞれ記述し、
前記進化的処理手段は、伝的アルゴリズムにより前記複数の回路を変更するとき、前記複数の染色体情報のうちのいずれかを選択し、選択されなかった染色体情報を取り除く第1の処理と、前記複数の染色体情報の間でビット列の任意部分を交換する第2の処理と、前記複数の染色体情報のビット列の任意部分を反転させる第3の処理とを組み合わせて行うことを特徴とする請求項1に記載の自律進化型システム。
The circuit generation means describes each of the circuits by a plurality of chromosome information composed of bit strings corresponding to the minimum function change unit,
The evolutionary processing means, when changing a plurality of circuits by transfer algorithm heritage, select one of the plurality of chromosomes information, a first process to remove the chromosome information that has not been selected, the The second process for exchanging an arbitrary part of a bit string between a plurality of chromosome information and a third process for inverting an arbitrary part of the bit string of the plurality of chromosome information are performed in combination. Autonomous evolution system described in 1.
JP11971397A 1997-05-09 1997-05-09 Autonomous evolution system Expired - Fee Related JP3649551B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11971397A JP3649551B2 (en) 1997-05-09 1997-05-09 Autonomous evolution system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11971397A JP3649551B2 (en) 1997-05-09 1997-05-09 Autonomous evolution system

Publications (2)

Publication Number Publication Date
JPH10307805A JPH10307805A (en) 1998-11-17
JP3649551B2 true JP3649551B2 (en) 2005-05-18

Family

ID=14768276

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11971397A Expired - Fee Related JP3649551B2 (en) 1997-05-09 1997-05-09 Autonomous evolution system

Country Status (1)

Country Link
JP (1) JP3649551B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000156627A (en) 1998-09-18 2000-06-06 Agency Of Ind Science & Technol Electronic circuit and its adjustment method
JP2001255905A (en) * 2000-03-08 2001-09-21 Fuji Heavy Ind Ltd Model optimization adaptive control method
JP2007241945A (en) * 2006-03-13 2007-09-20 Yokohama National Univ Image processor and image processing determination device
JP2008181294A (en) * 2007-01-24 2008-08-07 Sony Corp Information processing apparatus, method and program
WO2021079425A1 (en) * 2019-10-23 2021-04-29 富士通株式会社 Data pre-processing method, data pre-processing device, data pre-processing program

Also Published As

Publication number Publication date
JPH10307805A (en) 1998-11-17

Similar Documents

Publication Publication Date Title
CN108847989B (en) Log processing method based on micro-service architecture, service system and electronic equipment
JP5581326B2 (en) Hardware cell architecture influenced by biology
CN109155743A (en) Meet the system and method for SLA requirement using machine learning algorithm
US4639888A (en) Circuit arrangement for accelerated carry formation in an adder device
CN107710682B (en) Network stochastic cross-layer optimization for meeting traffic flow availability goals at minimum cost
Vasicek et al. An evolvable hardware system in Xilinx Virtex II Pro FPGA
CA2984833A1 (en) Device, method and program for securely reducing an amount of records in a database
EP3951533B1 (en) System and method for constructing fault-augmented system model for root cause analysis of faults in manufacturing systems
WO2005043356A3 (en) Methods and systems for automated data processing
CN113468099B (en) Reconfigurable computing device, processor and method
KR102430263B1 (en) Cooperative learning system and monitoring system
JP3649551B2 (en) Autonomous evolution system
JPH01230142A (en) Logical simulation method and logical simulation device
Mora et al. Accelerating the evolution of a systolic array-based evolvable hardware system
KR20210082880A (en) Investment universe construction method and system based on theme keyword
Vasicek et al. Hardware accelerators for cartesian genetic programming
CN110546924A (en) network architecture device, network architecture method, and non-transitory computer-readable medium on which program is stored
Kocnová et al. Resynthesis of logic circuits using machine learning and reconvergent paths
Sekanina et al. Theory and applications of evolvable embedded systems
CN117057403B (en) Operation module, accelerator based on impulse neural network and method
JP2685477B2 (en) Distributed system program development method
EP3779686A1 (en) Method and device for providing virtual units for substituting physical components in a technical system
JP2004282275A (en) Method, apparatus and program for calculating communication network trouble frequency and recording medium having the recorded program
CN114584108A (en) Filter unit and filter array
JP3629332B2 (en) Abnormality monitoring method

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040629

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040827

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041019

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041220

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: 20050125

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050215

LAPS Cancellation because of no payment of annual fees