行動計画とSTRIPS

AIの初心者
先生、「STRIPS」ってなんですか?なんか難しそうでよくわからないです…

AI専門家
STRIPSは、AIがどのように行動を計画するかを考えるための仕組みだよ。例えば、ロボットに「お茶を入れて」と頼むことを想像してみて。ロボットはお茶を入れるために何をすればいいか、手順を考えなければならないよね。

AIの初心者
どういう手順を考えればいいんですか?

AI専門家
STRIPSでは、「お湯を沸かす」ためには「やかんに水が入っている」ことが必要で、これが「前提条件」。「やかんに水を入れる」という行為が「行動」。そしてその結果、「やかんに水が入った状態」になる、これが「結果」だよ。このように、目的を達成するために必要な手順を、前提条件、行動、結果の3つで分けて考えるのがSTRIPSなんだ。
STRIPSとは。
人工知能に関わる言葉である『ストリップス』について説明します。ストリップスは、1971年にリチャード・ファイクスさんとニルス・ニルソンさんによって考え出された、行動の計画を立てるための仕組みです。この仕組みでは、目標とする状態を実現するために、『前もって必要な条件』、『行動』、『結果』の3つを組み合わせます。
行動計画とは

行動計画とは、始めの状態から目標の状態にたどり着くまでの一連の手順を定める方法です。毎日の暮らしの中でも、朝起きてから会社に着くまでにすることを考えるのは、行動計画のひとつと言えるでしょう。
たとえば、会社に行くという目標を達成するためには、家を出る、電車に乗る、会社に着く、といった行動が必要です。これらの行動は順番通りに行わなければなりません。家を出る前に電車に乗ることはできませんし、電車に乗る前に会社に着くこともできません。このように、行動には順序があり、その順序を正しく組み立てることが行動計画の重要な点です。
また、それぞれの行動には、実行するための条件があります。たとえば、家を出るためには、鍵を持っている必要があります。電車に乗るためには、切符を買っている必要があります。これらの条件が満たされていない場合、行動を実行することはできません。行動計画では、これらの条件を考慮に入れて、実行可能な計画を作成する必要があります。
さらに、それぞれの行動には、結果が伴います。たとえば、家を出るという行動の結果、家の外に出ます。電車に乗るという行動の結果、会社に近づきます。これらの結果を予測することで、目標への到達を確実にすることができます。会社に行くという目標を達成するためには、家を出るという行動によって家の外に出る結果を得て、電車に乗るという行動によって会社に近づく結果を得る必要があります。
人工知能の分野では、機械に行動計画を立てさせる研究が盛んに行われています。たとえば、ロボットに特定の作業をさせる場合、どのような手順で作業を進めればよいかをロボット自身に考えさせることができます。また、ゲームのキャラクターに複雑な行動をさせる場合にも、行動計画の技術が役立ちます。
複雑な状況の中で、最も効率の良い手順を見つけ出すためには、高度な計算技術が必要です。そのため、より効率的な方法の開発が重要な課題となっています。

STRIPSの概要

人工知能研究の一環として、行動計画を自動で組み立てる仕組みが求められています。その中で、一九七一年にリチャード・ファイクス氏とニルス・ニルソン氏によって発表されたSTRIPS(スタンフォード研究所問題解決機)というシステムは、先駆的な役割を果たしました。このシステムは、問題を「前提条件」「行動」「結果」という三つの要素で捉え、目標達成のための一連の行動を自動的に作り出すことを目指しています。
STRIPSは、まず現在の状態と目指す状態を入力として受け取ります。そして、適切な行動を順序立てて実行することで、目標達成のための計画を立てます。例えば、ロボットに目的地の部屋まで移動させるという問題を考えます。現在の状態はロボットが玄関にいることで、目指す状態はロボットが目的地の部屋にいることです。行動には、廊下を移動する、ドアを開ける、部屋に入るなどがあります。
それぞれの行動には、前提条件と結果が結びついています。例えば、「廊下を移動する」という行動の前提条件は、ロボットが玄関にいることです。そして、その結果、ロボットは廊下に移動します。同様に、「ドアを開ける」という行動の前提条件は、ロボットがドアの前にいることで、結果はドアが開くことです。「部屋に入る」という行動の前提条件は、ロボットがドアの前にいて、ドアが開いていることで、結果はロボットが部屋の中に入ることです。
STRIPSは、これらの前提条件と結果を考慮しながら計画を立てます。つまり、ある行動を実行するためには、その行動の前提条件が満たされている必要があります。そして、行動を実行すると、その結果が状態に反映されます。玄関にいるロボットが目的地の部屋に移動するには、まず廊下を移動し、次にドアの前に移動し、ドアを開け、最後に部屋に入ります。このように、各行動の前提条件と結果を連鎖させることで、現在の状態から目指す状態への道筋を見つけ出すのです。これがSTRIPSの仕組みです。
前提条件

行動計画を立てる手法の一つに、STRIPS(Stanford Research Institute Problem Solver)というものがあります。この手法では、行動を起こすための前提となる条件、つまり「前提条件」を明確に定義することが重要になります。
例えば、「家を出る」という行動を考えてみましょう。この行動には、「鍵を持っている」という前提条件が考えられます。家の鍵を持っていないと、当然ながら家を出ることはできません。この「鍵を持っている」という状態が満たされて初めて、「家を出る」という行動が可能になるわけです。
前提条件は、「環境の状態」や「自分が持っているもの」など、様々な要因によって決まります。例えば、「買い物に行く」という行動では、「お金を持っている」という前提条件に加えて、「店が開いている」という環境の状態も前提条件となります。もしお店が閉まっていたら、たとえお金を持っていても買い物をすることはできません。
STRIPSでは、これらの前提条件を論理式で表現します。例えば、「家を出る」という行動の前提条件である「鍵を持っている」という状態は、論理式で「持っている(鍵)」のように表現できます。そして、「買い物に行く」という行動は、「持っている(お金)」かつ「開いている(店)」という論理式で表現できます。
複数の前提条件がある場合、それらの条件全てが満たされている場合にのみ、行動を実行することができます。つまり、「かつ」で結ばれた全ての条件が真である必要があるのです。もしどれか一つでも条件が満たされていない場合は、その行動を実行することはできません。このように、STRIPSでは前提条件を明確にすることで、行動計画を適切に立てることができるのです。
| 行動 | 前提条件 | 論理式 |
|---|---|---|
| 家を出る | 鍵を持っている | 持っている(鍵) |
| 買い物に行く | お金を持っている & 店が開いている | 持っている(お金)かつ開いている(店) |
行動

行動とは、知的主体が実行できる操作のことを指します。これは、知的主体が環境の中で何かを行う、具体的な動作を意味します。例えば、「家を出る」、「ドアを開ける」、「車に乗る」といった動作は、全て行動として捉えることができます。これらの行動は、単に動作が行われるだけでなく、その結果として周囲の状況に変化をもたらすという特徴を持っています。「家を出る」という行動は、知的主体の位置を家の中から家の外へと変化させます。同様に、「ドアを開ける」という行動は、ドアの状態を閉まっている状態から開いている状態へと変化させます。
これらの行動は、いつでも実行できるわけではありません。実行するためには、特定の条件が満たされている必要があります。例えば、「ドアを開ける」という行動を実行するためには、まず知的主体がドアの前にいる必要があります。また、ドアが鍵で閉まっている場合は、鍵を持っている必要があります。このように、行動を実行するための条件を前提条件と言います。前提条件が満たされていない場合、行動を実行することはできません。
知的な計画を立てる枠組みでは、行動は名前と色々な状況に対応できる要素で表現されます。この要素のことを引数と言います。引数を用いることで、一つの行動を様々な状況に適用することができます。例えば、「ドアを開ける」という行動の引数として「ドアの種類」を指定することで、「玄関のドアを開ける」や「寝室のドアを開ける」といった具体的な行動を表現することができます。つまり、「ドアを開ける(玄関のドア)」や「ドアを開ける(寝室のドア)」のように、引数を変えることで様々なドアを開ける行動を表現できます。
行動は、計画を立てる上での基本的な単位となります。目的とする状態を実現するためには、適切な行動を選び、正しい順番で実行する必要があります。どの行動をどのような順番で実行するのかを決めることで、目標を達成するための計画を立てることができます。
| 項目 | 説明 | 例 |
|---|---|---|
| 行動の定義 | 知的主体が実行できる操作。周囲の状況に変化をもたらす。 | 家を出る、ドアを開ける、車に乗る |
| 行動の結果 | 環境の変化 | 家の外に出る、ドアが開く |
| 前提条件 | 行動を実行するための必要条件 | ドアの前にいる、鍵を持っている |
| 引数 | 行動を様々な状況に適用するための要素 | ドアの種類(玄関のドア、寝室のドア) |
| 行動と計画 | 計画の基本単位。適切な行動を選び、正しい順番で実行することで目標を達成する。 |
結果

「結果」とは、ある行動を起こすことで、もたらされる状況の変化のことを指します。行動を起こす前と後で、周囲の状況や物事の状態がどのように変わるか、それが結果です。
例えば、「家を出る」という行動を考えてみましょう。家を出る前は、「家の中にいる」という状態です。しかし、家を出るという行動を起こすと、「家の中にいる」状態から「家にいない」状態へと変化します。これがまさに「家を出る」という行動の「結果」です。
行動とその結果は、鎖のようにつながって、次に行う行動に影響を及ぼします。例えば、「家を出る」という行動の結果、「家にいない」という状態になります。この「家にいない」という状態は、「車に乗る」という次の行動を行うための必要条件となります。家の中にいたら車に乗ることはできませんが、家を出たことによって、車に乗ることができるようになるのです。
このような行動と結果の関係を、コンピュータ上で表現する方法の一つにSTRIPSというものがあります。STRIPSでは、ある行動によって状況がどのように変化するかを、「状態の追加」と「状態の削除」を使って表します。例えば、「家を出る」という行動は、「家にいない」という状態を「追加」し、「家の中にいる」という状態を「削除」することで表現できます。このように、状態を追加したり削除したりすることで状況の変化を表し、コンピュータは複雑な行動計画を立てられるようになります。まるでパズルを解くように、行動とその結果を組み合わせ、目的の状態にたどり着くための手順を自動的に生成できるのです。

STRIPSの意義

行動計画をどのように立てるかという問題は、人工知能における長年の課題でした。適切な手順を考え出すためには、複雑な状況を理解し、将来の変化を予測する必要があるからです。そのような難題に対し、画期的な解決策を提供したのがSTRIPS(Stanford Research Institute Problem Solver)です。STRIPSが登場する以前は、統一された方法がなく、個々の問題に合わせた特殊な解決策を考案する必要がありました。
STRIPSの革新性は、行動計画の問題を「前提条件」「行動」「結果」という3つの要素で表現するという点にあります。まず、「前提条件」とは、ある行動を起こすために必要な条件のことです。例えば、「ドアを開ける」という行動の「前提条件」は、「ドアの前にいる」かつ「ドアが閉まっている」などです。次に、「行動」とは、実行可能な動作のことです。「ドアを開ける」「部屋を移動する」などが「行動」に該当します。そして、「結果」とは、行動を起こした後に何が起きるかを示すものです。「ドアを開ける」という行動の「結果」は、「ドアが開いている」となります。
このように、STRIPSは問題を単純な要素に分解することで、行動計画を系統的に立てることを可能にしました。この汎用的な枠組みは、様々な分野で応用されています。例えば、ロボットの動作を計画する際に、どの順番で関節を動かせば目的の動作が実現できるかを決定するためにSTRIPSの考え方が利用されています。また、ゲームでコンピュータがどのように行動するかを決定する際にも、STRIPSは重要な役割を果たします。さらに、自動運転技術においても、安全な経路を計画するためにSTRIPSの概念が応用されています。
STRIPSの影響は、具体的な応用例だけにとどまりません。STRIPSは、その後の行動計画アルゴリズムの開発に大きな影響を与え、PDDL(Planning Domain Definition Language)などの計画記述言語の基礎となっています。STRIPSは、現代の行動計画研究の礎を築いたと言えるでしょう。
| 要素 | 説明 | 例 |
|---|---|---|
| 前提条件 | 行動を起こすために必要な条件 | ドアを開けるためには、ドアの前にいる必要がある、ドアが閉まっている必要がある |
| 行動 | 実行可能な動作 | ドアを開ける、部屋を移動する |
| 結果 | 行動を起こした後に何が起きるか | ドアを開けるという行動の結果、ドアが開いている |
| STRIPSのメリット | STRIPSの影響 | STRIPSの応用 |
|---|---|---|
| 問題を単純な要素に分解 | その後の行動計画アルゴリズムの開発に影響 | ロボットの動作計画 |
| 行動計画を系統的に立てることが可能 | 計画記述言語(例:PDDL)の基礎 | ゲームにおけるAIの行動決定 |
| 汎用的な枠組み | 現代の行動計画研究の礎 | 自動運転技術における経路計画 |
