(57)【要約】【課題】進化的手法によるマルチエージェントを用いた学習により制御則を最適化することが可能なマルチエージェント型制御装置を提供する。【解決手段】マルチエージェント型制御装置では、リスト構造に従って、エージェントを順次選択しつつ（Ｓ１０６）、所定期間ずつ、選択されたエージェントに対応する制御演算要素を使用して、制御信号を算出させ（Ｓ１０８）、算出された制御信号により被制御対象を駆動し（Ｓ１１０）、駆動後に観測された制御対象量に応じて選択されたエージェントの評価値の更新を行う（Ｓ１１２）。さらに、更新された評価値に基づいて、エージェントの分裂および消滅処理が行なわれる（Ｓ１１４，Ｓ１１６）。【選択図】図１１
2007102581.tif 000002
【特許請求の範囲】
【請求項１】
被制御対象に対する制御信号の生成を学習により行なうためのマルチエージェント型制御装置であって、
制御対象量を観測して獲得するための観測手段と、
観測された前記制御対象量に基づいて前記制御信号を各々算出するための、複数のエージェントの学習処理を行なうための制御処理学習手段と、
前記制御対象量が目標値に接近するに従い増加するように更新される各前記エージェントに対応する評価値と、前記複数のエージェントのリスト構造を格納するための記憶手段とを備え、
前記制御処理学習手段は、
前記リスト構造に従って、前記エージェントを順次選択しつつ、所定期間ずつ、選択された前記エージェントに対応する制御演算要素を使用して、前記制御信号を算出させ、算出された制御信号により被制御対象を駆動し、駆動後に観測された前記制御対象量に応じて前記選択されたエージェントの評価値の更新を行う相互作用処理手段と、
前記更新された評価値に基づいて、前記エージェントの分裂および消滅処理を行なうための分裂消滅処理手段とを備える、マルチエージェント型制御装置。
【請求項２】
前記分裂消滅処理手段は、分裂前のエージェントの前記リスト構造に対応したリスト順に基づいて、分裂するエージェントの前または後ろに分裂したエージェントを挿入する手段と、
消滅前のエージェントの前記リスト順に基づいて、前記消滅前のエージェントの前と後ろのエージェントをつなげることで前記消滅前エージェントを削除する手段とを含む、請求項１記載のマルチエージェント型制御装置。
【請求項３】
前記制御演算要素は、ブロック線図における演算処理に対応し、
前記エージェントは、
前記制御信号を算出するための前記制御演算要素を少なくとも１つの組有し、
さらに、前記組の各々を活性化するか否かを前記制御対象量の観測値に応じて決定するモード決定要素を含む、請求項１記載のマルチエージェント型制御装置。
【請求項４】
被制御対象に対する制御信号の生成の学習をコンピュータに実行させるためのマルチエージェント型制御プログラムであって、
前記プログラムは、
制御対象量を観測して獲得するためのステップと、
観測された前記制御対象量に基づいて前記制御信号を各々算出するための、複数のエージェントの学習処理を行なうためのステップと、
前記制御対象量が目標値に接近するに従い増加するように更新される各前記エージェントに対応する評価値と、前記複数のエージェントのリスト構造を記憶装置に格納するステップとを備え、
前記学習処理を行なうためのステップは、
前記リスト構造に従って、前記エージェントを順次選択しつつ、所定期間ずつ、選択された前記エージェントに対応する制御演算要素を使用して、前記制御信号を算出させ、算出された制御信号により被制御対象を駆動し、駆動後に観測された前記制御対象量に応じて前記選択されたエージェントの評価値の更新を行うステップと、
前記更新された評価値に基づいて、前記エージェントの分裂および消滅処理を行なうステップとを備える、マルチエージェント型制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、進化的手法によるマルチエージェントを用いた学習により制御則を最適化することが可能なマルチエージェント型制御装置およびマルチエージェント型制御プログラムに関する。
【背景技術】
【０００２】
従来、ある対象を目的の状態に制御しようとするとき、制御システムの設計が必要になる。このとき、制御対象の入出力特性が未知の場合、また、既知であっても複雑な場合、システムの設計は難しい。
【０００３】
制御対象の一部が未知な場合において、制御しながら制御システムの一部を変更していく手法は、これまでにも提案されている。たとえば、いわゆる「適応制御」は、制御システムを未知パラメータを用いてモデル化し、その未知パラメータを適応的に変更する。このような手法は、制御システムの特性が線形とみなせるとき有効である。
【０００４】
さらに、ニューラルネットワークによる学習制御は、制御対象の特性が非線形な場合においても、ネットワーク構造を適応的に学習する。適切なネットワークの学習が行なわれれば、適切な制御が可能であるが、その学習は容易ではない。
【０００５】
このため、非線形である制御対象は、事前にできるだけ正確にモデルし、それに基づく解析的な制御システムの設計が不可欠である。また、解析的な事前設計では制御対象モデルと実際の制御対象の間に誤差があるため、設計者による試行錯誤も重要となる場合が多い。
【０００６】
一方、マルチエージェントにより視覚と行動を統合して制御するための制御エージェントを実現する試みについての報告がある（たとえば、非特許文献１、非特許文献２を参照）。
【０００７】
この非特許文献２においては、視覚処理エージェント群の協調により特徴追跡を行い、ロボットが、任意形状ペグ挿入のタスクを行なう例が開示されている。ただし、エージェントを用いた制御についての開示はあるものの、その制御の最適化については開示がされていない。
【０００８】
他方で、エージェントを用いる制御ではないものの、遺伝的アルゴリズム（ＧＡ：Genetic Algorithm）を用いて制御側を最適化する機構を利用して、非特許文献３では、並列二重倒立振り子の振り上げ安定制御を試みた例は報告されている。
【０００９】
エージェントを利用した制御については上記のような報告例があり、また、エージェントの学習において、個々のエージェントが、システムの大域的目的やその達成度などの一部しか知覚できないため、エージェントが知覚できる範囲に基づく学習を、いかにシステム全体の大域的目的と整合させるかという問題に関しては、たとえば、エージェントが知覚できる範囲の情報である利得や報酬、評価などを個体最適性と定義し、システムの大域的目的として、すべてのエージュントがそれぞれの行動から得る利得の総和をシステム最適性とそれぞれ定義したときに、エージェント学習によるシステム最適性の向上をシミュレート可能な「動的離隔型遺伝的アルゴリズム（Dynamically Separating Genetic Algorithms、以下、ＤＳ−ＧＡと記す）」の提案がなされている（たとえば、非特許文献４を参照）。
【００１０】
図１４は、このようなＤＳ−ＧＡの概念を示す図である。
このＤＳ−ＧＡは、個体数に応じて個体を「コロニー」と呼ぶグループに動的に離隔する遺伝的アルゴリズム（以下、ＧＡ）である。個体を離隔する遺伝的アルゴリズムとしては、他に島モデルＧＡなどがあるが、ＤＳ−ＧＡは離隔状態が個体数に応じて動的に変化する点で異なる。ただし、非特許文献４に記載されるようなＤＳ−ＧＡについては、エージェントをコロニーに並列に離隔することを前提としており、このような遺伝的アルゴリズムをいかにして、制御系に対して適用するかについては開示がない。
【００１１】
さらに、このようなＤＳ−ＧＡ改良して、制御システムの中にある未知パラメータをエージェントとしてモデル化し、時分割動的離隔型ＧＡ（sＤＳ−ＧＡ）というエージェント学習手法を用いて制御パラメータの最適化を実現し、線形なロボットの制御器に応用した例も報告がある（たとえば、非特許文献５を参照）。
【非特許文献１】納谷  太、森  啓、大里  延康  著：マルチエージェント制御ロボット実験系の構築、１９９６年電子情報通信学会総合大会、Ｄ−８，ｐ．１６８
【非特許文献２】納谷  太、森  啓、平松  薫、大里  延康  著：多種視覚情報処理の協調に基づく能動的トラッキングとマニピュレータ行動との統合、情報処理学会第５５回全国大会、Ｖｏｌ．２，ｐｐ．１３６−１３７，１９９７
【非特許文献３】井口  圭一、木村  元、小林  重信：ＧＡによる並列二重倒立振り子の振り上げ安定制御、計測自動制御学会第１３回自律分散シンポジウム、pp.２７７−２８３（２００１）
【非特許文献４】中山  功一、松井博和、野村由司彦著：動的離隔型ＧＡ（ＤＳ−ＧＡ）の提案、情報処理学会誌：数理モデル化と応用，Vol.43， No.SIG10(TOM7), pp.95-109， Nov.2002
【非特許文献５】Koichi NAKAYAMA，Hirokazu MATSUI，Katsunori SHIMOHARA．Osamu KATAI;“Proposal of Serially and Dynamically Separating Genetic Algorithm and Its Application to Optimization of Robot Control Systems，”Proceedings of the Tenth International Symposium On Artifcial Life and Robotics（AROB  10th）, pp. GS12-2（CD−ROM）（2005）
【発明の開示】
【発明が解決しようとする課題】
【００１２】
したがって、従来は、制御対象が未知で非線形である場合においても、マルチエージェントの学習を利用して、安定する制御システムを事後適応的に設計する方法については、必ずしも明らかではない、という問題があった。
【００１３】
本発明は、上記のような問題を解決するためになされたものであって、その目的は、進化的手法によるマルチエージェントを用いた学習により制御則を最適化することが可能なマルチエージェント型制御装置およびマルチエージェント型制御プログラムを提供することである。
【課題を解決するための手段】
【００１４】
このような目的を達成するために、本発明のマルチエージェント型制御装置は、被制御対象に対する制御信号の生成を学習により行なうためのマルチエージェント型制御装置であって、制御対象量を観測して獲得するための観測手段と、観測された制御対象量に基づいて制御信号を各々算出するための、複数のエージェントの学習処理を行なうための制御処理学習手段と、制御対象量が目標値に接近するに従い増加するように更新される各エージェントに対応する評価値と、複数のエージェントのリスト構造を格納するための記憶手段とを備え、制御処理学習手段は、リスト構造に従って、エージェントを順次選択しつつ、所定期間ずつ、選択されたエージェントに対応する制御演算要素を使用して、制御信号を算出させ、算出された制御信号により被制御対象を駆動し、駆動後に観測された制御対象量に応じて選択されたエージェントの評価値の更新を行う相互作用処理手段と、更新された評価値に基づいて、エージェントの分裂および消滅処理を行なうための分裂消滅処理手段とを備える。
【００１５】
好ましくは、分裂消滅処理手段は、分裂前のエージェントのリスト構造に対応したリスト順に基づいて、分裂するエージェントの前または後ろに分裂したエージェントを挿入する手段と、消滅前のエージェントのリスト順に基づいて、消滅前のエージェントの前と後ろのエージェントをつなげることで消滅前エージェントを削除する手段とを含む。
【００１６】
好ましくは、制御演算要素は、ブロック線図における演算処理に対応し、エージェントは、制御信号を算出するための制御演算要素を少なくとも１つの組有し、さらに、組の各々を活性化するか否かを制御対象量の観測値に応じて決定するモード決定要素を含む。
【００１７】
この発明の他の局面に従うと、被制御対象に対する制御信号の生成の学習をコンピュータに実行させるためのマルチエージェント型制御プログラムであって、プログラムは、制御対象量を観測して獲得するためのステップと、観測された制御対象量に基づいて制御信号を各々算出するための、複数のエージェントの学習処理を行なうためのステップと、制御対象量が目標値に接近するに従い増加するように更新される各エージェントに対応する評価値と、複数のエージェントのリスト構造を記憶装置に格納するステップとを備え、学習処理を行なうためのステップは、リスト構造に従って、エージェントを順次選択しつつ、所定期間ずつ、選択されたエージェントに対応する制御演算要素を使用して、制御信号を算出させ、算出された制御信号により被制御対象を駆動し、駆動後に観測された制御対象量に応じて選択されたエージェントの評価値の更新を行うステップと、更新された評価値に基づいて、エージェントの分裂および消滅処理を行なうステップとを備える。
【発明を実施するための最良の形態】
【００１８】
以下、図面を参照して本発明の実施の形態について説明する。
（本発明の概要）
以下にも説明するとおり、本発明では、制御対象の特性を同定しながら適切な制御システムを事後適応的に設計する方法を提供する。特に、本発明では、上述したような従来のＤＳ−ＧＡにおけるようにエージェントが時間軸上で並列に離隔できないシステムにおいて、時分割制御を用いることで、必ずしも並列処理を必要とせずにシステムへ適用可能なマルチエージェント型制御装置およびマルチエージェント型制御プログラムを提供する。
【００１９】
以下では、主として、本発明をいわゆる「倒立振り子」の制御に適用した場合について説明する。しかしながら、本発明は、このような構成に限定されることなく、より一般的に、ブロック線図上の複数の伝達要素の組合せにより制御則が表現されるような制御系について、適用可能なものである。
【００２０】
［発明の実施の形態］
（実施の形態１）
（１．本発明のシステム構成）
図１は、本発明の制御方法および制御プログラムが適用される制御器を用いた制御システム１０００の一例を示す概念図である。
【００２１】
図１を参照して、制御システム１０００は、制御対象となる被制御装置２００と、この被制御装置２００に対して制御信号を与えるためのコンピュータ１００とを備える。
【００２２】
図１を参照してこのコンピュータ１００は、ＣＤ−ＲＯＭ（Compact Disc Read-Only Memory ）上の情報を読込むためのＣＤ−ＲＯＭドライブ１０８およびフレキシブルディスク（Flexible Disk、以下ＦＤ）１１６に情報を読み書きするためのＦＤドライブ１０６を備えたコンピュータ本体１０２と、コンピュータ本体１０２に接続された表示装置としてのディスプレイモニタ１０４と、同じくコンピュータ本体１０２に接続された入力装置としてのキーボード１１０およびマウス１１２とを含む。
【００２３】
図２は、このコンピュータ１００のハードウェア構成をブロック図形式で示す図である。
【００２４】
図２に示されるように、このコンピュータ１００を構成するコンピュータ本体１０２は、ＣＤ−ＲＯＭドライブ１０８およびＦＤドライブ１０６に加えて、それぞれバスＢＳに接続されたＣＰＵ（Central Processing Unit ）１２０と、ＲＯＭ（Read Only Memory) およびＲＡＭ （Random Access Memory）を含むメモリ１２２と、直接アクセスメモリ装置、たとえば、ハードディスク１２４と、被制御装置２００とデータの授受を行うための通信インタフェース１２８とを含んでいる。ＣＤ−ＲＯＭドライブ１０８にはＣＤ−ＲＯＭ１１８が装着される。ＦＤドライブ１０６にはＦＤ１１６が装着される。
【００２５】
被制御装置２００からは、コンピュータ１００に対して被制御装置２００の状態を示すパラメータ（状態量）の情報、たとえば、被制御装置２００の可動部分の位置、速度、加速度、角度、角速度等の情報が与えられる。一方、コンピュータ１００からは、被制御装置２００に対して、これら状態量を制御するための制御情報が制御信号として与えられる。
【００２６】
なお、ＣＤ−ＲＯＭ１１８は、コンピュータ本体に対してインストールされるプログラム等の情報を記録可能な媒体であれば、他の媒体、たとえば、ＤＶＤ−ＲＯＭ（Digital Versatile Disc）などの他の光ディスクやメモリカードなどでもよく、その場合は、コンピュータ本体１０２には、これらの媒体を読取ることが可能なドライブ装置が設けられる。
【００２７】
本発明の制御器の主要部は、コンピュータハードウェアと、ＣＰＵ１２０により実行されるソフトウェアとにより構成される。一般的にこうしたソフトウェアはＣＤ−ＲＯＭ１１８、ＦＤ１１６等の記憶媒体に格納されて流通し、ＣＤ−ＲＯＭドライブ１０８またはＦＤドライブ１０６等により記憶媒体から読取られてハードディスク１２４に一旦格納される。または、当該装置がネットワークに接続されている場合には、ネットワーク上のサーバから一旦ハードディスク１２４にコピーされる。そうしてさらにハードディスク１２４からメモリ１２２中のＲＡＭに読出されてＣＰＵ１２０により実行される。なお、ネットワーク接続されている場合には、ハードディスク１２４に格納することなくＲＡＭに直接ロードして実行するようにしてもよい。
【００２８】
図１および図２に示したコンピュータのハードウェア自体およびその動作原理は一般的なものである。したがって、本発明の最も本質的な部分は、ＦＤ１１６、ＣＤ−ＲＯＭ１１８、ハードディスク１２４等の記憶媒体に記憶されたソフトウェアである。
【００２９】
なお、一般的傾向として、コンピュータのオペレーティングシステムの一部として様々なプログラムモジュールを用意しておき、アプリケーションプログラムはこれらモジュールを所定の配列で必要な時に呼び出して処理を進める方式が一般的である。そうした場合、当該制御システムを実現するためのソフトウェア自体にはそうしたモジュールは含まれず、当該コンピュータでオペレーティングシステムと協働してはじめて制御システムが実現することになる。しかし、一般的なプラットフォームを使用する限り、そうしたモジュールを含ませたソフトウェアを流通させる必要はなく、それらモジュールを含まないソフトウェア自体およびそれらソフトウェアを記録した記録媒体（およびそれらソフトウェアがネットワーク上を流通する場合のデータ信号）が実施の形態を構成すると考えることができる。
【００３０】
［制御方法の一般的説明］
以下、本発明の構成について、その基本的な構成をまず説明する。
【００３１】
一般の制御システムは、非線形である場合も含めて入力から出力まで間の状態量をデータフローの形で表現するブロック線図で表現可能である。ブロック線図は、それぞれのブロックの入出力を他のブロックの出入力につなげることによりつくられる。これにより、個々のブロックの種類はさほど多くなくても、様々な種類の制御システムを表現することができる。
【００３２】
本発明では、後に説明するように、個々のブロックまたはそれらの集合をエージェントとして、ブロック線図をマルチエージェントシステムとしてモデル化する。このようにモデル化したことにより得られる制御システムのことを、以下、「マルチエージェント制御システム（Multi−Agent based Control System）」と呼ぶ。
【００３３】
すなわち、本発明では、制御パラメータのみならず、制御システムそのものをマルチエージェントシステムとしてのモデル化する。これにより、制御対象が未知で非線形な制御システムに対しても、エージェント学習手法による事後適応的な設計が実現できる。
【００３４】
以下の説明では、非線形制御システムの例として、モード切替え制御を取り上げ、ブロック線図をマルチエージェントシステムとして表現した例を示すとともに、その提案モデルのための新たな学習手法について述べる。すなわち、本発明においては、制御システムを構成する個々の要素（ブロック線図におけるブロック）またはそれらの集合をエージェントとして、信号伝達などの個々の要素間の関係（ブロック線図における線）をエージェント間の情報の入出力関係として捉え、マルチエージェントシステムによるモデル化を行なう。
【００３５】
（マルチエージェント制御システム：以下、ＭＡＣＳと呼ぶ）
上述したとおり、ＭＡＣＳでは、ブロック線図における各ブロック（伝達要素）をエージェントとして、ブロックをつなぐ線をエージェント間の関係としてモデル化する。
【００３６】
図３は、被制御装置２００の一例である倒立振り子を示す概念図である。
ここで、倒立振り子の制御には、制御モード切替による非線形制御が必要であることが知られている。
【００３７】
図３に示すように、制御対象である倒立振り子２は、先端に質量ｍの重りがついた長さｌの棒をもち、垂直二次元平面上を摩擦無しで回転できるものとする。倒立振り子２のおもりには、重力ｍｇが作用することになる。倒立振り子２の根元には、所定の最大出力、例えば、ｍｇｌ／１０を有するモータ１２と、振り子２の角度θを得るセンサ１０が設けられている。
【００３８】
図４は、このような倒立振り子２を制御する制御器のブロック線図の一例である。倒立振り子２は、図４に示す制御システムにより振り上げ安定制御が可能である。
【００３９】
倒立振り子２の制御問題の目的は、適切なトルクＴを出力することによって、倒立位置（図３中の目標状態）で振子を静止させる、すなわち、基本的には、θ＝０の条件が満たされるような制御器を設計することである。
【００４０】
ここで、倒立振り子２の角度θがセンサ１０により観測されると、制御機能ブロック３０２の比例伝達要素Ｐｔ、微分伝達要素ＤｔＳに入力され、比例伝達要素Ｐｔ、微分伝達要素ＤｔＳの出力が加え合わされて、制御機能ブロック３０４に与えられる。制御機能ブロック３０４は、制御機能ブロック３０２からの信号の絶対値が所定のしきい値以上であれば、スイッチＳＷ１およびＳＷ２をそれぞれＢノード側が導通するように切換え、それ以外では、スイッチＳＷ１およびＳＷ２をそれぞれＡノード側が導通するように切換える。以後は、スイッチＳＷ１およびＳＷ２がそれぞれＡノード側が導通するように切換えられている状態を「モードＡ」と呼び、スイッチＳＷ１およびＳＷ２がそれぞれＢノード側が導通するように切換えられている状態を「モードＢ」と呼ぶ。
【００４１】
モードＡにおいては、センサ１０により観測された角度θと値０との差が、スイッチＳＷ１を介して、制御機能ブロック３０６に与えられる。制御機能ブロック３０６では、スイッチＳＷ１からの信号をそれぞれ受け取る、比例伝達要素Ｐａ、積分伝達要素Ｉａ／Ｓ、微分伝達要素ＤａＳの出力が加え合わされて、スイッチＳＷ２に出力される。
【００４２】
一方、モードＢにおいては、センサ１０により観測された角度θと値０との差が、スイッチＳＷ１を介して、制御機能ブロック３０８に与えられる。制御機能ブロック３０８では、スイッチＳＷ１からの信号をそれぞれ受け取る、比例伝達要素Ｐｂ、積分伝達要素Ｉｂ／Ｓ、微分伝達要素ＤｂＳの出力が加え合わされて、スイッチＳＷ２に出力される。
【００４３】
スイッチＳＷ２の出力がモータ１２に与えられて、モータ１２の出力のトルクＴにより、倒立振り子２が駆動される。
【００４４】
（エージェントによる制御）
次に、エージェントによる制御の基本的なメカニズムについて述べる。
【００４５】
図５は、制御エージェントの概念図である。
図５に示すように、倒立振り子２を制御するＭＡＣＳは、振り子ブロックの入力であるモータトルクＴを出力とし、振り子ブロック２の出力である振り子角度θを入力とする。各エージェントは、単位時間ごとに交代で制御を担当する。
【００４６】
各エージェントは、モード決定要素Ｍと、図４において各ブロックで示される比例項Ｐ、積分項Ｉ、微分項Ｄなどの伝達要素にそれぞれ相当する「制御演算要素Ｐ，Ｉ，Ｄ」を含む。モード決定要素Ｍは、図４の制御機能ブロック３０２および３０４ならびにスイッチＳＷ１およびＳＷ２の組に対応し、モードＡまたはモードＢのいずれであるかを判断して、対応するエージェントを発火させる。なお、制御演算要素に対応する演算は、他の演算処理のラプラス変換に対応するものであってもよい。また、モード決定要素Ｍは、上述のように、モードに応じて、択一的に対応するエージェントを発火させるという処理だけでなく、たとえば、あるモードでは、対応するエージェントを発火させずに、処理を次のエージェントに渡すというような処理を行なう場合があってもよい。
【００４７】
各エージェントは、外部入力（倒立振り子の角度θ）あるいは、他のエージェント出力を入力とする。このとき、各エージェントにおいては、ブロック線図における“引き出し点”に対応して、複数の制御演算要素による互いの影響を受けない入力も可能である。入力に対して、項の特性とその係数から、各制御演算要素の出力を決定する。さらに、各エージェントにおいては、出力先を、他のエージェントあるいは、外部出力（モータトルク）とする。このとき、ブロック全図における“加え合わせ点”のように、複数の制御演算要素による出力の足し合わせも可能である。各エージェントは、上記の情報を遺伝子（制御戦略）としてそれぞれ有する。
【００４８】
（ＭＡＣＳの制御に対するシミュレーション実験）
以下では、ＭＡＣＳによりモデル化した制御システムが適切に機能するか確認するために、倒立振り子２を実際に制御するシミュレーション実験について述べる。
【００４９】
ここでは、ＭＡＣＳが所与のものである場合に、制御が適切に行なわれるかを確認することを目的として、モード決定要素Ｍと制御演算要素Ｐ，Ｉ，Ｄの遺伝子は、それぞれ事前に求めた適切なパラメータを与える。
【００５０】
図６は、シミュレーション結果を示す図である。
図６においては、実験結果の一つとして、倒立振り子の初期状態（θ、ｄθ／ｄｔ）を（１７０、０）とし、ＭＡＣＳにおけるエージェント間の関係を図４で示したものとし、モード数を２（Ａ，Ｂ）、モードＡ（収束モード）における定数をＰａ＝１０、Ｄａ＝１０、モードＢ（発散モード）における定数をＰｂ＝０、Ｄｂ＝−０．１、モード決定しきい値をＴｈ＝１、モード決定のための定数をＰｔ＝１，Ｄｔ＝０とした場合に、ＭＡＣＳにより制御された倒立振り子２の単位時間ごとの角度θ［degree］を示す。図６により、約５００単位時間までの発散モードにより振り子が頂点付近まで振り上げられた後、収束モードに切り替わり頂点へと収束していく様子が分かる。
【００５１】
これらの結果から、ＭＡＣＳでは、エージェントが適切なパラメータを学習することができれば、モード切替の必要な非線形制御であっても、実現可能であることが示された。
【００５２】
（エージェント学習手法）
以下では、ＭＡＣＳに適用するエージェント学習手法について述べる。
【００５３】
非線形制御システムの評価において、現在の出力が制御システム全体の目的と合っているかどうかを即座に判断することは困難である。例えば、オーバーシュート現象のように、短期的には目標に素早く近付く出力が、長期的には目標から離れる場合もある。そのため、ＭＡＣＳにおいて、それぞれのエージェントが担当する短時間の出力が、長期的に適切な出力であるかどうかは即座には判断できない。
【００５４】
本発明が適用可能な制御対象である倒立振り子２は、不安定であり、一旦、不安定になると、適正な制御システムに変更しても、系が安定しない特性がある。すなわち、このような制御はいわゆる「ジレンマ環境」において、安定収束性の高いシステム最適な解を得ることに相当する。
【００５５】
図７は、図１および図２に示した制御システム１０００の構成を示す機能ブロック図である。
【００５６】
センサ１０は、倒立振り子２の角度θを計測（観測）し、制御部１００のセンサ系インタフェース１２８ａに観測データを与える。
【００５７】
制御部１００では、センサ系インタフェース１２８ａを介して入力された観測データは、一旦、データバッファ部として機能するメモリ１２２に格納され、制御処理学習部として機能するＣＰＵ（Central Processing Unit）１２０が、メモリ１２２中の観測データを用いて、たとえば、所定時間単位ごとに、倒立振り子２の倒立動作を制御するための処理を実行する。
【００５８】
すなわち、ＣＰＵ１２０では、記憶装置として機能するハードディスク１２４に格納されているプログラムに基づいて、観測データθに基づいて、駆動モータ１２を制御するための制御信号、たとえば、駆動モータ１２が出力する駆動トルクＴに対応した制御信号を計算して、駆動系インタフェース１２８ｂに与える。
【００５９】
（リスト構造型ＧＡ）
次に、制御処理学習部が行なう学習処理について、さらに詳しく説明する。
【００６０】
図８は、リスト構造型遺伝アルゴリズム（リスト構造型ＧＡ）における遺伝子個体（エージェント）の分裂処理、および消滅処理を説明するための図である。
【００６１】
リスト構造型ＧＡは、遺伝子個体はリスト構造により表現され、一列に並んだ遺伝子個体の相互作用を隣接個体間（または近傍個体間）に制限する。遺伝子個体は分裂と消滅により増減する。
【００６２】
個体の評価値が初期値の、たとえば、倍以上になると個体は分裂し、新たに生まれた個体が分裂前の個体の隣（当該個体の前または後。事前にいずれにするか設定しておくか、あるいは、ランダムに選択する。）に挿入される（図８（Ａ））。このとき、無作為に選択された個体が消滅する。
【００６３】
一方、個体の評価値が０以下になると個体は消滅し、消滅した個体に隣接していた個体同士が新たに隣接個体となる（図５（Ｂ））。このとき、無作為に選択された個体が分裂する。
【００６４】
リスト構造型ＧＡ（ＬＳ−ＧＡ）は、ＤＳ−ＧＡと同様に選択オペレーション以外の個体間相互作用を制限することにより、個々の遺伝子個体にとってのみ適切な出力ではなく、集団全体にとって適切な出力を獲得する手法である。
【００６５】
図９は、メモリ１２２（または必要に応じてハードディスク１２４）に格納される、エージェントのリスト構造を説明するための図である。
【００６６】
図９（ａ）に示すように、このテーブルの横一列が、単位時間ごとに処理するエージェントである。各エージェントは、評価値Ｅ（ａｉ）と、制御における入出力関係を示す（制御システムの構造を含む）制御戦略Ｓｔ（ａｉ）を有する。
【００６７】
図９（ａ）において、ポインタ（データの格納場所）とは、メモリ１２２等における記憶領域内の物理的な位置を示す。一方、各エージェントに対しては、自身の直前のエージェントのポインタと、自身の直後のエージェントのポインタもテーブル中に格納されている。このようなポインタにより接続関係を表現することで、エージェントのリスト構造を実現できる。
【００６８】
ｉ）後に説明するように、単位時間ごとに自身の制御に伴う観測データ（現在の制御対象の状態）により、現在の制御を担当しているエージェントの評価値を決定が決定され、このエージェントの評価値が増減する。
【００６９】
ｉｉ）さらに、単位時間経過後に，現在，制御を担当しているエージェントの次エージェントのポインタに存在するエージェントに制御担当が交代する。このｉ）およびｉｉ）の処理の繰り返しにより，エージェントは図９（ｂ）のように順番に制御を担当する。
【００７０】
図１０は、各エージェントの制御戦略Ｓｔ（ａｉ）の例を示す図である。
図１０に示すように、各エージェントについては、制御戦略Ｓｔ（ａｉ）は、入力データの入力元を特定するための入力元情報、入力元から入力された入力データ、出力データの出力先を特定するための出力先情報、出力される出力データの属性データを含む。
【００７１】
制御戦略Ｓｔ（ａｉ）は、さらに、エージェントを構成する制御演算要素の種類を特定するための制御演算要素情報、制御演算要素が行なう演算処理を特定するための演算パラメータの属性データを含む。さらに、制御戦略Ｓｔ（ａｉ）は、付随属性として、制御演算要素の入力の態様（たとえば、引き出し線に対応するのか否か、あるいは、入力元からのデータに共通に所定の演算処理を行なうのか否か）を特定する情報や、制御演算要素の出力の態様（たとえば、加え合わせ点に対応するのか否か等）を特定する情報を含む。
【００７２】
図９（ａ）および図１０に示す情報が、各エージェントの遺伝情報となる。
図１１は、制御処理学習部が行なう学習処理を説明するためのフローチャートである。
【００７３】
以下、図１１を参照して、ＬＳ−ＧＡのアルゴリズムについて、さらに詳しく説明する。
【００７４】
まず、以下のような初期設定の処理が行われる（ステップＳ１００）。
（１）初期設定
すなわち、制御処理学習部１２０は、ＬＳ−ＧＡを適用するＮ個（Ｎ：２以上の自然数）の制御エージェントをランダムに生成する。なお、エージェントの初期個数Ｎは、ＣＰＵ１２０の処理能力を考慮して、その個数を予め設定するものとする。
【００７５】
ここで、駆動トルクＴを計算するための制御演算要素の種類と演算パラメータ、制御演算要素の入力の態様、制御演算要素の出力の態様は、特に、限定されないが、予め定められた範囲内の選択肢からランダムに選ばれるものとする。
【００７６】
このような制御エージェントのランダムな生成を「エージェントの初期生成」と呼ぶことにする。
【００７７】
さらに、各エージェントごとに、評価値Ｅ(ａｉ)の値が初期値として、たとえば、０に設定される。
【００７８】
再び、図１１を参照して、次に、学習処理中のエージェントの最大数Ｎａｇｅｎｔを、特に限定されないが、たとえば、Ｎに設定する（ステップＳ１０２）。
【００７９】
さらに、初期設定として、時間を表す変数ｔ１の値は０とされる（ステップＳ１０４）。
【００８０】
（２）相互作用:
続いて、各エージェントは、以下に説明するような行動と相互作用を行なう。
【００８１】
まず、リスト構造に従い、制御を担当するエージェントを選択する（ステップＳ１０６）。
【００８２】
続いて、選択されたエージェントの制御戦略Ｓｔ（ａｉ）に基づいて、制御信号が計算される（ステップＳ１０８）。
【００８３】
続いて、計算された制御信号により、所定時間ｔｃの間だけ、駆動モータ１２が駆動され、対応するトルクＴが倒立振り子２に与えられる（ステップＳ１１０）。
【００８４】
さらに、ステップＳ１１０の駆動の間に、倒立振り子２の角度θがセンサ１０により観測される。このとき、倒立振り子２の角度θおよび角度θの時間微分であるｄθ／ｄｔにより、たとえば、以下の式に基づいて、選択されて制御を担当した制御エージェントの評価値が更新される（ステップＳ１１２）。
【００８５】
Ｅ(ａｉ)←Ｅ(ａｉ)＋（Ｅ０−｜θ｜）＋（Ｅ１−｜ｄθ／ｄｔ｜）…（１）
ここで、Ｅ０、Ｅ１は所定の定数である。また、｜…｜は絶対値を表す。
【００８６】
さらに、選択されて制御を担当した制御エージェントにリスト構造上隣接する（または、リスト構造上、所定の範囲の近傍に存在する）エージェントの評価値も式（１）により更新される。このとき、制御担当のエージェントからの距離に応じて、所定の係数で評価の更新分を減衰させてもよい。
【００８７】
なお、評価値は、ステップＳ１１０の駆動の終了時点で、測定された角度θと、それに対応する時間微分により計算されるものとする。
【００８８】
また、評価値の計算は、上記式（１）の方法に限定されることなく、より目標に近づくほど、順次、より評価値が増大するような関数であれば、他の計算式によってもよい。
【００８９】
（３）エージェントの分裂と消滅:
エージェントは、エージェントの評価値が所定の値、たとえば、初期値の倍以上になると分裂を起こすものとする。このとき、各エージェントは、分裂前の評価値を半分ずつ持つ２個体に分裂し、それぞれ遺伝子を引き継ぐ（ステップＳ１１４）。このとき、無作為に選択された個体が消滅する。
【００９０】
また、エージェントは、自身の評価値が０以下になると消滅するものとする（ステップＳ１１６）。このとき、無作為に選択された個体が分裂する。
【００９１】
なお、遺伝子が、所定の突然変異確率ｐ1で変異するものとしてもよい。すなわち、たとえば、ランダムに選択されたエージェントについて、この突然変異確率ｐ1で、再度、「エージェントの初期生成」処理により、遺伝子が変異することとしてもよい。
【００９２】
次に、時間ｔが、ｔ＝ｔ＋ｔｃと更新され（ステップＳ１１８）、続いて、制御処理が終了したか、たとえば、時間ｔが、所定の処理時間Ｔ０よりも大きいかが判断される（ステップＳ１２０）。
【００９３】
処理が終了していなければ、処理は、ステップＳ１０６に復帰する。
以上のステップＳ１０６〜ステップＳ１２０での処理を１単位時間とし、ＣＰＵ１２０は、この処理を繰り返すことで、エージェントの学習処理を実行する。
【００９４】
なお、上述した説明では、ステップＳ１１４において、無作為な個体の消滅が起こり、ステップＳ１１６においては、無作為な分裂が起こるものとした。これは、本発明の方法では、必ずしもエージェントの総数に制限はないものの、計算のコストを一定にする観点から、エージェントの最大数を一定にするために行なわれるものである。このとき、上述した説明では、エージェントの総数は、初期値から変化しないことになる。しかし、たとえば、ステップＳ１０２において、エージェントの最大数Ｎａｇｅｎｔを、初期値のＮではなく、他の値に設定しているのであれば、ステップＳ１１４においては、たとえば、エージェントの総数がＮａｇｅｎｔを超えるときは、総数がＮａｇｅｎｔとなるまで、ランダムにエージェントの消滅処理を行ない、ステップＳ１１６においては、ランダムに個体を選択して分裂させる処理を、エージェントの総数がＮａｇｅｎｔとなるまで、繰り返す、こととしてもよい。
【００９５】
以上のような処理においては、時間的にエージェントが入れ替わるので、実際には、過去に担当したエージェントの行動により、現在のエージェントの評価が変わる。したがって、一般には、現在のエージェント単体の評価がしにくい。
【００９６】
しかしながら、上述したような集団最適性を得る性質を持つＬＳ−ＧＡを用いれば、個々に評価されるエージェントを、集団最適性をもつように学習させることができる。
【００９７】
以上のような処理により、エージェント間の影響を近接したエージェントに限定するＬＳ−ＧＡによって、仮想的な離隔を実現して、エージェントの処理を並列に行なうことができないハードウェアの制御に対して、制御則の最適化を自律的に適応的に行なうことが可能となる。
【００９８】
（ＬＳ−ＧＡとＤＳ−ＧＡの比較）
以下では、ＬＳ−ＧＡとＤＳ−ＧＡをジレンマモデルに適用した場合の比較結果を、両者のジレンマ環境への適用可能性を比較するものとして説明する。
【００９９】
（囚人のジレンマモデルによる比較実験）
図１２は、マルチエージェントの標準問題である囚人のジレンマモデルを示す図である。
【０１００】
以下では、従来のＤＳ−ＧＡとＬＳ−ＧＡを図１２に示すような囚人のジレンマモデルに適用し、それぞれの性質を比較する。
【０１０１】
囚人のジレンマモデルに対する個体間相互作用を以下に示す。
（１）単位時間ごとに、ＬＳ−ＧＡでは隣接個体と、ＤＳ−ＧＡでは同一コロニー内から無作為に選択した個体と対戦する。
【０１０２】
（２）対戦する２個体は、裏切Ｄを選択する確率を示すそれぞれの遺伝子GeneAct（a）∈（0/10，1/10，…，10/10）に従い、協調、または裏切を選択する。
【０１０３】
（３）互いの選択行動の組合せに応じて利得を得る。
この実験では、初期個体数１００００、ＤＳ−ＧＡの限界数１０、突然変異確率０．００１、初期評価値２０とし、移動は用いない。また、異なるランダム系列を用いて１００試行する。
【０１０４】
図１３は、実験結果の一つとして、遺伝子別個体数比率の推移を示す図である。
図１３を参照すると、ＬＳ−ＧＡおよびＤＳ−ＧＡのいずれの学習手法を用いた場合においても、集団全体にとって適切な協調行動を学習したことが分かる。特に、ＤＳ−ＧＡの場合には最初に裏切個体が増加し、その後協調個体の増加に転じるのに対し、ＬＳ−ＧＡの場合には裏切個体が増加せずに、すぐに協調個体が増加した。
【０１０５】
これらの結果から、エージェント学習にリスト構造型ＧＡを適用した場合には、動的離隔型ＧＡを適用した場合と同様に、ジレンマ環境においても集団全体にとって適切な結果を学習することが示された。
【０１０６】
この実験で示されたように、ＬＳ−ＧＡは、ＤＳ−ＧＡと同様に全体最適な出力を学習できる。すなわち、ＤＳ−ＧＡの適用が容易な対象はＤＳ−ＧＡにより学習し、ＬＳ−ＧＡの適用が容易な対象はＬＳ−ＧＡにより学習することが可能である。
【０１０７】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０１０８】
【図１】本発明の制御方法および制御プログラムが適用される制御器を用いた制御システム１０００の一例を示す概念図である。
【図２】コンピュータ１００のハードウェア構成をブロック図形式で示す図である。
【図３】被制御装置２００の一例である倒立振り子を示す概念図である。
【図４】倒立振り子２を制御する制御器のブロック線図の一例である。
【図５】制御エージェントの概念図である。
【図６】シミュレーション結果を示す図である。
【図７】図１および図２に示した制御システム１０００の構成を示す機能ブロック図である。
【図８】リスト構造型ＧＡにおける遺伝子個体（エージェント）の分裂処理、および消滅処理を説明するための図である。
【図９】メモリ１２２に格納される、エージェントのリスト構造を説明するための図である。
【図１０】各エージェントの制御戦略Ｓｔ（ａｉ）の例を示す図である。
【図１１】制御処理学習部が行なう学習処理を説明するためのフローチャートである。
【図１２】マルチエージェントの標準問題である囚人のジレンマモデルを示す図である。
【図１３】遺伝子別個体数比率の推移を示す図である。
【図１４】ＤＳ−ＧＡの概念を示す図である。
【符号の説明】
【０１０９】
２  倒立振り子、１０  センサ、１２  駆動モータ、１００  制御部、１２２  データバッファ部、１２４  記憶装置、１２０  制御処理学習部、１２８ａ  センサ系インタフェース、１２８ｂ  駆動系インタフェース、２００  被制御装置、１０００  制御システム。
【図１】
2007102581.tif 000003
【図２】
2007102581.tif 000004
【図３】
2007102581.tif 000005
【図４】
2007102581.tif 000006
【図５】
2007102581.tif 000007
【図６】
2007102581.tif 000008
【図７】
2007102581.tif 000009
【図８】
2007102581.tif 000010
【図９】
2007102581.tif 000011
【図１０】
2007102581.tif 000012
【図１１】
2007102581.tif 000013
【図１２】
2007102581.tif 000014
【図１３】
2007102581.tif 000015
【図１４】
2007102581.tif 000016