(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-07-22
(45)【発行日】2025-07-30
(54)【発明の名称】制御装置、制御システム、制御方法及びプログラム
(51)【国際特許分類】
G06Q 10/083 20240101AFI20250723BHJP
【FI】
G06Q10/083
(21)【出願番号】P 2022135849
(22)【出願日】2022-08-29
【審査請求日】2024-05-16
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】小田島 正
(72)【発明者】
【氏名】河村 芳海
(72)【発明者】
【氏名】柴田 一騎
(72)【発明者】
【氏名】神保 智彦
【審査官】原 忠
(56)【参考文献】
【文献】国際公開第2019/058694(WO,A1)
【文献】特開2021-051649(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00 - 99/00
(57)【特許請求の範囲】
【請求項1】
タスクを実行するエージェントを制御する制御装置であって、
前記タスクは、当該タスクを実行するエージェントの数が多いほど当該タスクの目標が達成される可能性が高くなり、前記タスクは、環境に複数存在し、
当該エージェントと、当該エージェントの周辺の他のエージェント及び前記タスクとに関する観測情報に基づいて、応援を要請するか否かに関する要請パラメータと、他のエージェントからの要請に応答するか否かに関する応答パラメータとを算出する要請応答処理部と、
少なくとも他のエージェントの前記要請パラメータと当該エージェントの前記応答パラメータとに基づいて、当該エージェントに関する前記タスクそれぞれの重要度を算出するための処理を行
い、
前記エージェントごとに学習された方策に前記観測情報を入力して、前記方策から出力された、前記観測情報に対応する前記タスクの重要度の目標値に基づいて、当該エージェントに関する前記観測情報に対応する前記タスクの重要度を算出し、
前記応答パラメータが他のエージェントからの要請に応答しないことを示す場合には、当該エージェントが実行している前記タスクの重要度が前記目標値に近づくように、当該エージェントに関する前記観測情報に対応する前記タスクの重要度を算出し、
前記応答パラメータが他のエージェントからの要請に応答することを示し、前記他のエージェントの前記要請パラメータが応援を要請することを示す場合には、前記他のエージェントが実行している前記タスクの重要度と当該タスクの当該エージェントに関する重要度との差分に基づいて、前記他のエージェントが実行している前記タスクの重要度が高くなるように、当該エージェントに関する前記観測情報に対応する前記タスクの重要度を算出する、重要度処理部と、
前記重要度に応じて、当該エージェントが実行すべき前記タスクを選択するタスク選択部と、
当該エージェントが選択された前記タスクを実行するように制御を行うタスク実行部と、
を有する制御装置。
【請求項2】
前記要請応答処理部は、前記エージェントごとに学習された
前記方策に基づいて、前記要請パラメータ及び前記応答パラメータを算出する、
請求項1に記載の制御装置。
【請求項3】
前記要請応答処理部は、前記観測情報を前記方策に入力して前記方策から出力された要請度合い及び応答度合いに基づいて、それぞれ前記要請パラメータ及び前記応答パラメータを算出する、
請求項2に記載の制御装置。
【請求項4】
前記要請応答処理部は、前記要請度合いが予め定められた閾値を上回り、且つ、当該エージェントが実行している又は実行しようとしている前記タスクが進行していない場合に、応援を要請することを示す前記要請パラメータを算出する、
請求項3に記載の制御装置。
【請求項5】
前記要請応答処理部は、前記応答度合いが予め定められた閾値を上回り、且つ、当該エージェントが実行している又は実行しようとしている前記タスクが進行していない場合に、要請に応答することを示す前記応答パラメータを算出する、
請求項3に記載の制御装置。
【請求項6】
タスクを実行する複数のエージェントを分散して制御する制御システムであって、
前記タスクは、当該タスクを実行するエージェントの数が多いほど当該タスクの目標が達成される可能性が高くなり、前記タスクは、環境に複数存在し、
当該制御システムは、複数のエージェントそれぞれを制御する複数の制御装置を有し、
複数の制御装置それぞれは、
当該制御装置に関する当該エージェントと、当該エージェントの周辺の他のエージェント及び前記タスクとに関する観測情報に基づいて、応援を要請するか否かに関する要請パラメータと、他のエージェントからの要請に応答するか否かに関する応答パラメータとを算出する要請応答処理部と、
少なくとも他のエージェントの前記要請パラメータと当該エージェントの前記応答パラメータとに基づいて、当該エージェントに関する前記タスクそれぞれの重要度を算出するための処理を行
い、
前記エージェントごとに学習された方策に前記観測情報を入力して、前記方策から出力された、前記観測情報に対応する前記タスクの重要度の目標値に基づいて、当該エージェントに関する前記観測情報に対応する前記タスクの重要度を算出し、
前記応答パラメータが他のエージェントからの要請に応答しないことを示す場合には、当該エージェントが実行している前記タスクの重要度が前記目標値に近づくように、当該エージェントに関する前記観測情報に対応する前記タスクの重要度を算出し、
前記応答パラメータが他のエージェントからの要請に応答することを示し、前記他のエージェントの前記要請パラメータが応援を要請することを示す場合には、前記他のエージェントが実行している前記タスクの重要度と当該タスクの当該エージェントに関する重要度との差分に基づいて、前記他のエージェントが実行している前記タスクの重要度が高くなるように、当該エージェントに関する前記観測情報に対応する前記タスクの重要度を算出する、重要度処理部と、
前記重要度に応じて、当該エージェントが実行すべき前記タスクを選択するタスク選択部と、
当該エージェントが選択された前記タスクを実行するように制御を行うタスク実行部と、
を有する、
制御システム。
【請求項7】
タスクを実行するエージェントを制御する制御方法であって、
前記タスクは、当該タスクを実行するエージェントの数が多いほど当該タスクの目標が達成される可能性が高くなり、前記タスクは、環境に複数存在し、
当該エージェントと、当該エージェントの周辺の他のエージェント及び前記タスクとに関する観測情報に基づいて、応援を要請するか否かに関する要請パラメータと、他のエージェントからの要請に応答するか否かに関する応答パラメータとを算出し、
少なくとも他のエージェントの前記要請パラメータと当該エージェントの前記応答パラメータとに基づいて、当該エージェントに関する前記タスクそれぞれの重要度を算出するための処理を行い、
前記エージェントごとに学習された方策に前記観測情報を入力して、前記方策から出力された、前記観測情報に対応する前記タスクの重要度の目標値に基づいて、当該エージェントに関する前記観測情報に対応する前記タスクの重要度を算出し、
前記応答パラメータが他のエージェントからの要請に応答しないことを示す場合には、当該エージェントが実行している前記タスクの重要度が前記目標値に近づくように、当該エージェントに関する前記観測情報に対応する前記タスクの重要度を算出し、
前記応答パラメータが他のエージェントからの要請に応答することを示し、前記他のエージェントの前記要請パラメータが応援を要請することを示す場合には、前記他のエージェントが実行している前記タスクの重要度と当該タスクの当該エージェントに関する重要度との差分に基づいて、前記他のエージェントが実行している前記タスクの重要度が高くなるように、当該エージェントに関する前記観測情報に対応する前記タスクの重要度を算出し、
前記重要度に応じて、当該エージェントが実行すべき前記タスクを選択し、
当該エージェントが選択された前記タスクを実行するように制御を行う、
コンピュータによって実行される制御方法。
【請求項8】
タスクを実行するエージェントを制御する制御方法を実現するプログラムであって、
前記タスクは、当該タスクを実行するエージェントの数が多いほど当該タスクの目標が達成される可能性が高くなり、前記タスクは、環境に複数存在し、
当該エージェントと、当該エージェントの周辺の他のエージェント及び前記タスクとに関する観測情報に基づいて、応援を要請するか否かに関する要請パラメータと、他のエージェントからの要請に応答するか否かに関する応答パラメータとを算出するステップと、
少なくとも他のエージェントの前記要請パラメータと当該エージェントの前記応答パラメータとに基づいて、当該エージェントに関する前記タスクそれぞれの重要度を算出するための処理を行
い、
前記エージェントごとに学習された方策に前記観測情報を入力して、前記方策から出力された、前記観測情報に対応する前記タスクの重要度の目標値に基づいて、当該エージェントに関する前記観測情報に対応する前記タスクの重要度を算出し、
前記応答パラメータが他のエージェントからの要請に応答しないことを示す場合には、当該エージェントが実行している前記タスクの重要度が前記目標値に近づくように、当該エージェントに関する前記観測情報に対応する前記タスクの重要度を算出し、
前記応答パラメータが他のエージェントからの要請に応答することを示し、前記他のエージェントの前記要請パラメータが応援を要請することを示す場合には、前記他のエージェントが実行している前記タスクの重要度と当該タスクの当該エージェントに関する重要度との差分に基づいて、前記他のエージェントが実行している前記タスクの重要度が高くなるように、当該エージェントに関する前記観測情報に対応する前記タスクの重要度を算出する、ステップと、
前記重要度に応じて、当該エージェントが実行すべき前記タスクを選択するステップと、
当該エージェントが選択された前記タスクを実行するように制御を行うステップと、
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、制御装置、制御システム、制御方法及びプログラムに関する。
【背景技術】
【0002】
複数のエージェント(例えばロボット等)にタスクを実行させる技術がある。この技術に関連し、特許文献1は、汎用構造物を組み立てる能力がある移動エージェントを開示する。特許文献1において、複数の移動エージェントは、汎用構造物の組立のような動作を実行するために、作業面上のブロックのようなコンポーネントを自動的に操作する。また、種々の移動エージェントは、互いに協働して稼働することがある。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
タスクが未知である環境下では、タスクの実行に要するエージェントの数が分からないことがある。このような場合、特許文献1の技術では、複数のエージェントが協働してタスクを実行する場合に、タスクが進行しなくなるおそれがある。したがって、特許文献1の技術では、タスクの目標が効率的に達成されないおそれがある。
【0005】
本開示は、タスクが未知である環境下であっても、タスクの目標が効率的に達成されるようにすることが可能な制御装置、制御システム、制御方法及びプログラムを提供するものである。
【課題を解決するための手段】
【0006】
本開示にかかる制御装置は、タスクを実行するエージェントを制御する制御装置であって、前記タスクは、当該タスクを実行するエージェントの数が多いほど当該タスクの目標が達成される可能性が高くなり、前記タスクは、環境に複数存在し、当該エージェントと、当該エージェントの周辺の他のエージェント及び前記タスクとに関する観測情報に基づいて、応援を要請するか否かに関する要請パラメータと、他のエージェントからの要請に応答するか否かに関する応答パラメータとを算出する要請応答処理部と、少なくとも他のエージェントの前記要請パラメータと当該エージェントの前記応答パラメータとに基づいて、当該エージェントに関する前記タスクそれぞれの重要度を算出するための処理を行う重要度処理部と、前記重要度に応じて、当該エージェントが実行すべき前記タスクを選択するタスク選択部と、当該エージェントが選択された前記タスクを実行するように制御を行うタスク実行部と、を有する。
【0007】
また、本開示にかかる制御システムは、タスクを実行する複数のエージェントを分散して制御する制御システムであって、前記タスクは、当該タスクを実行するエージェントの数が多いほど当該タスクの目標が達成される可能性が高くなり、前記タスクは、環境に複数存在し、当該制御システムは、複数のエージェントそれぞれを制御する複数の制御装置を有し、複数の制御装置それぞれは、当該制御装置に関する当該エージェントと、当該エージェントの周辺の他のエージェント及び前記タスクとに関する観測情報に基づいて、応援を要請するか否かに関する要請パラメータと、他のエージェントからの要請に応答するか否かに関する応答パラメータとを算出する要請応答処理部と、少なくとも他のエージェントの前記要請パラメータと当該エージェントの前記応答パラメータとに基づいて、当該エージェントに関する前記タスクそれぞれの重要度を算出するための処理を行う重要度処理部と、前記重要度に応じて、当該エージェントが実行すべき前記タスクを選択するタスク選択部と、当該エージェントが選択された前記タスクを実行するように制御を行うタスク実行部と、を有する。
【0008】
また、本開示にかかる制御方法は、タスクを実行するエージェントを制御する制御方法であって、前記タスクは、当該タスクを実行するエージェントの数が多いほど当該タスクの目標が達成される可能性が高くなり、前記タスクは、環境に複数存在し、当該エージェントと、当該エージェントの周辺の他のエージェント及び前記タスクとに関する観測情報に基づいて、応援を要請するか否かに関する要請パラメータと、他のエージェントからの要請に応答するか否かに関する応答パラメータとを算出し、少なくとも他のエージェントの前記要請パラメータと当該エージェントの前記応答パラメータとに基づいて、当該エージェントに関する前記タスクそれぞれの重要度を算出するための処理を行い、前記重要度に応じて、当該エージェントが実行すべき前記タスクを選択し、当該エージェントが選択された前記タスクを実行するように制御を行う。
【0009】
また、本開示にかかるプログラムは、タスクを実行するエージェントを制御する制御方法を実現するプログラムであって、前記タスクは、当該タスクを実行するエージェントの数が多いほど当該タスクの目標が達成される可能性が高くなり、前記タスクは、環境に複数存在し、当該エージェントと、当該エージェントの周辺の他のエージェント及び前記タスクとに関する観測情報に基づいて、応援を要請するか否かに関する要請パラメータと、他のエージェントからの要請に応答するか否かに関する応答パラメータとを算出するステップと、少なくとも他のエージェントの前記要請パラメータと当該エージェントの前記応答パラメータとに基づいて、当該エージェントに関する前記タスクそれぞれの重要度を算出するための処理を行うステップと、前記重要度に応じて、当該エージェントが実行すべき前記タスクを選択するステップと、当該エージェントが選択された前記タスクを実行するように制御を行うステップと、をコンピュータに実行させる。
【0010】
本開示においては、タスクが未知である環境下であっても、タスクの目標が効率的に達成されるようにすることが可能となる。
【0011】
また、好ましくは、前記要請応答処理部は、前記エージェントごとに学習された方策に基づいて、前記要請パラメータ及び前記応答パラメータを算出する。
本開示では、このような構成により、エージェントごとに、実行すべきタスクを適切に選択することが可能となる。
【0012】
また、好ましくは、前記要請応答処理部は、前記観測情報を前記方策に入力して前記方策から出力された要請度合い及び応答度合いに基づいて、それぞれ前記要請パラメータ及び前記応答パラメータを算出する。
本開示では、このような構成により、エージェントごとに、実行すべきタスクを適切に選択することが可能となる。
【0013】
また、好ましくは、前記要請応答処理部は、前記要請度合いが予め定められた閾値を上回り、且つ、当該エージェントが実行している又は実行しようとしている前記タスクが進行していない場合に、応援を要請することを示す前記要請パラメータを算出する。
本開示では、このような構成により、当該エージェントが実行している又は実行しようとしているタスクについて応援を要請すべき場合に、適切に、応援を要請することを示す要請パラメータを算出することができる。
【0014】
また、好ましくは、前記要請応答処理部は、前記応答度合いが予め定められた閾値を上回り、且つ、当該エージェントが実行している又は実行しようとしている前記タスクが進行していない場合に、要請に応答することを示す前記応答パラメータを算出する。
本開示では、このような構成により、当該エージェントが実行している又は実行しようとしているタスクが進行している場合に、引き続き、そのタスクを実行することができる。
【0015】
また、好ましくは、前記重要度処理部は、前記エージェントごとに学習された方策に基づいて、当該エージェントに関する前記タスクそれぞれの重要度を算出する。
本開示では、このような構成により、エージェントごとに、各タスクの重要度を適切に算出することが可能となる。
【0016】
また、好ましくは、前記重要度処理部は、前記観測情報を前記方策に入力して前記方策から出力された前記観測情報に対応する前記タスクの重要度の目標値に基づいて、当該エージェントに関する前記観測情報に対応する前記タスクの重要度を算出する。
本開示では、このような構成により、エージェントごとに、観測情報に対応するタスクの重要度を、目標値に近づけるように算出することができる。これにより、適切に、タスクの重要度を算出することが可能となる。
【発明の効果】
【0017】
本開示によれば、タスクが未知である環境下であっても、タスクの目標が効率的に達成されるようにすることが可能な制御装置、制御システム、制御方法及びプログラムを提供できる。
【図面の簡単な説明】
【0018】
【
図1】実施の形態1にかかる制御システムを示す図である。
【
図2】実施の形態1にかかる制御装置の構成を示す図である。
【
図3】実施の形態1にかかるエージェント及びタスクが存在する環境を例示する図である。
【
図4】実施の形態1にかかる制御装置によって実行される制御方法を示すフローチャートである。
【
図5】実施の形態2にかかる制御装置によって実行される制御方法を示すフローチャートである。
【
図6】実施の形態3にかかる制御装置によって実行される制御方法を示すフローチャートである。
【発明を実施するための形態】
【0019】
(実施の形態1)
以下、図面を参照して本実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【0020】
図1は、実施の形態1にかかる制御システム1を示す図である。制御システム1は、複数のエージェント10それぞれを制御する制御装置100と、複数のタスク50それぞれを監視する監視装置60とを有する。エージェント10は、例えば、ロボット等の機械であるが、これに限定されない。各エージェント10は、環境に配置されており、制御装置100による制御によって、環境内で自律して動作を行う。
【0021】
制御装置100は、例えばコンピュータである。制御装置100は、ロボット等の機械であるエージェント10に内蔵されていてもよい。制御装置100は、対応するエージェント10にタスク50を実行させるための制御を行う。つまり、制御システム1は、複数のエージェント10を分散して制御する。各制御装置100は、他の制御装置100と、有線又は無線のネットワークを介して、通信可能に接続されている。また、各制御装置100は、監視装置60と、有線又は無線のネットワークを介して、通信可能に接続されている。制御装置100について、詳しくは後述する。
【0022】
エージェント10が存在する環境には、複数のタスク50が存在する。エージェント10は、複数のタスク50それぞれを実行する。各タスク50には、目標(ゴール;終了条件)が設定されている。各エージェント10が各タスク50を実行することによってタスク50が進行し、各タスク50の目標が達成されることで、各タスク50が実現(終了)する。
【0023】
ここで、タスク50は、このタスク50を実行するエージェント10の数が多いほど、実現可能性(タスク50の目標が達成される可能性)が高くなる。つまり、ある1つのタスク50を1つのエージェント10が実行しようとしてもそのタスク50が進行しない場合、複数のエージェント10がそのタスク50を実行することによって、そのタスク50が進行し、そのタスク50が実現する可能性(タスク50の目標が達成される可能性)が高くなる。つまり、複数のエージェント10が協調してタスク50を実行することによって、タスク50が実現する可能性が高くなる。言い換えると、複数のエージェント10が協調してタスク50を実行することによって、タスク50の目標が達成される可能性が高くなる。ただし、タスク50の進行に必要なエージェント10の数は、事前には分かっていない。タスク50進行に必要なエージェント10の数は、エージェント10がタスク50を実行することによって判明する。制御装置100は、タスク50の目標が達成されるようにタスク50を実行するように、エージェント10を制御する。詳しくは後述する。
【0024】
監視装置60は、例えば、センサ又はカメラ等である。監視装置60は、各タスク50の状態を監視(検出)する。具体的には、監視装置60は、例えば、タスク50の位置及び速度を検出する。また、監視装置60は、タスクが終了したかどうかの情報を格納する。また、監視装置60は、タスク50の目標に関する情報を格納していてもよい。監視装置60は、タスク50の目標が達成されたか否かを監視してもよい。なお、監視装置60は、タスク50ごとに設けられてもよい。あるいは、1つの監視装置60が、複数のタスク50を監視してもよい。なお、各エージェント10がタスク50の状態を検出してもよい。この場合、監視装置60はなくてもよい。また、エージェント10がタスク50の状態を検出し、かつ終了判定をしてもよい。
【0025】
ここで、実施の形態1では、タスク50は、搬送すべき荷物である。そして、各タスク50には、荷物の搬送先であるゴール(目標)が設定されている。エージェント10は、荷物(タスク50)がゴールに到達するように、荷物(タスク50)を搬送する。そして、荷物(タスク50)を搬送するエージェント10の数が多いほど、その荷物(タスク50)がゴールに到達する可能性が高くなる。つまり、荷物によっては、少数のエージェント10では搬送することができない程度に大きなものであり得る。すなわち、荷物によって、大きさ及び重さが異なり得る。一方、多くのエージェント10が1つの荷物を協調して搬送することで、その荷物を移動させることができる。つまり、多くのエージェント10が協調することによって、その荷物を搬送する(タスク50を進行させる)ことができ、その目標位置にその荷物を搬送する(タスク50の目標を達成する)ことができる。なお、その荷物を搬送するのに必要なエージェント10の数は、分かっていない。エージェント10が荷物の搬送を実行しようとしてみて初めて、搬送に必要なエージェント10の数が判明する。
【0026】
図2は、実施の形態1にかかる制御装置100の構成を示す図である。
図2に示すように、制御装置100は、主要なハードウェア構成として、制御部102と、記憶部104と、通信部106と、インタフェース部108(IF;Interface)とを有する。制御部102、記憶部104、通信部106及びインタフェース部108は、データバスなどを介して相互に接続されている。なお、機械であるエージェント10も、
図2に示した制御装置100のハードウェア構成を有し得る。また、監視装置60も、
図2に示した制御装置100のハードウェア構成を有し得る。
【0027】
制御部102は、例えばCPU(Central Processing Unit)等のプロセッサである。制御部102は、制御処理及び演算処理等を行う演算装置としての機能を有する。なお、制御部102は、複数のプロセッサを有してもよい。記憶部104は、例えばメモリ又はハードディスク等の記憶デバイスである。記憶部104は、例えばROM(Read Only Memory)又はRAM(Random Access Memory)等である。記憶部104は、制御部102によって実行される制御プログラム及び演算プログラム等を記憶するための機能を有する。つまり、記憶部104(メモリ)は、1つ以上の命令を格納する。また、記憶部104は、処理データ等を一時的に記憶するための機能を有する。記憶部104は、データベースを含み得る。また、記憶部104は、複数のメモリを有してもよい。
【0028】
通信部106は、他の制御装置100又は監視装置60等の他の装置とネットワークを介して通信を行うために必要な処理を行う。通信部106は、通信ポート、ルータ、ファイアウォール等を含み得る。インタフェース部108は、例えばユーザインタフェース(UI)である。インタフェース部108は、キーボード、タッチパネル又はマウス等の入力装置と、ディスプレイ又はスピーカ等の出力装置とを有する。インタフェース部108は、例えばタッチスクリーン(タッチパネル)のように、入力装置と出力装置とが一体となるように構成されていてもよい。インタフェース部108は、ユーザ(オペレータ)によるデータの入力の操作を受け付け、ユーザに対して情報を出力する。
【0029】
実施の形態1にかかる制御装置100は、構成要素として、観測情報取得部110と、方策格納部112と、行動出力部120と、要請応答処理部130と、重要度処理部140と、タスク選択部150と、タスク実行部160とを有する。上述した各構成要素は、例えば、制御部102の制御によって、プログラムを実行させることによって実現できる。より具体的には、各構成要素は、記憶部104に格納されたプログラム(命令)を、制御部102が実行することによって実現され得る。また、必要なプログラムを任意の不揮発性記録媒体に記録しておき、必要に応じてインストールすることで、各構成要素を実現するようにしてもよい。また、各構成要素は、プログラムによるソフトウェアで実現することに限ることなく、ハードウェア、ファームウェア、及びソフトウェアのうちのいずれかの組み合わせ等により実現してもよい。また、各構成要素は、例えばFPGA(field-programmable gate array)又はマイコン等の、ユーザがプログラミング可能な集積回路を用いて実現してもよい。この場合、この集積回路を用いて、上記の各構成要素から構成されるプログラムを実現してもよい。これらのことは、後述する他の実施の形態においても同様である。
【0030】
なお、以降の説明において、説明の対象となる制御装置100を、「自身の制御装置100(当該制御装置)」と称する。また、自身の制御装置100以外の制御装置100を、「他の制御装置100」と称する。また、自身の制御装置100によって制御されるエージェント10を、「自身のエージェント(当該エージェント)」と称する。また、自身のエージェント10以外のエージェント10を、「他のエージェント」と称する。また、以下の説明では、自身の制御装置100の動作について説明するが、他の制御装置100についても、同様の動作を行う。
【0031】
制御装置100は、上述した構成要素により、タスク50の目標が達成されるようにタスク50を実行するように、自身のエージェント10を制御する。つまり、制御装置100は、自身のエージェント10がタスク50を実行するための制御を行う。制御装置100は、自身のエージェント10と、自身のエージェント10の周辺の他のエージェント10及びタスク50とに関する観測情報に基づいて、自身のエージェント10の要請パラメータ及び応答パラメータを算出する。ここで、「要請パラメータ」は、他のエージェント10に応援を要請するか否かに関するパラメータである。また、「応援を要請する」とは、他のエージェント10が、自身のエージェント10と協調してタスク50を実行するようにすることに対応する。また、「応答パラメータ」は、他のエージェント10からの要請に応答するか否かに関する0038パラメータである。また、「要請に応答する」とは、自身のエージェント10が、他のエージェント10と協調してタスク50を実行するようにすることに対応する。
【0032】
また、制御装置100は、他のエージェント10の要請パラメータと、自身のエージェント10の応答パラメータとに基づいて、自身のエージェント10に関するタスク50それぞれの重要度を算出するための処理を行う。ここで、「重要度」は、エージェント10がどのタスク50を選択して実行するかを決定するために使用される。重要度が高いタスク50ほど、エージェント10に選択され、選択されたエージェント10に実行される可能性が高くなる。
【0033】
また、制御装置100は、重要度に応じて、自身のエージェント10が実行すべきタスク50を選択する。制御装置100は、自身のエージェント10が選択されたタスク50を実行するように制御を行う。そして、制御装置100は、制御周期ごとに、上記の処理を繰り返す。応援を要請することを示す要請パラメータを算出したエージェント10が実行しているタスク50の重要度が、要請に応答することを示す応答パラメータを算出した他のエージェント10において大きくなる可能性が高くなる。したがって、そのエージェント10がそのタスク50に応援に来る可能性が高くなる。以下、詳細に説明する。
【0034】
観測情報取得部110は、周辺の環境から観測情報を取得する。観測情報は、自身のエージェント10と、自身のエージェント10の周辺の他のエージェント10及びタスク50とに関する情報である。したがって、観測情報は、自身のエージェント10に関する情報を含む。また、観測情報は、自身のエージェント10の周辺の、他のエージェント10に関する情報及びタスク50に関する情報を含む。
【0035】
図3は、実施の形態1にかかるエージェント10及びタスク50が存在する環境を例示する図である。なお、エージェント10の数をMとし、タスク50の数をNとする。また、自身のエージェント10を、「エージェント#i」とする。iは、自身のエージェント10を示すインデックスである。また、他のエージェント10を「エージェント#j」とする。jは、他のエージェント10を示すインデックスである。
【0036】
また、エージェント#iの近傍の他のエージェント10を、「近傍エージェント」と称する。近傍エージェントは、例えば、エージェント#iからの距離が所定範囲内(
図3の破線の円で示す)の所定数の他のエージェント10であってもよい。あるいは、近傍エージェントは、エージェント#iに最も近い所定数の他のエージェント10であってもよい。実施の形態1では、「所定数」を2とする。これらの2つの近傍エージェントを、それぞれ、エージェント#j
1、エージェント#j
2とする。また、
図3には、近傍エージェント以外のエージェント10であるエージェント#1及びエージェント#Mが示されている。なお、実際には、エージェント10の総数Mから自身のエージェント10及び2つの近傍エージェントを除いた、(M-3)個の、近傍エージェント以外のエージェント10が存在する。
【0037】
また、タスク50のインデックスを「l」(l∈{1,・・・,N})とする。エージェント#iの近傍のタスク50を、「近傍タスク」と称する。近傍タスクは、例えば、エージェント#iからの距離が所定範囲内(
図3の破線の円で示す)の所定数のタスク50であってもよい。なお、この「所定範囲」は、上記の近傍エージェントを定義するものとは異なる範囲であってもよい。あるいは、近傍タスクは、エージェント#iに最も近い所定数のタスク50であってもよい。実施の形態1では、「所定数」を2とする。これらの2つの近傍タスクを、それぞれ、タスク#l
1、タスク#l
2とする。また、
図3には、近傍タスク以外のタスク50であるタスク#1、タスク#2及びタスク#Nが示されている。なお、実際には、タスク50の総数Nから近傍タスクを除いた、(N-2)個の、近傍タスク以外のタスク50が存在する。
【0038】
また、xは、エージェント10の位置(現在位置)を示す。xiは、エージェント#iの位置を示す。xjは、エージェント#jの位置を示す。また、zは、タスク50の位置(現在位置)を示す。また、z*は、タスク50の目標位置(ゴール)を示す。zlは、タスク#lの位置を示す。zl
*は、タスク#lの目標位置を示す。なお、タスク50の「位置」とは、実空間上のどの場所にタスク50があるかを示すものに限られず、タスク50の状態を示すものであってもよい。この場合、タスク50の「位置」は、タスク50の状態を表す仮想空間上の点を示してもよい。例えば、タスク50の状態は、タスク50の捗り具合を示してもよく、タスク50の「位置」は、タスク50の捗り具合を表す仮想空間上の点を示してもよい。
【0039】
また、φは、各エージェント10に関する各タスク50の重要度を示す。φiは、エージェント#iにとっての各タスク50の重要度を示す。φjは、エージェント#jにとっての各タスク50の重要度を示す。なお、φは、タスク50の数Nに相当する数の成分を有し、タスク#1,・・・,#l,・・・,#Nそれぞれの重要度を示す。例えば、重要度φi
lは、エージェント#iにとってのタスク#lの重要度を示す。各エージェント10に関する重要度は、各エージェント10の制御装置100で算出され、周辺のエージェント10(制御装置100)に対して送信(ブロードキャスト)される。詳しくは後述する。
【0040】
観測情報取得部110は、周辺のエージェント10及びタスク50の位置を取得する。具体的には、観測情報取得部110は、周辺のエージェント10に関する他の制御装置100から、そのエージェント10に関する情報を取得する。エージェント10に関する情報は、例えば、そのエージェント10の位置、及びそのエージェント10に関する各タスク50の重要度(そのエージェント10にとっての各タスク50の重要度)を示す。また、観測情報取得部110は、監視装置60から、各タスク50に関する情報を取得する。タスク50に関する情報は、例えば、そのタスク50の状態と、そのタスク50の目標とを示す。タスク50の状態は、例えば、タスク50の位置及び速度を含み得る。
【0041】
観測情報取得部110は、取得されたエージェント#jの位置から、エージェント#iとエージェント#jとの間の距離D
ijを算出する。ここで、D
ij=||x
i-x
j||
2である。また、観測情報取得部110は、取得されたタスク50の位置から、自身のエージェント10(エージェント#i)と各タスク#lとの間の距離を算出する。具体的には、観測情報取得部110は、以下の式(1)を用いて、エージェント#iとタスク#lとの間の距離D
ilを算出する。
【数1】
・・・(1)
【0042】
式(1)において、「0.05」は、タスク#lが目標位置に到達したか否か(つまりタスク#lが目標を達成したか否か)を判定するための閾値である。zlとzl
*との距離が0.05以下であれば、タスク#lは目標位置に到達したとみなされる。また、「1.0e4」は、エージェント#iの近傍とみなされないほど大きな値である。つまり、式(1)から、目標位置に到達したタスク50については、Dilは、実際の距離よりも非常に大きな距離に算出される。したがって、目標位置に到達したタスク50については、以降の処理において無視され得る。
【0043】
観測情報取得部110は、DijとDilとを用いて、自身のエージェント10(エージェント#i)の観測情報oiを取得する。観測情報取得部110は、Dijを用いて、所定数の近傍エージェントを判定し、近傍エージェントに関する情報を、観測情報oiの一部とする。また、観測情報取得部110は、Dilを用いて、所定数の近傍タスクを判定し、近傍タスクに関する情報を、観測情報oiの一部とする。
【0044】
ここで、実施の形態1における近傍タスクについて説明する。エージェント#iに関する近傍タスクの条件は、以下の式(2)で示される。なお、式(2)で示されるように、エージェント#iに関する近傍タスクの数は2個である。
【数2】
・・・(2)
【0045】
ここで、l
i
1は、エージェント#iに関する近傍タスク#l
1であり、以下の式(3)で定義される。つまり、近傍タスク#l
i
1(近傍タスク#l
1)は、エージェント#iに最も近いタスク50である。なお、この近傍タスク#l
1は、エージェント#iが現時点で実行中であるタスク50であり得る。
【数3】
・・・(3)
【0046】
また、l
i
2は、エージェント#iに関する近傍タスク#l
2であり、以下の式(4)で定義される。つまり、近傍タスク#l
i
2(近傍タスク#l
2)は、エージェント#iに2番目に近いタスク50である。
【数4】
・・・(4)
【0047】
観測情報取得部110は、以下の式(5)に示すような観測情報o
iを取得する。なお、式(5)において、右肩のTは転置を示す。また、式(5)は、ある時点(例えば時刻t)における観測情報を示す。
【数5】
・・・(5)
【0048】
ここで、式(5)において、以下の式(6)は、自身のエージェント10(エージェント#i)についての情報である。なお、式(6)は、左から順に、エージェント#iの位置、エージェント#iに関する近傍タスク#l
1の重要度、エージェント#iに関する近傍タスク#l
2の重要度を示す。
【数6】
・・・(6)
【0049】
また、式(5)において、以下の式(7)は、近傍エージェント#j
1についての情報である。なお、近傍エージェント#j
1は、近傍タスク#l
1と同様に、自身のエージェント10(エージェント#i)に最も近い他のエージェント10であってもよい。なお、式(7)は、左から順に、近傍エージェント#j
1の位置、近傍エージェント#j
1に関する近傍タスク#l
1の重要度、近傍エージェント#j
1に関する近傍タスク#l
2の重要度を示す。
【数7】
・・・(7)
【0050】
また、式(5)において、以下の式(8)は、近傍エージェント#j
2についての情報である。なお、近傍エージェント#j
2は、近傍タスク#l
2と同様に、自身のエージェント10(エージェント#i)に2番目に近い他のエージェント10であってもよい。なお、式(8)は、左から順に、近傍エージェント#j
2の位置、近傍エージェント#j
2に関する近傍タスク#l
1の重要度、近傍エージェント#j
2に関する近傍タスク#l
2の重要度を示す。
【数8】
・・・(8)
【0051】
また、式(5)において、右から2番目のo_(l
1)^taskは、近傍タスク#l
1に関する情報である。o_(l
1)^taskは、近傍タスク#l
1の状態及び目標を示してもよい。上述したように、実施の形態1においては、タスク50は、搬送すべき荷物である。この場合、o_(l
1)^taskは、以下の式(9)のように定義され得る。なお、式(9)の右辺は、左から順に、近傍タスク#l
1の位置、近傍タスク#l
1の速度、及び近傍タスク#l
1の目標位置(ゴールつまり搬送先)を示す。近傍タスク#l
1の位置及び速度が、近傍タスクの状態に対応する。なお、近傍タスクの速度は、近傍タスクの制御周期ごとの位置の差分から算出され得る。後述する他の物体の速度についても同様である。
【数9】
・・・(9)
【0052】
同様に、式(5)において、右から1番目のo_(l
2)^taskは、近傍タスク#l
2に関する情報である。o_(l
2)^taskは、近傍タスク#l
2の状態及び目標を示してもよい。また、実施の形態1において、o_(l
2)^taskは、以下の式(10)のように定義され得る。なお、式(10)の右辺は、左から順に、近傍タスク#l
2の位置、近傍タスク#l
2の速度、及び近傍タスク#l
2の目標位置(ゴールつまり搬送先)を示す。近傍タスク#l
2の位置及び速度が、近傍タスクの状態に対応する。
【数10】
・・・(10)
【0053】
式(5)、式(9)及び式(10)から、タスクが搬送すべき荷物である実施の形態1において、観測情報o
iは、以下の式(11)のように表される。
【数11】
・・・(11)
【0054】
方策格納部112は、強化学習によって学習済みの方策π(学習済みモデル)を格納する。方策πは、エージェント10ごとに学習されている。したがって、学習済みの方策π(方策πを構成するネットワーク(ニューラルネットワーク等)のパラメータ)は、エージェント10ごとに異なり得る。
【0055】
エージェント#iの方策π
NN,iは、上述した観測情報o
iを入力とし、以下の式(12)で示す行動a
iを出力とする。したがって、行動a
iは、方策π
NN,iの出力値である。
【数12】
・・・(12)
【0056】
ここで、ci
lは、エージェント#iに関する、近傍タスク#lの重要度φi
lの目標値であり、エージェント#iが、近傍タスク#lをどれだけ重視するかを示す指標(意思)に対応する。なお、重要度φi
lは、目標値ci
lまでの値をとり得る。言い換えると、重要度φi
lは、目標値ci
lまで大きくなり得る。式(12)の第1右辺(左から2番目の式)の第1成分であるci^(l1)は、エージェント#iに関する、近傍タスク#l1の重要度の目標値である。同様に、式(12)の第1右辺の第2成分であるci^(l2)は、エージェント#iに関する、近傍タスク#l2の重要度の目標値である。
【0057】
また、式(12)の第1右辺の第3成分であるa
i
dは、エージェント#iの要請度合いを示す。また、式(12)の第1右辺の第4成分であるa
i
σは、エージェント#iの応答度合いを示す。ここで、以下の式(13)に示すように、a
i
d及びa
i
σが取り得る値の範囲は、0以上1以下である。
【数13】
・・・(13)
【0058】
要請度合いai
dは、エージェント#iが応援を要請する度合いを示す。つまり、ai
dの値が高いほど、他のエージェント10が、自身のエージェント10と協調してタスク50を実行する可能性が高くなる。言い換えると、ai
dの値が高いほど、他のエージェント10に応援を要請することを示す要請パラメータが算出される可能性が、高くなる。
【0059】
応答度合いai
σは、エージェント#iが要請に応答する度合いを示す。つまり、ai
σの値が高いほど、自身のエージェント10が、他のエージェント10と協調してタスク50を実行する可能性が高くなる。言い換えると、ai
σの値が高いほど、他のエージェント10からの要請に応答することを示す応答パラメータが算出される可能性が、高くなる。
【0060】
また、方策π
NN,iは、以下の式(14)で示す報酬r
i(t)を最大化するように学習されている。つまり、学習段階で、方策π
NN,iは、観測情報o
iを入力とし、行動a
iを出力する。そして、行動a
iが出力された場合に報酬r
i(t)が計算される。そして、その報酬(累積報酬)が大きくなるように、方策π
NN,i内のネットワークのパラメータ(重み)が随時更新されていく。なお、式(14)の右辺にインデックスiがないことから分かるように、報酬はエージェントによらず共通である。そして、得られた共通の報酬から、エージェントごとに異なるQ値のネットワークと、方策のネットワークとを更新していく。これにより、方策π
NN,iが学習される。
【数14】
・・・(14)
【0061】
tは時刻を示す。また、Pl(t)は、時刻tにおけるタスク#lの達成度を示す。したがって、式(14)の右辺第1項は、時刻tにおける各タスク#l(#1,・・・,#N)の達成度Pl(t)の総和(Summation)である。なお、タスク50の達成度とは、タスク50の目標に対する達成度合いを示してもよい。あるいは、タスク50の達成度は、タスク50の目標が達成されたか否かを示してもよい。
【0062】
また、Ql(t)は、時刻tにおけるタスク#lの進行度を示す。したがって、式(14)の右辺第2項は、時刻tにおける各タスク#l(#1,・・・,#N)の進行度Ql(t)の総和である。λは所定の係数である。なお、タスク50の進行度とは、タスク50がどれだけ進行しているかを示す。つまり、タスク50の進行度とは、タスク50の捗り具合を示す。したがって、タスク50が進行していれば進行度は高くなり得、タスク50が滞っていれば進行度は低くなり得る。
【0063】
ここで、上述したように、実施の形態1では、タスク50は、搬送すべき荷物である。そして、実施の形態1では、タスク50の目標が達成されるとは、タスク50が目標位置に到達することである。したがって、実施の形態1では、P
l(t)を、以下の式(15)のように定義する。式(15)は、時刻tにおいて荷物であるタスク#lが目標位置に到達していれば、P
l(t)=1であり、そうでなければ、P
l(t)=0であることを示している。
【数15】
・・・(15)
【0064】
また、実施の形態1では、荷物が速く移動していれば、その荷物の搬送は捗っており、荷物があまり速く移動していなければ、その荷物の搬送は滞っていると言える。つまり、実施の形態1では、荷物であるタスク50が速く移動しているほど、そのタスク50の進行度は高くなり得る。したがって、実施の形態1では、Q
l(t)を、以下の式(16)のように定義する。式(16)に示すように、実施の形態1では、タスク#lの進行度Q
l(t)は、荷物であるタスク#lの移動速度に対応する。つまり、実施の形態1では、荷物であるタスク#lが速く移動しているほど、進行度Q
l(t)は高くなり得る。
【数16】
・・・(16)
【0065】
式(16)より、実施の形態1では、上記の式(14)で示した報酬r
i(t)は、以下の式(17)のように表される。
【数17】
・・・(17)
【0066】
行動出力部120は、上述した方策πを用いて、観測情報oiに対応する行動aiを出力する。具体的には、行動出力部120は、観測情報oiを方策πNN,iに入力する。これにより、方策πNN,iは、行動aiを出力する。
【0067】
要請応答処理部130は、自身のエージェント10に関する要請パラメータ及び応答パラメータを算出する。要請応答処理部130は、行動出力部120によって方策πNN,iから出力された行動aiに基づいて、エージェント#iに関する要請パラメータ及び応答パラメータを算出する。ここで、行動aiは、観測情報oiに応じて出力されたものであるので、要請応答処理部130は、観測情報に基づいて要請パラメータと応答パラメータとを算出していると言える。
【0068】
要請応答処理部130は、行動出力部120によって方策πNN,iから出力された要請度合いai
dに基づいて、エージェント#iに関する要請パラメータdiを算出する。具体的には、要請応答処理部130は、要請度合いai
dが予め定められた閾値を上回る場合に、応援を要請することを示す要請パラメータdiを算出してもよい。一方、要請応答処理部130は、要請度合いai
dが閾値以下である場合に、応援を要請しないことを示す要請パラメータdiを算出してもよい。あるいは、要請応答処理部130は、要請度合いai
dが閾値を上回り、且つ、自身のエージェント10が実行している又は実行しようとしているタスク50が進行していない場合に、応援を要請することを示す要請パラメータdiを算出してもよい。一方、要請応答処理部130は、上記の条件が満たされない場合に、応援を要請しないことを示す要請パラメータdiを算出してもよい。要請応答処理部130は、算出された要請パラメータdiを、他のエージェント10に関する制御装置100に送信する。
【0069】
例えば、要請応答処理部130は、以下の式(18)を用いて、エージェント#iの要請パラメータd
iを算出する。ここで、d
i=1は、エージェント#iが応援を要請することを示す。d
i=0は、エージェント#iが応援を要請しないことを示す。したがって、要請パラメータd
iは、応援の要請というイベントのトリガとして機能し得る。
【数18】
・・・(18)
【0070】
式(18)において、「0.5」は、予め定められた閾値である。閾値は、0.5に限られない。また、li
*は、エージェント#iについて現在選択されているタスク50を示す。言い換えると、li
*は、前回の制御周期において後述するタスク選択部150によって選択されたタスク50を示す。さらに言い換えると、li
*は、自身のエージェント10(エージェント#i)が実行している又は実行しようとしているタスク50を示す。また、Q_(li
*)(t)は、タスク#li
*の進行度である。そして、Q_(li
*)(t)=0とは、タスク#li
*が進行していないことを示す。
【0071】
したがって、式(18)は、要請度合いai
dが閾値「0.5」を上回り、且つ、エージェント#iについて現在選択されているタスク#li
*の進行度が0である(つまりタスク#li
*が進行していない)場合に、要請パラメータがdi=1であることを示す。言い換えると、式(18)は、要請度合いai
dが閾値「0.5」を上回り、且つ、エージェント#iについて現在選択されているタスク#li
*が進行していない場合に、応援を要請することを示す要請パラメータdiが算出されることを示す。また、式(18)は、上記の条件が満たされない場合に、di=0であることを示す。つまり、式(18)は、上記の条件が満たされない場合に、応援を要請しないことを示す要請パラメータdiが算出されることを示す。なお、本実施の形態では、応援を要請することを示す要請パラメータが算出されたからといって、実際に、エージェント#iについて現在選択されているタスク#li
*に対して他のエージェント#jが応援に来るとは限らない。タスク#li
*に対して他のエージェント#jが実際に応援に来るかどうかは、そのタスク#li
*の重要度に応じて決定され得る。すなわち、タスク#li
*に対して他のエージェント#jが実際に応援に来るかどうかは、エージェント#jが持つタスク#li
*の重要度によって決まる。言い換えると、タスク#li
*に対して他のエージェント#jが実際に応援に来るかどうかは、エージェント#jにとってのタスク#li
*の重要度によって決まる。
【0072】
なお、自身のエージェント#iについて選択されているタスク#li
*が進行している場合、自身のエージェント#iと他のエージェント#jとが協調しなくても、タスク#li
*が進行している。このような場合に、応援を要請してタスク#li
*を他のエージェント#jと協調して実行することは、無駄となり得る。したがって、上記の式(18)では、要請度合いai
dが高くても、エージェント#iについて現在選択されているタスク#li
*の進行度が0でない場合は、di=0となる。これにより、無駄な要請を行うことを抑制することができる。
【0073】
また、要請応答処理部130は、行動出力部120によって方策πNN,iから出力された応答度合いai
σに基づいて、エージェント#iに関する応答パラメータσiを算出する。要請応答処理部130は、応答度合いai
σが予め定められた閾値を上回る場合に、要請に応答することを示す応答パラメータσiを算出してもよい。一方、要請応答処理部130は、応答度合いai
σが閾値以下である場合に、要請に応答しないことを示す応答パラメータσiを算出してもよい。あるいは、要請応答処理部130は、応答度合いai
σが閾値を上回り、且つ、自身のエージェント10が実行している又は実行しようとしているタスク50が進行していない場合に、要請に応答することを示す応答パラメータσiを算出してもよい。一方、要請応答処理部130は、上記の条件が満たされない場合に、要請に応答しないことを示す応答パラメータσiを算出してもよい。
【0074】
例えば、要請応答処理部130は、以下の式(19)を用いて、エージェント#iの応答パラメータσ
iを算出する。ここで、σ
i=1は、エージェント#iが要請に応答することを示す。σ
i=0は、エージェント#iが要請に応答しないことを示す。したがって、応答パラメータσ
iは、要請に対する応答というイベントのトリガとして機能し得る。
【数19】
・・・(19)
【0075】
式(19)において、「0.5」は、予め定められた閾値である。閾値は、0.5に限られない。また、この閾値は、式(18)の閾値と同じ値でなくてもよい。また、上述したように、li
*は、エージェント#iについて現在選択されているタスク50を示す。また、Q_(li
*)(t)は、タスク#li
*の進行度である。そして、Q_(li
*)(t)=0とは、タスク#li
*が進行していないことを示す。
【0076】
したがって、式(19)は、応答度合いai
σが閾値「0.5」を上回り、且つ、エージェント#iについて現在選択されているタスク#li
*の進行度が0である(つまりタスク#li
*が進行していない)場合に、応答パラメータがσi=1であることを示す。言い換えると、式(19)は、応答度合いai
σが閾値「0.5」を上回り、且つ、エージェント#iについて現在選択されているタスク#li
*が進行していない場合に、要請に応答することを示す応答パラメータσiが算出されることを示す。また、式(19)は、上記の条件が満たされない場合に、σi=0であることを示す。つまり、式(19)は、上記の条件が満たされない場合に、要請に応答しないことを示す応答パラメータσiが算出されることを示す。なお、本実施の形態では、要請に応答することを示す応答パラメータが算出されたからといって、実際に、エージェント#iが他のエージェント#jのタスク#lに対して応援に行くとは限らない。エージェント#iが他のエージェント#jのタスク#lに対して実際に応援に行くかどうかは、そのタスク#lの重要度に応じて決定され得る。すなわち、エージェント#iが他のエージェント#jのタスク#lに対して実際に応援に行くかどうかは、エージェント#jが持つタスク#lの重要度によって決まる。言い換えると、エージェント#iが他のエージェント#jのタスク#lに対して実際に応援に行くかどうかは、エージェント#jにとってのタスク#lの重要度によって決まる。
【0077】
なお、自身のエージェント#iについて選択されているタスク#li
*が進行している場合に要請に応答して他のエージェント#jのタスク#lに実際に応援に行くと、エージェント#iは、タスク#li
*の実行を停止することになる。しかしながら、エージェント#iが進行しているタスクの実行を停止することは、無駄となり得る。つまり、エージェント#iについて現在選択されている(つまりエージェント#iが実行している)タスク#li
*が進行している場合は、引き続き、そのタスク#li
*を実行することが好ましい。したがって、上記の式(19)では、応答度合いai
σが高くても、エージェント#iについて現在選択されているタスク#li
*の進行度が0でない場合は、σi=0となる。これにより、無駄な応答を行うことを抑制することができる。
【0078】
ここで、上述したように、実施の形態1では、タスク#lは、搬送すべき荷物である。そして、実施の形態1では、上記の式(16)で示すように、タスク#lの進行度は、荷物であるタスク#lの移動速度に対応する。したがって、実施の形態1では、タスク#l
i
*の進行度は、以下の式(20)のように表される。
【数20】
・・・(20)
【0079】
したがって、実施の形態1では、上記の式(18)で示した要請パラメータd
iは、以下の式(21)のように表される。
【数21】
・・・(21)
【0080】
また、実施の形態1では、上記の式(19)で示した応答パラメータσ
iは、以下の式(22)のように表される。
【数22】
・・・(22)
【0081】
重要度処理部140は、自身のエージェント#iに関する周辺の各タスク#l(l∈1,・・・,N)の重要度を更新(算出)する。具体的には、重要度処理部140は、他のエージェント#jの要請パラメータと、自身のエージェント#i(当該エージェント)の応答パラメータとに基づいて、自身のエージェント#iに関するタスクそれぞれの重要度を算出するための処理を行う。
【0082】
具体的には、重要度処理部140は、周辺のエージェント#jの制御装置100から、エージェント#jに関する要請パラメータdjを取得する。また、重要度処理部140は、周辺の各エージェント#jの制御装置100から、各エージェント#jに関する各タスク#lの重要度φj
lを取得する。なお、上述したように、観測情報取得部110は、近傍エージェント#j1,#j2に関する近傍タスク#l1,#l2についての重要度を取得した。一方、重要度処理部140は、近傍エージェントだけでなく、周辺の全ての(取得可能な)エージェント#jの制御装置100から、各エージェント#jに関する各タスク#lの重要度φj
lを取得する。なお、重要度処理部140は、通信が不可能である等の理由により周辺のエージェント#jの制御装置100から要請パラメータdj及び重要度φj
lを取得できなかった場合、このエージェント#jについては、dj=0,φj
l=0としてもよい。
【0083】
また、重要度処理部140は、タスク#lについて、重要度φi
lと、重要度φj
lと、他のエージェント#jに関する要請パラメータdjと、自身のエージェント#iに関する応答パラメータσiとを用いて、重要度φi
lを更新する。また、重要度処理部140は、タスク#lが近傍タスクである場合は、さらに、自身のエージェント#iに関する近傍タスク#lの重要度φi
lの目標値ci
lを用いて、タスク#lについての重要度φi
lを更新する。なお、重要度φi
lは、自身のエージェント#iに関するタスク#lの重要度である。
【0084】
具体的には、重要度処理部140は、以下の式(23)を用いて、エージェント#iに関するタスク#lの重要度φ
i
lの変化量(変化分)を算出する。なお、式(23)において、kは、予め定められた係数である。また、表記の便宜上、式(23)の左辺を、「φ
i
l(ドット)」と表すことがある。
【数23】
・・・(23)
【0085】
重要度処理部140は、現在の重要度φ
i
lに式(23)で示す重要度φ
i
lの変化量φ
i
l(ドット)を加算することで、エージェント#iに関するタスク#lの重要度φ
i
lを更新する。つまり、重要度処理部140は、以下の式(24)により、エージェント#iに関するタスク#lの重要度φ
i
lを更新する。なお、Δtは、制御周期を示す。重要度処理部140は、全てのタスク#lについて、重要度を更新する。なお、全てのエージェント#i(i=1,・・・,M)、及び全てのタスク#l(l=1,・・・,N)についての、重要度の初期値φ
i
l(0)が予め定められているとする。
【数24】
・・・(24)
【0086】
タスク#lが近傍タスクでない場合(lが式(2)に示す近傍タスクの条件を満たさない場合)は、重要度φi
lの変化量φi
l(ドット)は、式(23)の右辺の下式のように表される。式(23)の右辺の下式は、エージェント#jに関する要請パラメータdjと、重要度φj
lから重要度φi
lを減算した値と、係数kとの積の、全てのエージェント#jについての総和に、エージェント#iに関する応答パラメータσiを乗算したものに対応する。なお、式(23)の右辺の下式は、自身のエージェント#iの応答パラメータσiが0であれば、0となる。つまり、タスク#lが近傍タスクでない場合、応答パラメータσiが0であれば、自身のエージェント#iに関するタスク#lの重要度φi
lは、更新されない(変化しない)。また、応答パラメータσiが1である場合、要請パラメータが1である他のエージェント#j(要請エージェント)について、重要度φj
lから重要度φi
lを減算した差分の総和が、変化量φi
l(ドット)に対応する。したがって、重要度φj
lが重要度φi
lよりもかなり大きな要請エージェント#jが存在するほど、又は、重要度φj
lが重要度φi
lよりも大きな要請エージェント#jが多く存在するほど、エージェント#iに関するタスク#lの重要度φj
lは、大きくなり得る。
【0087】
一方、タスク#lが近傍タスクである場合(タスク#lが式(2)~(4)に示す近傍タスクの条件を満たす場合)は、重要度φi
lの変化量φi
l(ドット)は、式(23)の右辺の上式のように表される。式(23)の右辺の上式は、下式に、エージェント#iに関するタスク#lの重要度の目標値ci
lから重要度φi
lを減算した値と係数kとの積を加算したものに対応する。なお、式(23)の右辺の上式の第2項は、式(23)の右辺の下式と同じである。したがって、式(23)の右辺の上式の第2項は、自身のエージェント#iの応答パラメータσiが0であれば、0となる。つまり、タスク#lが近傍タスクである場合、応答パラメータσiが0であれば、式(23)の右辺の上式の第1項により、自身のエージェント#iに関するタスク#lの重要度φi
lは、目標値ci
lに近づくように更新され得る。また、応答パラメータσiが1である場合、要請エージェントについて重要度φj
lから重要度φi
lを減算した差分の総和と、目標値ci
lから重要度φi
lを減算した値と係数kとの積とを加算した値が、変化量φi
l(ドット)に対応する。したがって、目標値ci
lが大きい場合、重要度φj
lが重要度φi
lよりもかなり大きな要請エージェント#jが存在するほど、又は、重要度φj
lが重要度φi
lよりも大きな要請エージェント#jが多く存在するほど、エージェント#iに関するタスク#lの重要度φj
lは、大きくなり得る。
【0088】
また、重要度処理部140は、目標を達成したタスク#lの重要度の処理を行う。具体的には、重要度処理部140は、目標を達成したタスク#lの重要度φ
i
lを0にする。ここで、上述したように、実施の形態1では、タスク#lの目標が達成されるとは、荷物であるタスク#lが目標位置に到達することである。したがって、重要度処理部140は、以下の式(25)により、目標位置に到達したタスク#lの重要度φ
i
lを0にする。なお、δは、タスク#lが目標位置に到達したか否か(つまりタスク#lが目標を達成したか否か)を判定するための閾値であり、式(1)等の例では、0.05である。これにより、目標を達成したタスク#lについての処理が行われなくなり、各エージェント10は、他のタスク50を実行するようになる。
【数25】
・・・(25)
【0089】
また、重要度処理部140は、算出されたエージェント#iに関する各タスク#lの重要度φi
lを、他のエージェント#jの制御装置100に送信する。つまり、各エージェント10に関する各タスク50の重要度は、各エージェント10(制御装置100)間で共有される。これにより、他のエージェント#jの制御装置100は、そのエージェント#jについて、上記の処理を行う。つまり、他のエージェント#jの制御装置100は、そのエージェント#jに関する各タスク#lの重要度φj
lを算出(更新)する。
【0090】
タスク選択部150は、自身のエージェント#iが実行すべきタスク#l
i
*を選択する。具体的には、タスク選択部150は、以下の式(26)により、全てのタスク#l(l=1,・・・,N)のうち、重要度φ
i
lが最大のタスク#lを、自身のエージェント#iが実行すべきタスク#l
i
*として選択する。実施の形態1では、タスク50は搬送すべき荷物であるので、タスク選択部150は、自身のエージェント#iについて、重要度が最大の荷物(タスク#l
i
*)を選択する。
【数26】
・・・(26)
【0091】
タスク実行部160は、自身のエージェント#iがタスク#lを実行するための処理を行う。具体的には、タスク実行部160は、タスク選択部150によって選択されたタスク#li
*を自身のエージェント#iが実行するように、制御を行う。さらに具体的には、タスク実行部160は、タスク#li
*の位置及び達成すべき目標(終了条件)を取得する。タスク実行部160は、エージェント#iを、タスク#li
*の位置に移動させる。このとき、タスク実行部160は、エージェント#iの速度指令値を算出してもよい。そして、タスク実行部160は、タスク#li
*を実行してタスク#li
*の目標を達成するように、エージェント#iを制御する。タスク#lが荷物である場合、タスク実行部160は、荷物を把持するように、エージェント#iのアームを制御する。このとき、タスク実行部160は、アームの先端(エンドエフェクタ等)の力及びトルク指令値を算出してもよい。タスク実行部160は、タスク#li
*の目標位置にタスク#li
*を搬送するように、エージェント#iを制御する。
【0092】
なお、自身のエージェント#iの要請パラメータdiが0である場合、他のエージェント#jの制御装置100における処理で、式(23)の右辺の上式の第2項及び右辺の下式において、djk(φj
l-φi
l)=0となる。但し、他のエージェント#jの制御装置100における処理なので、jは自身のエージェント#iに対応し、iは他のエージェント#jに対応することに留意されたい。したがって、自身のエージェント#iの要請パラメータdiが0である場合、他のエージェント#jの制御装置100における処理で、自身のエージェント#iでタスク#lの重要度が大きかったとしても、他のエージェント#jに関するタスク#lの重要度には影響を与えない可能性が高い。ここで、自身のエージェント#iで重要度の大きなタスク#lは、自身のエージェント#iについて選択されるタスク#li
*を含み得る。以上から、要請パラメータdiが0の場合、他のエージェント#jの制御装置100における処理で、自身のエージェント#iについて選択されるタスク#li
*が選択される可能性は低くなる。よって、他のエージェント#jがタスク#li
*に応援に来る可能性は低下する。
【0093】
これに対し、自身のエージェント#iの要請パラメータdiが1である場合、他のエージェント#jの制御装置100における処理で、自身のエージェント#iで重要度の大きなタスク#lの重要性(重要度)が大きくなる可能性が高まる。したがって、要請パラメータdiが1の場合、自身のエージェント#iについて選択されるタスク#li
*が、他のエージェント#jの制御装置100における処理でも選択される可能性が高くなる。つまり、他のエージェント#jがタスク#li
*に応援に来る可能性が高まる。したがって、タスク#li
*が進行していない場合に要請パラメータdiが1となることで、自身のエージェント#iと他のエージェント#jとで、タスク#li
*を協調して実行する可能性が高くなる。これにより、タスク#li
*の目標が達成される可能性が高くなる。
【0094】
また、応答パラメータσiが0である場合、自身のエージェント#iの制御装置100における処理で、式(23)の右辺の上式の第2項及び右辺の下式が0となる。したがって、応答パラメータσiが0である場合、自身のエージェント#iの制御装置100における処理で、他のエージェント#j(要請エージェント)で重要度の大きなタスク#lの重要度が大きくなりにくい。ここで、他のエージェント#jで重要度の大きなタスク#lは、他のエージェント#jについて選択されるタスク#lj
*を含み得る。以上から、応答パラメータσiが0の場合、自身のエージェント#iの制御装置100における処理で、他のエージェント#jについて選択されるタスク#lj
*が選択される可能性は低くなる。よって、自身のエージェント#iがタスク#lj
*に応援に行く可能性は低下する。
【0095】
なお、この場合、式(23)の右辺の上式の第1項より、近傍タスク#lの重要度φi
lは目標値ci
lに漸近する。ここで、近傍タスク#lは、エージェント#iの前回の制御周期で選択されエージェント#iが現在実行中のタスク#li
*であり、応答パラメータσiが0である限り、その近傍タスク#lが選択され続ける可能性が高くなる.
【0096】
これに対し、応答パラメータσiが1である場合、自身のエージェント#iの制御装置100における処理で、式(23)の右辺の上式の第2項及び右辺の下式が0とならない。つまり、応答パラメータσiが1である場合、自身のエージェント#iの制御装置100における処理で、要請エージェント#jで重要度の大きなタスク#lの重要度が大きくなる可能性が高まる。以上から、応答パラメータσiが1の場合、要請エージェント#jについて選択されるタスク#lj
*が、自身のエージェント#iの制御装置100における処理でも選択される可能性が高くなる。つまり、自身のエージェント#iがタスク#lj
*に応援に行く可能性が高くなる。したがって、他の要請エージェント#jで選択されたタスク#lj
*が進行していない場合に応答パラメータσiが1となることで、自身のエージェント#iと他の要請エージェント#jとで、タスク#lj
*を協調して実行する可能性が高くなる。これにより、タスク#lj
*の目標が達成される可能性が高くなる。
【0097】
図4は、実施の形態1にかかる制御装置100によって実行される制御方法を示すフローチャートである。観測情報取得部110は、上述したように、周辺のエージェント10及び荷物(タスク50)と、自身のエージェント10との距離を算出する(ステップS102)。観測情報取得部110は、上述したように、自身のエージェント10(エージェント#i)の観測情報o
iを取得する(ステップS110)。
【0098】
行動出力部120は、上述したように、方策πNN,iを用いて、観測情報oiに対応する行動aiを出力する(ステップS120)。要請応答処理部130は、要請応答処理を行う(ステップS130)。具体的には、要請応答処理部130は、上述したように、自身のエージェント#iに関する要請パラメータdi及び応答パラメータσiを算出する。
【0099】
重要度処理部140は、タスク50である荷物の重要度を更新する(ステップS140)。具体的には、重要度処理部140は、上述したように、自身のエージェント#iに関する周辺のタスク#l(荷物)の重要度を更新(算出)する。また、重要度処理部140は、ゴールに到達した荷物の重要度の処理を行う(ステップS142)。具体的には、重要度処理部140は、上述したように、ゴールに到達し目標を達成したタスク#lの(荷物)の重要度を0にする。
【0100】
また、タスク選択部150は、上述したように、自身のエージェント10について重要度が最大の荷物を選択する(ステップS150)。タスク実行部160は、上述したように、選択された荷物を自身のエージェント10が搬送するように、処理を行う(ステップS160)。
【0101】
制御装置100は、全ての荷物の位置とその目標位置との距離が一定値未満であるか否かを判定する(ステップS170)。ここで、荷物の位置とその目標位置との距離が一定値未満であるとは、荷物が目標位置に到達したとみなしてよいということである。したがって、制御装置100は、全ての荷物が、目標位置に到達したか否かを判定する。なお、「一定値」とは、式(25)のδ(例えばδ=0.05)に対応する。全ての荷物の位置とその目標位置との距離が一定値未満である場合(S170のYES)、処理フローは終了する。一方、全ての荷物の位置とその目標位置との距離が一定値未満とはなっていない場合(S170のNO)、処理フローはS102に戻る。そして、S102~S170の処理が繰り返される。この処理の繰り返しは、上述した制御周期ごとに行われる。
【0102】
上述したように、実施の形態1にかかる制御装置100は、観測情報に基づいて要請パラメータと応答パラメータとを算出し、要請パラメータと応答パラメータとに基づいて当該エージェントに関するタスクそれぞれの重要度を算出するための処理を行う。そして、実施の形態1にかかる制御装置100は、重要度に応じて、当該エージェントが実行すべきタスクを選択し、当該エージェントが選択されたタスクを実行するように制御を行う。実施の形態1にかかる制御装置100は、このように構成されていることによって、観測情報、要請パラメータ及び応答パラメータに応じて算出された重要度に応じて、エージェントが実行すべきタスクを、適宜、選択することができる。これにより、タスクが未知である環境下であっても、多くのエージェントが1つのタスクに集中することを抑制し、進行しないタスクにはエージェントが応援に行くような動作を実現できる。これにより、タスクが確実に進行するようになる。したがって、タスクが未知である環境下であっても、タスクの目標が効率的に達成されるようにすることが可能となる。したがって、全体として、タスクの実行時間(総実行時間)を低減することが可能となる。
【0103】
また、実施の形態1にかかる制御装置100は、エージェントごとに学習された方策に基づいて、要請パラメータ及び応答パラメータを算出するように構成されている。また、好ましくは、実施の形態1にかかる制御装置100は、観測情報を方策に入力して方策から出力された要請度合い及び応答度合いに基づいて、それぞれ要請パラメータ及び応答パラメータを算出するように構成されている。これにより、エージェントごとに、応援が必要なタスクの重要度が大きくなり得るように、重要度を算出することができる。したがって、エージェントごとに、実行すべきタスクを適切に選択することが可能となる。
【0104】
また、実施の形態1にかかる制御装置100は、要請度合いが予め定められた閾値を上回り、且つ、当該エージェントが実行している又は実行しようとしているタスクが進行していない場合に、応援を要請することを示す要請パラメータを算出する。このような構成により、当該エージェントが実行している又は実行しようとしているタスクについて応援を要請すべき場合に、適切に、応援を要請することを示す要請パラメータを算出することができる。したがって、無駄な要請を行うことを抑制することができる。
【0105】
また、実施の形態1にかかる制御装置100は、応答度合いが予め定められた閾値を上回り、且つ、当該エージェントが実行している又は実行しようとしているタスクが進行していない場合に、要請に応答することを示す応答パラメータを算出する。このような構成により、当該エージェントが実行している又は実行しようとしているタスクが進行している場合に、引き続き、そのタスクを実行することができる。したがって、無駄な応答を行うことを抑制することができる。
【0106】
また、実施の形態1にかかる制御装置100は、エージェントごとに学習された方策に基づいて、当該エージェントに関するタスクそれぞれの重要度を算出する。このような構成により、エージェントごとに、各タスクの重要度を適切に算出することが可能となる。
【0107】
また、実施の形態1にかかる制御装置100は、観測情報を方策に入力して方策から出力された観測情報に対応するタスクの重要度の目標値に基づいて、当該エージェントに関する観測情報に対応するタスクの重要度を算出する。このような構成により、エージェントごとに、観測情報に対応するタスクの重要度を、目標値に近づけるように算出することができる。これにより、適切に、タスクの重要度を算出することが可能となる。
【0108】
(実施の形態2)
次に、実施の形態2について説明する。なお、実施の形態2にかかる制御システム1の構成については、
図1に示した実施の形態1にかかる制御システム1の構成と実質的に同様であるので、説明を省略する。また、実施の形態2にかかる制御装置100の構成については、
図2に示した実施の形態1にかかる制御装置100の構成と実質的に同様であるので、説明を省略する。実施の形態2においては、タスク50が、実施の形態1と異なる。
【0109】
実施の形態2では、タスク50は、搬送すべき多数の荷物が存在する場所である。そして、各荷物には、搬送先であるゴール(目標位置)が設定されている。そして、実施の形態2にかかるタスク50の目標は、その場所に存在する全ての荷物が各々のゴールに到達することである。なお、実施の形態1とは異なり、実施の形態2において搬送される荷物は、1つのエージェント10で搬送可能な程度に小さなものであり得る。なお、その場所(タスク50)に存在する荷物を搬送するエージェント10の数が多いほど、その場所(タスク50)が目標を達成する可能性(その場所における全ての荷物がゴールに到達する可能性)が高くなる。
【0110】
実施の形態2にかかるタスク50は、例えば、病院内の各部屋であってもよい。そして、タスク50である各部屋に、搬送すべき荷物であるカルテ、薬剤、検体等があるとしてもよい。また、実施の形態2にかかるタスク50は、例えば、災害時に救援物資が置かれた場所であってもよい。そして、救援物資が、搬送すべき荷物であってもよい。
【0111】
実施の形態2においては、観測情報取得部110は、実施の形態1と同様に、式(5)で示すような観測情報oiを取得する。その際に、観測情報取得部110は、自身のエージェント#iとタスク#lである場所との距離を算出する。具体的には、実施の形態1と同様に、観測情報取得部110は、タスク#lである場所の位置を取得する。観測情報取得部110は、取得されたタスク#l(場所#l)の位置から、自身のエージェント#iと各タスク#l(場所#l)との間の距離を算出する。そして、観測情報取得部110は、自身のエージェント#iと各タスク#l(場所#l)との間の距離から、自身のエージェント#iに近い所定数の近傍タスクを判定し、近傍タスクに関する情報を、観測情報の一部とする。上述した式(2)~(5)の例では、近傍タスクは、自身のエージェント#iに最も近い場所#l1及び2番目に近い場所#l2である。
【0112】
また、実施の形態2において、式(5)におけるo_(l1)^taskは、近傍タスクである場所#l1にある各荷物の状態と各荷物のゴールを示してもよい。各荷物の状態は、各荷物の位置及び速度であってもよい。なお、o_(l1)^taskは、近傍タスクである場所#l1にある各荷物の状態(位置及び速度)の平均及び各荷物のゴールの平均位置を示してもよい。平均位置は、各位置(ゴール)の重心(幾何中心)であってもよい。あるいは、o_(l1)^taskは、近傍タスクである場所#l1にある荷物の数と、荷物の数の目標(つまり0個)を示してもよい。o_(l2)^taskについても同様である。
【0113】
実施の形態2において、方策格納部112は、実施の形態1と同様に、強化学習によって学習済みの方策π(学習済みモデル)を格納する。方策πは、エージェント10ごとに学習されている。エージェント#iの方策πNN,iは、上述した観測情報oiを入力とし、上記の式(12)で示す行動aiを出力とする。また、実施の形態1と同様に、方策πNN,iは、上記の式(14)で示す報酬ri(t)を最大化するように学習されている。
【0114】
ここで、実施の形態2において、タスク#lの達成度に関するPl(t)は、時刻tにおける、場所#lにある荷物の搬送達成度を示してもよい。搬送達成度は、例えば、場所#lに最初にあった荷物の数に対するゴールに搬送された荷物の数の割合に対応してもよい。また、実施の形態2において、タスク#lの進行度に関するQl(t)は、時刻tにおける、荷物の減り具合であってもよい。荷物の減り具合は、例えば、単位時間当たりに場所#lから減る(搬送される)荷物の数に対応してもよい。
【0115】
図5は、実施の形態2にかかる制御装置100によって実行される制御方法を示すフローチャートである。観測情報取得部110は、上述したように、周辺のエージェント10及び場所(タスク50)と、自身のエージェント10との距離を算出する(ステップS202)。観測情報取得部110は、上述したように、自身のエージェント10(エージェント#i)の観測情報o
iを取得する(ステップS210)。行動出力部120は、実施の形態1と同様に、方策π
NN,iを用いて、観測情報o
iに対応する行動a
iを出力する(ステップS220)。
【0116】
要請応答処理部130は、実施の形態1と同様に、要請応答処理を行う(ステップS230)。具体的には、要請応答処理部130は、上記の式(18)を用いて、自身のエージェント#iに関する要請パラメータdiを算出してもよい。また、要請応答処理部130は、上記の式(19)を用いて、自身のエージェント#iに関する応答パラメータσiを算出してもよい。
【0117】
重要度処理部140は、実施の形態1と同様に、タスク50である場所の重要度を更新する(ステップS240)。すなわち、重要度処理部140は、実施の形態1と同様に、周辺の他のエージェント#jの制御装置100から、エージェント#jに関する要請パラメータdj及び各タスク#l(場所#l)の重要度φj
lを取得する。そして、重要度処理部140は、自身のエージェント#iに関する周辺のタスク#l(場所#l)の重要度φi
lを更新(算出)する。重要度処理部140は、上記の式(23)及び式(24)を用いて、自身のエージェント#iに関する各タスク#l(場所#l)の重要度φi
lを更新してもよい。
【0118】
重要度処理部140は、全ての荷物がゴールに到達した場所の重要度の処理を行う(ステップS242)。具体的には、実施の形態1と同様に、重要度処理部140は、自身のエージェント#iに関する、全ての荷物がゴールに到達した場所#lの重要度φi
lを0にする。
【0119】
タスク選択部150は、実施の形態1と同様に、自身のエージェント10について重要度が最大の場所を選択する(ステップS250)。つまり、タスク選択部150は、実施の形態1と同様に、上記の式(26)を用いて、自身のエージェント#iについて重要度φi
lが最大の場所#lを選択してもよい。
【0120】
タスク実行部160は、自身のエージェント10が、選択された場所に移動して荷物の搬送処理を行うように、制御を行う(ステップS260)。具体的には、タスク実行部160は、選択された場所li
*に移動するように、エージェント#iを制御する。また、タスク実行部160は、エージェント#iが場所li
*に移動したら、場所li
*に存在する荷物をゴールに搬送するように、制御を行う。荷物を搬送する方法は、上述した実施の形態1と同様である。
【0121】
制御装置100は、全ての場所において、全ての荷物の位置とそのゴールとの距離が一定値未満であるか否かを判定する(ステップS270)。ここで、荷物の位置とそのゴールとの距離が一定値未満であるとは、荷物がゴールに到達したとみなしてよいということである。したがって、制御装置100は、全ての場所において、全ての荷物が、ゴールに到達したか否かを判定する。なお、「一定値」とは、式(25)のδに対応してもよい。全ての場所において全ての荷物の位置とそのゴールとの距離が一定値未満である場合(S270のYES)、処理フローは終了する。一方、全ての場所において全ての荷物の位置とそのゴールとの距離が一定値未満とはなっていない場合(S270のNO)、処理フローはS202に戻る。そして、S202~S270の処理が繰り返される。この処理の繰り返しは、上述した制御周期ごとに行われる。
【0122】
実施の形態1と同様に、実施の形態2にかかる制御装置100は、観測情報に基づいて要請パラメータと応答パラメータとを算出し、要請パラメータと応答パラメータとに基づいて当該エージェントに関するタスクそれぞれの重要度を算出するための処理を行う。そして、実施の形態2にかかる制御装置100は、重要度に応じて、当該エージェントが実行すべきタスクを選択し、当該エージェントが選択されたタスクを実行するように制御を行う。したがって、実施の形態1と同様に、実施の形態2にかかる制御装置100は、観測情報、要請パラメータ及び応答パラメータに応じて算出された重要度に応じて、エージェントが実行すべきタスクを、適宜、選択することができる。これにより、タスクが未知である環境下であっても、多くのエージェントが1つのタスクに集中することを抑制し、進行しないタスクにはエージェントが応援に行くような動作を実現できる。これにより、タスクが確実に進行するようになる。したがって、タスクが未知である環境下であっても、タスクの目標が効率的に達成されるようにすることが可能となる。したがって、全体として、タスクの実行時間(総実行時間)を低減することが可能となる。
【0123】
(実施の形態1及び実施の形態2の変形例)
なお、実施の形態1及び実施の形態2では、エージェント10がロボット等の機械であるとしたが、エージェント10は、機械でなくてもよい。エージェント10は、機械と人間とを含んでもよい。つまり、ロボットと人間とで協調して、複数の荷物を搬送してもよい。このとき、人間は、エージェント10に関する制御装置100と通信可能な通信端末を携帯してもよい。なお、機械であるエージェント10は、上述した実施の形態1及び実施の形態2と実質的に同様の処理によって、制御され得る。
【0124】
その際に、機械であるエージェント10の制御装置100は、人間が携帯する通信端末に対して、自身の要請パラメータ及び各タスクの重要度を送信してもよい。人間は、他のエージェント10から取得された要請パラメータ及び各タスクの重要度から、独自の判断で、応援を要請することを示す要請パラメータを送信したエージェント10に応答し、そのエージェント10が実行しているタスクに応援に行ってもよい。なお、人間は、荷物の搬送が完了することによる達成感を行動原理として、搬送すべき荷物を、独自に判断し得る。なお、人間は、他のエージェント10に対して、応援を要請しない。つまり、人間は、他のエージェント10に対して、応援を要請することを示す要請パラメータを送信しなくてもよい。このようにするのは、ロボットであるエージェント10に関する方策の学習に人の要請タイミングを模擬することができないので、人間が応援を要請すると、ロボットであるエージェント10の行動に望ましくない結果が出るおそれがあるからである。
【0125】
(実施の形態3)
次に、実施の形態3について説明する。なお、実施の形態3にかかる制御システム1の構成については、
図1に示した実施の形態1にかかる制御システム1の構成と実質的に同様であるので、説明を省略する。また、実施の形態3にかかる制御装置100の構成については、
図2に示した実施の形態1にかかる制御装置100の構成と実質的に同様であるので、説明を省略する。実施の形態3においては、タスク50が、上述した実施の形態と異なる。ここで、上述した実施の形態では、エージェント10が荷物を搬送することで、タスク50の目標が達成される。これに対し、実施の形態3では、エージェント10は、タスク50を実行する際に、荷物を搬送しなくてもよい。実施の形態3におけるタスク50の具体例については後述する。実施の形態1と同様に、エージェント10は、制御装置100による制御によって、環境内で自律して動作を行う。また、実施の形態3では、監視装置60がタスク50を監視しなくてもよい。各エージェント10が、タスク50の状態を監視(検出)するようにしてもよい。
【0126】
図6は、実施の形態3にかかる制御装置100によって実行される制御方法を示すフローチャートである。観測情報取得部110は、S102,S202と同様に、周辺のエージェント10及びタスク50と、自身のエージェント10との距離を算出する(ステップS302)。観測情報取得部110は、S110,S210と同様に、自身のエージェント10(エージェント#i)の観測情報o
iを取得する(ステップS310)。観測情報o
iについては後述する。行動出力部120は、S120,S220と同様に、方策π
NN,iを用いて、観測情報o
iに対応する行動a
iを出力する(ステップS320)。方策π
NN,iに関する報酬r
i(t)については後述する。
【0127】
要請応答処理部130は、S130,S230と同様に、要請応答処理を行う(ステップS330)。具体的には、要請応答処理部130は、上記の式(18)を用いて、自身のエージェント#iに関する要請パラメータdiを算出してもよい。また、要請応答処理部130は、上記の式(19)を用いて、自身のエージェント#iに関する応答パラメータσiを算出してもよい。
【0128】
重要度処理部140は、S140,S240と同様に、タスク50の重要度を更新する(ステップS340)。具体的には、重要度処理部140は、上述した実施の形態と同様に、周辺の他のエージェント#jの制御装置100から、エージェント#jに関する要請パラメータdj及び各タスク#lの重要度φj
lを取得する。そして、重要度処理部140は、上述した実施の形態と同様に、自身のエージェント#iに関する周辺のタスク#lの重要度φi
lを更新(算出)する。重要度処理部140は、上記の式(23)及び式(24)を用いて、自身のエージェント#iに関する各タスク#lの重要度φi
lを更新してもよい。
【0129】
重要度処理部140は、S142,S242と同様に、終了したタスクの重要度の処理を行う(ステップS342)。具体的には、上述した実施の形態と同様に、重要度処理部140は、自身のエージェント#iに関する、目標を達成したタスク#lの重要度φi
lを0にする。
【0130】
タスク選択部150は、S150,S250と同様に、自身のエージェント10について重要度が最大のタスク50を選択する(ステップS350)。具体的には、タスク選択部150は、上述した実施の形態と同様に、上記の式(26)を用いて、自身のエージェント#iについて重要度φi
lが最大のタスク#lを選択してもよい。
【0131】
タスク実行部160は、S160,S260と同様に、自身のエージェント10が選択されたタスク50を実行するように、制御を行う(ステップS360)。具体的には、タスク実行部160は、選択されたタスクli
*の位置に移動するように、エージェント#iを制御する。また、タスク実行部160は、エージェント#iがタスクli
*の位置に移動したら、タスクli
*を実行するように、制御を行う。タスク50の具体例については、後述する。
【0132】
制御装置100は、全てのタスク50が終了したか否かを判定する(ステップS370)。全てのタスク50が終了した場合(S370のYES)、処理フローは終了する。一方、全てのタスク50が終了していない場合(S370のNO)、処理フローはS302に戻る。そして、S302~S370の処理が繰り返される。この処理の繰り返しは、上述した制御周期ごとに行われる。
【0133】
実施の形態1と同様に、実施の形態3にかかる制御装置100は、観測情報に基づいて要請パラメータと応答パラメータとを算出し、要請パラメータと応答パラメータとに基づいて当該エージェントに関するタスクそれぞれの重要度を算出するための処理を行う。そして、実施の形態3にかかる制御装置100は、重要度に応じて、当該エージェントが実行すべきタスクを選択し、当該エージェントが選択されたタスクを実行するように制御を行う。したがって、実施の形態1と同様に、実施の形態3にかかる制御装置100は、観測情報、要請パラメータ及び応答パラメータに応じて算出された重要度に応じて、エージェントが実行すべきタスクを、適宜、選択することができる。これにより、タスクが未知である環境下であっても、複数のエージェントが1つのタスクに集中するような余計な集中を抑制しつつ、進行しないタスクにはエージェントが応援に行くような動作を実現できる。これにより、タスクが確実に進行するようになる。したがって、タスクが未知である環境下であっても、タスクの目標が効率的に達成されるようにすることが可能となる。したがって、全体として、タスクの実行時間(総実行時間)を低減することが可能となる。
【0134】
<実施の形態3の具体例1>
具体例1では、本実施の形態にかかる方法を、メンテナンスに適用する。具体例1では、ロボット等の機械である複数のエージェント10によって、構造物のメンテナンス(点検)を行う。また、具体例1では、複数のエージェント10が、広範囲の構造物の点検を行う。ここで、具体例1では、タスク50は、各点検箇所である。また、具体例1では、タスク50の目標は、各点検箇所について多面的な検査が実行されることである。なお、複数のエージェント10それぞれは、互いに異なる機能を有し得る。したがって、複数のエージェント10は、異なるタイプのエージェント10で構成され得る。異なるタイプの複数のエージェント10により、多面的な検査を実現できる。したがって、エージェント10の数が多いほど、タスク50の目標が達成される可能性が高くなる。
【0135】
例えば、あるエージェント10は、異常箇所を探索する探索ロボットであってもよい。また、別のエージェント10は、異常に対して対処を行う対処ロボットであってもよい。また、あるエージェント10(探索ロボット)は、点検箇所を撮影するカメラを有し、撮影によって得られた画像から、異常箇所の深刻度を判定してもよい。また、あるエージェント10は、第1の非破壊検査(例えば赤外線調査)を行うための機能を有してもよい。また、別のエージェント10は、第2の非破壊検査(例えば超音波探傷試験)を行うための機能を有してもよい。また、別のエージェント10は、第3の非破壊検査(例えば放射線透過試験)を行うための機能を有してもよい。また、別のエージェント10は、第4の非破壊検査(例えば渦電流探傷試験)を行うための機能を有してもよい。
【0136】
具体例1において、観測情報取得部110は、上述した実施の形態と同様に、式(5)で示すような観測情報oiを取得する(S310)。その際に、観測情報取得部110は、自身のエージェント#iとタスク#l(点検箇所#l)との距離を算出する(S302)。具体的には、実施の形態1と同様に、観測情報取得部110は、タスク#lである点検箇所の位置を取得する。観測情報取得部110は、取得されたタスク#l(点検箇所#l)の位置から、自身のエージェント#iと各タスク#l(点検箇所#l)との間の距離を算出する。そして、観測情報取得部110は、自身のエージェント#iと各タスク#l(点検箇所#l)との間の距離から、自身のエージェント#iに近い所定数の近傍タスクを判定し、近傍タスクに関する情報を、観測情報の一部とする。上述した式(2)~(5)の例では、近傍タスクは、自身のエージェント#iに最も近い点検箇所#l1及び2番目に近い点検箇所#l2である。
【0137】
また、具体例1において、式(5)におけるo_(l1)^taskは、近傍タスクである点検箇所#l1の状態と点検の終了条件を示してもよい。各点検箇所の状態は、点検箇所の位置、実行された点検の内容、及び異常の深刻度であってもよい。点検の終了条件は、全てのタイプのエージェント10が点検箇所に到達して全ての種類の検査(多面的な検査)が実行されることであってもよい。o_(l2)^taskについても同様である。
【0138】
具体例1において、方策格納部112は、上述した実施の形態と同様に、強化学習によって学習済みの方策π(学習済みモデル)を格納する。方策πは、エージェント10ごとに学習されている。エージェント#iの方策πNN,iは、上述した観測情報oiを入力とし、上記の式(12)で示す行動aiを出力とする。また、実施の形態1と同様に、方策πNN,iは、上記の式(14)で示す報酬ri(t)を最大化するように学習されている。
【0139】
ここで、具体例1において、タスク#lの達成度に関するPl(t)は、時刻tにおける、点検箇所#lの点検の達成度を示してもよい。点検の達成度は、例えば、深刻な点検箇所#lに到達して処理を実行したエージェント10のタイプの数に対応してもよい。あるいは、点検の達成度は、実行された点検項目の数であってもよい。また、具体例1において、タスク#lの進行度に関するQl(t)は、時刻tにおける、点検箇所#lの点検の進行度であってもよい。点検の進行度は、単位時間当たりに深刻な点検箇所#lに到達するエージェント10の数に対応してもよい。あるいは、点検の進行度は、単位時間あたりに実行された点検項目の数であってもよい。
【0140】
また、具体例1において、要請応答処理部130は、上述した実施の形態と同様に、方策πNN,iから出力された行動aiから、エージェント#iに関する要請パラメータdi及び応答パラメータσiを算出する(S330)。そして、要請応答処理部130は、要請パラメータdiを周辺のエージェント10の制御装置100に送信する。また、具体例1において、重要度処理部140は、上述した実施の形態と同様に、自身のエージェント#iに関する周辺のタスク#l(点検箇所#l)の重要度φi
lを更新(算出)する(S340,S342)。重要度処理部140は、上記の式(23)及び式(24)を用いて、自身のエージェント#iに関する各タスク#l(点検箇所#l)の重要度φi
lを更新してもよい。また、具体例1において、タスク選択部150は、上述した実施の形態と同様に、上記の式(26)により、全てのタスク#lのうち、重要度φi
lが最大のタスク#l(点検箇所#l)を、自身のエージェント#iが実行すべきタスク#li
*として選択する(S350)。
【0141】
ここで、具体例1では、要請応答処理部130は、自身のエージェント#iとは異なるタイプのエージェント10の制御装置100に、要請パラメータを送信してもよい。これにより、自身のエージェント#iとは異なるタイプのエージェント10が、点検箇所に到達する可能性が高くなる。逆に言えば、自身のエージェント#iと同じタイプのエージェント10が、点検箇所に到達する可能性が低くなる。すなわち、探索ロボットであるエージェント#iが深刻な点検箇所#lを検出した場合に、そのエージェント#iの制御装置100において、方策から出力される要請度合いが大きくなることが想定される。そして、探索ロボットであるエージェント#iの制御装置100が、di=1である要請パラメータを、異なるタイプのエージェント10(非破壊検査を行うエージェント10等)の制御装置100に送信する。これにより、異なるタイプのエージェント10(非破壊検査を行うエージェント10等)の制御装置100において、その点検箇所#lの重要度が大きくなることが想定され得る。したがって、異なるタイプのエージェント10(非破壊検査を行うエージェント10等)の制御装置100において、その点検箇所#lが選択され、異なるタイプのエージェント10が、その点検箇所#lに到達する可能性が、高くなる。これにより、タスク50の目標が達成される可能性が高くなる。なお、観測情報に、どの点検箇所の検査が終わっていないかの情報が付加されれば、観測情報を取得したエージェント側で、その点検箇所への応援の要請に対する応答を積極的にすべきかの判断が可能になる。
【0142】
また、具体例1において、タスク実行部160は、選択されたタスク#l(点検箇所#l)を自身のエージェント#iが実行するように、制御を行う(S360)。具体的には、タスク実行部160は、エージェント#iを、タスク#li
*(点検箇所#li
*)の位置に移動させる。タスク実行部160は、自身のエージェント#iの機能に合った検査を実行させるように、自身のエージェント#iを制御する。そして、全ての点検箇所について多面的な検査が実行されるように、各エージェント10の制御装置100が、処理を行う。
【0143】
<実施の形態3の具体例2>
具体例2では、本実施の形態にかかる方法を、見守り、巡視、及びセキュリティに適用する。具体例2では、ロボット等の機械である複数のエージェント10によって、環境の保全を行う。具体的には、複数のエージェント10は、環境を巡回し、見守り、巡視、及びセキュリティ等に関する処理を行う。複数のエージェント10は、環境を巡回して、環境に存在する課題を探索する。また、具体例2では、課題が探索された場合、課題を探索したエージェント10の制御装置100は、周辺のエージェント10の制御装置100に、探索された課題に関する情報を送信する。ここで、具体例2では、タスク50は、「探索された課題」である。また、具体例2では、タスク50の目標は、探索された課題を解決することである。エージェント10の数が多いほど、タスク50の目標が達成される可能性が高くなる。
【0144】
また、具体例2では、複数のエージェント10は、探索された課題に対処する機能を有してもよい。また、具体例1のように、複数のエージェント10は、互いに異なる機能を有してもよい。例えば、探索された課題が「粗大ごみの撤去」である場合、粗大ごみを搬送可能なエージェント10が、粗大ごみを撤去してもよい。また、探索された課題が「犯罪者の確保」である場合、犯罪者を確保可能なエージェント10が、犯罪者を確保してもよい。また、探索された課題が「道に迷った人への対処」である場合、道案内をすることが可能なエージェント10が、道に迷った人への対処を行ってもよい。なお、以降の説明では、「探索された課題」を、単に「課題」と称することがある。
【0145】
具体例2において、観測情報取得部110は、上述した実施の形態と同様に、式(5)で示すような観測情報oiを取得する(S310)。その際に、観測情報取得部110は、自身のエージェント#iとタスク#l(課題#l)との距離を算出する(S302)。具体的には、実施の形態1と同様に、観測情報取得部110は、タスク#lである「探索された課題」の位置を取得する。「探索された課題」の位置は、探索された課題を探索したエージェント10の、探索時の位置であってもよい。観測情報取得部110は、取得されたタスク#l(課題#l)の位置から、自身のエージェント#iと各タスク#l(課題#l)との間の距離を算出する。そして、観測情報取得部110は、自身のエージェント#iと各タスク#l(課題#l)との間の距離から、自身のエージェント#iに近い所定数の近傍タスクを判定し、近傍タスクに関する情報を、観測情報の一部とする。上述した式(2)~(5)の例では、近傍タスクは、自身のエージェント#iに最も近い課題#l1及び2番目に近い課題#l2である。
【0146】
また、具体例2において、式(5)におけるo_(l1)^taskは、近傍タスクである課題#l1の状態と課題の終了条件を示してもよい。各課題の状態は、課題の位置、課題の解決度合い、課題の質、及び課題のタイプであってもよい。課題の終了条件は、課題が解決することであってもよい。o_(l2)^taskについても同様である。
【0147】
具体例2において、方策格納部112は、上述した実施の形態と同様に、強化学習によって学習済みの方策π(学習済みモデル)を格納する。方策πは、エージェント10ごとに学習されている。エージェント#iの方策πNN,iは、上述した観測情報oiを入力とし、上記の式(12)で示す行動aiを出力とする。また、実施の形態1と同様に、方策πNN,iは、上記の式(14)で示す報酬ri(t)を最大化するように学習されている。
【0148】
ここで、具体例2において、タスク#lの達成度に関するPl(t)は、時刻tにおける、課題#lに関する課題解決の達成度を示してもよい。課題解決の達成度は、例えば、課題に対処可能なエージェント10が対処を終了したことに対応してもよい。また、具体例2において、タスク#lの進行度に関するQl(t)は、時刻tにおける、課題#lに対する課題の対処の進行度であってもよい。課題の対処の進行度は、例えば、課題に対処可能なエージェント10が対処を行っていることに対応してもよい。
【0149】
また、具体例2において、要請応答処理部130は、上述した実施の形態と同様に、方策πNN,iから出力された行動aiから、エージェント#iに関する要請パラメータdi及び応答パラメータσiを算出する(S330)。そして、要請応答処理部130は、要請パラメータdiを周辺のエージェント10の制御装置100に送信する。このとき、実施の形態1及び実施の形態2の変形例のように、制御装置100は、人間が携帯する端末に、要請パラメータを送信してもよい。これにより、人間が課題に対処してもよい。また、具体例1のように、制御装置100は、自身のエージェント#iとは異なるタイプのエージェント10の制御装置100に、要請パラメータを送信してもよい。
【0150】
また、具体例2において、重要度処理部140は、上述した実施の形態と同様に、自身のエージェント#iに関する周辺のタスク#l(課題#l)の重要度φi
lを更新(算出)する(S340,S342)。重要度処理部140は、上記の式(23)及び式(24)を用いて、自身のエージェント#iに関する各タスク#l(課題#l)の重要度φi
lを更新してもよい。また、具体例2において、タスク選択部150は、上述した実施の形態と同様に、上記の式(26)により、全てのタスク#lのうち、重要度φi
lが最大のタスク#l(課題#l)を、自身のエージェント#iが実行すべきタスク#li
*として選択する(S350)。
【0151】
なお、課題#lを探索したエージェント#iがその課題に対処する機能を有していない場合に、そのエージェント#iの制御装置100において、方策から出力される要請度合いが大きくなることが想定される。そして、そのエージェント#iの制御装置100が、di=1である要請パラメータを、周辺のエージェント10の制御装置100に送信する。そして、周辺のエージェント10のうち、課題に対処可能なエージェント10の制御装置100において、課題の質及び課題のタイプが示された観測情報、及び、上記の要請パラメータが取得されることで、その課題#lの重要度が大きくなることが想定され得る。したがって、課題に対処可能なエージェント10の制御装置100において、その課題#lが選択され、課題に対処可能なエージェント10が、その課題#lの位置に到達する可能性が、高くなる。なお、観測情報に、どの課題の対処が終わっていないかの情報が付加されれば、観測情報を取得したエージェント側で、その課題への応援の要請に対する応答を積極的にすべきかの判断が可能になる。
【0152】
また、具体例2において、タスク実行部160は、選択されたタスク#l(課題#l)を自身のエージェント#iが実行するように、制御を行う(S360)。具体的には、タスク実行部160は、エージェント#iを、タスク#li
*(課題#li
*)の位置に移動させる。タスク実行部160は、自身のエージェント#iが実行可能な課題の対処を実行させるように、自身のエージェント#iを制御する。そして、全ての探索された課題が解決されるように、各エージェント10の制御装置100が、処理を行う。
【0153】
<実施の形態3の具体例3>
具体例3では、本実施の形態にかかる方法を、自然との共存に適用する。具体例3では、ロボット等の機械である複数のエージェント10によって、動物を監視し、動物の動きを制御する。これにより、農場に動物が侵入することを抑制することで、サステイナブルな生態系を実現しつつ、農業被害を低減できる。
【0154】
具体例3では、複数のエージェント10が、農場又は農場の周囲で動く物体を検出することで、動物を検出する。また、複数のエージェント10それぞれは、互いに異なる機能を有してもよい。つまり、具体例1のように、複数のエージェント10は、異なるタイプのエージェントで構成されてもよい。この場合、あるエージェント10は、動物を探索する機能を有してもよい。また、別のエージェント10は、動物を農場から退去させる機能を有してもよい。あるいは、複数のエージェント10のそれぞれが、動物を探索する機能及び動物を農場から退去させる機能の両方を有してもよい。つまり、複数のエージェント10のそれぞれが、同じタイプのエージェント10であってもよい。なお、動物を検出したエージェント10の制御装置100は、動物に関する情報(動物の位置等)を、他のエージェント10の制御装置100に送信する。ここで、具体例3では、タスク50は、検出された各動物である。また、具体例3では、タスク50の目標は、動物の退去である。エージェント10の数が多いほど、タスク50の目標が達成される可能性が高くなる。
【0155】
具体例3において、観測情報取得部110は、上述した実施の形態と同様に、式(5)で示すような観測情報oiを取得する(S310)。その際に、観測情報取得部110は、自身のエージェント#iとタスク#l(動物#l)との距離を算出する(S302)。具体的には、実施の形態1と同様に、観測情報取得部110は、タスク#lである動物の位置を取得する。観測情報取得部110は、取得されたタスク#l(動物#l)の位置から、自身のエージェント#iと各タスク#l(動物#l)との間の距離を算出する。そして、観測情報取得部110は、自身のエージェント#iと各タスク#l(動物#l)との間の距離から、自身のエージェント#iに近い所定数の近傍タスクを判定し、近傍タスクに関する情報を、観測情報の一部とする。上述した式(2)~(5)の例では、近傍タスクは、自身のエージェント#iに最も近い動物#l1及び2番目に近い動物#l2である。
【0156】
また、具体例3において、式(5)におけるo_(l1)^taskは、近傍タスクである動物#l1の状態と動物#l1の退去先(ゴール)を示してもよい。動物の状態は、動物の位置及び動物の速度であってもよい。動物#l1の退去先は、その動物の元のテリトリーに対応してもよい。o_(l2)^taskについても同様である。
【0157】
具体例3において、方策格納部112は、上述した実施の形態と同様に、強化学習によって学習済みの方策π(学習済みモデル)を格納する。方策πは、エージェント10ごとに学習されている。エージェント#iの方策πNN,iは、上述した観測情報oiを入力とし、上記の式(12)で示す行動aiを出力とする。また、実施の形態1と同様に、方策πNN,iは、上記の式(14)で示す報酬ri(t)を最大化するように学習されている。
【0158】
ここで、具体例3において、タスク#lの達成度に関するPl(t)は、時刻tにおける、動物から守りたい範囲(動物を侵入させたくない範囲)の境界までの距離としてもよい。また、具体例3において、タスク#lの進行度に関するQl(t)は、時刻tにおける、動物#lのゴールへの移動速度であってもよい。
【0159】
また、具体例3において、要請応答処理部130は、上述した実施の形態と同様に、方策πNN,iから出力された行動aiから、エージェント#iに関する要請パラメータdi及び応答パラメータσiを算出する(S330)。そして、要請応答処理部130は、要請パラメータdiを周辺のエージェント10の制御装置100に送信する。このとき、実施の形態1及び実施の形態2の変形例のように、制御装置100は、人間が携帯する端末に、要請パラメータを送信してもよい。これにより、人間が動物の退去を行ってもよい。
【0160】
また、具体例3において、重要度処理部140は、上述した実施の形態と同様に、自身のエージェント#iに関する周辺のタスク#l(動物#l)の重要度φi
lを更新(算出)する(S340,S342)。重要度処理部140は、上記の式(23)及び式(24)を用いて、自身のエージェント#iに関する各タスク#l(動物#l)の重要度φi
lを更新してもよい。また、具体例3において、タスク選択部150は、上述した実施の形態と同様に、上記の式(26)により、全てのタスク#lのうち、重要度φi
lが最大のタスク#l(動物#l)を、自身のエージェント#iが実行すべきタスク#li
*として選択する(S350)。
【0161】
なお、複数のエージェント10が異なるタイプのエージェント10で構成される場合、具体例1と同様に、要請応答処理部130は、自身のエージェント#iとは異なるタイプのエージェント#iの制御装置100に、要請パラメータを送信してもよい。これにより、自身のエージェント#iとは異なるタイプのエージェント10が、動物に到達する可能性が高くなる。これにより、具体例1と同様に、動物を探索する機能を有するエージェント#iが動物を検出した場合に、動物を農場から退去させる機能を有するエージェント10が、その動物に到達する可能性が高くなる。
【0162】
また、具体例3において、タスク実行部160は、選択されたタスク#l(動物の制御)を自身のエージェント#iが実行するように、制御を行う(S360)。具体的には、タスク実行部160は、エージェント#iを、タスク#li
*(動物#li
*)の位置に移動させる。タスク実行部160は、動物の退去(動物の追い払い)を実行させるように、自身のエージェント#iを制御する。そして、全ての動物について退去(追い払い)が実行されるように、各エージェント10の制御装置100が、処理を行う。
【0163】
<実施の形態3の具体例4>
具体例4では、本実施の形態にかかる方法を、多様なサービスの提供に適用する。具体例4では、ロボット等の機械である複数のエージェント10によって、環境に住む人々のサポートを行う。これにより、人々の快適度を向上させることができる。具体的には、複数のエージェント10は、環境を巡回し、人々の要望に応えるための処理を行う。エージェント10は、環境を巡回して、人々からリクエストされた課題を解決する。また、具体例4では、課題がリクエストされた場合、課題をリクエストされたエージェント10の制御装置100は、周辺のエージェント10の制御装置100に、リクエストされた課題に関する情報を送信する。なお、具体例4では、タスク50は、「リクエストされた課題」である。また、具体例4では、タスク50の目標は、リクエストされた課題を解決することである。エージェント10の数が多いほど、タスク50の目標が達成される可能性が高くなる。
【0164】
また、具体例4では、複数のエージェント10は、リクエストされた課題に対処する機能を有してもよい。また、具体例1のように、複数のエージェント10は、互いに異なる機能を有してもよい。例えば、リクエストされた課題が「粗大ごみの撤去」である場合、粗大ごみを搬送可能なエージェント10が、粗大ごみを撤去してもよい。また、リクエストされた課題が「犯罪者の確保」である場合、犯罪者を確保可能なエージェント10が、犯罪者を確保してもよい。また、リクエストされた課題が「道に迷った人への対処」である場合、道案内をすることが可能なエージェント10が、道に迷った人への対処を行ってもよい。なお、以降の説明では、「リクエストされた課題」を、単に「課題」と称することがある。
【0165】
具体例4において、観測情報取得部110は、上述した実施の形態と同様に、式(5)で示すような観測情報oiを取得する(S310)。その際に、観測情報取得部110は、自身のエージェント#iとタスク#l(課題#l)との距離を算出する(S302)。具体的には、実施の形態1と同様に、観測情報取得部110は、タスク#lである「リクエストされた課題」の位置を取得する。「リクエストされた課題」の位置は、課題をリクエストされたエージェント10の、リクエストされたときの位置であってもよい。観測情報取得部110は、取得されたタスク#l(課題#l)の位置から、自身のエージェント#iと各タスク#l(課題#l)との間の距離を算出する。そして、観測情報取得部110は、自身のエージェント#iと各タスク#l(課題#l)との間の距離から、自身のエージェント#iに近い所定数の近傍タスクを判定し、近傍タスクに関する情報を、観測情報の一部とする。上述した式(2)~(5)の例では、近傍タスクは、自身のエージェント#iに最も近い課題#l1及び2番目に近い課題#l2である。
【0166】
また、具体例4において、式(5)におけるo_(l1)^taskは、近傍タスクである課題#l1の状態と課題の終了条件を示してもよい。各課題の状態は、課題の位置、課題の解決度合い、課題の質、及び課題のタイプであってもよい。課題の終了条件は、課題が解決することであってもよい。o_(l2)^taskについても同様である。
【0167】
具体例4において、方策格納部112は、上述した実施の形態と同様に、強化学習によって学習済みの方策π(学習済みモデル)を格納する。方策πは、エージェント10ごとに学習されている。エージェント#iの方策πNN,iは、上述した観測情報oiを入力とし、上記の式(12)で示す行動aiを出力とする。また、実施の形態1と同様に、方策πNN,iは、上記の式(14)で示す報酬ri(t)を最大化するように学習されている。
【0168】
ここで、具体例4において、タスク#lの達成度に関するPl(t)は、時刻tにおける、課題#lに関する課題解決の達成度を示してもよい。課題解決の達成度は、例えば、課題に対処可能なエージェント10が対処を終了したことに対応してもよい。また、具体例4において、タスク#lの進行度に関するQl(t)は、時刻tにおける、課題#lに対する課題の対処の進行度であってもよい。課題の対処の進行度は、例えば、課題に対処可能なエージェント10が対処を行っていることに対応してもよい。
【0169】
また、具体例4において、要請応答処理部130は、上述した実施の形態と同様に、方策πNN,iから出力された行動aiから、エージェント#iに関する要請パラメータdi及び応答パラメータσiを算出する(S330)。そして、要請応答処理部130は、要請パラメータdiを周辺のエージェント10の制御装置100に送信する。このとき、実施の形態1及び実施の形態2の変形例のように、制御装置100は、人間が携帯する端末に、要請パラメータを送信してもよい。これにより、人間が課題に対処してもよい。また、具体例1のように、制御装置100は、自身のエージェント#iとは異なるタイプのエージェント10の制御装置100に、要請パラメータを送信してもよい。
【0170】
また、具体例4において、重要度処理部140は、上述した実施の形態と同様に、自身のエージェント#iに関する周辺のタスク#l(課題#l)の重要度φi
lを更新(算出)する(S340,S342)。重要度処理部140は、上記の式(23)及び式(24)を用いて、自身のエージェント#iに関する各タスク#l(課題#l)の重要度φi
lを更新してもよい。また、具体例4において、タスク選択部150は、上述した実施の形態と同様に、上記の式(26)により、全てのタスク#lのうち、重要度φi
lが最大のタスク#l(課題#l)を、自身のエージェント#iが実行すべきタスク#li
*として選択する(S350)。
【0171】
なお、課題#lを探索したエージェント#iがその課題に対処する機能を有していない場合に、そのエージェント#iの制御装置100において、方策から出力される要請度合いが大きくなることが想定される。そして、そのエージェント#iの制御装置100が、di=1である要請パラメータを、周辺のエージェント10の制御装置100に送信する。そして、周辺のエージェント10のうち、課題に対処可能なエージェント10の制御装置100において、課題の質及び課題のタイプが示された観測情報、及び、上記の要請パラメータが取得されることで、その課題#lの重要度が大きくなることが想定され得る。したがって、課題に対処可能なエージェント10の制御装置100において、その課題#lが選択され、課題に対処可能なエージェント10が、その課題#lの位置に到達する可能性が、高くなる。なお、観測情報に、どの課題の対処が終わっていないかの情報が付加されれば、観測情報を取得したエージェント側で、その課題への応援の要請に対する応答を積極的にすべきかの判断が可能になる。
【0172】
また、具体例4において、タスク実行部160は、選択されたタスク#l(課題#l)を自身のエージェント#iが実行するように、制御を行う(S360)。具体的には、タスク実行部160は、エージェント#iを、タスク#li
*(課題#li
*)の位置に移動させる。タスク実行部160は、自身のエージェント#iが実行可能な課題の対処を実行させるように、自身のエージェント#iを制御する。そして、全てのリクエストされた課題が解決されるように、各エージェント10の制御装置100が、処理を行う。
【0173】
<実施の形態3の具体例5>
具体例5では、本実施の形態にかかる方法を、イベント対応に適用する。具体例5では、ロボット等の機械である複数のエージェント10によって、イベントにおける人流を制御する。具体的には、複数のエージェント10は、誘導すべき人流(群衆)を探索し、留めるべき位置に人流を誘導することで、人流(群衆)を整理する。さらに具体的には、例えば1本のロープを複数のエージェント10が把持して、各エージェント10が所定の位置に移動することによって、ロープにより領域を区分けすることができる。これにより、区分けされた領域に人流を誘導することで、人流を整理する。また、具体例5では、誘導すべき人流を探索したエージェント10の制御装置100は、周辺のエージェント10の制御装置100に、探索された人流に関する情報を送信してもよい。
【0174】
ここで、具体例5では、タスク50は、「人流のまとまり(又は単に「人流」)」である。また、具体例5では、タスク50の目標は、留めるべき位置に人流を誘導することである。なお、多くのエージェント10が人流の整理を行うことで、区分けのバリエーションが増加し、区分けされる領域の大きさが増加する。したがって、エージェント10の数が多いほど、タスク50の目標が達成される可能性が高くなる。
【0175】
具体例5において、観測情報取得部110は、上述した実施の形態と同様に、式(5)で示すような観測情報oiを取得する(S310)。その際に、観測情報取得部110は、自身のエージェント#iとタスク#l(人流#l)との距離を算出する(S302)。具体的には、実施の形態1と同様に、観測情報取得部110は、タスク#lである人流の位置を取得する。観測情報取得部110は、取得されたタスク#l(人流#l)の位置から、自身のエージェント#iと各タスク#l(人流#l)との間の距離を算出する。そして、観測情報取得部110は、自身のエージェント#iと各タスク#l(人流#l)との間の距離から、自身のエージェント#iに近い所定数の近傍タスクを判定し、近傍タスクに関する情報を、観測情報の一部とする。上述した式(2)~(5)の例では、近傍タスクは、自身のエージェント#iに最も近い人流#l1及び2番目に近い人流#l2である。
【0176】
また、具体例5において、式(5)におけるo_(l1)^taskは、近傍タスクである人流#l1の状態と人流#l1のゴール(留めるべき位置)を示してもよい。人流の状態は、人流の位置及び人流の移動速度であってもよい。o_(l2)^taskについても同様である。
【0177】
具体例5において、方策格納部112は、上述した実施の形態と同様に、強化学習によって学習済みの方策π(学習済みモデル)を格納する。方策πは、エージェント10ごとに学習されている。エージェント#iの方策πNN,iは、上述した観測情報oiを入力とし、上記の式(12)で示す行動aiを出力とする。また、実施の形態1と同様に、方策πNN,iは、上記の式(14)で示す報酬ri(t)を最大化するように学習されている。
【0178】
ここで、具体例5において、タスク#lの達成度に関するPl(t)は、時刻tにおける、人流#lのゴール(留めるべき位置)への到達の有無を示してもよい。また、具体例5において、タスク#lの進行度に関するQl(t)は、時刻tにおける、人流#lのゴールへの移動速度であってもよい。
【0179】
また、具体例5において、要請応答処理部130は、上述した実施の形態と同様に、方策πNN,iから出力された行動aiから、エージェント#iに関する要請パラメータdi及び応答パラメータσiを算出する(S330)。そして、要請応答処理部130は、要請パラメータdiを周辺のエージェント10の制御装置100に送信する。このとき、実施の形態1及び実施の形態2の変形例のように、制御装置100は、人間が携帯する端末に、要請パラメータを送信してもよい。これにより、人間が人流の整理を行ってもよい。
【0180】
また、具体例5において、重要度処理部140は、上述した実施の形態と同様に、自身のエージェント#iに関する周辺のタスク#l(人流#l)の重要度φi
lを更新(算出)する(S340,S342)。重要度処理部140は、上記の式(23)及び式(24)を用いて、自身のエージェント#iに関する各タスク#l(人流#l)の重要度φi
lを更新してもよい。また、具体例3において、タスク選択部150は、上述した実施の形態と同様に、上記の式(26)により、全てのタスク#lのうち、重要度φi
lが最大のタスク#l(人流#l)を、自身のエージェント#iが実行すべきタスク#li
*として選択する(S350)。
【0181】
また、具体例5において、タスク実行部160は、選択されたタスク#l(人流の整理)を自身のエージェント#iが実行するように、制御を行う(S360)。具体的には、タスク実行部160は、エージェント#iを、タスク#li
*(人流#li
*)の位置に移動させる。タスク実行部160は、人流の整理(留めるべき位置への人流の誘導)を実行させるように、自身のエージェント#iを制御する。そして、全ての人流について整理(誘導)が実行されるように、各エージェント10の制御装置100が、処理を行う。
【0182】
(変形例)
なお、本実施の形態は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述したフローチャートの各ステップ(処理)の順序は、適宜、変更可能である。また、上述したフローチャートの各ステップ(処理)の1つ以上は、省略可能である。
【0183】
また、上述した実施の形態では、エージェント10及びタスク50は、実空間に存在するとしたが、これに限られない。エージェント10及びタスク50は、例えば、シミュレーションで実現される仮想空間に存在してもよい。
【0184】
上述したプログラムは、コンピュータに読み込まれた場合に、実施形態で説明された1又はそれ以上の機能をコンピュータに行わせるための命令群(又はソフトウェアコード)を含む。プログラムは、非一時的なコンピュータ可読媒体又は実体のある記憶媒体に格納されてもよい。限定ではなく例として、コンピュータ可読媒体又は実体のある記憶媒体は、random-access memory(RAM)、read-only memory(ROM)、フラッシュメモリ、solid-state drive(SSD)又はその他のメモリ技術、CD-ROM、digital versatile disk(DVD)、Blu-ray(登録商標)ディスク又はその他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ又はその他の磁気ストレージデバイスを含む。プログラムは、一時的なコンピュータ可読媒体又は通信媒体上で送信されてもよい。限定ではなく例として、一時的なコンピュータ可読媒体又は通信媒体は、電気的、光学的、音響的、またはその他の形式の伝搬信号を含む。
【符号の説明】
【0185】
1 制御システム
10 エージェント
50 タスク
60 監視装置
100 制御装置
110 観測情報取得部
112 方策格納部
120 行動出力部
130 要請応答処理部
140 重要度処理部
150 タスク選択部
160 タスク実行部