詳細的**解釋及背景,過幾天再進行補充
%模擬退火演算法
%問題背景是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 模擬退火演算法的基本思想 將乙個優化問題比擬成乙個金屬物體,將優化問題的目標函式比擬成物體的能量,問題的解比擬成物體的狀態,問題的最優解比擬成能量最低的狀態,然後模擬金屬物體的退火過程,從乙個足夠高的溫度開始,逐漸降低溫度,使物體分子從高能量狀態緩慢的過渡到低能量狀態,直至獲得能量最小的理想狀態...