Transcript 知識に基づく探索
認知システム論 探索(4)
先を読んで知的な行動を選択するエージェント
実時間探索
(Real-Time Search)
実時間探索
RTA*アルゴリズム
LRTA*アルゴリズム
準備:探索エージェント
とるべき行為を
知覚
(percepts)
エージェント
決定する
センサー
目,耳
環 境
問題解決器
知能
行為
(action)
アクチュエータ
手,足
意思決定
(decision)
1.実時間探索 (1/3)
これまで学んだ探索(オフライン探索)は,
時間をかけて解を見つけた後に実行する
探
索
実 行
時間
実時間探索(オンライン探索)は,
一定時間内の先読み探索と実行を交互に繰り返す
探 索 実 行 探 索
一定時間内
実 行 探 索 実 行
一定時間内
一定時間内
実時間探索(2/3)
ミニミニ探索によって,一定時間の間,先読みをし,行動を決定
ヒューリスティック関数 h の値
7
スタート
3
8 a
12 b
4
16 12
5
4
11 h
6
5
2
8
c
d
2
8
3
14 11
1
e 0
3
ゴール
g
5
4
f
3
実時間探索(3/3)
最適性はない:最適な行動を探索できない
リアルタイム性:迅速に行動を選択できる
環境適応性:未知の環境,動的に変化する環境に適している
未経験の行動をとる(探索空間を探査する)することによって,
現在の状態の周辺の情報がわかってくる
2.RTA*アルゴリズム(1/4)
Real-Time Heuristic Search
Step 1.現在の状態xの各隣接状態nに対して,
以下の関数f(n)を計算する.
ただし,g(x,n)はxからnへのコストとする.
f(n) = g(x,n) + h(n)
h=7
h=8
3
x
4
f=10
h=5
f=9
簡単のため,
先読みは1ステップ先まで
と仮定する
RTA*アルゴリズム(2/4)
Step 2.h(x)の値を以下のように更新する.
h(x) ← 2番目に小さいf(n)
2番目に小さいf(n)
2番目に小さいf(n)
h=7
h=8
3
x
4
f=10
h=10
h=7
3
x
h=5
4
f=9
最小のf(n)
f=10
h=5
f=9
最小の f 値を持つノードへ進む前に
もとのノードに戻ってくるときのために
h の値を更新する
RTA*アルゴリズム(3/4)
Step 3.最小のf(n)を与える状態nに遷移する.
候補が複数存在するときはランダムに選択する.
h=7
h=10
3
x
4
h=7
f=10
h=5
最小のf(n)
h=10
3
x
4
h=5
f=9
f はもう不要.
後戻りするときのコストは,4+10=14 となる.
RTA*アルゴリズム(4/4)
hの値
7
5
11
9
9
4
10 b
c
15
14 3
8 a
11
初期状態
5
3
8
11
5
f
g
11
2
6
5
1
9
8
d
8
4
準最適解
2
e 0
3
h
3
目標状態
RTA*の計算量
空間計算量:移動回数に対して線形
訪問済みの状態のリスト、miniminは深さ優先探索
時間計算量:移動回数に対して線形
探索の深さが定数、一回の移動のための探索も定数
RTA*の完全性(1/3)
定理
RTA*の完全性
状態空間が有限
経路コストが正
ヒューリスティック値が有限
あらゆる状態から目標状態へ到達可能
必ず解を発見する
RTA*の完全性 (2/3) 例外
状態空間が有限でない
目標状態へ到達可能でない
1
30
1
s
02
1
01 s
1
0
1
0 g
1
g
RTA*の完全性(3/3) 例外
1
10
経路コストが正でない
01
2 1 1 0
s
g
0
0
ヒューリスティック値が有限でない
1
∞
s
g
∞
RTA*の性能評価(1/3)
n-パズル
5 4
6 1 8
7 3 2
初期状態
5 4 8
6 1
7 3 2
5
4
6 1 8
7 3 2
1 2 3
8
4
7 6 5
目標状態
推定コスト:
各タイルの正しい位置までのマンハッタン距離の和
RTA*の性能評価(2/3)
1000
800
Solution Length
発
見
し
た
解
の
長
さ
最適解の長さ
8 puzzle : 22
15 puzzle : 53
24 puzzle : 100程度
24 puzzle
600
400
15 puzzle
200
8 puzzle
0
0
5
10
15
Search Horizon
先読みの深さ
20
25
RTA*の性能評価(3/3)
計算と実行のトレードオフ
ミニミニ探索を深くすると1回の移動のための計算量
は増大、移動回数は減少
最適な探索の深さは問題に依存する
スライディングタイルパズルの場合
実行時間(ミニミニ探索+移動)は探索の過程で生成
した状態数に比例
ミニミニ探索の最適な深さは
8パズルが1、15パズル・24パズルが2
実際の実行時間はそれぞれ
0.1秒、0.5秒、2.5秒以下(20MHz)
Learning RTA*
3.LRTA*アルゴリズム(1/4)
同じ問題を連続して解く
同じ問題空間、同じ目標状態の集合
訪問済みの状態の推定コスト(h)を次の試行に保持
RTA*では…
問題を一度だけ解く場合には適している
推定コストとして2番目に小さい評価値を格納
hの値が,過大評価となってしまう
LRTA*アルゴリズム(2/4)
1.現在の状態xの各隣接状態nに対して、以下の関数
f(n)を計算する。ただし、g(x,n)はxからx’へのコスト。
f(n) = g(x,n) + h(n)
2.h(x)の値を以下のように更新する。
h(x) ← min f(n)
n
3.最小のf(n)を与える状態nに遷移する。
(候補が複数存在するときはランダムに選択する)
LRTA*アルゴリズム(3/4)
RTA*
5
a
LRTA*
5
a
6
1
7
1
5
1 b
1 c
1 d
2
1
3
1
5
1 b
1 c
1 d
LRTA*アルゴリズム(4/4)
完全性
解が存在すれば必ず発見できる
収束性
問題空間が有限
楽観的
経路コストが正
初期ヒューリスティック値が許容的
あらゆる状態から目標状態へ到達可能
試行を繰り返すことにより、
最適経路上の各状態の推定コストは正確な値に収束する