---
title: "STRIPS（計画問題）とは？G検定対策"
description: "STRIPSについて、初期状態・目標状態・前提条件・Add List・Delete Listを使って行動計画を表現する仕組みを整理します。探索問題や強化学習との違いも比較し、G検定で古典的プランニングを見分ける判断軸を確認します。"
canonical_url: "https://stemtazoo.github.io/gk/strips/"
section: "gk"
---

## まず結論

* **STRIPS（Stanford Research Institute Problem Solver）**とは、現在の状態と目標状態を記号で表し、実行可能な行動を組み合わせて、目標までの計画を探索する古典的なプランニング手法です。
* 行動は、**前提条件・Add List・Delete List**によって「いつ実行でき、状態がどう変わるか」を表します。

## 直感的な説明

STRIPSは、ロボットに渡す作業手順書を自動で考えるイメージです。

たとえば、机の上にある荷物を棚へ移したいとします。

* 初期状態：荷物は机の上、ロボットの手は空いている
* 目標状態：荷物は棚の上にある
* 行動：荷物を持つ、棚まで移動する、荷物を置く

ただし、荷物を持つには、

> ロボットの手が空いている

という条件が必要です。

STRIPSは、このような条件を確認しながら行動を順番につなげ、目標状態へ到達する計画を探します。

## 定義・仕組み

STRIPSでは、世界の状態を「成立している事実の集合」として表します。

### 初期状態

計画を始める時点で成立している事実です。

例：

* 荷物は机の上にある
* ロボットは机の前にいる
* ロボットの手は空いている

### 目標状態

計画の最後に成立させたい事実です。

例：

* 荷物は棚の上にある

### 行動の表現

各行動は、主に次の3要素で表します。

1. **前提条件（Preconditions）**
   * 行動を実行するために成立している必要がある条件
2. **Add List**
   * 行動後に新しく成立する事実
3. **Delete List**
   * 行動後に成立しなくなる事実

たとえば「荷物を持つ」という行動なら、

* 前提条件：手が空いている、荷物の前にいる
* Add List：荷物を持っている
* Delete List：手が空いている、荷物が机の上にある

となります。

この状態の書き換えを繰り返し、

> 初期状態 → 行動列 → 目標状態

を満たす計画を探索します。

## いつ使う？（得意・不得意）

### 得意なこと

* ロボットの行動計画
* 作業手順の自動生成
* 状態と行動を明確に記号化できる問題
* ルールが既知で、結果を予測できる環境

### 不得意・注意点

* 行動結果に不確実性がある環境
* 状態が連続的に変化する問題
* 現実世界の細かな変化をすべて記述する問題
* 行動や条件が増え、探索空間が非常に大きくなる問題

STRIPSは、基本的に行動の結果が決まっている**決定論的な環境**を前提とします。

## G検定ひっかけポイント

### STRIPSと探索問題

探索は、候補となる状態や経路から解を見つける広い考え方です。
STRIPSは、その中でも、

* 状態
* 行動の前提条件
* 行動による状態変化

を記号で表し、目標までの**行動計画**を求めます。

### STRIPSと強化学習

* **STRIPS**：行動ルールがあらかじめ分かっており、計画を探索する
* **強化学習**：行動と報酬の経験から、よい方策を学習する

「報酬から試行錯誤して学ぶ」なら強化学習です。
「既知の前提条件と効果から手順を作る」ならSTRIPSです。

### フレーム問題との関係

行動によって変化する事実だけでなく、

> 行動しても変化しない事実をどう扱うか

という問題を**フレーム問題**と呼びます。

STRIPSではAdd ListとDelete Listを使い、変化する事実を明示します。

### 試験での判断基準

* 初期状態と目標状態から行動列を求める → プランニング
* 前提条件・Add List・Delete List → STRIPS
* 報酬を使って方策を学ぶ → 強化学習
* 行動しても変わらない事実の扱い → フレーム問題

## まとめ（試験直前用）

* STRIPSは、目標までの行動計画を探索する古典的手法
* 状態は成立している事実の集合で表す
* 行動は前提条件・Add List・Delete Listで表す
* 既知のルールから計画を作り、報酬から学習する手法ではない
* 「状態を書き換えて目標へ到達」ならSTRIPS
