【オペレーショナルリサーチ最適化】メタヒューリスティックアルゴリズム詳細解説:シミュレーテッドアニーリングアルゴリズム(Simulated Annealing、SA)+事例解説&コード演習


1. はじめに

シミュレーテッド アニーリング (SA) は、最も単純で最も有名なメタ ヒューリスティック アルゴリズムであり、複雑なブラック ボックスの大域最適化問題を解決するためによく使用され、実生活でも広く使用されています。

SA の主な利点はシンプルさです。SA は材料の物理的アニーリングの類似性に基づいており、効率的なメトロポリス許容基準の適用により、モンテカルロ法の欠点 (極小値でのトラップの可能性) を回避します。

目的関数の評価が、大量のメモリを必要とする大次元の状態空間を操作する複雑なシミュレーション プロセスから行われる場合、母集団ベースのアルゴリズムは適用できず、シミュレーテッド アニーリングはこれらの問題を解決する効果的なアルゴリズムです。


2. 基礎知識

1980 年代初頭、IBM の 3 人の研究者、カークパトリックらは、組み合わせ最適化におけるアニーリングの概念を導入しました。

これらの概念は、材料の物理的アニーリングとの強い類似性に基づいています。このプロセスには、固体の温度を上げた後に固体を低エネルギー状態にすることが含まれます。これは次の 2 つの手順に要約できます (図 1.1 を参照)。

  • 構造が「溶ける」まで固体を非常に高温にする
  • 固体は非常に特殊な冷却スキームに従って冷却され、最小限のエネルギーで固体状態を実現します。

液体状態では、粒子はランダムに分布しています。結果は、初期温度が十分に高く、冷却時間が十分に長い限り、最小エネルギー状態に到達できることを示しています。これが当てはまらない場合、固体は非最小エネルギーの準安定状態になるため、これは硬化と呼ばれ、固体が突然冷却されることになります。

ここに画像の説明を挿入

最適化のための焼きなましアルゴリズムを説明する前に、焼きなましアルゴリズムの拡張である局所探索最適化アルゴリズムの原理を理解する必要があります。

2.1 局所探索 (またはモンテカルロ) アルゴリズム

これらのアルゴリズムは、解空間内の現在の点の近傍を探索することによって目的関数を改善します。

次の定義では、( S , f ) (S,f)を考慮します。( S f )組み合わせ最適化問題のインスタンス化 (SSS : 実行可能な解のセット、fff : 最小化される目的関数)。

定義 1 : N \mathscr{N}とするNは、各解i ∈ S i \in Sに対して適用されます。S はAND 解を定義しますiiiに「近い」解の部分集合S i ⊂ S S_i \sub SS私はS。子集 S i S_i S私は解決策iiの近所です。

以下の定義では、N \mathscr{N}を考慮します。Nは( S , f ) (S,f)と一緒です( S f )アソシエーションの近隣構造。

定義 2 : 生成メカニズムは特定のソリューションで使用されます。iiiの任意の近傍S i S_iS私は解決策を選択してくださいjの手段

ローカル検索アルゴリズムは、状態空間内でランダムに描画された実行可能な点から検索を開始する反復アルゴリズムです。

次に、より良い解決策を見つけるために、現在の解決策の近傍を探索することによって、生成メカニズムが継続的に適用されます。

より良いソリューションが見つかった場合、それが現在のソリューションになります。改善された解が見つからない場合、アルゴリズムは終了し、現在の解が最適化問題の近似解とみなされます。

最小化問題の場合、アルゴリズムは次の疑似コードで要約できます。

ここに画像の説明を挿入

中国語に翻訳すると次のようになります。

ステップ 具体操作
1 初期解を生成するii
2 現在のソリューションからiiiの近傍でjj をj (新しいソリューションを生成)
3 新しいソリューションの場合、jjjの目的関数の値はiiiの目的関数の値を新しい解jjjを現在の解決策として
4 現在のソリューションiiの場合iの近傍に解jj はありませんjの目的関数の値はiiiの目的関数の値、その後プログラムは終了します
5 ステップ2に戻る

定義 3 : すべてのj ∈ S i ∗ j\in S^*_iの場合jSすべてf ( i ∗ ) ≤ f ( j ) f(i^*) \le f(j) を満たすf ( )f ( j ),则解i ∗ ∈ S i^* \in SSはN \mathscr{N}に対して相対的に呼び出されますNの局所最適解

定義 4 : 約N \mathscr{N}の場合N i ∗ ∈ S i^*\in Sの各局所最適解Si ∗ i^*は( S , f ) (S,f)ともなります( S f )の全体的な最適値は、近傍構造N \mathscr{N}Nは正確です。

したがって、定義により、局所探索アルゴリズムは、正確な近傍構造が存在する場合にのみ局所最適値に収束することが保証されます。

この正確な近傍の概念は理論的なものであり、実際には通常、検索空間による完全な列挙が行われるためです。

したがって、現在の解が目的関数が凸であるサブドメインに「落ちた」場合、新しい解生成メカニズムに関連付けられた近傍構造がサブドメインの外側の点に到達できない限り、アルゴリズムはそのサブドメインにとどまったままになります。

極小値に陥ることを避けるためには、現在の解の品質の一時的な低下を許容する手順を定義する必要があります。これがシミュレーテッド アニーリングの主原則です。

このアルゴリズムを説明する前に、SA の基本コンポーネントであるメトロポリス アルゴリズムを紹介する必要があります。

2.2 メトロポリスアルゴリズム

1953 年に 3 人のアメリカの研究者が、アニーリング中の材料の物理的構造の変化を再現することを目的として、物理的アニーリング プロセスをシミュレートするアルゴリズムを開発しました。

このアルゴリズムは、次のように固体の一連の状態を生成するモンテカルロ手法に基づいています。

初期状態の設定iiiのエネルギーはE i E_iE私は、粒子の位置を変更してエネルギーE jを持つ E_j を生成することによってEj新しい状態jjj

エネルギー差E i − E j > 0 の場合 E_i-E_j>0E私はEj>0 (新しい状態のエネルギーが低い)、状態jjj が新しい現在の状態になります。

エネルギー差E i − E j ≤ 0 の場合 E_i-E_j\le0E私はEj0、その後状態jjj は次の確率で現在の状態になります。

Pr ⁡ { 現在の状態 = j } = e ( E i − E jkb ⋅ T ) \operatorname{Pr}\{\text { 現在の状態 }=j\}=e^{\left(\frac{E_i-E_j} {k_b \cdot T}\right)}Pr {  現在の状態 =j }=e(kbTE私は−E _j)

どこでTTT は固体の温度を表します、kb k_bkbはボルツマン定数 ( kb = 1.38 × 1 0 − 23 J / K k_b=1.38×10^{-23}J/Kkb=1.38×1 023 J/K)。

一定の確率でより劣悪な解決策を受け入れるためのこの基準は、メトロポリス基準と呼ばれます。

冷却が十分にゆっくりと進むと、所定の各温度TTで固体がT は平衡状態に達します。

Metropolis アルゴリズムでは、各温度で多数の遷移を生成することでこのバランスが実現されます。

熱収支はボルツマン統計分布によって特徴付けられます。この分布により、温度TTの固体が得られます。エネルギーE i E_iでTE私は状態IIiの確率:

P r { X = i } = 1 Z ( T ) e − ( E ikb ⋅ T ) Pr\{X=i\}=\frac{1}{Z(T)}e^{-(\frac{E_i }{k_b \cdot T})}P r { X=}=Z ( T )1ekbTE私は)

ここでXXXは、固体の現在の状態に関連する確率変数です。Z ( T ) Z(T)Z ( T )は正規化係数であり、次のように定義されます。

Z ( T ) = ∑ j ∈ S e − ( E jkb ⋅ T ) Z(T)=\sum_{j \in S}{e^{-(\frac{E_j}{k_b \cdot T})}}Z ( T )=j SekbTEj)

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

SA アルゴリズムでは、状態空間SSでメトロポリス アルゴリズムが使用されます。Sで一連の解を生成します。

これを行うには、次の等価条件を使用して、多粒子システムと最適化問題の間の類推を描きます。

  • 状態空間点 (解) は固体の可能な状態を表します
  • 最小化される関数は固体のエネルギーを表します

次に、ccをインポートしますcは温度の制御パラメータとして使用されます。このパラメータは、最適化目標と同じ単位で表されます。

また、状態空間内の各点に近傍と、その近傍で解を生成するメカニズムを与えたと仮定します。次に、許容基準を次のように定義します。

定義 5 : ( S , f ) (S,f)とします。( S f )は組み合わせ最小化問題のインスタンスです。iijjjは状態空間内の 2 点です。現在のソリューションからiiiで受け入れられた解決策jjjの許容基準は、次の確率によって与えられます。

Pr ⁡ { accept j } = { 1 if f ( j ) < f ( i ) e ( f ( i ) − f ( j ) c ) else。\operatorname{Pr}\{\text { accept } j\}= \begin{cases}1 & \text { if } f(j)<f(i) \\ e^{\left(\frac{f( i)-f(j)}{c}\right)} & \text {else. }\end{件}Pr {  受け入れます j }={ 1e(cf ( i ) f ( j ))f ( j ) の場合 <f ( i ) それ以外 

類推すると、近傍の生成原理はメトロポリス アルゴリズムの摂動メカニズムに対応し、受け入れ原理はメトロポリス基準を表します。

定義 6 : 遷移とは、現在のソリューションを隣接するソリューションに置き換えることを意味します。この操作は、生成と受け入れの 2 つのフェーズで実行されます。

次に、ck c_kと仮定します。c温度パラメータの値、L k L_kL反復kkにありますkで生成する遷移の数SA の原則は次のように要約できます。

ここに画像の説明を挿入

シミュレーテッド アニーリング アルゴリズムの主な特徴の 1 つは、目的関数の不適切な遷移を受け入れる能力です。

プロセスの開始時に、温度ck c_kcの高い値により、高い目標劣化による遷移が許容され、状態空間の徹底的な探索が可能になります。

ck c_kc減少。ターゲットを改善する、またはターゲットの劣化の程度が低い遷移のみが受け入れられます。

最後に、ck c_kのときcゼロに近づく傾向がある場合、ターゲットの劣化は受け入れられず、このとき SA アルゴリズムはモンテカルロ アルゴリズムのように動作します。


3. 原則

このセクションでは、SA の 2 つの基本的な理論的特性、統計的平衡と漸近収束について説明します。

3.1 統計的均衡 統計的均衡

エルゴード性の仮定に基づいて、粒子系は観察可能な統計的特性を持つ集合体と考えることができ、平均エネルギー、エネルギー分布、エントロピーなどの多くの有用な量を平衡統計系から導き出すことができます。

さらに、この粒子のセットが静止している場合、つまり統計的平衡に達している場合、平衡相の状態に関連する確率密度は系のエネルギーに依存します。

実際、平衡段階では、システムは特定の状態にありますi,能量为 E i E_i E私はの確率はボルツマンの法則によって与えられます。

定理 1 : 固定制御パラメータccの場合cおよび次の受け入れ確率を使用して十分な数の変換を行った後

P c { accept j ∣ S i } = { 1 if f ( j ) < f ( i ) e ( f ( i ) − f ( j ) c ) else P_c\left\{\text { accept } j \mid S_i \right\}=\left\{\begin{array}{cc} 1 & \text { if } f(j)<f(i) \\ e^{\left(\frac{f(i)-f (j)}{c}\right)} & \text { else } \end{array}\right.Pc{  受け入れます jS私は}={ 1e(cf ( i ) f ( j ))f ( j ) の場合 <f ( i )それ以外 

シミュレーテッド アニーリング アルゴリズムは、確率で与えられた解i ∈ S i ∈ Sを見つけます。S

P c { X = i } = qi ( c ) = 1 N 0 ( c ) e ( − f ( i ) c ) P_c\{X=i\}=q_i(c)=\frac{1}{N_0( c)} e^{\left(-\frac{f(i)}{c}\right)}Pc{ X=}=q私は( c )=N0( c )1e(cf ( i ))

ここでXXXはアニーリング アルゴリズムの現在の状態を表す確率変数N 0 ( c ) N_0(c)N0( c )は正規化係数です。

N 0 ( c ) = ∑ j ∈ S e ( − f ( j ) c ) N_0(c)=\sum_{j \in S} e^{\left(-\frac{f(j)}{c} \右)}N0( c )=j Se(cf ( j ))

定義 7 : AAにしましょうABBB は、 B ⊂ AB ⊂ Aとなる 2 つの集合です。BA._ _ BBを定義しますBの特性関数κ ( B ) κ(B)κ ( B )は次のとおりです。

κ ( B ) ( a ) = { 1 if a ∈ B 0 else \kappa_{(B)}(a)=\left\{\begin{array}{l} 1 \quad \text { if } a \in B \\ 0 \quad \text { else} \end{array}\right。K( B )( a )={ 1 もし _B0それ以外 

系 1 : 任意の解についてii私は、両方とも持っています

lim ⁡ c → 0 + P c { X = i } = lim ⁡ c → 0 + qi ( c ) = qi ∗ = 1 ∣ S opt ∣ κ ( S opt ) ( i ) \lim _{c \rightarrow 0^ {+}} P_c\{X=i\}=\lim _{c \rightarrow 0^{+}} q_i(c)=q_i^*=\frac{1}{\left|S_{opt}\right |} \kappa_{\left(S_{opt}\right)}(i)c 0+リムPc{ X=}=c 0+リムq私は( c )=q=Sああ1K( Sああ)()

ここでS opt S_{opt}Sああは全体的に最適なセットを表します。

この結果は、 ccであると仮定して、シミュレーテッド アニーリング アルゴリズムが全体的に最適なセットの要素に漸近収束することを保証します。安定分布 qi ( c ) は、 c、 i ∈ S q_i(c),i ∈ Sq私は( c )

離散状態空間の場合、このような分布は離散的であり、目標値yi y_iに到達するように計算できます。y私はの状態空間内の特定の点xi x_iバツ私は確率:

qi ( c ) = e ( − yicc ) ∑ j ∈ S e ( − yjcc ) q_i(c)=\frac{e^{\left(-\frac{y_i^c}{c}\right)}}{ \sum_{j \in S} e^{\left(-\frac{y_j^c}{c}\right)}}q私は( c )=j Se(cyjc)e(cyc)

CCcの任意の正の値に対して、関数ff平衡状態で最適化されたfの期待値は<f>c<f>_cで表されます。<f>c、分散は< f 2 > c <f^2>_cとして表されます。<f2>c

非常に高い温度でcccの下では、SA アルゴリズムは状態空間内でランダムに移動します。

yic = f ( xi ) y^c_i = f(x_i ) をマッピングすることにより、yc=f ( x私は) 、プロセスによって生成されたxi x_iバツ私は目標値yi y_iとy私は関連する。

このプロセスを長時間考えると、目的関数値yic , ( i = 1 , 2 , ... N ) y^c_i,(i = 1,2,...N) を確立することができます。yc(私は=1 2 ... N )分布は SA プロシージャによって生成されます。

この分布は温度に依存しますcはq ( c ) q(c)として表されますq ( c )

ビッグCCc値の場合、この分布はターゲット分布と等しくなります。図 1.2 は、そのような分布の例を示しています。

ここに画像の説明を挿入
この図は 1D 目的関数を示しており、円はある高温でc 1 c_1を表します。c1以下は SA アルゴリズムの例です。

水平の破線は分布の平均を示します ( < f ( c 1 ) > < f(c_1)><f ( c1)> )、左側では、関連する分布が点線のプロット (q ( c 1 ) q(c1)q ( c 1 ) ) を意味します。

低温用c 2 c_2c2、SA プロセスの一部の遷移は受け入れられません。これは、関連する分布q ( c 2 ) q(c2)が意味します。q ( c 2 )は、より低い期待値を持つより低いレベルにシフトされます (右側の目的関数の四角と左側の実線)。

定義 8 : 平衡状態におけるエントロピーは次のとおりです。

H c = ∑ i ∈ S qi ( c ) ln ⁡ ( qi ( c ) ) H_c=\sum_{i \in S} q_i(c) \ln \left(q_i(c)\right)Hc=i Sq私は( c )ln( q私は( c ) )

結果 2 : あるものは

∂ ⟨ f ⟩ c ∂ c = σ c 2 c 2 ∂ H c ∂ c = σ c 2 c 3 。\begin{aligned} & \frac{\partial\langle f\rangle_c}{\partial c}=\frac{\sigma_c^2}{c^2} \\ & \frac{\partial H_c}{\partial c }=\frac{\sigma_c^2}{c^3} 。\end{整列}∂c _f c=c2pc2∂c _∂H _c=c3pc2.

これら最後の 2 つの式は、統計力学において重要な役割を果たします。また、次の式も導き出されます。

推論 3 :

lim ⁡ c → ∞ ⟨ f ⟩ c = ⟨ f ⟩ ∞ = 1 ∣ S ∣ ∑ i ∈ S f ( i ) lim ⁡ c → 0 ⟨ f ⟩ c = ⟨ f ⟩ 0 = f O pt lim ⁡ c → ∞ σ c 2 = σ ∞ 2 = 1 ∣ S ∣ ∑ i ∈ S ( f ( i ) − ⟨ f ⟩ ∞ ) 2 lim ⁡ c → 0 σ c 2 = σ 0 2 = 0 lim ⁡ c → ∞ H c = H ∞ = ln ⁡ ( ∣ S ∣ ) lim ⁡ c → 0 H c = H 0 = ln ⁡ ( ∣ SO pt ∣ ) \begin{array}{cc} \lim _{c \rightarrow \infty}\langle f \rangle_c=\langle f\rangle_{\infty}=\frac{1}{|S|} \sum_{i \in S} f(i) & \lim _{c \rightarrow 0}\langle f\rangle_c =\langle f\rangle_0=f_{O pt} \\ \lim _{c \rightarrow \infty} \sigma_c^2=\sigma_{\infty}^2=\frac{1}{|S|} \sum_ {i \in S}\left(f(i)-\langle f\rangle_{\infty}\right)^2 & \lim _{c \rightarrow 0} \sigma_c^2=\sigma_0^2=0 \ \ \lim _{c \rightarrow \infty} H_c=H_{\infty}=\ln (|S|) & \lim _{c \rightarrow 0} H_c=H_0=\ln \left(\left|S_{ O pt}\right|\right) \end{配列}リムc ⟨f⟩ _ _c=⟨f⟩ _ _=S 1i Sf ( i )リムc pc2=p2=S 1i S( f ( i )⟨f⟩ _ _)2リムc Hc=H=ln ( S )リムc 0⟨f⟩ _ _c=⟨f⟩ _ _0=fオプトリムc 0pc2=p02=0リムc 0Hc=H0=ln( Sオプト )

ここで、f O pt f_{Opt}fオプトFFを意味しますfの最適値、この最後の式は熱力学の第 3 法則を表します (最小エネルギー状態が 1 つだけであると仮定すると、次のようになります:S 0 = ln ( 1 ) = 0 S_0 = ln(1) = 0S0=l n ( 1 )=0 )。

物理学では、エントロピーはシステムに関連する無秩序の度合いを測定します。高いエントロピー値は無秩序な構造を示し、低い値は組織化を反映します。

最適化の文脈では、エントロピーは達成される最適性の程度の尺度に関連します。連続した SA 反復中、目的関数値とエントロピーの数学的期待値はそれぞれf O pt f_{Opt}にのみ寄与します。fオプトln ( ∣ SO pt ∣ ) ln(|S_{Opt}|)l n ( Sオプト)は減少し収束する。

分布 q i ( c ) q_i(c) q私は( c )温度cccの導関数は

∂ qi ( c ) ∂ c = qi ( c ) c 2 [ ⟨ f ⟩ c − f ( i ) ] \frac{\partial q_i(c)}{\partial c}=\frac{q_i(c)}{ c^2}\left[\langle f\rangle_c-f(i)\right]∂c _∂q _私は( c )=c2q私は( c )[ f cf ( i ) ]

ため⟨ f ⟩ c ≤ ⟨ f ⟩ ∞ \langle f\rangle_c \ \le \ \langle f\rangle_{\infty}⟨f⟩ _ _c  ⟨f⟩ _ _、模擬アニーリング中に 3 つの状態を示すことができます。より正確には、次のように表示できます。

系 4 : ( S , f ) (S,f)とします。( S f )は SO pt ≠ S S_{Opt} \neq Sを持ちますSオプト=Sの組み合わせ最適化問題のインスタンスqi ( c ) q_i(c)q私は( c )は、アニーリング プロセスに関連する定常分布です。次に、次のようになります。

ここに画像の説明を挿入
この結果は、cc の場合に次のことを示します。cが減少するにつれて、最適解を見つける確率は単調増加します。さらに、最適でない解については、正の値c ˉ i \bar{c}_icˉ私は、 c < c ˉ iの場合 c<\bar{c}_i となるc<cˉ私は、解決策が見つかる確率はccとともに増加します。cの減少は減少します。

定義 9 : シミュレーテッド アニーリング アルゴリズムに関連付けられた合格率は次のように定義されます。

χ ( c ) = 受け入れられた遷移の数 提案された遷移の数 \chi(c)=\frac{\text { 受け入れられた遷移の数 }}{\text { 提案された遷移の数 }}× ( c )= 提案された移行の数  受け入れられた トランジション
原則として、CCの場合、cの値が大きい場合、すべての遷移が受け入れられ、χ ( c ) χ(c)χ ( c )は1 1に近い1

次に、cc を実行すると、c が減少すると、χ ( c ) χ(c)χ ( c )は0 0に達するまでゆっくりと減少します。0 は、遷移が受け入れられないことを意味します。

⟨ f ⟩ c \langle f\rangle_cを観察することによって⟨f⟩ _ _cσ c 2 σ^2_cpc2CCとしてcの関数を発展させると、遷移しきい値 (ct c_tc)、平衡分布の 2 つの異なる領域を区切ります。閾値は値ct c_tです。c、 そのような:

⟨ f ⟩ ct ≈ 1 2 ( < f ∞ > + f O pt ) \langle f\rangle_{c_t} \about \frac{1}{2}\left(<f_{\infty}>+f_{O pt) }\右)⟨f⟩ _ _c21( <f>+ fオプト)

σ c 2 ≈ σ ∞ 2 if c ≥ ct < σ ∞ 2 if c < ct \begin{aligned} & \sigma_c^2 \about \sigma_{\infty}^2 \text { if } c \geq c_t \\ & <\sigma_{\infty}^2 \text { if } c<c_t \\ & \end{aligned}pc2p2c の場合 c<p2c の場合 <c

したがって、任意のccに対してc値、サーチスペースSSS は2 つの領域に分けることができます。

  1. R1R_1R1エリア:cc時c が減少すると、σ c 2 σ^2_cpc2ほぼ一定のまま ( σ ∞ 2 σ^2_∞に近い)p2)
  2. R2R_2R2地域: ccの場合c が減少すると、σ c 2 σ^2_cpc2減らす

CCのときc はct c_tに近いですc値の場合、合格率は約0.5 0.50.5 (つまりχ ( ct ) ≈ 0.5 χ(c_t) ≈ 0.5x ( c)0.5)。さらに、次のことも証明できます。

  • R1R_1R1、より大きなccの場合c值,⟨ f ⟩ c \langle f\rangle_c⟨f⟩ _ _cc − 1 c^{-1}c1は線形、σ c 2 σ^2_cpc2ほぼ一定
  • R2R_2R2中、小さいcc用c值,⟨ f ⟩ c \langle f\rangle_c⟨f⟩ _ _cCC付きcは、σ c 2 σ^2_cpc2c 2 c_2付きc2比例

次のようなものが考えられます⟨ f ⟩ c \langle f\rangle_c⟨f⟩ _ _cσ c 2 σ^2_cpc2おおよそのモデル:

ここに画像の説明を挿入
ここで、大まかに言えば、γ γγ⟨ f ⟩ c \langle f\rangle_c⟨f⟩ _ _cの一次近似。最後に、 H ( c ) H(c)として表される比熱を導入しましょう。H ( c )は次のように与えられます。

H ( c ) = d ⟨ f ⟩ cdc = ⟨ f ⟩ c 2 − ⟨ f ⟩ c 2 kbc 2 H(c)=\frac{d\langle f\rangle_c}{dc}=\frac{\langle f\ rangle_c^2-\langle f\rangle_c^2}{k_b c^2}H ( c )=dc _d f c=kbc2⟨f⟩ _ _c2⟨f⟩ _ _c2

大きい方のH ( c ) H(c)H ( c )値は、材料が固体になり始めていることを示します。この場合、温度低下率を減らす必要があります。

3.2 漸近収束 漸近収束

シミュレーテッド アニーリング アルゴリズムには、無限に小さい減衰ステップ サイズで無限に長い温度減衰マップが提供される限り、大域的最適値に向かって確率的に収束する特性があります。

この減衰スキームは純粋に理論的なものであり、実際には妥当な実行時間内でこの理想に近づくことを試みます。

定義 10 : マルコフ連鎖は、特定の状態に到達する確率が前の状態にのみ依存する一連の状態です。X ( k ) X(k)とします。X ( k )はkk 番目ですk回の反復で状態に到達しました次に、各状態ペア( i , j ) (i,j)(j ) k番目k回の反復における遷移確率は次の式で与えられます。 P ij ( k ) = P r { X ( k ) = j ∣ X ( k − 1 ) = i } P_{ij}(k)= Pr \{ X(k)= j | X(k-1)= i \}Pイジ( k )=P r { X ( k )=j X ( k1 )=i }を与えます。出現行列[ P ij ( k ) ] [P_{ij}(k)][ Pイジ( k )] は伝達行列と呼ばれます。シミュレーテッド アニーリングのコンテキストでは、マルコフ連鎖遷移は状態空間内の移動 (生成 + 受け入れ) に対応します。

定義 11 : SA アルゴリズムの遷移確率は次の式で与えられます。

∀ i , j ∈ S : P ij ( k ) = P ij ( ck ) = { G ij ( ck ) A ij ( ck ) if i ≠ j 1 − ∑ l ≠ i P il ( ck ) if i = j \ forall i, j \in S: P_{ij}(k)=P_{ij}\left(c_k\right)= \begin{cases}G_{ij}\left(c_k\right) A_{ij}\left (c_k\right) & \text { if } i \neq j \\ 1-\sum_{l \neq i} P_{il}\left(c_k\right) & \text { if } i=j\end{場合}∀i _jS Pイジ( k )=Pイジ( c)={ Gイジ( c)イジ( c)1=P( c) もし 私が=j もし 私が=j

ここでG ij ( ck ) G_{ij}(c_k)Gイジ( c)は状態 I から状態 j を生成する確率を表します。

A ij ( ck ) A_{ij}(c_k)イジ( c)州iiから受け入れられますiによって生成されたjjjの確率。

すべての i に対して、 j ∈ S i,j ∈ SjSA ij ( ck ) A_{ij}(c_k)イジ( c)は次のように与えられます。

A ij ( ck ) = e ( − ( f ( j ) − f ( i ) ) + ck ) with a + = { a if a > 0 0 else \begin{aligned} & A_{ij}\left(c_k\ right)=e^{\left(-\frac{(f(j)-f(i))^{+}}{c_k}\right)} \\ & \text { with } a^{+}= \left\{\begin{array}{l} a \text { if } a>0 \\ 0 \text { else } \end{array}\right。\end{整列}イジ( c)=e(c( f ( j ) f ( i ) )+) と _+={ もしも _  _>0その他 0

定理 2 : 次の条件が満たされると仮定します。

∀ i , j ∈ S ∃ p ≥ 1 ∃ l 0 , l 1 , … , lp ∈ S \forall i, j \in S \quad \exists p \geq 1 \quad \exists l_0, l_1, \ldots, l_p \inS∀i _jSp1l01pS

l 0 = i 、 lp = j 、および G lk 、 lk + 1 > 0 、 k = 0 , 1 , … , p − 1 の場合。\ l_0=i, l_p=j, \text { および } G_{l_k, l_{k+1}}>0, k=0,1, \ldots, p-1 \text { を使用します。}一緒_ _ _ 0=p=j  と Glk + 1>0 k=0 1 p1

このとき、マルコフ連鎖にはq ( c ) q(c)という式があります。q ( c )の定常分布。温度ccでの SA アルゴリズムです。cの下で訪問される解の分布。その成分は次のように与えられます。

qi ( c ) = 1 N 0 ( c ) e ( − f ( i ) c ) , ∀ i ∈ S q_i(c)=\frac{1}{N_0(c)} e^{\left(-\frac) {f(i)}{c}\right)}、\forall i \in Sq私は( c )=N0( c )1e(cf ( i )∀i _S

ここで、N 0 ( c ) N_0(c)N0( c )は正規化係数です

ここに画像の説明を挿入

ここでX kc X^c_kバツkc温度ccで表すcで取得したkk 番目k回の反復。この結果は、シミュレーテッド アニーリング アルゴリズムが最適解の 1 つに収束していることを示しています。

定理 3 : 生成と受け入れの確率が次の仮定を満たすと仮定します。

ここに画像の説明を挿入

次に、任意の反復でkkk、定常分布q ( ck ) q(c_k)q ( c)、そのコンポーネントは次のように与えられます。

qi ( ck ) = A i O pti ( ck ) ∑ j ∈ SA i O ptj ( ck ) ∀ i ∈ S および i O pt ∈ SO pt q_i\left(c_k\right)=\frac{A_{i_{O pt} i}\left(c_k\right)}{\sum_{j \in S} A_{i_{O pt} j}\left(c_k\right)} \forall i \in S \text { and } i_ {オプション} \in S_{オプション}q私は( c)=j Sオプトj( c)オプト私は( c)∀i _S と オプトSオプト

さらに、任意のi O pt ∈ SO pt i_{Opt} ∈ S_{Opt}についてオプトSオプト、我々は持っています:

lim ⁡ ck → 0 + qi ( ck ) = 1 ∣ SO pt ∣ κ ( SO pt ) ( i ) \lim _{c_k \rightarrow 0^{+}} q_i\left(c_k\right)=\frac{1 }{\left|S_{O pt}\right|} \kappa_{\left(S_{O pt}\right)}(i)c0+リムq私は( c)=Sオプト1K( Sオプト)()

実際、指数分布を除いて、A 1 、A 2 、A 3 A_1、A_2、A_3を見つけることは困難です。1A2A3受け入れ配布。

上記の理論的結果は、ck c_kに対して次のように仮定されているため、実際の SA アルゴリズムに直接適用することはできません。cの各値には無限の反復回数があり、ck c_kc値は0 0と進み続けます0が減ります。

温度ステップごとの反復回数が有限である場合、SA はマルコフ不均一モデルを使用してシミュレートでき、同様の結果を確立できます。

シミュレーテッド アニーリング アルゴリズムは、最適化問題の最適解に収束しますが、この最適解に到達するには、無限数の遷移が必要です。漸近挙動の近似には、状態空間のカーディナリティに等しいオーダーの多数の反復が必要ですが、これは NP 困難問題の場合には現実的ではありません。

したがって、組み合わせ最適化問題の大域的解に近づくためのメカニズムとしてアニーリングを考慮する必要があり、最適値に正確に到達できる局所探索手法を追加する必要があります。

言い換えれば、シミュレーテッド アニーリングにより、正しい引力領域内での移動が可能になり、ローカル手法では、問題の大域最適に対応するこの引力領域内での局所最適を決定することでプロセスを最適化します。


4. 現実的な問題

このセクションでは、特定の問題に対して SA アルゴリズムを実装したいと考えている友人にとって興味深い次の実際的な問題について概説します:有限時間近似、多項式時間冷却、マルコフ連鎖の長さ、停止基準、およびシミュレーション ベースの評価

4.1 有限時間近似 有限時間近似

実際には、収束条件は各反復 k でパラメーターck c_kを選択することによって決定されます。cこの温度では、減衰ステップ サイズが比較的小さく、遷移L k L_kの数が十分に多いL近似する。

直感的には、減少量が大きいほど、準平衡状態 (以下に定義) までの安定化ステップの長さが長くなります。したがって、「大きな減少量」と「長さ」の間で L_k がかかりますL kL間のバランス。

シミュレーテッド アニーリング アルゴリズムの有限時間実装は、制御パラメーターccを与えることで実現できます。cの値の有限減少シーケンスにより、有限長の同次マルコフ連鎖が生成され、次のことが実現されます。

定義 12 : 冷却プロセスは次のように定義されます。

  1. 制御パラメータcccの値の有限シーケンス
    • 初期値c 0 c_0c0
    • パラメータcccの減衰関数
    • cccの最終値
  2. 制御パラメータの各値に対する有限数の遷移、つまり関連するマルコフ連鎖の有限長

定義 13 : ε εとするεは十分に小さい正の値、kkkは指定された反復回数、L k L_kLk番目ですk 個のマルコフ連鎖の長さ、ck c_kcは制御パラメータの値です。マルコフ連鎖の場合L k L_kL反復後の解の確率分布 ( a ( L k , ck ) a(L_k,c_k) による)( L _c) ) で表される分布は定常分布q ( ck ) q(c_k)に十分近いq ( c)、準平衡があると言います。

qi ( ck ) = 1 N 0 ( ck ) e − f ( i ) ck ∀ i ∈ S , N 0 ( ck ) = ∑ j ∈ S e − f ( j ) ck \begin{gathered} q_i\left(c_k \right)=\frac{1}{N_0\left(c_k\right)} e^{-\frac{f(i)}{c_k}} \forall i \in S, \\ N_0\left(c_k\ right)=\sum_{j \in S} e^{-\frac{f(j)}{c_k}} \end{gathered}q私は( c)=N0( c)1ecf ( i )∀i _N0( c)=j Secf ( j )

あれは:

∥ a ( L k , ck ) − q ( ck ) ∥ < ε \left\|a\left(L_k, c_k\right)-q\left(c_k\right)\right\|<\varepsilon_( Lc)q( c)<e

準平衡原理を使用した冷却プロセスは、次の観察に基づいています。パラメータck c_kの場合c∞ ∞に向かう、安定分布は可能な解集合SSSに関する統一法則は

lim ⁡ ck → ∞ q ( ck ) = 1 ∣ S ∣ 1 \lim _{c_k \rightarrow \infty} q\left(c_k\right)=\frac{1}{|S|} \mathbf{1}cリムq( c)=S 11

ここで1 \mathbf{1}1は次元∣ S ∣ |S|S ベクトル、その成分はすべて1 11

したがって、十分に大きいck c_kの場合、c、探索空間の各点は、L k L_kに関係なく、等しい確率で訪問されます。Lの値が何であっても、準平衡状態に直接到達します。

冷却プロセスは、各マルコフ連鎖 (L_k,c_k) の終端で準平衡となる値 (L k , ck ) を決定することから構成されます。( Lc

考えられる冷却プロセスは数多くありますが、最も一般的な 2 つは、Kirkpatrick によって提案された幾何学的プロセスと、Aarts と Van Laarhoven によって提案された多項式時間冷却です。

4.2 幾何学的冷却

  • 初期温度c 0 c_0c0: 十分に大きなc 0 c_0を見つけることができるように予熱を実行します。c0最初の反復でほとんどすべての遷移が受け入れられるような値です。そのような値を見つけるには、小さな値c 0 c_0から始めます。c0始める。次に、その値に1 1より大きい値が徐々に乗算されます。1合格率χ ( c 0 ) χ(c_0)x ( c0) 1 1に近い1
  • 制御パラメータcccの減衰:ck + 1 = α ck c_{k+1}=\alpha c_kck + 1=αc _、ここでα \alphaαは一般的に0.8~0.99かかります
  • 停止准则:当当前解在足够大的迭代次数期间从一次迭代到下一次迭代不再改变时,判定算法终止。
  • 链条的长度:理论上,需要让每条链达到准平衡状态。为此,必须执行足够数量的可接受转换,这通常取决于问题。由于被接受的转变的数量相对于被提议的转变的数量 L k L_k Lk 随时间减少,所以后者必须是下限。

4.3 Cooling in Polynomial Time 多项式时间冷却

让我们解释一下如何设置温度参数的初始值,以及如何迭代地减小它。

4.3.1 初始温度

m 1 m_1 m1 是严格提高目标函数值的建议转换总数, m 2 m_2 m2 是其他(增加的)建议转换数。此外,设 Δ ˉ f ( + ) \bar{\Delta}_f^{(+)} Δˉf(+) 是所有递增转换的成本差的平均值。那么,接受率可以近似为:

χ ( c ) ≃ m 1 + m 2 e − ( Δ ˉ f ( + ) c ) m 1 + m 2 \chi(c) \simeq \frac{m_1+m_2 e^{-\left(\frac{\bar{\Delta}_f^{(+)}}{c}\right)}}{m_1+m_2} χ(c)m1+m2m1+m2e(cΔˉf(+))

这产生了

ここに画像の説明を挿入

初期温度c 0 c_0c0推奨される初期値は次のように定義されます。

初期状態では、c 0 c_0c00 0に設定されます0その後、 m 0 m_0のシーケンスメートル0m 1 m_1を変換、計算しますメートル1そしてm2m_2メートル2価値。

すると、c 0 c_0c0の初期値は式 (1.2) によって計算されます。ここで、受け入れ率χ ( c ) χ(c)χ ( c )の値はユーザー定義です。次にc 0 c_0c0の最終値は、冷却プロセス中の初期値として使用されます。

4.3.2 制御パラメータの減衰

準平衡状態は次のように置き換えられます。

∀ k ≥ 0 : ∥ q ( k ) − q ( k + 1 ) ∥ < ε \forall k\geq 0:\|q(k)-q(k+1)\|<\varepsilon∀k_0 q ( k )q ( k+1 ) <e

したがって、制御パラメータck c_kの 2 つの連続する値に対して、cそしてck + 1 c_{k+1}ck + 1に近い定常分布が予想されます。これは次の式で定量化できます。

ここに画像の説明を挿入

ここで、δ δδは、先験的に与えられた小さな正の数です。次の定理は、式 (1.3) を満たすために必要な条件を提供します。

定理 4 : q ( ck ) q(c_k)とするq ( c)は反復kkkでのシミュレートされたアニーリング プロセスに関連付けられたマルコフ連鎖の定常分布ck c_kcそしてck + 1 c_{k+1}ck + 1は、制御パラメータの 2 つの連続する値です。ここで、ck + 1 < ck c_{k+1} < c_kck + 1<c、次の場合、(1.3) 式を満たします。

ここに画像の説明を挿入
必要条件 (1.4) は次のように書き換えることができます。
ここに画像の説明を挿入
後者の条件 (1.5) は次のように近似できることがわかります。

ここに画像の説明を挿入

ここで、σ ck σ_{c_k}pc温度はck c_kですc次のq ( ck ) q(c_k)q ( c)標準偏差。

温度パラメータcccはユーザー定義パラメータδd電気δの値が大きいとcccの大幅な減少、一方でδ δδの値が小さいとcccのわずかな減少

4.3.3 マルコフ連鎖の長さ

SA 冷却中、マルコフ連鎖の長さは、特定の解i ∈ S i ∈ Sへのアクセスを許可する必要があります。近所のS i S_i of SS私はかなりの割合で。この割合を定量化するには、次の定理が使用されます。

定理 5 : SSとするSは基数∣ S ∣ |S|S セット。それからNNN回のランダム ウォーク中に訪問されたSSS要素の平均数は次の式で求められます。

ここに画像の説明を挿入

したがって、変換が受け入れられず、N = ∣ S i ∣ N = |S_i|の場合、N=S私は、その後、解ii近所のS i S_i of iS私は訪問した解のパーセンテージは次のとおりです: 1 − e − 1 ≃ 2 / 3 1-e^{-1} \simeq 2/31e12/3

L k = ∣ S i ∣ L_k = |S_i|L=S私は反復 k で内側のループを与えます (温度はck c_kc) は、明らかに∣ S i ∣ |S_i|である場合、反復回数としては良い選択です。S私は∣問題に関連しており、ユーザーが設計する必要があります。

4.3.4 停止基準

Δ ⟨ f ⟩ ck = ⟨ f ⟩ ck − f O pt \Delta\langle f\rangle_{c_k}=\langle f\rangle_{c_k}-f_{O pt}Δ f c=⟨f⟩ _ _cfオプト

背景、Δ ⟨ f ⟩ ck \Delta\langle f\rangle_{c_k}Δ f c⟨ f ⟩ c 0 \langle f\rangle_{c_0}との相対関係⟨f⟩ _ _c0「十分な」時間が経過すると、アルゴリズムの実行が終了するはずです。

十分に高いc 0 c_0の場合c0値の場合、< fc 0 > ≃ ⟨ f ⟩ ∞ <f_{c_0}>\simeq\langle f\rangle_{\infty} になります。<fc0>≃⟨f⟩ _ _

また、ck << 1 c_k << 1の場合c<<1

Δ ⟨ f ⟩ ck ≃ ck ∂ ⟨ f ⟩ ck ∂ ck \Delta\langle f\rangle_{c_k} \simeq c_k \frac{\partial\langle f\rangle_{c_k}}{\partial c_k}Δ f cc∂c _f c

次に、アルゴリズムのエンドポイントは次のように決定されます。

ck ⟨ f ⟩ ∞ ∂ ⟨ f ⟩ ck ∂ ck < ε S for ck < < 1 \frac{c_k}{\langle f\rangle_{\infty}} \frac{\partial\langle f\rangle_{c_k}} {\partial c_k}<\varepsilon_S \text { for } c_k<<1⟨f⟩ _ _c∂c _f c<eSc の場合 <<1

ユーザーは小さな許容誤差ε S ε_Sを設定できます。eS

4.3.5 概要

したがって、多項式時間での冷却プロセスは次のようにパラメータ化されます。

  • 初期受け入れ率: χ ( c 0 ) χ(c_0)x ( c0)
  • パラメータδ δによるδによって制御される連続する定常分布間の距離
  • パラメータε S ε_SによるeS制御された停止基準

この冷却プロセスの反復回数は有限であり、次の定理によって特徴付けることができます。

定理 6 : デクリメント関数を次のように与えます。

ここに画像の説明を挿入

KKしましょうKは、停止基準を満たす最初の整数です。すると、 K = O ( ln ( ∣ S ∣ ) ) K = O(ln(|S|)) となります。K=O ( l n ( S ))

したがって、ln ( ∣ S ∣ ) ln(|S|)の場合l n ( S )は問題サイズが多項式である場合 (多くの組み合わせ最適化問題の場合と同様)、このタイプの冷却によりアルゴリズムが多項式で実行されます。

各問題には最適なアニーリング スキームがあり、どれが自分のアプリケーションに最適であるかを決めるのはユーザー次第です。

最適なアニーリング スキームに関する事前情報がない場合 (通常はこれに当てはまります)、標準のジオメトリ スキームに依存する必要があります。

標準ジオメトリ スキームの場合、パラメータck c_kc展開は次のとおりです: ck + 1 = α kck c_{k+1} = α_kc_kck + 1=あるc、対象となる問題クラスのいくつかの代表的なインスタンスでパラメータα kを経験的に調整します。あるそしてL k L_kL

この幾何学的なアプローチはすべての問題に対して最適であるわけではありませんが、最適なアニーリング スキームよりも収束に時間がかかる場合でも、堅牢で近似解への収束が保証されるという利点があります。

4.4 シミュレーションによる評価 シミュレーションによる評価

多くの最適化アプリケーションでは、目的関数は、シミュレートされた環境を必要とするコンピューター シミュレーション プロセスの結果として評価されます。

この場合、最適化アルゴリズムは決定変数XXを制御します。これらの決定のパフォーマンス (品質) を計算するためにシミュレーション プロセスで使用されるX変数のベクトル yy図 1.3 に示すように y 。

ここに画像の説明を挿入

この場合、人口ベースのアルゴリズムは、主にシミュレートされた環境で大量のストレージ スペースが必要な場合 (今日の実際の複雑なシステムではよくあることです) に、このような問題の解決には適さない可能性があります。

実際、母集団ベースのアプローチの場合、ソリューション母集団の個人ごとにシミュレートされた環境を複製する必要があり、これには大量のメモリが必要になる可能性があります。

この欠点を回避するには、母集団内の点を評価する必要があるたびに使用されるシミュレーション環境を 1 つだけ使用することを検討してください。

シミュレーション環境が開始された最初の人物が最初に考慮され、その最初の人物に関連付けられたシミュレーションが実行されます。次に、関連するパフォーマンスが最適化アルゴリズムに転送されます。その後、2 人目の人が評価されますが、最初に模擬環境を最初の模擬イベントからクリアする必要があります。次に、母集団の最後の個人が評価されるまで、2 番目の個人に対してシミュレーションが実行されます。

この場合、ストレージ容量は問題になりませんが、評価を実行するたびにシミュレーション環境をリセットする必要があるため、評価時間が長すぎ、プロセス全体が遅すぎる可能性があります。

標準のシミュレーテッド アニーリング アルゴリズムでは、提案された遷移ごとに状態空間点のコピーが必要です。実際、点X j X_jバツj現在の点X i X_iからのもので、コンピュータ メモリ内のコピーを経由します。バツ私は生成されました。大きな次元の状態空間の場合、そのような複製を達成するための単純な手順は非効率的である可能性があり、シミュレートされたアニーリングのパフォーマンスを大幅に低下させる可能性があります。

この場合、生成の影響を取り除くため、return 演算子を考慮する方がより効率的です。GGさせてくださいGは点をX i から X_i にバツ私はX j X_jに変換バツjの生成演算子は次のとおりです。

GX i → X j \begin{gathered} G \\ \mathbf{X}_i \rightarrow \mathbf{X}_j \end{gathered}Gバツ私はバツj

回帰演算子は、生成演算子G − 1 G^{-1}の逆関数です。G1

通常、このようなビルドでは、現在のソリューションの 1 つのコンポーネントのみが変更されます。

この場合、ベクトルX i X_iバツ私は変更はできますが、コピーはできません。この新しい点を評価するときに得られる値に応じて、2 つのオプションが考慮されます。

  1. 新しい解は受け入れられます。この場合、現在の目的関数の値のみが更新されます。
  2. それ以外の場合は、演算子G − 1 G^{-1}を返します。G−1が新しい位置に適用され、メモリ内でのコピーを行わずに前の解に戻ります

このプロセスを図 1.4にまとめます。
ここに画像の説明を挿入

return 演算子は、アルゴリズムによる状態空間の検索に望ましくない歪みを容易に導入する可能性があるため、注意して使用する必要があります。たとえば、全体的な評価を計算するためにいくつかの二次評価変数が使用および変更された場合、これらの変数も初期値に復元する必要があるため、戻り演算子は状態空間の一貫性を保証する必要があります。


5. フローチャート

ここに画像の説明を挿入


6. まとめ

  • このブログでは、グローバル最適化のためのメタヒューリスティック アルゴリズムであるシミュレーテッド アニーリング (SA) について詳しく説明します。
  • SA の主な利点はシンプルさです。
  • SA は材料の物理的アニーリングの類似性に基づいており、効果的なメトロポリス許容基準によるモンテカルロ法の欠点 (極小値でのトラップの可能性) を回避します。
  • 母集団ベースのアルゴリズムは、目的関数の評価に大量のメモリが必要な場合(大量のメモリを必要とする大次元の状態空間を操作する複雑なシミュレーション プロセスの結果である場合など)には適しておらず、シミュレーテッド アニーリングが適しています。これらの問題のために。

7. ケースの説明とコードの練習

[オペレーショナルリサーチ最適化] TSP問題を解決するSAシミュレーテッドアニーリングアルゴリズム + Javaコード実装

おすすめ

転載: blog.csdn.net/weixin_51545953/article/details/130659729