局所探索とは
解の部分的変更の繰り返しによる最適化
⇒ 「反復法」と呼ばれることもある
「少しでも良い解」を追求するアプローチ
⇒ 最適解は必ずしも求められない
・物理システム
ボールの落下、化学反応、熱現象、 etc
⇒ 自由エネルギー G を低くする方向に働く
・局所探索
近傍解の探索および入れ替え
⇒ f(S) を低くする方向に働く※ ある問題の解 S に対して、最適解との最適度における差を示す評価関数を f(S) と定義する。
単純な漏斗構造の場合。坂をボールが転がるようにより低い近傍解が求まっていき、最終的には最適解へと辿り着く。
ボール現在の解
最適解 坂終端
近傍
解が多重漏斗状に分布している例。多くの問題が当てはまる。ボールが途中の穴にはまって坂を転げ落ちるのをやめてしまうよう
に、局所探索の方法によっては局所最小解に陥ってストップしてしまう。
近傍
大域最適解
局所最小解
I. 近傍解選択のルール
II. 近傍の定義
Ⅱ
Ⅰ
問題概要
グラフ G=(V,E) ( V は頂点、 E は辺)が与えられたとき、全辺 e につい
て
少なくとも一方の端点が V’ に含まれるような V の部分集合 V’ のうち、
出来るだけ小さい物を見つけるという問題。sizeof(V’) = 2
sizeof(V’) = 3
方針
① 初期解を V’= V として探索を開始する。
② V’ からいずれかの1頂点を選び、除去しても
点カバーが維持されるならば、除去する。
③ 除去できる点が一つもなくなるまで②を繰り返す
④ 除去できる点がなくなったら終了する。
局所最小解に極めて陥り易い
∵ 「坂」を登らないから
物理システムを再現する 自由エネルギーの比喩を思い出してみると、物理システムではエネルギー E の状態に
いる確率はギブス・ボルツマン関数 に比例する。
この物理システムを再現することで、再急降下法にはなかった「坂を登る」アクション
がある程度の確率で許される事になり、局所最小解で手詰まりになる事がなくなる。
【シミュレーション】
現在のエネルギーを E(S) , ある近傍のエネルギーを E(S’), E(S’) - E(S) ≡ ΔE と置く。
もし ΔE < 0 ならば、状態を更新する。
そうでなくても、 の確率で状態を更新する。
)/(kTEe
)/()( kTEe
長所:局所最小解に陥りにくい
坂を登る動作が常にある確率で存在するため、
穴にはまらない。
短所:最適解に辿りつきにくい
最適解に近づいても登坂運動を繰り返してしまうので、
単純漏斗的な、最適解が出しやすい問題でも最適解に
辿りつくまでに無駄に長く時間がかかってしまう。
Metropolis algorithm の改良シミュレーテッドアニーリングともいう。
ボルツマン関数における温度( T )項を調節することで、
登坂運動により浮動する確率を制御する。
最適解に近づくほどに T の値を低くしていき、運動を
最急降下法に近似していくことで問題点を克服する。
問題概要
グラフ G=(V,E) ( V は頂点、 E は辺)が与えられ、各辺には整数の重み we
が定義され、各頂点はフリップ出来る True/False の状態値を持っている。
辺の重みが負のとき、その端点同士の状態値が同じであるとその辺は
Good と評価され、逆に辺の重みが正の時は、端点同士の状態値が
相異なると Good され、全ての辺が Good である事を、安定状態という。
また、接続する Good 辺の |重み |の和が Bad 辺の |重み |の和よりも大き
く
なっている頂点を、満たされた頂点と表現する。
できるだけ重みの強い辺の要求を満たすような状態を求めよ。
方針
0. 良い辺の重みの絶対値の総和を Φ(S) と表現する
1. 満たされていない1頂点 u を選ぶ
2. フリップすると Φ(S) が増加する場合、フリップす
る
3. ネットワークがまだ安定していない場合1に戻る
近傍の定義 現在の状態から、1つの頂点をフリップした状態
= 最近傍探索
線形性必ずフリップする度に Φ(S) の値が最低で 1 増え、また
Φ(S) は全辺の重みの総和W を上回る事はない
→ 計算時間は n とW の多項式時間で表現できる
擬多項式時間なので計算時間は莫大になる
問題概要
無向グラフ G=(V,E) と各辺 e に整数の重み we が与えら
れる。
点集合 V の分割 (A, B) に対し、一方の端点が A, 他方が B
に
含まれる辺の重みの総和を w(A, B) と書くことにする。
w(A, B) が最大になる分割 (A, B) を求めよ。
方針① 分割 (A, B) のどちらか一方に含まれる点 u を選ぶ。
② u と接続する u が含まれる集合に含まれる点と u を結ぶ辺の重みの
総和と、含まれない点と u を結ぶ辺の重みの総和を比較し、
後者の方が大きい時 u を分割の別の集合に移す。
③ 繰り返す
→ 近傍の定義が狭い
方針
基本方針は最近傍探索と同様。
同時にフリップ対象とする頂点の数を自然数 k とする。
近傍が広がるため、より悪い局所最適解に陥りにくい。
k の値が大きすぎる場合、必要計算量が莫大になり、
計算効率が落ち得るため調節が必要となる。