STRIPSのソースを表示
←
STRIPS
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
'''STRIPS'''('''St'''anford '''R'''esearch '''I'''nstitute '''P'''roblem '''S'''olver)とは、[[1971年]]、[[:en:Richard Fikes|Richard Fikes]]と[[:en:Nils John Nilsson|Nils John Nilsson]]が開発した[[自動計画]]に関する[[人工知能]]の一種。後にそのシステムの入力に使う[[形式言語]]も同じ名前で呼ばれるようになった。自動計画用の言語としては最も広く利用されている。本項目では、システムではなく言語に関して解説する。 == 定義 == STRIPS のインスタンスは以下の部分から構成される: * 初期状態 (Init) * 目標状態の記述 (Goal) - システムが到達しようとする状況 * 行動 (Actions) - 行動は状態に変化をもたらす操作なので、オペレータ(Operator)とも呼ばれる。各行動には以下の記述が含まれる: ** 事前条件 (Preconditions) - その行動を行うために満たされていなければならない条件 ** 効果/事後条件 (Effects / Postconditions) - その行動を行うことで満足される条件 STRIPS インスタンスを形式的に記述する方法は複数あり、命題論理に立脚したもの、一階述語論理に基づいたもの、グラフ上の遷移に基づいたものなどがある。 === 命題論理形式の定義 === STRIPS のインスタンスは <math>\langle O,I,G \rangle</math> で表され、それぞれの意味は以下である<ref>Hoffmann, Jörg, and Bernhard Nebel. "The FF planning system: Fast plan generation through heuristic search." Journal of Artificial Intelligence Research 14 (2001): 253-302.</ref>: # <math>O</math> (Operators) はオペレータ集合(アクション集合)。各オペレータは <math>o=\langle pre(o), e^+(o), e^-(o) \rangle</math> で表され、 ## <math>pre(o)</math> (precondition) は事前条件、 ## <math>e^+(o)</math> は 効果のうち命題を真とする 追加効果 (Add effect)、 ## <math>e^-(o)</math> は 行動実行後に命題を偽とする削除効果 (Delete effect)である。 # <math>I</math> は初期状態であり、最初に真となっている命題変数の集合である。STRIPSは閉世界仮説を採用するので、ここに記載されていない命題変数は初期状態で偽となる。 # <math>G</math> は目標条件であり、ゴールで真となっているべき命題論理式。 表記は論文によって様々で、これに<math>P</math>(Propositions - 命題論理変数) または<math>V</math> (Variables - 命題変数から)を追加するもの、 <math>O</math>の代わりに<math>A</math>(Actions)、 <math>I</math>のかわりに<math>s_0</math>(0番目の状態(state))、<math>G</math>の代わりに<math>S^*</math>(終わりとなる状態の集合), <math>e^+,e^-</math>のかわりに<math>a,d</math>が使われる場合もある。 オペレータはコスト<math>c</math>を含んで定義される場合もあり、コストのないものは通常すべてのアクションに対してコスト1が仮定される。 === 一階述語論理形式の定義 === 一階述語論理形式の定義では、命題論理形式のアクション集合にパラメータの概念を導入する。 ここでアクションは <math>\langle param, pre, e^+, e^- \rangle</math> で表され、 <math>pre,e^+,e^-</math>は<math>param</math>で修飾される。 === グラフ理論形式の定義 === グラフ理論形式の定義では、 STRIPS インスタンスをグラフ探索アルゴリズムで解かれるグラフ探索問題と同一視する<ref>Helmert, Malte, Patrik Haslum, and Jörg Hoffmann. "Flexible Abstraction Heuristics for Optimal Sequential Planning." ICAPS. 2007.</ref>。 ここでインスタンスは <math>\langle S, s_0 \in S, S^* \subset S, L, T\subset S\times L\times S \rangle</math> で表される。ここで、 <math>S</math>は状態集合でありグラフのノード集合と同一視され、<math>L</math>はアクションを指すラベル、<math>T</math>は状態遷移(Transition)でありグラフのエッジに相当する。 == 自動計画 == 自動計画システムは、以上のような記述を入力として、初期状態から目標状態へと導く計画(すなわち一連の行動実行順序)を導出する。 形式的には状態は命題の集合であり、ある時点の状態はそのときに真である命題の集合で表される。状態間の遷移は遷移関数にモデル化でき、行動の実行によって発生する、ある状態から別の状態への写像とみなせる。状態は行動に対応するため、STRIPS のインスタンス <math>\langle P,O,I,G \rangle</math> に関する遷移関数は次のように表される: {{Indent|<math>\operatorname{succ}: 2^P \times O \rightarrow 2^P,</math>}} ここで、<math>2^P</math> は <math>P</math> の全部分集合の集合であり、システムがとりうる全状態の集合である。 あるアクション <math>a \in O </math> が状態<math>s</math>に適用できる条件は、 <math>s\supseteq pre(a)</math>である。これが満たされている場合、アクションを適用できて、 その結果状態<math>s</math>は以下のような状態<math>s'</math>に遷移する: {| |- | <math>\operatorname{succ}(s,a)</math> | = <math>(s \setminus e^-) \cup e^+</math> |} ここで、<math>e^-,e^+</math>の適用の順番は重要であり、これは同じ命題が<math>e^-</math>、<math>e^+</math>の両方に含まれた場合には追加効果が優先するという動作を決定する。 関数 <math>\operatorname{succ}</math> は以下のように再帰的に行動の列に展開できる: {{Indent| <math>\operatorname{succ}(s,[]) = C</math><br /> <math>\operatorname{succ}(s,[a_1,a_2,\ldots,a_n])=\operatorname{succ}(\operatorname{succ}(s,a_1),[a_2,\ldots,a_n])</math>}} STRIPS のインスタンスの計画は、初期状態から目標状態へと遷移させる一連の行動の並びである。形式的には、<math>s=\operatorname{succ}(I,[a_1,a_2,\ldots,a_n])</math> が<math>G \subseteq s</math>を満たす場合、プラン<math>\pi=[a_1,a_2,\ldots,a_n]</math> がこのインスタンスの解となる。 == 拡張 == これまで説明した言語は、提案段階の STRIPS である。実際には、条件は物体(オブジェクト)に関するものであることが多い。例えば、ロボットの位置をモデル化する際に述語 <math>At</math> を使い、<math>At(room1)</math> なら、ロボットが Room1 にいるという意味を表す。この場合、行動には[[自由変項]]があり、それが暗黙のうちに存在量化される。すなわち、ある行動は各自由変項を特定の値と置換することによって得られる全ての可能な命題的行動を表している。 これまでの説明では、初期状態は必ず全て判明しているとみなしていた。つまり、<math>I</math> に含まれない条件は全て偽であるとされた。この条件は限定的すぎることが多く、具体的に条件を設定しようとすると、初期状態が完全にはわからないことが多い。STRIPS を拡張して部分的な初期状態を扱えるようにする試みがなされてきた。他にも様々な拡張がなされている。 == STRIPSの問題例 == 研究室にサルがいるとする。このサルはバナナを食べたがっている。研究室には3つの場所 A、B、C がある。最初、サルは A にいる。C には箱が置いてある。B にはバナナが天井からつるしてある。つまり、サルは箱を使ってバナナを取らなければならない。 Initial state: At(A), Level(low), BoxAt(C), BananasAt(B) Goal state: Have(Bananas) Actions: // move from X to Y _Move(X, Y)_ Preconditions: At(X), Level(low) Postconditions: not At(X), At(Y) // climb up on the box _ClimbUp(Location)_ Preconditions: At(Location), BoxAt(Location), Level(low) Postconditions: Level(high), not Level(low) // climb down from the box _ClimbDown(Location)_ Preconditions: At(Location), BoxAt(Location), Level(high) Postconditions: Level(low), not Level(high) // move monkey and box from X to Y _MoveBox(X, Y)_ Preconditions: At(X), BoxAt(X), Level(low) Postconditions: BoxAt(Y), not BoxAt(X), At(Y), not At(X) // take the bananas _TakeBananas(Location)_ Preconditions: At(Location), BananasAt(Location), Level(high) Postconditions: Have(bananas) == 計算複雑性 == STRIPS の問題に計画が存在するかどうかの決定問題は[[PSPACE|'''PSPACE'''完全]]である。様々な制限を加えることで、問題を[[NP完全問題|'''NP'''完全]]にすることができる。 == 脚注 == {{脚注ヘルプ}} {{Reflist}} == 参考文献 == * C. Bäckström and B. Nebel (1995). Complexity results for SAS+ planning. ''Computational Intelligence'', 11:625-656. * T. Bylander (1991). Complexity results for planning. In ''Proceedings of the Twelfth International Joint Conference on Artificial Intelligence (IJCAI'91)'', pages 274-279. * R. Fikes and N. Nilsson (1971). STRIPS: a new approach to the application of theorem proving to problem solving. ''Artificial Intelligence'', 2:189-208. * S. Russell and P. Norvig (1999). ''Artificial Intelligence - a modern approach''. Prentice Hall. [[Category:人工知能]] [[Category:自動計画とスケジューリング]]
このページで使用されているテンプレート:
テンプレート:Indent
(
ソースを閲覧
)
テンプレート:Reflist
(
ソースを閲覧
)
テンプレート:脚注ヘルプ
(
ソースを閲覧
)
STRIPS
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報