行動計画とSTRIPSとは?意味・仕組み・活用例をわかりやすく解説

行動計画とSTRIPSとは?意味・仕組み・活用例をわかりやすく解説

AIの初心者

「STRIPS」って何ですか?名前だけでは仕組みが想像できません。

AI専門家

STRIPSは、AIが目標までの行動手順を考えるための古典的な枠組みだよ。ロボットに「お茶を入れて」と頼むなら、必要な条件と各行動による変化を整理するんだ。

AIの初心者

必要な条件と変化を、どのように表すのでしょうか?

AI専門家

行動できる条件を「前提条件」、行動後に成立する事実を「追加効果」、成立しなくなる事実を「削除効果」として表すよ。その変化をつなげると計画になるんだ。

STRIPS(ストリップス)は、人工知能における古典的プランニングの代表的な状態・行動表現です。この記事では、行動計画の意味からSTRIPSの仕組み、具体例、関連概念との違い、利用時の注意点まで順に解説します。

初期状態から目標状態へ進む行動計画の全体像

行動計画とは

行動計画とは、初期状態から目標状態へ到達するための実行可能な行動列を求めることです。たとえば「会社へ行く」という目標には、鍵を持つ、家を出る、駅へ移動する、電車に乗る、といった順序があります。

重要なのは、単に手順を並べるだけではない点です。各行動には実行条件があり、その結果が次の行動の条件になります。「鍵を持っている」から家を施錠でき、「家の外にいる」から駅へ向かえる、というように状態変化を連鎖させます。

AIのプランニングでは、候補となる行動の中から目標に届く組み合わせを探索します。手数、時間、費用などを評価できる場合は、到達可能な計画の中からより良いものを選びます。

STRIPSとは

STRIPSは「Stanford Research Institute Problem Solver」の略で、読み方はストリップスです。1971年にRichard FikesとNils Nilssonが発表した問題解決システムに由来し、その後の自動計画研究に大きな影響を与えました。

基本的な考え方は、世界を「現在成り立っている事実の集合」として表し、行動によって集合を書き換えることです。問題は初期状態、目標条件、利用可能な行動の三つから構成されます。

STRIPSにおける前提条件・行動・結果の三要素

STRIPSで行動を表す3つの要素

STRIPSの行動(オペレータ)は、主に次の要素で表します。

要素 意味 「ドアを開ける」の例
前提条件 行動前に真でなければならない事実 ドアの前にいる、ドアが閉じている
追加効果 行動後に新しく真になる事実 ドアが開いている
削除効果 行動後に真ではなくなる事実 ドアが閉じている

前提条件がすべて現在状態に含まれる場合だけ行動を実行できます。実行後は削除効果を取り除き、追加効果を加えます。概念的には次の状態遷移です。

\(S’ = (S \setminus Del(a)) \cup Add(a)\)

ここで\(S\)は現在状態、\(a\)は行動、\(Del(a)\)は削除効果、\(Add(a)\)は追加効果です。基本形では、状態に書かれていない事実を偽とみなす閉世界仮説が使われます。

具体例:ロボットが目的の部屋へ移動する

初期状態を「ロボットは玄関にいる」「ドアは閉じている」、目標を「ロボットは部屋にいる」とします。利用できる行動には「玄関からドア前へ移動」「ドアを開ける」「部屋へ入る」があります。

  1. 玄関にいることを前提に、ドア前へ移動する。
  2. ドア前にいてドアが閉じていることを前提に、ドアを開ける。
  3. ドア前にいてドアが開いていることを前提に、部屋へ入る。

二つ目の行動で「ドアが開いている」が追加され、「ドアが閉じている」が削除されるため、三つ目の前提条件が満たされます。このように、ある行動の効果が次の行動の前提条件になることで計画がつながります。

ロボットがドアを開けて目的の部屋へ移動する状態遷移

STRIPSで計画を見つける仕組み

STRIPSは問題と行動を記述する枠組みであり、探索アルゴリズムそのものではありません。実際のプランナーは、現在状態から実行可能な行動を試す前向き探索や、目標を成立させる行動から必要条件を逆算する後ろ向き探索などを用います。

行動を選ぶたびに状態が分岐するため、問題が大きいと探索空間は急速に増えます。そこで、目標に近そうな状態を優先するヒューリスティック、不要な分岐の枝刈り、部分目標への分解などが重要になります。

分岐する状態空間から目標へ至る計画を探索するイメージ

STRIPSの活用例

代表的な用途は、ロボットの作業・移動計画、ゲームAIの行動選択、倉庫内の搬送や組み立て手順の設計です。共通するのは、状態と利用可能な操作を明確に定義でき、目標までの手順を自動生成したい場面です。

ただし、自動運転のように不確実性や連続的な運動を含むシステムでは、STRIPSだけで全体を扱うのではなく、経路計画、制御、確率モデルなどと組み合わせるのが一般的な考え方です。

ロボット・ゲーム・物流に広がるSTRIPSの活用例

PDDL・経路探索・ルールベースとの違い

概念 役割 STRIPSとの関係
PDDL 計画問題を記述する言語 STRIPS風の表現を基礎に、型や数値などを拡張
経路探索 地点間の経路を求める STRIPSは鍵の取得など、移動以外の条件も同じ枠組みで扱える
ルールベース 条件に応じて規則を発火する STRIPSは目標から複数手先の行動列を探す点が中心

PDDLはSTRIPSと競合する手法ではなく、STRIPSの考え方を含む計画問題を標準的に書くための言語です。また、STRIPSの行動モデルと、それを解く探索手法を区別すると理解しやすくなります。

STRIPSのメリットと注意点

メリットは、行動を簡潔かつ機械的に扱え、同じプランナーを異なる問題へ応用しやすいことです。前提条件と効果が明示されるため、生成された計画を人が追いやすい点も長所です。

一方、古典的STRIPSは、環境を完全に観測できる、行動結果が確定している、行動が瞬時に起こる、といった強い仮定を置きます。現実には失敗確率、所要時間、資源制約、同時実行、連続値があるため、必要に応じて拡張PDDL、確率的プランニング、スケジューリングなどを検討します。

さらに、対象が増えると状態の組み合わせが爆発します。モデルへ事実を詰め込みすぎず、目標に必要な状態だけを選び、行動の粒度をそろえることが実用上のポイントです。

まとめ

STRIPSは、現在状態と目標状態の間を、前提条件・追加効果・削除効果を持つ行動でつなぐ枠組みです。単純な表現ながら、AIが「何をどの順番で行えばよいか」を探索する土台を作り、PDDLや現代の自動計画研究にも受け継がれています。まずは小さな移動問題を状態と行動に分解すると、仕組みを具体的に理解できます。

更新履歴

日付 内容
2025年2月1日 初回公開
2026年7月12日 追加・削除効果と探索の流れを補い、PDDLとの関係や適用上の限界を追記