(57)【要約】【課題】再プラニングせずに動的な環境に対応することを可能にしたプラン実行システムを提供すること。【解決手段】格納部１１は全順序プランを複数記憶し、格納部１５はアクションの実行による副作用の有無と副作用を取り消すアクションに関する知識を記憶する。管理部１２は、格納部１１から全順序プランを１つ選択し、その先頭アクションをアクション実行部１４に実行させる。修正部１４は、アクション実行が成功したか否か及び該アクションについての知識に基づき、格納部１１の全順序プランのうち該当するものにつき、その内容の修正又はその全順序プラン自体の格納部１１からの削除を行う。これらを繰り返し実行し、格納部１１に記憶されていた全順序プランのいずれかが空プランになればプランの成功となり、複数プラン格納部１１から全順序プランがすべて削除されればプランの失敗となる。【選択図】　　図１
2004005368.tif 000002
【特許請求の範囲】
【請求項１】
１又は複数のアクションを含む全順序プランを複数記憶するプラン記憶手段と、
前記プラン記憶手段に記憶されている全順序プランのうちから選択された１つの全順序プランの先頭のアクションを実行するための実行手段と、
前記選択された１つの全順序プランの先頭のアクションの前記実行手段による実行が成功したか否かに基づいて、前記プラン記憶手段に記憶されている前記全順序プランを修正する修正手段とを備えたことを特徴とするプラン実行システム。
【請求項２】
前記修正手段は、前記アクションの実行が成功した場合に、該実行に成功したアクションと同一のアクションを先頭に持つ全順序プランについては、その全順序プランの先頭のアクションを削除することを特徴とする請求項１に記載のプラン実行システム。
【請求項３】
前記修正手段は、前記アクションの実行が失敗した場合には、該実行に失敗したアクションと同一のアクションを先頭に持つ全順序プランについては、その全順序プラン自体を前記プラン記憶手段から削除し、該実行に失敗したアクションと異なるアクションを先頭に持つ全順序プランについては、その全順序プランを修正しないことを特徴とする請求項１に記載のプラン実行システム。
【請求項４】
前記アクションの実行による副作用の有無及び該副作用を取り消すためのアクションに関する知識を記憶する知識記憶手段を更に備え、
前記修正手段は、前記プラン記憶手段に記憶されている前記全順序プランを修正するにあたっては、前記選択された１つの全順序プランの先頭のアクションについて前記知識記憶手段に記憶されている知識にも基づくことを特徴とする請求項１ないし４のいずれか１項に記載のプラン実行システム。
【請求項５】
前記修正手段は、前記アクションの実行が成功した場合に、該実行に成功したアクションと異なるアクションを先頭に持つ全順序プランについては、前記知識により該アクションが前記副作用を持たないものであることが分かったときは、その全順序プランを修正しないことを特徴とする請求項４に記載のプラン実行システム。
【請求項６】
前記修正手段は、前記アクションの実行が成功した場合に、該実行に成功したアクションと異なるアクションを先頭に持つ全順序プランについては、前記知識により該アクションが前記副作用を持つものであり且つ該副作用を取り消すアクションが存在することが分かったときは、その全順序プランの先頭のアクションの前に該副作用を取り消すアクションを追加することを特徴とする請求項４に記載のプラン実行システム。
【請求項７】
前記修正手段は、前記アクションの実行が成功した場合に、該実行に成功したアクションと異なるアクションを先頭に持つ全順序プランについては、前記知識により該アクションが前記副作用を持つものであり且つ該副作用を取り消すアクションが存在しないことが分かったときは、その全順序プラン自体を前記プラン記憶手段から削除することを特徴とする請求項４に記載のプラン実行システム。
【請求項８】
前記プラン記憶手段に複数の全順序プランが記憶されている場合に、該複数の全順序プランのうちから、所定の選択基準に従って、１つの全順序プランを選択し、該選択した全順序プランの先頭のアクションの実行を前記実行手段に依頼する管理手段を更に備えたことを特徴とする請求項１ないし７のいずれか１項に記載のプラン実行システム。
【請求項９】
前記所定の選択基準は、最も少ない個数のアクションを含む全順序プランから優先して選択するものであることを特徴とする請求項８に記載のプラン実行システム。
【請求項１０】
前記所定の選択基準は、前回に選択された全順序プランが前記プラン記憶手段に記憶されている場合には、その全順序プランを続けて選択する基準を含むものであることを特徴とする請求項８に記載のプラン実行システム。
【請求項１１】
前記プラン記憶手段に複数の全順序プランが記憶されている場合に、該複数の全順序プランのうちから、所定の選択基準に従って、１つの全順序プランを選択し、該選択した全順序プランの先頭のアクションの実行を前記実行手段に依頼する管理手段を更に備え、
前記所定の選択基準は、まず、先頭のアクションが前記副作用を持たないアクションである全順序プランが記憶されていれば、そのような全順序プランから優先して選択し、そのような全順序プランが記憶されていなければ、先頭のアクションが前記副作用を持ち且つ該副作用を取り消すためのアクションが存在する全順序プランから優先して選択するものであることを特徴とする請求項４ないし７のいずれか１項に記載のプラン実行システム。
【請求項１２】
前記管理手段は、前記プラン記憶手段に記憶されていた全順序プランのいずれかが空の全順序プランになった場合には、プランの実行に成功したと判断することを特徴とする請求項１ないし１１のいずれか１項に記載のプラン実行システム。
【請求項１３】
前記管理手段は、前記プラン記憶手段に記憶されていた全順序プランがすべて削除された場合には、プランの実行に失敗したと判断することを特徴とする請求項１ないし１２のいずれか１項に記載のプラン実行システム。
【請求項１４】
１又は複数のアクションを含む全順序プランを複数記憶するプラン記憶手段を備えたプラン実行システムにおけるプラン実行方法であって、
前記プラン記憶手段に記憶されている全順序プランのうちから１つを選択する第１のステップと、
選択された前記全順序プランの先頭のアクションを実行する第２のステップと、
前記選択された１つの全順序プランの先頭のアクションの前記実行手段による実行が成功したか否かに基づいて、前記プラン記憶手段に記憶されている前記全順序プランを修正する第３のステップとを有し、
前記第１のステップから前記第３のステップを繰り返し実行することを特徴とするプラン実行方法。
【請求項１５】
１又は複数のアクションを含む全順序プランを複数記憶するプラン記憶手段と、前記アクションの実行による副作用の有無及び該副作用を取り消すためのアクションに関する知識を記憶する知識記憶手段とを備えたプラン実行システムにおけるプラン実行方法であって、
前記プラン記憶手段に記憶されている全順序プランのうちから１つを選択する第１のステップと、
選択された前記全順序プランの先頭のアクションを実行する第２のステップと、
前記全順序プランの先頭のアクションの実行が成功したか否か、及び当該アクションについて前記知識記憶手段に記憶されている知識に基づいて、前記プラン記憶手段に記憶されている前記全順序プランを修正する第３のステップとを有し、
前記第１のステップから前記第３のステップを繰り返し実行することを特徴とするプラン実行方法。
【請求項１６】
前記第３のステップは、前記アクションの実行が成功した場合には、
前記実行に成功したアクションと同一のアクションを先頭に持つ全順序プランについては、その全順序プランの先頭のアクションを削除し、
前記実行に成功したアクションと異なるアクションを先頭に持つ全順序プランについては、前記知識により該アクションが前記副作用を持たないものであることが分かったときは、その全順序プランを修正せず、前記知識により該アクションが前記副作用を持つものであり且つ該副作用を取り消すアクションが存在することが分かったときは、その全順序プランの先頭のアクションの前に該副作用を取り消すアクションを追加し、前記知識により該アクションが前記副作用を持つものであり且つ該副作用を取り消すアクションが存在しないことが分かったときは、その全順序プラン自体を前記プラン記憶手段から削除することを特徴とする請求項１５に記載のプラン実行方法。
【請求項１７】
前記第３のステップは、前記アクションの実行が失敗した場合には、
前記実行に失敗したアクションと同一のアクションを先頭に持つ全順序プランについては、その全順序プラン自体を前記プラン記憶手段から削除し、
前記実行に失敗したアクションと異なるアクションを先頭に持つ全順序プランについては、その全順序プランを修正しないことを特徴とする請求項１４または１５に記載のプラン実行方法。
【請求項１８】
前記プラン記憶手段に記憶されていた全順序プランのいずれかが空の全順序プランになった場合には、プランの実行に成功したと判断し、前記記憶手段に記憶されていた全順序プランがすべて削除された場合には、プランの実行に失敗したと判断することを特徴とする請求項１４ないし１７のいずれか１項に記載のプラン実行方法。
【請求項１９】
プランを実行するプラン実行システムとしてコンピュータを機能させるためのプログラムであって、
１又は複数のアクションを含む全順序プランを複数記憶するプラン記憶機能と、
前記プラン記憶機能に記憶されている全順序プランのうちから選択された１つの全順序プランの先頭のアクションを実行するための実行機能と、
前記選択された１つの全順序プランの先頭のアクションの前記実行機能による実行が成功したか否かに基づいて、前記プラン記憶機能に記憶されている前記全順序プランを修正する修正機能とをコンピュータに実現させるためのプログラム。
【請求項２０】
プランを実行するプラン実行システムとしてコンピュータを機能させるためのプログラムであって、
１又は複数のアクションを含む全順序プランを複数記憶するプラン記憶機能と、
前記プラン記憶機能に記憶されている全順序プランのうちから選択された１つの全順序プランの先頭のアクションを実行するための実行機能と、
前記アクションの実行による副作用の有無及び該副作用を取り消すためのアクションに関する知識を記憶する知識記憶機能と、
前記選択された１つの全順序プランの先頭のアクションの前記実行機能による実行が成功したか否か、及び当該アクションについて前記知識記憶機能に記憶されている知識に基づいて、前記プラン記憶機能に記憶されている前記全順序プランを修正する修正機能とをコンピュータに実現させるためのプログラム。
【請求項２１】
１又は複数のアクションを含む半順序プランを複数記憶するプラン記憶手段と、
前記プラン記憶手段に記憶されている半順序プランのうちから選択された１つの半順序プランに従って選択された１つのアクションを実行するための実行手段と、
前記選択された１つの半順序プランに従って選択されたアクションの前記実行手段による実行が成功したか否かに基づいて、前記プラン記憶手段に記憶されている前記半順序プランを修正する修正手段とを備えたことを特徴とするプラン実行システム。
【請求項２２】
前記修正手段は、前記アクションの実行が成功した場合に、先頭の要素から最後尾の要素までの各要素をどのような順番で実行してもよいことが規定されている半順序プランであって、該実行に成功したアクションと同一であるアクションを要素として持つ半順序プランについては、その半順序プランから当該アクションを削除することを特徴とする請求項２１に記載のプラン実行システム。
【請求項２３】
前記修正手段は、前記アクションの実行が成功した場合に、先頭の要素から最後尾の要素までの各要素をどのような順番で実行してもよいことが規定されている半順序プランであって、該実行に成功したアクションと同一であるアクションを要素として持たず且つ該実行に成功したアクションを消費可能なサブプランを要素として持つ半順序プランについては、その半順序プランの当該サブプランから当該実行に成功したアクションと同一の部分を取り除くための修正を施すことを特徴とする請求項２１に記載のプラン実行システム。
【請求項２４】
前記修正手段は、前記アクションの実行が成功した場合に、先頭の要素から順番に実行していくことが規定されている半順序プランであって、該実行に成功したアクションと同一のアクションを先頭の要素として持つ半順序プランについては、その半順序プランから当該先頭のアクションを削除することを特徴とする請求項２１に記載のプラン実行システム。
【請求項２５】
前記修正手段は、前記アクションの実行が成功した場合に、先頭の要素から順番に実行していくことが規定されている半順序プランであって、該実行に成功したアクションと同一のアクションを先頭の要素として持たず且つ該実行に成功したアクションを消費可能なサブプランを先頭の要素として持つ半順序プランについては、その半順序プランの当該先頭のサブプランから当該実行に成功したアクションと同一の部分を取り除くための修正を施すことを特徴とする請求項２１に記載のプラン実行システム。
【請求項２６】
前記修正手段は、前記アクションの実行が失敗した場合に、先頭の要素から最後尾の要素までの各要素をどのような順番で実行してもよいことが規定されている半順序プランであって、該実行に成功したアクションと同一であるアクションを要素として持つ半順序プラン若しくは該実行に成功したアクションと同一であるアクションを要素として持たず且つ該実行に成功したアクションを消費可能なサブプランを要素として持つ半順序プラン、又は先頭の要素から順番に実行していくことが規定されている半順序プランであって、該実行に成功したアクションと同一のアクションを先頭の要素として持つ半順序プラン若しくは該実行に成功したアクションと同一のアクションを先頭の要素として持たず且つ該実行に成功したアクションを消費可能なサブプランを先頭の要素として持つ半順序プランについては、その半順序プラン自体を前記プラン記憶手段から削除し、それらに該当しない半順序プランについては、その半順序プランを修正しないことを特徴とする請求項２１に記載のプラン実行システム。
【請求項２７】
前記アクションの実行による副作用の有無及び該副作用を取り消すためのアクションに関する知識を記憶する知識記憶手段を更に備え、
前記修正手段は、前記プラン記憶手段に記憶されている前記全順序プランを修正するにあたっては、前記選択された１つの半順序プランに従って選択されたアクションについて前記知識記憶手段に記憶されている知識にも基づくことを特徴とする請求項２１ないし２７のいずれか１項に記載のプラン実行システム。
【請求項２８】
前記修正手段は、前記アクションの実行が成功した場合に、先頭の要素から最後尾の要素までの各要素をどのような順番で実行してもよいことが規定されている半順序プランであって、該実行に成功したアクションと同一であるアクションを要素として持たず且つ該実行に成功したアクションを消費可能なサブプランを要素として持たない半順序プランについては、前記知識により該アクションが前記副作用を持たないものであることが分かったときは、その半順序プランを修正しないことを特徴とする請求項２７に記載のプラン実行システム。
【請求項２９】
前記修正手段は、前記アクションの実行が成功した場合に、先頭の要素から最後尾の要素までの各要素をどのような順番で実行してもよいことが規定されている半順序プランであって、該実行に成功したアクションと同一であるアクションを要素として持たず且つ該実行に成功したアクションを消費可能なサブプランを要素として持たない半順序プランについては、前記知識により該アクションが前記副作用を持つものであり且つ該副作用を取り消すアクションが存在しないことが分かったときは、その半順序プラン自体を前記プラン記憶手段から削除することを特徴とする請求項２７に記載のプラン実行システム。
【請求項３０】
前記修正手段は、前記アクションの実行が成功した場合に、先頭の要素から最後尾の要素までの各要素をどのような順番で実行してもよいことが規定されている半順序プランであって、該実行に成功したアクションと同一であるアクションを要素として持たず且つ該実行に成功したアクションを消費可能なサブプランを要素として持たない半順序プランについては、前記知識により該アクションが前記副作用を持つものであり且つ該副作用を取り消すアクションが存在し且つ該副作用を取り消すアクションの実行順序を最優先にすべきことが分かったときは、該副作用を取り消すアクションを先頭の要素とし、修正前の当該半順序プラン全体を後続の要素として、当該２つの要素を先頭の要素から順番に実行していくことが規定されている半順序プランを作成し、これを修正後の半順序プランとすることを特徴とする請求項２７に記載のプラン実行システム。
【請求項３１】
前記修正手段は、前記アクションの実行が成功した場合に、先頭の要素から最後尾の要素までの各要素をどのような順番で実行してもよいことが規定されている半順序プランであって、該実行に成功したアクションと同一であるアクションを要素として持たず且つ該実行に成功したアクションを消費可能なサブプランを要素として持たない半順序プランについては、前記知識により該アクションが前記副作用を持つものであり且つ該副作用を取り消すアクションが存在し且つ該副作用を取り消すアクションの実行順序は任意であることが分かったときは、当該先頭の要素から最後尾の要素までの各要素をどのような順番で実行してもよいことが規定されている半順序プランの一要素として、該副作用を取り消すアクションを追加することを特徴とする請求項２７に記載のプラン実行システム。
【請求項３２】
前記修正手段は、前記アクションの実行が成功した場合に、先頭の要素から順番に実行していくことが規定されている半順序プランであって、該実行に成功したアクションと同一のアクションを先頭の要素として持たず且つ該実行に成功したアクションを消費可能なサブプランを先頭の要素として持たない半順序プランについては、前記知識により該アクションが前記副作用を持たないものであることが分かったときは、その半順序プランを修正しないことを特徴とする請求項２７に記載のプラン実行システム。
【請求項３３】
前記修正手段は、前記アクションの実行が成功した場合に、先頭の要素から順番に実行していくことが規定されている半順序プランであって、該実行に成功したアクションと同一のアクションを先頭の要素として持たず且つ該実行に成功したアクションを消費可能なサブプランを先頭の要素として持たない半順序プランについては、前記知識により該アクションが前記副作用を持つものであり且つ該副作用を取り消すアクションが存在しないことが分かったときは、その半順序プラン自体を前記プラン記憶手段から削除することを特徴とする請求項２７に記載のプラン実行システム。
【請求項３４】
前記修正手段は、前記アクションの実行が成功した場合に、先頭の要素から順番に実行していくことが規定されている半順序プランであって、該実行に成功したアクションと同一のアクションを先頭の要素として持たず且つ該実行に成功したアクションを消費可能なサブプランを先頭の要素として持たない半順序プランについては、前記知識により該アクションが前記副作用を持つものであり且つ該副作用を取り消すアクションが存在し且つ該副作用を取り消すアクションの実行順序を最優先にすべきことが分かったときは、当該先頭の要素から順番に実行していくことが規定されている半順序プランの先頭の要素の前に、該副作用を取り消すアクションを新たな先頭の要素として追加することを特徴とする請求項２７に記載のプラン実行システム。
【請求項３５】
前記修正手段は、前記アクションの実行が成功した場合に、先頭の要素から順番に実行していくことが規定されている半順序プランであって、該実行に成功したアクションと同一のアクションを先頭の要素として持たず且つ該実行に成功したアクションを消費可能なサブプランを先頭の要素として持たない半順序プランについては、前記知識により該アクションが前記副作用を持つものであり且つ該副作用を取り消すアクションが存在し且つ該副作用を取り消すアクションの実行順序は任意であることが分かったときは、該副作用を取り消すアクションを一方の要素とし、修正前の当該半順序プラン全体を他方の要素として、どのような順番で当該２つの要素を実行してもよいことが規定されている半順序プランを作成し、これを修正後の半順序プランとすることを特徴とする請求項２７に記載のプラン実行システム。
【請求項３６】
前記プラン記憶手段に複数の半順序プランが記憶されている場合に、該複数の半順序プランのうちから、所定の選択基準に従って、１つの半順序プランを選択し、該選択した全順序プランに従って選択した１つのアクションの実行を前記実行手段に依頼する管理手段を更に備えたことを特徴とする請求項２１ないし３５のいずれか１項に記載のプラン実行システム。
【請求項３７】
前記所定の選択基準は、最も少ない個数のアクションを含む半順序プランから優先して選択するものであることを特徴とする請求項３６に記載のプラン実行システム。
【請求項３８】
前記所定の選択基準は、前回に選択された半順序プランが前記プラン記憶手段に記憶されている場合には、その半順序プランを続けて選択する基準を含むものであることを特徴とする請求項３６に記載のプラン実行システム。
【請求項３９】
前記所定の選択基準は、各アクションに成功確率に関する情報があるときに、全てのアクションが成功する確率が高い半順序プランから優先して選択するものであることを特徴とする請求項３６に記載のプラン実行システム。
【請求項４０】
前記所定の選択基準は、各アクションにコストに関する情報があるときに、全てのアクションの総コストが最も低い半順序プランから優先して選択するものであることを特徴とする請求項３６に記載のプラン実行システム。
【請求項４１】
前記プラン記憶手段に複数の半順序プランが記憶されている場合に、該複数の半順序プランのうちから、所定の選択基準に従って、１つの半順序プランを選択し、該選択した全順序プランに従って選択した１つのアクションの実行を前記実行手段に依頼する管理手段を更に備え、
前記所定の選択基準は、まず、前記副作用を持つアクションを含まない半順序プランが記憶されていれば、そのような半順序プランから優先して選択し、そのような半順序プランが記憶されていなければ、前記副作用を持ち且つ該副作用を取り消すためのアクションが存在しないアクションの数が少ない半順序プランから優先して選択するものであることを特徴とする請求項２５ないし３５のいずれか１項に記載のプラン実行システム。
【請求項４２】
前記管理手段は、前記プラン記憶手段に記憶されていた半順序プランのいずれかが空の半順序プランになった場合には、プランの実行に成功したと判断することを特徴とする請求項３６ないし４１のいずれか１項に記載のプラン実行システム。
【請求項４３】
前記管理手段は、前記プラン記憶手段に記憶されていた半順序プランがすべて削除された場合には、プランの実行に失敗したと判断することを特徴とする請求項３６ないし４１のいずれか１項に記載のプラン実行システム。
【請求項４４】
前記プラン記憶手段に複数の半順序プランが記憶されている場合に、該複数の半順序プランのうちから、所定の選択基準に従って、１つの半順序プランを選択し、該選択した半順序プランに従って複数のアクションの実行を１つずつ順番に又は部分的に並列に前記実行手段に依頼する管理手段を更に備え、
該選択した半順序プランを実行している間は該複数の半順序プランの修正は行わずに、その間に実行されたアクションを実行された順番とともにアクション実行記録記憶手段に記憶し、
該選択した半順序プランの実行を中止してそれ以外の別の半順序プランを選択するときに、前記アクション実行記録記憶手段に記憶されているアクションの実行記録に基づいて、該複数の半順序プランの修正を行うことを特徴とする請求項２１または２７に記載のプラン実行システム。
【請求項４５】
１又は複数のアクションを含む半順序プランを複数記憶するプラン記憶手段を備えたプラン実行システムにおけるプラン実行方法であって、
前記プラン記憶手段に記憶されている半順序プランのうちから１つを選択する第１のステップと、
選択された前記半順序プランに従って１つのアクションを選択する第２のステップと、
選択された前記アクションを実行する第３のステップと、
前記アクションの実行が成功したか否かに基づいて、前記プラン記憶手段に記憶されている前記半順序プランを修正する第４のステップとを有し、
前記第１のステップから前記第４のステップを繰り返し実行することを特徴とするプラン実行方法。
【請求項４６】
１又は複数のアクションを含む半順序プランを複数記憶するプラン記憶手段と、前記アクションの実行による副作用の有無及び該副作用を取り消すためのアクションに関する知識を記憶する知識記憶手段とを備えたプラン実行システムにおけるプラン実行方法であって、
前記プラン記憶手段に記憶されている半順序プランのうちから１つを選択する第１のステップと、
選択された前記半順序プランに従って１つのアクションを選択する第２のステップと、
選択された前記アクションを実行する第３のステップと、
前記アクションの実行が成功したか否か、及び当該アクションについて前記知識記憶手段に記憶されている知識に基づいて、前記半順序プランを修正する第４のステップとを有し、
前記第１のステップから前記第４のステップを繰り返し実行することを特徴とするプラン実行方法。
【請求項４７】
前記プラン記憶手段に記憶されていた半順序プランのいずれかが空の半順序プランになった場合には、プランの実行に成功したと判断し、前記記憶手段に記憶されていた半順序プランがすべて削除された場合には、プランの実行に失敗したと判断することを特徴とする請求項４３または４４に記載のプラン実行方法。
【請求項４８】
プランを実行するプラン実行システムとしてコンピュータを機能させるためのプログラムであって、
１又は複数のアクションを含む半順序プランを複数記憶するプラン記憶機能と、
前記プラン記憶機能に記憶されている半順序プランのうちから選択された１つの半順序プランに従って選択された１つのアクションを実行するための実行機能と、
前記選択された１つの半順序プランに従って選択されたアクションの前記実行機能による実行が成功したか否かに基づいて、前記プラン記憶機能に記憶されている前記半順序プランを修正する修正機能とをコンピュータに実現させるためのプログラム。
【請求項４９】
プランを実行するプラン実行システムとしてコンピュータを機能させるためのプログラムであって、
１又は複数のアクションを含む半順序プランを複数記憶するプラン記憶機能と、
前記プラン記憶機能に記憶されている半順序プランのうちから選択された１つの半順序プランに従って選択された１つのアクションを実行するための実行機能と、
前記アクションの実行による副作用の有無及び該副作用を取り消すためのアクションに関する知識を記憶する知識記憶機能と、
前記選択された１つの半順序プランに従って選択されたアクションの前記実行機能による実行が成功したか否か、及び当該アクションについて前記知識記憶機能に記憶されている知識に基づいて、前記プラン記憶機能に記憶されている前記半順序プランを修正する修正機能とをコンピュータに実現させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のプランを利用するプラン実行システム、プラン実行方法及びプログラムに関する。
【０００２】
【従来の技術】
一般に、プランの実行はうまくいくとは限らない。プランの実行が不可能になったときの従来の対応方法としては、例えば、再プラニングが挙げられる。
【０００３】
しかしながら、再プラニングには、プラナ−が必要であり、また、プラン作成のための知識が必要となる。従って、プラナ−やプラン作成用知識がないときには、再プラニングは不可能である。
【０００４】
また、再プラニングでは、実行済みのアクションが考慮されているとは限らない。これらの実行済みのアクションが、再プラニングによって作成された新プランの実行を妨害する可能性がある。このような実行済みアクションの副作用を取り除くには、実行済みのアクションを考慮したプラナ−を用意しなければならない。
【０００５】
なお、プランを修正する技術については、例えば、下記特許文献１に開示されている。
【０００６】
【特許文献１】
特開２０００−６６８９５公報
【０００７】
【発明が解決しようとする課題】
従来、プランの実行に失敗することを想定した効果的なプラン実行技術が存在しなかった。
【０００８】
本発明は、上記事情を考慮してなされたもので、再プラニングせずに動的な環境に対応することを可能にしたプラン実行システム、プラン実行方法及びプログラムを提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明に係るプラン実行システムは、１又は複数のアクションを含む全順序プランを複数記憶するプラン記憶手段と、前記プラン記憶手段に記憶されている全順序プランのうちから選択された１つの全順序プランの先頭のアクションを実行するための実行手段と、前記選択された１つの全順序プランの先頭のアクションの前記実行手段による実行が成功したか否かに基づいて、前記プラン記憶手段に記憶されている前記全順序プランを修正する修正手段とを備えたことを特徴とする。
【００１０】
好ましくは、前記アクションの実行による副作用の有無及び該副作用を取り消すためのアクションに関する知識を記憶する知識記憶手段を更に備え、前記修正手段は、前記プラン記憶手段に記憶されている前記全順序プランを修正するにあたっては、前記選択された１つの全順序プランの先頭のアクションについて前記知識記憶手段に記憶されている知識にも基づくようにしてもよい。
【００１１】
本発明は、１又は複数のアクションを含む全順序プランを複数記憶するプラン記憶手段を備えたプラン実行システムにおけるプラン実行方法であって、前記プラン記憶手段に記憶されている全順序プランのうちから１つを選択する第１のステップと、選択された前記全順序プランの先頭のアクションを実行する第２のステップと、前記選択された１つの全順序プランの先頭のアクションの前記実行手段による実行が成功したか否かに基づいて、前記プラン記憶手段に記憶されている前記全順序プランを修正する第３のステップとを有し、前記第１のステップから前記第３のステップを繰り返し実行することを特徴とする。
【００１２】
また、本発明は、１又は複数のアクションを含む全順序プランを複数記憶するプラン記憶手段と、前記アクションの実行による副作用の有無及び該副作用を取り消すためのアクションに関する知識を記憶する知識記憶手段とを備えたプラン実行システムにおけるプラン実行方法であって、前記プラン記憶手段に記憶されている全順序プランのうちから１つを選択する第１のステップと、選択された前記全順序プランの先頭のアクションを実行する第２のステップと、前記全順序プランの先頭のアクションの実行が成功したか否か、及び当該アクションについて前記知識記憶手段に記憶されている知識に基づいて、前記プラン記憶手段に記憶されている前記全順序プランを修正する第３のステップとを有し、前記第１のステップから前記第３のステップを繰り返し実行することを特徴とする。
【００１３】
また、本発明は、プランを実行するプラン実行システムとしてコンピュータを機能させるためのプログラムであって、１又は複数のアクションを含む全順序プランを複数記憶するプラン記憶機能と、前記プラン記憶機能に記憶されている全順序プランのうちから選択された１つの全順序プランの先頭のアクションを実行するための実行機能と、前記選択された１つの全順序プランの先頭のアクションの前記実行機能による実行が成功したか否かに基づいて、前記プラン記憶機能に記憶されている前記全順序プランを修正する修正機能とをコンピュータに実現させるためのプログラムである。
【００１４】
また、本発明は、プランを実行するプラン実行システムとしてコンピュータを機能させるためのプログラムであって、１又は複数のアクションを含む全順序プランを複数記憶するプラン記憶機能と、前記プラン記憶機能に記憶されている全順序プランのうちから選択された１つの全順序プランの先頭のアクションを実行するための実行機能と、前記アクションの実行による副作用の有無及び該副作用を取り消すためのアクションに関する知識を記憶する知識記憶機能と、前記選択された１つの全順序プランの先頭のアクションの前記実行機能による実行が成功したか否か、及び当該アクションについて前記知識記憶機能に記憶されている知識に基づいて、前記プラン記憶機能に記憶されている前記全順序プランを修正する修正機能とをコンピュータに実現させるためのプログラムである。
【００１５】
また、本発明に係るプラン実行システムは、１又は複数のアクションを含む半順序プランを複数記憶するプラン記憶手段と、前記プラン記憶手段に記憶されている半順序プランのうちから選択された１つの半順序プランに従って選択された１つのアクションを実行するための実行手段と、前記選択された１つの半順序プランに従って選択されたアクションの前記実行手段による実行が成功したか否かに基づいて、前記プラン記憶手段に記憶されている前記半順序プランを修正する修正手段とを備えたことを特徴とする。
【００１６】
好ましくは、前記アクションの実行による副作用の有無及び該副作用を取り消すためのアクションに関する知識を記憶する知識記憶手段を更に備え、前記修正手段は、前記プラン記憶手段に記憶されている前記全順序プランを修正するにあたっては、前記選択された１つの半順序プランに従って選択されたアクションについて前記知識記憶手段に記憶されている知識にも基づくようにしてもよい。
【００１７】
また、本発明は、１又は複数のアクションを含む半順序プランを複数記憶するプラン記憶手段を備えたプラン実行システムにおけるプラン実行方法であって、前記プラン記憶手段に記憶されている半順序プランのうちから１つを選択する第１のステップと、選択された前記半順序プランに従って１つのアクションを選択する第２のステップと、選択された前記アクションを実行する第３のステップと、前記アクションの実行が成功したか否かに基づいて、前記プラン記憶手段に記憶されている前記半順序プランを修正する第４のステップとを有し、前記第１のステップから前記第４のステップを繰り返し実行することを特徴とする。
【００１８】
また、本発明は、１又は複数のアクションを含む半順序プランを複数記憶するプラン記憶手段と、前記アクションの実行による副作用の有無及び該副作用を取り消すためのアクションに関する知識を記憶する知識記憶手段とを備えたプラン実行システムにおけるプラン実行方法であって、前記プラン記憶手段に記憶されている半順序プランのうちから１つを選択する第１のステップと、選択された前記半順序プランに従って１つのアクションを選択する第２のステップと、選択された前記アクションを実行する第３のステップと、前記アクションの実行が成功したか否か、及び当該アクションについて前記知識記憶手段に記憶されている知識に基づいて、前記半順序プランを修正する第４のステップとを有し、前記第１のステップから前記第４のステップを繰り返し実行することを特徴とする。
【００１９】
また、本発明は、プランを実行するプラン実行システムとしてコンピュータを機能させるためのプログラムであって、１又は複数のアクションを含む半順序プランを複数記憶するプラン記憶機能と、前記プラン記憶機能に記憶されている半順序プランのうちから選択された１つの半順序プランに従って選択された１つのアクションを実行するための実行機能と、前記選択された１つの半順序プランに従って選択されたアクションの前記実行機能による実行が成功したか否かに基づいて、前記プラン記憶機能に記憶されている前記半順序プランを修正する修正機能とをコンピュータに実現させるためのプログラムである。
【００２０】
また、本発明は、プランを実行するプラン実行システムとしてコンピュータを機能させるためのプログラムであって、１又は複数のアクションを含む半順序プランを複数記憶するプラン記憶機能と、前記プラン記憶機能に記憶されている半順序プランのうちから選択された１つの半順序プランに従って選択された１つのアクションを実行するための実行機能と、前記アクションの実行による副作用の有無及び該副作用を取り消すためのアクションに関する知識を記憶する知識記憶機能と、前記選択された１つの半順序プランに従って選択されたアクションの前記実行機能による実行が成功したか否か、及び当該アクションについて前記知識記憶機能に記憶されている知識に基づいて、前記プラン記憶機能に記憶されている前記半順序プランを修正する修正機能とをコンピュータに実現させるためのプログラムである。
【００２１】
なお、装置に係る本発明は方法に係る発明としても成立し、方法に係る本発明は装置に係る発明としても成立する。
また、装置または方法に係る本発明は、コンピュータに当該発明に相当する手順を実行させるための（あるいはコンピュータを当該発明に相当する手段として機能させるための、あるいはコンピュータに当該発明に相当する機能を実現させるための）プログラムとしても成立し、該プログラムを記録したコンピュータ読取り可能な記録媒体としても成立する。
【００２２】
本発明によれば、複数の全順序プランをあらかじめ用意しておき、アクションを１つ実行するたびに、その実行済みアクションを考慮に入れて各プラン修正を行うことにより、再プラニングせずに動的な環境に対応することができるようになる。
【００２３】
【発明の実施の形態】
以下、図面を参照しながら発明の実施の形態を説明する。
【００２４】
（第１の実施形態）
図１に、本実施形態のプラン実行システムの全体的な構成例を表すブロック図を示す。
【００２５】
図１に示されるように、本実施形態のプラン実行システムは、複数プラン格納部１１、プラン実行管理部１２、アクション実行部１３、プラン修正部１４、アクション副作用知識格納部１５を備えている。
【００２６】
本プラン実行システムは、計算機間を移動しない通常のソフトウェアによっても、計算機間を移動する移動エージェントのようなソフトウェアによっても、半導体チップその他のハードウェアによっても、実現可能である。また、種々のアプリケーションに組み込むことも可能である。
【００２７】
また、本プラン実行システムは、単独の計算機に搭載することも可能であるし、ネットワークに接続する装置を内蔵したもしくは外付け可能な計算機または情報処理機能を有する携帯電話端末などに搭載することも可能であるし、ロボットのような装置などに搭載することも可能である。
【００２８】
さて、複数プラン格納部１１には、複数の全順序プランが格納されている。
【００２９】
全順序プランは、実行すべきアクションの順番が全て確定したプランのことで、一般に［ａ１，ａ２…，ａｎ］と記述できる。この全順序プランは、アクションａ１を実行して、次にアクションａ２を実行し、順にアクションａｎまで（ｎは０以上）実行するというプランのことである。ｎが０のとき、［］を空プランと呼ぶ。以下では、全順序プランのことを、「プラン」と省略して呼ぶものとする。
【００３０】
なお、詳しくは後述するように、処理の過程で複数プラン格納部１１からあるプランが削除されることがある。また、処理の過程であるプランに含まれるアクションの数が増減されることがある。
【００３１】
プラン実行管理部１２は、複数プラン格納部１１にある複数のプランのうちから、所定の選択方法に従って、１つを選択し（ただし、処理の過程でプランが削除され１つのプランのみ選択可能となった場合には、その１つのプランを選択し）、その選択されたプラン［ａ１，ａ２…，ａｎ］について、ｎが１以上であるとき、先頭のアクションａ１をアクション実行部１３に実行させる。また、プラン実行管理部１２は、空プラン［］が複数プラン格納部１１に存在するときは、プラン実行が成功したとみなして、任意の後処理を行った上で、情報処理を終了する。また、プラン実行管理部１２は、複数プラン格納部１１にプランが存在しないときは、プラン実行が失敗したとみなして、任意の後処理を行った上で、情報処理を終了する。
【００３２】
アクション実行部１３は、プラン実行管理部１２により選択されたプランの先頭のアクションを実行し、そのアクションの実行結果をプラン修正部１４に報告する。
【００３３】
プラン修正部１４は、アクションが１つ実行されるたびに、そのアクションの実行結果に従って、アクション副作用知識格納部１５の各データに基づいて、複数プラン格納部１１に格納されている各プランの修正を行う（詳しくは後述するように、一部又は全部のプランが修正されないこともある）。
【００３４】
アクション副作用知識格納部１５に格納される各データは、あるアクションａの副作用についてのデータで、以下の３つのうちいずれかの形をしている。
（タイプ１）アクションａの実行は副作用を持たない。
（タイプ２）アクションａの実行は副作用を持ち、この副作用を無くすためには、アクションｂを実行すればよい。
（タイプ３）アクションａの実行は副作用を持ち、この副作用を無くすことは不可能である。
【００３５】
図２（ａ）に、アクション副作用知識格納部１５にアクション副作用知識をテーブルの形で格納する場合における該テーブルの一例を示す。この例では、１つのエントリは、対象となるアクションを示すデータと、そのタイプ（上記のタイプのいずれか）を示すデータと、タイプが２である場合における当該対象となるアクションの副作用を無くすためのアクションを示すデータとを含む。なお、かりに、あるアクションに対するアクション副作用知識がアクション副作用知識格納部１５に格納されていない場合には、タイプ３として扱う方法、エラーとして異常終了する方法、タイプ１として扱う方法など、種々の方法が可能である。
【００３６】
図２（ｂ）に、該テーブルの一例を示す。この例では、１つのエントリは、対象となるアクションを示すデータと、当該対象となるアクションの副作用を無くすためのアクションを示すデータとを含み、ただし、後者の副作用を無くすためのアクションの項目に、予め定められた特定の値（例えば、０）が記述されている場合には、タイプ１であることを示し、何も記述されていない場合には、タイプ３であることを示す。また、あるアクションに対するアクション副作用知識がアクション副作用知識格納部１５に格納されていない場合には、そのアクションをタイプ３として扱うようにしてもよい。
【００３７】
図２（ｃ）に、該テーブルの一例を示す。この例では、１つのエントリは、対象となるアクションを示すデータと、当該対象となるアクションの副作用を無くすためのアクションを示すデータとを含み、ただし、後者の副作用を無くすためのアクションの項目に、予め定められた特定の値（例えば、０）が記述されている場合には、タイプ３であることを示し、何も記述されていない場合には、タイプ１であることを示す。また、あるアクションに対するアクション副作用知識がアクション副作用知識格納部１５に格納されていない場合には、そのアクションをタイプ１として扱うようにしてもよい。
【００３８】
もちろん、上記の他にも種々の方法が可能である。また、アクション副作用知識格納部１５にアクション副作用知識をテーブル以外の形で格納するようにしてもよい。
【００３９】
ここで、アクションの実行による副作用や、その副作用を無くすためのアクションなどについて説明する。
【００４０】
アクションａの実行が副作用を持たない場合とは、アクションａを実行した後に、何のアクションもせずに、アクションａを実行しなかったものとみなすことができる場合であり、それ以外の場合が、アクションａの実行が副作用を持つ場合である。
【００４１】
なお、あるアクションａの副作用を無くすとは、典型的には、システムの全状態を、あるアクションａを実行する前の状態に戻す、というものであるが、システムの全状態ではなくそれらのうちの主要な部分を、あるアクションａを実行する前の状態に戻せば、アクションａを実行しなかったものとみなすことができる場合もある。また、例えば、あるアクションａが複数の実行結果を持ち、それらのうちの一部分のみが副作用を持ち、他の部分は副作用を持たないような場合に、当該副作用を与える実行結果の部分のみについて、実行前の状態に戻すようなアクションを実行すればよい場合なども考えられる。
【００４２】
例えば、あるアクションが“単にサーバから特定の識別子の情報の最新版を取得してくるだけのもの”である場合に、該特定の識別子の情報の最新版を保持していることに害が無ければ、これをタイプ１として扱うことができる。
【００４３】
また、例えば、あるアクションが“サーバから特定の識別子の情報の最新版を取得し、現在保持している同一識別子の情報の旧版を該最新版に更新するもの”である場合には、該特定の識別子の情報を更新前の状態に戻すためには、これをタイプ２として扱う必要がある。
【００４４】
また、タイプ３は、副作用を持つアクションが、（システム外の処置によって可逆か不可逆かにかかわらず）どのようなアクションによっても不可逆の場合である。例えば、電気通信回線を介した計算機間の手続きのみによって自動的にチケットを予約するプランを考えた場合に、電気通信回線を介した計算機間の手続きによってあるチケットを予約するというアクションａを実行した後に、該電気通信回線を介した計算機間の手続きによって該予約したチケットをキャンセルできなければ、たとえ電話を介した人間同士のやり取りによって該予約したチケットをキャンセルできても、タイプ３として扱うことになる。ただし、この場合においても、電話を介した人間同士のやり取りによって該予約したチケットをキャンセルするということも１つのアクションとして扱うようなユーザ支援システムを考えた場合には、タイプ２として扱うことも可能になる。
【００４５】
なお、全く同一のアクションであっても、プランの目的、システムの性質や能力、問題解決にあたってのポリシーや戦略、その時々の外的環境などに応じて、異なったタイプになったり、副作用を無くすためのアクションが異なったりすることがあり得る。
【００４６】
また、あるアクションａや、あるアクションの副作用を無くすためのアクションは、単一の動作のみ包含するものであってもよいし、複数の動作を包含するものであってもよい。ただし、あるアクションａが単一の動作のみを包含するものであっても、その副作用を無くすためのアクションｂが単一の動作のみを包含するものになるとは限らず、複数の動作を包含するものであることもある。逆に、あるアクションａが複数の動作を包含するものであっても、その副作用を無くすためのアクションｂが複数の動作を包含するものになるとは限らず、単一の動作のみを包含するものであることもある。
【００４７】
また、あるアクションや、あるアクションの副作用を無くすためのアクションｂには、条件分岐が用いられてもよい。ただし、あるアクションａが条件分岐を持っても、その副作用を無くすためのアクションｂが条件分岐を持つものになるとは限らず、それを条件分岐を持たないものになることもある。逆に、あるアクションａが条件分岐を持たないものであっても、その副作用を無くすためのアクションｂが条件分岐を持たないとは限らず、条件分岐を持つものになることもある。
【００４８】
また、あるアクションａとその副作用を無くすためのアクションｂとの関係は、それぞれのアクションに応じて様々であり、それらが、（１）全く同一のものになる場合もあるし、（２）同一のコマンドで引数のみ異なるものになる場合もあるし、（３）逆関数の関係あるいは概念的に逆の関係になる場合もあるし、（４）それ以外の関係になる場合もある。（１）の簡単な例は、アクションａが“ある変数Ｘに（−１）を乗ずる”、あるいは“スイッチを切り換える（すなわち、スイッチがｏｎならｏｆｆにし、ｏｆｆならｏｎにする）”、などの場合である。（２）の簡単な例は、アクションａが“ある変数Ｘに２を乗ずる”、これに対するアクションｂが“ある変数Ｘに０．５を乗ずる”、などの場合である。（３）の簡単な例は、アクションａが“ある変数Ｘの二乗を計算する”、これに対するアクションｂが“ある変数Ｘの平方根を計算する”、アクションａが“あるチケットを予約する”、これに対するアクションｂが“予約をキャンセルする”、アクションａが“（ロボットが）ドアを開ける”で、これに対するアクションｂが“（ロボットが）ドアを閉める”、などの場合である。（４）の簡単な例は、変数Ｘの更新前の値を保持することを前提として、アクションａが“ある変数Ｘに非線形変換Ｆ（Ｘ）を施した結果を、Ｘとする”、これに対するアクションｂが“ある変数Ｘを更新前の値に戻す”、などの場合である。
【００４９】
また、あるアクションａの副作用を無くすためのアクションｂと同一のアクションについて、その副作用を無くすためのアクションとして、アクションａを使用できる場合もあるし、そうでない場合もある。
【００５０】
また、あるアクションａについて、その副作用を無くすためのアクションｂが存在する場合に、ただ１つ存在することも、複数存在することもある。後者の場合の簡単な例としては、“ある変数Ｘに２を乗ずる”というアクションａに対して、“ある変数Ｘに０．５を乗ずる”、あるいは“ある変数Ｘを２で除する”、“ある変数Ｘを更新前の値に戻す”、などのアクションｂが考えられる。後者の場合には、複数のうちから予め選択したものを採用してもよいし、アクション副作用知識格納部１５に複数のものを格納しておき、例えば、ランダムに、あるいはその時々状況に適したものなどを、選択して、使用するようにしてもよい。
【００５１】
以下、本実施形態の動作について詳細に説明する。
【００５２】
まず、あるアクションａの実行結果の報告をプラン修正部１４が受けた場合におけるプラン修正部１４による処理について説明する。
【００５３】
図３に、この場合の処理手順の一例を示す。
【００５４】
あるアクションａの実行結果の報告を受けると（ステップＳ１）、プラン修正部１４は、それが成功かまたは失敗かに応じて、異なる処理を行う。
【００５５】
アクションａの実行が成功した場合（ステップＳ２でＹｅｓの場合）には、その時点で複数プラン格納部１１にある各プラン［ａ１，ａ２…，ａｎ］（ｎは１以上）について、成功時の処理を行う（ステップＳ３）。
【００５６】
図４に、成功時の処理手順の一例を示す。
【００５７】
実行に成功したアクションａとプラン［ａ１，ａ２…，ａｎ］の先頭のアクションａ１が同一のアクションであるならば（ステップＳ３１でＹｅｓの場合）、そのプランの先頭のアクションを削除する、すなわち、プラン［ａ１，ａ２…，ａｎ］を［ａ２…，ａｎ］に修正する（ステップＳ３４）。
【００５８】
実行に成功したアクションａとプラン［ａ１，ａ２…，ａｎ］の先頭のアクションａ１が異なるアクションであり、実行に成功したアクションａが副作用をもたないならば（ステップＳ３１でＮｏ且つステップＳ３２でＹｅｓの場合）、プラン［ａ１，ａ２…，ａｎ］を修正しない（ステップＳ３５）。
【００５９】
実行に成功したアクションａとプラン［ａ１，ａ２…，ａｎ］の先頭のアクションａ１が異なるアクションであり、実行に成功したアクションａが副作用をもち、アクションｂがアクションａの実行の副作用を無くすならば（ステップＳ３１でＮｏ且つステップＳ３２でＮｏ且つステップＳ３３でＹｅｓの場合）、そのプランの先頭のアクションの前にアクションｂを追加する、すなわち、プラン［ａ１，ａ２…，ａｎ］を［ｂ，ａ１，ａ２…，ａｎ］に修正する（ステップＳ３６）。
【００６０】
実行に成功したアクションａとプラン［ａ１，ａ２…，ａｎ］の先頭のアクションａ１が異なるアクションであり、実行に成功したアクションａが副作用をもち、アクションａの副作用を無くすことが出来ないならば（ステップＳ３１でＮｏ且つステップＳ３２でＮｏ且つステップＳ３３でＮｏの場合）、プラン［ａ１，ａ２…，ａｎ］を複数プラン格納部１１から消去する（ステップＳ３７）。
【００６１】
一方、アクションａの実行が失敗した場合（ステップＳ２でＮｏの場合）には、複数プラン格納部１１にある各プラン［ａ１，ａ２…，ａｎ］について（ｎは１以上）、失敗時の処理を行う（ステップＳ４）。
【００６２】
図５に、失敗時の処理手順の一例を示す。
【００６３】
実行に失敗したアクションａとプラン［ａ１，ａ２…，ａｎ］の先頭のアクションａ１が同一のアクションであるならば（ステップＳ４１でＹｅｓの場合）、プラン［ａ１，ａ２…，ａｎ］を複数プラン格納部１１から消去する（ステップＳ４２）。
【００６４】
実行に失敗したアクションａとプラン［ａ１，ａ２…，ａｎ］の先頭のアクションａ１が異なるアクションであるならば（ステップＳ４１でＮｏの場合）、プラン［ａ１，ａ２…，ａｎ］を修正しない（ステップＳ４３）。
【００６５】
次に、本実施形態の全体的なの処理の流れについて説明する。
【００６６】
図６に、全体的な処理手順の一例を示す。
【００６７】
まず、複数プラン格納部１１にプランを１個以上格納する（ステップＳ１０１）。このとき、複数プラン格納部１１に格納するプランの作成手段は問わない。例えば、いわゆるプラナ−で作成してもよいし、人間が作ってもよいし、フロッピーディスク等の記憶装置に記憶させてある複数のプランを用いてもよい。
【００６８】
以降、次のようなループ処理を、ループを抜ける条件が成立するまで、繰り返す。
【００６９】
複数プラン格納部１１にプランが１個以上存在しなければ（ステップＳ１０２でＮｏの場合）、プランは実行できないので、プランの実行は失敗したとみなして、プラン実行管理部１２が任意の後処理を行い（ステップＳ１０７）、情報処理を終了する。
【００７０】
複数プラン格納部１１に空プラン［］（何も実行しないというプラン）が存在するときは（ステップＳ１０２でＹｅｓ且つステップＳ１０３でＹｅｓの場合）、プランの実行は成功したとみなして、プラン実行管理部１２が任意の後処理を行い（ステップＳ１０８）、情報処理を終了する。
【００７１】
複数プラン格納部１１に１個以上のプランは存在するが、空プラン［］が存在しないならば（ステップＳ１０２でＹｅｓ且つステップＳ１０３でＮｏの場合）、まず、プラン実行管理部１２はそのなかの１つのプラン［ａ，…．］を選択し、アクション実行部１３にその先頭のアクションａの実行を依頼する（ステップＳ１０４）。
【００７２】
次いで、アクションａの実行依頼をうけたアクション実行部１３は、アクションａを実行し、その実行結果をプラン修正部１４に報告する（ステップＳ１０５）。
【００７３】
次いで、アクションａの実行結果の報告を受けたプラン修正部１４は、その実行結果に従って、前述した図３のフローチャートで示される情報処理方法で、複数プラン格納部１１に格納されている各プランを修正する（ステップＳ１０６）。
【００７４】
そして、ステップＳ１０２に戻って、再度、ループ処理を行う。
【００７５】
なお、これまで示した各々の手順は一例であり、それぞれ適宜修正することが可能である（例えば、各条件分岐の箇所や順序を入れ替えてもよい）。
【００７６】
ここで、複数のプランから１つのプランを選択する方法（図６のステップＳ１０４参照）としては、種々のバリエーションが考えられる。
【００７７】
例えば、まず、プランの先頭のアクションが副作用の無いアクションであるプランを優先的に選択し（そのようなプランが複数あれば、ランダムにあるいは他の基準で１つを選択し）、そのようなプランが存在しないときには、プランの先頭アクションａの副作用を取り消すアクションｂが存在するプランを優先的に選択し（そのようなプランが複数あれば、ランダムにあるいは他の基準で１つを選択し）、そのようなプランも存在しないときには、プランの先頭アクションａの副作用を取り消すアクションｂが存在しないプランを選択する（そのようなプランが複数あれば、ランダムにあるいは他の基準で１つを選択する）、というプラン選択基準が考えられる。
【００７８】
また、例えば、保持するアクション数が最も少ないプランから優先的に選択する（そのようなプランが複数あれば、ランダムにあるいは他の基準で１つを選択する）、という選択基準も考えられる。
【００７９】
また、例えば、前回に選択されたプランが残存している場合には、そのプランを続けて選択し、前回に選択されたプランが消去されて残存していないか、または一番最初の選択である場合には、何らかの基準（例えば、上記した基準）でプランを１つ選択する、という選択基準も考えられる。
【００８０】
また、例えば、各プランに番号を付加し、残存しているプランのうちで最も小さい番号を持つものを選択する、という選択基準も考えられる。
【００８１】
また、例えば、上記の選択基準の全部または一部を含む複数の選択基準を併用する方法も考えられる。
【００８２】
さて、以下では、具体例を用いて本実施形態について詳しく説明する。
【００８３】
ここでは、本実施形態のプラン実行システムの機能を、航空券予約システムに適用した場合を例にとって説明する。
【００８４】
例えば、図７に示すように、航空会社毎に予約システム２３〜２５があり、本実施形態のプラン実行システムの機能を有する予約端末２１は、それらとネットワーク３２を介して通信可能であり、予約端末２１から各航空会社の予約システムに適宜アクセスすることによって、航空券の予約などの処理を自動的に行うような場合を考える。
【００８５】
ここでは、一例として、名古屋からマンチェスターへの航空券を予約することを、プランの目的とする。
【００８６】
まず、名古屋からマンチェスターへの航空券を予約する以下の４つのプランを複数プラン格納部１１に格納するものとする（ステップＳ１０１）。
【００８７】
なお、以下の記述において、
ｊｊｊは、航空会社ｊのコンピュータ（予約システム）を表し、
ｂｂｂは、航空会社ｂのコンピュータ（予約システム）を表し、
ｔｉｃｋｅｔ（…）は、…で指定された航空券を表し、
ｂｏｏｋ（ｔｉｃｋｅｔ（…））は、ｔｉｃｋｅｔ（…）で指定された航空券を予約するアクションを示し、
ｃｏｎｎｅｃｔ（…）は、（現在、ネットワーク経由で接続中のコンピュータがあれば、その接続を切った後に）…で指定された航空会社にあるコンピュータにネットワーク経由で新たに接続するというアクションを示すものとする。
【００８８】
（プラン１）
プラン１は、次のような４つのアクションからなるプランであるとする。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
［ｃｏｎｎｅｃｔ（ｊｊｊ），
ｂｏｏｋ（ｔｉｃｋｅｔ（ｊ４２３，ｎａｇｏｙａ，ｌｏｎｄｏｎ，ｄｅｃ１０）），
ｃｏｎｎｅｃｔ（ｂｂｂ），
ｂｏｏｋ（ｔｉｃｋｅｔ（ｂ２９０８，ｌｏｎｄｏｎ，ｍａｎｃｈｅｓｔｅｒ，ｄｅｃ１０））］
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
（プラン２）
プラン２は、次のような４つのアクションからなるプランであるとする。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
［ｃｏｎｎｅｃｔ（ｊｊｊ），
ｂｏｏｋ（ｔｉｃｋｅｔ（ｊ４２３，ｎａｇｏｙａ，ｌｏｎｄｏｎ，ｄｅｃ１０）），
ｃｏｎｎｅｃｔ（ｂｂｂ），
ｂｏｏｋ（ｔｉｃｋｅｔ（ｂ７８２４，ｌｏｎｄｏｎ，ｍａｎｃｈｅｓｔｅｒ，ｄｅｃ１０））］
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
（プラン３）
プラン３は、次のような５つのアクションからなるプランであるとする。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
［ｃｏｎｎｅｃｔ（ｊｊｊ），
ｂｏｏｋ（ｔｉｃｋｅｔ（ｊ０５４，ｎａｇｏｙａ，ｔｏｋｙｏ，ｄｅｃ１０）），
ｂｏｏｋ（ｔｉｃｋｅｔ（ｊｊｊ４０１，ｔｏｋｙｏ，ｌｏｎｄｏｎ，ｄｅｃ１０）），
ｃｏｎｎｅｃｔ（ｂｂｂ），
ｂｏｏｋ（ｔｉｃｋｅｔ（ｂ１３９８，ｌｏｎｄｏｎ，ｍａｎｃｈｅｓｔｅｒ，ｄｅｃ１０））］
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
（プラン４）
プラン４は、次のような５つのアクションからなるプランであるとする。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
［ｃｏｎｎｅｃｔ（ｊｊｊ），
ｂｏｏｋ（ｔｉｃｋｅｔ（ｊ０５４，ｎａｇｏｙａ，ｔｏｋｙｏ，ｄｅｃ１０）），
ｃｏｎｎｅｃｔ（ｂｂｂ），
ｂｏｏｋ（ｔｉｃｋｅｔ（ｂｂｂ６，ｔｏｋｙｏ，ｌｏｎｄｏｎ，ｄｅｃ１０）），
ｂｏｏｋ（ｔｉｃｋｅｔ（ｂｂｂ１３９８，ｌｏｎｄｏｎ，ｍａｎｃｈｅｓｔｅｒ，ｄｅｃ１０））］
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
なお、この説明では、便宜上、各プランに固有の連番を付加して説明するが、実際のシステムでは、連番以外の固有の識別情報を付加する方法、プランが削除されるごとに識別情報が付け代わっていく（例えば、連番でを付加する場合に、削除されたプラン以降のプランの番号が１ずつ少なくなるようにシフトする）方法、識別情報を使用しない方法なども考えられる。
【００８９】
まず、プラン実行管理部１２が所定の選択基準（例えば、最初のプランを選択する、など）に従ってプラン１を選択したとする。プラン実行管理部１２は、その選択されたプラン１の最初のアクションｃｏｎｎｅｃｔ（ｊｊｊ）の実行をアクション実行部１３に依頼する（ステップＳ１０４）。アクション実行部１３は、このアクションを実行し、そのアクション実行が成功したとする。アクション実行部１３は、そのアクションの実行結果をプラン修正部１４に報告する（ステップＳ１０５）。そのアクションの実行結果を受けて、プラン修正部１４は、上記の各プランを、それぞれ、次に示すように修正する（ステップＳ１０６）。ここでは、各プラン１〜４は、すべて、ステップＳ３４によって処理されることになる。
【００９０】
（プラン１）
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
［ｂｏｏｋ（ｔｉｃｋｅｔ（ｊ４２３，ｎａｇｏｙａ，ｌｏｎｄｏｎ，ｄｅｃ１０）），
ｃｏｎｎｅｃｔ（ｂｂｂ），
ｂｏｏｋ（ｔｉｃｋｅｔ（ｂ２９０８，ｌｏｎｄｏｎ，ｍａｎｃｈｅｓｔｅｒ，ｄｅｃ１０））］
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
（プラン２）
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
［ｂｏｏｋ（ｔｉｃｋｅｔ（ｊ４２３，ｎａｇｏｙａ，ｌｏｎｄｏｎ，ｄｅｃ１０）），
ｃｏｎｎｅｃｔ（ｂｂｂ），
ｂｏｏｋ（ｔｉｃｋｅｔ（ｂ７８２４，ｌｏｎｄｏｎ，ｍａｎｃｈｅｓｔｅｒ，ｄｅｃ１０））］
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
（プラン３）
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
［ｂｏｏｋ（ｔｉｃｋｅｔ（ｊ０５４，ｎａｇｏｙａ，ｔｏｋｙｏ，ｄｅｃ１０）），
ｂｏｏｋ（ｔｉｃｋｅｔ（ｊ４０１，ｔｏｋｙｏ，ｌｏｎｄｏｎ，ｄｅｃ１０）），
ｃｏｎｎｅｃｔ（ｂｂｂ），
ｂｏｏｋ（ｔｉｃｋｅｔ（ｂ１３９８，ｌｏｎｄｏｎ，ｍａｎｃｈｅｓｔｅｒ，ｄｅｃ１０））］
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
（プラン４）
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
［ｂｏｏｋ（ｔｉｃｋｅｔ（ｊ０５４，ｎａｇｏｙａ，ｔｏｋｙｏ，ｄｅｃ１０）），
ｃｏｎｎｅｃｔ（ｂｂｂ），
ｂｏｏｋ（ｔｉｃｋｅｔ（ｂ６，ｔｏｋｙｏ，ｌｏｎｄｏｎ，ｄｅｃ１０）），
ｂｏｏｋ（ｔｉｃｋｅｔ（ｂ１３９８，ｌｏｎｄｏｎ，ｍａｎｃｈｅｓｔｅｒ，ｄｅｃ１０））］
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
次に、プラン実行管理部１２が所定の選択基準（例えば、最初のプランを選択する、あるいは同じものを続けて選択する、など）に従ってプラン１を選択したとする。プラン実行管理部１２は、その選択されたプラン１の最初のアクションｂｏｏｋ（ｔｉｃｋｅｔ（ｊ４２３，ｎａｇｏｙａ，ｌｏｎｄｏｎ，ｄｅｃ１０））の実行をアクション実行部１３に依頼する（ステップＳ１０４）。アクション実行部１３は、このアクションを実行し、航空券ｔｉｃｋｅｔ（ｊ４２３，ｎａｇｏｙａ，ｌｏｎｄｏｎ，ｄｅｃ１０）が売り切れのため、このアクション実行が失敗したとする。アクション実行部１３は、そのアクションの実行結果をプラン修正部１４に報告する（ステップＳ１０５）。そのアクションの実行結果を受けて、プラン修正部１４は、上記の各プランを次に示すように修正する（ステップＳ１０６）。ここでは、実施不可能なプラン１，２は、ステップＳ４２によって消去され、プラン３，４は、ステップＳ４３によって処理される（すなわち、修正されない）ことになる。
【００９１】
（プラン３）
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
［ｂｏｏｋ（ｔｉｃｋｅｔ（ｊ０５４，ｎａｇｏｙａ，ｔｏｋｙｏ，ｄｅｃ１０）），
ｂｏｏｋ（ｔｉｃｋｅｔ（ｊ４０１，ｔｏｋｙｏ，ｌｏｎｄｏｎ，ｄｅｃ１０）），
ｃｏｎｎｅｃｔ（ｂｂｂ），
ｂｏｏｋ（ｔｉｃｋｅｔ（ｂ１３９８，ｌｏｎｄｏｎ，ｍａｎｃｈｅｓｔｅｒ，ｄｅｃ１０））］
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
（プラン４）
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
［ｂｏｏｋ（ｔｉｃｋｅｔ（ｊ０５４，ｎａｇｏｙａ，ｔｏｋｙｏ，ｄｅｃ１０）），
ｃｏｎｎｅｃｔ（ｂｂｂ），
ｂｏｏｋ（ｔｉｃｋｅｔ（ｂ６，ｔｏｋｙｏ，ｌｏｎｄｏｎ，ｄｅｃ１０）），
ｂｏｏｋ（ｔｉｃｋｅｔ（ｂ１３９８，ｌｏｎｄｏｎ，ｍａｎｃｈｅｓｔｅｒ，ｄｅｃ１０））］
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
ここで、これまで選択されてきたプラン１は、消去されたため使えない。代わりに、プラン実行管理部１２が所定の選択基準（例えば、最初のプランを選択する、など）に従って上記のうちのプラン３を選択したとする。プラン実行管理部１２は、その選択されたプラン３の最初のアクションｂｏｏｋ（ｔｉｃｋｅｔ（ｊ０５４，ｎａｇｏｙａ，ｔｏｋｙｏ，ｄｅｃ１０））の実行をアクション実行部１３に依頼する（ステップＳ１０４）。アクション実行部１３は、このアクションを実行し、そのアクション実行が成功したとする。アクション実行部１３は、そのアクションの実行結果をプラン修正部１４に報告する（ステップＳ１０５）。そのアクションの実行結果を受けて、プラン修正部１４は、上記の各プランを次に示すように修正する（ステップＳ１０６）。ここでは、各プラン１，２は、すべて、ステップＳ３４で処理されることになる。
【００９２】
（プラン３）
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
［ｂｏｏｋ（ｔｉｃｋｅｔ（ｊ４０１，ｔｏｋｙｏ，ｌｏｎｄｏｎ，ｄｅｃ１０）），
ｃｏｎｎｅｃｔ（ｂｂｂ），
ｂｏｏｋ（ｔｉｃｋｅｔ（ｂ１３９８，ｌｏｎｄｏｎ，ｍａｎｃｈｅｓｔｅｒ，ｄｅｃ１０））］
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
（プラン４）
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
［ｃｏｎｎｅｃｔ（ｂｂｂ），
ｂｏｏｋ（ｔｉｃｋｅｔ（ｂ６，ｔｏｋｙｏ，ｌｏｎｄｏｎ，ｄｅｃ１０）），
ｂｏｏｋ（ｔｉｃｋｅｔ（ｂ１３９８，ｌｏｎｄｏｎ，ｍａｎｃｈｅｓｔｅｒ，ｄｅｃ１０））］
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
次に、プラン実行管理部１２が所定の選択基準（例えば、最初のプランを選択する、あるいは同じものを続けて選択する、など）に従ってプラン３を選択したとする。プラン実行管理部１２は、その選択されたプラン３の最初のアクションｂｏｏｋ（ｔｉｃｋｅｔ（ｊ４０１，ｔｏｋｙｏ，ｌｏｎｄｏｎ，ｄｅｃ１０））の実行をアクション実行部１３に依頼する（ステップＳ１０４）。アクション実行部１３は、このアクションを実行し、そのアクション実行が成功したとする。アクション実行部１３は、そのアクションの実行結果をプラン修正部１４に報告する（ステップＳ１０５）。そのアクションの実行結果を受けて、プラン修正部１４は、上記の各プランを次に示すように修正する（ステップＳ１０６）。ここでは、プラン３はステップＳ３４で処理され、２番目のプランすなわちプラン４はステップＳ３６によって処理されることになる。なお、アクション副作用知識格納部１５には、アクションｂｏｏｋ（ｔｉｃｋｅｔ（ｊ４０１，ｔｏｋｙｏ，ｌｏｎｄｏｎ，ｄｅｃ１０））の実行結果を無効化する（すなわち、副作用を無くすための）アクションは、ｃａｎｃｅｌ（ｔｉｃｋｅｔ（ｊ４０１，ｔｏｋｙｏ，ｌｏｎｄｏｎ，ｄｅｃ１０））であると記述されているものとする。
【００９３】
（プラン３）
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
［ｃｏｎｎｅｃｔ（ｂｂｂ），
ｂｏｏｋ（ｔｉｃｋｅｔ（ｂ１３９８，ｌｏｎｄｏｎ，ｍａｎｃｈｅｓｔｅｒ，ｄｅｃ１０））］
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
（プラン４）
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
［ｃａｎｃｅｌ（ｔｉｃｋｅｔ（ｊ４０１，ｔｏｋｙｏ，ｌｏｎｄｏｎ，ｄｅｃ１０）），
ｃｏｎｎｅｃｔ（ｂｂｂ），
ｂｏｏｋ（ｔｉｃｋｅｔ（ｂ６，ｔｏｋｙｏ，ｌｏｎｄｏｎ，ｄｅｃ１０）），
ｂｏｏｋ（ｔｉｃｋｅｔ（ｂ１３９８，ｌｏｎｄｏｎ，ｍａｎｃｈｅｓｔｅｒ，ｄｅｃ１０））］
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
次に、プラン実行管理部１２が所定の選択基準（例えば、最初のプランを選択する、あるいは同じものを続けて選択する、など）に従ってプラン３を選択したとする。プラン実行管理部１２は、その選択されたプラン３の最初のアクションｃｏｎｎｅｃｔ（ｂｂｂ）の実行をアクション実行部１３に依頼する（ステップＳ１０４）。アクション実行部１３は、このアクションを実行し、そのアクション実行が成功したとする。アクション実行部１３は、そのアクションの実行結果をプラン修正部１４に報告する（ステップＳ１０５）。そのアクションの実行結果を受けて、プラン修正部１４は、上記の各プランを次に示すように修正する（ステップＳ１０６）。ここでは、プラン３はステップＳ３４で処理され、プラン４はステップＳ３６によって処理されることになる。なお、アクション副作用知識格納部１５には、アクションｃｏｎｎｅｃｔ（ｂｂｂ）の実行結果を無効化するアクションは、ｃｏｎｎｅｃｔ（ｂｂｂ）が実行される直前まで接続していたコンピュータに接続し直すというアクション（この場合には、ｃｏｎｎｅｃｔ（ｊｊｊ）になる）であると記述されているとする。また、ここでは、あるアクションｃｏｎｎｅｃｔ（…）が実行される直前まで接続していたコンピュータを示す情報が保持されているあるいは他の手段によってそれを知ることができるものとする。
【００９４】
（プラン３）
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
［ｂｏｏｋ（ｔｉｃｋｅｔ（ｂ１３９８，ｌｏｎｄｏｎ，ｍａｎｃｈｅｓｔｅｒ，ｄｅｃ１０））］
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
（プラン４）
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
［ｃｏｎｎｅｃｔ（ｊｊｊ），
ｃａｎｃｅｌ（ｔｉｃｋｅｔ（ｊ４０１，ｔｏｋｙｏ，ｌｏｎｄｏｎ，ｄｅｃ１０）），
ｃｏｎｎｅｃｔ（ｂｂｂ），
ｂｏｏｋ（ｔｉｃｋｅｔ（ｂ６，ｔｏｋｙｏ，ｌｏｎｄｏｎ，ｄｅｃ１０）），
ｂｏｏｋ（ｔｉｃｋｅｔ（ｂ１３９８，ｌｏｎｄｏｎ，ｍａｎｃｈｅｓｔｅｒ，ｄｅｃ１０））］
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
ここで、次にプラン４が実行される場合を考えてみると、まず、コンピュータｊｊｊに接続し直して（ｃｏｎｎｅｃｔ（ｊｊｊ））、不要な予約済み航空券をキャンセル（ｃａｎｃｅｌ（ｔｉｃｋｅｔ（ｊ４０１，ｔｏｋｙｏ，ｌｏｎｄｏｎ，ｄｅｃ１０）））するようになっていることがわかる。すなわち、このプランは、既に行った航空券を予約するというアクションと、その後に実行したｂｂｂに接続するというアクションとを考慮しているということがわかる。
【００９５】
さて、続いて、プラン実行管理部１２が所定の選択基準（例えば、最初のプランを選択する、あるいは同じものを続けて選択する、など）に従って、これまでと同様に、プラン３を選択したものとする。プラン実行管理部１２は、その選択されたプラン３の最初のアクションｂｏｏｋ（ｔｉｃｋｅｔ（ｂ１３９８，ｌｏｎｄｏｎ，ｍａｎｃｈｅｓｔｅｒ，ｄｅｃ１０））の実行をアクション実行部１３に依頼する（ステップＳ１０４）。アクション実行部１３は、このアクションを実行し、そのアクション実行が成功したとする。アクション実行部１３は、そのアクションの実行結果をプラン修正部１４に報告する（ステップＳ１０５）。そのアクションの実行結果を受けて、プラン修正部１４は、上記の各プランを次に示すように修正する（ステップＳ１０６）。ここで、アクション副作用知識格納部１５には、アクションｂｏｏｋ（ｔｉｃｋｅｔ（ｂ１３９８，ｌｏｎｄｏｎ，ｍａｎｃｈｅｓｔｅｒ，ｄｅｃ１０））の実行結果を無効化することはできないと記述してあることとする（すなわち、航空券ｔｉｃｋｅｔ（ｂ１３９８，ｌｏｎｄｏｎ，ｍａｎｃｈｅｓｔｅｒ，ｄｅｃ１０）のキャンセルはできないことになる）。ここでは、プラン３はステップＳ３で処理されることになる。また、予約済み航空券ｔｉｃｋｅｔ（ｂ１３９８，ｌｏｎｄｏｎ，ｍａｎｃｈｅｓｔｅｒ，ｄｅｃ１０）のキャンセルはできないので、プラン４はステップＳ３７で消去されることになる。
【００９６】
（プラン３）
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
［］
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
しかして、複数プラン格納部１１に残ったプランは、上記のように空プラン（プラン３）１つである。そこで、プラン実行管理部１２は、プランの実行は成功とみなして、後処理（例えば、肉じゃがを調理したことをユーザに知らせる）を行い、情報処理を終了する（ステップＳ１０８）。この空プランは、もう何もアクションを実行しなくてもよいことを意味する。すなわち、プラン実行が成功したことになる。この具体例の場合には、航空券ｔｉｃｋｅｔ（ｊ０５４，ｎａｇｏｙａ，ｔｏｋｙｏ，ｄｅｃ１０）と航空券ｔｉｃｋｅｔ（ｊ４０１，ｔｏｋｙｏ，ｌｏｎｄｏｎ，ｄｅｃ１０）の予約に成功したことになる。
【００９７】
ところで、プラン実行管理部１２が複数のプランから１つを選択するにあたって、最終的に得られる結果に対する評価を考慮することも可能である。例えば、この具体例の場合には、乗り換え回数としてより少ない結果が得られるプランを優先的に選択するものとし、これによってプラン１またはプラン２を優先的に選択するようにしてもよい。その他、所要時間としてより少ない結果が得られるプラン、航空運賃としてより少ない結果が得られるプラン、国際線として指定した航空会社の航空券が得られるプランなど、種々の基準が考えられる。もちろん、このような基準は、航空券の予約に限らず、それぞれのプランの目的に応じて、適宜設定することが可能である。
【００９８】
（第２の実施形態）
第１の実施形態では、対象となるプランが全順序プランである場合について説明したが、本実施形態では、対象となるプランが半順序プランである場合について説明する。
【００９９】
第２の実施形態では、対象となるプランが半順序プランとなることに対応して、各処理を適宜修正する以外は、基本的には、第１の実施形態と同様である。以下では、第２の実施形態について、第１の実施形態と相違する点を中心に説明する。また、これまでは、前述したように全順序プランのことを「プラン」と省略して呼ぶものとしたが、以下、本発明の実施の形態では、半順序プランのことを「プラン」と省略して呼ぶものとする。
【０１００】
本実施形態のプラン実行システムの全体的な構成例を表すブロック図は、第１の実施形態で示した図１と同様である。
【０１０１】
なお、第１の実施形態と同様、本プラン実行システムは、計算機間を移動しない通常のソフトウェアによっても、計算機間を移動する移動エージェントのようなソフトウェアによっても、半導体チップその他のハードウェアによっても、実現可能である。また、種々のアプリケーションに組み込むことも可能である。
【０１０２】
また、第１の実施形態と同様、本プラン実行システムは、単独の計算機に搭載することも可能であるし、ネットワークに接続する装置を内蔵したもしくは外付け可能な計算機または情報処理機能を有する携帯電話端末などに搭載することも可能であるし、ロボットのような装置などに搭載することも可能である。
【０１０３】
さて、本実施形態では、複数プラン格納部１１には、複数の半順序プランが格納されている。
【０１０４】
全順序プランは、実行すべきアクションの順番が全て確定したプランであるのに対して、半順序プランは、実行すべきアクションの順番が全ては確定してないものであるが、本実施形態では、半順序プランとして、［ａ１，ａ２，…，ａｎ］または｛ｂ１，ｂ２，…，ｂｍ｝のように表現されるものを考える。ここで、ｎ，ｍはいずれも０以上の整数である。
【０１０５】
前者のように表現されるプラン［ａ１，ａ２，…，ａｎ］におけるａ１は、アクションであるか、又は｛ｘ１，ｘ２，…，ｘｉ｝と（ｉは２以上）表現されるサブプランである（このサブプランも半順序プランである）。ａ２，…，ａｎの各々についても同様である。
【０１０６】
後者のように表現されるプラン｛ｂ１，ｂ２，…，ｂｍ｝におけるｂ１は、アクションであるか、又は［ｘ１，ｘ２，…，ｘｊ］と（ｊは２以上）表現されているサブプランである（このサブプランも半順序プランである）。ｂ２，…，ｂｍの各々についても同様である。
【０１０７】
前者のプラン［ａ１，ａ２，…，ａｎ］は、まずａ１を実行して、次にａ２を実行し、順にａｎまで実行するというプランである。これに対して、後者のプラン｛ｂ１，ｂ２，…，ｂｍ｝は、ｂ１，ｂ２，…，ｂｍの全てを実行するが、その実行順番は任意であるというプランである。
【０１０８】
ｎやｍが０のとき、［］や｛｝を空プランと呼ぶ（これまで通り、空プランは、何もアクションを実行しなくても良いことを意味するプランである）。
【０１０９】
なお、プラン［ａ１，ａ２，…，ａｎ］におけるあるａｓがサブプラン｛ｘ１，ｘ２，…，ｘｉ｝であるときに、このサブプランａｓ＝｛ｘ１，ｘ２，…，ｘｉ｝におけるあるｘｋが、サブプラン［ｙ１，ｙ２，…，ｙｊ］であるような場合、あるいは、プラン｛ｂ１，ｂ２，…，ｂｍ｝におけるあるｂｓがサブプラン［ｘ１，ｘ２，…，ｘｊ］であるときに、このサブプランｂｓ＝［ｘ１，ｘ２，…，ｘｊ］におけるあるｘｋが、サブプラン｛ｚ１，ｚ２，…，ｚｉ｝であるような場合、すなわち、サブプランが３階層以上にわたって入れ子構造になっている場合もある。
【０１１０】
なお、詳しくは後述するように、処理の過程で複数プラン格納部１１からあるプランが削除されることがある。また、処理の過程であるプランが修正されることがある。
【０１１１】
プラン実行管理部１２は、基本的には第１の実施形態と同様、複数プラン格納部１１にある複数のプランのうちから、所定の選択方法に従って、１つを選択する。ただし、第１の実施形態のように、選択されたプランの先頭のアクションをアクション実行部１３に実行させるとは限らず、本実施形態では、後述するように、その選択したプランに従って次に実行すべきアクションを選択し、選択したアクションをアクション実行部１３に実行させる。また、第１の実施形態と同様、プラン実行管理部１２は、空プラン（本実施形態では、［］又は｛｝）が複数プラン格納部１１に存在するときは、プラン実行が成功したとみなして、任意の後処理を行った上で、情報処理を終了する。また、第１の実施形態と同様、プラン実行管理部１２は、複数プラン格納部１１にプランが存在しないときは、プラン実行が失敗したとみなして、任意の後処理を行った上で、情報処理を終了する。
【０１１２】
アクション実行部１３は、第１の実施形態と同様である。
【０１１３】
プラン修正部１４は、第１の実施形態と同様、アクションが１つ実行されるたびに、そのアクションの実行結果に従って、アクション副作用知識格納部１５の各データに基づいて、複数プラン格納部１１に格納されている各プランの修正を行う（詳しくは後述するように、一部又は全部のプランが修正されないこともある）。ただし、本実施形態では、半順序プランを対象としているので、後に示すように、第１の実施形態とは修正の方法が若干相違してくる。
【０１１４】
アクション副作用知識格納部１５に格納される各データは、あるアクションａの副作用についてのデータで、以下の４つのうちのいずれかの形をしている。
【０１１５】
（タイプ１）アクションａの実行は副作用を持たない。
（タイプ２）アクションａの実行は副作用を持ち、この副作用を無くすためには、アクションｂを実行すればよい。ただし、アクションｂの実行順序は重要である。
（タイプ３）アクションａの実行は副作用を持ち、この副作用を無くすためには、アクションｃを実行すればよい。ただし、アクションｃの実行順序は重要でない。
（タイプ４）アクションａの実行は副作用を持ち、この副作用を無くすことは不可能である。
【０１１６】
タイプ３のアクションｃは、タイプ２のアクションｂより制約がゆるい。タイプ３のアクションは、いつ実行してもアクションａの副作用を無くすことができることを意味する。それに対し、タイプ２のアクションｂは、アクションａを実行した直後の状態で実行するときのみ、アクションａの実行の副作用を無くすことができることを意味する。
【０１１７】
図８（ａ）に、アクション副作用知識格納部１５にアクション副作用知識をテーブルの形で格納する場合における該テーブルの一例を示す。この例では、１つのエントリは、対象となるアクションを示すデータと、そのタイプ（上記のタイプのいずれか）を示すデータと、タイプが２または３である場合における当該対象となるアクションの副作用を無くすためのアクションを示すデータとを含む。なお、かりに、あるアクションに対するアクション副作用知識がアクション副作用知識格納部１５に格納されていない場合には、タイプ４として扱う方法、エラーとして異常終了する方法、タイプ１として扱う方法など、種々の方法が可能である。
【０１１８】
なお、例えば、図８（ｂ）のように、上記のタイプ２と３を取り纏めてタイプｉｉとし（上記のタイプ１をタイプｉとし、タイプ４をタイプｉｉｉとして）、タイプを３種類にし、タイプｉｉのテーブル中の“（副作用を無くすためのアクションの）実行順序の重要性”を示すフィールドの値が、“有り”の場合には、“アクションａの実行は副作用を持ち、この副作用を無くすためには、アクションｂを実行すればよい。ただし、アクションｂの実行順序は重要である。”（すなわち、上記のタイプ２）を表し、“無し”の場合には、“アクションａの実行は副作用を持ち、この副作用を無くすためには、アクションｃを実行すればよい。ただし、アクションｃの実行順序は重要でない。”（すなわち、タイプ３）を表すようにすることも可能である。
【０１１９】
もちろん、上記の他にも種々の方法が可能である。また、アクション副作用知識格納部１５にアクション副作用知識をテーブル以外の形で格納するようにしてもよい。
【０１２０】
アクションの実行による副作用や、その副作用を無くすためのアクションなどについては、第１の実施形態での説明と同様である。ただし、上述のように、本実施形態では、副作用を無くすためのアクションの実行順序が重要である場合と重要でない場合とがある点が、第１の実施形態と相違している。
【０１２１】
以下、本実施形態の動作について詳細に説明する。
【０１２２】
まず、あるアクションａの実行結果の報告をプラン修正部１４が受けた場合におけるプラン修正部１４による処理について説明する。
【０１２３】
この場合のプラン修正部１４の処理手順例は、第１の実施形態で示した図３と同様である。
【０１２４】
あるアクションａの実行結果の報告を受けると（ステップＳ１）、プラン修正部１４は、それが成功かまたは失敗かに応じて、異なる処理を行う。
【０１２５】
アクションａの実行が成功した場合（ステップＳ２でＹｅｓの場合）には、その時点で複数プラン格納部１１にある各プラン［ａ１，ａ２…，ａｎ］または｛ａ１，ａ２…，ａｎ｝（ｎは１以上）について、成功時の処理を行う（ステップＳ３）。
【０１２６】
なお、本実施形態では、アクションａの実行が成功した場合に、処理対象とするプランが、｛ａ１，ａ２，…，ａｎ｝と表現されているプランか、［ａ１，ａ２，…，ａｎ］と表現されているプランかによって、成功時の処理手順が相違するものになっている。
【０１２７】
図９に、処理対象のプランが｛ａ１，ａ２，…，ａｎ｝と表現されている場合の成功時の処理手順の一例を示す。
【０１２８】
処理対象のプラン｛ａ１，ａ２，…，ａｎ｝の各アクション又はサブプランａ１，ａ２，…，ａｎのうちの１つａｉが、実行に成功したアクションａと同一のアクションであるならば（ステップＳ１２１でＹｅｓの場合）、そのプラン｛ａ１，ａ２，…，ａｎ｝からａｉを削除する（ステップＳ１２６）。例えば、ａ２が実行に成功したアクションと同一のアクションであるならばプラン｛ａ１，ａ２，ａ３，…，ａｎ｝を｛ａ１，ａ３，…，ａｎ｝に修正する。
【０１２９】
なお、例えば、処理対象のプラン｛ａ１，ａ２，…，ａｎ｝を構成するａ１，ａ２，…，ａｎのうちの２以上が、実行に成功したアクションａと同一のアクションであることがあり得る場合には、それらのうちの任意の１つを削除すればよい。このような点は、以下においてそれぞれ説明するアクションの削除を伴う他の修正処理の場合も同様である。
【０１３０】
処理対象のプラン｛ａ１，ａ２，…，ａｎ｝の各アクション又はサブプランａ１，ａ２，…，ａｎのうちの１つａｉが、実行に成功したアクションａを消費可能なサブプランであるならば（ステップＳ１２２でＹｅｓの場合）、そのサブプランａｉを修正する（ステップＳ１２７）。ただし、ａｉが［ｘ］に修正された場合には（ｘは任意である）、プランから、ｘの両側にある記号［、および記号］を消去する。
【０１３１】
例えば、サブプランａ２＝［ｂ１，…，ｂｍ］が実行に成功したアクションを消費可能である場合に、サブプランａ２を［ｃ１，…，ｃｉ］に修正し、プラン｛ａ１，［ｂ１，…，ｂｍ］，ａ３，…，ａｎ｝を｛ａ１，［ｃ１，…，ｃｉ］，ａ３，…，ａｎ｝に修正する（ｉが２以上の場合）。ただし、サブプランａ２が［ｃ１］に修正された場合には、プランを｛ａ１，［ｂ１，…，ｂｍ］，ａ３，…，ａｎ｝を｛ａ１，ｃ１，ａ３，…，ａｎ｝に修正する（ｉが１の場合）。
【０１３２】
ここで、サブプランａｉがアクションａを消費可能とは、プランａｉが、実行順序に基づき現時点で実行可能且つアクションａと同一であるアクションを持つか、または、プランａｉが、実行順序に基づき現時点で実行可能且つアクションａと同一であるアクションを包含しているサブプランを持つことを意味する。すなわち、プランａｉを構成しているアクション、又はプランａｉを構成している（下位層の）サブプランを構成しているアクション（又はあるサブプランａｉを構成している（下位層の）サブプランを構成している（さらに下位層の）サブプランを構成しているアクション。以下、サブプランが何階層にわたっても同じ要領である。）のうちで、現在実行することのできるアクションのいずれかが、アクションａと同一である場合に、サブプランａｉがアクションａを消費可能ということになる。
【０１３３】
例えば、処理対象のプランが｛ａ１，ａ２，…，ａｎ｝で表されるケースにおいて、例えばサブプランａ２が［ｂ１，…，ｂｍ］であるとして、このサブプランａ２の先頭のｂ１がアクションａと同一のアクションである場合が、消費可能な場合に該当する（この場合には、プラン｛ａ１，［ａ，ｂ２，…，ｂｍ］，…，ａｎ｝が、｛ａ１，［ｂ２，…，ｂｍ］，…，ａｎ｝に修正される）。
【０１３４】
また、例えば上記のサブプランａ２において、その先頭のｂ１がサブプラン｛ｃ１，…，ｃｋ｝である場合に、ｃ１，…，ｃｋのいずれかがアクションａと同一のアクションである場合が、消費可能な場合に該当する（この場合には、例えばプラン｛ａ１，［｛ｃ１，ａ，ｃ３，…，ｃｋ］，ｂ２，…，ｂｍ］，ａ３，…，ａｎ｝が、｛ａ１，［｛ｃ１，ｃ３，…，ｃｋ］，ｂ２，…，ｂｍ］，ａ３，…，ａｎ｝に修正される（ｃ２＝ａとした場合））。
【０１３５】
また、例えば上記のサブプランａ２において、その先頭のｂ１がサブプラン｛ｃ１，…，ｃｋ｝である場合に、ｃ１，…，ｃｋのいずれもアクションａと同一のアクションではないが、ｃ１，…，ｃｋのいずれかの先頭のアクションがアクションａと同一であるようなサブプランである場合も、消費可能な場合に該当する（この場合には、例えばプラン｛ａ１，［｛ｃ１，［ａ，ｄ２，…，ｄｊ］，ｃ３，…，ｃｋ］，ｂ２，…，ｂｍ］，ａ３，…，ａｎ｝が、｛ａ１，［｛ｃ１，［ｄ２，…，ｄｊ］，ｃ３，…，ｃｋ］，ｂ２，…，ｂｍ］，ａ３，…，ａｎ｝に修正される（ｃ２＝［ａ，ｄ２，…，ｄｊ］とした場合）。
【０１３６】
処理対象のプラン｛ａ１，ａ２，…，ａｎ｝の各アクション又はサブプランａ１，ａ２，…，ａｎの全てが、いずれも、実行に成功したアクションａと同一のアクションでなく、且つ、実行に成功したアクションａを消費可能なサブプランでない場合には、以下のようになる。
【０１３７】
実行に成功したアクションａが副作用をもたないならば（ステップＳ１２３でＹｅｓの場合）、プラン｛ａ１，ａ２…，ａｎ｝を修正しない（ステップＳ１２８）。
【０１３８】
実行に成功したアクションａが副作用をもち、アクションａの副作用を取り消すアクションが存在しないならば（ステップＳ１２４でＹｅｓの場合）、処理対象のプラン｛ａ１，ａ２…，ａｎ｝を複数プラン格納部１１から消去する（ステップＳ１２９）。
【０１３９】
実行に成功したアクションａが副作用をもち、その副作用を取り消すアクションｂが存在し、そのアクションｂの実行順序が重要であるならば（ステップＳ１２５でＹｅｓの場合）、処理対象のプラン｛ａ１，ａ２…，ａｎ｝を［ｂ，｛ａ１，ａ２…，ａｎ｝］に修正する（ステップＳ１３０）。
【０１４０】
実行に成功したアクションａが副作用をもち、その副作用を取り消すアクションｂが存在し、そのアクションｂの実行順序が重要でないならば（ステップＳ１２５でＮｏの場合）、処理対象のプラン｛ａ１，ａ２…，ａｎ｝を｛ｂ，ａ１，ａ２…，ａｎ｝に修正する（ステップＳ１３１）。
【０１４１】
図１０に、処理対象のプランが［ａ１，ａ２，…，ａｎ］と表現されている場合の成功時の処理手順の一例を示す。
【０１４２】
処理対象のプラン［ａ１，ａ２…，ａｎ］の先頭のａ１が、実行に成功したアクションａと同一のアクションであるならば（ステップＳ１４１でＹｅｓの場合）、そのプランの先頭のアクションを削除する、すなわち、プラン［ａ１，ａ２…，ａｎ］を［ａ２…，ａｎ］に修正する（ステップＳ１４６）。
【０１４３】
処理対象のプラン［ａ１，ａ２…，ａｎ］の先頭のａ１が、実行に成功したアクションａを消費可能なプランであるならば（ステップＳ１４２でＹｅｓの場合）、そのサブプランａ１を修正する（ステップＳ１４７）。ただし、ａ１が｛ｘ｝に修正された場合には（ｘは任意である）、プランから、ｘの両側にある記号｛、および記号｝を消去する。
【０１４４】
例えば、サブプランａ１＝｛ｂ１，…，ｂｍ｝が実行に成功したアクションを消費可能である場合に、サブプランａ１を［ｃ１，…，ｃｉ］に修正し、プラン［｛ｂ１，…，ｂｍ｝，ａ２，ａ３，…，ａｎ］を［｛ｃ１，…，ｃｉ｝，ａ２，ａ３，…，ａｎ］に修正する（ｉが２以上の場合）。ただし、サブプランａ２が｛ｃ１｝に修正された場合には、プラン［｛ｂ１，…，ｂｍ｝，ａ２，ａ３，…，ａｎ］を［ｃ１，ａ２，ａ３，…，ａｎ｝に修正する（ｉが１の場合）。
【０１４５】
ここで、あるサブプランａｉがアクションａを消費可能とは、前述したとおりである。
【０１４６】
例えば、処理対象のプランが［ａ１，ａ２，…，ａｎ］で表されるケースにおいて、その先頭のａ１がサブプランであり、このサブプランａ１＝｛ｂ１，…，ｂｍ｝であるとして、ｂ１，…，ｂｍのいずれかがアクションａと同一のアクションである場合が、消費可能な場合に該当する（この場合には、例えばプラン［｛ｂ１，ａ，ｂ３，…，ｂｍ｝，ａ２，…，ａｎ］が、［｛ｂ１，ｂ３，…，ｂｍ｝，ａ２，…，ａｎ］に修正される（ｂ２＝ａとした場合））。
【０１４７】
また、例えば上記のサブプランａ１において、ｂ１，…，ｂｍのいずれもアクションａと同一のアクションではないが、ｂ１，…，ｂｍのいずれかが、その先頭のアクションがアクションａと同一であるようなサブプランである場合が、消費可能な場合に該当する（この場合には、例えばプラン［｛ｂ１，［ａ，ｃ２，…，ｃｋ］，ｂ３，…，ｂｍ｝，ａ２，…，ａｎ］が、［｛ｂ１，［ｃ２，…，ｃｋ］，ｂ３，…，ｂｍ｝，ａ２，…，ａｎ］に修正される（ｂ２＝［ａ，ｃ２，…，ｃｋ］とした場合））。
【０１４８】
また、例えば上記のサブプランａ１において、ｂ１，…，ｂｍのいずれも、その先頭のアクションがアクションａと同一であるようなサブプランではないが、ｂ１，…，ｂｍのいずれかが、サブプラン［ｃ１，ｃ２，…，ｃｋ］であり且つその先頭のｃ１が、アクションａと同一であるアクションを含むようなサブプラン（例えば、｛ｄ１，ａ，ｄ３，…，ｄｊ｝）である場合が、消費可能な場合に該当する（この場合には、例えばプラン［｛ｂ１，［｛ｄ１，ａ，ｄ３，…，ｄｊ｝，ｃ２，…，ｃｋ］，ｂ３，…，ｂｍ｝，ａ２，…，ａｎ］が、［｛ｂ１，［｛ｄ１，ｄ３，…，ｄｊ｝，ｃ２，…，ｃｋ］，ｂ３，…，ｂｍ｝，ａ２，…，ａｎ］に修正される（ｃ１＝｛ｄ１，ａ，ｄ３，…，ｄｊ｝とした場合））。
【０１４９】
処理対象のプラン［ａ１，ａ２…，ａｎ］の先頭のａ１が、実行に成功したアクションａと同一のアクションでなく、且つ、実行に成功したアクションａを消費可能なサブプランでない場合には、以下のようになる。
【０１５０】
実行に成功したアクションａが副作用をもたないならば（ステップＳ１４３でＹｅｓの場合）、処理対象のプラン［ａ１，ａ２…，ａｎ］を修正しない（ステップＳ１４８）。
【０１５１】
実行に成功したアクションａが副作用をもち、アクションａの副作用を取り消すアクションが存在しないならば（ステップＳ１４４でＹｅｓの場合）、処理対象のプラン［ａ１，ａ２…，ａｎ］を複数プラン格納部１１から消去する（ステップＳ１４９）。
【０１５２】
実行に成功したアクションａが副作用をもち、その副作用を取り消すアクションｂが存在し、そのアクションｂの実行順序が重要であるならば（ステップＳ１４５でＹｅｓの場合）、処理対象のプラン［ａ１，ａ２…，ａｎ］を［ｂ，ａ１，ａ２…，ａｎ］に修正する（ステップＳ１５０）。
【０１５３】
実行に成功したアクションａが副作用をもち、その副作用を取り消すアクションｂが存在し、そのアクションｂの実行順序が重要でないならば（ステップＳ１４５でＮｏの場合）、処理対象のプラン［ａ１，ａ２…，ａｎ］を｛ｂ，［ａ１，ａ２…，ａｎ］｝に修正する（ステップＳ１５１）。
【０１５４】
一方、アクションａの実行が失敗した場合（ステップＳ２でＮｏの場合）には、複数プラン格納部１１にある、［ａ１，ａ２…，ａｎ］又は｛ａ１，ａ２…，ａｎ｝（ｎは１以上）で表現される各々のプランについて、失敗時の処理を行う（ステップＳ４）。
【０１５５】
図１１に、失敗時の処理手順の一例を示す。
【０１５６】
処理対象のプランが、実行に失敗したアクションａを消費可能であるならば（ステップＳ１６１でＹｅｓの場合）、該プランを複数プラン格納部１１から消去する（ステップＳ１６２）。
【０１５７】
処理対象のプランが、実行に失敗したアクションａを消費可能でないならば（ステップＳ１６１でＮｏの場合）、該プランを修正しない（ステップＳ１６３）。
【０１５８】
ここで、プランがアクションａを消費可能か否かの判断の手順について説明する。なお、この判断の手順は、処理対象とするプランが、｛ａ１，ａ２，…，ａｎ｝と表現されているプランか、［ａ１，ａ２，…，ａｎ］と表現されているプランかによって、相違するものになっている。
【０１５９】
まず、処理対象とするプランが、｛ａ１，ａ２，…，ａｎ｝と表現されているプランである場合について説明する。
【０１６０】
図１２に、この場合の処理手順の一例を示す。
【０１６１】
処理対象のプラン｛ａ１，ａ２，…，ａｎ｝の各アクション又はサブプランａ１，ａ２，…，ａｎのうちの１つが、アクションａと同一のアクションであるならば（ステップＳ１８１でＹｅｓの場合）、該プラン｛ａ１，ａ２，…，ａｎ｝はアクションａを消費可能と判定する（ステップＳ１８３）。
【０１６２】
処理対象のプラン｛ａ１，ａ２，…，ａｎ｝の各アクション又はサブプランａ１，ａ２，…，ａｎのうちの１つが、アクションａを消費可能なサブプランであるならば（ステップＳ１８２でＹｅｓの場合）、該プラン｛ａ１，ａ２，…，ａｎ｝はアクションａを消費可能と判定する（ステップＳ１８３）。
【０１６３】
処理対象のプラン｛ａ１，ａ２，…，ａｎ｝の各アクション又はサブプランａ１，ａ２，…，ａｎの全てが、いずれも、アクションａと同一のアクションでなく、且つ、アクションａを消費可能なサブプランでないならば（ステップＳ１８１でＮｏ且つステップＳ１８２でＮｏの場合）、該プラン｛ａ１，ａ２，…，ａｎ｝はアクションａを消費不可能と判定する（ステップＳ１８４）。
【０１６４】
次に、処理対象とするプランが、［ａ１，ａ２，…，ａｎ］と表現されているプランである場合について説明する。
【０１６５】
図１３に、この場合の処理手順の一例を示す。
【０１６６】
ｎ＝０である場合には（ステップＳ２０１でＮｏの場合）、該プラン［ａ１，ａ２，…，ａｎ］はアクションａを消費不可能と判定する（ステップＳ２０５）。
【０１６７】
ｎ＝０でない場合には、以下のようになる。
【０１６８】
処理対象のプラン［ａ１，ａ２…，ａｎ］の先頭のａ１が、アクションａと同一のアクションであるならば（ステップＳ２０２でＹｅｓの場合）、該プラン［ａ１，ａ２，…，ａｎ］はアクションａを消費可能と判定する（ステップＳ２０４）。
【０１６９】
処理対象のプラン［ａ１，ａ２…，ａｎ］の先頭のａ１が、アクションａを消費可能なプランであるならば（ステップＳ２０３でＹｅｓの場合）、該プラン［ａ１，ａ２，…，ａｎ］はアクションａを消費可能と判定する（ステップＳ２０４）。
【０１７０】
処理対象のプラン［ａ１，ａ２…，ａｎ］の先頭のａ１が、アクションａと同一のアクションでなく、且つ、実行に成功したアクションａを消費可能なサブプランでないならば（ステップＳ２０２でＮｏ且つステップＳ２０３でＮｏの場合）、該プラン［ａ１，ａ２，…，ａｎ］はアクションａを消費不可能と判定する（ステップＳ２０５）。
【０１７１】
次に、本実施形態の全体的なの処理の流れについて説明する。
【０１７２】
図１４に、全体的な処理手順の一例を示す。
【０１７３】
まず、複数プラン格納部１１にプランを１個以上格納する（ステップＳ２２１）。このとき、複数プラン格納部１１に格納するプランの作成手段は問わない。例えば、いわゆるプラナ−で作成してもよいし、人間が作ってもよいし、フロッピーディスク等の記憶装置に記憶させてある複数のプランを用いてもよい。
【０１７４】
以降、次のようなループ処理を、ループを抜ける条件が成立するまで、繰り返す。
【０１７５】
複数プラン格納部１１にプランが１個以上存在しなければ（ステップＳ２２２でＮｏの場合）、プランは実行できないので、プランの実行は失敗したとみなして、プラン実行管理部１２が任意の後処理を行い（ステップＳ２２７）、情報処理を終了する。
【０１７６】
複数プラン格納部１１に空プラン［］または｛｝（何も実行しないというプラン）が存在するときは（ステップＳ２２２でＹｅｓ且つステップＳ２２３でＹｅｓの場合）、プランの実行は成功したとみなして、プラン実行管理部１２が任意の後処理を行い（ステップＳ２２８）、情報処理を終了する。
【０１７７】
複数プラン格納部１１に１個以上のプランは存在するが、空プラン［］または｛｝が存在しないならば（ステップＳ２２２でＹｅｓ且つステップＳ２２３でＮｏの場合）、まず、プラン実行管理部１２はそのなかの１つのプランを選択し、そのプランに従って次に行うべきアクションａを選択し、アクション実行部１３にそのアクションａの実行を依頼する（ステップＳ２２４）。
【０１７８】
ここで、複数のプランから１つのプランを選択する方法（図１４のステップＳ２２４参照）としては、種々のバリエーションが考えられる。
【０１７９】
例えば、まず、副作用を持つアクションを含まないプランを優先的に選択し（そのようなプランが複数あれば、ランダムにあるいは他の基準で１つを選択し）、そのようなプランが存在しないときには、副作用を持ち且つ該副作用を取り消すアクションが存在しないアクションの数が少ないプランを優先的に選択する（そのようなプランが複数あれば、ランダムにあるいは他の基準で１つを選択する）、というプラン選択基準が考えられる。
【０１８０】
また、例えば、最も少ない個数のアクションを含むプランから優先的に選択する（そのようなプランが複数あれば、ランダムにあるいは他の基準で１つを選択する）、という選択基準も考えられる。
【０１８１】
また、例えば、各アクションに成功確率に関する情報があるときに、全てのアクションが成功する確率が高いプランから優先して選択する（そのようなプランが複数あれば、ランダムにあるいは他の基準で１つを選択する）、という選択基準も考えられる。
【０１８２】
また、例えば、各アクションにコストに関する情報があるときに、全てのアクションの総コストが最も低いプランから優先して選択する（そのようなプランが複数あれば、ランダムにあるいは他の基準で１つを選択する）、という選択基準も考えられる。
【０１８３】
また、例えば、前回に選択されたプランが残存している場合には、そのプランを続けて選択し、前回に選択されたプランが消去されて残存していないか、または一番最初の選択である場合には、何らかの基準（例えば、上記した基準）でプランを１つ選択する、という選択基準も考えられる。
【０１８４】
また、例えば、直前に実行したアクションを要素とするサブプラン全体の実行が完了していない場合には、当該サブプランを含むプラン（すなわち、直前に選択したプランと同一のプラン）を選択する、という選択基準も考えられる。
【０１８５】
また、例えば、各プランに番号を付加し、残存しているプランのうちで最も小さい番号を持つものを選択する、という選択基準も考えられる。
【０１８６】
また、例えば、上記の選択基準の全部または一部を含む複数の選択基準を併用する方法も考えられる。
【０１８７】
また、そのプランに、選択可能なアクション（すなわち、実行順序に基づき現時点で実行可能なアクション）が複数存在する場合（例えば、プラン［｛ａ，ｂ，ｃ｝，ｄ］では、ａ，ｂ，ｃのいずれも選択可能である）に、１つのアクションを選択する方法としても、種々のバリエーションが考えられる。
【０１８８】
例えば、プランの記述に出現する順番に選択する、というアクション選択基準が考えられる。
【０１８９】
また、例えば、ランダムに選択する、という選択基準が考えられる。
【０１９０】
また、例えば、まず、副作用の無いアクションを優先的に選択し（そのようなアクションが複数あれば、ランダムにあるいは他の基準で１つを選択し）、そのようなアクションが存在しないときには、副作用を取り消すアクションが存在するアクションを優先的に選択し（そのようなアクションが複数あれば、ランダムにあるいは他の基準で１つを選択し）、そのようなアクションも存在しないときには、副作用を取り消すアクションが存在しないプランを選択する（そのようなアクションが複数あれば、ランダムにあるいは他の基準で１つを選択する）、というアクション選択基準が考えられる。
【０１９１】
また、例えば、プランがアクションのみから構成されるか又はアクションとサブプランから構成されていれば、プランを構成するアクションから優先的に選択し（そのようなアクションが複数あれば、ランダムにあるいは他の基準で１つを選択し）、プランがサブプランのみから構成されていれば、保持するアクション数が最も少ないサブプランに含まれるアクションから優先的に選択する（そのようなサブプランが複数あれば、ランダムにあるいは他の基準で１つを選択する）、という選択基準も考えられる。例えば、次のａ１〜ａ３，ｂ１〜ｂ４，ｃ１〜ｃ５はすべてアクションであるものとして、あるプランが｛［ａ１，ａ２，ａ３］，［ｂ１，ｂ２，ｂ３，ｂ４］，ｃ１｝である場合には、該プランを構成するアクションｃ１を選択し、あるプランが｛［ａ１，ａ２，ａ３］，［ｂ１，ｂ２，ｂ３，ｂ４］，［ｃ１，ｃ２，ｃ３，ｃ４，ｃ５］｝である場合には、該プランを構成するサブプラン［ａ１，ａ２，ａ３］に含まれるアクションａ１を選択する。
【０１９２】
また、例えば、上記の選択基準の全部または一部を含む複数の選択基準を併用する方法も考えられる。
【０１９３】
次いで、アクションａの実行依頼をうけたアクション実行部１３は、アクションａを実行し、その実行結果をプラン修正部１４に報告する（ステップＳ２２５）。
【０１９４】
次いで、アクションａの実行結果の報告を受けたプラン修正部１４は、その実行結果に従って、前述した図３のフローチャートで示される情報処理方法で、複数プラン格納部１１に格納されている各プランを修正する（ステップＳ２２６）。
【０１９５】
そして、ステップＳ２２２に戻って、再度、ループ処理を行う。
【０１９６】
なお、これまで示した各々の手順は一例であり、それぞれ適宜修正することが可能である（例えば、各条件分岐の箇所や順序を入れ替えてもよい）。
【０１９７】
これまでの説明では、アクションを１つ実行するたびにプランを修正しているが、そうではなく、プラン実行管理部１２が、選択したプランに従って複数のアクションの実行を１つずつ順番に又は部分的に並列にアクション実行部１３に依頼することによって、選択した１つのプランに基づいてアクションをいくつか実行し（該選択したプランを実行している間はプランの修正処理は行わずに、その間に実行されたアクションを実行された順番とともに、実行済みのアクションの履歴として、記憶部に記憶しておき）、その後に、その実行中のプランの実行を中止して、それ以外の別のプランの実行を決定したときに（つまり、別のプランを選択したときに）、該実行済みのアクションの履歴をもとにプランの修正処理を行う方法も可能である。
【０１９８】
さて、以下では、具体例を用いて本実施形態について詳しく説明する。
【０１９９】
まず、以下の４つのプランを複数プラン格納部１１に格納するものとする（ステップＳ２２１）。
【０２００】
（プラン１）：［｛ｂｕｙ（ｐｏｔａｔｏ），ｂｕｙ（ｐｏｒｋ），ｂｕｙ（ｃｕｒｒｙｐｏｗｄｅｒ）｝，ｃｏｏｋ（ｃｕｒｒｙ）］
（プラン２）：［｛ｂｕｙ（ｐｏｒｋ），ｂｕｙ（ｐｏｔａｔｏ），｝，ｃｏｏｋ（ｎｉｋｕｊａｇａ）］
（プラン３）：［｛ｂｕｙ（ｒｉｃｅ），ｂｕｙ（ｃｕｒｒｙｐｏｗｄｅｒ）｝，ｃｏｏｋ（ｄｒｙｃｕｒｒｙ）］
（プラン４）：［｛ｂｕｙ（ｋｉｍｕｃｈｉ），ｂｕｙ（ｐｏｒｋ）｝，ｃｏｏｋ（ｂｕｔａｋｉｍｕｃｈｉ）］
ここで、ｂｕｙ（…）は、…で指定された物を買うアクションを示し、
ｃｏｏｋ（…）は、…で指定された料理を作るアクションを示すものとする。
【０２０１】
プラン１は、ジャガイモと豚肉とカレー粉を買ってからカレーを作るというプランである。２つの記号｛と、記号｝で囲まれたサブプラン｛ｂｕｙ（ｐｏｔａｔｏ），ｂｕｙ（ｐｏｒｋ），ｂｕｙ（ｃｕｒｒｙｐｏｗｄｅｒ）｝は、ジャガイモを買うアクションと豚肉を買うアクションとカレー粉を買うアクションとを含むが、それらの実行順序（豚肉とジャガイモとカレー粉を買う順番）は任意であることを示している。また、このサブプランとｃｏｏｋ（ｃｕｒｒｙ）とは、２つの記号［と、記号］で囲まれているので、ジャガイモと豚肉とカレー粉を買った後にカレーを作る必要があることになる。
【０２０２】
同様に、プラン２は、豚肉とジャガイモを（任意の順番で）買った後に、肉じゃがを作る、というプランである。
【０２０３】
同様に、プラン３は、米とカレー粉を（任意の順番で）買った後に、ドライカレーを作る、というプランである。
【０２０４】
同様に、プラン４は、キムチと豚肉を（任意の順番で）買った後に、豚キムチを作る、というプランである。
【０２０５】
なお、この説明では、便宜上、各プランに固有の連番を付加して説明するが、実際のシステムでは、連番以外の固有の識別情報を付加する方法、プランが削除されるごとに識別情報が付け代わっていく（例えば、連番でを付加する場合に、削除されたプラン以降のプランの番号が１ずつ少なくなるようにシフトする）方法、識別情報を使用しない方法なども考えられる。
【０２０６】
まず、プラン実行管理部１２が所定の選択基準（例えば、最初のプランを選択する、など）に従ってプラン１を選択したとする。
【０２０７】
次に、プラン実行管理部１２は、その選択されたプラン１に従って、実行すべきアクションを選択する。プラン１では、まず、｛ｂｕｙ（ｐｏｔａｔｏ），ｂｕｙ（ｐｏｒｋ），ｂｕｙ（ｃｕｒｒｙｐｏｗｄｅｒ）｝を実行する必要があるが、ｂｕｙ（ｐｏｔａｔｏ）とｂｕｙ（ｐｏｒｋ）とｂｕｙ（ｃｕｒｒｙｐｏｗｄｅｒ）はどのような順番で実行しても構わない。ここでは、所定の選択基準（例えば、最初のアクション又はサブプランを選択する、など）に従ってｂｕｙ（ｐｏｔａｔｏ）を選択したとする。プラン実行管理部１２は、選択したｂｕｙ（ｐｏｔａｔｏ）の実行をアクション実行部１３に依頼する（ステップＳ２２４）。
【０２０８】
アクション実行部１３は、このアクションを実行し、そのアクション実行が成功したとする。アクション実行部１３は、そのアクションの実行結果をプラン修正部１４に報告する（ステップＳ２２５）。
【０２０９】
そのアクションの実行結果を受けて、プラン修正部１４は、上記の各プランを、それぞれ、次に示すように修正する（ステップＳ２２６）。ここで、取消アクション知識には、ｂｕｙ（ｐｏｔａｔｏ）を取り消すアクションは、ｒｅｔｕｒｎ（ｐｏｔａｔｏ）であり、この取消アクションは、いつ実行されてもよい（すなわち、タイプ３）と記述されているとする。この場合、プラン１，２は、図１０のステップＳ１４７によって処理されることになり、プラン３，４は、図１０のステップＳ１５１によって処理されることになる。
【０２１０】
（プラン１）：［｛ｂｕｙ（ｐｏｒｋ），ｂｕｙ（ｃｕｒｒｙｐｏｗｄｅｒ）｝，ｃｏｏｋ（ｃｕｒｒｙ）］
（プラン２）：［ｂｕｙ（ｐｏｒｋ），ｃｏｏｋ（ｎｉｋｕｊａｇａ）］
（プラン３）：｛ｒｅｔｕｒｎ（ｐｏｔａｔｏ），［｛ｂｕｙ（ｒｉｃｅ），ｂｕｙ（ｃｕｒｒｙｐｏｗｄｅｒ）｝，ｃｏｏｋ（ｄｒｙｃｕｒｒｙ）］｝
（プラン４）：｛ｒｅｔｕｒｎ（ｐｏｔａｔｏ），［｛ｂｕｙ（ｋｉｍｕｃｈｉ），ｂｕｙ（ｐｏｒｋ）｝，ｃｏｏｋ（ｂｕｔａｋｉｍｕｃｈｉ）］｝
ここで、修正後のプラン１，２では、修正前のプランと比較して、ｂｕｙ（ｐｏｔａｔｏ）が削除されたものになっている（なお、プラン２では、｛ｂｕｙ（ｐｏｒｋ）｝のように｛　｝内の要素が１つになったので、２つの記号｛と、記号｝が削除されている）。
【０２１１】
一方、修正後のプラン３，４では、ｒｅｔｕｒｎ（ｐｏｔａｔｏ）が、修正前のプラン［…］に対して、｛ｒｅｔｕｒｎ（ｐｏｔａｔｏ），［…］｝のように付加されたものになっている。すなわち、修正後のプラン３，４では、ｒｅｔｕｒｎ（ｐｏｔａｔｏ）は、修正後のプラン［…］に相当する部分に対して、どのようなタイミングで実行してもよいことを示している。すなわち、修正後のプラン３では、ｒｅｔｕｒｎ（ｐｏｔａｔｏ）と［｛ｂｕｙ（ｋｉｍｕｃｈｉ），ｂｕｙ（ｐｏｒｋ）｝，ｃｏｏｋ（ｂｕｔａｋｉｍｕｃｈｉ）］の実行順序は任意であり、また、ｂｕｙ（ｒｉｃｅ）とｂｕｙ（ｃｕｒｒｙｐｏｗｄｅｒ）の実行順序も任意である。同様に、修正後のプラン４では、ｒｅｔｕｒｎ（ｐｏｔａｔｏ）と［｛ｂｕｙ（ｋｉｍｕｃｈｉ），ｂｕｙ（ｐｏｒｋ）｝，ｃｏｏｋ（ｂｕｔａｋｉｍｕｃｈｉ）］の実行順序は任意であり、また、ｂｕｙ（ｋｉｍｕｃｈｉ）とｂｕｙ（ｐｏｒｋ）の実行順序も任意である。
【０２１２】
次に、プラン実行管理部１２が所定の選択基準（例えば、最初のプランを選択する、あるいは、直前に実行したアクションを含むサブプランの実行が完了していない場合には、当該直前に実行したアクションを含むサブプランを含むプラン（すなわち、直前に選択したプランと同一のプラン）を選択する、など）に従ってプラン１を選択したとする。
【０２１３】
次に、プラン実行管理部１２は、その選択されたプラン１に従って、実行すべきアクションを選択する。現在のプラン１では、まず、｛ｂｕｙ（ｐｏｒｋ），ｂｕｙ（ｃｕｒｒｙｐｏｗｄｅｒ）｝を実行する必要があるが、ｂｕｙ（ｐｏｒｋ）とｂｕｙ（ｃｕｒｒｙｐｏｗｄｅｒ）はどのような順番で実行しても構わない。ここでは、所定の選択基準（例えば、最初のアクション又はサブプランを選択する、など）に従ってｂｕｙ（ｐｏｒｋ）を選択したとする。プラン実行管理部１２は、選択したｂｕｙ（ｐｏｒｋ）の実行をアクション実行部１３に依頼する（ステップＳ２２４）。
【０２１４】
アクション実行部１３は、このアクションを実行し、そのアクション実行が成功したとする。アクション実行部１３は、そのアクションの実行結果をプラン修正部１４に報告する（ステップＳ２２５）。
【０２１５】
そのアクションの実行結果を受けて、プラン修正部１４は、上記の各プランを、それぞれ、次に示すように修正する（ステップＳ２２６）。ここで、取消アクション知識には、ｂｕｙ（ｐｏｒｋ）を取り消すアクションは、ｒｅｔｕｒｎ（ｐｏｒｋ）であり、この取消アクションは、いつ実行されてもよい（すなわち、タイプ３）と記述されているとする。この場合、プラン１は、図１０のステップＳ１４７によって処理されることになり、プラン２は、図１０のステップＳ１４６によって処理されることになり、プラン３は、図９のステップＳ１３１によって処理されることになり、プラン４は、図１０のステップＳ１２７によって処理されることになる。
【０２１６】
（プラン１）：［ｂｕｙ（ｃｕｒｒｙｐｏｗｄｅｒ），ｃｏｏｋ（ｃｕｒｒｙ）］
（プラン２）：［ｃｏｏｋ（ｎｉｋｕｊａｇａ）］
（プラン３）：｛ｒｅｔｕｒｎ（ｐｏｒｋ），ｒｅｔｕｒｎ（ｐｏｔａｔｏ），［｛ｂｕｙ（ｒｉｃｅ），ｂｕｙ（ｃｕｒｒｙｐｏｗｄｅｒ）｝，ｃｏｏｋ（ｄｒｙｃｕｒｒｙ）］｝
（プラン４）：｛ｒｅｔｕｒｎ（ｐｏｔａｔｏ），［ｂｕｙ（ｋｉｍｕｃｈｉ），ｃｏｏｋ（ｂｕｔａｋｉｍｕｃｈｉ）］｝
次に、プラン実行管理部１２が所定の選択基準（例えば、最初のプランを選択する、あるいは、直前に実行したアクションを含むサブプランの実行が完了していない場合には、当該直前に実行したアクションを含むサブプランを含むプラン（すなわち、直前に選択したプランと同一のプラン）を選択する、など）に従ってプラン１を選択したとする。
【０２１７】
次に、プラン実行管理部１２は、その選択されたプラン１に従って、実行すべきアクションを選択する。現在のプラン１では、まず、ｂｕｙ（ｃｕｒｒｙｐｏｗｄｅｒ）を実行する必要があるので、ここでは、ｂｕｙ（ｃｕｒｒｙｐｏｗｄｅｒ）が選択されたとする。プラン実行管理部１２は、選択したｂｕｙ（ｃｕｒｒｙｐｏｗｄｅｒ）の実行をアクション実行部１３に依頼する（ステップＳ２２４）。
【０２１８】
アクション実行部１３は、このアクションを実行し、そのアクション実行が失敗したとする。アクション実行部１３は、そのアクションの実行結果をプラン修正部１４に報告する（ステップＳ２２５）。
【０２１９】
そのアクションの実行結果を受けて、プラン修正部１４は、上記の各プランを、それぞれ、次に示すように修正する（ステップＳ２２６）。この場合、プラン１，３は、図１１のステップＳ１６２によって処理される（ｂｕｙ（ｃｕｒｒｙｐｏｗｄｅｒ）を消費可能なので、消去される）ことになり、プラン２，４は、図１１のステップＳ１６３によって処理される（ｂｕｙ（ｃｕｒｒｙｐｏｗｄｅｒ）を消費不可能なので、修正されない）ことになる。
【０２２０】
（プラン２）：［ｃｏｏｋ（ｎｉｋｕｊａｇａ）］
（プラン４）：｛ｒｅｔｕｒｎ（ｐｏｔａｔｏ），［ｂｕｙ（ｋｉｍｕｃｈｉ），ｃｏｏｋ（ｂｕｔａｋｉｍｕｃｈｉ）］｝
ここで、これまで選択されてきたプラン１は、消去されたため使えない。代わりに、プラン実行管理部１２が所定の選択基準（例えば、最初のプランを選択する、など）に従って上記のうちのプラン２を選択したとする。
【０２２１】
次に、プラン実行管理部１２は、その選択されたプラン２に従って、実行すべきアクションを選択する。プラン２は、その要素がｃｏｏｋ（ｎｉｋｕｊａｇａ）だけであるので、ｃｏｏｋ（ｎｉｋｕｊａｇａ）が選択されたとする。プラン実行管理部１２は、選択したｃｏｏｋ（ｎｉｋｕｊａｇａ）の実行をアクション実行部１３に依頼する（ステップＳ２２４）。
【０２２２】
アクション実行部１３は、このアクションを実行し、そのアクション実行が成功したとする。アクション実行部１３は、そのアクションの実行結果をプラン修正部１４に報告する（ステップＳ２２５）。
【０２２３】
そのアクションの実行結果を受けて、プラン修正部１４は、上記の各プランを、それぞれ、次に示すように修正する（ステップＳ２２６）。ここで、取消アクション知識には、ｃｏｏｋ（ｎｉｋｕｊａｇａ）の実行は副作用があり、この副作用を取り消すことが出来ない（すなわち、タイプ４）と記述されているとする。この場合、プラン２は、図１０のステップＳ１４６によって処理されることになり、プラン４は、図１０のステップＳ１４９によって処理される（ｃｏｏｋ（ｎｉｋｕｊａｇａ）を消費不可能であり、ｃｏｏｋ（ｎｉｋｕｊａｇａ）の副作用を取り消すことが出来ないので、消去される。）ことになる。
【０２２４】
（プラン２）：［］
しかして、複数プラン格納部１１に残ったプランは、上記のように空プラン（プラン２）１つである。そこで、プラン実行管理部１２は、プランの実行は成功とみなして、後処理（例えば、予約した航空券の表示）を行い、情報処理を終了する（ステップＳ２２８）。この空プランは、もう何もアクションを実行しなくてもよいことを意味する。すなわち、プラン実行が成功したことになる。この具体例の場合には、（プラン２）：［｛ｂｕｙ（ｐｏｒｋ），ｂｕｙ（ｐｏｔａｔｏ），｝，ｃｏｏｋ（ｎｉｋｕｊａｇａ）］に成功したことになる。
【０２２５】
なお、以上の各機能は、ソフトウェアとして実現可能である。
また、本実施形態は、コンピュータに所定の手段を実行させるための（あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるための）プログラムとして実施することもでき、該プログラムを記録したコンピュータ読取り可能な記録媒体として実施することもできる。
【０２２６】
なお、この発明の実施の形態で例示した構成は一例であって、それ以外の構成を排除する趣旨のものではなく、例示した構成の一部を他のもので置き換えたり、例示した構成の一部を省いたり、例示した構成に別の機能あるいは要素を付加したり、それらを組み合わせたりすることなどによって得られる別の構成も可能である。また、例示した構成と論理的に等価な別の構成、例示した構成と論理的に等価な部分を含む別の構成、例示した構成の要部と論理的に等価な別の構成なども可能である。また、例示した構成と同一もしくは類似の目的を達成する別の構成、例示した構成と同一もしくは類似の効果を奏する別の構成なども可能である。
また、この発明の実施の形態で例示した各種構成部分についての各種バリエーションは、適宜組み合わせて実施することが可能である。
また、この発明の実施の形態は、個別装置としての発明、関連を持つ２以上の装置についての発明、システム全体としての発明、個別装置内部の構成部分についての発明、またはそれらに対応する方法の発明等、種々の観点、段階、概念またはカテゴリに係る発明を包含・内在するものである。
従って、この発明の実施の形態に開示した内容からは、例示した構成に限定されることなく発明を抽出することができるものである。
【０２２７】
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【０２２８】
【発明の効果】
本発明によれば、複数の全順序プランをあらかじめ用意しておき、アクションを１つ実行するたびに、その実行済みアクションを考慮に入れて各プラン修正を行うことにより、再プラニングせずに動的な環境に対応することができるようになる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るプラン実行システムの構成例を示す図
【図２】同実施形態に係るアクション副作用知識格納部がアクション副作用知識をテーブルの形で格納する場合におけるテーブルの例を示す図
【図３】あるアクションの実行結果の報告を受けた場合におけるプラン修正部による処理手順の一例を示すフローチャート
【図４】あるアクションの実行が成功した場合におけるプラン修正部による処理手順の一例を示すフローチャート
【図５】あるアクションの実行が失敗した場合におけるプラン修正部による処理手順の一例を示すフローチャート
【図６】同実施形態に係るプラン実行システムの全体的なの処理手順の一例を示すフローチャート
【図７】具体例を説明するための図
【図８】同実施形態に係るアクション副作用知識格納部がアクション副作用知識をテーブルの形で格納する場合におけるテーブルの他の例を示す図
【図９】あるアクションの実行が成功した場合におけるプラン修正部による処理手順の他の例を示すフローチャート
【図１０】あるアクションの実行が成功した場合におけるプラン修正部による処理手順の他の例を示すフローチャート
【図１１】あるアクションの実行が失敗した場合におけるプラン修正部による処理手順の一例を示すフローチャート
【図１２】あるプランがあるアクションを消費可能か否かの判断の手順の一例を示すフローチャート
【図１３】あるプランがあるアクションを消費可能か否かの判断の手順の一例を示すフローチャート
【図１４】同実施形態に係るプラン実行システムの全体的なの処理手順の一例を示すフローチャート
【符号の説明】
１１…複数プラン格納部
１２…プラン実行管理部
１３…アクション実行部
１４…プラン修正部
１５…アクション副作用知識格納部
２１…プラン実行システム
２２…ネットワーク
２３〜２５…予約システム
【図１】
2004005368.tif 000003
【図２】
2004005368.tif 000004
【図３】
2004005368.tif 000005
【図４】
2004005368.tif 000006
【図５】
2004005368.tif 000007
【図６】
2004005368.tif 000008
【図７】
2004005368.tif 000009
【図８】
2004005368.tif 000010
【図９】
2004005368.tif 000011
【図１０】
2004005368.tif 000012
【図１１】
2004005368.tif 000013
【図１２】
2004005368.tif 000014
【図１３】
2004005368.tif 000015
【図１４】
2004005368.tif 000016