シミュレーテッドアニーリングに基づく巡回セールスマン問題

巡回セールスマン問題のシミュレーテッドアニーリング法に基づいて、Matlabは、WeChatパブリックアカウント「通信教室の取得」に従って、模擬アニーリング法に基づいて巡回セールスマン問題に返信してください。

 


1.はじめに

Kirkpatrick、Little Gerat、Wakkiは「統計力学に関する前任者の研究に基づいて先駆的な論文を発表した」ため、シミュレーテッドアニーリングアルゴリズムは、多くの困難な組み合わせ最適化問題を解決することで高く評価されています。 「救世主」は、VLSI、画像処理、コンピュータビジョン、電気通信、経済学、その他多くの工学および科学分野などのコンピュータ支援設計に適用されています。

2.シミュレーテッドアニーリングアルゴリズムの概要

1.固体アニーリングプロセスの
シミュレートされたアニーリングアルゴリズムは、固体アニーリングの原理から派生しています。固体は十分に高いレベルまで加熱され、その後ゆっくりと冷却されます。温度が加熱されると、温度が上昇するにつれて固体の内部粒子が無秩序になり、内部エネルギーが増加しますそして、粒子はゆっくりと冷却されると徐々に規則正しくなり、各温度で平衡状態に達し、最終的に室温で基底状態に達します。このとき、内部エネルギーは最小限に抑えられます。

 

2.シミュレーテッドアニーリングアルゴリズムの原理

シミュレーテッドアニーリングアルゴリズム(Simulated Annealing、SA)の最も初期のアイデアは、1953年にN. Metropolisらによって提案されました。1983年、S。カークパトリックと他の人々は、組み合わせの最適化の分野にアニーリングのアイデアを導入しました。これは、モンテカルロ反復解法に基づく確率的最適化アルゴリズムであり、その出発点は、物理学における固体のアニーリングプロセスと一般的な組み合わせ最適化問題との類似性に基づいています。シミュレートされたアニーリングアルゴリズムは、特定の高い初期温度から始まり、温度パラメーターの連続的な減少と、突然のジャンプ特性の確率を組み合わせて、解空間で目的関数の大域的最適解をランダムに見つけます。つまり、局所最適解は確率的に飛び出してマージできます。最終的には全体的に最適になる傾向があります。シミュレーテッドアニーリングアルゴリズムは一般的な最適化アルゴリズムです。検索プロセスに時変で最終的にゼロの確率ジャンプを与えることにより、局所的に最小で最終的に大域的に最適になる傾向のあるシリアル構造に陥ることを効果的に回避できます。最適化。

3、シミュレーテッドアニーリングアルゴリズムの目的

多くの実用的な最適化問題の目的関数は非凸であり、多くの局所最適解がありますが、一般的な非凸目的関数の大域最適解を効果的に見つけることは依然として困難な問題です。特に最適化問題のサイズが大きくなると、局所最適解の数は急速に増加します。

シミュレーテッドアニーリングアルゴリズムは、問題解決プロセスと溶融オブジェクトのアニーリングプロセスの間の類似性を使用し、ランダムなシミュレートされたオブジェクトアニーリングプロセスを使用して問題解決を完了します。つまり、パラメーターの値は、制御パラメーター(温度)の作用の下で調整され、選択したパラメーター値により、最終的にエネルギー関数がグローバルな最小値に到達します。

第4に、シミュレートされたアニーリングアルゴリズムプロセス

アルゴリズムのステップ:
ステップ1:問題のエネルギー関数Eとして適切な目的関数fを選択し、初期パラメーターを決定します。開始温度T、終了温度、冷却速度α(α∈[0,1])、単一温度反復数k。
ステップ2:初期反復回数t = 0を設定し、初期状態X0を生成し、そのエネルギーE0を計算します。
ステップ3:現在の解を中心として使用して、状態生成関数から新しい隣接する解X1を生成し、そのエネルギーE1を計算します。
ステップ4:メトロポリスの受け入れルールを使用して2つの状態のエネルギーを比較し、X1を受け入れるかどうかを決定します。受け入れられた場合、現在の状態をX1に設定し、受け入れられない場合は、現在の状態をX0に設定します。ステップ
5:反復回数を更新して、設定値に達したかどうかを判断します閾値k、もしそうなら、T = T *αをクールダウンし、t = 0とします。
Step6:終了温度に達しているかどうかを判断し、到達している場合は手順7を順に実行し、到達していない場合は手順3に進んで手順
7 を繰り返します。現在の解が最適解として出力されます。
アルゴリズムのフローチャート:

5、シミュレーテッドアニーリングアルゴリズムの利点と欠点

1.利点
(1)一定の確率で悪化するソリューションを受け入れ、物理システムのアニーリングプロセスの自然なメカニズムを導入し、一定の確率で目的関数値を「不良」にし、後者の状態を強制しないテストポイントを受け入れる以前の状態よりも良い。

(2)山登りアルゴリズムは、シミュレーテッドアニーリングアルゴリズムと比較されます。
山登りアルゴリズム:点Cが現在の解であると仮定すると、点Aの局所最適解が見つかると、山登りアルゴリズムは検索を停止します。より良いソリューション。
シミュレーテッドアニーリングは実際には貪欲なアルゴリズムですが、その検索プロセスはランダムな要因を導入し、特定の確率で現在のソリューションよりも悪いソリューションを受け入れます。そのため、この局所最適解から飛び出し、グローバル最大値に到達する可能性があります。優れたソリューション。シミュレーテッドアニーリングアルゴリズムが局所最適解Aを見つけた後、一定の確率でEの動きを受け入れます。おそらく、ローカル最適ではないいくつかのそのような移動の後、ポイントDに到達し、ローカル最大値Aが飛び出します。再アップロードとキャンセルに
dd88caeb643cb910163656c5c55b3a0e.pnguploading.4e448015.gif失敗しました

(3)アルゴリズム制御パラメータTを導入して
、最適化プロセスをさまざまな段階分割し、各段階でのランダム状態の選択基準を決定する受け入れ関数は、メトロポリスアルゴリズムによって単純な数学モデルで与えられます。
シミュレーテッドアニーリングアルゴリズムの2つの重要なステップは次のとおりです。1つは、各制御パラメーターTの前の反復点から開始して、隣接するランダム状態を生成することであり、Tによって決定される許容基準は、この新しい状態の選択を決定すること、もう1つは、制御をゆっくりと減らすことです。パラメータT、T-> 0になるまで受信基準を増やし、状態チェーンが最適化問題の最適状態で安定し、シミュレーテッドアニーリングアルゴリズムのグローバル最適解の信頼性が向上します。

(4)オブジェクト関数値を使用した検索。
従来の検索アルゴリズムでは、目的関数値を使用する必要があるだけでなく、検索方向を決定するために目的関数の微分値などの他の補助情報も必要になることがよくあります。この情報が存在しない場合、アルゴリズムは失敗します。シミュレーテッドアニーリングアルゴリズムは、目的関数から変換された適合関数値のみを使用して、他の補助情報なしで、さらなる探索方向と探索範囲を決定します。

(5)複雑な領域の検索
シミュレーテッドアニーリングアルゴリズムは、複雑な領域を検索し、期待度の高い領域を見つけるのに最適です。単純な問題の解決には効率的ではありません。

2.短所
(1)解の時間が長すぎる:多くの変数があり、目的関数が複雑な場合、適切な近似解を得るには、制御パラメーターTをより大きな値から開始し、各温度値Tでより多く実行する必要があります。サブメトロポリスアルゴリズム。反復計算速度が遅い。

(2)アルゴリズムのパフォーマンスは初期値に関連し、パラメーターは敏感です:温度Tの初期値と削減ステップサイズの決定はより困難です。Tの初期値を大きく選択すると、最終的にはより良い結果が得られますが、削減ステップサイズは小さすぎます。ただし、アルゴリズムの収束速度は遅すぎるため、Tの初期値を小さく選択し、ステップサイズを小さくしすぎると、グローバルな最適解が得られない可能性があります。

(3)検索プロセスで確率受け入れリンクが実行されるため、現在遭遇している最適解は失われます。

6、改良されたシミュレーテッドアニーリングアルゴリズム

(1)メモリ付きのシミュレーテッドアニーリングアルゴリズムシミュレートされたアニーリングアルゴリズム
は、反復中に目的関数を適切な方向に移動させるソリューションを受け入れるだけでなく、特定の制限内で目的関数を悪化させるソリューションを受け入れることができるため、アルゴリズムが効果的になります。ローカルミニマルトラップから飛び出します。ただし、複数の極値を持つエンジニアリング問題の場合、このアルゴリズムでは、最終的に得られる最適解が検索プロセス全体で到達した最適解であることをほとんど保証できません。この問題を解決するために、アルゴリズムにメモリを追加して、検索プロセスでこれまでに達成された最高の結果を記憶できるようにすることができます。これにより、多くの場合、最終的なソリューションの品質が向上します。

(2)単調加熱のシミュレーテッドアニーリングアルゴリズム。
温度Tが十分に大きい場合、対応する許容確率は1に近づき、アルゴリズムはグローバルに検索します。温度Tが十分に小さい場合、対応する許容確率は近づきます。 Oの場合、この時点で検索が局所最適に該当すると、局所最適から飛び出す時間が非常に長くなります。貧弱な解を受け入れる確率が低すぎる(つまり、温度が低すぎる)ため、局所最適から飛び出す時間のコストが高いため、検索が局所最適に入ると、温度が人為的に上昇し、貧弱な解を受け入れる確率が高くなります。 、局所最適値から探すのは比較的簡単です。これが単調加熱プロセスのアイデアの源です。

(3)並列シミュレーテッドアニーリングに
は、シミュレーテッドアニーリングモードが与えられています。つまり、アニーリングパラメーター値のセットとそれらの変更ルールが与えられており、特定の分布に従って、領域DでN個の初期値が独立して選択されています、同時に計算すると、N個の結果が得られます。これは、独立した同一分布のランダムベクトルと見なすことができます。

(4)補足検索プロセスを増やします。すなわち、アニーリングプロセスが終了した後、探索された最適解を初期状態として、シミュレートされたアニーリングプロセスまたは局所走化性検索が再度実行されます。

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

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

7、シミュレーテッドアニーリングアルゴリズムの適用

TSP(Traveling Salesman)問題は、最も代表的な最適な組み合わせ問題の1つです。その適用は、さまざまな技術分野や私たちの日常生活に徐々に浸透してきました。これは、航空機のルーティングなどの輸送用に最初に提案されました。メール便、宅配便、スクールバス路線の設計など 実際、その適用範囲は、VLSIチップ設計、回路基板レイアウト、ロボット制御、車両ルーティング、ロジスティクス、配布など、他の多くの分野に拡大しています。


巡回セールスマン問題(TSP)は、巡回セールスマンがいくつかの都市に旅行する必要があり、都市間のコストがわかっていることです。コストを節約するために、現在の都市から出発し、すべての都市を横断した後に戻って、旅行の総コストを最短にする方法を尋ねます?

この問題はNPC問題に属します。主なアルゴリズムは2つあります。
(1)徹底的な方法:アルゴリズムの複雑度はO(n!)です。都市の数が多い場合、アルゴリズムの実行時間は許容できませんが、結果は正確な解になります。
(2)ランダム検索アルゴリズム:ヒルクライミングアルゴリズム、シミュレーテッドアニーリングアルゴリズム、アリコロニーアルゴリズムなど

 

 

MATLABシミュレーション結果の使用:

 

 

 

 

8.質問

1.シミュレーテッドアニーリングアルゴリズムを使用してTSP問題を解決するプロセスでは、反復ごとに新しいソリューションを生成する必要があります。シミュレーションでは、何をどのように実行する必要がありますか?

回答:上記のシミュレーションでは、移動ルート内の2つの都市の順序をランダムに入れ替えることによって新しいソリューションが生成されます。交換の数は、温度が上昇するにつれて減少し、最小値は1です。TSP問題の新しい解を生成する方法はたくさんあります。その中に、一般的に使用されている3つの方法、2点変換法、2変換法、3変換法があります。改良された方法は、新しい解空間の範囲を広げることを目的としています。その中で、 2点変換法。TSP問題では、新しい解の生成方法には、検索ステップが十分に小さいという基本的な要件があります。つまり、すべての解を任意の初期解からトラバースでき(すべての解が最適解である可能性があるため)、2点変換法を使用してトラバースできます。考えられるすべての解、および任意の解から別の解への最大交換回数は、n×(n-1)/ 2です。また、このプロセスでは、局所解を確実に飛び出せるように、新しい解のスペースを十分大きくする必要があります。新しい解の空間が大きい(Tが大きい場合、つまり局所最適値から飛び出すことが有益である)ことが期待されているため、新しい解の空間は小さい(Tが小さい場合、つまり後の反復)ので、新しい解の生成方法はすべての解をトラバースできるため、温度の低下に伴い交換回数が減少する2点換算方式を採用しています。

2.距離と反復時間のグラフから反復が完了したかどうかを判断するにはどうすればよいですか?

回答:シミュレーテッドアニーリングアルゴリズムでは、通常、アニーリング温度、反復回数を判断するか、新しいソリューションを長期間受け入れないことにより、反復を停止します。距離と反復回数のグラフから、前後の反復間の距離がある程度未満であれば、おおまかに反復が完了したと判断できます。反復数が無限大になる傾向がある場合、シミュレートされたアニーリングアルゴリズムの最適化結果は、確率1のグローバル最適解に向かっていると見なすことができます。ただし、反復数が制限されている場合、得られる解は、より良い解にすぎない場合がありますが、必ずしもグローバル最適解ではありません。

おすすめ

転載: blog.csdn.net/Xiaoxll12/article/details/105177389