8 メタヒューリスティック

8 メタヒューリスティック
あなたは真夜中に
山の頂上を目指す登山者です
8 メタヒューリスティック
あなたのいる山には
いくつもの小高い丘があり、
周りを見ただけでは
そこが頂上か分かりません
8 メタヒューリスティック
さて、なるべく早く頂上に登るには
どのような戦略を用いれば
良いのでしょうか?
メタヒューリスティックの代表的な解法
局所探索法(Local Search)
 模擬焼き鈍し法(Simulated Annealing Method)
 タブーサーチ(Tabu Search)
 遺伝的アルゴリズム(Genetic Algorithm)

局所探索法(Local Search)

適当な初期実行可能解を定め、近傍の中に、現在
の解を改良する解があれば、それに移ることを繰り
返して解を改善していく方法
近傍
実行可能解
山頂を目指す夜の登山者

明かりの照らせる範囲に現在地点より高い場所が
周りにあればその方向へ移動する
山頂を目指す夜の登山者

照らした範囲に現在地点よりも標高が高い地点が
見つからなくなった時点で終了
→いつも最も高い地点に到達できるとは限らない
ココが頂上?
本当の頂上
模擬焼き鈍し法
(Simulated Annealing Method)
解を改悪することを確率的に許したメタヒュー
リスティック
 焼き鈍し現象にアナロジーを持つ

温度Tが高い
徐々に冷却
温度T=0
模擬焼き鈍し法
(Simulated Annealing Method)

改悪を許す確率を徐々に小さくすることに
よって、非常に長い時間をかけて最適解を得
る保証を持つ
低温
高温
山頂を目指す夜の登山者


照らした場所の標高と現在地点の標高差Δを測定
する
現在の地点より高い地点(Δ≧0)があれば、その場
所に移動する
山頂を目指す夜の登山者
照らした地点の標高が現在地点よりも低ければ(Δ<
0)、寒暖計によって現在の気温Tを測定する
 乱数表により[0,1]の一様乱数を得て、その値が
eーΔ/Tより小さかったら、その場所に移動。大きかっ
たらその場にとどまり、再び適当な場所を懐中電灯
で照らす
→局所検索法と違い、現在地点より低い場所へ移動
することもある
→局所検索法よりも歩く時間は長くなるが、到着した
丘は局所検索法よりも高いことが期待できる

タブーサーチ(Tabu Search)

探索の過去の記憶を利用したメタヒュー
リスティック
?
山頂を目指す夜の登山者
同じ場所を巡回しないように、記憶を頼りに、
常に最も高い方向を目指して進む
 周りに標高の高い地点がなくなったときでも、
なるべく下り坂の勾配が小さいほうへ歩き続
ける
 元の道に戻らないための目印として、属性を
タブーリストに記憶する。但し、タブーリストに
はタブー長だけしか記憶できず、古いものか
ら順に忘れていく

山頂を目指す夜の登山者
タブー長は
2
属性
山頂を目指す夜の登山者
に戻らないよう
高いほうへ進む
山頂を目指す夜の登山者
タブー長は2
山頂を目指す夜の登山者
に戻らないよう
に高いほうへ進む
遺伝的アルゴリズム
(Genetic Algorithm)



複数の実行可能解を保持し、それら解を進化のア
ナロジーを用いて改善していく方法
2つの解から新たな解を合成する交叉(crossover)
ランダムに解の一部を変化させる突然変異
(mutation)
遺伝的アルゴリズム
(Genetic Algorithm)

交叉や突然変異は実行可能性を破壊してし
まう、という問題点もある
山頂を目指す夜の登山者
複数の人がばらばらに登りの方向を目指して
進む
 標高の高い位置にいる2人の間に1番低い所
にいる人を移動させる

1番高い
2番目に高い
1番低い
移動後
おわり