智慧型優化演算法之模擬退火演算法

2021-09-26 19:16:07 字數 821 閱讀 7353

詳細的**解釋及背景,過幾天再進行補充

%模擬退火演算法

%問題背景是tsp問題,有100個旅遊景點。並且假設距離矩陣d已經給出。

%d已知

sum=inf;

for j=1:1000

s=[1,1+randperm(100),102];

temp=0;

for i=1:101;

temp=temp+d(s(i),s(i+1));

endif sums0=s;

sum=temp;

endend;

%%%生成一千組的隨機初始解,並從中挑去最小的一組隨機解作為初始解。

e=0.1^30;

l=20000;

at=0.999;

t=1;

for k=1:l

c=2+floor(100*rand(1,2));

c=sort(c);

c1=c(1);

c2=c(2);

df=d(s0(c1-1),s0(c2))+d(s0(c1),s0(c2+1))-d(s0(c1-1),s0(c1))-d(s0(c2),s0(c2+1));

if df<0

s0=[s0(1:c1-1),s0(c2:-1:c1),s0(c2+1:102)];

sum=sum+df;

elseif rand(1)s0=[s0(1:c1-1),s0(c2:-1:c1),s0(c2+1:102)];

sum=sum+df;

endt=t*at;

if tbreak;

endend

優化演算法(二)模擬退火演算法

import numpy as np 隨機確定變化的方向 def direction2 if np.random.random 0.5 return 1 return 1 隨機確定是否接受較差的解 def direction3 delta,t chance np.exp 1 delta t if n...

演算法 模擬退火演算法

模擬退火演算法 一 簡單介紹 於固體退火原理,是一種基於概率的演算法。物理學解釋 將固體加溫至充分高,再讓其徐徐冷卻,加溫時,固體內部粒子隨 溫公升變為無序狀,內能增大,而徐徐冷卻時粒子漸趨有序,在每個溫度都達到 平衡態,最後在 常溫時達到基態,內能減為最小。模擬退火演算法從某一較高初溫出發,伴隨溫...

模擬退火演算法

w 模擬退火演算法的基本思想 將乙個優化問題比擬成乙個金屬物體,將優化問題的目標函式比擬成物體的能量,問題的解比擬成物體的狀態,問題的最優解比擬成能量最低的狀態,然後模擬金屬物體的退火過程,從乙個足夠高的溫度開始,逐漸降低溫度,使物體分子從高能量狀態緩慢的過渡到低能量狀態,直至獲得能量最小的理想狀態...