最適化アルゴリズムシリーズのシミュレーテッドアニーリングアルゴリズム(1) - 基本原理の退屈版

最適化アルゴリズムシリーズのシミュレーテッドアニーリングアルゴリズム(1) - 基本原理の退屈版

おすすめの書籍 --> 『インテリジェントな最適化アルゴリズムとその MATLAB 例 (第 2 版)』

Zhihu の画像説明:

  底がデコボコで穴がたくさんある大きなポットで、ポットを振ると小さなボールが世界最小値に達します。最初は揺れが激しく、小球の変化が比較的大きいですが、全体最小値に向かうと徐々に釜の振幅を小さくし、最後には釜が揺れなくなり、小さなボールはグローバル ミニマムに達します。

1. 歴史(興味のない方は読み飛ばしてください)

  有名なシミュレーテッド アニーリング アルゴリズム。モンテカルロ設計に基づいて最適化問題を近似する手法です。

  アメリカの物理学者 N. メトロポリスらは、複雑系の研究とそのエネルギー分布の計算に関する論文を 1953 年に発表し、モンテカルロ シミュレーションを使用して多分子系における分子のエネルギー分布を計算しました。これはこの記事で議論する問題の始まりに相当しますが、実はシミュレーテッドアニーリングでよく言及される用語が、後で紹介するメトロポリス基準です。

  米国 IBM 社の物理学者である S.カークパトリック、CD ゲラット、MP ベッキは、1983 年に「Science」誌に「シミュレーションによるアニーリングによる最適化」という影響力のある論文を発表しました。Metropolis らの手法を借りてスピン グラス システム (スピン グラス システム) を調査したところ、物理システムのエネルギーといくつかの組み合わせ最適化問題 (有名な巡回セールスマン問題 TSP が代表的な例) が非常に複雑であることがわかりました。同様に、最低のコストを求めることは、最低のエネルギーを求めることに似ています。その結果、彼らはメトロポリス法に基づいた一連のアルゴリズムを開発し、それを組み合わせ問題を解決し、最適な解決策を求めるために使用しました。

  ほぼ同時期にヨーロッパの物理学者V.カーニーもほぼ同様の結果を発表したが、どちらも独自に発見されたものであり、単にカーニーが「運が悪かった」だけであり、当時誰も彼の傑作に注目しなかった、とも言えるのかもしれない。 「サイエンス」誌は高い「露出」で世界中で販売されており、よく知られていますが、カーニーは別の学術誌「J.Opt. Theory Appl.」に研究結果を発表しました。

  Kirkpatrick らは、Metropolis らによるモンテカルロ シミュレーションに触発され、オブジェクトのアニーリング プロセスに似ているため、「シミュレーテッド アニーリング」という用語を発明しました。問題の最適解 (最大値) を見つけることは、システムの最低エネルギーを見つけることと似ています。したがって、システムが冷えると、エネルギーは徐々に減少し、同じ意味で、問題の解も最小値に「低下」します。

       固体焼鈍:

       1. まず固体を加熱して溶解し、その後ゆっくりと冷却します。

       2. アニーリングは、システムが各温度で平衡に達するようにゆっくりと実行する必要があります。

       3. 冷却中に急激に温度を下げないでください。

       シミュレーテッドアニーリングアルゴリズム:

       1. 初期解 i0 から開始し、L 回の解変換後 (毎回 Metropoils アルゴリズムに従って)、特定の温度における相対最適解が得られます。

       2. 制御パラメータ T を減らし、解を再変換します (上記と同様)

       3. 制御パラメータ T が 0 に近づく場合の最適解を求める

2.アニーリングとは - 物理的起源

  熱力学におけるアニーリング現象は、物体が徐々に冷える物理現象を指します。温度が低くなるほど、物体のエネルギー状態は低くなります。温度が十分に低くなると、液体は凝縮して結晶化し始めます。状態では、システムのエネルギー状態が最低になります。自然はゆっくりと冷える(つまりアニールする)と、エネルギーが最も低い状態、つまり結晶化を「見つける」ことができます。ただし、プロセスが速すぎると、急速冷却 (「急冷」とも呼ばれます) により、最低エネルギー状態ではない非晶質状態が生じます。

  以下の図に示すように、最初 (左) のオブジェクトはアモルファス状態にあります。固体を十分に高い温度まで加熱し (中央の画像)、ゆっくりと冷却するかアニールします (右の画像)。加熱すると、温度の上昇とともに固体内部の粒子が乱れ内部エネルギーが増加しますが、ゆっくりと冷却すると粒子は徐々に整い、各温度で平衡状態に達し、最終的には室温で基底状態に達します。温度が上昇すると内部エネルギーが減少し、その値が最も小さくなります(この時点で物体は結晶として現れます)。

  自然はゆっくりと慎重に作業する方法を知っているようです。ゆっくりと冷却して、物体の分子が各温度で安定するのに十分な時間を確保し、その後徐々に、最後に最も低いエネルギー状態を得ることができます。システムは最も安定しています。

3. 大都市 (モンテカルロ) 基準  

  1953 年にメトロポリスは、このような重要度サンプリング法を提案しました。つまり、現在の状態 i から新しい状態 j が生成される場合、新しい状態の内部エネルギーが状態 i の内部エネルギーより小さい場合 (Ej<Ei)、新しい状態 j は新しい状態 j として受け入れられます。それ以外の場合は、確率 exp[-(Ej-Ei)/kT] (k はボルツマン定数、いわゆるメトロポリス基準) で状態 j を受け入れます。

メトロポリス (モンテカルロ) 基準  によると、粒子が温度 T でバランスする傾向にある確率は exp(-ΔE/(kT)) です。ここで、E は温度 T での内部エネルギー、ΔE はその変化数、k です。はボルツマン定数です。大都市の基準は、次のように表現されることがよくあります。

  

-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ----------

  熱力学の原理によれば、温度が T のとき、エネルギー差 dE による温度低下の確率は p(dE) で、次のように表されます。 

          

  その中で: k はボルツマン定数、値は k=1.3806488(13)×10−23、

      exp は自然指数を表し、

      dE<0

                dE/kT<0

                p(dE) 関数の値の範囲は (0,1) です。

                これは確率密度関数の定義を満たします。

                実際、この式のより直観的な意味は、温度が高いほど、エネルギー差 p(dE) による温度低下の確率が大きくなり、温度が低いほど、温度低下の確率が小さくなるということです。
  

  実際の問題では、「特定の確率」の計算は金属精錬の焼きなましプロセスを指します。現在の実現可能な解が x であり、反復更新後の解が x_new であると仮定すると、対応する「エネルギー差」は次のように定義されます: 
       Δf=f(x_new) - f(x)。

  対応する「一定の確率」は次のとおりです。 
        

  注: 実際の問題では、k=1 に設定できます。kT はパラメータ T と同等である可能性があるためです。たとえば、k=2 および T=1000 を設定すると、T=2000 を直接設定した場合と同じ効果になります。

4.模擬アニーリングの導入(Simulate Anneal)

  次のような関数があり、その関数の (全体的な) 最適解を見つけたいと考えていると想像してください。貪欲戦略が採用されている場合は、ポイント A からテストを開始し、関数値が減少し続ける場合はテスト プロセスが続行されます。そして、点 B に到達すると、明らかに探索プロセスは終了します (どの方向に頑張っても、結果はますます大きくなるからです)。結局のところ、部分的な最終解 B しか見つかりません。

  シミュレーテッド アニーリングは実際には貪欲なアルゴリズムですが、その検索プロセスにはランダムな要素が導入されます。実行可能解を繰り返し更新すると、現在の解よりも悪い解が一定の確率で受け入れられるため、この局所的な最適解を飛び出して大域的な最適解に到達することが可能です。次の図を例にとると、初期解が左側の青い点 A であると仮定すると、シミュレーテッド アニーリング アルゴリズムはすぐに局所最適解 B を検索しますが、局所最適解を検索した後、ここで終了するわけではありません。 、ただし一定の確率で受け付けます 左へ移動します。おそらく、そのような非局所的な最適な移動が数回行われた後、大域的な最適点 D に到達し、その後、局所的な最小値が飛び出すでしょう。

  面白い比喩

  山登りアルゴリズム: ウサギは今よりも高いところを目指してジャンプします。遠くないところに一番高い山を見つけました。しかし、その山はエベレストである必要はありません。これは山登りアルゴリズムであり、局所的な最適値が全体的な最適値であることを保証できません。

      (とても怠け者なので、今より高く見えたら受け入れます)

  模擬アニーリング: ウサギは酔っています。長時間ランダムにジャンプします。この間、高いところに行ったり、平地に足を踏み入れることもあります。しかし、徐々に目覚めて、高い方向に向かってジャンプしました。これが模擬焼鈍です。

      (最初はとても興奮していて、あらゆるところに挑戦し、たくさん変更しました。その後、疲れて徐々にペースを落とし、現時点での最高点を目指して登りました)  

5.模擬焼鈍原理

  シミュレーテッド アニール演算 (SAA) は、大規模な検索空間で命題の最適解を見つけるために使用される一般的な確率アルゴリズムです。

  シミュレートされたアニーリングの原理も金属アニーリングの原理と似ています: 熱力学の理論を統計に適用し、検索空間内の各点を空気中の分子として想像します。分子のエネルギーはそれ自体の運動エネルギーです。各点は次のようになります。空気分子も、その点が命題にどの程度適合するかを示す「エネルギー」を運びます。このアルゴリズムは、探索空間内の任意の点から始まります。各ステップで、「近傍」が選択され、次に、既存の位置から「近傍」に到達する確率が計算されます。

6. シミュレーテッドアニーリングアルゴリズムモデル

シミュレーテッド アニーリング アルゴリズムは、解空間、目的関数、初期解の 3 つの部分に分解できます。

    • シミュレーテッドアニーリングの基本的な考え方:
      • (1) 初期化: 初期温度 T (十分に大きい)、初期解状態 S (アルゴリズム反復の開始点)、各 T 値の反復数 L
      • (2) k=1, ..., L に対して手順 (3) ~ 6 を実行します。
      • (3) 新しい解S'を生成する
      • (4)増分Δt'=C(S')−C(S)を計算する。ここで、C(S)は評価関数の目標である
      • (5)Δt'<0の場合、S'を新しい現在解として受け入れ、そうでない場合、確率exp(-Δt'/T)でS'を新しい現在解として受け入れる。
      • (6) 終了条件を満たした場合は、現在の解を最適解として出力し、プログラムを終了します。終了条件は通常、いくつかの連続した新しい解が受け入れられない場合にアルゴリズムを終了するように選択されます。
      • (7) T が徐々に減少し、T->0 になり、ステップ 2 に進みます。

  このアルゴリズムは、動的デモンストレーション図に対応します。

  

    • シミュレーテッド アニーリング アルゴリズムの新しいソリューションの生成と受け入れは、次の 4 つのステップに分けることができます。
      • 最初のステップは、母関数によって現在の解から解空間に新しい解を生成することですが、その後の計算と受け入れを容易にし、時間のかかるアルゴリズムを削減するために、単純に変換することによって新しい解を生成する方法が採用されます。現在の新しい解は、通常、新しい解を構成する要素の全部または一部を置換または交換するなどして選択されます。新しい解を生成する変換方法は、現在の新しい解の近傍構造を決定するため、現在の新しい解に一定の影響を与えることに注意してください。冷却スケジュールの選択。
      • 2 番目のステップは、新しい解に対応する目的関数の差を計算することです。目的関数の差は変換された部分によってのみ生成されるため、目的関数の差の計算は段階的に実行されることが好ましい。これは、ほとんどのアプリケーションで目的関数の差を計算する最速の方法であることがわかっています。
      • 3 番目のステップは、新しい解が受け入れられるかどうかを判断することです。この判断は受け入れ基準に基づいて行われます。最も一般的に使用される受け入れ基準はメトロポリス基準です。Δt'<0 の場合、S' を新しい現在の解 S として受け入れます。それ以外の場合は、S' を新しい現在の解 S として受け入れます。の場合、確率 exp(- Δt'/T) は S' を新しい現在の解 S として受け入れます。
      • 4 番目のステップは、新しい解が受け入れられることが確認された場合に、現在の解を新しい解に置き換えることです。これには、新しい解の生成に対応する現在の解の変換部分を実現し、その値を変更するだけで済みます。同時に目的関数も設定します。この時点で、現在のソリューションは 1 回の反復を完了しました。これに基づいて、次のラウンドの実験を開始できます。そして、新しい解が破棄されると判断された場合、元の現在の解に基づいて次のラウンドの実験が継続されます。

  シミュレートされたアニーリング アルゴリズムは初期値とは何の関係もなく、アルゴリズムによって得られた解も初期解状態 S (アルゴリズムの反復の開始点) とは何の関係もありません。シミュレートされたアニーリング アルゴリズムには漸近収束があります。そして、大域最適解を求める大域最適化アルゴリズムに収束することが理論的に証明されており、シミュレーテッドアニーリングアルゴリズムは並列性を持っています。

7.模擬焼鈍の基本要素

状態空間と状態生成関数

  1) 検索空間は状態空間とも呼ばれ、エンコードされた実行可能なソリューションのセットで構成されます。
  2) 状態生成関数 (近傍関数) は、生成された候補解が解空間全体に確実に分散されるようにする必要があります。通常、候補解の生成方法と候補解の確率分布の 2 つの部分で構成されます。
  3) 候補解は、一般に、特定の確率密度関数に従って解空間をランダムにサンプリングすることによって取得されます。
  4) 確率分布には一様分布、正規分布、指数分布などがあります。 

状態遷移確率

  1) 状態遷移確率とは、ある状態から別の状態への遷移確率を指します。
  2) 一般に理解されているのは、新しいソリューションを現在のソリューションとして受け入れる確率です。
  3) 現在の温度パラメータ T に関連しており、温度が低下するにつれて減少します。
  4) 一般にメトロポリス基準が採用されます。

インナー ループ終了基準: メトロポリス サンプリング安定性基準とも呼ばれ、各温度で生成される候補解の数を決定するために使用されます。一般的に使用されるサンプリングの安定性基準には次のものがあります。

  1) 目的関数の平均が安定しているかどうかを確認します。
  2) 連続するいくつかのステップにおける目標値の変化が小さい。
  3) 一定のステップ数でサンプリングします。

外側のループ終了基準: 一般的に使用されるアルゴリズムの終了基準には次のものがあります。

  1) 終了温度の閾値を設定します。
  2) 外側のループの反復回数を設定します。
  3) アルゴリズムによって検索された最適値は、連続するいくつかのステップにわたって変化しません。
  4) システムのエントロピーが安定しているかどうかを確認します。

8. パラメータの説明

  アニーリング プロセスは、一連の初期パラメータ、つまり冷却スケジュールによって制御され、アルゴリズムが限られた時間内で最適解に近づくことができるように、システムを平衡状態に到達させようとすることがその核心です。冷却スケジュールには次のものが含まれます。 

  (1)制御パラメータの初期値T0:冷却を開始する温度。

  (2) 制御パラメータ T の減衰関数:コンピュータは離散データしか扱えないため、連続冷却過程を冷却過程の一連の温度点に離散化し、この一連の温度を計算する式が減衰関数です。気温。

  (3)制御パラメータ (停止基準)の最終値Tf 

  (4)マルコフ連鎖の長さLk : 任意の温度における反復回数。

9.パラメータ設定

 シミュレーテッド アニーリング アルゴリズムは広く使用されており、NP 完全問題を解決できますが、パラメーターの制御が難しく、主な問題は次のとおりです。

(1) 制御パラメータTの初期値T0

  大域最適化問題を解くためのランダム探索アルゴリズムは、一般に、大規模なラフ探索と局所的なファイン探索を組み合わせた探索戦略を採用します。

  初期の大規模探索段階で大域最適解が存在する領域を見つけるだけで、徐々に探索範囲を狭め、最終的に大域最適解を得ることができる。

  シミュレーテッドアニーリングアルゴリズムは、パラメータTの初期値T0とガス減衰過程を制御することにより、大規模なラフサーチと局所的なファインサーチを実現します。

  問題の規模が大きい場合、T0 が小さすぎると、アルゴリズムがローカル トラップから抜け出すことが困難になり、全体的な最適値に到達できなくなることがよくあります。一般的には100℃です。

   [初期温度が高い場合、大域的な最適解を見つける可能性は高くなりますが、多くの計算時間がかかります。そうでない場合、計算時間は節約できますが、大域的な検索パフォーマンスに影響が出る可能性があります。実際の応用では、通常、実験結果に応じて初期温度を数回調整する必要があります。

(2) 制御パラメータ T の減衰関数

  減衰関数にはさまざまな形式がありますが、一般的に使用される減衰関数は次のとおりです。

 

  このうち、kは冷却回数、αは0.5~0.99の定数であり、その値によって冷却速度が決まります。

   [大きな探索空間を確保するために、a は一般に 0.95、0.9 などの 1 に近い値を取る]

(3) アニーリング速度:マルコフ連鎖長

  マルコフ連鎖長の選択原理は、制御パラメータ T の減衰関数が選択されているという前提で、Lk は制御パラメータ T の各値で準バランスを達成できるはずです。

  経験から、単純な場合には、Lk=100n を設定できます。ここで、n は問題のサイズです。

   [サイクル数の増加は必然的に計算オーバーヘッドの増加につながります。実際のアプリケーションでは、特定の問題の性質と特性に応じて、適切なアニーリング バランス条件を設定する必要があります。

(4)制御パラメータ (停止基準)の最終値Tf または、いくつかの連続する Mapkob チェーンの解は変化しません。つまり、いくつかの連続する解は変化しません。

  アルゴリズム停止基準: 大都市基準の受け入れ関数の場合

  

   分析によると、T が比較的大きい高温の場合、指数の分母は比較的大きく、これは負の指数であるため、受け入れ関数全体が 1、つまり次のような新しい解 xj になる傾向があることがわかります。現在の解 xi よりも悪い解も受け入れられる可能性があるため、極小値から飛び出して、解空間の他の領域を探索するための広域探索を実行することが可能であり、冷却が進むにつれて、T が a に減少すると、値が比較的小さい場合、受信関数の分母が小さくなり、全体も小さくなる、つまり、現在の解よりも悪い解は受け入れられにくく、現在の領域から飛び出すのは容易ではありません。高温の場合、十分な広域探索が実行されて最適な解領域が見つかり、低温で十分な局所探索が実行されれば、最終的に大域最適が見つかる可能性があります。したがって、一般的な終端温度 Tj は、0.01 ~ 5 などの十分小さな正の数に設定する必要があります。

  【通常、終了温度 Tj は 0.01 ~ 5 などの十分小さな正の数に設定します。

10. メリット、デメリット、改善点

  シミュレーテッド アニーリング アルゴリズム (シミュレーテッド アニーリング、SA) は、大規模な探索空間で問題の最適解を見つけるために使用される一般的な確率アルゴリズムです。

  利点: NP 困難な問題を効果的に解決し、局所的な最適解に陥ることを回避できます。

        計算プロセスは単純、一般的、堅牢で並列処理に適しており、複雑な非線形最適化問題の解決に使用できます。

     シミュレートされたアニーリング アルゴリズムは初期値とは何の関係もありません。また、アルゴリズムによって得られた解も初期解状態 S (アルゴリズムの反復の開始点) とは何の関係もありません。

        シミュレーテッド アニーリング アルゴリズムは漸近収束することが証明されており、確率的に大域最適解に収束する大域最適化アルゴリズムであることが理論的に証明されています。

      シミュレーテッドアニーリングアルゴリズムには並列性があります

  欠点: 収束速度が遅い、実行時間が長い、アルゴリズムのパフォーマンスは初期値に関係しており、パラメーターの影響を受けやすい。

     より高い初期温度、より遅い冷却速度、より低い終了温度、および各温度での十分な数のサンプルが必要なため、最適化プロセスはより長くなります。

    (1) 冷却プロセスが十分に遅い場合、より多くの解のパフォーマンスは向上しますが、収束速度が遅すぎます。

      (2) 冷却プロセスが速すぎると、大域最適解が得られない可能性があります。

  適用環境:組み合わせ最適化問題。

  向上:

    (1) 検索プロセスのニーズに応じて、状態の全空間分散または局所的地域性を示すことができるように、適切な状態生成関数を設計します。

    (2) 効率的なアニーリング戦略を設計します。

    (3) 遠回りな状態検索は避けてください。

    (4) 並列探索構造を採用。

    (5) ローカルミニマムに陥らないように温度制御方法を改善する。

    (6) 適切な初期状態を選択します。

    (7) 適切なアルゴリズム終了基準を設計します。

    -------------------------------------------------- -------------------------------------------------- -------------------------

    (8) 加熱または再加熱のプロセスを増やします。アルゴリズム プロセスの適切な時点で、温度が適切に上昇して各状態の受け入れ確率がアクティブになり、探索プロセスの現在の状態を調整し、アルゴリズムが極小解で停滞するのを防ぎます。

    (9) メモリ機能を増やす。検索プロセスでの確率許容リンクの実装により現在見つかっている最適なソリューションが失われないようにするために、ストレージ リンクを追加することで以前の良好な状態をいくつか記憶できます。

    (10) 補助検索処理を増やす。すなわち、アニーリング処理終了後、探索された最適解を初期状態として、再度、シミュレーテッドアニーリング処理または局所性探索が実行される。

    (11) 各現在の状態について、標準的な SA の単一の比較方法の代わりに、複数の検索戦略が使用され、領域内の最適な状態を確率で受け入れます。

    (12) 遺伝的アルゴリズム、カオス検索など、他の検索メカニズムと組み合わせたアルゴリズム。

    (13) 上記の方法を総合的に応用する。

11. まとめ

    山登りアルゴリズムに代表される局所探索アルゴリズムは、一部の組み合わせ最適化問題にのみ適しており、解の品質はあまり理想的ではありません。したがって、これらの欠点を克服するために、人々はいくつかの自然な物理的プロセスを通じて解決策を探します. シミュレーテッド アニーリング アルゴリズムは、固体のアニーリング プロセスのシミュレーションに由来しています. メトロポリスの許容基準を採用し、冷却テーブルと呼ばれる一連のパラメーターを使用して制御しますアルゴリズム プロセスにより、多項式時間で近似最適解を見つけることができます。

  シミュレーテッド アニーリング アルゴリズム (シミュレーテッド アニーリング、SA) は、大規模な探索空間で問題の最適解を見つけるために使用される一般的な確率アルゴリズムです。NP 困難問題を効果的に解決し、局所最適解に陥ることを回避できるため、生産スケジューリング、制御工学、機械学習、ニューラル ネットワーク、画像処理などの分野で広く使用されています。

おすすめ

転載: blog.csdn.net/dw1360585641/article/details/129804785