(57)【要約】【課題】  短時間で効果的な自律制御を行うことができる情報処理システムおよび情報処理方法、並びにプログラムを提供すること。【解決手段】  情報処理システム１０により、ロボット３０等の制御対象の状態の評価結果に応じてネットワーク２０に対して付与する強化信号を生成し、さらにこの強化信号をネットワーク２０の構成エレメント（論理回路等からなるノード２１，２２，２３やリンク２４）から他の構成エレメントへ伝播させる。この際、伝播先の構成エレメントに対して付与する強化信号は、伝播元および／または伝播先の構成エレメントの入出力状態に応じて生成され、構成エレメント毎に個別に付与された強化信号の累積値等を用いて構成エレメント毎に生成または削除を行い、ネットワーク２０の構造を自律的に変化させる。【選択図】  図１
2006172141.tif 000002
【特許請求の範囲】
【請求項１】
情報処理を行う複数のノードおよびこれらのノードを連結してノード間の情報伝達を行うリンクを構成エレメントとして備えるネットワークを用いた情報処理システムであって、
前記構成エレメント間の結合関係を含む前記ネットワークの構造を記憶するネットワーク構造記憶手段と、
前記ネットワークの出力生成処理で形成される前記構成エレメントの入出力状態を記憶する入出力状態記憶手段と、
前記ネットワークの出力結果に基づき形成された制御対象の状態の評価結果に応じて前記ネットワークに対して報酬または罰として付与する強化信号を生成する強化信号生成手段と、
この強化信号生成手段により生成した前記強化信号を少なくとも１つの前記構成エレメントに付与し、前記強化信号を付与された構成エレメントから他の構成エレメントへ構成エレメント間の連鎖的な結合関係に従って前記強化信号を伝播させるために、順次、伝播元の構成エレメントに付与された強化信号に基づき、前記入出力状態記憶手段に記憶された前記伝播元および／または伝播先の構成エレメントの入出力状態に応じて前記伝播先の構成エレメントに対して報酬または罰として付与する強化信号を生成するとともに、前記構成エレメントに付与された強化信号若しくはその履歴または強化信号の累積値若しくはその履歴を用いて前記構成エレメント毎に前記構成エレメントの生成または削除を行って前記ネットワークの構造を変化させ、変化後の前記ネットワークの構造を前記ネットワーク構造記憶手段に記憶させる学習手段と、
前記ネットワーク構造記憶手段に記憶された前記ネットワークの構造を参照し、前記学習手段により構造を変化させた前記ネットワークを用いて前記ネットワークの出力を生成する出力生成手段と、
前記学習手段により生成された前記構成エレメントの強化信号若しくはその履歴または強化信号の累積値若しくはその履歴を構成エレメント毎に記憶する強化信号記憶手段と
を備えたことを特徴とする情報処理システム。
【請求項２】
請求項１に記載の情報処理システムにおいて、
前記制御対象の状態を検出する状態検出手段または前記制御対象自身から前記制御対象の状態を評価するための状態評価用信号を取得する状態評価用信号取得手段を備え、
前記強化信号生成手段は、前記状態評価用信号取得手段により取得した前記状態評価用信号に基づき前記制御対象の状態を評価し、この評価結果に応じて前記強化信号を生成する構成とされている
ことを特徴とする情報処理システム。
【請求項３】
請求項１に記載の情報処理システムにおいて、
ユーザによる前記制御対象の状態の評価結果の入力を受け付ける評価結果入力受付手段を備え、
前記強化信号生成手段は、前記評価結果入力受付手段により受け付けた前記評価結果に応じて前記強化信号を生成する構成とされている
ことを特徴とする情報処理システム。
【請求項４】
請求項１〜３のいずれかに記載の情報処理システムにおいて、
前記学習手段は、前記強化信号生成手段により生成された前記強化信号を前記ネットワークの出力層を構成する全ての出力ノードに対して均等に付与するとともに、前記伝播元の構成エレメントをノードとし、前記伝播先の構成エレメントを伝播元のノードの入力側リンクとし、前記伝播元のノードに付与された強化信号に基づき、前記伝播元のノードの入出力状態に従って定まる伝播先の入力側リンクのノード出力への寄与度に応じ、前記伝播先の入力側リンクに対して報酬または罰として付与する強化信号を生成する構成とされていることを特徴とする情報処理システム。
【請求項５】
請求項４に記載の情報処理システムにおいて、
前記学習手段は、前記伝播元の構成エレメントをノードとし、前記伝播先の構成エレメントを伝播元のノードの入力側リンクの入力側に結合された入力側ノードとし、前記伝播元のノードに付与された強化信号に基づき、前記伝播元のノードの入出力状態に従って定まる入力側リンクのノード出力への寄与度に応じ、前記伝播先の入力側ノードに対して報酬または罰として付与する強化信号を生成する構成とされていることを特徴とする情報処理システム。
【請求項６】
請求項４または５に記載の情報処理システムにおいて、
前記強化信号記憶手段は、リンクに対して付与された前記強化信号の履歴または前記強化信号の累積値をリンク毎に記憶する構成とされ、
前記学習手段は、リンクに対して付与された前記強化信号の累積値が閾値を下回ったときに、このリンクを削除する構成とされている
ことを特徴とする情報処理システム。
【請求項７】
請求項６に記載の情報処理システムにおいて、
前記学習手段は、ノードの入力側リンクの数が１以下になったときに、このノードを削除する構成とされていることを特徴とする情報処理システム。
【請求項８】
請求項４に記載の情報処理システムにおいて、
前記伝播元のノードの入力側には、前記伝播先の入力側リンクの他に、ノード出力に寄与しないテストリンクが設けられ、
前記強化信号記憶手段は、前記テストリンクに対して付与された前記強化信号の履歴または前記強化信号の累積値も記憶する構成とされ、
前記学習手段は、前記テストリンクに対して付与された前記強化信号の累積値が閾値を上回ったときに、前記テストリンクを前記伝播元のノードの入力側リンクとして前記ネットワーク構造記憶手段に登録する構成とされている
ことを特徴とする情報処理システム。
【請求項９】
請求項８に記載の情報処理システムにおいて、
前記学習手段は、前記テストリンクに対して付与された前記強化信号の累積値が閾値を下回ったときに、前記テストリンクを削除し、任意のノードに結合される新たなテストリンクを生成し、前記ネットワーク構造記憶手段に登録する構成とされていることを特徴とする情報処理システム。
【請求項１０】
請求項１〜３のいずれかに記載の情報処理システムにおいて、
リンクには、このリンクに付随して前記ネットワークの出力に寄与しないテストノードが設けられ、このテストノードは、前記リンクの入力側ノードに第１の入力側テストリンクで連結され、かつ、前記リンクの出力側ノードに出力側テストリンクで連結されるとともに、任意のノードに第２の入力側テストリンクで連結され、
前記学習手段は、前記伝播元の構成エレメントを前記リンクとし、前記伝播先の構成エレメントを前記テストノードとし、前記伝播元のリンクに付与された強化信号に基づき、前記伝播元のリンクの出力および前記伝播先のテストノードの出力の状態に応じ、前記伝播先のテストノードに対して報酬または罰として付与する強化信号を生成する構成とされていることを特徴とする情報処理システム。
【請求項１１】
請求項１０に記載の情報処理システムにおいて、
前記学習手段は、前記伝播元の構成エレメントを前記テストノードとし、前記伝播先の構成エレメントを前記テストノードの第１および第２の入力側テストリンクとし、伝播元のテストノードに付与された強化信号に基づき、前記伝播元のテストノードの入出力状態に従って定まる伝播先の第１および第２の入力側テストリンクのテストノード出力への寄与度に応じ、前記伝播先の第１および第２の入力側テストリンクに対して報酬または罰として付与する強化信号を生成する構成とされていることを特徴とする情報処理システム。
【請求項１２】
請求項１１に記載の情報処理システムにおいて、
前記強化信号記憶手段は、前記伝播先の第１および第２の入力側テストリンクに対して付与された前記強化信号の履歴または前記強化信号の累積値もリンク毎に記憶する構成とされ、
前記学習手段は、前記伝播先の第１または第２の入力側テストリンクに対して付与された前記強化信号の累積値が閾値を下回ったときに、閾値を下回った入力側テストリンクを削除し、任意のノードに結合される新たな入力側テストリンクを生成し、前記ネットワーク構造記憶手段に登録する構成とされていることを特徴とする情報処理システム。
【請求項１３】
請求項１１に記載の情報処理システムにおいて、
前記強化信号記憶手段は、前記伝播先の第１および第２の入力側テストリンクに対して付与された前記強化信号の履歴または前記強化信号の累積値もリンク毎に記憶する構成とされ、
前記学習手段は、前記伝播先の第１および第２の入力側テストリンクに対して付与された前記強化信号の累積値がいずれも閾値を上回ったときに、前記テストノードを実用化するために前記テストノードを前記ネットワークの出力に寄与する実ノードに昇格させて前記ネットワーク構造記憶手段に登録する構成とされている
ことを特徴とする情報処理システム。
【請求項１４】
請求項１〜１３のいずれかに記載の情報処理システムにおいて、
前記ノードは、少なくとも１つの論理回路を用いて情報処理を行う構成とされていることを特徴とする情報処理システム。
【請求項１５】
情報処理を行う複数のノードおよびこれらのノードを連結してノード間の情報伝達を行うリンクを構成エレメントとして備えるネットワークを用いた情報処理方法であって、
前記構成エレメント間の結合関係を含む前記ネットワークの構造をネットワーク構造記憶手段に記憶させるとともに、
前記ネットワークの出力生成処理で形成される前記構成エレメントの入出力状態を入出力状態記憶手段に記憶させておき、
強化信号生成手段が、前記ネットワークの出力結果に基づき形成された制御対象の状態の評価結果に応じて前記ネットワークに対して報酬または罰として付与する強化信号を生成する処理を行い、
学習手段が、前記強化信号生成手段により生成した前記強化信号を少なくとも１つの前記構成エレメントに付与し、前記強化信号を付与された構成エレメントから他の構成エレメントへ構成エレメント間の連鎖的な結合関係に従って前記強化信号を伝播させるために、順次、伝播元の構成エレメントに付与された強化信号に基づき、前記入出力状態記憶手段に記憶された前記伝播元および／または伝播先の構成エレメントの入出力状態に応じて前記伝播先の構成エレメントに対して報酬または罰として付与する強化信号を生成し、生成した前記構成エレメントの強化信号またはその累積値を構成エレメント毎に強化信号記憶手段に記憶させるとともに、前記構成エレメントに付与された強化信号若しくはその履歴または強化信号の累積値若しくはその履歴を用いて前記構成エレメント毎に前記構成エレメントの生成または削除を行って前記ネットワークの構造を変化させ、変化後の前記ネットワークの構造を前記ネットワーク構造記憶手段に記憶させる処理を行い、
出力生成手段が、前記ネットワーク構造記憶手段に記憶された前記ネットワークの構造を参照し、前記学習手段により構造を変化させた前記ネットワークを用いて前記ネットワークの出力を生成する処理を行う
ことを特徴とする情報処理方法。
【請求項１６】
情報処理を行う複数のノードおよびこれらのノードを連結してノード間の情報伝達を行うリンクを構成エレメントとして備えるネットワークを用いた情報処理システムとして、コンピュータを機能させるためのプログラムであって、
前記構成エレメント間の結合関係を含む前記ネットワークの構造を記憶するネットワーク構造記憶手段と、
前記ネットワークの出力生成処理で形成される前記構成エレメントの入出力状態を記憶する入出力状態記憶手段と、
前記ネットワークの出力結果に基づき形成された制御対象の状態の評価結果に応じて前記ネットワークに対して報酬または罰として付与する強化信号を生成する強化信号生成手段と、
この強化信号生成手段により生成した前記強化信号を少なくとも１つの前記構成エレメントに付与し、前記強化信号を付与された構成エレメントから他の構成エレメントへ構成エレメント間の連鎖的な結合関係に従って前記強化信号を伝播させるために、順次、伝播元の構成エレメントに付与された強化信号に基づき、前記入出力状態記憶手段に記憶された前記伝播元および／または伝播先の構成エレメントの入出力状態に応じて前記伝播先の構成エレメントに対して報酬または罰として付与する強化信号を生成するとともに、前記構成エレメントに付与された強化信号若しくはその履歴または強化信号の累積値若しくはその履歴を用いて前記構成エレメント毎に前記構成エレメントの生成または削除を行って前記ネットワークの構造を変化させ、変化後の前記ネットワークの構造を前記ネットワーク構造記憶手段に記憶させる学習手段と、
前記ネットワーク構造記憶手段に記憶された前記ネットワークの構造を参照し、前記学習手段により構造を変化させた前記ネットワークを用いて前記ネットワークの出力を生成する出力生成手段と、
前記学習手段により生成された前記構成エレメントの強化信号若しくはその履歴または強化信号の累積値若しくはその履歴を構成エレメント毎に記憶する強化信号記憶手段と
を備えたことを特徴とする情報処理システムとして、コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理を行う複数のノードおよびこれらのノードを連結してノード間の情報伝達を行うリンクを構成エレメントとして備えるネットワークを用いた情報処理システムおよび情報処理方法、並びにプログラムに係り、例えば、ロボットの動作制御、ディスプレイ画面上のゲームのキャラクタの動作制御、空調管理等を行う場合に利用できる。
【背景技術】
【０００２】
知能ロボットの開発をはじめ、現在の機械制御、情報処理の分野において、自律制御に用いる学習器の作成は、大きな課題となっている。そして、学習器に求められる必要条件としては、（１）多様な出力の自律的模索、（２）任意のタスクへの応用、（３）小さな計算コスト、（４）既存知識の再利用による学習、（５）時系列への対応、といったものが考えられるが、これらの条件を全て満足する学習器の作成は、未だ達成されていないのが現状である。
【０００３】
一般に、自律制御に用いる学習器の作成方法としては、強化学習の分野で使用されている次のような強化信号を用いた代表的な方法がある。この方法では、学習器へ外界からの入力を与え、そのときに生成される出力の評価として、外界から学習器に対して強化信号（正ならば報酬、負ならば罰に相当する信号）を付与することで、学習器の振る舞いを改善する。このような方法により作成される様々な学習器の中で、ニューロジェネティックラーニングという学習方法により作成される学習器があり、前述した（１）、（２）、（５）の条件を同時に満足することができることが知られている。このニューロジェネティックラーニングによる学習器は、神経回路を模したニューラルネットワークで構築される。ニューラルネットワークの構築には、仮想的な遺伝子が用いられ、その遺伝子を強化信号に応じて淘汰することで、ネットワークの進化を促し、Ｉ／Ｏ処理の性能を強化する。
【０００４】
また、再構成可能な回路を有し、この回路の環境に対する適応度を評価し、その評価結果に基づいて回路構成を変更して進化させることにより、環境の変化に対応して自律的にハードウェア構成を変化させる自律進化型システムがある（特許文献１参照）。
【０００５】
さらに、ニューロンユニット間の結合係数を最適化するニューラルネットワーク学習方法を用いた信号処理装置がある（特許文献２，３参照）。
【０００６】
【特許文献１】特開平１０−３０７８０５号公報（請求項１、図１、要約）
【特許文献２】特開平５−７３７０５号公報（請求項１、図１、要約）
【特許文献３】特開平４−３３６６５６号公報（請求項１、図１、要約）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、前述したニューロジェネティックラーニングによる学習器では、ネットワークの進化を促すのに、ネットワークを全体として評価するので、評価に膨大な時間がかかり、これに伴って計算コストも大きくなるうえ、環境やタスクが変化した場合に、以前の学習結果を既存知識として再利用する学習が行われるか否かが不明である。
【０００８】
また、前述した特許文献１に記載された自律進化型システムでは、進化の手法が、ネットワーク全体を評価し、ネットワーク全体を淘汰、生成する手法である。すなわち、評価結果に基づく回路構成の変更は、回路構成全体を別の構成のものに取り替えることであると捉えることができ、たとえ結果的に回路構成の一部の変更に止まったとしても、その一部を評価した結果に基づく変更ではなく、回路構成全体を評価した結果の変更である。従って、評価期間が長くなるという問題がある。この点で、後述する如く、ネットワーク全体ではなく、ネットワークの構成エレメント単位での評価、生成、淘汰を行うため評価期間が非常に短くなる本発明とは異なる。
【０００９】
さらに、前述した特許文献２，３に記載されたニューラルネットワーク学習方法を用いた信号処理装置では、ニューロンユニット間の結合係数の最適化を行っているが、このような結合係数の最適化手法の場合、通常、ネットワークを構築する際に、構築者がネットワークの使用される環境、タスクに対して持つ先見的知識によりネットワークの構造を決定しておき、その決定された構造の中での最適化が行われる。すなわち、ネットワーク構造は変化させずに結合係数の最適化が行われる。従って、作成される学習器は、特定の環境、タスクに対しては高い能力を発揮するが、任意の環境、タスクでの使用は困難である。この点で、決定されたネットワーク構造の中での結合係数の最適化ではなく、ネットワーク構造そのものをも自律的に変化させ、最適化していく本発明とは異なる。
【００１０】
本発明の目的は、短時間で効果的な自律制御を行うことができる情報処理システムおよび情報処理方法、並びにプログラムを提供するところにある。
【課題を解決するための手段】
【００１１】
本発明は、情報処理を行う複数のノードおよびこれらのノードを連結してノード間の情報伝達を行うリンクを構成エレメントとして備えるネットワークを用いた情報処理システムであって、構成エレメント間の結合関係を含むネットワークの構造を記憶するネットワーク構造記憶手段と、ネットワークの出力生成処理で形成される構成エレメントの入出力状態を記憶する入出力状態記憶手段と、ネットワークの出力結果に基づき形成された制御対象の状態の評価結果に応じてネットワークに対して報酬または罰として付与する強化信号を生成する強化信号生成手段と、この強化信号生成手段により生成した強化信号を少なくとも１つの構成エレメントに付与し、強化信号を付与された構成エレメントから他の構成エレメントへ構成エレメント間の連鎖的な結合関係に従って強化信号を伝播させるために、順次、伝播元の構成エレメントに付与された強化信号に基づき、入出力状態記憶手段に記憶された伝播元および／または伝播先の構成エレメントの入出力状態に応じて伝播先の構成エレメントに対して報酬または罰として付与する強化信号を生成するとともに、構成エレメントに付与された強化信号若しくはその履歴または強化信号の累積値若しくはその履歴を用いて構成エレメント毎に構成エレメントの生成または削除を行ってネットワークの構造を変化させ、変化後のネットワークの構造をネットワーク構造記憶手段に記憶させる学習手段と、ネットワーク構造記憶手段に記憶されたネットワークの構造を参照し、学習手段により構造を変化させたネットワークを用いてネットワークの出力を生成する出力生成手段と、学習手段により生成された構成エレメントの強化信号若しくはその履歴または強化信号の累積値若しくはその履歴を構成エレメント毎に記憶する強化信号記憶手段とを備えたことを特徴とするものである。
【００１２】
ここで、「制御対象」とは、例えば、ロボット（実機ロボットでもよく、ディスプレイ画面上に表示されたロボットや、ホログラフィで表示されたロボット等の仮想的なロボットでもよい。）、ディスプレイ画面上に表示されるゲームのキャラクタ、空調管理の対象となる空間の環境等である。以下の発明においても同様である。
【００１３】
また、「制御対象の状態」とは、例えば、ネットワークの出力結果に基づくロボットの動作によってもたらされるロボットの状態（行動結果）、ネットワークの出力結果に基づくゲームのキャラクタの動作によってもたらされるキャラクタの状態（例えば、格闘系ゲームであれば、自己が受けたダメージ、敵に与えたダメージ、勝敗の結果等）、ネットワークの出力結果に基づく空調管理によってもたらされる対象空間の環境の状態（快適性、安全性等）等である。以下の発明においても同様である。
【００１４】
さらに、「入出力状態記憶手段」には、必ずしも各構成エレメント毎に入力および出力の双方を記憶させる必要はなく、例えば、各構成エレメントの出力のみを記憶させ、ネットワークの構造を参照することで各構成エレメント毎の入力および出力を把握できるようにしてもよい。また、入出力状態記憶手段に記憶される「構成エレメントの入出力状態」には、現在（最新のステップ）の入出力状態のみならず、過去（前回以前のステップ）の入出力状態が含まれていてもよい。従って、学習手段により「構成エレメントの入出力状態に応じて」強化信号を生成する際には、現在のみならず過去の入出力状態（過去の一時点でもよく、複数時点の履歴でもよい。）を参照してもよい。以下の発明においても同様である。
【００１５】
また、「順次、伝播元の構成エレメントに付与された強化信号に基づき」における「強化信号」には、現在（最新のステップ）の強化信号のみならず、過去（前回以前のステップ）の強化信号が含まれていてもよい。従って、学習手段により伝播先の構成エレメントに対して付与する強化信号を生成する際には、伝播元の構成エレメントに付与された現在の強化信号のみならず過去の強化信号（過去の一時点でもよく、複数時点の履歴でもよい。）をも参照し、それらを用いて演算を行った結果に基づいて生成処理を行ってもよい。
【００１６】
そして、「構成エレメントに付与された強化信号若しくはその履歴または強化信号の累積値若しくはその履歴を用いて」構成エレメントの生成または削除を行うことには、例えば、強化信号や強化信号の累積値の値をそのまま用いて生成または削除の判定処理を行う場合、強化信号の履歴を用いて各種の演算処理（例えば、各強化信号の単純和、各強化信号の単純平均、各強化信号に重みを付けた和、各強化信号に重みを付けた加重平均、各強化信号の分散・標準偏差等を算出する処理であって、線形・非線形を問わない処理）を行って得られた値を用いて生成または削除の判定処理を行う場合、強化信号の累積値の履歴を用いて各種の演算処理（例えば、各累積値の変化率、各累積値の分散・標準偏差等を算出する処理であって、線形・非線形を問わない処理）を行って得られた値を用いて生成または削除の判定処理を行う場合等が含まれる。以下の発明においても同様である。
【００１７】
また、「ノード」により行われる情報処理は、通常の場合には、複数の入力を用いて１つの出力を得る処理であるが、例えばネットワークの末端に位置するノードのような特殊なノードの場合には、ダミーノードとし、例えば、１つの入力を用いて１つの出力を得る処理、あるいは入力なしに１つの出力を得る処理等としてもよい。以下の発明においても同様である。
【００１８】
このような本発明の情報処理システムにおいては、制御対象の状態の評価結果に応じてネットワークに対して付与する強化信号を生成し、さらにこの強化信号をネットワークの構成エレメントから他の構成エレメントへ伝播させる。この際、伝播させる強化信号、すなわち伝播先の構成エレメントに対して付与する強化信号は、伝播元および／または伝播先の構成エレメントの入出力状態に応じて生成され、このようにして構成エレメント毎に個別に付与された強化信号若しくはその履歴または強化信号の累積値若しくはその履歴を用いて構成エレメント毎に構成エレメントの生成（追加）または削除（淘汰）を行うか否かの判定を行い、その処理を実行し、ネットワークの構造を自律的に変化させる。
【００１９】
従って、前述した従来のニューロジェネティックラーニングによる学習器の場合とは異なり、ネットワークの構造を変化させるにあたり、ネットワーク全体を評価単位として評価を行うのではなく、構成エレメント単位での評価を行い、構成エレメント単位で生成または削除を行うので、評価に要する時間が短時間で済むようになり、低い時間オーダでネットワークを自律的に構築していくことが可能となるうえ、これに伴って計算コストの削減も図られる。
【００２０】
また、前述した特許文献２，３に記載されたニューラルネットワーク学習方法のように、ネットワークの使用環境やタスクに応じてネットワークの構造を決定しておき、その決定された構造の中でニューロンユニット間の結合係数の最適化を行うのではなく、本発明では、ネットワーク構造そのものをも自律的に変化させ、最適化していくので、構造決定による環境、タスクへの限定を回避することが可能となる。このため、ネットワークの使用環境やタスクが変化した場合でも、以前の学習結果を既存知識として再利用する学習を行うことができる可能性が高まり、これらにより前記目的が達成される。
【００２１】
また、前述した情報処理システムにおいて、制御対象の状態を検出する状態検出手段または制御対象自身から制御対象の状態を評価するための状態評価用信号を取得する状態評価用信号取得手段を備え、強化信号生成手段は、状態評価用信号取得手段により取得した状態評価用信号に基づき制御対象の状態を評価し、この評価結果に応じて強化信号を生成する構成としてもよい。
【００２２】
ここで、「状態検出手段」は、例えば、位置、速度、加速度、距離、回転角、回転角速度、回転角加速度、温度、湿度、圧力、臭い、光、音、振動、触覚等を検出する各種センサ等である。
【００２３】
このように状態評価用信号取得手段により取得した状態評価用信号に基づき制御対象の状態を評価する構成とした場合には、人為的判断を介在させることなく制御対象の状態の評価を行うことが可能となるので、ネットワークの自律的な構築速度を向上させることが可能となるうえ、目的に沿って一貫した学習を容易に行うことが可能となる。
【００２４】
さらに、前述した情報処理システムにおいて、ユーザによる制御対象の状態の評価結果の入力を受け付ける評価結果入力受付手段を備え、強化信号生成手段は、評価結果入力受付手段により受け付けた評価結果に応じて強化信号を生成する構成としてもよい。
【００２５】
このように評価結果入力受付手段を備えた構成とした場合には、ユーザの評価結果に応じて強化信号を生成し、この強化信号を構成エレメントから他の構成エレメントへと伝播させることが可能となるので、ユーザの意思に沿った形で制御対象の制御を行うことができるようにネットワークの自律的な構築を促すことが可能となる。
【００２６】
なお、「ユーザ」は、１人でも、複数人でもよい。複数のユーザが同一の制御対象を使用し、あるいは参照する場合には、後者のように複数のユーザによる評価結果（同一の制御対象についての異なる状態または同一の状態の評価結果）を受け付けることが好ましく、例えば、制御対象がネットワーク上の検索エンジンである場合には、ネットワークに接続された複数のユーザ端末装置から送信されてくる各ユーザの評価結果（目的通りの検索を行うことができたか否か）を受け付け、検索エンジンの検索アルゴリズム等を変化させていくことができる。
【００２７】
そして、以上に述べた情報処理システムにおいて、学習手段は、強化信号生成手段により生成された強化信号をネットワークの出力層を構成する全ての出力ノードに対して均等に付与するとともに、伝播元の構成エレメントをノードとし、伝播先の構成エレメントを伝播元のノードの入力側リンクとし、伝播元のノードに付与された強化信号に基づき、伝播元のノードの入出力状態に従って定まる伝播先の入力側リンクのノード出力への寄与度に応じ、伝播先の入力側リンクに対して報酬または罰として付与する強化信号を生成する構成とされていることが望ましい。
【００２８】
このようにノードからその入力側リンクへ強化信号を伝播させる構成とした場合には、ネットワークに対して付与された強化信号を出力ノードから逆伝播させていくことが可能となり、また、伝播先の入力側リンクのノード出力への寄与度に応じて、入力側リンクに対して付与する強化信号を生成するので、個々のリンクに対し、妥当な評価を個別に行うことが可能となり、構成エレメント毎の生成または削除を実現することが可能となる。
【００２９】
また、上述したようにノードからその入力側リンクへ強化信号を伝播させる構成とした場合において、学習手段は、伝播元の構成エレメントをノードとし、伝播先の構成エレメントを伝播元のノードの入力側リンクの入力側に結合された入力側ノードとし、伝播元のノードに付与された強化信号に基づき、伝播元のノードの入出力状態に従って定まる入力側リンクのノード出力への寄与度に応じ、伝播先の入力側ノードに対して報酬または罰として付与する強化信号を生成する構成としてもよい。
【００３０】
このようにノードからその入力側リンクの入力側ノードへの強化信号の伝播を行う構成とした場合には、ノードからその入力側リンクへの強化信号の逆伝播と併せ、ノードからその入力側リンクの入力側ノードへの強化信号の逆伝播も行うことが可能となり、より一層円滑な強化信号の逆伝播を実現することができるようになる。
【００３１】
なお、ノードからノードへの強化信号の伝播は、上記のように伝播元のノードから伝播先のノードへ直接に行うのではなく、これらのノードを連結するリンクを介して、すなわちこれらのノードを連結するリンクに一旦強化信号を蓄え、それを伝播先のノードへ渡すことにより行ってもよい。
【００３２】
さらに、前述したようにノードからその入力側リンクへ強化信号を伝播させる構成とした場合において、強化信号記憶手段は、リンクに対して付与された強化信号の履歴または強化信号の累積値をリンク毎に記憶する構成とされ、学習手段は、リンクに対して付与された強化信号の累積値が閾値を下回ったときに、このリンクを削除する構成とされていることが望ましい。
【００３３】
ここで、学習手段は、閾値を下回ったか否かを判定する際に必要となる強化信号の累積値を、強化信号記憶手段に記憶された強化信号の履歴を加算する処理を行って把握してもよく、強化信号記憶手段に記憶された強化信号の累積値を読み込んで把握してもよい。以下の発明の場合も同様である。
【００３４】
このようにリンクに対して付与された強化信号の累積値が閾値を下回ったときに、このリンクを削除する構成とした場合には、目的通りに制御対象を制御するために役立たないと考えられるリンク、すなわち不要と思われるリンクの淘汰を行うことが可能となり、ネットワークの構造を自律的に変化させていくことが可能となる。
【００３５】
そして、上記のようにリンクに対して付与された強化信号の累積値が閾値を下回ったときに、このリンクを削除する構成とした場合において、学習手段は、ノードの入力側リンクの数が１以下になったときに、このノードを削除する構成とすることが望ましい。
【００３６】
このようにノードの入力側リンクの数が１以下になったときに、このノードを削除する構成とした場合には、目的通りに制御対象を制御するために役立たないと考えられるノード、すなわち不要と思われるノードの淘汰を行うことが可能となり、ネットワークの構造を自律的に変化させていくことが可能となる。
【００３７】
また、ノードからその入力側リンクへ強化信号を伝播させる構成とした場合において、伝播元のノードの入力側には、伝播先の入力側リンクの他に、ノード出力に寄与しないテストリンクが設けられ、強化信号記憶手段は、テストリンクに対して付与された強化信号の履歴または強化信号の累積値も記憶する構成とされ、学習手段は、テストリンクに対して付与された強化信号の累積値が閾値を上回ったときに、テストリンクを伝播元のノードの入力側リンクとしてネットワーク構造記憶手段に登録する構成とされていることが望ましい。
【００３８】
このようにテストリンクを設けた構成とした場合には、目的通りに制御対象を制御するために役立つと考えられるテストリンクを、ノード出力に寄与する実リンクに昇格させ、正式に入力側リンクとして登録することができるので、自律的なリンクの生成を実現し、ネットワークの構造を自律的に変化させていくことが可能となる。
【００３９】
さらに、上記のようにテストリンクを設けた構成とした場合において、学習手段は、テストリンクに対して付与された強化信号の累積値が閾値を下回ったときに、テストリンクを削除し、任意のノードに結合される新たなテストリンクを生成し、ネットワーク構造記憶手段に登録する構成とされていることが望ましい。
【００４０】
このようにテストリンクに対して付与された強化信号の累積値が閾値を下回ったときに、このテストリンクを削除し、新たなテストリンクを生成する構成とした場合には、新しく生成されるリンク（実リンク）の適切な候補となるテストリンクを用意しておくことができるので、リンクの適切で、かつ円滑な生成を実現し、ネットワークの構造を自律的に変化させていくことが可能となる。
【００４１】
そして、前述した情報処理システムにおいて、リンクには、このリンクに付随してネットワークの出力に寄与しないテストノードが設けられ、このテストノードは、リンクの入力側ノードに第１の入力側テストリンクで連結され、かつ、リンクの出力側ノードに出力側テストリンクで連結されるとともに、任意のノードに第２の入力側テストリンクで連結され、学習手段は、伝播元の構成エレメントをリンクとし、伝播先の構成エレメントをテストノードとし、伝播元のリンクに付与された強化信号に基づき、伝播元のリンクの出力および伝播先のテストノードの出力の状態に応じ、伝播先のテストノードに対して報酬または罰として付与する強化信号を生成する構成とされていることが望ましい。
【００４２】
このようにリンクに付随させてテストノードを設ける構成とした場合には、新たに生成されるノード（実ノード）の候補を用意しておくことが可能となり、ネットワークの構造を自律的に変化させていくことが可能となる。
【００４３】
また、上記のようにリンクに付随させてテストノードを設ける構成とした場合において、学習手段は、伝播元の構成エレメントをテストノードとし、伝播先の構成エレメントをテストノードの第１および第２の入力側テストリンクとし、伝播元のテストノードに付与された強化信号に基づき、伝播元のテストノードの入出力状態に従って定まる伝播先の第１および第２の入力側テストリンクのテストノード出力への寄与度に応じ、伝播先の第１および第２の入力側テストリンクに対して報酬または罰として付与する強化信号を生成する構成とされていることが望ましい。
【００４４】
このようにテストノードから第１および第２の入力側テストリンクへ強化信号を伝播させる構成とした場合には、新たに生成されるリンク（実リンク）の候補を用意しておくことが可能となり、ネットワークの構造を自律的に変化させていくことが可能となる。
【００４５】
さらに、上記のようにテストノードから第１および第２の入力側テストリンクへ強化信号を伝播させる構成とした場合において、強化信号記憶手段は、伝播先の第１および第２の入力側テストリンクに対して付与された強化信号の履歴または強化信号の累積値もリンク毎に記憶する構成とされ、学習手段は、伝播先の第１または第２の入力側テストリンクに対して付与された強化信号の累積値が閾値を下回ったときに、閾値を下回った入力側テストリンクを削除し、任意のノードに結合される新たな入力側テストリンクを生成し、ネットワーク構造記憶手段に登録する構成とされていることが望ましい。
【００４６】
このように第１または第２の入力側テストリンクに対して付与された強化信号の累積値が閾値を下回ったときに、閾値を下回った入力側テストリンクを削除し、新たな入力側テストリンクを生成する構成とした場合には、新しく生成されるリンク（実リンク）の適切な候補となるテストリンクを用意しておくことができるので、リンクの適切で、かつ円滑な生成を実現し、ネットワークの構造を自律的に変化させていくことが可能となる。
【００４７】
なお、第１の入力側テストリンクには、このリンクの生成時に十分に大きな報酬を付与しておき、削除されないようにすることが好ましく、このようにした場合には、実質的に、第２の入力側テストリンクのみが削除の対象となる。
【００４８】
そして、上記のようにテストノードから第１および第２の入力側テストリンクへ強化信号を伝播させる構成とした場合において、強化信号記憶手段は、伝播先の第１および第２の入力側テストリンクに対して付与された強化信号の履歴または強化信号の累積値もリンク毎に記憶する構成とされ、学習手段は、伝播先の第１および第２の入力側テストリンクに対して付与された強化信号の累積値がいずれも閾値を上回ったときに、テストノードを実用化するためにテストノードをネットワークの出力に寄与する実ノードに昇格させてネットワーク構造記憶手段に登録する構成とされていることが望ましい。
【００４９】
このように第１および第２の入力側テストリンクに対して付与された強化信号の累積値がいずれも閾値を上回ったときに、テストノードを実用化する構成とした場合には、新たにノード（実ノード）を生成（追加）することが可能となり、ネットワークの構造を自律的に変化させていくことが可能となる。
【００５０】
また、以上に述べた情報処理システムにおいて、ノードは、少なくとも１つの論理回路を用いて情報処理を行う構成とされていることが望ましい。
【００５１】
ここで、「論理回路」としては、例えば、ＡＮＤ（論理積）回路、ＯＲ（論理和）回路、ＸＯＲ（排他的論理和：Exclusive OR）回路、ＮＯＴ（否定）回路、ＮＡＮＤ（否定論理積：Not AND）回路、ＮＯＲ（否定論理和：Not OR）回路、ＸＮＯＲ（排他的論理和の否定：Exclusive Not OR）回路等を用いることができる。
【００５２】
このように論理回路を用いてノードを構成した場合には、目的の制御を実現することができる情報処理システムを単純な構造で構築することが可能となる。
【００５３】
また、以上に述べた本発明の情報処理システムにより実現される情報処理方法として、以下のような本発明の情報処理方法が挙げられる。
【００５４】
すなわち、本発明は、情報処理を行う複数のノードおよびこれらのノードを連結してノード間の情報伝達を行うリンクを構成エレメントとして備えるネットワークを用いた情報処理方法であって、構成エレメント間の結合関係を含むネットワークの構造をネットワーク構造記憶手段に記憶させるとともに、ネットワークの出力生成処理で形成される構成エレメントの入出力状態を入出力状態記憶手段に記憶させておき、強化信号生成手段が、ネットワークの出力結果に基づき形成された制御対象の状態の評価結果に応じてネットワークに対して報酬または罰として付与する強化信号を生成する処理を行い、学習手段が、強化信号生成手段により生成した強化信号を少なくとも１つの構成エレメントに付与し、強化信号を付与された構成エレメントから他の構成エレメントへ構成エレメント間の連鎖的な結合関係に従って強化信号を伝播させるために、順次、伝播元の構成エレメントに付与された強化信号に基づき、入出力状態記憶手段に記憶された伝播元および／または伝播先の構成エレメントの入出力状態に応じて伝播先の構成エレメントに対して報酬または罰として付与する強化信号を生成し、生成した構成エレメントの強化信号またはその累積値を構成エレメント毎に強化信号記憶手段に記憶させるとともに、構成エレメントに付与された強化信号若しくはその履歴または強化信号の累積値若しくはその履歴を用いて構成エレメント毎に構成エレメントの生成または削除を行ってネットワークの構造を変化させ、変化後のネットワークの構造をネットワーク構造記憶手段に記憶させる処理を行い、出力生成手段が、ネットワーク構造記憶手段に記憶されたネットワークの構造を参照し、学習手段により構造を変化させたネットワークを用いてネットワークの出力を生成する処理を行うことを特徴とするものである。
【００５５】
ここで、「生成した構成エレメントの強化信号またはその累積値を構成エレメント毎に強化信号記憶手段に記憶させる」ことには、強化信号または強化信号の累積値を上書き保存する場合と、過去の強化信号または強化信号の過去の累積値を履歴として残した状態で強化信号または強化信号の累積値を追加保存する場合とが含まれる。
【００５６】
このような本発明の情報処理方法においては、前述した本発明の情報処理システムで得られる作用・効果がそのまま得られ、これにより前記目的が達成される。
【００５７】
また、本発明は、情報処理を行う複数のノードおよびこれらのノードを連結してノード間の情報伝達を行うリンクを構成エレメントとして備えるネットワークを用いた情報処理システムとして、コンピュータを機能させるためのプログラムであって、構成エレメント間の結合関係を含むネットワークの構造を記憶するネットワーク構造記憶手段と、ネットワークの出力生成処理で形成される構成エレメントの入出力状態を記憶する入出力状態記憶手段と、ネットワークの出力結果に基づき形成された制御対象の状態の評価結果に応じてネットワークに対して報酬または罰として付与する強化信号を生成する強化信号生成手段と、この強化信号生成手段により生成した強化信号を少なくとも１つの構成エレメントに付与し、強化信号を付与された構成エレメントから他の構成エレメントへ構成エレメント間の連鎖的な結合関係に従って強化信号を伝播させるために、順次、伝播元の構成エレメントに付与された強化信号に基づき、入出力状態記憶手段に記憶された伝播元および／または伝播先の構成エレメントの入出力状態に応じて伝播先の構成エレメントに対して報酬または罰として付与する強化信号を生成するとともに、構成エレメントに付与された強化信号若しくはその履歴または強化信号の累積値若しくはその履歴を用いて構成エレメント毎に構成エレメントの生成または削除を行ってネットワークの構造を変化させ、変化後のネットワークの構造をネットワーク構造記憶手段に記憶させる学習手段と、ネットワーク構造記憶手段に記憶されたネットワークの構造を参照し、学習手段により構造を変化させたネットワークを用いてネットワークの出力を生成する出力生成手段と、学習手段により生成された構成エレメントの強化信号若しくはその履歴または強化信号の累積値若しくはその履歴を構成エレメント毎に記憶する強化信号記憶手段とを備えたことを特徴とする情報処理システムとして、コンピュータを機能させるためのものである。
【００５８】
なお、上記のプログラムまたはその一部は、例えば、光磁気ディスク（ＭＯ）、コンパクトディスク（ＣＤ）を利用した読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）、デジタル・バーサタイル・ディスク（ＤＶＤ）を利用した読出し専用メモリ（ＤＶＤ−ＲＯＭ）、ＤＶＤを利用したランダム・アクセス・メモリ（ＤＶＤ−ＲＡＭ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去および書換可能な読出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）等の記録媒体に記録して保存や流通等させることが可能であるとともに、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等の有線ネットワーク、あるいは無線通信ネットワーク、さらにはこれらの組合せ等の伝送媒体を用いて伝送することが可能であり、また、搬送波に載せて搬送することも可能である。さらに、上記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。
【発明の効果】
【００５９】
以上に述べたように本発明によれば、制御対象の状態の評価結果に応じてネットワークに対して付与する強化信号を生成し、さらにこの強化信号をネットワークの構成エレメントから他の構成エレメントへ伝播させ、構成エレメント毎に個別に付与された強化信号若しくはその履歴または強化信号の累積値若しくはその履歴を用いて構成エレメント毎に評価、生成または削除を行うことにより、ネットワークの構造を自律的に変化させるので、従来のようにネットワーク全体を評価単位として評価を行う場合に比べ、評価に要する時間を短縮でき、低い時間オーダでネットワークを自律的に構築していくことができるという効果がある。
【発明を実施するための最良の形態】
【００６０】
以下に本発明の一実施形態について図面を参照して説明する。図１には、本実施形態の情報処理システム１０の全体構成が示されている。図２には、情報処理システム１０による処理で用いられるデータの構造が示されている。また、図３には、ロボット３０の動作制御の全体的な流れが示され、図４には、ネットワーク２０の処理の流れが示され、図５には、中間ＯＲノード（実ノード）の学習処理の流れが示され、図６には、非反転リンクの学習処理の流れが示されている。さらに、図７は、中間ＯＲノードの学習処理の説明図であり、図８は、中間ＯＲノードの学習時の強化信号の分配例を示す図であり、図９は、中間ＡＮＤノードの学習時の強化信号の分配例を示す図であり、図１０は、非反転リンク（実リンク）の学習処理の説明図である。そして、図１１には、初期化の構成が示され、図１２には、学習時の削除処理の構成が示されている。また、図１３は、出力ノード初期化処理Ｇ４の説明図であり、図１４は、中間ＯＲノード初期化処理Ｇ５の説明図であり、図１５は、テスト中間ＯＲノード初期化処理Ｇ７の説明図であり、図１６〜図１８は、中間ＯＲノード削除処理Ｅ１の説明図である。
【００６１】
図１において、情報処理システム１０は、ネットワーク２０を用いて制御対象（本実施形態では、一例としてロボット３０とする。）の制御を行う情報処理システムであり、１台または複数台のコンピュータにより構成されている。ネットワーク２０は、コンピュータ内に構成された情報処理用のネットワークであり、入力層、中間層、および出力層に配置されてそれぞれ個別に情報処理を行う複数の入力ノード２１、複数の中間ノード２２、および複数の出力ノード２３と、これらのノード２１，２２，２３を連結してノード間の情報伝達を行うリンク２４とを備えて構成されている。
【００６２】
各ノード２１，２２，２３およびリンク２４は、学習器の作成に用いる素子として機能する自己組織化ネットワーク素子（ＳＯＮＥ：Self-Organizing Network Elements）である。自己組織化ネットワーク素子（ＳＯＮＥ）とは、これらの素子に死滅条件、新たな素子の生成機能、強化信号生成・伝播機能等を持たせることにより、ネットワーク２０を自律的に構築していくことができる回路素子である。
【００６３】
制御対象は、本実施形態では、一例としてケペラロボットと称されるロボット３０として説明を行うものとする。但し、本発明の情報処理システムの制御対象は、ケペラロボットに限定されるものではなく、また、ロボットに限定されるものでもない。
【００６４】
ロボット３０は、図１に示すように、右車輪３１およびこれを駆動するモータ３２と、左車輪３３およびこれを駆動するモータ３４と、進行方向の前方の部分に６本、後方の部分に２本設けられた赤外線センサ３５とを備えて構成されている。このロボット３０は、壁３６への衝突を回避しながら前方へ進んでいくロボットである。８本の赤外線センサ３５は、ロボット３０と壁３６との距離Ｄを検出するために設けられている。
【００６５】
ノードは、情報処理装置として機能するものであり、本実施形態では、それぞれ論理回路（ＡＮＤ回路またはＯＲ回路）により構成され、入力ノード２１、４種類の中間ノード２２（中間ＡＮＤノード、中間ＯＲノード、テスト中間ＡＮＤノード、テスト中間ＯＲノード）、出力ノード２３の合計６種類のノードがある。ノードは、基本的には、複数の入力から１つの出力が得られる論理回路により構成されるが、入力ノード２１は、出力のみを行うダミーノードである。なお、本実施形態では、ＡＮＤ回路およびＯＲ回路を用いているが、ＸＯＲ回路等、他の種類の論理回路を用いてもよく、あるいは複数の論理回路を組み合わせて１つのノードとしてもよい。
【００６６】
入力ノード２１は、８本の赤外線センサ３５に対応して設けられている。すなわち、１本の赤外線センサ３５のセンサ信号が１６ビットであり、８本では、１６×８＝１２８ビットとなるので、１ビットに対し、１つの入力ノード２１を割り当てるとすると、本実施形態では、入力ノード２１の個数は１２８個となる。
【００６７】
出力ノード２３は、２個のモータ３２，３４に対応して設けられている。すなわち、１個のモータ出力信号（回転数）が１６ビットであり、左右２個では、１６×２＝３２ビットとなるので、１ビットに対し、１つの出力ノード２３を割り当てるとすると、本実施形態では、出力ノード２３の個数は３２個となる。出力ノード２３は、本実施形態では、全てＯＲノードとするが、ＡＮＤノードを混在させてもよい。
【００６８】
なお、入力ノード２１および出力ノード２３の個数は固定されているが、中間ノード２２の個数は、ネットワーク２０の構造が自律的に変化することから変動する。
【００６９】
リンクは、本実施形態では、反転リンク（出力が入力と反転するリンク）と、非反転リンクと、テスト反転リンクと、テスト非反転リンクとの合計４種類のリンクがある。
【００７０】
図１において、情報処理システム１０は、センサ信号取得手段４１と、状態評価用信号取得手段４２と、強化信号生成手段４３と、モータ出力信号送信手段４４と、ネットワーク処理手段５０と、ロボット情報記憶手段６０と、ネットワーク情報記憶手段６１と、ノード情報記憶手段６２と、リンク情報記憶手段６３とを備えて構成されている。
【００７１】
センサ信号取得手段４１は、８本の赤外線センサ３５から出力されたセンサ信号を取得し、ロボット情報記憶手段６０に書き込む処理を行うものである。
【００７２】
状態評価用信号取得手段４２は、制御対象であるロボット３０の状態（行動結果）を評価するための状態評価用信号を取得する処理を行うものである。本実施形態では、状態評価用信号として、センサ信号取得手段４１により取得されてロボット情報記憶手段６０（図２参照）に記憶されている赤外線センサ３５によるセンサ信号と、モータ出力信号送信手段４４によりロボット情報記憶手段６０から読み込まれてロボット３０のモータ３２，３４へ送信されるモータ出力信号（回転数）とを用いる。従って、赤外線センサ３５は、制御対象であるロボット３０の状態を検出する状態検出手段として機能する。また、本実施形態では、モータ出力信号をロボット情報記憶手段６０から読み込んで取得しているが、ロボット情報記憶手段６０に記憶されたモータ出力信号は、そのままロボット３０へ送信されるので、モータ出力信号をロボット３０から取得していると捉えることもできる。そして、このようにモータ３２，３４へ送信される制御信号としてのモータ出力信号ではなく、状態検出手段により検出した実際のモータ出力信号（実際の回転数）を、状態評価用信号として用いてもよい。なお、ロボット３０が実機ロボットではなく、ディスプレイ画面上に表示される仮想的なロボットである場合には、制御信号としてのモータ出力信号と実際のモータ出力信号（実際の回転数）とは同じである。また、状態評価用信号取得手段４２は、ロボット情報記憶手段６０に記憶された１ステップ前の状態指標値Ａ６（図２参照）も、状態評価用信号として取得する。
【００７３】
強化信号生成手段４３は、状態評価用信号取得手段４２により取得した状態評価用信号に基づき、ネットワーク２０の出力結果に基づき形成された制御対象であるロボット３０の状態（行動結果）を評価し、その評価結果に応じ、ネットワーク２０に対して報酬または罰として付与する強化信号を生成する処理を行うものである。この際、強化信号生成手段４３は、赤外線センサ３５によるセンサ信号に基づき、ロボット３０と壁３６との相対的な距離Ｄを把握し、ロボット３０が壁３６から遠ざかる動きをしたときには報酬（プラスの強化信号）を与え、壁３６に近づく動きをしたときには罰（マイナスの強化信号）を与える。また、モータ出力信号に基づき、ロボット３０が直進行動をしているか否かを把握し、直進しているときには報酬（プラスの強化信号）を与え、直進していないときには罰（マイナスの強化信号）を与える。
【００７４】
より具体的には、強化信号生成手段４３は、例えば、赤外線センサ３５によるセンサ信号のうちの少なくとも１つが、閾値（例えばゼロ）より大きな値となっていた場合には、ロボット３０が壁３６の近傍にいることになるので、８個のセンサ信号の値を合計し、その合計値に−１を乗じ、さらに必要に応じて定数を乗じ、この値を現在のロボット３０の状態を示す状態指標値とし、ロボット情報記憶手段６０の現在の状態指標値Ａ５に書き込む。また、赤外線センサ３５によるセンサ信号の合計値が、閾値（例えばゼロ）より大きな値となっていた場合に、この合計値に−１を乗じ、さらに必要に応じて定数を乗じてもよい。従って、壁３６に接近している程、マイナスの絶対値が大きくなる。そして、この現在の状態指標値から、１ステップ前のロボット３０の状態を示す状態指標値（同様にして算出されてロボット情報記憶手段６０に記憶されていた値であり、状態評価用信号取得手段４２により取得したものである。）を減じることにより、ステップ間のセンサ信号の差分をとり、得られた値をネットワーク２０に付与する強化信号とする。これにより、ロボット３０が壁３６から遠ざかれば、強化信号はプラス（報酬）となり、壁３６に近づけばマイナス（罰）となる。その後、次回のステップの処理のために、現在の状態指標値を１ステップ前の状態指標値としてロボット情報記憶手段６０に保存する。また、赤外線センサ３５によるセンサ信号のいずれもが閾値（例えばゼロ）以下の値となっていた場合には、ロボット３０が壁３６の近傍にはいないことになるので、ロボット３０の左右のモータ３２，３４の回転数が同じか否かを判断し、回転数が同じ場合には、直進していると判断し、「＋１」の強化信号（報酬）を与え、回転数が同じでない場合には、直進していないと判断し、「−０．０１」の強化信号（小さな罰）を与える。
【００７５】
モータ出力信号送信手段４４は、ネットワーク２０の出力結果に基づきロボット情報記憶手段６０に書き込まれたモータ出力信号を、ロボット３０のモータ３２，３４へ送信する処理を行うものである。
【００７６】
ネットワーク処理手段５０は、ネットワーク２０を用いた処理を行うものであり、学習手段５１と、入力変換手段５２と、出力生成手段５３と、出力変換手段５４とを備えて構成されている。
【００７７】
学習手段５１は、強化信号生成手段４３により生成した強化信号を全ての出力ノード２３に均等に付与し、出力層から中間層へ、さらに中間層から入力層へと、順次、強化信号を逆伝播させる処理、すなわち各リンク２４、各中間ノード２２、各入力ノード２１へ、構成エレメント間（ノードとリンクとの間、およびノード同士の間）の連鎖的な結合関係に従って強化信号を伝播させる処理を行うものである。この際、学習手段５１は、伝播元の構成エレメント（ノードまたはリンク）に付与された強化信号に基づき、伝播元および／または伝播先の構成エレメントの入出力状態に応じて、伝播先の構成エレメントに対して報酬または罰として付与する強化信号を生成する。また、学習手段５１は、構成エレメント（ノードまたはリンク）に付与された強化信号の累積値を用いて、構成エレメント毎に構成エレメントの生成または削除を行ってネットワーク２０の構造を変化させ、変化後のネットワーク２０の構造を、ネットワーク構造記憶手段として機能するネットワーク情報記憶手段６１、ノード情報記憶手段６２、およびリンク情報記憶手段６３（図２参照）に登録する。なお、学習処理の詳細は、後述する。
【００７８】
入力変換手段５２は、ロボット情報記憶手段６０に記憶されたセンサ信号を２進数に変換し、各入力ノード２１の出力として設定する処理を行うものである。
【００７９】
出力生成手段５３は、ネットワーク構造記憶手段として機能するネットワーク情報記憶手段６１、ノード情報記憶手段６２、およびリンク情報記憶手段６３（図２参照）に記憶されたネットワーク２０の構造を参照し、学習手段５１により構造を変化させたネットワーク２０を用いて、ネットワーク２０の出力を生成する処理を行うものである。この出力生成手段５３は、各中間ノード２２および各出力ノード２３を構成する個々の論理回路の機能（出力生成機能）を、プログラムを実行して実現するものである。
【００８０】
出力変換手段５４は、各出力ノード２３の出力（２進数）を実数に変換し、モータ出力信号（回転数）としてロボット情報記憶手段６０に書き込む処理を行うものである。
【００８１】
図２において、ロボット情報記憶手段６０は、センサ信号取得手段４１により取得した８本の赤外線センサ３５によるセンサ信号である入力配列Ａ１（実数×８、すなわち各赤外線センサ３５のセンサ信号に対応するＡ１（１）〜Ａ１（８）からなる。）と、左右のモータ出力信号（回転数）である出力配列Ａ２（実数×２、すなわち各モータ出力信号に対応するＡ２（１），Ａ２（２）からなる。）と、ネットワーク情報記憶手段６１のアドレスであるネットワークアドレスＡ３と、強化信号生成手段４３により生成されてネットワーク２０に対して付与される強化信号Ａ４（実数）と、現在のロボット３０の状態を指標する状態指標値Ａ５（実数）と、１ステップ前のロボット３０の状態を指標する状態指標値Ａ６（実数）とを記憶するものである。ここで、１ステップ前というときの「１ステップ」とは、図３のステップＳ５〜Ｓ９のループ処理を単位とする１巡の処理という意味であり、ループを構成する個々のステップＳ５〜Ｓ９毎の処理を意味するものではない。
【００８２】
なお、ネットワーク２０に対して付与される強化信号Ａ４は、後述するネットワーク情報記憶手段６１に記憶される強化信号Ｂ４と同じであるため、強化信号生成手段４３が、生成した強化信号を、ロボット情報記憶手段６０の強化信号Ａ４ではなく、ネットワーク情報記憶手段６１の強化信号Ｂ４に直接に書き込むようにすれば、強化信号Ａ４のためのメモリ確保は省略してもよい。また、現在のロボット３０の状態を指標する状態指標値は、一旦、ロボット情報記憶手段６０の現在の状態指標値Ａ５に書き込まれ、その後、ロボット情報記憶手段６０に書き込まれた現在の状態指標値Ａ５と、ロボット情報記憶手段６０に記憶されている１ステップ前の状態指標値Ａ６とを用いて強化信号の算定処理が行われるようになっているが、ロボット情報記憶手段６０に１ステップ前の状態指標値Ａ６が記憶されていれば、ロボット情報記憶手段６０の現在の状態指標値Ａ５への書き込みを行わなくても、強化信号の算定処理は行うことができるので、現在の状態指標値Ａ５のためのメモリ確保は省略してもよい。
【００８３】
ネットワーク情報記憶手段６１は、ノード情報記憶手段６２の中の各入力ノード２１の情報を記憶する部分のアドレスである入力ノードアドレスＢ１（可変長配列であり、各入力ノード２１に対応するＢ１（１），Ｂ１（２）…Ｂ１（ｍ）…からなる。）と、ノード情報記憶手段６２の中の各中間ノード２２の情報を記憶する部分のアドレスである中間ノードアドレスＢ２（可変長配列であり、各中間ノード２２に対応するＢ２（１），Ｂ２（２）…Ｂ２（ｎ）…からなる。）と、ノード情報記憶手段６２の中の各出力ノード２３の情報を記憶する部分のアドレスである出力ノードアドレスＢ３（可変長配列であり、各出力ノード２３に対応するＢ３（１），Ｂ３（２）…Ｂ３（ｊ）…からなる。）と、強化信号生成手段４３により生成されてネットワーク２０に対して付与される強化信号Ｂ４（実数）とを記憶するものである。
【００８４】
ノード情報記憶手段６２は、６種類のノードのそれぞれについて複数ずつ存在する各ノードの情報を個別に記憶するものであり、各ノードについて、リンク情報記憶手段６３の中の当該ノードの入力側リンクの情報を記憶する部分のアドレスである入力側リンクアドレスＣ１（可変長配列であり、各入力側リンクに対応するＣ１（１），Ｃ１（２）…Ｃ１（ｋ）…からなる。）と、リンク情報記憶手段６３の中の当該ノードの出力側リンクの情報を記憶する部分のアドレスである出力側リンクアドレスＣ２（可変長配列であり、各出力側リンクに対応するＣ２（１），Ｃ２（２）…Ｃ２（ｈ）…からなる。）と、ネットワーク情報記憶手段６１のアドレスであるネットワークアドレスＣ３と、リンク情報記憶手段６３の中の当該ノードの入力側に設けられたテストリンクの情報を記憶する部分のアドレスであるテストリンクアドレスＣ４と、当該ノードがＡＮＤノードかＯＲノードかを識別するためのＡＮＤ・ＯＲノードフラグＣ５（１ビットであり、ＡＮＤノードであれば「True（または１）」、ＯＲノードであれば「False（または０）」となる。）と、当該ノードが入力ノード２１であるか否かを識別するための入力ノードフラグＣ６（１ビットであり、入力ノードであれば「True（または１）」、入力ノードでなければ「False（または０）」となる。）と、当該ノードが出力ノード２３であるか否かを識別するための出力ノードフラグＣ７（１ビットであり、出力ノードであれば「True（または１）」、出力ノードでなければ「False（または０）」となる。）と、当該ノードがテストノードであるか否かを識別するためのテストノードフラグＣ８（１ビットであり、テストノードであれば「True（または１）」、テストノードでなければ「False（または０）」となる。）と、当該ノードの出力Ｃ９（１ビットであり、「True（または１）」か「False（または０）」となる。）と、当該ノードに付与された強化信号の合計値Ｃ１０（実数であるが、合計値とは各ステップの累積値のことではなく、各伝播元の構成エレメントから伝播された強化信号の合計値という意味である。）とを記憶するものである。このノード情報記憶手段６２では、ノードの追加・削除に従って、これらのノードに対応するメモリの追加・削除を動的に行う。
【００８５】
なお、ノード情報記憶手段６２において、当該ノードがテストノードの場合には、入力側リンクアドレスＣ１は、第１および第２の入力側テストリンクアドレスＣ１（Ｃ１（１）およびＣ１（２）のみ）となり、出力側リンクアドレスＣ２は、出力側テストリンクアドレスＣ２（Ｃ２（１）のみ）となり、テストリンクアドレスＣ４は無くなる。なお、テストリンクとは、出力に寄与しないリンクを意味し、付随するテストノードを所有していないリンクである。一方、実リンクというときは、出力に寄与する実用化されたリンクを意味し、付随するテストノードを所有しているリンクである。
【００８６】
リンク情報記憶手段６３は、４種類のリンクのそれぞれについて複数ずつ存在する各リンクの情報を個別に記憶するものであり、各リンクについて、ノード情報記憶手段６２の中の当該リンクの入力側ノードの情報を記憶する部分のアドレスである入力側ノードアドレスＤ１と、ノード情報記憶手段６２の中の当該リンクの出力側ノードの情報を記憶する部分のアドレスである出力側ノードアドレスＤ２と、ネットワーク情報記憶手段６１のアドレスであるネットワークアドレスＤ３と、ノード情報記憶手段６２の中の当該リンクに付随するテストノードの情報を記憶する部分のアドレスであるテストノードアドレスＤ４と、当該リンクが反転リンクであるか非反転リンクであるかを識別するための反転・非反転フラグＤ５（１ビットであり、反転リンクであれば「True（または１）」、非反転リンクであれば「False（または０）」となる。）と、当該リンクがテストリンクであるか否かを識別するためのテストリンクフラグＤ６（１ビットであり、テストリンクであれば「True（または１）」、テストリンクでなければ「False（または０）」となる。）と、当該リンクの出力Ｄ７（１ビットであり、「True（または１）」か「False（または０）」となる。）と、当該リンクに対して付与された強化信号の累積値Ｄ８（実数であり、複数のステップの累積値である。）と、当該リンクに対して付与された強化信号Ｄ９（実数であり、１ステップ分の値である。）とを記憶するものである。このリンク情報記憶手段６３では、リンクの追加・削除に従って、これらのリンクに対応するメモリの追加・削除を動的に行う。
【００８７】
また、ネットワーク情報記憶手段６１のＢ１〜Ｂ３を記憶する部分と、ノード情報記憶手段６２のＣ１〜Ｃ８を記憶する部分と、リンク情報記憶手段６３のＤ１〜Ｄ６を記憶する部分とにより、構成エレメント間の結合関係を含むネットワーク２０の構造を記憶するネットワーク構造記憶手段が構成されている。
【００８８】
さらに、ノード情報記憶手段６２のＣ９を記憶する部分と、リンク情報記憶手段６３のＤ７を記憶する部分とにより、ネットワーク２０の出力生成処理で形成される構成エレメントの入出力状態を記憶する入出力状態記憶手段が構成されている。
【００８９】
そして、ネットワーク情報記憶手段６１のＢ４を記憶する部分と、ノード情報記憶手段６２のＣ１０を記憶する部分と、リンク情報記憶手段６３のＤ８，Ｄ９を記憶する部分とにより、学習手段５１により生成された、構成エレメントに対する強化信号またはその累積値を構成エレメント毎に記憶する強化信号記憶手段が構成されている。
【００９０】
以上において、センサ信号取得手段４１、状態評価用信号取得手段４２、強化信号生成手段４３、モータ出力信号送信手段４４、およびネットワーク処理手段５０は、情報処理システム１０を構成するコンピュータ本体（パーソナル・コンピュータのみならず、その上位機種のものも含む。）の内部に設けられた中央演算処理装置（ＣＰＵ）、およびこのＣＰＵの動作手順を規定する１つまたは複数のプログラム（例えば、Ｃ＋＋言語で記述されたプログラム等）により実現される。
【００９１】
また、ロボット情報記憶手段６０、ネットワーク情報記憶手段６１、ノード情報記憶手段６２、およびリンク情報記憶手段６３は、例えば、主メモリやキャッシュメモリ、あるいはローカルメモリ等で実現されるが、アクセス速度や記憶容量等に問題が生じない範囲であれば、例えば、ハードディスク、ＭＯ、ＤＶＤ−ＲＡＭ、ＦＤ、磁気テープ等の外部記憶装置を用いて実現してもよい。
【００９２】
このような本実施形態においては、以下のようにして情報処理システム１０によりロボット３０の動作の自律制御を行う。
【００９３】
先ず、図３〜図６を参照しながら、情報処理システム１０によるロボット３０の動作制御の全体的な流れを説明する。
【００９４】
図３において、情報処理システム１０を実現するためのプログラムを立ち上げ、ロボット３０の動作制御を開始する（ステップＳ１）。
【００９５】
続いて、ネットワーク処理手段５０により、必要な初期化処理を行う（ステップＳ２）。ここで行う初期化処理には、ロボット情報記憶手段６０に記憶される情報の初期化処理（後述する図１１のロボット初期化処理Ｇ１）と、ネットワーク情報記憶手段６１に記憶される情報の初期化処理（後述する図１１のネットワーク初期化処理Ｇ２）と、必要個数（本実施形態では、１２８個）の入力ノード２１を生成する初期化処理（後述する図１１の入力ノード初期化処理Ｇ３）と、必要個数（本実施形態では、３２個）の出力ノード２３を生成する初期化処理（後述する図１１の出力ノード初期化処理Ｇ４）と、各出力ノード２３の入力側リンクとして各出力ノード２３からいずれかの入力ノード２１にランダムに連結する実リンクを生成する初期化処理（後述する図１１の反転リンク初期化処理Ｇ９または非反転リンク初期化処理Ｇ１０）と、各出力ノード２３の入力側に設けられて各出力ノード２３からいずれかの入力ノード２１にランダムに連結するテストリンクを生成する初期化処理（後述する図１１のテスト反転リンク初期化処理Ｇ１１またはテスト非反転リンク初期化処理Ｇ１２）と、生成した実リンク（後述する図１１の反転リンク初期化処理Ｇ９または非反転リンク初期化処理Ｇ１０で生成された反転リンクまたは非反転リンク）に付随するテストノードを生成する初期化処理（後述する図１１のテスト中間ＯＲノード初期化処理Ｇ７またはテスト中間ＡＮＤノード初期化処理Ｇ８）と、生成したテストノードの第１および第２の入力側テストリンクを生成する初期化処理（後述する図１１のテスト反転リンク初期化処理Ｇ１１またはテスト非反転リンク初期化処理Ｇ１２）とがある。
【００９６】
それから、センサ信号取得手段４１により、８本の赤外線センサ３５で検出されたセンサ信号を取得し、取得した８個のセンサ信号をロボット情報記憶手段６０の入力配列Ａ１（１）〜Ａ１（８）（図２参照）に書き込む（ステップＳ３）。
【００９７】
そして、状態評価用信号取得手段４２により、状態評価用信号として、ロボット情報記憶手段６０の入力配列Ａ１（１）〜Ａ１（８）に記憶されている８本の赤外線センサ３５によるセンサ信号と、ロボット情報記憶手段６０の出力配列Ａ２（１），Ａ２（２）に記憶されているモータ出力信号（回転数）と、ロボット情報記憶手段６０に記憶されている１ステップ前の状態指標値Ａ６とを取得する（ステップＳ４）。
【００９８】
続いて、強化信号生成手段４３により、状態評価用信号取得手段４２により取得した状態評価用信号に基づき、制御対象であるロボット３０の状態（行動結果）を評価し、その評価結果に応じ、ネットワーク２０に対して報酬または罰として付与する強化信号を生成する（ステップＳ４）。なお、前述した初回の状態評価用信号取得処理では、出力配列Ａ２（１），Ａ２（２）には、学習により構造を変化させたネットワーク２０の出力結果に基づくモータ出力信号（回転数）は入っておらず、また、１ステップ前の状態指標値Ａ６にも前回ステップで状態評価を行った結果としての状態指標値が入っているわけではないので、生成される初回の強化信号は、ゼロとなる。そして、強化信号生成手段４３は、このようにして生成した強化信号を、ロボット情報記憶手段６０の強化信号Ａ４へ書き込む。また、強化信号生成手段４３は、次回ステップでの状態評価処理で用いるために、現在のステップでロボット３０の状態（行動結果）を評価して得られた現在の状態指標値を、ロボット情報記憶手段６０の１ステップ前の状態指標値Ａ６へ書き込んで保存する。なお、前述したように、初回の強化信号はゼロとなるので、後述する学習手段５１による初回の学習処理は、実質的に行われないに等しく、ネットワーク２０の構造は変化しない。
【００９９】
それから、ネットワーク処理手段５０により、ネットワーク２０の処理、すなわち学習処理および出力生成処理を行う（ステップＳ５）。
【０１００】
図４において、学習処理では、先ず、学習手段５１により、ロボット情報記憶手段６０の強化信号Ａ４を読み込み、ネットワーク情報記憶手段６１の強化信号Ｂ４に書き込むことにより、ネットワーク２０として強化信号を受け取る（ステップＳ５０１）。
【０１０１】
次に、学習手段５１により、ネットワーク情報記憶手段６１の出力ノードアドレスＢ３を参照し、ノード情報記憶手段６２の中のこれらの出力ノードアドレスＢ３に対応する各出力ノード２３の情報を記憶する部分における強化信号の合計値Ｃ１０に、それぞれネットワーク情報記憶手段６１の強化信号Ｂ４と同じ値を格納する。これにより、全ての出力ノード２３に対し、均等に強化信号が伝わる（ステップＳ５０２）。
【０１０２】
続いて、学習手段５１により、ネットワーク情報記憶手段６１の出力ノードアドレスＢ３に対応する各出力ノード２３について学習処理を行う（ステップＳ５０３）。出力ノード２３の学習処理の詳細は後述する。
【０１０３】
さらに、学習手段５１により、ネットワーク情報記憶手段６１の中間ノードアドレスＢ２に対応する各中間ノード２２について学習処理を行う（ステップＳ５０４）。中間ノード２２の学習処理の詳細は、図５を用いて後述する。図５には、中間ＯＲノード（実ノード）の学習処理の流れが示されている。
【０１０４】
それから、学習手段５１により、ネットワーク情報記憶手段６１の出力ノードアドレスＢ３に対応する各出力ノード２３についてのノード情報記憶手段６２の入力側リンクアドレスＣ１を参照し、これらの入力側リンクアドレスＣ１に対応する各出力ノード２３の各入力側リンクの学習処理を行う（ステップＳ５０５）。出力ノード２３の入力側リンクの学習処理の詳細は後述する。
【０１０５】
さらに、学習手段５１により、ネットワーク情報記憶手段６１の中間ノードアドレスＢ２に対応する各中間ノード２２についてのノード情報記憶手段６２の入力側リンクアドレスＣ１を参照し、これらの入力側リンクアドレスＣ１に対応する各中間ノード２３の各入力側リンクの学習処理を行う（ステップＳ５０６）。中間ノード２２の入力側リンクの学習処理の詳細は、図６を用いて後述する。図６には、非反転リンクの学習処理の流れが示されている。
【０１０６】
その後、以上のようにして学習処理（ステップＳ５０１〜Ｓ５０６参照）を行って構造を変化させた後のネットワーク２０を用いて、ネットワーク２０の新たな出力を生成する処理を行う。なお、学習処理によるネットワーク２０の構造の変化は、構造を変化させる前のネットワーク２０の出力結果に基づいて形成されたロボット３０の状態の評価結果に応じて生成された強化信号によってもたらされるので、学習処理（ステップＳ５０１〜Ｓ５０６参照）で各種判定に用いられる構成エレメントの入出力状態は、その強化信号の生成の基になるロボット３０の状態を形成したネットワーク出力の生成処理で得られた入出力状態でなければならない。この点で、学習処理（ステップＳ５０１〜Ｓ５０６参照）で各種判定に用いられる構成エレメントの入出力状態は、メモリ（図２の入出力状態記憶手段）に残っている入出力状態、すなわち構造を変化させる前のネットワーク２０の出力生成処理で得られた入出力状態であるから、上記の要請を満足している。
【０１０７】
出力生成処理では、先ず、入力変換手段５２により、ネットワーク情報記憶手段６１の入力ノードアドレスＢ１を参照してノード情報記憶手段６２の中の各入力ノード２１の情報を記憶する部分を把握し、ロボット情報記憶手段６０の入力配列Ａ１（１）〜Ａ１（８）に記憶された８個のセンサ信号をそれぞれ２進数に変換し、変換して得られた値をノード情報記憶手段６２の各入力ノード２１の出力Ｃ９として設定する（ステップＳ５０７）。
【０１０８】
続いて、出力生成手段５３により、ネットワーク情報記憶手段６１の中間ノードアドレスＢ２を参照してノード情報記憶手段６２の中の各中間ノード２２の情報を記憶する部分を把握し、各中間ノード２２を構成する論理回路の機能に従って、各中間ノード２２の出力Ｃ９を計算する（ステップＳ５０８）。この際、新しく生成される中間ノード２２は、ネットワーク情報記憶手段６１の中間ノードアドレスＢ２の配列の後ろに追加されていき、この新設の中間ノード２２は、入出力の連鎖上、ネットワーク２０の入力層に近い側に配置されていくので、入力層から出力層に向かう出力生成処理を実現するために、中間ノード２２の出力生成処理は、ネットワーク情報記憶手段６１の中間ノードアドレスＢ２の配列の逆順で行う。
【０１０９】
さらに、出力生成手段５３により、ネットワーク情報記憶手段６１の出力ノードアドレスＢ３を参照してノード情報記憶手段６２の中の各出力ノード２３の情報を記憶する部分を把握し、各出力ノード２３を構成する論理回路の機能に従って、各出力ノード２３の出力Ｃ９を計算する（ステップＳ５０９）。
【０１１０】
以上のステップＳ５０８，Ｓ５０９で行うノードの計算処理は、通常の論理回路の処理と同様であり、ノード情報記憶手段６２の当該ノードの全ての入力側リンクアドレスＣ１に対応する入力側リンクについてのリンク情報記憶手段６３のリンクの出力Ｄ７を読み込み、これらの入力側リンクの出力Ｄ７を、計算対象となっている当該ノードの入力とする。そして、ノード情報記憶手段６２の当該ノードのＡＮＤ・ＯＲノードフラグＣ５を参照して当該ノードがＡＮＤノードかＯＲノードかを把握し、ＡＮＤノードであればＡＮＤ回路と同じ処理を行い、ＯＲノードであればＯＲ回路と同じ処理を行うことにより、当該ノードの出力Ｃ９を算出する。
【０１１１】
例えば、計算対象となっている当該ノードが、中間ＯＲノード、テスト中間ＯＲノード、出力ノード２３（本実施形態では、ＯＲノードのみとする。）である場合には、当該ノードの出力Ｃ９をFalse（または０）で上書きした後、入力側リンクアドレスＣ１に対応する全ての入力側リンクの出力Ｄ７のうち、１つでもTrue（または１）であれば、当該ノードの出力Ｃ９をTrue（または１）で上書きする。一方、計算対象となっている当該ノードが、中間ＡＮＤノード、テスト中間ＡＮＤノードである場合には、当該ノードの出力Ｃ９をTrue（または１）で上書きした後、入力側リンクアドレスＣ１に対応する全ての入力側リンクの出力Ｄ７のうち、１つでもFalse（または０）であれば、当該ノードの出力Ｃ９をFalse（または０）で上書きする。
【０１１２】
また、ステップＳ５０８，Ｓ５０９のノードの計算処理と併せて行うリンクの計算処理も、通常の論理回路の処理と同様であり、計算対象となっている当該リンクが、反転リンク、テスト反転リンクである場合には、リンク情報記憶手段６３の当該リンクの入力側ノードアドレスＤ１に対応する入力側ノードについてのノード情報記憶手段６２のノードの出力Ｃ９の値を反転させた値を、当該リンクの出力Ｄ７に上書きし、計算対象となっている当該リンクが、非反転リンク、テスト非反転リンクである場合には、リンク情報記憶手段６３の当該リンクの入力側ノードアドレスＤ１に対応する入力側ノードについてのノード情報記憶手段６２のノードの出力Ｃ９の値を、そのまま当該リンクの出力Ｄ７に上書きする。
【０１１３】
その後、出力変換手段５４により、ネットワーク情報記憶手段６１の出力ノードアドレスＢ３を参照してノード情報記憶手段６２の中の各出力ノード２３の情報を記憶する部分を把握し、各出力ノード２３の出力Ｃ９（２進数）を実数に変換し、モータ出力信号（回転数）としてロボット情報記憶手段６０の出力配列Ａ２に書き込む（ステップＳ５１０）。
【０１１４】
図３において、ネットワーク処理手段５０による処理後に、モータ出力信号送信手段４４により、ネットワーク２０の出力結果（各出力ノード２３の出力Ｃ９）に基づきロボット情報記憶手段６０の出力配列Ａ２に書き込まれたモータ出力信号（回転数）を、ロボット３０のモータ３２，３４へ送信し、これによりモータ３２，３４を駆動させてロボット３０を動作させる（ステップＳ６）。
【０１１５】
続いて、センサ信号取得手段４１により、８本の赤外線センサ３５で検出されたセンサ信号を取得し、取得した８個のセンサ信号をロボット情報記憶手段６０の入力配列Ａ１（１）〜Ａ１（８）に書き込む（ステップＳ７）。
【０１１６】
そして、状態評価用信号取得手段４２により、状態評価用信号として、ロボット情報記憶手段６０の入力配列Ａ１（１）〜Ａ１（８）に記憶されている８本の赤外線センサ３５によるセンサ信号と、ロボット情報記憶手段６０の出力配列Ａ２（１），Ａ２（２）に記憶されているモータ出力信号（回転数）と、ロボット情報記憶手段６０に記憶されている１ステップ前の状態指標値Ａ６とを取得する（ステップＳ８）。なお、この際には、初回の状態評価用信号取得処理の場合（ステップＳ４の場合）とは異なり、出力配列Ａ２（１），Ａ２（２）には、ステップＳ５の学習処理で構造を変化させたネットワーク２０の出力結果に基づくモータ出力信号（回転数）が入っており、また、１ステップ前の状態指標値Ａ６にも前回ステップで状態評価を行った結果としての状態指標値が入っているので、この状態評価用信号に基づく評価結果に応じて強化信号生成手段４３により生成される強化信号は、適正な状態評価結果に応じた意味のある強化信号となる。
【０１１７】
続いて、強化信号生成手段４３により、状態評価用信号取得手段４２により取得した状態評価用信号に基づき、ステップＳ５の学習処理で構造を変化させたネットワーク２０の出力結果に基づき形成された制御対象であるロボット３０の状態（行動結果）を評価し、その評価結果に応じ、ネットワーク２０に対して報酬または罰として付与する強化信号を生成する（ステップＳ８）。例えば、ロボット３０が直進している場合には、「＋１」の強化信号（報酬）を生成し、センサ信号の合計値が閾値（例えば０）より大きい場合には、その合計値の増減分（前回ステップの合計値との差分）に−１および定数を乗じた値の強化信号（報酬または罰）を生成し、それ以外の場合には、例えば「−０．０１」の強化信号（小さな罰）を生成する。そして、強化信号生成手段４３は、このようにして生成した強化信号を、ロボット情報記憶手段６０の強化信号Ａ４へ書き込む。また、強化信号生成手段４３は、次回ステップでの状態評価処理のために、現在のステップでロボット３０の状態（行動結果）を評価して得られた現在の状態指標値を、ロボット情報記憶手段６０の１ステップ前の状態指標値Ａ６へ書き込んで保存する。
【０１１８】
その後、ロボット３０の動作制御を終了させる指示が出ているか否かを判断し（ステップＳ９）、終了指示が出ていない場合には、ステップＳ５のネットワーク２０の処理に戻り、以降、終了指示が出るまで、ステップＳ５〜Ｓ９の処理を繰り返し、一方、終了指示が出ている場合には、ロボット３０の動作制御を終了する（ステップＳ１０）。
【０１１９】
以下には、学習手段５１による中間ノード２２（中間ＯＲノード、中間ＡＮＤノード、テスト中間ＯＲノード、テスト中間ＡＮＤノード）および出力ノード２３の学習処理の流れを説明する。
【０１２０】
＜中間ＯＲノードの学習処理＞
図７には、学習対象となる中間ＯＲノード（実ノード）１００の一例が示されている。中間ＯＲノード１００には、一例として３本の入力側リンク１０１，１０２，１０３および出力側リンク１０４が結合されるとともに、中間ＯＲノード１００の入力側には、テストリンク１０５が設けられている。各入力側リンク１０１，１０２，１０３は、入力側ノード１０６，１０７，１０８にそれぞれ結合され、出力側リンク１０４は、出力側ノード１０９に結合され、テストリンク１０５は、任意のノード１１０にランダムに結合されている。
【０１２１】
ここで、各入力側リンク１０１，１０２，１０３による中間ＯＲノード１００への入力を、Ｘ（１），Ｘ（２），Ｘ（３）とする。より一般的には、Ｎ本の入力側リンクがあるとすると、Ｘ（１）〜Ｘ（Ｎ）とする。つまり、ｋ番目の入力側リンクによる中間ＯＲノード１００への入力を、Ｘ（ｋ）（ｋ＝１〜Ｎ）とする。また、中間ＯＲノード１００の出力をＹとする。また、Ｘ（１）〜Ｘ（Ｎ）のうちのＴｒｕｅの数をＮｕｍＴとし、中間ＯＲノード１００に対して付与された強化信号をＲとする。さらに、各入力側リンク１０１，１０２，１０３に対して付与する強化信号を、Ｒ１（１），Ｒ１（２），Ｒ１（３）とし、これらの入力側ノード１０６，１０７，１０８に対して付与する強化信号を、Ｒ２（１），Ｒ２（２），Ｒ２（３）とする。より一般的には、着目するｋ番目の入力側リンクに対して付与する強化信号を、Ｒ１（ｋ）（ｋ＝１〜Ｎ）とし、その入力側ノードに対して付与する強化信号を、Ｒ２（ｋ）（ｋ＝１〜Ｎ）とする。
【０１２２】
図５において、先ず、学習手段５１は、中間ＯＲノード１００に対して付与された強化信号Ｒに基づき、中間ＯＲノード１００の入出力状態に応じて、各入力側リンク１０１，１０２，１０３の中間ＯＲノード１００の出力Ｙへの寄与度に従って各入力側リンク１０１，１０２，１０３に強化信号が分配（伝播）されるように、各入力側リンク１０１，１０２，１０３に対して付与する強化信号Ｒ１（１），Ｒ１（２），Ｒ１（３）を算定する（ステップＳ５０４０１）。また、これと併せて、各入力側リンク１０１，１０２，１０３の入力側ノード１０６，１０７，１０８に対して付与する強化信号Ｒ２（１），Ｒ２（２），Ｒ２（３）を算定する（ステップＳ５０４０２）。
【０１２３】
この際、中間ＯＲノード１００への入力Ｘ（１），Ｘ（２），Ｘ（３）は、ノード情報記憶手段６２の中の中間ＯＲノード１００の入力側リンクアドレスＣ１を参照し、リンク情報記憶手段６３の各入力側リンク１０１，１０２，１０３の出力Ｄ７を読み込んで得られる。また、中間ＯＲノード１００の出力Ｙは、ノード情報記憶手段６２の中の中間ＯＲノード１００の出力Ｃ９を読み込んで得られる。さらに、中間ＯＲノード１００に対して付与された強化信号Ｒは、ノード情報記憶手段６２の中の中間ＯＲノード１００の強化信号の合計値Ｃ１０を読み込んで得られる。
【０１２４】
そして、学習手段５１は、次のようなルールで、中間ＯＲノードに結合されているＮ本の入力側リンクのうち着目する１本の入力側リンクに対して付与する強化信号Ｒ１（ｋ）（ｋ＝１〜Ｎ）、および着目する１本の入力側リンクの入力側ノードに対して付与する強化信号Ｒ２（ｋ）（ｋ＝１〜Ｎ）を算定する。すなわち、ｋ番目（ｋ＝１〜Ｎ）の入力側リンクが、次のケース１〜５のいずれに該当するかを判断し、１本１本の入力側リンクについて強化信号Ｒ１（ｋ）を算定するとともに、１本１本の入力側リンクの入力側ノードについて強化信号Ｒ２（ｋ）を算定していく。
【０１２５】
ケース１：（Ｙ＝Ｔ）∧（Ｘ（ｋ）＝Ｆ）の場合には、Ｒ１（ｋ）＝０，Ｒ２（ｋ）＝０とする。この場合は、ｋ番目の入力側リンクによる入力Ｘ（ｋ）が、中間ＯＲノードの出力Ｙに寄与していないので、強化信号を０とする。
【０１２６】
ケース２：Ｙ＝Ｆの場合には、Ｒ１（ｋ）＝Ｒ／Ｎ，Ｒ２（ｋ）＝Ｒ／Ｎとする。この場合は、Ｙ＝Ｆなので、全ての入力Ｘ（ｋ）（ｋ＝１〜Ｎ）がＸ（ｋ）＝Ｆであり、出力Ｙに均等に寄与しているので、強化信号を均等に分配する。
【０１２７】
ケース３：（Ｙ＝Ｔ）∧（ＮｕｍＴ＝１）の場合には、Ｒ１（ｋ）＝Ｒ，Ｒ２（ｋ）＝Ｒとする。この場合は、着目する入力側リンクによる入力がＸ（ｋ）＝Ｔであり、しかもＴｒｕｅの入力がこの入力側リンクによる入力だけであり、この入力側リンクの出力Ｙへの寄与度が大きいので、絶対値の大きな強化信号を付与する。
【０１２８】
ケース４：（Ｙ＝Ｔ）∧（ＮｕｍＴ≠１）∧（Ｒ≧０）の場合には、Ｒ１（ｋ）＝−Ｒ×（ＮｕｍＴ−１）／Ｎ，Ｒ２（ｋ）＝０とする。この場合は、着目する入力側リンクによる入力がＸ（ｋ）＝Ｔであるが、Ｔｒｕｅの入力がこの入力側リンクによる入力だけではないので、この入力側リンクによる入力がたとえＴｒｕｅでなかったとしても、出力Ｙは、他の入力側リンクによる入力により、Ｙ＝Ｔとなることから、この入力側リンクの出力Ｙへの寄与度は低い。従って、強化信号Ｒ１（ｋ）として比較的小さな罰を付与する。
【０１２９】
ケース５：（Ｙ＝Ｔ）∧（ＮｕｍＴ≠１）∧（Ｒ≦０）の場合には、Ｒ１（ｋ）＝Ｒ×ＮｕｍＴ／Ｎ，Ｒ２（ｋ）＝０とする。この場合も、ケース４の場合と同様に、着目する入力側リンクによる入力がＸ（ｋ）＝Ｔであるが、Ｔｒｕｅの入力がこの入力側リンクによる入力だけではないので、この入力側リンクによる入力がたとえＴｒｕｅでなかったとしても、出力Ｙは、他の入力側リンクによる入力により、Ｙ＝Ｔとなることから、この入力側リンクの出力Ｙへの寄与度は低い。また、伝播元の中間ＯＲノードに対する強化信号Ｒとして罰が付与されているので、強化信号Ｒ１（ｋ）として、ケース４の場合よりも大きな罰を付与する。
【０１３０】
図８には、伝播元の中間ＯＲノードが、図７の中間ＯＲノード１００である場合について、以上のケース１〜５のルールに従って算定した強化信号の分配例が示されている。
【０１３１】
さらに、学習手段５１は、テストリンク１０５に対して付与する強化信号ＲＴを算定する。この際、学習手段５１は、テストリンク１０５が、仮に中間ＯＲノード１００の入力側リンクとして存在していた場合を想定して強化信号を算定する（ステップＳ５０４０３）。先ず、テストリンク１０５が入力側リンクとして加わることにより出力Ｙが変化しない場合には、入力Ｘ（ｋ）にテストリンク１０５による入力ＴＸ、すなわちテストリンク１０５の出力（リンク情報記憶手段６３のテストリンク１０５の出力Ｄ７を読み込んで得られる。）を追加し、前述したケース１〜５の場合分けに従ってその強化信号ＲＴを算定する。次に、テストリンク１０５が入力側リンクとして加わることにより出力Ｙが変化する場合には、入力Ｘ（ｋ）にテストリンク１０５による入力ＴＸ、すなわちテストリンク１０５の出力Ｄ７を追加し、Ｙへ中間ＯＲノード１００の出力Ｃ９（実際の出力）を反転させた値を代入し、Ｒへ中間ＯＲノード１００の強化信号の合計値Ｃ１０（実際の強化信号の合計値）の符号を変えた−Ｃ１０を代入して、前述したケース１〜５のルールを適用することにより、その強化信号ＲＴを算定する。
【０１３２】
そして、以上のようにして算定した強化信号、すなわち各入力側リンク１０１，１０２，１０３に対して付与する強化信号Ｒ１（１），Ｒ１（２），Ｒ１（３）と、テストリンク１０５に対して付与する強化信号ＲＴとを、リンク情報記憶手段６３の当該リンクの強化信号の累積値Ｄ８に加算して累積値を更新するとともに、当該リンクの強化信号Ｄ９に上書きし、また、各入力側リンク１０１，１０２，１０３の入力側ノード１０６，１０７，１０８に対して付与する強化信号Ｒ２（１），Ｒ２（２），Ｒ２（３）を、ノード情報記憶手段６２の当該ノードの強化信号の合計値Ｃ１０に加算（当該ノードには、他の構成エレメントからも強化信号が伝播されてくるので、それらを加算するという意味である。）する（ステップＳ５０４０４）。
【０１３３】
続いて、学習手段５１は、各入力側リンク１０１，１０２，１０３について、それぞれリンク情報記憶手段６３の当該リンクの強化信号の累積値Ｄ８が閾値（本実施形態では、一例として０とする。）を下回っているか否かを判断し、下回っている場合には、その入力側リンクを削除する（ステップＳ５０４０５）。この場合には、後述する図１２の反転リンクの削除処理Ｅ５または非反転リンクの削除処理Ｅ６を行う。
【０１３４】
また、学習手段５１は、テストリンク１０５について、リンク情報記憶手段６３の当該リンクの強化信号の累積値Ｄ８が閾値（本実施形態では、一例として０とする。）を下回っているか否かを判断し、下回っている場合には、テストリンク１０５を削除する（ステップＳ５０４０６）。この場合には、後述する図１２のテスト反転リンクの削除処理Ｅ７またはテスト非反転リンクの削除処理Ｅ８を行う。そして、任意のノードに結合する新たなテストリンクをランダムに生成し、ノード情報記憶手段６２の中間ＯＲノード１００のテストリンクアドレスＣ４に登録する。
【０１３５】
さらに、学習手段５１は、テストリンク１０５について、リンク情報記憶手段６３の当該リンクの強化信号の累積値Ｄ８が閾値を上回っているか否かを判断し、上回っている場合には、テストリンク１０５を実リンクに昇格させて実用化するため、ノード情報記憶手段６２の中間ＯＲノード１００のテストリンクアドレスＣ４と、中間ＯＲノード１００のアドレスＢ２と、ネットワークアドレスＣ３とを用いて、実リンクを新たに生成し、中間ＯＲノード１００の入力側リンクアドレスＣ１に追加登録する。この際、テストリンク１０５についてのリンク情報記憶手段６３の反転・非反転フラグＤ５がＴｒｕｅ（反転リンクを意味する。）のときには、反転リンクを新たに生成し、Ｆａｌｓｅ（非反転リンクを意味する。）のときには、非反転リンクを新たに生成する。また、これと併せて、テストリンク１０５を削除する。この場合には、後述する図１２のテスト反転リンクの削除処理Ｅ７またはテスト非反転リンクの削除処理Ｅ８を行う。そして、任意のノードに結合する新たなテストリンクをランダムに生成し、ノード情報記憶手段６２の中間ＯＲノード１００のテストリンクアドレスＣ４に登録する（ステップＳ５０４０７）。
【０１３６】
そして、学習手段５１は、中間ＯＲノード１００の入力側リンクアドレスＣ１に登録されている入力側リンクの数が、１以下になった場合には、中間ＯＲノード１００を削除する（ステップＳ５０４０８）。この場合には、後述する図１２の中間ＯＲノードの削除処理Ｅ１を行う。
【０１３７】
それから、学習手段５１は、ノード情報記憶手段６２の中間ＯＲノード１００の強化信号の合計値Ｃ１０をクリアして０にする（ステップＳ５０４０９）。
【０１３８】
＜中間ＡＮＤノードの学習処理＞
中間ＡＮＤノードの学習処理は、上述した中間ＯＲノードの学習処理と略同様である。先ず、学習手段５１は、中間ＡＮＤノードに対して付与された強化信号Ｒに基づき、中間ＡＮＤノードの入出力状態に応じて、各入力側リンクの中間ＡＮＤノードの出力Ｙへの寄与度に従って各入力側リンクに強化信号が分配（伝播）されるように、各入力側リンクに対して付与する強化信号Ｒ１（ｋ）を算定する。また、これと併せて、各入力側リンクの入力側ノードに対して付与する強化信号Ｒ２（ｋ）を算定する。
【０１３９】
この際、前述した中間ＯＲノードの強化信号の算定の際の入力Ｘ（ｋ）および出力Ｙへ、中間ＡＮＤノードの入力側リンクアドレスＣ１に対応する各入力側リンクの出力Ｄ７および中間ＡＮＤノードの出力Ｃ９の値を代入するときに、それらの値を反転させて代入する。これは、ド・モルガンの法則により、ＡＮＤノードの入出力を全て反転させると、ＯＲノードとなることによるものである。
【０１４０】
そして、学習手段５１は、上記のようにド・モルガンの法則に従って入出力を全て反転させることにより、前述した中間ＯＲノードの学習処理の場合と同じルールで、中間ＡＮＤノードに結合されているＮ本の入力側リンクのうち着目する１本の入力側リンクに対して付与する強化信号Ｒ１（ｋ）（ｋ＝１〜Ｎ）、および着目する１本の入力側リンクの入力側ノードに対して付与する強化信号Ｒ２（ｋ）（ｋ＝１〜Ｎ）を算定する。すなわち、ｋ番目（ｋ＝１〜Ｎ）の入力側リンクが、前述したケース１〜５のいずれに該当するかを判断し、１本１本の入力側リンクについて強化信号Ｒ１（ｋ）を算定するとともに、１本１本の入力側リンクの入力側ノードについて強化信号Ｒ２（ｋ）を算定していく。
【０１４１】
図９には、伝播元の中間ＡＮＤノードが、図７の中間ＯＲノード１００のように３つの入力側リンクを有する場合について、前述したケース１〜５のルールに従って算定した強化信号の分配例が示されている。図９は、図８の入出力Ｘ（１），Ｘ（２），Ｘ（３），Ｙを反転させ、その他の強化信号Ｒ，Ｒ１（１），Ｒ１（２），Ｒ１（３），Ｒ２（１），Ｒ２（２），Ｒ２（３）をそのままとした状態となっている。
【０１４２】
さらに、学習手段５１は、テストリンクに対して付与する強化信号ＲＴを算定する。この際、学習手段５１は、テストリンクが、仮に中間ＡＮＤノードの入力側リンクとして存在していた場合を想定して強化信号を算定する。先ず、テストリンクが入力側リンクとして加わることにより出力Ｙが変化しない場合には、入力Ｘ（ｋ）にテストリンクによる入力ＴＸ、すなわちテストリンクの出力（リンク情報記憶手段６３のテストリンクの出力Ｄ７を読み込んで得られる。）を反転させて追加し、出力Ｙに中間ＡＮＤノードの出力Ｃ９を反転させた値を代入し、前述したケース１〜５の場合分けに従ってその強化信号ＲＴを算定する。次に、テストリンクが入力側リンクとして加わることにより出力Ｙが変化する場合には、入力Ｘ（ｋ）にテストリンクによる入力ＴＸ、すなわちテストリンクの出力Ｄ７を反転させて追加し、Ｙへ中間ＡＮＤノードの出力Ｃ９（実際の出力）の値を代入し、Ｒへ中間ＡＮＤノードの強化信号の合計値Ｃ１０（実際の強化信号の合計値）の符号を変えた−Ｃ１０を代入して、前述したケース１〜５のルールを適用することにより、その強化信号ＲＴを算定する。
【０１４３】
そして、以上のようにして算定した強化信号、すなわち各入力側リンクに対して付与する強化信号Ｒ１（ｋ）（ｋ＝１〜Ｎ）と、テストリンクに対して付与する強化信号ＲＴとを、リンク情報記憶手段６３の当該リンクの強化信号の累積値Ｄ８に加算して累積値を更新するとともに、当該リンクの強化信号Ｄ９に上書きし、また、各入力側リンクの入力側ノードに対して付与する強化信号Ｒ２（ｋ）（ｋ＝１〜Ｎ）を、ノード情報記憶手段６２の当該ノードの強化信号の合計値Ｃ１０に加算（当該ノードには、他の構成エレメントからも強化信号が伝播されてくるので、それらを加算するという意味である。）する。
【０１４４】
続いて、学習手段５１は、各入力側リンクについて、それぞれリンク情報記憶手段６３の当該リンクの強化信号の累積値Ｄ８が閾値（本実施形態では、一例として０とする。）を下回っているか否かを判断し、下回っている場合には、その入力側リンクを削除する。この場合には、後述する図１２の反転リンクの削除処理Ｅ５または非反転リンクの削除処理Ｅ６を行う。
【０１４５】
また、学習手段５１は、テストリンクについて、リンク情報記憶手段６３の当該リンクの強化信号の累積値Ｄ８が閾値（本実施形態では、一例として０とする。）を下回っているか否かを判断し、下回っている場合には、テストリンクを削除する。この場合には、後述する図１２のテスト反転リンクの削除処理Ｅ７またはテスト非反転リンクの削除処理Ｅ８を行う。そして、任意のノードに結合する新たなテストリンクをランダムに生成し、ノード情報記憶手段６２の中間ＡＮＤノードのテストリンクアドレスＣ４に登録する。
【０１４６】
さらに、学習手段５１は、テストリンクについて、リンク情報記憶手段６３の当該リンクの強化信号の累積値Ｄ８が閾値を上回っているか否かを判断し、上回っている場合には、テストリンクを実リンクに昇格させて実用化するため、ノード情報記憶手段６２の中間ＡＮＤノードのテストリンクアドレスＣ４と、中間ＡＮＤノードのアドレスＢ２と、ネットワークアドレスＣ３とを用いて、実リンクを新たに生成し、中間ＡＮＤノードの入力側リンクアドレスＣ１に追加登録する。この際、テストリンクについてのリンク情報記憶手段６３の反転・非反転フラグＤ５がＴｒｕｅ（反転リンクを意味する。）のときには、反転リンクを新たに生成し、Ｆａｌｓｅ（非反転リンクを意味する。）のときには、非反転リンクを新たに生成する。また、これと併せて、テストリンクを削除する。この場合には、後述する図１２のテスト反転リンクの削除処理Ｅ７またはテスト非反転リンクの削除処理Ｅ８を行う。そして、任意のノードに結合する新たなテストリンクをランダムに生成し、ノード情報記憶手段６２の中間ＡＮＤノードのテストリンクアドレスＣ４に登録する。
【０１４７】
そして、学習手段５１は、中間ＡＮＤノードの入力側リンクアドレスＣ１に登録されている入力側リンクの数が、１以下になった場合には、中間ＡＮＤノードを削除する。この場合には、後述する図１２の中間ＡＮＤノードの削除処理Ｅ２を行う。
【０１４８】
それから、学習手段５１は、ノード情報記憶手段６２の中間ＡＮＤノードの強化信号の合計値Ｃ１０をクリアして０にする。
【０１４９】
＜テスト中間ＯＲノードの学習処理＞
テスト中間ＯＲノードの学習処理は、前述した中間ＯＲノードの学習処理（図７参照）を簡略化したものである。先ず、学習手段５１は、テスト中間ＯＲノードに対して付与された強化信号Ｒに基づき、テスト中間ＯＲノードの入出力状態に応じて、第１および第２の入力側テストリンク（後述する図１０の場合と同様）のテスト中間ＯＲノードの出力Ｙへの寄与度に従って第１および第２の入力側テストリンクに強化信号が分配（伝播）されるように、第１および第２の入力側テストリンクに対して付与する強化信号Ｒ１（１），Ｒ１（２）を算定する。但し、中間ＯＲノードの学習処理（図７参照）の場合とは異なり、テスト中間ＯＲノードの学習処理では、第１および第２の入力側テストリンクに対して付与する強化信号Ｒ１（１），Ｒ１（２）のみを算定し、第１および第２の入力側テストリンクの各入力側ノードに対して付与する強化信号Ｒ２（１），Ｒ２（２）は算定しない。
【０１５０】
この際、学習手段５１は、前述した中間ＯＲノードの学習処理の場合と全く同じルールで、第１および第２の入力側テストリンクが、前述したケース１〜５のいずれに該当するかをそれぞれ判断し、強化信号Ｒ１（１），Ｒ１（２）を算定する。なお、テスト中間ＯＲノードには、ノード情報記憶手段６２のテストリンクアドレスＣ４に登録すべきテストリンクは無いので、このテストリンクアドレスＣ４に対応するテストリンクに対して付与する強化信号ＲＴの算定は行わない。
【０１５１】
そして、以上のようにして算定した第１および第２の入力側テストリンクに対して付与する強化信号Ｒ１（１），Ｒ１（２）を、リンク情報記憶手段６３の当該リンクの強化信号の累積値Ｄ８に加算して累積値を更新するとともに、当該リンクの強化信号Ｄ９に上書きする。なお、第１および第２の入力側テストリンクの各入力側ノードに対して付与する強化信号Ｒ２（１），Ｒ２（２）は算定されないので、これらをノード情報記憶手段６２の当該ノードの強化信号の合計値Ｃ１０に加算する処理は行わない。
【０１５２】
続いて、学習手段５１は、第１、第２の入力側テストリンクについて、それぞれリンク情報記憶手段６３の当該リンクの強化信号の累積値Ｄ８が閾値（本実施形態では、一例として０とする。）を下回っているか否かを判断し、下回っている場合には、その入力側テストリンクを削除する。この場合には、後述する図１２のテスト反転リンクの削除処理Ｅ７またはテスト非反転リンクの削除処理Ｅ８を行う。なお、第１の入力側テストリンクは、削除されないように十分に大きな正の値の強化信号を蓄えた状態にしておくので、結局、ここで削除されるのは、第２の入力側テストリンクとなる。また、このようにして第２の入力側テストリンクが削除された場合の他に、第２の入力側テストリンクの入力側ノード（実ノード）の削除に伴って第２の入力側テストリンクが削除された場合を含め、リンクの数が１になったとき（つまり、第１の入力側テストリンクだけになったとき）には、任意のノードに結合する新たな第２の入力側テストリンクをランダムに生成し、ノード情報記憶手段６２のテスト中間ＯＲノードの入力側テストリンクアドレスＣ１（Ｃ１（２）となる。）に登録する。
【０１５３】
さらに、学習手段５１は、ノード情報記憶手段６２のテスト中間ＯＲノードの第１の入力側テストリンクアドレスＣ１（配列１番目のＣ１（１）となる。）に対応する第１の入力側テストリンクの強化信号の累積値Ｄ８を、十分大きな正の値（例えば１０300等）に設定し、累積値Ｄ８に、十分大きな正の値が常に保持されるようにし、第１の入力側テストリンクが削除されないようにする。
【０１５４】
＜テスト中間ＡＮＤノードの学習処理＞
テスト中間ＡＮＤノードの学習処理は、前述した中間ＡＮＤノードの学習処理を簡略化したものである。先ず、学習手段５１は、テスト中間ＡＮＤノードに対して付与された強化信号Ｒに基づき、テスト中間ＡＮＤノードの入出力状態に応じて、第１および第２の入力側テストリンク（後述する図１０参照）のテスト中間ＡＮＤノードの出力Ｙへの寄与度に従って第１および第２の入力側テストリンクに強化信号が分配（伝播）されるように、第１および第２の入力側テストリンクに対して付与する強化信号Ｒ１（１），Ｒ１（２）を算定する。但し、中間ＡＮＤノードの学習処理の場合とは異なり、テスト中間ＡＮＤノードの学習処理では、第１および第２の入力側テストリンクに対して付与する強化信号Ｒ１（１），Ｒ１（２）のみを算定し、第１および第２の入力側テストリンクの各入力側ノードに対して付与する強化信号Ｒ２（１），Ｒ２（２）は算定しない。
【０１５５】
この際、学習手段５１は、前述した中間ＡＮＤノードの学習処理の場合と全く同じルールで、第１および第２の入力側テストリンクが、前述したケース１〜５のいずれに該当するかをそれぞれ判断し、強化信号Ｒ１（１），Ｒ１（２）を算定する。なお、テスト中間ＡＮＤノードには、ノード情報記憶手段６２のテストリンクアドレスＣ４に登録すべきテストリンクは無いので、このテストリンクアドレスＣ４に対応するテストリンクに対して付与する強化信号ＲＴの算定は行わない。
【０１５６】
そして、以上のようにして算定した第１および第２の入力側テストリンクに対して付与する強化信号Ｒ１（１），Ｒ１（２）を、リンク情報記憶手段６３の当該リンクの強化信号の累積値Ｄ８に加算して累積値を更新するとともに、当該リンクの強化信号Ｄ９に上書きする。なお、第１および第２の入力側テストリンクの各入力側ノードに対して付与する強化信号Ｒ２（１），Ｒ２（２）は算定されないので、これらをノード情報記憶手段６２の当該ノードの強化信号の合計値Ｃ１０に加算する処理は行わない。
【０１５７】
続いて、学習手段５１は、第１、第２の入力側テストリンクについて、それぞれリンク情報記憶手段６３の当該リンクの強化信号の累積値Ｄ８が閾値（本実施形態では、一例として０とする。）を下回っているか否かを判断し、下回っている場合には、その入力側テストリンクを削除する。この場合には、後述する図１２のテスト反転リンクの削除処理Ｅ７またはテスト非反転リンクの削除処理Ｅ８を行う。なお、第１の入力側テストリンクは、削除されないように十分に大きな正の値の強化信号を蓄えた状態にしておくので、結局、ここで削除されるのは、第２の入力側テストリンクとなる。また、このようにして第２の入力側テストリンクが削除された場合の他に、第２の入力側テストリンクの入力側ノード（実ノード）の削除に伴って第２の入力側テストリンクが削除された場合を含め、リンクの数が１になったとき（つまり、第１の入力側テストリンクだけになったとき）には、任意のノードに結合する新たな第２の入力側テストリンクをランダムに生成し、ノード情報記憶手段６２のテスト中間ＡＮＤノードの入力側テストリンクアドレスＣ１（Ｃ１（２）となる。）に登録する。
【０１５８】
さらに、学習手段５１は、ノード情報記憶手段６２のテスト中間ＡＮＤノードの第１の入力側テストリンクアドレスＣ１（配列１番目のＣ１（１）となる。）に対応する第１の入力側テストリンクの強化信号の累積値Ｄ８を、十分大きな正の値（例えば１０300等）に設定し、累積値Ｄ８に、十分大きな正の値が常に保持されるようにし、第１の入力側テストリンクが削除されないようにする。
【０１５９】
＜出力ノードの学習処理＞
出力ノードの学習処理は、前述した中間ＯＲノードの学習処理と略同様である。先ず、学習手段５１は、出力ノードに対して付与された強化信号Ｒに基づき、出力ノードの入出力状態に応じて、各入力側リンクの出力ノードの出力Ｙへの寄与度に従って各入力側リンクに強化信号が分配（伝播）されるように、各入力側リンクに対して付与する強化信号Ｒ１（ｋ）（ｋ＝１〜Ｎ）を算定する。また、これと併せて、各入力側リンクの入力側ノードに対して付与する強化信号Ｒ２（ｋ）（ｋ＝１〜Ｎ）を算定する。
【０１６０】
この際、学習手段５１は、前述した中間ＯＲノードの学習処理の場合と全く同じルールで、出力ノードに結合されているＮ本の入力側リンクのうち着目する１本の入力側リンクに対して付与する強化信号Ｒ１（ｋ）（ｋ＝１〜Ｎ）、および着目する１本の入力側リンクの入力側ノードに対して付与する強化信号Ｒ２（ｋ）（ｋ＝１〜Ｎ）を算定する。すなわち、ｋ番目（ｋ＝１〜Ｎ）の入力側リンクが、前述したケース１〜５のいずれに該当するかを判断し、１本１本の入力側リンクについて強化信号Ｒ１（ｋ）を算定するとともに、１本１本の入力側リンクの入力側ノードについて強化信号Ｒ２（ｋ）を算定していく。
【０１６１】
さらに、学習手段５１は、出力ノードの入力側に結合されたテストリンク（出力ノードのテストリンクアドレスＣ４に対応するテストリンク）に対して付与する強化信号ＲＴを算定する。この際、学習手段５１は、テストリンクが、仮に出力ノードの入力側リンクとして存在していた場合を想定して強化信号を算定する。先ず、テストリンクが入力側リンクとして加わることにより出力Ｙが変化しない場合には、入力Ｘ（ｋ）にテストリンクによる入力ＴＸ、すなわちテストリンクの出力（リンク情報記憶手段６３のテストリンクの出力Ｄ７を読み込んで得られる。）を追加し、前述したケース１〜５の場合分けに従ってその強化信号ＲＴを算定する。次に、テストリンクが入力側リンクとして加わることにより出力Ｙが変化する場合には、入力Ｘ（ｋ）にテストリンクによる入力ＴＸ、すなわちテストリンクの出力Ｄ７を追加し、Ｙへ出力ノードの出力Ｃ９（実際の出力）を反転させた値を代入し、Ｒへ出力ノードの強化信号の合計値Ｃ１０（実際の強化信号の合計値）の符号を変えた−Ｃ１０を代入して、前述したケース１〜５のルールを適用することにより、その強化信号ＲＴを算定する。
【０１６２】
そして、以上のようにして算定した強化信号、すなわち各入力側リンクに対して付与する強化信号Ｒ１（ｋ）（ｋ＝１〜Ｎ）と、テストリンクに対して付与する強化信号ＲＴとを、リンク情報記憶手段６３の当該リンクの強化信号の累積値Ｄ８に加算して累積値を更新するとともに、当該リンクの強化信号Ｄ９に上書きし、また、各入力側リンクの入力側ノードに対して付与する強化信号Ｒ２（ｋ）（ｋ＝１〜Ｎ）を、ノード情報記憶手段６２の当該ノードの強化信号の合計値Ｃ１０に加算（当該ノードには、他の構成エレメントからも強化信号が伝播されてくるので、それらを加算するという意味である。）する。
【０１６３】
続いて、学習手段５１は、各入力側リンクについて、それぞれリンク情報記憶手段６３の当該リンクの強化信号の累積値Ｄ８が閾値（本実施形態では、一例として０とする。）を下回っているか否かを判断し、下回っている場合には、その入力側リンクを削除する。この場合には、後述する図１２の反転リンクの削除処理Ｅ５または非反転リンクの削除処理Ｅ６を行う。
【０１６４】
また、学習手段５１は、テストリンクについて、リンク情報記憶手段６３の当該リンクの強化信号の累積値Ｄ８が閾値（本実施形態では、一例として０とする。）を下回っているか否かを判断し、下回っている場合には、テストリンクを削除する。この場合には、後述する図１２のテスト反転リンクの削除処理Ｅ７またはテスト非反転リンクの削除処理Ｅ８を行う。そして、任意のノードに結合する新たなテストリンクをランダムに生成し、ノード情報記憶手段６２の出力ノードのテストリンクアドレスＣ４に登録する。
【０１６５】
さらに、学習手段５１は、テストリンクについて、リンク情報記憶手段６３の当該リンクの強化信号の累積値Ｄ８が閾値を上回っているか否かを判断し、上回っている場合には、テストリンクを実リンクに昇格させて実用化するため、ノード情報記憶手段６２の出力ノードのテストリンクアドレスＣ４と、この出力ノードのアドレスＢ３と、ネットワークアドレスＣ３とを用いて、実リンクを新たに生成し、出力ノードの入力側リンクアドレスＣ１に追加登録する。この際、テストリンクについてのリンク情報記憶手段６３の反転・非反転フラグＤ５がＴｒｕｅ（反転リンクを意味する。）のときには、反転リンクを新たに生成し、Ｆａｌｓｅ（非反転リンクを意味する。）のときには、非反転リンクを新たに生成する。また、これと併せて、テストリンクを削除する。この場合には、後述する図１２のテスト反転リンクの削除処理Ｅ７またはテスト非反転リンクの削除処理Ｅ８を行う。そして、任意のノードに結合する新たなテストリンクをランダムに生成し、ノード情報記憶手段６２の出力ノードのテストリンクアドレスＣ４に登録する。
【０１６６】
そして、学習手段５１は、出力ノードの入力側リンクアドレスＣ１に登録されている入力側リンクの数が、０になった場合には、ネットワークアドレスＣ３でネットワーク情報記憶手段６１を参照し、入力ノードアドレスＢ１、中間ノードアドレスＢ２、出力ノードアドレスＢ３からランダムに選択したノードアドレスと、当該出力ノードのアドレスと、ネットワークアドレスＣ３とを用いて、反転リンクまたは非反転リンクのいずれかをランダムに選択して新たに実リンクを生成し、生成した実リンクのアドレスを当該出力ノードの入力側リンクアドレスＣ１に加える。この場合には、後述する図１１の反転リンクの初期化処理Ｇ９または非反転リンクの初期化処理Ｇ１０を行う。
【０１６７】
それから、学習手段５１は、ノード情報記憶手段６２の出力ノードの強化信号の合計値Ｃ１０をクリアして０にする。
【０１６８】
＜反転リンクの学習処理＞
反転リンクの学習処理は、後述する非反転リンクの学習処理と等しいので、説明を省略する。
【０１６９】
＜非反転リンクの学習処理＞
図１０には、学習対象となる非反転リンク（実リンク）１２０の一例が示されている。非反転リンク１２０の入力側には、入力側ノード１２１が結合され、出力側には、出力側ノード１２２が結合されている。また、非反転リンク１２０に付随してテストノード１２３（図示の例では、テスト中間ＡＮＤノードであるが、テスト中間ＯＲノードでもよい。）が設けられている。このテストノード１２３の入力側には、第１および第２の入力側テストリンク１２４，１２５が結合され、出力側には、出力側テストリンク１２６が結合されている。但し、出力側テストリンク１２６は、本実施形態では、実質的な情報伝達を行わないので、二点鎖線で示されている。そして、第１の入力側テストリンク１２４は、非反転リンク１２０の入力側ノード１２１に結合され、第２の入力側テストリンク１２５は、任意のノード１２７にランダムに結合され、出力側テストリンク１２６は、非反転リンク１２０の出力側ノード１２２に結合されている。
【０１７０】
ここで、非反転リンク１２０の出力をＹとし、テストノード１２３の出力をＴＹとし、非反転リンク１２０に対して付与される強化信号をＲ１とし、非反転リンク１２０の入力側ノード１２１に対して付与される強化信号をＲ２とし、テストノード１２３に対して付与される強化信号をＲＴとする。
【０１７１】
図６において、先ず、学習手段５１は、伝播元の非反転リンク１２０に対して付与された強化信号Ｒ１に基づき、伝播元の非反転リンク１２０の出力Ｙおよび伝播先のテストノード１２３の出力ＴＹの状態に応じて、伝播先のテストノード１２３に対して付与する強化信号ＲＴを算定する（ステップＳ５０６０１）。
【０１７２】
この際、伝播元の非反転リンク１２０に対して付与された強化信号Ｒ１は、リンク情報記憶手段６３の非反転リンク１２０の強化信号Ｄ９を読み込んで得られる。また、伝播元の非反転リンク１２０の出力Ｙは、リンク情報記憶手段６３の非反転リンク１２０の出力Ｄ７を読み込んで得られる。さらに、伝播先のテストノード１２３の出力ＴＹは、リンク情報記憶手段６３の非反転リンク１２０のテストノードアドレスＤ４を参照し、そのテストノードアドレスＤ４に対応するテストノード１２３についてのノード情報記憶手段６２のノードの出力Ｃ９を読み込んで得られる。
【０１７３】
そして、学習手段５１は、次のようなルールで、伝播先のテストノード１２３に対して付与する強化信号ＲＴを算定する。
【０１７４】
ケース１：（Ｒ１＞０）∧（ＴＹ＝Ｙ）の場合には、ＲＴ＝０とする。この場合は、ＴＹ＝Ｙであるので、非反転リンク１２０が存在していれば、用が足りるため、テストノード１２３は、必要ないからである。
【０１７５】
ケース２：（Ｒ１＞０）∧（ＴＹ≠Ｙ）の場合には、テストノード１２３を削除し、新たにテストノードを生成し（生成するテストノードの第２の入力側テストリンクを任意のノードにランダムに結合する。）、リンク情報記憶手段６３の非反転リンク１２０のテストノードアドレスＤ４に登録する。この際、非反転リンク１２０の出力側ノードアドレスＤ２に対応する出力側ノード１２２のＡＮＤ・ＯＲノードフラグＣ５が、Ｔｒｕｅ（ＡＮＤノードを意味する。）のときには、テスト中間ＯＲノードを生成し、Ｆａｌｓｅ（ＯＲノードを意味する。）のときには、テスト中間ＡＮＤノードを生成する。この場合は、Ｒ１＞０であり、非反転リンク１２０が良い働きをしているのに対し、ＴＹ≠Ｙであり、テストノード１２３が非反転リンク１２０と異なる出力を行っているため、テストノード１２３が悪い働きをすると考えられるからである。
【０１７６】
ケース３：（Ｒ１≦０）∧（ＴＹ＝Ｙ）の場合には、ＲＴ＝Ｒ１とする。この場合は、Ｒ１≦０であり、非反転リンク１２０が悪い働きをしているのに対し、ＴＹ＝Ｙであり、テストノード１２３も非反転リンク１２０と同じ出力を行っているので、テストノード１２３に対しても非反転リンク１２０の場合と同様に強化信号として罰を与える。
【０１７７】
ケース４：（Ｒ１≦０）∧（ＴＹ≠Ｙ）の場合には、ＲＴ＝−Ｒ１とする。この場合は、Ｒ１≦０であり、非反転リンク１２０が悪い働きをしているのに対し、ＴＹ≠Ｙであり、テストノード１２３は、非反転リンク１２０と異なる出力を行っているので、テストノード１２３に対しては、非反転リンク１２０の場合とは異なり、強化信号として報酬を与える。
【０１７８】
そして、以上のようにして算定したテストノード１２３に対して付与する強化信号ＲＴを、ノード情報記憶手段６２の当該ノードの強化信号の合計値Ｃ１０に加算する（図６のステップＳ５０６０２）。
【０１７９】
続いて、学習手段５１は、ノード情報記憶手段６２のテストノード１２３のＡＮＤ・ＯＲノードフラグＣ５が、Ｔｒｕｅ（ＡＮＤノードを意味する。）のときには、テストノード１２３について前述したテスト中間ＡＮＤノードの学習処理を行い、Ｆａｌｓｅ（ＯＲノードを意味する。）のときには、前述したテスト中間ＯＲノードの学習処理を行う（ステップＳ５０６０３）。
【０１８０】
その後、学習手段５１は、テストノード１２３の第１および第２の入力側テストリンク１２４，１２５の双方について、リンク情報記憶手段６３のこれらのリンクの強化信号の累積値Ｄ８が閾値を上回っているか否かを判断し、いずれも閾値を上回っている場合には、テストノード１２３を実ノードに昇格させて実用化するため、テストノード１２３のアドレスＤ４と、学習対象となっている非反転リンク１２０のアドレスと、ネットワークアドレスＤ３とを用いて、実ノードを新たに生成し、ネットワークアドレスＤ３を参照してネットワーク情報記憶手段６１の中間ノードアドレスＢ２に追加登録する（ステップＳ５０６０４）。この際、ノード情報記憶手段６２のテストノード１２３のＡＮＤ・ＯＲノードフラグＣ５が、Ｔｒｕｅ（ＡＮＤノードを意味する。）のときには、中間ＡＮＤノードを生成し、Ｆａｌｓｅ（ＯＲノードを意味する。）のときには、中間ＯＲノードを生成する。また、これと併せて、テストノード１２３を削除し、学習対象となっている非反転リンク１２０も削除する。
【０１８１】
＜テスト反転リンクの学習処理＞
テスト反転リンクは、学習を行わない。
【０１８２】
＜テスト非反転リンクの学習処理＞
テスト非反転リンクは、学習を行わない。
【０１８３】
図１１には、初期化の構成が示されている。図１１において、ロボット初期化処理Ｇ１、ネットワーク初期化処理Ｇ２、入力ノード初期化処理Ｇ３、および出力ノード初期化処理Ｇ４は、プログラムを立ち上げ、ロボット３０の動作制御を開始した直後にのみ行うが、その他のノードやリンクの初期化処理Ｇ５〜Ｇ１２は、ロボット３０の動作制御を開始した直後のみならず、その後の学習でノードやリンクが生成される都度に行う。また、初期化の方法は、ノードの種類やリンクの種類によって異なり、状況に応じて複数の初期化を使い分ける場合も存在する。さらに、初期化処理内で別の初期化処理を行う必要が生じる場合もあり、それぞれの初期化は関連しあっている。そして、これらの初期化の関係が図１１に示されている。図１１において、矢印の付け根の初期化を行うには、矢印の先端の初期化が必要である。図中の実線は、必ず使用し、点線は、使用する可能性があることを意味する。なお、図中の一点鎖線は、昇格によりテストノードやテストリンクから実ノードや実リンクになる場合を示している。
【０１８４】
＜ロボット初期化処理Ｇ１＞
ロボット初期化処理Ｇ１では、ロボット情報記憶手段６０の入力配列Ａ１および出力配列Ａ２は、初期化の必要はない。ネットワークアドレスＡ３については、本実施形態では、一例として、入力ノード数１２８、出力ノード数３２で初期化し、得られたネットワークアドレスを登録する。Ａ４，Ａ５，Ａ６は、０とする。
【０１８５】
＜ネットワーク初期化処理Ｇ２＞
ネットワーク初期化処理Ｇ２では、ネットワーク情報記憶手段６１に記憶する情報の初期化処理を行う。ネットワーク２０は、入力ノード２１の数と出力ノード２３の数を指定して初期化する。入力ノードアドレスＢ１には、初期化されるべきネットワーク２０のアドレスを使用し、指定された入力ノード数の分だけ入力ノード２１の初期化処理Ｇ３を行い、得られた入力ノード２１のアドレスを順次登録する。中間ノードアドレスＢ２への登録は、中間ノード２２が生成される都度に行うので、中間ノードアドレスＢ２の初期化は必要ない。出力ノードアドレスＢ３には、初期化されるべきネットワーク２０のアドレスを使用し、指定された出力ノード数の分だけ出力ノード２３の初期化処理Ｇ４を行い、得られた出力ノード２３のアドレスを順次登録する。ネットワーク２０に対する強化信号Ｂ４は、０とする。
【０１８６】
＜入力ノード初期化処理Ｇ３＞
入力ノード２１は、この入力ノード２１が所属するネットワーク２０のアドレス（ノード情報記憶手段６２に記憶させるネットワークアドレスＣ３）を指定して初期化する。入力ノード２１は、ダミーノードなので、入力側リンクアドレスＣ１の初期化の必要はない。出力側リンクアドレスＣ２への登録は、入力ノード２１の出力側に結合される出力側リンクが生成される都度に行うので、出力側リンクアドレスＣ２の初期化の必要はない。ネットワークアドレスＣ３は、指定されたネットワーク２０のアドレスを用いて上書きする。入力ノード２１は、ダミーノードなので、テストリンクアドレスＣ４およびＡＮＤ・ＯＲノードフラグＣ５の初期化の必要はない。当該ノードが入力ノード２１であるから、入力ノードフラグＣ６は、Ｔｒｕｅとし、出力ノードフラグＣ７およびテストノードフラグＣ８は、初期化しないか、Ｆａｌｓｅとする。ノードの出力Ｃ９は、入力変換手段５２により設定されるので（図４のステップＳ５０７参照）、初期化の必要はない。強化信号の合計値Ｃ１０は、０とする。
【０１８７】
＜出力ノード初期化処理Ｇ４＞
出力ノード２３は、この出力ノード２３が所属するネットワーク２０のアドレス（ノード情報記憶手段６２に記憶させるネットワークアドレスＣ３）を指定して初期化する。入力側リンクアドレスＣ１については、指定されたネットワークアドレスＣ３で参照されるネットワーク情報記憶手段６１の入力ノードアドレスＢ１、出力ノードアドレスＢ３からランダムに選択したノードアドレス（なお、中間ノードアドレスＢ２には、この時点ではデータは入っていないので、選択対象とはならない。）と、この初期化される出力ノード２３のアドレスと、指定されたネットワークアドレスＣ３とを用いて、図１３に示すように、ランダムに選択されたノード１４０に結合される実リンク１４１を、反転リンクまたは非反転リンクのいずれかをランダムに選択して新たに生成し（図１１の反転リンク初期化処理Ｇ９または非反転リンク初期化処理Ｇ１０を行う。）、生成された実リンク１４１のアドレスを入力側リンクアドレスＣ１に加える。この際、実リンク１４１に付随するテストノード１４２も新たに生成し（図１１のテスト中間ＯＲノード初期化処理Ｇ７またはテスト中間ＡＮＤノード初期化処理Ｇ８を行う。）、さらにノード１４０に結合される第１の入力側テストリンク１４３と、初期化の対象となっている出力ノード２３に結合される出力側テストリンク１４４と、任意のノード１４５にランダムに結合される第２の入力側テストリンク１４６とを新たに生成する（図１１のテスト反転リンク初期化処理Ｇ１１またはテスト非反転リンク初期化処理Ｇ１２を行う。）。
【０１８８】
出力側リンクアドレスＣ２の初期化の必要はない。ネットワークアドレスＣ３は、指定されたネットワーク２０のアドレスを用いて上書きする。
【０１８９】
テストリンクアドレスＣ４については、指定されたネットワークアドレスＣ３で参照されるネットワーク情報記憶手段６１の入力ノードアドレスＢ１、出力ノードアドレスＢ３からランダムに選択したノードアドレス（なお、中間ノードアドレスＢ２には、この時点ではデータは入っていないので、選択対象とはならない。）と、この初期化される出力ノード２３のアドレスと、指定されたネットワークアドレスＣ３とを用いて、図１３に示すように、ランダムに選択されたノード１４７に結合されるテストリンク１４８を、テスト反転リンクまたはテスト非反転リンクのいずれかをランダムに選択して新たに生成し（図１１のテスト反転リンク初期化処理Ｇ１１またはテスト非反転リンク初期化処理Ｇ１２を行う。）、生成されたテストリンク１４８のアドレスをテストリンクアドレスＣ４に登録する。
【０１９０】
ＡＮＤ・ＯＲノードフラグＣ５は、本実施形態では、出力ノード２３はＯＲノードとするため、Ｆａｌｓｅ（ＯＲノードを意味する。）とする。また、当該ノードが出力ノード２３であるから、入力ノードフラグＣ６は、Ｆａｌｓｅとし、出力ノードフラグＣ７は、Ｔｒｕｅとし、テストノードフラグＣ８は、Ｆａｌｓｅとする。さらに、ノードの出力Ｃ９は、Ｆａｌｓｅとし、強化信号の合計値Ｃ１０は、０とする。
【０１９１】
＜中間ＯＲノード初期化処理Ｇ５＞
中間ＯＲノード初期化処理Ｇ５は、削除される実リンク（テストリンク以外のリンクのいずれか）を指定し、参照することで行われる。この処理は、ネットワーク２０内から実リンク１本を削除し、その実リンクに付随するテストノード（その実リンクについてのリンク情報記憶手段６３のテストノードアドレスＤ４に対応するテストノード）を実ノードへと昇格させる際に使用される処理だからである。
【０１９２】
入力側リンクアドレスＣ１については、図１４に示すように、削除対象として指定された実リンク１６０に付随するテスト中間ＯＲノード１６１（リンク情報記憶手段６３の実リンク１６０のテストノードアドレスＤ４に対応するテストノード）の第１および第２の入力側テストリンク１６２，１６３のアドレスＣ１（Ｃ１（１），Ｃ１（２））と、生成される初期化対象の中間ＯＲノード１８０のアドレス（これから確保しようとしているメモリ領域のアドレス）とを用いて、第１の入力側テストリンク１６２がテスト反転リンクであれば反転リンク（実リンク）を、第１の入力側テストリンク１６２がテスト非反転リンクであれば非反転リンク（実リンク）を新たに初期化して生成し（図１１の反転リンク初期化処理Ｇ９または非反転リンク初期化処理Ｇ１０を行う。）、その生成された実リンクを中間ＯＲノード１８０の入力側リンク１８１として登録するために、入力側リンク１８１のアドレスを入力側リンクアドレスＣ１に登録する。同様に、第２の入力側テストリンク１６３がテスト反転リンクであれば反転リンク（実リンク）を、第２の入力側テストリンク１６３がテスト非反転リンクであれば非反転リンク（実リンク）を新たに初期化して生成し（図１１の反転リンク初期化処理Ｇ９または非反転リンク初期化処理Ｇ１０を行う。）、その生成された実リンクを中間ＯＲノード１８０の入力側リンク１８２として登録するために、入力側リンク１８２のアドレスを入力側リンクアドレスＣ１に登録する。つまり、第１の入力側テストリンク１６２と、入力側リンク１８１との反転・非反転を一致させ、かつ、第２の入力側テストリンク１６３と、入力側リンク１８２との反転・非反転を一致させる。この際、入力側リンク１８１の入力側ノードは、第１の入力側テストリンク１６２の入力側に結合されていたノード１６４（すなわち、削除される実リンク１６０の入力側ノード）とし、入力側リンク１８２の入力側ノードは、第２の入力側テストリンク１６３の入力側に結合されていたノード１６５とする。なお、図示は省略されているが、新たに生成した入力側リンク１８１，１８２には、これらにそれぞれ付随するテストノードが設けられる（図１１のテスト中間ＯＲノード初期化処理Ｇ７またはテスト中間ＡＮＤノード初期化処理Ｇ８を行う。）。
【０１９３】
その後、中間ＯＲノード１８０の第１番目の入力側リンク１８１（入力側リンクアドレスＣ１のうち、配列の先頭に格納される入力側リンクアドレスＣ（１）に対応する入力側リンク）の強化信号の累積値Ｄ８を、削除対象として指定された実リンク１６０の強化信号の累積値Ｄ８で上書きすることで初期化する。これは、後述するテスト中間ＯＲノード初期化処理Ｇ７およびテスト中間ＡＮＤノード初期化処理Ｇ８の説明に示すように、削除される実リンク１６０と、テスト中間ＯＲノード１６１の第１の入力側テストリンク１６２との反転・非反転は一致しているので、結局、第１番目の入力側リンク１８１は、実リンク１６０と反転・非反転が一致していることから、削除する実リンク１６０の強化信号を第１番目の入力側リンク１８１が受け継ぐ形にするものである。
【０１９４】
出力側リンクアドレスＣ２については、図１４に示すように、生成される初期化対象の中間ＯＲノード１８０のアドレスと、削除対象として指定された実リンク１６０の出力側ノードアドレスＤ２と、削除対象として指定された実リンク１６０のネットワークアドレスＤ３とを用いて、非反転リンク（実リンク）を新たに初期化して生成し（図１１の非反転リンク初期化処理Ｇ１０を行う。）、その生成された実リンクを中間ＯＲノード１８０の出力側リンク１８３として登録するために、出力側リンク１８３のアドレスを出力側リンクアドレスＣ２に登録する。この際、出力側リンク１８３の出力側ノードは、テスト中間ＯＲノード１６１の出力側テストリンク１６６の出力側に結合されていたノード１６７（すなわち、削除される実リンク１６０の出力側ノード）とする。なお、図示は省略されているが、新たに生成した出力側リンク１８３には、これに付随するテストノードが設けられる（図１１のテスト中間ＯＲノード初期化処理Ｇ７またはテスト中間ＡＮＤノード初期化処理Ｇ８を行う。）。
【０１９５】
また、生成された非反転リンク（実リンク）である出力側リンク１８３の強化信号の累積値Ｄ８を、削除される実リンク１６０の強化信号の累積値Ｄ８で上書きすることで初期化する。
【０１９６】
ネットワークアドレスＣ３は、削除対象として指定された実リンク１６０のネットワークアドレスＤ３で上書きする。
【０１９７】
テストリンクアドレスＣ４については、指定されたネットワークアドレスＣ３で参照されるネットワーク情報記憶手段６１の入力ノードアドレスＢ１、中間ノードアドレスＢ２、出力ノードアドレスＢ３からランダムに選択した１つのノードアドレスと、生成される初期化対象の中間ＯＲノード１８０のアドレスと、ネットワークアドレスＤ３とを用いて、図１４に示すように、ランダムに選択されたノード１８４に結合されるテストリンク１８５を、テスト反転リンクまたはテスト非反転リンクのいずれかをランダムに選択して新たに生成し（図１１のテスト反転リンク初期化処理Ｇ１１またはテスト非反転リンク初期化処理Ｇ１２を行う。）、生成されたテストリンク１８５のアドレスをテストリンクアドレスＣ４に登録する。
【０１９８】
また、初期化対象が中間ＯＲノード１８０であるから、ＡＮＤ・ＯＲノードフラグＣ５は、Ｆａｌｓｅ（ＯＲノードを意味する。）とし、入力ノードフラグＣ６は、Ｆａｌｓｅとし、出力ノードフラグＣ７は、Ｆａｌｓｅとし、テストノードフラグＣ８は、Ｆａｌｓｅとする。さらに、ノードの出力Ｃ９は、Ｆａｌｓｅとし、強化信号の合計値Ｃ１０は、０とする。
【０１９９】
＜中間ＡＮＤノード初期化処理Ｇ６＞
中間ＡＮＤノード初期化処理Ｇ６は、前述した中間ＯＲノード初期化処理Ｇ５と略同様である。すなわち、中間ＡＮＤノード初期化処理Ｇ６は、削除される実リンク（テストリンク以外のリンクのいずれか）を指定し、参照することで行われる。この処理は、ネットワーク２０内から実リンク１本を削除し、その実リンクに付随するテストノード（その実リンクについてのリンク情報記憶手段６３のテストノードアドレスＤ４に対応するテストノード）を実ノードへと昇格させる際に使用される処理だからである。
【０２００】
入力側リンクアドレスＣ１については、削除対象として指定された実リンクに付随するテスト中間ＡＮＤノード（リンク情報記憶手段６３の実リンクのテストノードアドレスＤ４に対応するテストノード）の第１および第２の入力側テストリンクのアドレスＣ１（Ｃ１（１），Ｃ１（２））と、生成される初期化対象の中間ＡＮＤノードのアドレス（これから確保しようとしているメモリ領域のアドレス）とを用いて、第１の入力側テストリンクがテスト反転リンクであれば反転リンク（実リンク）を、第１の入力側テストリンクがテスト非反転リンクであれば非反転リンク（実リンク）を新たに初期化して生成し（図１１の反転リンク初期化処理Ｇ９または非反転リンク初期化処理Ｇ１０を行う。）、その生成された実リンクを中間ＡＮＤノードの入力側リンクとして登録するために、その実リンクのアドレスを入力側リンクアドレスＣ１に登録する。同様に、第２の入力側テストリンクがテスト反転リンクであれば反転リンク（実リンク）を、第２の入力側テストリンクがテスト非反転リンクであれば非反転リンク（実リンク）を新たに初期化して生成し（図１１の反転リンク初期化処理Ｇ９または非反転リンク初期化処理Ｇ１０を行う。）、その生成された実リンクを中間ＡＮＤノードの入力側リンクとして登録するために、その実リンクのアドレスを入力側リンクアドレスＣ１に登録する。
【０２０１】
その後、中間ＡＮＤノードの第１番目の入力側リンク（入力側リンクアドレスＣ１のうち、配列の先頭に格納される入力側リンクアドレスＣ（１）に対応する入力側リンク）の強化信号の累積値Ｄ８を、削除対象として指定された実リンクの強化信号の累積値Ｄ８で上書きすることで初期化する。
【０２０２】
出力側リンクアドレスＣ２については、生成される初期化対象の中間ＡＮＤノードのアドレスと、削除対象として指定された実リンクの出力側ノードアドレスＤ２と、削除対象として指定された実リンクのネットワークアドレスＤ３とを用いて、非反転リンク（実リンク）を新たに初期化して生成し（図１１の非反転リンク初期化処理Ｇ１０を行う。）、その生成された実リンクを中間ＡＮＤノードの出力側リンクとして登録するために、その実リンクのアドレスを出力側リンクアドレスＣ２に登録する。また、生成された非反転リンク（実リンク）である出力側リンクの強化信号の累積値Ｄ８を、削除される実リンクの強化信号の累積値Ｄ８で上書きすることで初期化する。
【０２０３】
ネットワークアドレスＣ３は、削除対象として指定された実リンクのネットワークアドレスＤ３で上書きする。
【０２０４】
テストリンクアドレスＣ４については、指定されたネットワークアドレスＣ３で参照されるネットワーク情報記憶手段６１の入力ノードアドレスＢ１、中間ノードアドレスＢ２、出力ノードアドレスＢ３からランダムに選択した１つのノードアドレスと、生成される初期化対象の中間ＡＮＤノードのアドレスと、ネットワークアドレスＤ３とを用いて、ランダムに選択されたノードに結合されるテストリンクを、テスト反転リンクまたはテスト非反転リンクのいずれかをランダムに選択して新たに生成し（図１１のテスト反転リンク初期化処理Ｇ１１またはテスト非反転リンク初期化処理Ｇ１２を行う。）、生成されたテストリンクのアドレスをテストリンクアドレスＣ４に登録する。
【０２０５】
また、初期化対象が中間ＡＮＤードであるから、ＡＮＤ・ＯＲノードフラグＣ５は、Ｔｒｕｅ（ＡＮＤノードを意味する。）とし、入力ノードフラグＣ６は、Ｆａｌｓｅとし、出力ノードフラグＣ７は、Ｆａｌｓｅとし、テストノードフラグＣ８は、Ｆａｌｓｅとする。さらに、ノードの出力Ｃ９は、Ｆａｌｓｅとし、強化信号の合計値Ｃ１０は、０とする。
【０２０６】
＜テスト中間ＯＲノード初期化処理Ｇ７＞
テスト中間ＯＲノード初期化処理Ｇ７は、実リンクと、この実リンクのネットワークアドレスＤ３とを指定することで行われる。これは、テスト中間ＯＲノードが、必ず１本の実リンクに付随して設けられる（実リンクのテストノードアドレスＤ４に登録される）からである。
【０２０７】
入力側テストリンクアドレスＣ１については、図１５に示すように、指定された実リンク２００の入力側ノードアドレスＤ１と、この生成されるテスト中間ＯＲノード２０１のアドレスと、指定された実リンク２００のネットワークアドレスＤ３とを用いて、指定された実リンク２００が反転リンクであればテスト反転リンクを、指定された実リンク２００が非反転リンクであればテスト非反転リンクを新たに初期化して生成し（図１１のテスト反転リンク初期化処理Ｇ１１またはテスト非反転リンク初期化処理Ｇ１２を行う。）、生成したリンクを第１の入力側テストリンク２０２とし、そのアドレスを第１の入力側テストリンクアドレスＣ１（１）として登録し、この第１の入力側テストリンク２０２の強化信号の累積値Ｄ８を十分大きな正の値（例えば１０300等）で上書きする。これは、第１の入力側テストリンク２０２が削除されることを防止するためである。
【０２０８】
さらに、入力側テストリンクアドレスＣ１については、指定された実リンク２００のネットワークアドレスＤ３で参照されるネットワーク情報記憶手段６１の入力ノードアドレスＢ１、中間ノードアドレスＢ２、出力ノードアドレスＢ３からランダムに選択した１つのノードアドレスと、生成される初期化対象のテスト中間ＯＲノード２０１のアドレスと、指定された実リンク２００のネットワークアドレスＤ３とを用いて、図１５に示すように、ランダムに選択されたノード２０３に結合される第２の入力側テストリンク２０４を、テスト反転リンクまたはテスト非反転リンクのいずれかをランダムに選択して新たに生成し（図１１のテスト反転リンク初期化処理Ｇ１１またはテスト非反転リンク初期化処理Ｇ１２を行う。）、生成された第２の入力側テストリンク２０４のアドレスを第２の入力側テストリンクアドレスＣ１（２）として登録する。
【０２０９】
出力側テストリンクアドレスＣ２については、初期化の必要はない。テスト中間ＯＲノード２０１の出力側テストリンク２０５では、強化信号の蓄積は行われず、情報伝達も行わないからである。従って、図１５では、出力側テストリンク２０５は、一点鎖線で示されている。
【０２１０】
ネットワークアドレスＣ３は、指定された実リンク２００のネットワークアドレスＤ３で上書きする。また、テストノードの場合には、テストリンクアドレスＣ４に登録すべきテストリンクは無いので、テストリンクアドレスＣ４の初期化は必要ない。
【０２１１】
また、初期化対象がテスト中間ＯＲノードであるから、ＡＮＤ・ＯＲノードフラグＣ５は、Ｆａｌｓｅ（ＯＲノードを意味する。）とし、入力ノードフラグＣ６は、Ｆａｌｓｅとし、出力ノードフラグＣ７は、Ｆａｌｓｅとし、テストノードフラグＣ８は、Ｔｒｕｅとする。さらに、ノードの出力Ｃ９は、Ｆａｌｓｅとし、強化信号の合計値Ｃ１０は、０とする。
【０２１２】
＜テスト中間ＡＮＤノード初期化処理Ｇ８＞
テスト中間ＡＮＤノード初期化処理Ｇ８は、前述したテスト中間ＯＲノード初期化処理Ｇ７と略同様である。すなわち、テスト中間ＡＮＤノード初期化処理Ｇ８は、実リンクと、この実リンクのネットワークアドレスＤ３とを指定することで行われる。これは、テスト中間ＡＮＤノードが、必ず１本の実リンクに付随して設けられる（実リンクのテストノードアドレスＤ４に登録される）からである。
【０２１３】
入力側テストリンクアドレスＣ１については、指定された実リンクの入力側ノードアドレスＤ１と、この生成されるテスト中間ＡＮＤノードのアドレスと、指定された実リンクのネットワークアドレスＤ３とを用いて、指定された実リンクが反転リンクであればテスト反転リンクを、指定された実リンクが非反転リンクであればテスト非反転リンクを新たに初期化して生成し（図１１のテスト反転リンク初期化処理Ｇ１１またはテスト非反転リンク初期化処理Ｇ１２を行う。）、生成したリンクを第１の入力側テストリンクとし、そのアドレスを第１の入力側テストリンクアドレスＣ１（１）として登録し、この第１の入力側テストリンクの強化信号の累積値Ｄ８を十分大きな正の値（例えば１０300等）で上書きする。これは、第１の入力側テストリンクが削除されることを防止するためである。
【０２１４】
さらに、入力側テストリンクアドレスＣ１については、指定された実リンクのネットワークアドレスＤ３で参照されるネットワーク情報記憶手段６１の入力ノードアドレスＢ１、中間ノードアドレスＢ２、出力ノードアドレスＢ３からランダムに選択した１つのノードアドレスと、生成される初期化対象のテスト中間ＡＮＤノードのアドレスと、指定された実リンクのネットワークアドレスＤ３とを用いて、ランダムに選択されたノードに結合される第２の入力側テストリンクを、テスト反転リンクまたはテスト非反転リンクのいずれかをランダムに選択して新たに生成し（図１１のテスト反転リンク初期化処理Ｇ１１またはテスト非反転リンク初期化処理Ｇ１２を行う。）、生成された第２の入力側テストリンクのアドレスを第２の入力側テストリンクアドレスＣ１（２）として登録する。
【０２１５】
出力側テストリンクアドレスＣ２については、初期化の必要はない。テスト中間ＡＮＤノードの出力側テストリンクでは、強化信号の蓄積は行われず、情報伝達も行わないからである。
【０２１６】
ネットワークアドレスＣ３は、指定された実リンクのネットワークアドレスＤ３で上書きする。また、テストノードの場合には、テストリンクアドレスＣ４に登録すべきテストリンクは無いので、テストリンクアドレスＣ４の初期化は必要ない。
【０２１７】
また、初期化対象がテスト中間ＡＮＤノードであるから、ＡＮＤ・ＯＲノードフラグＣ５は、Ｔｒｕｅ（ＡＮＤノードを意味する。）とし、入力ノードフラグＣ６は、Ｆａｌｓｅとし、出力ノードフラグＣ７は、Ｆａｌｓｅとし、テストノードフラグＣ８は、Ｔｒｕｅとする。さらに、ノードの出力Ｃ９は、Ｔｒｕｅとし、強化信号の合計値Ｃ１０は、０とする。
【０２１８】
＜反転リンク初期化処理Ｇ９＞
反転リンク初期化処理Ｇ９には、次の２通りの場合がある。１つは、テスト反転リンクを昇格する場合であり、もう１つは、元になるテスト反転リンク無しに、直接、反転リンクを生成する場合である。後者の場合は、プログラムを立ち上げ、ロボット３０の動作制御を開始した直後に、出力ノード２３から他のノードに向けて生成される場合と、出力ノード２３に結合されていた実リンクが一旦削除されたときにそれに代えて生成される場合とがある。
【０２１９】
＜反転リンク初期化処理Ｇ９：テスト反転リンクを用いた初期化処理＞
テスト反転リンクを用いる場合には、元になるテスト反転リンクと、出力側ノードアドレスＤ２を指定して初期化を行う。生成される反転リンクは、昇格によるものであるため、生成される反転リンクの出力側ノードは、元になるテスト反転リンクの出力側ノードと同じノードとなる。
【０２２０】
入力側ノードアドレスＤ１については、元になるテスト反転リンクの入力側ノードアドレスＤ１を登録する。出力側ノードアドレスＤ２については、指定された出力側ノードアドレスを登録する。ネットワークアドレスＤ３については、元になるテスト反転リンクのネットワークアドレスＤ３を登録する。
【０２２１】
テストノードアドレスＤ４については、この生成される反転リンクと、ネットワークアドレスＤ３とを指定し、指定された出力側ノードアドレスＤ２に対応する出力側ノード（生成される反転リンクの出力側ノード）のＡＮＤ・ＯＲノードフラグＣ５が、Ｔｒｕｅ（ＡＮＤノードを意味する。）であればテスト中間ＯＲノードを、Ｆａｌｓｅ（ＯＲノードを意味する。）であればテスト中間ＡＮＤノードを、新たに初期化して生成し（図１１のテスト中間ＯＲノード初期化処理Ｇ７またはテスト中間ＡＮＤノード初期化処理Ｇ８を行う。）、生成されたテストノードをテストノードアドレスＤ４へ登録する。つまり、生成される反転リンクの出力側ノードと、その反転リンクに付随するテストノードとのＡＮＤ・ＯＲを逆にする。
【０２２２】
反転・非反転フラグＤ５は、Ｔｒｕｅ（反転リンクを意味する。）とし、テストリンクフラグＤ６は、Ｆａｌｓｅとする。また、リンクの出力Ｄ７は、Ｆａｌｓｅとし、強化信号の累積値Ｄ８は、指定された元になるテスト反転リンクの強化信号の累積値Ｄ８で上書きし、強化信号Ｄ９は、０とする。
【０２２３】
＜反転リンク初期化処理Ｇ９：テスト反転リンクを用いない直接の初期化処理＞
テスト反転リンクを用いない直接の初期化処理は、入力側ノードアドレスＤ１と、出力側ノードアドレスＤ２と、ネットワークアドレスＤ３とを指定して行う。Ｄ１〜Ｄ３には、指定されたアドレスを登録する。この場合の初期化処理で生成される反転リンク（実リンク）は、出力ノード２３からしか出ていかないので、生成される反転リンクの出力側ノードは、出力ノード２３となる。一方、生成される反転リンクの入力側ノードは、ランダムに決定される。
【０２２４】
テストノードアドレスＤ４を初期化する前に、Ｄ５〜Ｄ９の初期化を行う。反転・非反転フラグＤ５は、Ｔｒｕｅ（反転リンクを意味する。）とし、テストリンクフラグＤ６は、Ｆａｌｓｅとする。また、リンクの出力Ｄ７は、Ｆａｌｓｅとし、強化信号の累積値Ｄ８は、０とし、強化信号Ｄ９は、０とする。
【０２２５】
テストノードアドレスＤ４については、この生成される反転リンクと、ネットワークアドレスＤ３とを指定し、指定された出力側ノードアドレスＤ２に対応する出力側ノード（生成される反転リンクの出力側ノード）のＡＮＤ・ＯＲノードフラグＣ５が、Ｔｒｕｅ（ＡＮＤノードを意味する。）であればテスト中間ＯＲノードを、Ｆａｌｓｅ（ＯＲノードを意味する。）であればテスト中間ＡＮＤノードを、新たに初期化して生成し（図１１のテスト中間ＯＲノード初期化処理Ｇ７またはテスト中間ＡＮＤノード初期化処理Ｇ８を行う。）、生成されたテストノードをテストノードアドレスＤ４へ登録する。つまり、生成される反転リンクの出力側ノードと、その反転リンクに付随するテストノードとのＡＮＤ・ＯＲを逆にする。なお、テストノードアドレスＤ４を後に初期化するのは、テストノードの初期化の際に、そのテストノードが付随する反転リンクの反転・非反転フラグＤ５が参照されるからである。
【０２２６】
そして、以上のテスト反転リンクを用いた初期化処理、およびテスト反転リンクを用いない直接の初期化処理の双方について、最後に、入力側ノードアドレスＤ１に対応する入力側ノードの出力側リンクアドレスＣ２と、出力側ノードアドレスＤ２に対応する出力側ノードの入力側リンクアドレスＣ１とへ、この生成される反転リンクのアドレスを登録し、初期化を終える。
【０２２７】
＜非反転リンク初期化処理Ｇ１０＞
非反転リンク初期化処理Ｇ１０は、前述した反転リンク初期化処理Ｇ９と略同様である。すなわち、非反転リンク初期化処理Ｇ１０には、次の２通りの場合がある。１つは、テスト非反転リンクを昇格する場合であり、もう１つは、元になるテスト非反転リンク無しに、直接、非反転リンクを生成する場合である。後者の場合は、プログラムを立ち上げ、ロボット３０の動作制御を開始した直後に、出力ノード２３から他のノードに向けて生成される場合と、出力ノード２３に結合されていた実リンクが一旦削除されたときにそれに代えて生成される場合とがある。
【０２２８】
＜非反転リンク初期化処理Ｇ１０：テスト非反転リンクを用いた初期化処理＞
テスト非反転リンクを用いる場合には、元になるテスト非反転リンクと、出力側ノードアドレスＤ２を指定して初期化を行う。生成される非反転リンクは、昇格によるものであるため、生成される非反転リンクの出力側ノードは、元になるテスト非反転リンクの出力側ノードと同じノードとなる。
【０２２９】
入力側ノードアドレスＤ１については、元になるテスト非反転リンクの入力側ノードアドレスＤ１を登録する。出力側ノードアドレスＤ２については、指定された出力側ノードアドレスを登録する。ネットワークアドレスＤ３については、元になるテスト非反転リンクのネットワークアドレスＤ３を登録する。
【０２３０】
テストノードアドレスＤ４については、この生成される非反転リンクと、ネットワークアドレスＤ３とを指定し、指定された出力側ノードアドレスＤ２に対応する出力側ノード（生成される非反転リンクの出力側ノード）のＡＮＤ・ＯＲノードフラグＣ５が、Ｔｒｕｅ（ＡＮＤノードを意味する。）であればテスト中間ＯＲノードを、Ｆａｌｓｅ（ＯＲノードを意味する。）であればテスト中間ＡＮＤノードを、新たに初期化して生成し（図１１のテスト中間ＯＲノード初期化処理Ｇ７またはテスト中間ＡＮＤノード初期化処理Ｇ８を行う。）、生成されたテストノードをテストノードアドレスＤ４へ登録する。つまり、生成される非反転リンクの出力側ノードと、その非反転リンクに付随するテストノードとのＡＮＤ・ＯＲを逆にする。
【０２３１】
反転・非反転フラグＤ５は、Ｆａｌｓｅ（非反転リンクを意味する。）とし、テストリンクフラグＤ６は、Ｆａｌｓｅとする。また、リンクの出力Ｄ７は、Ｆａｌｓｅとし、強化信号の累積値Ｄ８は、指定された元になるテスト非反転リンクの強化信号の累積値Ｄ８で上書きし、強化信号Ｄ９は、０とする。
【０２３２】
＜非反転リンク初期化処理Ｇ１０：テスト非反転リンクを用いない直接の初期化処理＞
テスト非反転リンクを用いない直接の初期化処理は、入力側ノードアドレスＤ１と、出力側ノードアドレスＤ２と、ネットワークアドレスＤ３とを指定して行う。Ｄ１〜Ｄ３には、指定されたアドレスを登録する。この場合の初期化処理で生成される非反転リンク（実リンク）は、出力ノード２３からしか出ていかないので、生成される非反転リンクの出力側ノードは、出力ノード２３となる。一方、生成される非反転リンクの入力側ノードは、ランダムに決定される。
【０２３３】
テストノードアドレスＤ４を初期化する前に、Ｄ５〜Ｄ９の初期化を行う。反転・非反転フラグＤ５は、Ｆａｌｓｅ（非反転リンクを意味する。）とし、テストリンクフラグＤ６は、Ｆａｌｓｅとする。また、リンクの出力Ｄ７は、Ｆａｌｓｅとし、強化信号の累積値Ｄ８は、０とし、強化信号Ｄ９は、０とする。
【０２３４】
テストノードアドレスＤ４については、この生成される非反転リンクと、ネットワークアドレスＤ３とを指定し、指定された出力側ノードアドレスＤ２に対応する出力側ノード（生成される非反転リンクの出力側ノード）のＡＮＤ・ＯＲノードフラグＣ５が、Ｔｒｕｅ（ＡＮＤノードを意味する。）であればテスト中間ＯＲノードを、Ｆａｌｓｅ（ＯＲノードを意味する。）であればテスト中間ＡＮＤノードを、新たに初期化して生成し（図１１のテスト中間ＯＲノード初期化処理Ｇ７またはテスト中間ＡＮＤノード初期化処理Ｇ８を行う。）、生成されたテストノードをテストノードアドレスＤ４へ登録する。つまり、生成される非反転リンクの出力側ノードと、その非反転リンクに付随するテストノードとのＡＮＤ・ＯＲを逆にする。なお、テストノードアドレスＤ４を後に初期化するのは、テストノードの初期化の際に、そのテストノードが付随する非反転リンクの反転・非反転フラグＤ５が参照されるからである。
【０２３５】
そして、以上のテスト非反転リンクを用いた初期化処理、およびテスト非反転リンクを用いない直接の初期化処理の双方について、最後に、入力側ノードアドレスＤ１に対応する入力側ノードの出力側リンクアドレスＣ２と、出力側ノードアドレスＤ２に対応する出力側ノードの入力側リンクアドレスＣ１とへ、この生成される非反転リンクのアドレスを登録し、初期化を終える。
【０２３６】
＜テスト反転リンク初期化処理Ｇ１１＞
テスト反転リンク初期化処理Ｇ１１は、入力側ノードアドレスＤ１と、出力側ノードアドレスＤ２と、ネットワークアドレスＤ３とを指定して行う。入力側ノードアドレスＤ１については、指定された入力側ノードアドレスを登録する。出力側ノードアドレスＤ２については、指定された出力側ノードアドレスを登録する。ネットワークアドレスＤ３については、指定されたネットワークアドレスを登録する。
【０２３７】
テストリンクには、これに付随するテストノードは設けないので、テストノードアドレスＤ４は、初期化の必要はない。反転・非反転フラグＤ５は、Ｔｒｕｅ（反転リンクを意味する。）とし、テストリンクフラグＤ６は、Ｔｒｕｅとする。また、リンクの出力Ｄ７は、Ｆａｌｓｅとし、強化信号の累積値Ｄ８は、０とし、強化信号Ｄ９は、０とする。
【０２３８】
そして、最後に、入力側ノードアドレスＤ１に対応する入力側ノードの出力側リンクアドレスＣ２へ、この生成されるテスト反転リンクのアドレスを登録し、初期化を終える。
【０２３９】
＜テスト非反転リンク初期化処理Ｇ１２＞
テスト非反転リンク初期化処理Ｇ１２は、前述したテスト反転リンク初期化処理Ｇ１１と略同様である。すなわち、テスト非反転リンク初期化処理Ｇ１２は、入力側ノードアドレスＤ１と、出力側ノードアドレスＤ２と、ネットワークアドレスＤ３とを指定して行う。入力側ノードアドレスＤ１については、指定された入力側ノードアドレスを登録する。出力側ノードアドレスＤ２については、指定された出力側ノードアドレスを登録する。ネットワークアドレスＤ３については、指定されたネットワークアドレスを登録する。
【０２４０】
テストリンクには、これに付随するテストノードは設けないので、テストノードアドレスＤ４は、初期化の必要はない。反転・非反転フラグＤ５は、Ｆａｌｓｅ（非反転リンクを意味する。）とし、テストリンクフラグＤ６は、Ｔｒｕｅとする。また、リンクの出力Ｄ７は、Ｆａｌｓｅとし、強化信号の累積値Ｄ８は、０とし、強化信号Ｄ９は、０とする。
【０２４１】
そして、最後に、入力側ノードアドレスＤ１に対応する入力側ノードの出力側リンクアドレスＣ２へ、この生成されるテスト非反転リンクのアドレスを登録し、初期化を終える。
【０２４２】
図１２には、学習時の削除処理の構成が示されている。図１２において、前述した図１１のロボット初期化処理Ｇ１、ネットワーク初期化処理Ｇ２、入力ノード初期化処理Ｇ３、および出力ノード初期化処理Ｇ４に対応する終了処理は、ロボット３０の動作制御用のプログラムを終了させる直前にのみ行うが、これらの終了処理については、ネットワーク２０の構造変化に直接結びつくものではないので、説明は省略する。その他のノードやリンクの終了処理は、ノードやリンクが削除される都度に行われるので、それぞれ学習時の削除処理Ｅ１〜Ｅ８として説明を行う。削除の方法は、ノードの種類やリンクの種類によって異なる。図１２において、矢印の付け根の削除処理を行うには、矢印の先端の削除処理が必要である。図中の実線は、必ず使用し、点線は、使用する可能性があることを意味する。
【０２４３】
＜中間ＯＲノード削除処理Ｅ１＞
中間ＯＲノード削除処理Ｅ１では、先ず、削除対象の中間ＯＲノードのテストリンクアドレスＣ４に対応するテストリンクについてのメモリを開放する。すなわち、リンク情報記憶手段６３の当該テストリンクの情報を、後述するテスト反転リンク削除処理Ｅ７またはテスト非反転リンク削除処理Ｅ８に従って開放し、テストリンクを削除する。次に、削除対象の中間ＯＲノードのネットワークアドレスＣ３を参照し、ネットワーク情報記憶手段６１の中間ノードアドレスＢ２から、削除対象の中間ＯＲノードのアドレスを検索し、削除する。その後、条件によって場合分けし、それぞれ異なる次のような３通りの処理（１）、（２）、（３）のうちのいずれかの処理を行う。
【０２４４】
（１）図１６に示すように、削除対象の中間ＯＲノード２２０の入力側リンクアドレスＣ１に対応する入力側リンクが１個であり（これを入力側リンク２２１とする。）、この入力側リンク２２１の入力側ノードアドレスＤ１に対応する入力側ノード２２２が、削除対象の中間ＯＲノード２２０自身でない場合には、中間ＯＲノード２２０の各出力側リンクアドレスＣ２に対応する出力側リンク（図１６では、一例として３つの出力側リンク２２３，２２４，２２５とする。）のそれぞれについて、次のような３通りの処理（１−Ａ）、（１−Ｂ）、（１−Ｃ）のうちのいずれかの処理を行う。
【０２４５】
（１−Ａ）出力側リンク２２３のテストリンクフラグＤ６がＴｒｕｅ（テストリンクを意味する。）で、かつ、その出力側リンク２２３の出力側ノードアドレスＤ２に対応する出力側ノード２２６のテストノードフラグＣ８がＦａｌｓｅ（実ノードを意味する。）の場合には、出力側リンク２２３、すなわち出力側ノード２２６に結合されているテストリンク（出力側ノード２２６のテストリンクアドレスＣ４に対応するテストリンク）を削除し（後述する図１２のテスト反転リンク削除処理Ｅ７またはテスト非反転リンク削除処理Ｅ８を行う。）、ランダムに選択されたノード２４０に結合するテストリンク２４１をランダムに生成し（前述した図１１、図１２のテスト反転リンク初期化処理Ｇ１１またはテスト非反転リンク初期化処理Ｇ１２を行う。）、そのテストリンク２４１のアドレスを出力側ノード２２６のテストリンクアドレスＣ４に登録する。
【０２４６】
（１−Ｂ）出力側リンク２２４のテストリンクフラグＤ６がＴｒｕｅ（テストリンクを意味する。）で、かつ、その出力側リンク２２３の出力側ノードアドレスＤ２に対応する出力側ノード２２７のテストノードフラグＣ８がＴｒｕｅ（テストノードを意味する。）の場合には、出力側リンク２２４を削除する。
【０２４７】
（１−Ｃ）出力側リンク２２５のテストリンクフラグＤ６がＦａｌｓｅ（実リンクを意味する。）の場合には、その出力側リンク２２５の入力側ノードアドレスＤ１を、削除対象の中間ＯＲノード２２０の入力側リンクアドレスＣ１に対応する入力側リンク２２１（１つしかない入力側リンク）の入力側ノードアドレスＤ１で上書きする。つまり、設定変更前の出力側リンク２２５の出力側ノード２２８と、入力側リンク２２１の入力側ノード２２２とを、新たな設定とされた出力側リンク２２５で連結する。また、設定変更前の出力側リンク２２５に付随していたテストノード（設定変更前の出力側リンク２２５のテストノードアドレスＤ４に対応するテストノード）を削除し（後述する図１２のテスト中間ＯＲノード削除処理Ｅ３またはテスト中間ＡＮＤノード削除処理Ｅ４を行う。）、新たなテストノード２２９を生成し（前述した図１１のテスト中間ＯＲノード初期化処理Ｇ７またはテスト中間ＡＮＤノード初期化処理Ｇ８を行う。）、生成したテストノード２２９のアドレスを、設定変更後の出力側リンク２２５のテストノードアドレスＤ４に登録する。その後、入力側リンク２２１の入力側ノード２２２の出力側リンクアドレスＣ２に、削除対象の中間ＯＲノード２２０の出力側リンクアドレスＣ２（出力側リンク２２５のアドレス）を追加し、入力側リンク２２１を削除する（後述する図１２の反転リンク削除処理Ｅ５または非反転リンク削除処理Ｅ６を行う。）。
【０２４８】
（２）図１７に示すように、削除対象の中間ＯＲノード２６０の入力側リンクアドレスＣ１に対応する入力側リンクが１個であり（入力側リンク２６５とする。）、この入力側リンク２６５の入力側ノードアドレスＤ１に対応する入力側ノードが、削除対象の中間ＯＲノード２６０自身である場合には、中間ＯＲノード２６０の各出力側リンクアドレスＣ２に対応する出力側リンク（図１７では、一例として２つの出力側リンク２６１，２６２とする。）のそれぞれについて、次のような２通りの処理（２−Ａ）、（２−Ｂ）のうちのいずれかの処理を行う。
【０２４９】
（２−Ａ）出力側リンク２６１のテストリンクフラグＤ６がＴｒｕｅ（テストリンクを意味する。）で、かつ、その出力側リンク２６１の出力側ノードアドレスＤ２に対応する出力側ノード２６３のテストノードフラグＣ８がＦａｌｓｅ（実ノードを意味する。）の場合には、出力側リンク２６１、すなわち出力側ノード２６３に結合されているテストリンク（出力側ノード２６３のテストリンクアドレスＣ４に対応するテストリンク）を削除し（後述する図１２のテスト反転リンク削除処理Ｅ７またはテスト非反転リンク削除処理Ｅ８を行う。）、ランダムに選択されたノード２８０に結合するテストリンク２８１をランダムに生成し（前述した図１１、図１２のテスト反転リンク初期化処理Ｇ１１またはテスト非反転リンク初期化処理Ｇ１２を行う。）、そのテストリンク２８１のアドレスを出力側ノード２６３のテストリンクアドレスＣ４に登録する。
【０２５０】
（２−Ｂ）出力側リンク２６２およびこの出力側リンク２６２の出力側ノード２６４の条件が、上記（２−Ａ）以外の場合には、出力側リンク２６２を削除する。
【０２５１】
（３）図１８に示すように、削除対象の中間ＯＲノード３００の入力側リンクアドレスＣ１に対応する入力側リンクが０個の場合には、中間ＯＲノード３００の各出力側リンクアドレスＣ２に対応する出力側リンク（図１８では、一例として２つの出力側リンク３０１，３０２とする。）のそれぞれについて、次のような２通りの処理（３−Ａ）、（３−Ｂ）のうちのいずれかの処理を行う。
【０２５２】
（３−Ａ）出力側リンク３０１のテストリンクフラグＤ６がＴｒｕｅ（テストリンクを意味する。）で、かつ、その出力側リンク３０１の出力側ノードアドレスＤ２に対応する出力側ノード３０３のテストノードフラグＣ８がＦａｌｓｅ（実ノードを意味する。）の場合には、出力側リンク３０１、すなわち出力側ノード３０３に結合されているテストリンク（出力側ノード３０３のテストリンクアドレスＣ４に対応するテストリンク）を削除し（後述する図１２のテスト反転リンク削除処理Ｅ７またはテスト非反転リンク削除処理Ｅ８を行う。）、ランダムに選択されたノード３２０に結合するテストリンク３２１をランダムに生成し（前述した図１１、図１２のテスト反転リンク初期化処理Ｇ１１またはテスト非反転リンク初期化処理Ｇ１２を行う。）、そのテストリンク３２１のアドレスを出力側ノード３０３のテストリンクアドレスＣ４に登録する。
【０２５３】
（３−Ｂ）出力側リンク３０２およびこの出力側リンク３０２の出力側ノード３０４の条件が、上記（３−Ａ）以外の場合には、出力側リンク３０２を削除する。
【０２５４】
そして、以上の（１）〜（３）の処理が終了した後、削除対象の中間ＯＲノードの入力側リンクが存在すれば、それを削除し（後述する図１２の反転リンク削除処理Ｅ５または非反転リンク削除処理Ｅ６を行う。）、さらに、削除対象の中間ＯＲノードのＣ１〜Ｃ１０のメモリを開放し、中間ＯＲノードを削除する。
【０２５５】
＜中間ＡＮＤノード削除処理Ｅ２＞
中間ＡＮＤノード削除処理Ｅ２は、前術した中間ＯＲノード削除処理Ｅ１と略等しく、中間ＯＲノード削除処理Ｅ１の説明において、中間ＯＲノードを中間ＡＮＤノードと読み替えるだけなので、説明を省略する。
【０２５６】
＜テスト中間ＯＲノード削除処理Ｅ３＞
削除対象のテスト中間ＯＲノードの第１および第２の入力側テストリンクアドレスＣ１に対応する第１および第２の入力側テストリンクを削除する（後述する図１２のテスト反転リンク削除処理Ｅ７またはテスト非反転リンク削除処理Ｅ８を行う。）。その後、削除対象のテスト中間ＯＲノードのＣ１〜Ｃ１０のメモリを開放し、テスト中間ＯＲノードを削除する。
【０２５７】
＜テスト中間ＡＮＤノード削除処理Ｅ４＞
テスト中間ＡＮＤノード削除処理Ｅ４は、前述したテスト中間ＯＲノード削除処理Ｅ３と略等しく、テスト中間ＯＲノード削除処理Ｅ３の説明において、テスト中間ＯＲノードをテスト中間ＡＮＤノードと読み替えるだけなので、説明を省略する。
【０２５８】
＜反転リンク削除処理Ｅ５＞
反転リンク削除処理Ｅ５では、削除対象の反転リンクの入力側ノードアドレスＤ１に対応する入力側ノードの出力側リンクアドレスＣ２から、この削除対象の反転リンクのアドレスを検索して削除し、同様に、削除対象の反転リンクの出力側ノードアドレスＤ２に対応する出力側ノードの入力側リンクアドレスＣ１から、この削除対象の反転リンクのアドレスを検索して削除する。
【０２５９】
また、削除対象の反転リンクに付随するテストノード（削除対象の反転リンクのテストノードアドレスＤ４に対応するテストノード）を削除する。この際、このテストノードのＡＮＤ・ＯＲノードフラグＣ５が、Ｔｒｕｅ（ＡＮＤノードを意味する。）ならば、前述したテスト中間ＡＮＤノード削除処理Ｅ４を行い、Ｆａｌｓｅ（ＯＲノードを意味する。）ならば、前述したテスト中間ＯＲノード削除処理Ｅ３を行う。
【０２６０】
その後、削除対象の反転リンクのＤ１〜Ｄ９のメモリを開放し、反転リンクの削除を終える。
【０２６１】
＜非反転リンク削除処理Ｅ６＞
非反転リンク削除処理Ｅ６は、前述した反転リンク削除処理Ｅ５と同じであるため、説明を省略する。
【０２６２】
＜テスト反転リンク削除処理Ｅ７＞
テスト反転リンク削除処理Ｅ７では、削除対象のテスト反転リンクの入力側ノードアドレスＤ１に対応する入力側ノードの出力側リンクアドレスＣ２から、この削除対象のテスト反転リンクのアドレスを検索して削除する。
【０２６３】
また、削除対象のテスト反転リンクの出力側ノードアドレスＤ２に対応する出力側ノードのテストノードフラグＣ８が、Ｔｒｕｅ（テストノードを意味する。）ならば、その出力側ノード（テストノード）の入力側テストリンクアドレスＣ１から、削除対象のテスト反転リンクのアドレスを検出して削除し、Ｆａｌｓｅ（実ノードを意味する。）ならば、その出力側ノード（実ノード）のテストリンクアドレスＣ４を削除する。
【０２６４】
その後、削除対象のテスト反転リンクのＤ１〜Ｄ９のメモリを開放し、テスト反転リンクの削除を終える。
【０２６５】
＜テスト非反転リンク削除処理Ｅ８＞
テスト非反転リンク削除処理Ｅ８は、前述したテスト反転リンク削除処理Ｅ７と同じであるため、説明を省略する。
【０２６６】
このような本実施形態によれば、次のような効果がある。すなわち、情報処理システム１０は、強化信号生成手段４３を備えているので、制御対象であるロボット３０の状態の評価結果に応じてネットワーク２０に対して付与する強化信号を生成することができる。
【０２６７】
また、情報処理システム１０は、学習手段５１を備えているので、強化信号生成手段４３により生成した強化信号を、ネットワーク２０の構成エレメントから他の構成エレメントへ伝播させることができる。この際、学習手段５１は、伝播させる強化信号、すなわち伝播先の構成エレメントに対して付与する強化信号を、伝播元および／または伝播先の構成エレメントの入出力状態に応じて構成エレメント毎に生成するので、構成エレメント毎に個別に付与された強化信号の累積値を用いて、構成エレメント毎にその構成エレメントの生成（追加）または削除（淘汰）を行うか否かの判定を行い、その処理を実行し、ネットワーク２０の構造を自律的に変化させることができる。
【０２６８】
従って、前述した従来のニューロジェネティックラーニングによる学習器の場合とは異なり、情報処理システム１０は、ネットワーク２０の構造を変化させるにあたり、ネットワーク２０全体を評価単位として評価を行うのではなく、構成エレメント単位（すなわち、１つ１つのノードやリンクの単位）での評価を行い、構成エレメント単位での生成または削除を行うので、評価に要する時間を短縮することができ、低い時間オーダでネットワーク２０を自律的に構築していくことができるうえ、これに伴って計算コストの削減を図ることもできる。
【０２６９】
また、前述した特許文献２，３に記載されたニューラルネットワーク学習方法のように、ネットワーク２０の使用環境やタスクに応じてネットワーク２０の構造を決定しておき、その決定された構造の中でニューロンユニット間の結合係数の最適化を行うのではなく、情報処理システム１０は、ネットワーク２０の構造そのものをも自律的に変化させ、最適化していくので、構造決定による環境、タスクへの限定を回避することができる。このため、ネットワーク２０の使用環境やタスクが変化した場合でも、以前の学習結果を既存知識として再利用する学習を行うことができる。
【０２７０】
さらに、情報処理システム１０は、状態評価用信号取得手段４２を備え、この状態評価用信号取得手段４２により取得した状態評価用信号に基づき制御対象であるロボット３０の状態を評価する構成とされているので、人為的判断を介在させることなく制御対象であるロボット３０の状態の評価を行うことができる。このため、ネットワーク２０の自律的な構築速度を向上させることができるうえ、目的に沿って一貫した学習を容易に行うことができる。
【０２７１】
そして、学習手段５１は、伝播元のノードに付与された強化信号に基づき、伝播元のノードの入出力状態に従って定まる伝播先の入力側リンクのノード出力への寄与度に応じ、伝播先の入力側リンクに対して付与する強化信号を生成するので（図８、図９参照）、ネットワーク２０に対して付与された強化信号を、出力ノード２３から逆伝播させていくことができるうえ、個々のリンクに対し、妥当な評価を個別に行うことができ、構成エレメント毎の適切な生成または削除を実現することができる。
【０２７２】
また、学習手段５１は、上記のようなノードからその入力側リンクへの強化信号の逆伝播と併せ、ノードからその入力側リンクの入力側ノードへの強化信号の逆伝播も行うので、より一層円滑な強化信号の逆伝播を実現することができる。
【０２７３】
さらに、学習手段５１は、リンクに対して付与された強化信号の累積値が閾値を下回ったときに、このリンクを削除する構成とされているので、目的通りに制御対象であるロボット３０を制御するのに役立たないと考えられるリンク、すなわち不要と思われるリンクの適切な淘汰を行うことができ、ネットワーク２０の構造を自律的に変化させていくことができる。
【０２７４】
そして、学習手段５１は、ノードの入力側リンクの数が１以下になったときに、このノードを削除する構成とされているので、目的通りに制御対象であるロボット３０を制御するのに役立たないと考えられるノード、すなわち不要と思われるノードの適切な淘汰を行うことができ、ネットワーク２０の構造を自律的に変化させていくことができる。
【０２７５】
また、情報処理システム１０では、ノードには、テストリンクが設けられるので、そのテストリンクが目的通りに制御対象であるロボット３０を制御するのに役立つと考えられる場合に、そのテストリンクをノード出力に寄与する実リンクに昇格させ、正式に入力側リンクとして登録することができる。このため、自律的なリンクの生成を実現でき、ネットワーク２０の構造を自律的に変化させていくことができる。
【０２７６】
さらに、学習手段５１は、上記のテストリンクに対して付与された強化信号の累積値が閾値を下回ったときに、そのテストリンクを削除し、任意のノードに結合される新たなテストリンクを生成する構成とされているので、新しく生成されるリンク（実リンク）の適切な候補となるテストリンクを常に用意しておくことができる。このため、リンクの適切で、かつ円滑な生成を実現することができ、ネットワーク２０の構造を自律的に変化させていくことができる。
【０２７７】
そして、情報処理システム１０では、実リンクには、このリンクに付随するテストノードが設けられるので、新たに生成されるノード（実ノード）の候補を常に用意しておくことができる。このため、自律的なノードの生成を実現でき、ネットワーク２０の構造を自律的に変化させていくことができる。
【０２７８】
また、学習手段５１は、上記のテストノードから第１および第２の入力側テストリンクへ強化信号を伝播させる構成とされているので、これによっても新たに生成されるリンク（実リンク）の候補を用意しておくことができ、ネットワーク２０の構造を自律的に変化させていくことができる。
【０２７９】
さらに、学習手段５１は、上記の第１または第２の入力側テストリンクに対して付与された強化信号の累積値が閾値を下回ったときに、閾値を下回った入力側テストリンクを削除し、新たな入力側テストリンクを生成する構成とされているので、新しく生成されるリンク（実リンク）の適切な候補となるテストリンクを常に用意しておくことができる。このため、リンクの適切で、かつ円滑な生成を実現することができ、ネットワーク２０の構造を自律的に変化させていくことができる。
【０２８０】
そして、学習手段５１は、上記の第１および第２の入力側テストリンクに対して付与された強化信号の累積値がいずれも閾値を上回ったときに、テストノードを実用化する構成とされているので、新たにノード（実ノード）を生成（追加）することができ、ネットワーク２０の構造を自律的に変化させていくことができる。
【０２８１】
また、情報処理システム１０では、各ノードは、論理回路を用いて構成されているので、目的の制御を実現することができる情報処理システムを、単純な構造で構築することができる。
【０２８２】
なお、本発明の効果を確かめるため、以下のような実験を行った。
【０２８３】
目標となるＩ／Ｏ動作を行う回路として、２、３ビット程度の小規模な回路を１０回路用意した。１０回路の全てについて、履歴を含まない範囲での生成実験を行うとともに、１０回路のうちの幾つかの回路について、１ステップ程度の履歴を含む生成実験を行った。
【０２８４】
初期状態では、ネットワークの出力層にＯＲノードを１つだけ用意し、ランダムな入力を加え、目標となるＩ／Ｏ動作ができた場合には、強化信号として報酬を付与し、失敗した場合には、強化信号として罰を付与することにより、回路を生成した。
【０２８５】
図１９には、この実験結果が示されている。図１９は、３ビットのＸＯＲ回路を目標回路とし、１００ステップ分の移動平均で正答率を示したもの、すなわち直近の１００ステップ（１００回の出力）のうち正解を出力したステップの割合を示したものである。
【０２８６】
各目標回路についての実験は、１０回ずつ行い、全て正しく目標回路を構成することができた。また、正誤判定にノイズをのせた場合にも、正しい回路が構成されることを確認することができ、正解へ達した回路は、構造的に安定することも確かめられた。
【０２８７】
また、別の実験として、上記の実験により２ビットのＸＯＲ回路を学習させた後、問題を変えて、３ビットのＸＯＲ回路を学習させた。そして、これらの学習内容に関連性があるか否かを調べることにより、以前の学習結果を利用した新たな構造を獲得することが確かめられた。
【０２８８】
図２０には、この実験結果が示されている。実験で生成された３ビットのＸＯＲ回路の構造の中で、実験開始時に既知の知識として与えた２ビットのＸＯＲ回路の構造が再利用された部分については、太線で示されている。実際に構造が再利用されているか否かは、構造生成の履歴を追跡することにより調べることができる。また、図２０において、３ビットのＸＯＲ回路の構造のうち、ノードＡの部分は、２ビットのＸＯＲ回路の構造と異なっている。これは、この部分のリンクがノードＡへと置き換わったからであり、構造的な再利用は達成されている。
【０２８９】
さらに、以上の２つの実験の他にも、ケペラロボットシミュレータを用いた実験により、ノード数が１万個程度で、１ステップ６４ｍｓのリアルタイムな学習や、バックアップの機能を持たせ、遅延報酬による迷路問題への適用も行うことができた。以上により、本発明の効果が顕著に示された。
【０２９０】
なお、本発明は前記実施形態に限定されるものではなく、本発明の目的を達成できる範囲内での変形等は本発明に含まれるものである。
【０２９１】
すなわち、前記実施形態では、制御対象は、ロボット３０とされていたが、これに限定されず、ゲームのキャラクタ等でもよく、例えば、格闘系ゲームの場合には、対戦相手のキャラクタとの相対位置、対戦相手のキャラクタが出している技の種類等をネットワークへの入力とし、自分の分身キャラクタの動作、すなわち自分の分身キャラクタが出す技の種類や、自分の分身キャラクタの動く方向等をネットワークの出力で定めて制御するようにしてもよい。
【０２９２】
また、前記実施形態では、図８、図９に示すような強化信号の分配（伝播）が行われていたが、分配方法は、これに限定されるものではなく、要するに、伝播元の構成エレメントに付与された強化信号に基づき、伝播元および／または伝播先の構成エレメントの入出力状態に応じて、伝播先の構成エレメントに対して付与する強化信号を生成し、構成エレメントから他の構成エレメントへの強化信号の伝播を実現できればよい。
【０２９３】
さらに、前記実施形態では、情報処理システム１０で用いられるネットワーク２０は、主としてソフトウェアにより実現されていたが、これに限定されず、少なくとも一部にハードウェア回路を用いて実現してもよい。
【０２９４】
そして、前記実施形態では、ノードは、ＡＮＤ回路やＯＲ回路を用いた論理回路により構成されていたが、ネットワークの構成エレメントとしてのノードを論理回路により構成する場合には、ＸＯＲ回路等のその他の論理回路を用いてもよい。
【産業上の利用可能性】
【０２９５】
以上のように、本発明の情報処理システムおよび情報処理方法、並びにプログラムは、Ｉ／Ｏの学習全般に用いることができ、例えば、ロボットの動作制御、ディスプレイ画面上のゲームのキャラクタの動作制御、空調管理等を行う場合に用いるのに適している。
【図面の簡単な説明】
【０２９６】
【図１】本発明の一実施形態の情報処理システムの全体構成図。
【図２】前記実施形態の情報処理システムによる処理で用いられるデータの構造を示す図。
【図３】前記実施形態の情報処理システムによるロボットの動作制御の全体的な流れを示すフローチャートの図。
【図４】前記実施形態の情報処理システムによるネットワークの処理の流れを示すフローチャートの図。
【図５】前記実施形態の情報処理システムによる中間ＯＲノード（実ノード）の学習処理の流れを示すフローチャートの図。
【図６】前記実施形態の情報処理システムによる非反転リンクの学習処理の流れを示すフローチャートの図。
【図７】前記実施形態の情報処理システムによる中間ＯＲノードの学習処理の説明図。
【図８】前記実施形態の情報処理システムによる中間ＯＲノードの学習時の強化信号の分配例を示す図。
【図９】前記実施形態の情報処理システムによる中間ＡＮＤノードの学習時の強化信号の分配例を示す図。
【図１０】前記実施形態の情報処理システムによる非反転リンク（実リンク）の学習処理の説明図。
【図１１】前記実施形態の情報処理システムによる初期化の構成の説明図。
【図１２】前記実施形態の情報処理システムによる学習時の削除処理の構成の説明図。
【図１３】前記実施形態の情報処理システムによる出力ノード初期化処理の説明図。
【図１４】前記実施形態の情報処理システムによる中間ＯＲノード初期化処理の説明図。
【図１５】前記実施形態の情報処理システムによるテスト中間ＯＲノード初期化処理の説明図。
【図１６】前記実施形態の情報処理システムによる中間ＯＲノード削除処理の説明図。
【図１７】前記実施形態の情報処理システムによる中間ＯＲノード削除処理の別の説明図。
【図１８】前記実施形態の情報処理システムによる中間ＯＲノード削除処理のさらに別の説明図。
【図１９】本発明の効果確認実験の結果を示す図。
【図２０】本発明の別の効果確認実験の結果を示す図。
【符号の説明】
【０２９７】
１０  情報処理システム
２０  ネットワーク
２１  構成エレメントである入力ノード
２２  構成エレメントである中間ノード
２３  構成エレメントである出力ノード
２４  構成エレメントであるリンク
４２  状態評価用信号取得手段
４３  強化信号生成手段
５１  学習手段
５３  出力生成手段
６１  ネットワーク構造記憶手段および強化信号記憶手段として機能するネットワーク情報記憶手段
６２  ネットワーク構造記憶手段、入出力状態記憶手段、および強化信号記憶手段として機能するノード情報記憶手段
６３  ネットワーク構造記憶手段、入出力状態記憶手段、および強化信号記憶手段として機能するリンク情報記憶手段
１０５，１４８，１８５  テストリンク
１２３，１４２，１６１，２０１，２２９  テストノード
１２４，１４３，１６２，２０２  第１の入力側テストリンク
１２５，１４６，１６３，２０４  第２の入力側テストリンク
【図１】
2006172141.tif 000003
【図２】
2006172141.tif 000004
【図３】
2006172141.tif 000005
【図４】
2006172141.tif 000006
【図５】
2006172141.tif 000007
【図６】
2006172141.tif 000008
【図７】
2006172141.tif 000009
【図８】
2006172141.tif 000010
【図９】
2006172141.tif 000011
【図１０】
2006172141.tif 000012
【図１１】
2006172141.tif 000013
【図１２】
2006172141.tif 000014
【図１３】
2006172141.tif 000015
【図１４】
2006172141.tif 000016
【図１５】
2006172141.tif 000017
【図１６】
2006172141.tif 000018
【図１７】
2006172141.tif 000019
【図１８】
2006172141.tif 000020
【図１９】
2006172141.tif 000021
【図２０】
2006172141.tif 000022