null

現在このイメージを表示できません。
認知科学
思考のコンピュータシミュレーション(2)
2016年1月21日(木)
ヒューリスティクス
(heuristics)
どのようにしてよいかわからない場合に,うまくゆくという保
証はないが,以前の経験に頼って役に立ちそうなことをやっ
てみるという方略.将棋や碁,チェスなどの問題解決に多い.
人間は複雑な問題解決場面においては,しばしば
ヒューリスティクスを暗黙に用いている.
ヒューリスティクスによって生じる認識上の偏りを認知
バイアスと呼ぶ.
日常の多くの問題は不良定義問題(解法が存在しな
い)が大半なため,ヒューリスティクスが有効な問題解
決の方法になることが多い.
アルゴリズム
(algorithm)
実行すれば必ず回答に到達する手続き方略
初期状態,目標状態,操作子が明確にされている良定
義問題では有効に働く.
84,60,48の最大公約数を求めよ.
2 | 84 60 48
2 | 42 30 24
3 | 21 15 12
ーーーーーーーーー
7
5
4
解決アルゴリズム
1. 共通な因数で割っていって,
割り切れなくなるまで続ける.
2. 式に出てきたこれらの数字を
全部掛ける.
2 × 2 × 3 = 12
思考と問題空間の探索
1. 思考(≠白昼夢)とは,知識を系統立てて問題を解決す
る認知的過程である.
2. 系統立てて処理すること
→情報処理過程として捉えることが可能
3. 問題解決の手掛かりとなる使える情報(知識)を利用し
て,スタート地点からゴール地点まで空間を系統立て
て移動すること
→探索
ヒューリスティクスが使われる状況
問題の解法があらかじめ定まっていない場合.
→世の中のほとんどは正しい解があるとは言えない.
複数の解法が存在し,いずれの方法でもゴールに到達
する可能性がある場合(ゴールに到達できるとは限ら
ない).
人間の場合,過去の成功事例を踏襲することが多い.
保守主義もこのようなバイアスの具体例といえるかも.
ヒューリスティック探索
探索すべき状態空間を削減する方法の1つに,そ
の問題に関するさまざまなこの情報(知識)をうまく
利用する方法を考える.
展開した子の状態をなんらかの評価基準で優先順
位をつけ,その順序で調べていくことで探索効率を
向上させることができる.
場合によっては解の探索に失敗する可能性がある
ものの,多くの場合探索効率を向上させることが期
待できる.
探索における経験的知識を表現するためのヒュー
リスティック関数を利用する.
山登り法
(hill climbing)
勾配降下法
(gradient
descent)
1.
山頂(谷底)を目指す登山(谷くだり?)をイメージ.
2.
ある地点に立ったとき,次の一歩はその周囲で一番
高い(低い)地点に踏み出す.
3.
これを繰り返すと,次の一歩が選択できない地点に至
る→山頂(谷底)に到達
探索の方法
8
ヒューリスティック関数
→山頂との高さの差
局所的最小値(local minima)
に陥る可能性がある
6
5
高原(plateau)のような状態に
なると,進む方向を見失ってし
まう
7
4
3
4
local minima
plateau
8
5
例題: 迷路問題
1. 迷路の交差点を自然数の座標の組(x,y)で表す
ことにする.
P →
↓
入口 (s)
2. 交差点q=(x,y)と出口g=(a,b)の距離
d(q,g) を次のように定義する.
d(q,g)=|aーx|+|b-y|
出口 (g)
3. このとき経験的知識として
「ある状態qを展開したとき,距離d(q,g)が最小
となる子の状態qについてのみ,次の展開を行う」
を用いる.
上の図の迷路に対して,入口sか
ら迷路に入った人間Pが出口gに
到達するための解を求めよ.
s
4. このときのヒューリスティック関数は2で定義した
式を用いる.
(s→1→2→5→8→g),(s→1→4→8→g)
状態1を展開した状態2と状態4は同じヒューリスティック関数をもつので,どちらを選ぶかはランダムに決める.
1
2
3
4
5
6
8
g
7
最良優先探索
(best first search)
山登り法が第3ステップで,{7,8}か
ら最小値を選択する.
8
最良優先探索は未探索の前節点
集合{6,7,8}から最小値を選択する.
適切なヒューリスティック関数を定
めることが可能なら,方向性を有す
る探索なので,ブラインド探索より
効率よく目標状態を探索できる.
未探索節点の格納なのに多くのメ
モリ量が必要となってしまう.
6
9
5
6
3
7
2
8
局所的最小値からの脱出
山登り法のように,局所的最小値に
至っても,それを回避し,目標状態に
向かうことができる.
しかし,得られた経路が最良の経路であ
ることは保証されない.
ヒューリスティック関数がうまく定義できれ
ば,多くの場合,妥当な精度の解を高速
で探索可能.
局所的最小値
y
3
2
4
3
g
2
1
3
2
[1,1]
s
過去の経路の情報を記憶しているた
め,ある状態において次に移動すべ
き状態を探すときに,そのときにはあ
まり有望に思えなかった状態も選択
の対象とする.
[4,3]
x
○の中は評価関数(ヒューリス
ティック関数) f(n) の値.ただし,
n の座標を[x,y]とすると,
f(n) = (4-x) + (3-y)
制約条件を用いた探索
の効率化
解の探索に制約を加える手法
→解の探索範囲を減らすことで探索効率を向上
問題の表現において定義される状態を「許容状態」「禁止状
態」に分離する.
探索の過程で禁止状態に移る作用素は適用しない条件を設
ける.
弱く定義
探索しなければならない領域は増加するた
め探索効率は低下する.
「禁止状態」を定義す
る「制約条件」
トレードオフ関係
強く定義
探索しなければならない領域は減少するが,
「禁止状態」の中に目標状態が含まれてし
まい,解が見つからなくなる可能性が生じる.
制約条件とバックトラックを用いた
探索
宣教師と人喰い人種問題(MC問題)
3人の宣教師(missionaries)と3人の人喰い人種(cannibals)
が,左岸から右岸に2人乗りのボートで川を渡ろうとしている.
川の両岸,あるいはボートの上で宣教師の数より人喰い人種
の数が多くなったとき,宣教師は人喰い人種に食べられてしま
うものとする.このとき宣教師が食べられてしまうことなく,
ボートを使って川を渡る手順を考えよ.
現
現
現
現
現
現
MC問題の状態空間の表現
定義
時刻tに,左岸Lにいる宣教師の数:
M(t)
人喰い人種の数: C(t)
時刻tでボートが右岸Rに接岸している状態: D(t)=R
左岸Lに接岸している状態: D(t)=L
ボートが岸に着いたときすべての人間は一旦ボートを降りる.
状態空間の表現
状態 s(t)=<M(t),C(t),D(t)>
ただし, 0≦M(t)≦3,0≦C(t)≦3
|M(t)-M(t+1)|+|C(t)-C(t+1)|≦2
初期状態 s0=<3,3,L>
目標状態 sg=<0,0,R>
MC問題の禁止状態と
許容状態
禁止状態(右岸か左岸で人喰い人種が宣教師の数より多くな
る状態のすべて)
SF={<M(t),C(t),D(t)>|M(t)<C(t)ま
たは 3-M(t)<3-C(t)}
SF={<2,3,D>, <1,3,D>, <1,2,D>, <2,1,D>, <2,0,D>, <1,0,D>}
ただし,DはRまたはL.
全状態集合をSで表し,許容状態をSGで表す
と,
SG=S-SF
SG={<0,0,R>, <0,3,D>, <0,2,D>, <0,1,D>, <1,1,D>, <2,2,D>,
<3,0,D>, <3,1,D>, <3,2,D>, <3,3,L>}
解の探索
縦型探索を用いる.
禁止状態を行き止まり状態と見なして,バックト
ラック(前の状態に戻る)する.
適用する作用素(N1~N10の10個)
1. if ((D(t)=L) && (M(t)≧1) then
M(t+1)←M(t)-1, C(t+1)←C(t), D(t+1)←R
2. if ((D(t)=L) && (M(t)≧2) then
M(t+1)←M(t)-2, C(t+1)←C(t), D(t+1)←R
3. if ((D(t)=L) && (C(t)≧1) then
M(t+1)←M(t), C(t+1)←C(t)-1, D(t+1)←R
縦型(深さ優先)探索 (DFS)
初期状態から離れた状態を
優先的に調べる探索方法.
行き止まり状態になると,解
を探索するために,それまで
の経路を次の探索を再開で
きる状態まで後戻りする(バッ
クトラック).
バックトラックを効率よく制御
するために,スタックが用いら
れる.
1
2
3
5
4
6
7
8
9
10
11
課題(1)
N4~N10を記述せよ
ヒント
N5
if ((D(t)=L) && (M(t)≧1) && (C(t)≧1) then
M(t+1)←M(t)-1, C(t+1)←C(t)-1, D(t+1)←R
N10
if ((D(t)=R) && (M(t)≦2) && (C(t)≦2) then
M(t+1)←M(t)+1, C(t+1)←C(t)+1, D(t+1)←L
許容状態を満たす条件と
移動方法
M(t)≧C(t) かつ 3-M(t)≧3-C(t) を満たす状態
⇒任意のtに対して,
M(t)=0 または M(t)=3 または M(t)=C(t)
M(t)=3 or M(t)=0
→ 宣教師はボートに乗らない,または
M(t+1)=C(t+1) になるように移動させる.
M(t)=C(t)
→ M(t+1)=3 または M(t+1)=0 になる移動を行う,
あるいは,宣教師と人喰い人種を1人ずつ移動させる.
課題(2)
MC問題の状態空間を生成し,完成させよ.
<2,3,R>
<3,3,L>
<2,2,R>
<2,1,L>
<2,3,R>
<3,1,R>
<3,2,L>
<3,0,R>
<3,2,R>
<1,3,R>
<3,1,L>
来週の予定(最終日)
「創造性」について
授業のまとめ
最終課題レポートについて
アンケート