(57)【特許請求の範囲】
【請求項１】
再構成可能に構成される回路をそれぞれ有し、演算・制御対象の演算および制御を同時に行う複数の演算・制御手段と、
前記演算・制御手段上に構成すべき回路を生成し、該回路の構成を示す回路構成情報を出力する回路生成手段と、
この回路生成手段により生成された回路が前記演算・制御手段上に構成されたときの環境に対する該回路の適応度を評価する適応度評価手段と、
この適応度評価手段の評価結果に基づいて、前記回路生成手段により生成される回路を変更して進化させる処理を行う進化的処理手段と、
この進化的処理手段により進化を遂げた回路の構成を示す回路構成情報を前記回路生成手段から受け、この回路構成情報に基づいて前記複数の演算・制御手段のうち選択された演算・制御手段のみ一時的に停止状態した後に前記選択された演算・制御手段の回路を再構成する再構成処理手段と
を備えたことを特徴とする自律進化型システム。
【請求項２】
前記回路生成手段は、機能ブロックレベル、回路構成情報ビットレベル、論理ゲートレベルもしくはハードウェア記述言語のキーワードレベルのいずれかを最小変更単位として、生成する回路を変更することを特徴とする請求項１に記載の自律進化型システム。
【請求項３】
前記回路生成手段は、前記回路を最小機能変更単位に対応したビット列からなる複数の染色体情報によってそれぞれ記述し、
前記進化的処理手段は、遺伝的アルゴリズムにより前記複数の回路を変更するとき、前記複数の染色体情報のうちのいずれかを選択し、選択されなかった染色体情報を取り除く第１の処理と、前記複数の染色体情報の間でビット列の任意部分を交換する第２の処理と、前記複数の染色体情報のビット列の任意部分を反転させる第３の処理とを組み合わせて行うことを特徴とする請求項１に記載の自律進化型システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、各種のハードウェアを組み合わせて演算・制御を行うシステムに係り、特に環境の変化に対応して自律的にハードウェア構成を変更させる自律進化型システムに関する。
【０００２】
【従来の技術】
従来から、セレクタ、カウンタ、加算器、乗算器などの各種のハードウェアを組み合わせて演算・制御を行うシステムでは、設計段階において将来システムがおかれる環境を予測し、それに適応するようにハードウェアおよびソフトウェアの構成を定めている。図１０は、このような従来のシステムを示しており、演算・制御装置１０１は実行命令信号およびフィードバック信号に基づいて演算・制御対象１０２に対する処理を行い、演算・制御対象１０２から処理結果に応じたフィードバック信号を戻すことによって、予め予測された範囲内で外乱などの影響を補償している。
【０００３】
【発明が解決しようとする課題】
従来のシステムでは、環境の変化により予測できない事態が発生した場合、システムの初期性能の維持が困難となったり、システムダウンや誤動作が起こるという問題があった。
【０００４】
この対策として、環境の変化に応じてシステムのソフトウェアやハードウェアの変更が行われていたが、従来はソフトウェアの変更による対応が主体となっており、設計段階で予測されなかった状況が起こりソフトウェアで対応できなくなったときにハードウェアを変更するという方法がとられていた。しかし、ソフトウェアやハードウェアを変更するためには、いずれにしろ一旦システムを停止させて原因を解明し、その結果によりソフトウェアやハードウェアの変更を行って、その後で再度システムを立ち上げるといった手順をふむ必要があるため、人手や時間がかかるという問題があった。
【０００５】
また、ネットワークを介して接続されたシステムのように直接ハードウェアを変更することができないときは、通信によってソフトウェアのみを変更する方法が考えられるが、その方法ではシステムの再立ち上げまでに多大の時間が必要となる。
【０００６】
さらに、ソフトウェアを遺伝的アルゴリズムによって自律的に変更させることが考えられるが、ソフトウェアの変更だけでは環境の変化に対応しきれなかったり、実行速度が遅くなるといった問題が生じる。
【０００７】
本発明は、このような問題点を解消するためになされたもので、環境の変化に対応して自律的にハードウェア構成を変化させる自律進化型システムを提供することを目的とする。
【０００８】
【課題を解決するための手段】
上記課題を解決するため、本発明は再構成可能に構成される回路を有し、演算・制御対象の演算および制御の少なくとも一方の処理を行う演算・制御手段と、この演算・制御手段上に構成される回路の環境に対する適応度を評価し、その評価結果に基づいて演算・制御手段の回路を再構成する手段とを設けるようにしたものである。
【０００９】
さらに詳しくは、本発明の自律進化型システムは、再構成可能に構成される回路を有し、演算・制御対象の演算および制御の少なくとも一方の処理を行う演算・制御手段と、この演算・制御手段上に構成すべき回路を生成し、回路の構成を示す回路構成情報を出力する回路生成手段と、この回路生成手段により生成された回路が演算・制御手段上に構成されたときの回路の環境に対する適応度を評価する適応度評価手段と、この適応度評価手段の評価結果に基づいて、回路生成手段により生成される回路を変更して進化させる処理を行う進化的処理手段と、この進化的処理手段により進化を遂げた回路の構成を示す回路構成情報を回路生成手段から受け、この回路構成情報に基づいて演算・制御手段の回路を再構成する再構成処理手段とを備えたものである。
【００１０】
ここで、演算・制御手段を多重化して、再構成処理手段により演算・制御手段の処理を停止させることなく、回路を再構成することが望ましい。
また、回路生成手段は機能ブロックレベル、回路構成情報ビットレベル、論理ゲートレベルもしくはハードウェア記述言語のキーワードレベルのいずれかを最小変更単位として生成する回路を変更することが望ましい。
【００１１】
さらに、回路生成手段は複数の回路を生成し、適応度評価手段は複数の回路をそれぞれ評価し、進化的処理手段は複数の回路の各評価結果に基づいて遺伝的アルゴリズムによって複数の回路を変更することで進化を遂げた回路を求めることが望ましい。
【００１２】
このとき、回路生成手段において複数の回路を機能変更単位に対応したビット列からなる複数の染色体情報によってそれぞれ記述し、進化的処理手段において遺伝的アルゴリズムにより複数の回路を変更するとき、複数の染色体情報のうちのいずれかを選択し、選択されなかった染色体情報を取り除く第１の処理と、複数の染色体情報の間でビット列の任意部分を交換する第２の処理と、複数の染色体情報のビット列の任意部分を反転させる第３の処理とを組み合わせて行うことがさらに望ましい。
【００１３】
【発明の実施の形態】
（第１の実施形態）
図１は、本発明の第１の実施形態に係るシステムの構成を示すブロック図である。このシステムは、演算・制御対象９に対する演算もしくは制御処理を司る演算・制御装置５と、この演算・制御装置５のハードウェア構成を変更させるための回路生成部１、適応度評価部２、進化的処理部３および再構成処理部４とで構成されている。
【００１４】
演算・制御装置５は、演算・制御処理部６−１，６−２、入力制御回路７および出力制御回路８からなる。演算・制御処理部６−１，６−２は、再構成可能に構成される回路を有している。演算・制御処理部６−１，６−２の各回路には、機能変更に対応した複数の再構成可能素子が設けられており、これら複数の再構成可能素子の使用状態および接続状態などによって回路の機能が決定される。
【００１５】
ここで、演算・制御処理部６−１，６−２は二重化されており、それぞれ同種および同数の再構成可能素子が設けられて、各々で実現し得る回路が同一になるように構成されている。このとき、演算・制御処理部６−１，６−２のハードウェアの全てを二重化しても、再構成可能な領域、すなわち再構成可能素子により構成される回路部分のみを二重化してもよく、少なくとも演算・制御処理部６−１と６−２との間で再構成可能素子の構成が同じであれば、同一構成で同一機能の回路が得られるようにする。なお、本実施形態では演算・制御処理部６−１，６−２のうちのいずれか一方のみを有効状態として演算・制御対象９に対する処理を行う。
【００１６】
再構成可能素子は、実際には回路の機能ブロック、回路構成情報ビット、論理ゲートもしくはハードウェア記述言語のキーワードなどに対応して設定される。機能ブロックとは、セレクタ、カウンタ、加算器および乗算器などのことであり、各機能ブロックの使用状態や接続状態を変更することにより回路構成が変更される。
【００１７】
回路構成情報ビットとは、ＰＬＤ（Programmable Logic Device ）やＦＰＧＡ（Field Programmable Gate Array ）のコンフィギュレーションビットなどのことであり、このコンフィギュレーションビットを直接変更することにより回路構成が変更される。
【００１８】
論理ゲートとは、ＡＮＤゲート、ＯＲゲート、ＮＡＮＤゲート、ＮＯＲゲートおよびＥＸ−ＯＲゲートなどのことであり、機能ブロックと同じく各ゲートの使用状態および接続状態を変更するほか、いくつかのゲートにより構成されるＲＯＭの内容の書き換えやＰＬＡやマルチプレクサによる切り替えを行うことにより回路構成が変更される。
【００１９】
ハードウェア記述言語のキーワードとは、例えば図２に示されるようにＮＯＴゲート４１、ＮＯＲゲート４２、３つのＮＯＴゲート４３および８つのＮＡＮＤゲート４４で構成される３ｔｏ８デコーダについて、図３で示されるように記述したときの点線部分４５や４６などの記述内容に相当し、これらの記述内容を書き換えることにより回路構成が変更される。
【００２０】
なお、回路に設けられている各再構成可能素子が機能ブロック、回路構成情報ビット、論理ゲートおよびハードウェア記述言語のキーワードのいずれか一種類にのみ対応していても、機能ブロック、回路構成情報ビット、論理ゲートもしくはハードウェア記述言語のキーワードに任意に対応していてもよい。
【００２１】
ところで、このシステムでは再構成可能素子の構成に応じて演算・制御処理部６−１，６−２に形成される様々な回路を識別するために以下に示す染色体データが用いられる。
【００２２】
染色体データは、演算・制御処理部６−１，６−２の回路の機能変更の最小単位に対応したビット列によって示されるデータであり、この染色体データだけで例えば回路に設けられている再構成可能素子の種類および数、各再構成可能素子の使用状態および接続状態のように回路構成の変更に必要な情報を判断できるようにしておく。
【００２３】
また、染色体データは演算・制御処理部６−１，６−２の各回路に設けられている再構成可能素子、すなわち機能ブロック、回路構成情報ビット、論理ゲートもしくはハードウェア記述言語のキーワードに対応させて記述されている。従って、演算・制御処理部６−１，６−２の回路の機能変更の最小単位は、機能ブロックレベル、回路構成情報ビットレベル、論理ゲートレベルもしくはハードウェア記述言語のキーワードレベルのいずれかになる。
【００２４】
図４は、このような染色体データの例を示したものである。ここでは、回路３１と回路３２は同種および同数の機能ブロックを備えており、回路３１は染色体データが”１１０１１０１”と示され、Ｎビットの入力信号Ａ，Ｂに基づいて、Ｃ＝Ａ×Ｂ−１という演算を行った後、２Ｎビットの出力信号Ｃを出力する機能を有し、回路３２は染色体データが”１１０１１１０”と示され、Ｎビットの入力信号Ａ，Ｂに基づいて、Ｃ＝Ａ×Ｂという演算を行った後、２Ｎビットの出力信号Ｃを出力する機能を有していることを考える。
【００２５】
この場合、後述する遺伝的処理によって、回路３１の染色体データを”１１０１１０１”から”１１０１１１０”に変化させれば、回路３１は回路３２と同様機能を実現するように回路構成、この場合は複数の機能ブロックの使用状態および接続状態を変更する。また、ある回路の染色体データが”１１０１１０１”と示されていれば、その回路は回路３１と同一構造で同一機能を有していると判断でき、同様に染色体データが”１１０１１１０”と示されていれば、回路３２と同一構造で同一機能を持っていると判断することができる。
【００２６】
以下、このシステムの動作について通常運転時と回路の再構成時とに分けて説明する。
通常運転時には、主に演算・制御装置５のみを動作させて演算・制御対象９に対する処理を行う。具体的には、入力制御回路７に実行命令信号およびフィードバック信号が入力され、入力制御回路７はこれらの実行命令信号およびフィードバック信号を演算・制御処理部６−１もしくは６−２のうち有効状態に設定されている一方に信号線２２−１，２３−１もしくは信号線２２−２，２３−２を介して出力する。なお、演算・制御処理部６−１，６−２の有効／無効に応じて、予め入力制御回路７に接続された二組の信号線２２−１，２３−１もしくは信号線２２−２，２３−２のいずれか一組を有効に切り替えておく。
【００２７】
演算・制御処理部６−１，６−２のうちで有効状態のものは、入力制御回路７から入力される実行命令信号およびフィードバック信号に基づいて演算・制御信号を生成し、生成した演算・制御信号を信号線２４−１，２４−２を介して制御回路８に出力する。
【００２８】
出力制御回路８は、有効状態の演算・制御処理部６−１，６−２から入力される演算・制御信号に基づいて、演算・制御対象９の処理を行う。演算・制御対象９は、その結果に応じたフィードバック信号を入力制御回路７に出力する。なお、演算・制御処理部６−１，６−２の有効／無効状態に対応させて、出力制御回路８の信号線２４−１もしくは２４−２のいずれか一方を有効に切り替えておく。
【００２９】
ところで、後述するように通常運転中に適応度評価部２を動作させることにより、有効状態の演算・制御処理部６−１，６−２の評価値を常時求めるようしておき、有効状態の演算・制御処理部６−１，６−２では環境に適応できなくなったとき、システムが自律的に回路の再構成を開始するようにしておくことが望ましい。
【００３０】
次に、演算・制御処理部６−１，６−２の回路の再構成を行う場合について説明する。本システムでは、演算・制御処理部６−１，６−２上に構成すべき回路、すなわち環境に対する適応度の高い回路を求めるために、染色体データに着目して回路のシミュレーションを行い、最適なシミュレーション結果が得られた染色体データから逆に実際の実際の演算・制御処理部６−１，６−２の回路を再構成する。
【００３１】
具体的には、図５のフローチャートに示されるように、まず回路生成部１において演算・制御処理部６−１，６−２上に構成すべき回路を複数生成し、各回路に対応する複数の染色体データを染色体データの初期集団として設定する（ステップＳ１）。この場合、回路生成部１では上述した機能ブロックレベル、回路構成情報ビットレベル、論理ゲートレベルもしくはハードウェア記述言語のキーワードレベルのいずれかを最小変更単位として、生成する回路を変更するようにしている。
【００３２】
ただし、上述したように染色体データは機能ブロックレベル、回路構成情報ビットレベル、論理ゲートレベルもしくはハードウェア記述言語のキーワードレベルに対応して記述されているため、実際には回路生成部１は予め保持されていた有効状態の演算・制御処理部６−１，６−２の回路を示す染色体データのビット列を適当な乱数発生処理によって変化させることによってｎ個の染色体データを直接生成し、これらｎ個の染色体データをｎ種類の回路に対応する染色体データの初期集団としている。
【００３３】
回路生成部１で生成されたｎ個の染色体データは、信号線１０−１〜１０−ｎを介して適応度評価部２および進化的処理部３にそれぞれ出力される。
次に、適応度評価部２は回路生成部１から入力されたｎ個の染色体データに対応するｎ種類の回路の適応度をそれぞれ評価してｎ個の評価値を求める（ステップＳ２）。
【００３４】
このとき、適応度評価部２は回路生成部１から入力された染色体データによって示される回路が演算・制御処理部６−１，６−２上に構成されたときの各回路の環境に対する適応度、言い替えれば回路生成部１によって生成された回路が演算・制御処理部６−１，６−２の回路としてどの程度環境に適応した処理を実行し得るかを評価している。
【００３５】
そのため、適応度評価部２には演算・制御処理部６−１，６−２に設けられた再構成可能素子に対応するモデル（以下、素子モデル）および演算・制御対象９に対応するモデル（以下、対象モデル）が予め定義されており、各素子モデルによって染色体データに対応する回路モデルを作成し、この回路モデルと対象モデルを用いたときのシミュレーションを行って、そのシミュレーション結果を評価値として出力している。
【００３６】
このシミュレーションを実行するために、適応度評価部２には演算・制御装置５に入力された実行命令信号、その実行命令信号に基づいて有効状態の演算・制御処理部６−１，６−２の処理を介して実際に演算・制御装置５で求められた演算・制御信号、演算制御対象９から出力される評価用信号および環境変化信号が入力されている。なお、評価用信号はフィードバック信号に含まれるものであり、演算・制御対象９の状態をモニタするために用いられる。また、環境変化信号も同様にフィードバック信号に含まれるものであり、環境変化による外乱などに対応している。
【００３７】
適応度評価部２は、このようなシミュレーションによって得られたｎ個の評価値を対応するｎ個の染色体データと共に、信号線１２−１〜１２−ｎを介して進化的処理部３に出力する。
【００３８】
さらに、適応度評価部２は最も良い評価値が得られた染色体データをその最大評価値と共に信号線１３を介して回路生成部１に出力し、有効状態の演算・制御処理部６−１，６−２の回路よりも環境に適応した回路、つまり進化した回路が得られたことを示す信号を信号線１４を介して再構成処理部４に出力する。
【００３９】
この適応度評価部２において、有効状態の演算・制御処理部６−１，６−２の評価値も同時に求めるようにしておき、シミュレーションで得られた最大評価値が有効状態の演算・制御６−１，６−２の回路の評価値を上回ったときのみ、回路生成部１および再構成処理部４に上述した各信号を出力させるようにしてもよい。
【００４０】
さらに、適応度評価部２をシステムの通常運転中も動作させることにより、有効状態の演算・制御処理部６−１，６−２の評価値を常時求めるようにしておき、この評価値が適当な基準値を下回ったとき、演算・制御処理部６−１，６−２が環境に対応できなくなった、つまり初期性能が維持できなくなったものと判断して、システムが自動的に回路の再構成処理を開始させるようにしておくことが望ましい。
【００４１】
一方、回路生成部１は適応度評価部２から入力された最大評価値の染色体データを次世代の演算・制御処理部６−１，６−２の回路の候補となる染色体データとして、その時点で保存している染色体データに換えて保存し（ステップＳ３）、さらにその染色体データによって示される回路が十分に進化を遂げたか否かを判断するために、染色体データと共に適応度評価部２から送られてきた最大評価値を予め設定された基準値と比較する（ステップＳ４）。
【００４２】
回路生成部１で比較を行った結果、最大評価値が基準値よりも小さかった場合（ステップＳ４でＮｏ）、回路が十分な進化を遂げなかったものとして、進化的処理部３により各染色体データに対して以下に述べるような遺伝的処理を施し（ステップＳ５）、適応度評価部２で引き続きシミュレーションを行うための新しい染色体データの集団を設定する（ステップＳ６）。
【００４３】
図６は、進化的処理部３による遺伝的処理を具体的に説明するための図である。ここでは、遺伝的処理を施すべき染色体データとして、ブロック６１に示されるようにデータ総数ｎ＝４の染色体データ４１〜４４が入力されたことを考える。
【００４４】
進化的処理部３における遺伝的処理は、以下に述べるような遺伝的アルゴリズムに従って実行される。まず、染色体データ４１〜４４のうちの任意の染色体データを選択し、選択されなかった染色体データを取り除いて淘汰する選択淘汰処理が行われる。このとき、初期状態の染色体データ４１〜４４のデータ総数ｎ＝４を保つために、選択された染色体データを増殖させ、増殖した分の染色体データが取り除かれるようにする。例えば、ブロック６１からブロック６２へ至る選択淘汰処理では、染色体データ４１が選択されると共に、染色体データ４４が淘汰されて、ブロック６２では染色体データ４１と同じビット列のデータが新しい染色体データ４４として設定されている。
【００４５】
選択および淘汰の基準値としては、各染色体データ４１〜４４の評価値が用いられており、例えば評価値が高いものほど選択される確率が高くなり、逆に評価値の低いものほど淘汰され易くなる確率的処理などによって染色体データ４１〜４４の選択・淘汰が実行される。
【００４６】
次に、任意の二つの染色体データ４１〜４４の間で相互に任意部分のビット列を交換する交叉処理が行われる。例えば、ブロック６２からブロック６３へ至る交叉処理では、染色体データ４１と染色体データ４２との間でビット列４５とビット列４６とが交換され、さらに染色体データ４３と染色体データ４４との間でビット列４７とビット列４８とが交換されている。
【００４７】
さらに、任意の染色体データ４１〜４４の任意のビット列を反転させる突然変異処理が行われる。例えば、ブロック６３からブロック６４へ至る突然変異処理では、染色体データ４４のビット列４９が反転されている。
【００４８】
以上のような選択淘汰処理、交叉処理および突然変異処理を予め設定された終了条件を満す染色体データ４１〜４４が得られるまで繰り返し、最終的に得られた染色体データ４１〜４４を最終世代、すなわち適応度評価部２で次のシミュレーションを行うための染色体データの新しい集団として設定する。
【００４９】
このように染色体データのビット列そのものを変更すると、変更後の染色体データでは演算・制御処理部６−１，６−２の回路として意味をなさない場合が生じる。従って、上述した終了条件には少なくとも染色体データ４１〜４４が演算・制御処理部６−１，６−２の回路として意味をなすか否かを条件として含ませつ必要があり、最低でも適応度評価部２でシミュレーションを行うことができる回路を示す染色体データ４１〜４４が得られるまで遺伝的処理を繰り返す。また、選択淘汰処理、交叉処理および突然変異処理は上の説明のように順番に一つづつ繰り返す必要はなく、各処理の順番および回数は任意に定めることができる。
【００５０】
図７は、この遺伝的処理によって染色体データを変更したときの演算・制御処理部の回路構成の変化を示したものである。なお、Ａ，Ｂは入力信号、Ｃは出力信号を表している。
【００５１】
例えば、６つの機能ブロックａ〜ｆが配置されている演算・制御処理部６−１もしくは６−２の回路５１について、遺伝的処理を行う前（進化前）には各機能ブロックａ〜ｆがどれも接続されていない状態とする。このとき、遺伝的処理によって回路５１の染色体データを変更することによって、回路５２や５３のように各機能ブロックａ〜ｆの使用状態や接続状態が変更されることになる。この場合、染色体データのビット列そのものを変更しているため、回路５２の機能ブロックａ，ｃや回路５３の機能ブロックｂのように、他の機能ブロックに接続されているだけで回路全体の処理には影響がない部分が生じることもある。そして、このような遺伝的処理が繰り返されて、回路５４や５５のように、最終世代の機能ブロックａ〜ｆの使用状態および接続状態が決定される。
【００５２】
説明を戻すと、進化的処理部３は上述した遺伝的処理によって得られた各染色体データを信号線１７−１〜１７−ｎを介して回路生成部１に出力する。回路生成部１は、進化的処理部３から入力された染色体データを信号線１０−１〜１０−ｎを介して適応度評価部２に送って、これら新しい染色体データに基づいて適応度評価部２において引き続きシミュレーションが行われるようにする。
【００５３】
以上のようなステップＳ２〜Ｓ６の処理、すなわち適応度評価部２における各染色体データに対応する回路の評価値算出、回路生成部１における最大評価値と基準値との比較、そして進化的処理部３における染色体データへの遺伝的処理を回路生成部１、適応度評価部２および進化的処理部３を並列に有効とさせながら繰り返す。
【００５４】
そして、適応度評価部２のシミュレーションで得られた染色体データの最大評価値が回路生成部１で設定されている基準値より大きくなったとき（ステップＳ４でＹｅｓ）、その染色体データによって示される回路が十分に進化を遂げたものとみなして、実際に演算・制御処理部６−１，６−２の回路の再構成を行う（ステップＳ７）。
【００５５】
このとき、無効状態の演算・制御処理部６−１，６−２を対象として回路の再構成を行い、その再構成が完了した後で演算・制御処理部６−１，６−２の有効／無効を互いに切り替えることによって、それまで有効状態であった演算・制御処理部６−１，６−２に代わり再構成された演算・制御処理部６−１，６−２の動作を開始させるようにする（ステップＳ８）。
【００５６】
この場合、まず回路生成部１は最大評価値が基準値より大きくなった染色体データを実際に回路構成を変化させるための回路構成情報ビット形式に従った回路構成情報へと変換し、得られた回路構成情報を信号線１１を介して再構成処理部４に出力する。
【００５７】
再構成処理部４は、回路生成部１から入力された回路構成情報を無効状態の演算・制御処理部６−１，６−２に信号線１８−１，１８−１を介して出力すると共に、そのほかに回路の再構成に必要とされる再構成制御信号を生成して、同じく無効状態の演算・制御処理部６−１，６−２に向けて信号線１９−１，１９−２を介して出力する。
【００５８】
無効状態の演算・制御処理部６−１，６−２は、再構成処理部４から入力された回路構成情報および再構成制御情報に基づいて、自らの再構成可能素子の使用状態および接続状態などを変更して回路を再構成する。
【００５９】
無効状態の演算・制御処理部６−１，６−２の回路の再構成が完了すると、再構成処理部４は再構成された演算・制御処理部６−１，６−２を有効状態に切り替えると共に、それまで有効状態であった演算・制御処理部６−１，６−２を無効状態に切り替える。さらに、再構成処理部４は入力制御信号および出力制御信号を信号線２０および２１を介して入力制御回路７および出力制御回路８にそれぞれ出力し、入力制御回路７の信号線２２−１，２２−２および信号線２３−１，２３−２、出力制御回路８の信号線２４−１，２４−２の有効／無効の切り替えを行う。
【００６０】
この結果、回路が再構成された演算・制御処理部６−１，６−２が、それまで有効状態であった演算・制御処理部６−１，６−２に代わって演算・制御対象９に対する処理を実行し始める。
【００６１】
以上述べたように、本実施形態のシステムでは、回路を再構成することができる演算・制御処理部６−１，６−２を演算・制御装置５に設けて、演算・制御装置５をより環境に適応させる必要が生じた場合、回路生成部１で演算・制御処理部６−１，６−２上に構成すべき回路を生成し、この回路の構成を示す染色体データに着目して、適応度評価部２で染色体データによって示される回路が演算・制御処理部６−１，６−２上に構成されたときのシミュレーションを行って回路の環境に対する適応度を評価し、この評価結果に基づいて進化的処理部３で染色体データに対する遺伝的処理を行うことで、回路生成部１で生成された回路を変更して進化させる処理を行い、この結果として進化を遂げた回路の構成を示す染色体データに基づいて再構成処理部４によって演算・制御処理部６−１，６−２の回路を再構成する。
【００６２】
このようにすることで、動作中の演算・制御装置５では環境に適応しきれなくなったり、初期性能が維持できなくなった場合でも、演算・制御処理部６−１，６−２の回路がその環境に適応するように再構成される。つまり、演算・制御装置５は、環境の変化に応じて自律的にハードウェア構成を変更させる自律進化機能を有することになるため、従来のようにシステムの機能変更のために人手や時間をかける必要がなくなる。しかも、演算・制御処理部６−１，６−２の回路構成、すなわち演算・制御装置５のハードウェア構成を直接変更するので、ソフトウェアの変更では対応できない大きな環境変化にも対応でき、実行速度も高速のままに保つことができる。
【００６３】
演算・制御処理部６−１，６−２を二重化し、さらにいずれか一方のみを有効にして演算・制御対象９に対する処理を行わせ、演算・制御処理部６−１，６−２の回路を再構成するときは、有効状態の演算・制御処理部６−１，６−２の動作はそのままで、無効状態の演算・制御処理部６−１，６−２を対象として回路を再構成し、再構成が完了した後で互いの有効／無効を切り替えるようにしているので、演算・制御処理部６−１，６−２の回路の再構成のために、演算・制御装置５の処理を停止させる必要がない。
【００６４】
染色体データは、演算・制御処理部６−１，６−２の回路の機能変更の最小単位に対応させたビット列によって記述され、進化的処理部３において回路の変更を行うときは、選択淘汰処理、交叉処理もしくは突然変異処理などの遺伝的処理によって、染色体データのビット列そのものを変更しているので、演算・制御処理部６−１，６−２において実現し得る様々な回路についてシミュレーションを行うことが可能となり、環境の変化に対して柔軟に対応することができる。
【００６５】
次に、上述したシステムを画像認識装置に適用した例について図８を参照して説明する。
この画像認識装置は、画像認識部７１、認識率評価部７２およびフィルタ構成変更部７３からなり、画像認識部７１はフィルタリング部７４とマッチング部７５とを備えている。この画像認識装置と図１に示したシステムとの関係を考えると、画像認識部７１が演算・制御装置５に対応し、フィルタリング部７４が演算・制御処理部６−１，６−２に対応している。また、認識率評価部７２が適応度評価部２に対応し、フィルタ構成変更部７３が回路生成部１、進化的処理部３および再構成処理部４に対応している。さらに、画像信号が演算・制御対象９に対応し、画像信号に基づいた演算処理が行われる。この場合、フィルタリング部７４に再構成可能素子で構成される回路を設けておくことにより、例えばフィルタの次数や帯域分割幅などのフィルタ構成を変更できるようにしておく。
【００６６】
画像認識部７１に画像信号が入力された場合、この画像信号に対してフィルタリング部７４でフィルタリング処理を施すことにより、例えばエッジ強調、画像の先鋭化および雑音除去などを行って特徴を抽出し、抽出された特徴に基づいてマッチング部７５で所定の認識対象とのマッチングを行うことにより認識結果が出力される。
【００６７】
この認識結果は、認識率評価部に入力されており、例えば文字、図形、その他の認識対象を変更して認識率が低下した場合など、これら認識率評価部７２およびフィルタ構成変更部７３によってフィルタリング部７４の新しいフィルタ構成についてシミュレーションを行い、その結果に基づいてフィルタリング部７４のフィルタ構成の変更を行う。
【００６８】
このようにすることで、認識対象の変化に応じてフィルタリング部７４の構成が変更され、画像信号に対するフィルタリング処理を常に最適に行うことができるため、高い認識率を維持することが可能になる。さらに、認識対象が未知の場合のように予め最適なフィルタ構成が分からないときは、とりあえず処理を開始するようにして、すぐにシミュレーションを行ってフィルタリング部７４のフィルタ構成を変化させれば、自動的にフィルタ構成が最適なものへと変更される。つまり、画像認識装置が未知の認識対象に対して自ら最適なフィルタ構成を学習するようになる。
【００６９】
（第２の実施形態）
図９は、本発明の第２の実施形態にかかるシステムの構成を示すブロック図である。なお、以下では図１と相対応する部分に同一符号を付して第１の実施形態との相違点を中心にして説明を行う。
【００７０】
本実施形態は、複数の演算・制御処理部を多重化と並列化とを組み合わせて構成したものである。すなわち、演算・制御装置５にはｎ個の演算・制御処理部６−１〜６−ｎが設けられており（多重化）、通常運転時はこれら全ての演算・制御処理部６−１〜６−ｎを動作させる（並列化）。このとき、出力制御回路８は例えば演算・制御処理部６−１〜６−ｎの出力信号２４−１〜２４−ｎの重み和を演算・制御信号として出力する。また、後述するようにこのシステムでは回路の再構成のために演算・制御処理部６−１〜６−ｎの一部を一時停止させる必要があるため、このような場合でもシステムが停止したりエラーが起こらないように構成しておく。
【００７１】
ここで、第１の実施形態と同様に演算・制御処理部６−１〜６−ｎの各回路に同種および同数の再構成可能素子が設けられていても、各回路に各々異なる再構成可能素子が設けられていてもよい。後者の場合、適応度評価部２には演算処理部６−１〜６−ｎの回路に設けられている全ての再構成可能素子に対応する素子モデルを定義しておく。
【００７２】
このシステムでは、回路の再構成を行う場合、全ての演算・制御処理部６−１〜６−ｎを動作させたままでシミュレーションを行い、そのシミュレーション結果に応じて回路を再構成すべき演算・制御処理部を選択する。そして、選択された演算・制御処理部のみを一時的に停止状態にして、それ以外の演算・制御処理部は引き続き動作させたままで、選択された演算・制御処理部の回路の再構成を行い、再構成が完了した後で動作中の他の演算・制御処理部と同期するように動作を再開させる。
【００７３】
このようにすることで、複数の演算・制御処理部６−１〜６−ｎの回路を同時に再構成することができ、しかも各回路は各々異なった構成、すなわち各々異なった機能に変更することができるので、第１の実施形態よりも演算・制御装置５のハードウェア構成が柔軟に変更され、環境の変化により適切に対応することが可能となる。また、必要最小限の演算・制御処理部６−１〜６−ｎの回路を再構成するだけで十分な効果を得ることができる。
【００７４】
【発明の効果】
以上説明したように本発明によれば、演算・制御手段上に構成される回路の環境に対する適応度を評価し、その評価結果に基づいて演算・制御手段の回路を再構成することにより、システムのハードウェア構成が環境の変化に応じて自律的に変更される。
【００７５】
このとき、演算・制御手段上に構成すべき回路を生成し、この回路が演算・制御手段上に構成されたときの環境に対する適応度を評価して、この評価結果に基づいて回路を変更して進化させる処理を行い、この結果進化を遂げた回路が演算・制御手段に再構成されるようにしているので、環境の変化に対して柔軟かつ適切に対応することができる。
【００７６】
演算・制御手段を多重化し、再構成処理手段により演算・制御手段の処理を停止させることなく、回路が再構成されるので、演算・制御対象に対する処理を続けたままで環境に対する適応度のみを向上させることができる。
【００７７】
回路生成手段において複数の回路を生成し、適応度評価手段において複数の回路をそれぞれ評価し、進化的処理手段において複数の回路の各評価結果に基づいて遺伝的アルゴリズムによって複数の回路を変更しているので、実現し得る様々な回路を解析することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係るシステムの構成を示すブロック図
【図２】同実施形態におけるハードウェア構成の記述言語のキーワードについて説明するための図
【図３】同実施形態におけるハードウェア構成の記述言語のキーワードについて説明するための図
【図４】同実施形態における染色体データについて説明するための図
【図５】同実施形態における回路の再構成処理について説明するためのフローチャート
【図６】同実施形態における遺伝的処理について説明するための図
【図７】同実施形態における染色体データの変更による回路構成の変更の例を示す図
【図８】同実施形態を画像認識装置に適用した例を示すブロック図
【図９】本発明の第２の実施形態に係るシステムの構成を示すブロック図
【図１０】従来のシステムの例を示す図
【符号の説明】
１…回路生成部
２…適応度評価部
３…進化的処理部
４…再構成処理部
５…演算・制御装置
６−１〜６−ｎ…演算・制御処理部
７…入力制御装置
８…出力制御装置
９…演算・制御対象
【図１】
0003649551.tif 000002
【図２】
0003649551.tif 000003
【図３】
0003649551.tif 000004
【図４】
0003649551.tif 000005
【図５】
0003649551.tif 000006
【図６】
0003649551.tif 000007
【図７】
0003649551.tif 000008
【図８】
0003649551.tif 000009
【図９】
0003649551.tif 000010
【図１０】
0003649551.tif 000011