JP4070669B2 - プラン実行装置 - Google Patents
プラン実行装置 Download PDFInfo
- Publication number
- JP4070669B2 JP4070669B2 JP2003188877A JP2003188877A JP4070669B2 JP 4070669 B2 JP4070669 B2 JP 4070669B2 JP 2003188877 A JP2003188877 A JP 2003188877A JP 2003188877 A JP2003188877 A JP 2003188877A JP 4070669 B2 JP4070669 B2 JP 4070669B2
- Authority
- JP
- Japan
- Prior art keywords
- action
- plan
- execution
- information indicating
- exception
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Multi Processors (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
【発明の属する技術分野】
本発明は、プランに基づいて動作するプラン実行装置、エージェントプラットフォーム、プラン修正方法、及びプログラムに関する。
【0002】
【従来の技術】
1または複数の計算機を用いて、設定された目的を実現するために複数の処理単位を必要に応じて実行順を規定した計画を立て、これを計算機に実行させることにより目的とする結果を得るようなシステムがある。ここで、目的はゴール、処理単位はアクション、計画はプランと呼ばれる。プランには、各アクションの順序が全て規定されたものと、各アクションの一部が規定され、その他の部分は順不同でも良いものとがある。前者は全順序プラン、後者は半順序プランと区別して呼ぶこともできるが、全順序プランは、半順序プランのうち、アクションの実行順序についてすべて制約があるものといえ、つまり、全順序プランは、半順序プランに含まれる。以下、全順序プランを含む半順序プランを単にプランと呼ぶ。
【0003】
このようなシステムとしては、例えば、アクションの実体を計算機側に予め備えておき、プランを含むエージェントと呼ばれるソフトウェアが計算機上でプランに基づきアクションを実行されるエージェントシステムなどで用いられている。
【0004】
プランの作成においては、人間がプランを作成する場合と、ゴールを与えることにより、予め格納する知識に基づいて、自動的にプランを生成するプランナーを用いて作成する場合がある。
【0005】
プランナーを備えた計算機上では、プランの実行中に、知識が更新されることがあり、すると実行中のプランは、この知識に対し正当性を失ってしまう。なぜなら、知識の更新により、現在実行中のプランはこれ以上実行しても意味がないものになるかもしれないから、あるいは、よりよいプランができるかもしれないからである。そこで、所定の場合にのみ、知識の更新を許し、更新した知識に基づいてプランナーによって、再度プランを修正、更新する方法が提案されている(例えば、特許文献1)。この場合には、プランを変更すべきである制約として所定の条件を与えることにより、不要な再プランを行なわせないようにしたものであった。
【0006】
【特許文献1】
特開2003−44279公報
【0007】
【発明が解決しようとする課題】
ところで、プランは一般に、最初のアクションの開始から最後のアクションの終了まで、連続して実行することを想定して作成される。 しかしながら、実際にプランを適用するシステムは、緊急時や、例外(システムにおいて決められた制約を超えた)時などを想定し、優先して実行すべきアクションを規定しておくことが望ましい。例えば、コンピュータは、バッテリ切れになりそうな場合にはこれに対処するアクション(例外アクション)を規定しておき、あるプランの実行中にそのような状態となった時に、プランとは関係なく例外アクションを優先実行するような仕組みは、実装上不可欠であろう。但し、このようにすると、例外アクションの実行によって変化した環境によって、プランの次アクションを継続実行できない場合がある。つまり、プランは保証されなくなってしまう。
【0008】
従来の技術で説明したプランナーを計算機側に備えておけば、例外アクションが所定の場合には、実行していたプランを破棄し、再度プランを作成し、作成されたプランに基づき、再度実行できる。
【0009】
しかしながら、プランナーによるプランの再作成(再プランニング)は作成時間が非常に掛かり、また、例えば、多数の計算機上を移動しながらプランを実行していく場合の移動エージェント等の場合には、全ての計算機にプランナーを備えなければならないという問題があり、プランの実行中にプランナによるプランの再生成は有効な解決方法とはいえない。
【0010】
本発明は、上記問題点に鑑みなされたものであり、プランの実行中に、プラント関係のない他のアクションが入ったとしても、その後も、比較的簡易な方法で正しいプランを保証できるようなプラン実行装置、エージェントプラットフォーム、プラン修正方法、及びプログラムを提供することを目的とする。
【0011】
【課題を解決するための手段】
本発明のプラン実行装置は、1又は複数のアクションを示す情報を含むプランを格納するプラン格納手段と、前記プラン格納手段に格納されるプランの先頭のアクションを示す情報を取り出して出力する第1の出力手段と、前記プランと関係の無いアクションを示す情報を一つ以上予め定義しておき、必要に応じて一つ選択して出力する第2の出力手段と、前記第1の出力手段から出力されるアクションを示す情報と、前記第2の出力手段から出力されるアクションを示す情報とを入力し、一つのアクションを示す情報を選択し、選択したアクションを示す情報を含む実行指示を行なう実行指示手段と、前記実行指示手段からの実行指示を受け、その実行指示に含まれるアクションを示す情報により特定されるアクションを実行するアクション実行手段と、前記プランと関係の無いアクションを前記アクション実行手段で実行した際の副作用の有無及び該副作用を取り消すためのアクションに関する知識を記憶するアクション副作用知識格納手段と、前記プランと関係の無いアクションを前記アクション実行手段で実行した際に、当該アクションについて前記アクション副作用知識格納手段に記憶されている知識に基づいて、前記プラン格納手段に記憶されるプランの内容を必要に応じて修正するプラン修正手段とを備えた。
【0012】
また、本発明のエージェントプラットフォームは、1又は複数のアクションを示す情報を含むプランを備えたエージェントを格納するエージェント格納手段と、前記エージェントが備えるプランの先頭のアクションを示す情報を取り出して出力する第1の出力手段と、前記プランと関係の無いアクションを示す情報を一つ以上予め定義しておき、必要に応じて一つ選択して出力する第2の出力手段と、前記第1の出力手段から出力されるアクションを示す情報と、前記第2の出力手段から出力されるアクションを示す情報とを入力し、一つのアクションを示す情報を選択し、選択したアクションを示す情報を含む実行指示を行なう実行指示手段と、前記実行指示手段からの実行指示を受け、その実行指示に含まれるアクションを示す情報により特定されるアクションを実行するアクション実行手段と、前記プランと関係の無いアクションを前記アクション実行手段で実行した際の副作用の有無及び該副作用を取り消すためのアクションに関する知識を記憶するアクション副作用知識格納手段と、前記プランと関係の無いアクションを前記アクション実行手段で実行した際に、当該アクションについて前記アクション副作用知識格納手段に記憶されている知識に基づいて、前記プランプランの内容を必要に応じて修正するプラン修正手段とを備えた。
【0013】
なお、アクション副作用知識格納手段は、エージェントプラットフォームに備えず、エージェント側に備えるようにしても良い。
【0014】
また、本発明は、1又は複数のアクションを示す情報を含むプランを実行するプラン実行装置で、前記プランの実行中に前記プランと関係の無いアクションが実行された場合に前記プランを修正するプラン修正方法であって、前記プランと関係の無いアクションを実行した際の副作用の有無及び該副作用を取り消すためのアクションに関する知識を記憶するアクション副作用知識を前記プラン実行装置内に予め記憶し、前記プランと関係の無いアクションを前記プラン実行装置で実行した際に、前記プラン実行装置によって、当該アクションについての前記アクション副作用知識に基づいて、前記プランの内容を修正するようにした。
【0015】
本発明によれば、プランの実行中に、プラント関係のない他のアクションが入ったとしても、その後も、比較的簡易な方法で正しいプランを保証できるようになる。
【0016】
【発明の実施の形態】
以下、本発明の実施の形態を詳細に説明する。
【0017】
まず、本実施の形態で利用するプランについて説明する。図8は、あるゴールを達成するための、一つの半順序プラン(以下単にプランと呼ぶ)を模式的に示したものである。丸はアクションを、矢印は、アクション間の実行関係(順)を示している。このプランに従って、アクションAから実行を開始し、アクションKの実行を終了すると、ゴールを得ることができる。なお、プランの一部を任意に連続的に切り出したものをサブプランと呼ぶ。
【0018】
このプランは、例えば、アクションAの実行の後にはアクションBを実行することを示し、また、アクションBの実行の後にはアクションC、アクションDの何れを先に実行しても良く、同様にアクションGの実行の後にはアクションH、アクションI、アクションJの何れの順に実施してもよい(順不同)。
また、アクションGは、アクションDおよびアクションFの何れも終了した後でなければ実行できないことを示しており、同様にアクションKは、アクションH、アクションI、アクションJの何れも終了した後でなければ実行できないことを示している。
【0019】
また、アクションBの後にはアクションCとアクションEとの何れを先に行なっても良いが、アクションCの後にアクションDを実行する必要があり、アクションEの後にアクションFを実行する必要がある。アクションCからアクションDまでの実行と、アクションEからアクションFまでの実行は、並行して実行できる場合もあるが、そうでない場合には、一旦何れかのアクション(CまたはE)を実行すると、それに続くアクション、例えば、アクションCの場合にはアクションDを、またアクションEの場合にはアクションFを連続して実行しなければならない。後者の場合、アクションCおよびアクションDをサブプランaとし、アクションEとアクションFをサブプランbとすると、サブプランaまたは、サブプランbの何れかの先頭のアクションを実行すると、そのサブプランの残りを他のサブプランより優先的に実行できるよう保護しなければならない。この優先実行を保護することを「サブプランをガード」すると呼ぶこととする。
【0020】
プランに記述される一つのアクションの実行を完了すると、そのアクションをプランから削除する。このようにして、プランから全てのアクションがなくなったとき、正常にプランの実行が終了し、ゴールを得ることができる。
【0021】
なお、上記のようなプランは実際には、一般に( )や[ ]にある意味的な制約を持たせたデータとして記述される。
【0022】
さて、このようなプランは一般に、最初のアクションの開始から最後のアクションの終了まで、連続して実行することを想定して作成される。なぜなら、プラン内のアクションの実行によって作り出す実行環境ゆえに、次のアクションを実行できるものがあるからである。
【0023】
しかしながら、実際にプランを適用するシステムは、緊急時や、例外(システムにおいて決められた制約を超えた)時などを想定し、優先して実行すべきアクションを規定しておくことが望ましく、本実施の形態においてもこれを採用する。例えば、コンピュータは、バッテリ切れになりそうな場合にはこれに対処するアクション(例外アクション)を規定しておき、あるプランの実行中にそのような状態となった時に、プランとは関係なく例外アクションを優先実行する。但し、このようにすると、例外アクションの実行によって変化した環境によって、プランの次アクションを継続実行できない場合がある。つまり、プランは保証されなくなってしまう。本実施の形態は、これに対処する技術を含めて、プランを保証するものである。
【0024】
図1は、本実施形態のプラン実行システムの全体的な構成例を表すブロック図を示す。
【0025】
プラン実行システムは、プラン格納部11、プラン実行管理部12、アクション実行部13、プラン修正部14、例外アクション副作用知識格納部15、アクション実行指示部16、例外アクション実行管理部17とを備えている。
【0026】
本プラン実行システムは、計算機間を移動しない通常のソフトウェアによっても、計算機間を移動する移動エージェントのようなソフトウェアによっても、半導体チップその他のハードウェアによっても、実現可能である。また、種々のアプリケーションに組み込むことも可能である。
【0027】
また、本プラン実行システムは、単独の計算機に搭載することも可能であるし、ネットワークに接続する装置を内蔵したもしくは外付け可能な計算機または情報処理機能を有する携帯電話端末などに搭載することも可能であるし、ロボットのような装置等に搭載することも可能である。
【0028】
プラン格納部11には、半順序プラン(以下、単にプラン)を格納し、またこのプランの実行時においてガードすべきサブプランがある場合に、そのガードするサブプランの先頭のアクションを識別する情報を格納するガード格納領域を備える。なお、ガード格納領域は先頭のアクションを示す識別する情報としたが、これに限らず、ガードすべきサブプランを示す情報をすべて保持するようにしても良い。このガード格納領域への情報の書き込みについては、プラン修正部14で説明する。
【0029】
プラン管理部12は、プラン格納部11に格納されるプランを参照し、そのプランの先頭のアクションを、次に行なうべきアクションとして、アクション実行指示部16へ送信する。このとき、先頭のアクションが複数ある場合には、プラン格納部11に含まれるガード格納領域に優先すべきサブプランの情報があるか否かを確認する。ここで、プラン管理部12は、ガード格納領域に優先すべきアクションを示す情報があれば、その情報が示すアクションを次に行なうべきアクションとして、アクション実行指示部16へ送信し、一方、ガード格納領域が空であれば、プランの複数の先頭のアクションのいずれかを適宜選択してアクション実行指示部16へ送信する。
【0030】
一方、例外アクション実行管理部17は、前記プランとは独立した複数の例外アクションを規定しておいて、OSなどからの諸状態を受け、それらに基づいて所定の条件を満たしたときに、それに対応する例外アクションを示す情報を、次に行なうアクションとして、アクション実行指示部16へ送信する。
【0031】
例外アクションの例としては、前記したようにバッテリが切れそうな場合や、ユーザによって、接続されていた通信を切断するような指示や、外部のI/Oデバイスを切断するような指示が行なわれた場合のような緊急時の場合や、例えば複数のエージェントが共通のデータベースをアクセスする環境下において、重複するデータにアクセスが行なわれた場合に強制的に排他制御を行なうような例外時の場合などがあるが、これらに限るものではない。
【0032】
アクション実行指示部16は、プラン実行管理部12からのアクションと、必要に応じてくる例外アクション実行管理部17からのアクションとに基づいて、次に実行すべきアクションを決定し、適切なタイミングでアクション実行部13に決定したアクションを送信し、そのアクションの実行を指示する。なお、アクション実行指示部16は、例外アクション実行管理部17から送信される例外アクションをプラン管理部12から送信されるアクションより、必ず優先実行指示するように設計する場合と、例外アクションの内容に応じて、優先実行要否を判断してその結果によって選択的に指示するよう設計する場合とが通常考えられるが、ここでは、前者の方式で行なうこととする。
【0033】
アクション実行部13は、アクション実行指示部16からの指示に従い、指示されたアクションを実行し、そのアクションの実行結果をプラン修正部14に報告する。なお、アクションを実行するためのプログラム(コンポーネント)自身は、アクション実行部13から呼び出し可能な図示しない記憶部に記憶されている。
【0034】
プラン修正部14は、アクションの実行が終了すると、その実行したアクションがプランによるアクションであったか否かを、プラン格納部11に格納されるプランの先頭のアクション、及び、ガード格納領域の情報とに基づいて判断する。もし、実行したアクションがプランによるアクションであったと判断した場合には、プラン格納部11に格納されるプランの先頭のそのアクションを消去する。
【0035】
一方、プラン修正部14は、前記判断の結果、プランによるアクションで無いと判断した時は、実行したアクションは例外アクションであったとわかるので、その実行したアクションに基づいて、例外処理アクション副作用知識格納部15に記憶されるデータを特定し、プラン格納部11に格納されるプランを必要に応じて修正する。
【0036】
また、プラン修正部14は、プラン格納部11に格納されるプランからアクションを消去する際に、修正するサブプランをガードする必要があるか否かを判別し、必要があると判断した場合に、そのサブプランをガード格納領域に格納させる。
【0037】
例外アクション副作用知識格納部15に格納される各データは、例外処理アクションを実行した時にプランに起き得る副作用を修正するためのものであり、予め例外処理アクションと対応付けて多数格納されている。例外アクション副作用知識格納部15に記憶される各データの種類は、以下の3つの何れかの形をしている。
(タイプ1)例外アクションの実行は副作用を持たない。
(タイプ2)例外アクションの実行は副作用を持ち、この副作用を無くすためには、例外アクションの実行を取り消すための取り消しアクションを実行すれば良い。
(タイプ3)例外アクションの実行は副作用を持ち、この副作用を無くすことは不可能である。
【0038】
図2(a)に、例外アクション副作用知識格納部15に例外アクション副作用知識をテーブルの形で格納する場合における該テーブルの一例を示す。この例では、1つのエントリは、対象となる例外アクションを示すデータと、そのタイプ(上記タイプのいずれか)を示すデータと、タイプ2である場合における当該対象となる例外アクションの副作用をなくすためのアクションを示すデータとを含む。なお、仮に、あるアクションに対する例外アクション副作用知識を示すデータが格納されていない場合には、タイプ3として扱う方法、エラーとして異常終了する方法、タイプ1として扱う方法などの種々の方法が可能である。
【0039】
図2(b)に、該テーブルの別の一例を示す。この例では、1つのエントリは、対象となる例外アクションを示すデータと、当該対象となる例外アクションの副作用をなくすためのアクションを示すデータとを含み、但し、後者の副作用を無くすためのアクションの項目に、予め定められた特定の値(例えば0)が記述されている場合には、タイプ1であることを示し、何も記述されていない場合にはタイプ3であることを示す。また、あるアクションに対する例外アクション副作用知識が例外アクション副作用知識格納部15に格納されていない場合には、そのアクションをタイプ3として扱うようにしても良い。
【0040】
図2(c)に、該テーブルの別の一例を示す。この例では、1つのエントリは、対象となる例外処理アクションを示すデータと、当該対象となる例外アクションの副作用をなくすためのアクションを示すデータとを含み、但し、後者の副作用を無くすためのアクションの項目に、予め定められた特定の値(例えば0)が記述されている場合には、タイプ3であることを示し、何も記述されていない場合にはタイプ1であることを示す。また、あるアクションに対する例外アクション副作用知識が例外アクション副作用知識格納部15に格納されていない場合には、そのアクションをタイプ1として扱うようにしても良い。
【0041】
もちろん、上記のほかにも種々の方法が可能である。また、例外アクション副作用知識格納部15にアクション副作用知識をテーブル以外の形で格納するようにしても良い。
【0042】
ここで例外アクションの実行による副作用や、その副作用を無くすためのアクションについて説明する。
【0043】
例外アクションの実行が副作用を持たない場合とは、例外アクションを実行した後に、何の取り消しアクションもせずに、例外アクションを実行しなかったとみなすことができる場合であり、それ以外の場合が、例外アクションの実行が副作用を持つ場合である。
【0044】
なお、ある例外アクションを無くすとは、典型的には、システムの全状態を、ある例外アクションを実行する前の状態に戻す、というものであるが、システムの全状態ではなくそれらのうちの主要な部分を、例外アクションを実行する前の状態に戻せば、例外アクションを実行しなかったものと見なすことができる場合もある。また、例えば、ある例外アクションが複数の実行結果を持ち、それらのうちの一部のみが副作用を持ち、他の部分は副作用を持たないような場合に、当該副作用を与える実行結果の部分のみについて、実行前の状態に戻すようなアクションを実行すれば良い場合なども考えられる。
【0045】
なお、全く同一のアクションであっても、プランの目的、システムの性質や能力、問題解決にあたってのポリシーや戦略、その時々の外的環境などに応じて、異なったタイプになったり、副作用を無くすためのアクションが異なったりすることがあり得る。
【0046】
また、ある例外アクションや、ある例外アクションの副作用を無くすための取り消しアクションは、単一の動作のみ包含するものであってもよいし、複数の動作を包含するものであってもよい。ただし、ある例外アクションが単一の動作のみを包含するものであっても、その副作用を無くすための取り消しアクションが単一の動作のみを包含するものになるとは限らず、複数の動作を包含するものであることもある。逆に、ある例外アクションが複数の動作を包含するものであっても、その副作用を無くすための取り消しアクションが複数の動作を包含するものになるとは限らず、単一の動作のみを包含するものであることもある。
【0047】
また、ある例外アクションや、ある例外アクションの副作用を無くすための取り消しアクションには、条件分岐が用いられてもよい。ただし、ある例外アクションが条件分岐を持っても、その副作用を無くすための取り消しアクションが条件分岐を持つものになるとは限らず、それを条件分岐を持たないものになることもある。逆に、ある例外アクションが条件分岐を持たないものであっても、その副作用を無くすための取り消しアクションが条件分岐を持たないとは限らず、条件分岐を持つものになることもある。
【0048】
また、ある例外アクションとその副作用を無くすための取り消しアクションとの関係は、それぞれのアクションに応じて様々であり、それらが、(1)全く同一のものになる場合もあるし、(2)同一のコマンドで引数のみ異なるものになる場合もあるし、(3)逆関数の関係あるいは概念的に逆の関係になる場合もあるし、(4)それ以外の関係になる場合もある。
【0049】
また、ある例外アクションの副作用を無くすための取り消しアクションと同一のアクションについて、その副作用を無くすための取り消しアクションとして、例外アクションを使用できる場合もあるし、そうでない場合もある。
【0050】
また、ある例外アクションについて、その副作用を無くすための取り消しアクションが存在する場合に、ただ1つ存在することも、複数存在することもある。また、例えば、ランダムに、あるいはその時々状況に適したものなどを、選択して、使用するようにしてもよい。
【0051】
次に、本実施の形態の動作について説明する。
【0052】
図3に全体的な処理手順を示す。まず、プラン実行管理部12は、プラン格納部11に記憶されるプランを参照する(ステップS1)。もし、プランにアクションがなければ、プランの実行は無事に終了したとして、プラン実行成功時の後処理を行い(ステップS9)終了する。
【0053】
一方、ステップS1の結果、プランにアクションがあれば、次に先頭のアクションが複数あるか否かを確認する(ステップS2)。1つしかない場合には、その先頭のアクションを取り出し、アクション実行指示部16へ送信する(ステップS5)。
【0054】
ステップS2の結果、複数のアクションがある場合には、プラン格納部11に含まれるガード格納領域に、次に優先すべきアクションを示す情報があるか否かを確認する(ステップS3)。ここで、ガード格納領域に優先すべきアクションの情報があれば、その情報が示すアクションを次に行なうべきアクションとして、アクション実行指示部16へ送信する(ステップS5)。一方、ガード格納領域に情報がない場合には、複数の先頭のアクションのいずれかを適宜選択して(ステップS4)アクション実行指示部16へ送信する(ステップS5)。
【0055】
一方、例外アクション実行管理部17は、緊急や例外の際に実行される例外アクションがある場合にのみ、そのアクションを示す情報をアクション実行指示部16へ送信する(ステップS6)。なお、このアクションは、フローチャートの便宜上この時点で入力されるよう示したが、どの時点で入力されても良い。
【0056】
次に、アクション実行指示部16は、送信されたアクションから、例外アクションがある場合にはそれを、ない場合にはアクション管理部12からのアクションを次に実行するアクションとして、アクション実行部13に指示する(ステップS7)。
【0057】
アクション実行部13は、指示されたアクションを実行する(ステップS8)。そして、アクション実行部13はアクションを実行した結果を実行したアクションを示す情報とともにプラン修正部14へ報告する(ステップS9)。
【0058】
プラン修正部14は、報告内容を元に、アクションの実行が成功したか否かを確認する(ステップS10)。アクションの実行が失敗した場合には、そのプランを破棄し、プラン実行失敗時の後処理を行い(ステップS11)、終了する。
【0059】
アクションの実行が成功した場合には、次にプラン修正を行なうか否かを確認する(ステップS12)。プランの修正を行なわない場合(=プランが実行されなかった場合)には、ステップS1へ戻り、次のアクションの実行を開始する。一方、プラン修正を行なう場合には、適宜プラン修正を行った(ステップS13)後、ステップS1に戻り、次のアクション実行を開始する。なお、このプラン修正の際に、ガードに関する処理を行なうことがあるが、ここでは省略している。
【0060】
上記全体のフロー中、プラン修正部14の動作(S12−S15)について、図4のフローチャートを用い、より詳細に説明する。
【0061】
アクション実行部13から報告を受けたプラン修正部14は、まず、報告内容がアクションの実行の成功を示すものか否かを確認する(ステップS21)。報告内容の形式は、予め定められた方式を採用すれば、何れであっても良いが、少なくとも実行したアクションを示す情報は含むものとする。
【0062】
もし、アクションの実行が失敗した旨の報告であれば、プラン修正部14は、プラン格納部11に格納されるプランを破棄する(ステップS22)。そして、プラン実行失敗時の後処理を行って(ステップS23)、終了する。プラン実行失敗時の後処理とは、例えば、プラン格納部11に格納されるプランを破棄して、プランの実行を終了する、などである。
【0063】
一方、ステップS21の確認の結果、アクションの実行が成功したと判断した場合に、次に、プラン修正部14は、実行が成功したアクションがプランに基づくアクションであるか否かを確認するために、まず、プラン格納部11に格納されるガード格納領域に情報があるか否かを調べる(ステップS24)。情報がある場合には、次にその情報が示す先頭のアクションと報告内容に含まれる実行アクションとが一致するか否かを調べる(ステップS25)。一致しない場合は、後述することとし、一方、一致する場合には、プランに基づくアクションがされたと見なすことができ、ガード格納領域の情報が示す先頭のアクションを削除し(ステップS26)、また、プラン格納部11に格納されるプランの先頭のアクションのうち、一致するアクションを削除する(ステップS27)。
【0064】
ステップS24において、ガード格納領域に情報が無いと判断された場合に、次にプラン格納部11のプランの先頭のアクションと報告内容に含まれる実行アクションとが一致するか否かを調べる(ステップS28)。一致しない場合には後述することとし、一方、一致する場合には、プランに基づくアクションがされたと見なすことができ、プラン格納部11に格納されるプランの先頭のアクションのうち、一致するアクションを削除する(ステップS29)。このとき、プラン修正部14は、プランを参照し、削除したアクションに続くサブプランをガードする必要があるか否かを判別し(ステップS30)、必要があると判断した場合に、その次に処理すべきアクションからのサブプランを示す情報をガード格納領域に格納させる(ステップS31)。
【0065】
さて、ステップS25およびステップS28において、先頭のアクションと一致しないと判断された場合には、例外アクションがされたとみなすことができる。このとき、まずプラン修正部14は、例外アクション副作用知識格納部15に対し、この実行された例外アクションと同じアクションであるものを検索する(ステップS32)。この検索の結果、例外アクションに対応して登録されている取り消しアクションがあればそれを取り出す(ステップS33)。そして、取り出した取り消しアクションを、プラン修正部14は、プランの先頭(およびガード格納領域に)に追加する(ステップS34)。
【0066】
以上説明した本発明の実施形態を適用した一具体例として移動エージェントシステムを示し、以下に説明する。
【0067】
図5は、ネットワークを介して、2つのエージェントプラットフォームnode1とnode2とが接続されている移動エージェントシステムを示している。
【0068】
各エージェントプラットフォームnode1、node2は、図6のような構成を備えている。すなわち、エージェントプラットフォームは、先に説明した本実施の形態で示したプラン実行管理部12、アクション実行部13、プラン修正部14、アクション実行指示部16、例外アクション実行管理部17を備え、また、エージェント管理部21、及びエージェント格納部22を備える。エージェント格納部22は、ソフトウェアである移動エージェントが、移動してきたときに格納するものである。エージェント管理部21は、移動エージェントが自身のプラットフォームに移動してきたときから、移動していくまでのエージェントを管理するものである。エージェント23は、移動エージェントであり、プラン格納部11と、例外アクション副作用知識格納部15とを備えている。なお、移動エージェントに係る技術については、既知の技術を用いることとし、ここでは説明を省略する。また、例外アクション副作用知識格納部15は、ここでは、エージェント23に備えるものとしたが、エージェント23の外で、エージェントプラットフォームnode1、node2のそれぞれに備えるようにしても良い。
【0069】
このような移動エージェントシステムにおいて、今、node2のエージェント格納部22にはエージェント23が1つ存在し、node1のエージェント格納部22には、エージェント23が存在しない状態であるとする。ここで、エージェント23のプラン格納部11には、図7(a)のプランが格納されているとする。ここで、アクションgoto(node1)とアクションprint(hello1)とからなるサブプランは連続して実行する必要があり、また、アクションgoto(node2)とアクションprint(hello2)とからなるサブプランも、連続して実行する必要があるとする。
【0070】
このような状態において、まず、エージェントプラットフォームnode2のエージェント管理部21は、プラン実行管理部22のプラン格納部11に格納されるプラン図7(a)のプランを参照し、アクションgoto(node1)を取り出したとする。また、このとき緊急に実行すべきアクションが存在しないとすれば、アクション実行管理部16は、アクションgoto(node1)の実行をアクション実行部13に実行するよう指示する。
【0071】
アクション実行部13は、このアクションの実行をして成功すると、エージェント23は、エージェントプラットフォームnode2のエージェント格納部22からエージェントプラットフォームnode1のエージェント格納部22に移動する。そして、移動したエージェント23のエージェントプラットフォームnode1のプラン修正部14は、アクションgoto(node1)を実行済としてエージェント23のプラン格納部11に格納される図7(a)のプランから削除し、図7(b)のプランに修正する。また、プラン修正部14は、プランを参照した結果、アクションgoto(node1)をサブプランから削除したサブプランprint(hello1)をエージェント23のプラン格納部11のガード格納領域へprint(hello1)を示す情報を書き込む。なお、print(hello1)を示す情報は、print(hello1)そのものでも良い。
【0072】
次に、プラットフォームnode1のプラン実行管理部12は、そのエージェント23のプラン格納部11に格納される、図7(b)のプランとガード格納領域の情報とに基づいて、ガード格納領域の情報からアクションprint(hello1)を次に実行するべきものと判断し、次に実行すべきアクションとしてprint(hello1)を、アクション実行指示部16に送信する。
【0073】
ところが、ここで、例えば、エージェントプラットフォームnode1のバッテリーが少なくなってきたため、例外アクション緊急実行管理部17が、エージェントプラットフォームnode2へ移動するアクションgoto(node2)を実行するように、アクション実行指示部16に送信したとする。
【0074】
アクション実行指示部16は、アクション実行指示部16からのアクションprint(hello1)よりも、例外アクション緊急実行管理部17からの例外アクションgoto(node2)を優先し、例外アクションgoto(node2)の実行をアクション実行部13に指示する。
【0075】
アクション実行部13は、この指示されたアクションgoto(node2)を実行し、成功したとする。この実行の成功により、エージェント23は、エージェントプラットフォームnode1のエージェント格納部21からエージェントプラットフォームnode2のエージェント格納部21へ移動する。
【0076】
そして、エージェントプラットフォームnode2のアクション実行部13は、アクションgoto(node2)が成功した旨の報告を、エージェントプラットフォームnode2のプラン修正部14に通知する。
【0077】
エージェントプラットフォームnode2のプラン修正部14は、通知を受けた報告内容に基づいて、移動してきたエージェント23のプラン格納部11のガード格納領域に格納される情報を参照してprint(hello1)を得て、これは、実行が成功したアクションgoto(node2)と一致しないと判断し、実行が成功したアクションgoto(node2)は、例外アクションであることがわかる。
【0078】
そこで、エージェントプラットフォームnode2のプラン修正部14は、エージェントプラットフォームnode2の例外アクション副作用知識格納部15に対し、アクションgoto(node2)で検索し、これに対応する副作用知識を得る。ここでは「goto(node2)の実行は副作用があり、これを取り消すには、もとのエージェントプラットフォーム(node1)に戻るアクションgoto(node1)を実行する必要がある」旨を示す副作用知識を得る。そして、プラン修正部14は、ガード格納領域に示されるサブプランprint(hello1)によって、副作用知識を挿入する位置を確認し、プランの先頭のアクションprint(hello1)の前に、アクションgoto(node2)を取り消しアクションとして追加挿入する。
【0079】
また、ガード格納領域に示されるサブプランprint(hello1)の前にも、アクションgoto(node2)を取り消しアクションとして追加挿入する。以上のように、プラン修正部13は、プランを修正することにより、次に、プランを実行する際に、アクションgoto(node1)から実行されることになり、正当な動作が保証できるようになる。
【0080】
なお、この例では、ガード格納領域にサブプランがある場合についての例を示したが、ガード格納領域にサブプランがない場合には、プランにのみ追加挿入を行なえばよい。
【0081】
以上説明した、本発明の実施の形態およびその具体例によれば、プランの実行中に、プランと関係のない例外アクションが入ったとしても、それに係る副作用を得て、プランを修正することにより、その後のプランの実行を保証できるようになった。
【0082】
なお、以上の各機能は、ソフトウェアとして実現可能である。
【0083】
また、本実施形態は、コンピュータに所定の手段を実行させるための(あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるための)プログラムとして実施することもでき、該プログラムを記録したコンピュータ読取り可能な記録媒体として実施することもできる。
【0084】
なお、この発明の実施の形態で例示した構成は一例であって、それ以外の構成を排除する趣旨のものではなく、例示した構成の一部を他のもので置き換えたり、例示した構成の一部を省いたり、例示した構成に別の機能あるいは要素を付加したり、それらを組み合わせたりすることなどによって得られる別の構成も可能である。また、例示した構成と論理的に等価な別の構成、例示した構成と論理的に等価な部分を含む別の構成、例示した構成の要部と論理的に等価な別の構成なども可能である。また、例示した構成と同一もしくは類似の目的を達成する別の構成、例示した構成と同一もしくは類似の効果を奏する別の構成なども可能である。
【0085】
また、この発明の実施の形態で例示した各種構成部分についての各種バリエーションは、適宜組み合わせて実施することが可能である。
【0086】
また、この発明の実施の形態は、個別装置としての発明、関連を持つ2以上の装置についての発明、システム全体としての発明、個別装置内部の構成部分についての発明、またはそれらに対応する方法の発明等、種々の観点、段階、概念またはカテゴリに係る発明を包含・内在するものである。
【0087】
従って、この発明の実施の形態に開示した内容からは、例示した構成に限定されることなく発明を抽出することができるものである。
【0088】
【発明の効果】
以上説明したように本発明によれば、プランの実行中に、プランと関係のない他のアクションが入ったとしても、その後も、比較的簡易な方法で正しいプランを保証できるようになった。
【図面の簡単な説明】
【図1】本発明の一実施形態のプラン実行システムの機能ブロックを示す図。
【図2】本実施形態に係る例外アクション副作用知識格納部が例外アクション副作用知識をテーブルの形で格納する場合におけるテーブルの例を示す図。
【図3】本実施形態の全体的な処理手順を示すフローチャート。
【図4】プラン修正部14の処理手順を示すフローチャート。
【図5】本実施の形態の一具体例の移動エージェントシステムを示す。
【図6】各エージェントプラットフォームの機能ブロックを示す図。
【図7】実行中のプランの状態を示す図。
【図8】本発明の実施形態のプランを模式的に示した図。
【符号の説明】
11…プラン格納部 12…プラン実行管理部
13…アクション実行部
14…プラン修正部 15…例外アクション副作用知識格納部
16…アクション実行指示部 17…アクション緊急実行管理部
21…エージェント管理部 22…エージェント格納部
23…エージェント
Claims (1)
- 設定された目的を達成するために半順序に従って実行される処理単位としてのアクションを示す情報を含んだプランを格納する第1のプラン格納手段と、
前記プラン格納手段に格納されるプランに、優先すべきアクションの情報があれば前記情報が示すアクションを、前記情報がなければ複数の前記アクションのいずれかを選択し、選択されたアクションを先頭であるアクションとして、前記先頭であるアクションを示す情報を取り出して出力する第1の出力手段と、
前記プランに含まれるアクションの実行順番とは関連のない例外アクションを示す情報を一つ以上予め定義しておき、必要に応じて一つ選択して出力する第2の出力手段と、
前記第1の出力手段から出力されるアクションを示す情報と、前記第2の出力手段から出力されるアクションを示す情報とを入力し、一つのアクションを示す情報を選択し、選択したアクションを示す情報を含む実行指示を行なう実行指示手段と、
前記実行指示手段からの実行指示を受け、その実行指示に含まれるアクションを示す情報により特定されるアクションを実行するアクション実行手段と、
前記プランに含まれるアクションの一部は実行順が順不同の関係にあり、前記プランの一部を任意に連続的に切り出したサブプランを複数有するプランである場合に、前記アクション実行手段が実行したアクションが連続して行うべきサブプランの先頭のアクションで、かつ、該サブプランが前記プランの先頭に出現するときに、前記先頭のアクションを含むサブプランのうち、当該サブプランに含まれる実行すべき先頭のアクションを除いた残りのアクションを示す情報をガード格納領域に格納する第2のプラン格納手段と、
前記実行指示手段が、前記サブプランに含まれる実行順番が先頭のアクションを示す情報を選択し、当該選択したアクションを示す情報を含む実行指示を行い、
前記アクション実行手段が、当該実行指示を受け、当該実行指示に含まれるアクションを示す情報により特定されるアクションを実行したあと、前記実行指示手段が、前記例外アクションを示す情報を選択し、当該選択した例外アクションを示す情報を含む実行指示を行い、
前記アクション実行手段が、当該実行指示を受け、当該実行指示に含まれる例外アクションを示す情報により特定されるアクションを実行した場合、
例外アクション副作用知識格納部に格納されている例外アクション副作用知識に基づいて取り出した取り消しアクションを前記ガード格納領域に格納されたサブプランに含まれる先頭のアクションとして挿入するプラン修正手段と
を具備することを特徴とするプラン実行装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003188877A JP4070669B2 (ja) | 2003-06-30 | 2003-06-30 | プラン実行装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003188877A JP4070669B2 (ja) | 2003-06-30 | 2003-06-30 | プラン実行装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005025407A JP2005025407A (ja) | 2005-01-27 |
JP4070669B2 true JP4070669B2 (ja) | 2008-04-02 |
Family
ID=34187273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003188877A Expired - Fee Related JP4070669B2 (ja) | 2003-06-30 | 2003-06-30 | プラン実行装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4070669B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4357442B2 (ja) | 2005-03-23 | 2009-11-04 | 株式会社東芝 | プラン実行装置、プラン実行方法およびプログラム |
KR100745592B1 (ko) * | 2005-09-06 | 2007-08-14 | (주) 금성풍력 | 위치 조정 기능을 갖는 대형 송풍기 |
-
2003
- 2003-06-30 JP JP2003188877A patent/JP4070669B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2005025407A (ja) | 2005-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101054994B1 (ko) | 영속성 관리 방법, 장치 및 컴퓨터 판독 가능 매체 | |
JP5090661B2 (ja) | ソフトウェア動作モデル化装置、ソフトウェア動作監視装置、ソフトウェア動作モデル化方法及びソフトウェア動作監視方法 | |
JP4728565B2 (ja) | 障害復旧装置および障害復旧方法ならびにプログラム | |
KR102015859B1 (ko) | Rfid 태그 및 rfid 태그의 키 갱신 방법 | |
CN110569085A (zh) | 配置文件加载方法及系统 | |
CN110704121A (zh) | 一种操作重试的方法、系统及计算机装置 | |
JP2005242404A (ja) | コンピュータシステムの系切替方法 | |
JP4070669B2 (ja) | プラン実行装置 | |
JPH04182858A (ja) | 共有メモリ管理方式 | |
CN101414329A (zh) | 删除正在运行中的病毒的方法 | |
CN110297822A (zh) | 面向区块链的密钥管理方法、装置、设备及存储介质 | |
KR102584292B1 (ko) | 조정 가능한 수의 트랜잭션 블록 및 복수의 중간 블록을 포함하는 블록을 가진 블록체인의 생성 | |
US9479478B2 (en) | Method for operating a communication module, and communication module | |
EP2966572B1 (en) | Database device, program, and data processing method | |
CN102436567A (zh) | 信息处理装置及密码诊断方法 | |
US20160259579A1 (en) | Storage control apparatus and storage control method | |
US20060212397A1 (en) | Authentication device, mobile terminal, and authentication method | |
CN112055849B (zh) | 排他控制系统以及排他控制方法 | |
JP2008158634A (ja) | 情報処理装置、ソフトウェアトレースデータ記録方法及びソフトウェアトレースデータ記録プログラム | |
US20060218555A1 (en) | Plan executing apparatus, method of plan execution, and computer program product therefor | |
CN100583095C (zh) | 访问专有文件系统的方法 | |
EP4109288A1 (en) | Data migration method and apparatus for database | |
CN117221014B (zh) | 一种网络节点操作系统配置数据内生安全防护方法 | |
JP4998455B2 (ja) | 障害復旧装置および障害復旧方法ならびにプログラム | |
JP4738132B2 (ja) | 二重化システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20050415 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20050606 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070724 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070914 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071012 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071210 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080111 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080115 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110125 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |