タブーサーチのソースを表示
←
タブーサーチ
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
'''タブーサーチ'''({{lang-en-short|tabu search}})や'''タブー探索'''とは、[[1989年]]にフレッド・グローバー(Fred Glover)により考案された<ref>{{cite journal | first = Fred | last = Glover | year = 1986 | title = Future Paths for Integer Programming and Links to Artificial Intelligence | journal = Computers and Operations Research | volume = 13 | issue = 5 | pages = 533–549 | doi=10.1016/0305-0548(86)90048-1 }} </ref><ref name="glover89">{{cite journal | first = Fred | last = Glover | year = 1989 | title = Tabu Search - Part 1 | journal = ORSA Journal on Computing | volume = 1 | issue= 2 | pages = 190–206 | doi=10.1287/ijoc.1.3.190 }} </ref><ref>{{cite journal | first = Fred | last = Glover | year = 1990 | title = Tabu Search - Part 2 | journal = ORSA Journal on Computing | volume = 2 | issue= 1 | pages = 4–32 | doi=10.1287/ijoc.2.1.4 }} </ref>[[メタヒューリスティック]]の[[探索]][[アルゴリズム]]の一つである。 == 概要 == タブーサーチはメタヒューリスティクスの手法であり、[[人工知能]]の概念に基づいた[[局所探索法]]の一般化として認知されている。同じメタヒューリスティクスの手法には、[[遺伝的アルゴリズム]]や[[焼きなまし法]]のように特定の自然現象を模倣した手法がある。 この手法は状態の近傍を複数探索しその中で最も良い近傍状態に遷移する、このとき'''タブーリスト'''と呼ばれる[[キュー (コンピュータ)|キュー]]に状態遷移時の操作を書き込む。このタブーリストに書き込まれている操作は行わないことにより状態がループするのを防ぐことで探索が停滞せずに最適解を探索する。ここで重要なのは'''タブーリストに載っていない場合は状態が悪くなっても遷移を行う'''ことである。このことにより局所解で探索が停滞するのを防いでいる。 == アルゴリズムの流れ == アルゴリズムの流れを以下に示す。 #初期状態 ''S<sub>0</sub>'' を決定する(通常は[[ランダム]])。 #最良状態 ''S<sub>b</sub>'' と現在状態 ''S'' を作成し、とりあえず ''S<sub>0</sub>'' を両方に記録しておく。 # ''S'' の近傍を複数(''M'' 個)選び、その中で最も成績の良い近傍を ''S' '' とおく(この比較に''S'' は入らないことに注意) # 状態遷移を判定(以下のどちらか) ## もし''S' '' が''S<sub>b</sub>'' より良い値なら''S<sub>b</sub>'' =''S'' =''S' '' とする。このときタブーリストに''S'' →''S' '' になる操作が記載されている場合、その部分をタブーリストの一番新しい記載に移動する。 ## もし''S' '' が''S<sub>b</sub>'' より悪い値なら、''S'' →''S' '' になる操作がタブーリストに記載されているかどうかを確認する。記載されていないならタブーリストに''S'' →''S' '' となる操作を記載して ''S'' =''S' '' とする。このときタブーリストのサイズが上限を越えているなら、一番古い記載を削除する。 # 終了条件が満たされるまで 3. 以下の操作を繰り返し、最終的に''S<sub>b</sub>'' を解として出力する。 この方法は他のメタヒューリスティックと違い最良解は必ず保存することがアルゴリズム内に組み込まれている。この理由はタブーサーチにおける状態は常に遷移し続けている(タブーリストの記載方法しだいでは停滞することもあるが、それはやってはならない操作とされる)ため最終状態が最良状態である可能性が極めて低いからである。 == パラメータ設定 == タブーサーチにおいて設定するパラメータは以下の通りである。他のメタヒューリスティック同様パラメータの調整は科学というよりは技能的なものである。 === 状態近傍 === [[焼きなまし法]]と同様にタブーサーチにおいて近傍の定義は非常に重要になってくる、特にタブーサーチの場合複数の近傍が存在していることが前提なので設定次第では探索が停滞したり、最適解に到達不可能になる可能性もある。 基本的には探索[[グラフ理論|グラフ]]で表した場合、ほぼ同様のエネルギー状態になるようにおくことが好まれる、[[巡回セールスマン問題]]の場合なら隣り合う都市を入れ換えるなどである。 === 近傍探索の数 === ''S'' の近傍を探索する数 ''M'' は多くした場合、非常に解の改善が早くなる一方、局所解に陥りやすくなる。逆に ''M'' を小さくした場合局所解には陥りにくくなるが解の精度は大きく劣る可能性がある。ただし ''M'' を大きくしすぎると少数の状態が常に採択され、その状態への遷移が全てタブーリストに記載されている場合は探索が停滞してしまうので、常に別状態へ遷移する可能性は残しておくような範囲で設定しなければいけない。 === タブーリストの記載方法 === タブーリストには''S'' →''S' '' となる状態を記載する、この記載方法は単純に''S'' の中身を記載するのではなく''S'' と''S' '' の差分を記載することになるが、この場合いくつかの方法が考えられる。例えば近傍探索がグラフの辺を入れ換えるような操作の場合、入れ換えた辺が交換されるのを防ぐか、入れ換えられた辺がまた選ばれるのを防ぐか、両方起こるのを防ぐか、どちらかが起こるのを防ぐかなどである。厳しくした方がループを防ぎやすくなるが、ループを防ぐことが最適解の到達に役立つとは必ずしもいえない、例えば一つ前の状態の別の遷移が最適解であることなどがあるためである。 === タブーリストのサイズ === タブーリストのサイズは上述の記述と同様の理由であまり大きく設定しないことが推奨される、特に記載内容が厳しい場合はタブーリストのサイズは大きくない方が良い結果が得られることが多い。実験的に大体どのような問題に対してもタブーリストは5~12の値が良いとされており特に7とする場合が多い。 しかし、問題のサイズが大きくなればタブーリストのサイズも大きくするのが直感的には正しいように思えるため、問題のサイズ ''N'' あるいは <math>\sqrt{N}</math>をタブーリストのサイズにすることなども提案されている。 == 関連項目 == *[[メタヒューリスティクス]] *[[焼きなまし法]] *[[遺伝的アルゴリズム]] == 参照 == {{reflist}} {{最適化アルゴリズム}} {{Computer-stub}} {{デフォルトソート:たふさち}} [[Category:メタヒューリスティクス]] [[Category:検索アルゴリズム]]
このページで使用されているテンプレート:
テンプレート:Cite journal
(
ソースを閲覧
)
テンプレート:Computer-stub
(
ソースを閲覧
)
テンプレート:Lang-en-short
(
ソースを閲覧
)
テンプレート:Reflist
(
ソースを閲覧
)
テンプレート:最適化アルゴリズム
(
ソースを閲覧
)
タブーサーチ
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報