「《メタヒューリスティクス》」の版間の差分
(新しいページ: '【めたひゅーりすてぃくす (meta-heuristics) 】 メタヒューリスティクス (meta-heuristics) とは組合せ最適化問題に対しての, 発見的...') |
細 (誤植の修正) |
||
(5人の利用者による、間の8版が非表示) | |||
1行目: | 1行目: | ||
− | 【めたひゅーりすてぃくす (meta-heuristics) 】 | + | '''【めたひゅーりすてぃくす (meta-heuristics) 】''' |
− | [[メタヒューリスティクス]] (meta-heuristics) とは組合せ最適化問題に対しての, 発見的解法の枠組みであり, 従来の数理的, 分析的手法に基づく厳密解法に対し, ある暫定解からより良い解を発見的に探索するための方法論である. 1)個々の問題の性質に依拠しないより包括的な枠組みである, 2)最適解を求めることではなく, より良い解を現実的な時間で求めることを目的とする, といった特徴が挙げられる. メタヒューリスティクスに含まれる多くの手法は局所探索法 (local search) を元にしているが, 局所最適解で探索が終了してしまうという欠点を補うためのさまざまな工夫がなされている. | + | [[メタヒューリスティクス]] (meta-heuristics) とは組合せ最適化問題に対しての, 発見的解法の枠組みであり, 従来の数理的, 分析的手法に基づく厳密解法に対し, ある暫定解からより良い解を発見的に探索するための方法論である. 1) 個々の問題の性質に依拠しないより包括的な枠組みである, 2) 最適解を求めることではなく, より良い解を現実的な時間で求めることを目的とする, といった特徴が挙げられる. メタヒューリスティクスに含まれる多くの手法は局所探索法 (local search) を元にしているが, 局所最適解で探索が終了してしまうという欠点を補うためのさまざまな工夫がなされている[7]. |
[[多スタート局所探索]] (multi start local search) は適当な方法で生成した初期解からの局所探索法を繰り返し行うことにより, 改善された局所最適解を求めるものである. | [[多スタート局所探索]] (multi start local search) は適当な方法で生成した初期解からの局所探索法を繰り返し行うことにより, 改善された局所最適解を求めるものである. | ||
7行目: | 7行目: | ||
[[可変近傍法]] (variable neighborhood search) は複数の近傍を定義し, 暫定解 (それまでに得られた最善解) に対しある近傍から一つ初期解を選択し, その解に対して局所探索法を適用するという手順を繰り返す. この反復において暫定解が更新されたか否かによって初期解を選択するための近傍を変える点に特徴がある. | [[可変近傍法]] (variable neighborhood search) は複数の近傍を定義し, 暫定解 (それまでに得られた最善解) に対しある近傍から一つ初期解を選択し, その解に対して局所探索法を適用するという手順を繰り返す. この反復において暫定解が更新されたか否かによって初期解を選択するための近傍を変える点に特徴がある. | ||
− | [[アニーリング法]] (simulated | + | [[アニーリング法]] (simulated aneealing) は局所探索法の実行過程に確率的な振る舞いを加え局所最適解に陥らないようにしたアルゴリズムであり, Kirkpatrickらによって提案された [2]. アニーリング法では改悪の方向への移行を確率<math>P\, </math>で受け入れる. <math>P\, </math>は温度<math>t\, </math>と呼ばれる制御パラメータを含む関数で定義され, 目的関数が改悪される度合が大きくなれば小さくなるように定義される. 一般に用いられるのは, 変更にともなう目的関数値の変化量を<math>\Delta \, </math>(改悪ならば正、改良ならば負の値をとる)とすると, |
− | |||
− | + | <table align="center"> | |
+ | <tr> | ||
+ | <td><math>P=\left\{\begin{array}{l} | ||
+ | 1,\;\Delta\le 0\\ | ||
+ | \exp (-\Delta /t ),\Delta >0 | ||
+ | \end{array}\right.</math> | ||
+ | </td> | ||
+ | </tr> | ||
+ | </table> | ||
− | + | と定義される. パラメータ<math>t\, </math>は最初は大きな値に設定されるが、その後<math>t\, </math>を徐々に小さくすることによって, 探索の初期の段階では広い領域を探索し, 後期では探索が最適解に落ち着くことをねらっている. | |
− | [[ | + | [[タブー探索]] (tabu search) は局所探索法において局所最適解から脱出するため, 近傍内の最良解(改悪解であっても)へ移行するという操作を加えたものである [3, 4] . 一つの局所最適解とその近傍のみの移行という繰り返しを避けるために, 現在までの移行の履歴を保持し, 移行に制約を設ける. この制約をタブーという. またタブーにより良い最適解への移行を妨げる場合があるのでタブー保有期間と呼ばれる一定期間を経るとタブーは解消される. これにより局所最適解に陥ることなく広範囲の最適解を探索することが可能になる. |
+ | [[遺伝アルゴリズム]] (genetic algorithm) は生物の形質遺伝による進化を組合せ最適化問題における解の進化, すなわち目的関数値を向上させることに利用した解法である [6]. まず候補解を記号列として表現したものを遺伝子と名付け, これらの遺伝子からなる集団に対し1) 次世代に子孫を残す解を選択し (選択), 2) <math>2\, </math>つの親の遺伝子より子の遺伝子を生成し (交叉), 3) 遺伝子の一部を一定の確率で変化させ (突然変異), 4) 劣っている解は集団より除去する (淘汰), という操作を繰り返し行う. 交叉において遺伝子の特徴がどのように次の世代に遺伝していくかということは[[スキーマ定理]] (scheme theorem) によって確率的に示されている [5]. ここでスキーマ<math>H\, </math>とは遺伝子を2進数で表現したときの部分列であり, その次元を<math>o(H)\, </math>, 定義長を<math>\delta(H)\, </math>とし, <math>m(H,t)\, </math>を次世代<math>t\, </math>でスキーマ<math>H\, </math>を含む個体の数, <math>f(H)\, </math>スキーマ<math>H\, </math>を含む個体の適応度の平均値, <math>\overline{f}(t)\, </math>を世代<math>t\, </math>での固体の平均適応度とすると | ||
− | \begin{ | + | |
+ | <center> | ||
+ | <math>\begin{array}{lll} | ||
m(H,t+1) &\geq& m(H,t)f(H) | m(H,t+1) &\geq& m(H,t)f(H) | ||
− | \{1-p_c\delta(H)/(l-1)\}(1-p)^{o(H)}/\overline{f}(t) | + | \{1-p_c\delta(H)/(l-1)\}(1-p)^{o(H)}/\overline{f}(t) \\ |
− | &\approx& m(H,t)f(H)\{1-p_c\delta(H)/(l-1)-po(H)\}/\overline{f}(t) | + | &\approx& m(H,t)f(H)\{1-p_c\delta(H)/(l-1)-po(H)\}/\overline{f}(t) |
− | \end{ | + | \end{array}\, </math> |
+ | </center> | ||
が成立する. | が成立する. | ||
− | 遺伝アルゴリズムは[[進化的計算]] (evolutionary computation), 進化的プログラミング (evolutionary programming) といった生物の遺伝, 進化の過程を模倣して最適化問題における最適解を探索するという枠組みの中のひとつであり、さらには[[人工生命]] | + | 遺伝アルゴリズムは[[進化的計算]] (evolutionary computation), 進化的プログラミング (evolutionary programming) といった生物の遺伝, 進化の過程を模倣して最適化問題における最適解を探索するという枠組みの中のひとつであり、さらには[[人工生命]] (artificial life) という生命システムをコンピュータでシミュレートする研究との関連においても注目されている. |
---- | ---- | ||
− | |||
'''参考文献''' | '''参考文献''' | ||
− | [1] G. | + | [1] G. Hansen and N. Mladenovic, "An Introduction to Variable Depth Search," in ''Meta-heuristics: Advances and Trends in Local Search Paradigms for Optimization'', S. Voss, eds., Kluwer Academic Publishers, 1998. |
[2] S. Kirkpatrick, C. D. Gellat and M. P. Vecchi, "Optimization by Simulated Annealing," ''Science'', '''220''' (1983), 671-680. | [2] S. Kirkpatrick, C. D. Gellat and M. P. Vecchi, "Optimization by Simulated Annealing," ''Science'', '''220''' (1983), 671-680. | ||
46行目: | 56行目: | ||
[6] J. H. Holland, ''Adaptation in Natural and Artificial Sytems'', University of Michigan Press, 1975. | [6] J. H. Holland, ''Adaptation in Natural and Artificial Sytems'', University of Michigan Press, 1975. | ||
+ | |||
+ | [7] 柳浦睦憲, 茨木俊秀, 「組合せ最適化」, 朝倉書店, 2001. | ||
+ | |||
+ | [[category:近似・知能・感覚的手法|めたひゅーりすてぃくす]] |
2008年3月13日 (木) 11:04時点における最新版
【めたひゅーりすてぃくす (meta-heuristics) 】
メタヒューリスティクス (meta-heuristics) とは組合せ最適化問題に対しての, 発見的解法の枠組みであり, 従来の数理的, 分析的手法に基づく厳密解法に対し, ある暫定解からより良い解を発見的に探索するための方法論である. 1) 個々の問題の性質に依拠しないより包括的な枠組みである, 2) 最適解を求めることではなく, より良い解を現実的な時間で求めることを目的とする, といった特徴が挙げられる. メタヒューリスティクスに含まれる多くの手法は局所探索法 (local search) を元にしているが, 局所最適解で探索が終了してしまうという欠点を補うためのさまざまな工夫がなされている[7].
多スタート局所探索 (multi start local search) は適当な方法で生成した初期解からの局所探索法を繰り返し行うことにより, 改善された局所最適解を求めるものである.
可変近傍法 (variable neighborhood search) は複数の近傍を定義し, 暫定解 (それまでに得られた最善解) に対しある近傍から一つ初期解を選択し, その解に対して局所探索法を適用するという手順を繰り返す. この反復において暫定解が更新されたか否かによって初期解を選択するための近傍を変える点に特徴がある.
アニーリング法 (simulated aneealing) は局所探索法の実行過程に確率的な振る舞いを加え局所最適解に陥らないようにしたアルゴリズムであり, Kirkpatrickらによって提案された [2]. アニーリング法では改悪の方向への移行を確率で受け入れる. は温度と呼ばれる制御パラメータを含む関数で定義され, 目的関数が改悪される度合が大きくなれば小さくなるように定義される. 一般に用いられるのは, 変更にともなう目的関数値の変化量を(改悪ならば正、改良ならば負の値をとる)とすると,
と定義される. パラメータは最初は大きな値に設定されるが、その後を徐々に小さくすることによって, 探索の初期の段階では広い領域を探索し, 後期では探索が最適解に落ち着くことをねらっている.
タブー探索 (tabu search) は局所探索法において局所最適解から脱出するため, 近傍内の最良解(改悪解であっても)へ移行するという操作を加えたものである [3, 4] . 一つの局所最適解とその近傍のみの移行という繰り返しを避けるために, 現在までの移行の履歴を保持し, 移行に制約を設ける. この制約をタブーという. またタブーにより良い最適解への移行を妨げる場合があるのでタブー保有期間と呼ばれる一定期間を経るとタブーは解消される. これにより局所最適解に陥ることなく広範囲の最適解を探索することが可能になる.
遺伝アルゴリズム (genetic algorithm) は生物の形質遺伝による進化を組合せ最適化問題における解の進化, すなわち目的関数値を向上させることに利用した解法である [6]. まず候補解を記号列として表現したものを遺伝子と名付け, これらの遺伝子からなる集団に対し1) 次世代に子孫を残す解を選択し (選択), 2) つの親の遺伝子より子の遺伝子を生成し (交叉), 3) 遺伝子の一部を一定の確率で変化させ (突然変異), 4) 劣っている解は集団より除去する (淘汰), という操作を繰り返し行う. 交叉において遺伝子の特徴がどのように次の世代に遺伝していくかということはスキーマ定理 (scheme theorem) によって確率的に示されている [5]. ここでスキーマとは遺伝子を2進数で表現したときの部分列であり, その次元を, 定義長をとし, を次世代でスキーマを含む個体の数, スキーマを含む個体の適応度の平均値, を世代での固体の平均適応度とすると
が成立する.
遺伝アルゴリズムは進化的計算 (evolutionary computation), 進化的プログラミング (evolutionary programming) といった生物の遺伝, 進化の過程を模倣して最適化問題における最適解を探索するという枠組みの中のひとつであり、さらには人工生命 (artificial life) という生命システムをコンピュータでシミュレートする研究との関連においても注目されている.
参考文献
[1] G. Hansen and N. Mladenovic, "An Introduction to Variable Depth Search," in Meta-heuristics: Advances and Trends in Local Search Paradigms for Optimization, S. Voss, eds., Kluwer Academic Publishers, 1998.
[2] S. Kirkpatrick, C. D. Gellat and M. P. Vecchi, "Optimization by Simulated Annealing," Science, 220 (1983), 671-680.
[3] F. Glover, "Tabu Search I," ORSA Journal on Computing, 1 (1989), 190-206.
[4] F. Glover, "Tabu Search II," ORSA Journal on Computing, 2 (1989), 4-32.
[5] D. E. Goldberg, Genetic Algorithms in Search, Optimization, and Machine Learning, Addison-Wesley, 1989.
[6] J. H. Holland, Adaptation in Natural and Artificial Sytems, University of Michigan Press, 1975.
[7] 柳浦睦憲, 茨木俊秀, 「組合せ最適化」, 朝倉書店, 2001.