STRIPSとは?AIの自動計画の仕組みと活用例をわかりやすく解説

STRIPSとは?AIの自動計画の仕組みと活用例をわかりやすく解説

AIの初心者

『STRIPS』ってなんですか?AIの計画と関係がある言葉なのでしょうか。

AI専門家

STRIPSは、コンピュータに「どの順番で行動すれば目標に届くか」を考えさせるための古典的な方法です。たとえばロボットにお茶を入れてもらうとき、必要な準備や手順を組み立てる考え方として使えます。

AIの初心者

手順を作るときは、どんな情報を使うんですか?

AI専門家

基本は「今の状態」「目標の状態」「使える行動」です。さらに各行動について、実行前に必要な前提条件と、実行後に何が増え何が消えるかを定義します。これを組み合わせると、目標までの行動列を探せます。

STRIPSとは。

STRIPSは、人工知能における自動計画の代表的な手法です。初期状態、目標状態、利用可能な行動を形式的に表し、目標を満たすための行動手順をコンピュータに探索させます。

STRIPSとは何か

STRIPSが初期状態から目標状態までの行動計画を作るイメージ

STRIPSは、AIに計画を立てさせるための古典的な枠組みです。正式にはStanford Research Institute Problem Solverと呼ばれ、1971年にリチャード・ファイクスとニルス・ニルソンによって発表されました。

ここでいう計画とは、単なる予定表ではありません。ある「今の状態」から「こうなってほしい状態」へ移るために、どの行動をどの順番で実行すればよいかを決めることです。たとえばロボットにお茶を入れさせるなら、「やかんに水を入れる」「湯を沸かす」「茶葉を用意する」「湯を注ぐ」といった行動を、条件に合う順番で並べる必要があります。

STRIPSの大きな特徴は、問題を人間の感覚的な説明のまま扱うのではなく、状態と行動の関係としてはっきり書き下す点にあります。そのため、ロボットの行動計画、ゲームAI、作業工程の自動化など、目標に向けて手順を組み立てる問題を考える基礎として使われてきました。

項目 内容
名称 STRIPS(Stanford Research Institute Problem Solver)
発表年 1971年
主な目的 初期状態から目標状態へ至る行動手順を自動的に見つける
基本の考え方 状態、目標、行動を明確に定義し、条件を満たす行動列を探索する

STRIPSで計画を表す3つの材料

初期状態、行動、目標状態を使ってSTRIPSの計画問題を表す図

STRIPSで計画問題を表すときは、まず初期状態、目標状態、利用可能な行動を分けて考えます。この3つがそろうと、コンピュータは「いま何が成り立っているか」「最終的に何が成り立てばよいか」「そのためにどの行動を使えるか」を比較できます。

初期状態は、計画を始める時点の世界の記述です。お茶の例なら「やかんは空である」「水道は使える」「茶葉は棚にある」といった情報が初期状態になります。目標状態は、最後に満たしたい条件です。「カップにお茶が入っている」「ロボットがカップを持っている」などが該当します。

利用可能な行動は、世界を変化させる操作です。「やかんに水を入れる」「湯を沸かす」「茶葉を急須に入れる」のように、実行できる候補をあらかじめ定義します。STRIPSは、この行動の候補を組み合わせて、目標状態を作る順序を探します。

材料 意味
初期状態 計画開始時点で成り立っている条件 やかんが空、茶葉が棚にある
目標状態 最終的に成り立ってほしい条件 カップにお茶が入っている
行動 状態を変えるために使える操作 水を入れる、湯を沸かす、注ぐ

行動は前提条件・追加効果・削除効果で考える

STRIPSでは、行動を単なる名前ではなく、条件と効果の組み合わせとして定義します。特に重要なのが、前提条件、追加効果、削除効果です。

前提条件は、その行動を実行する前に満たされていなければならない条件です。たとえば「扉を開ける」という行動には、「扉の前にいる」「扉が閉まっている」といった前提条件があります。扉から離れていれば開けられませんし、すでに開いている扉をもう一度開ける必要もありません。

追加効果は、行動によって新たに成り立つ条件です。「扉を開ける」の追加効果は「扉が開いている」です。一方、削除効果は、行動によって成り立たなくなる条件です。同じ行動では「扉が閉まっている」が削除効果になります。

この分け方があるため、STRIPSは行動の前後で世界がどう変わるかを追跡できます。箱を持ち上げる例なら、前提条件は「手が空いている」「箱が机の上にある」、追加効果は「手が箱を持っている」、削除効果は「手が空いている」「箱が机の上にある」です。現実の複雑な動きも、このような小さな状態変化として表すことで計画の対象にできます。

概念 説明 扉を開ける例
前提条件 行動前に満たす必要がある条件 扉の前にいる、扉が閉まっている
追加効果 行動後に新しく成り立つ条件 扉が開いている
削除効果 行動後に成り立たなくなる条件 扉が閉まっている

STRIPSが計画を作る流れ

STRIPSが目標から逆算して必要な行動を探す流れ

STRIPSによる計画作成は、現在の状態と目標状態の差を見つけ、その差を埋める行動を探すことから始まります。目標が「カップにお茶が入っている」なら、その状態を作る行動として「お茶をカップに注ぐ」が候補になります。

ただし、その行動にも前提条件があります。「お茶をカップに注ぐ」には、すでに急須にお茶が入っていることや、カップが用意されていることが必要です。もし前提条件が満たされていなければ、STRIPSはその条件を新しい小さな目標として扱い、「急須に茶葉を入れる」「湯を注ぐ」「カップを用意する」といった行動をさらに探します。

このように、目標から逆算しながら必要な行動を積み上げると、最終的に初期状態から実行可能な行動列が得られます。完成した計画は、ロボットやプログラムが実行する手順として使えます。

初心者が注意したいのは、STRIPSが何もないところから目的を発明するわけではない点です。目標、状態の表し方、行動の条件と効果は、人間が問題に合わせて定義します。STRIPSは、その定義をもとに「目標へ届く組み合わせ」を探索する仕組みです。

STRIPSの応用例

ロボット制御、ゲームAI、工程計画にSTRIPSを応用するイメージ

STRIPSの考え方は、計画問題を形式的に扱う必要がある分野で役立ちます。代表例はロボットの行動計画です。ロボットが部屋を移動する、物体を持ち上げる、指定場所に置くといった作業では、現在位置、手の状態、物体の位置を管理しながら、実行可能な行動を順番に選ぶ必要があります。

ゲームAIでも、STRIPS風の考え方はキャラクターの行動決定に応用できます。たとえば「回復アイテムを手に入れる」「敵を倒す」「目的地へ移動する」といった目標に対して、利用可能な行動と条件を組み合わせれば、状況に応じた行動列を作れます。

また、生産工程やプロジェクト管理のように、作業の前後関係が重要な場面にも考え方を応用できます。ある工程を始めるには材料や設備が必要で、完了すると次の工程の条件が満たされる、という構造はSTRIPSの前提条件と効果に近いからです。

分野 STRIPSで表しやすいこと 期待できる効果
ロボット制御 移動、把持、配置などの行動順序 条件に合う作業手順を作れる
ゲームAI 目的達成までのキャラクター行動 状況に応じた行動選択を設計しやすい
工程計画 作業の依存関係と完了条件 手順の抜けや順序の矛盾を見つけやすい

STRIPSの限界と注意点

STRIPSの限界とPDDLなど後続技術への発展を示すイメージ

STRIPSは自動計画の基礎として重要ですが、万能ではありません。まず、世界を離散的な状態として扱うため、温度が徐々に上がる、物体が滑らかに動くといった連続的な変化はそのままでは扱いにくいです。

次に、不確実性が苦手です。STRIPSの基本形では、行動を実行したときの結果があらかじめ決まっていることを前提にします。そのため、「雨が降るかもしれない」「操作が失敗するかもしれない」といった確率的な状況では、別の拡張や手法が必要になります。

さらに、問題が大きくなると計算量が増えます。部屋、物体、行動の数が増えるほど、考えられる行動の組み合わせは急激に増えます。現実的な時間で答えを出すには、探索を効率化する工夫や、問題を適切な粒度に分ける設計が欠かせません。

限界 内容
連続変化が苦手 状態を段階的に表すため、滑らかな変化を直接扱いにくい 温度や速度が連続的に変わる制御
不確実性が苦手 行動結果が決定的であることを前提にしやすい 天候や失敗確率を含む判断
計算量が増えやすい 行動候補が増えると探索空間が大きくなる 多数の部屋や物体を含む移動計画

PDDLなど後続技術への影響

STRIPSは、後の自動計画研究に大きな影響を与えました。特に重要なのがPDDL(Planning Domain Definition Language)です。PDDLは、計画問題を共通の形式で記述するための言語で、STRIPS風の前提条件や効果の考え方を受け継いでいます。

PDDLのような共通言語があると、研究者や開発者は同じ計画問題を複数のプランナーで比較できます。これにより、自動計画アルゴリズムの性能評価や改良が進みやすくなりました。

現在のAIでは、機械学習や強化学習が注目されることも多いですが、STRIPSのような記号的な計画手法は今でも重要です。理由は、行動の理由や前提条件を明示しやすく、手順の説明可能性を保ちやすいからです。複雑なAIシステムを考えるうえでも、STRIPSは「目標を状態として表し、行動で差を埋める」という基本を学ぶよい入口になります。

更新履歴

日付 内容
2025年2月2日 初回公開
2026年6月28日 行動定義と探索の流れを補い、PDDLとのつながりを追記