?? mcpanneal.m
字號:
%function [e,f]=MCPanneal(L,s,t,dt,w,N)
%最大截問題(Max Cut Problem)的退火算法
%由于算法的缺陷,當(dāng)f值在較長時間內(nèi)不再改變時,可用cl+c停止程序
%N為問題規(guī)模,即節(jié)點個數(shù);w為權(quán)矩陣
%L可取較大值,如500、1000;
%s取1、2等;t為初始溫度,參考范圍為0.5--2;
%dt為衰減因子,一般不小于0.9;
%e為以0、1為元素的數(shù)組,來表示兩個子集
%f為最大截權(quán)重和
%L、s、t、dt應(yīng)通過多次試驗來確定,以獲得優(yōu)化的結(jié)果
%參考《非數(shù)值并行算法--模擬退火算法》科學(xué)出版社
function [e,f]=MCPanneal(L,s,t,dt,w,N)
f=0;
e=zeros(1,N);
s0=0;
while 1
a=0;
for k=1:L
[u,df]=MCPgen(e,N,w);
if MCPacc(df,t)
e(u)=1-e(u);
f=f+df;
a=1;
end
end
disp(e);disp(f);
t=t*dt
if a==0
s0=s0+1;
else
s0=0;
end
if s0==s
break;
end
end
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -