📄 kekaoxing_ssa.m
字号:
clear;
clc;
t0=100000;tf=1;alpha=0.9;L=100*5;
jiage=[3,12,8,5,10];jiage=jiage';
kekaoxing=[0.96,0.93,0.85,0.8,0.75];r0=0.9;
bujian=zeros(1,5+1);
bujian=[4,4,4,4,4,0];bujian(6)=bujian(1:5)*jiage; %the initial goal value
%保证初始化后满足可靠性的要求
r1=1;
for j=1:5, r1=r1*(1-(1-kekaoxing(j))^bujian(j)); end
if r1<r0 bujian=kkxchange(bujian,jiage,kekaoxing,r0); end
%保证初始化后满足可靠性的要求
t=t0;
% tic
count=0;bestsolution=bujian;newbujian=bujian;
while t>tf %外循环
%%%%%%%%%%%%%%%%%%%%%%%%
tic
for i=1:L, %内循环
newbujian=kkxchange(bujian,jiage,kekaoxing,r0);
if newbujian(6)<bujian(6)
bujian=newbujian;
else
if rand<exp((bujian(6)-newbujian(6))/t)
bujian=newbujian;
end
end
end
%%%%%%%%%%%%%%%%%%%%%%%%
t=alpha*t;
if newbujian(6)<bestsolution(6) bestsolution=newbujian; end
toc
count=count+1;track(count,1)=count;track(count,2)=newbujian(6);track(count,3)=bestsolution(6);track(count,4)=toc;
end
% toc,
bestsolution,
figure(1);
plot(track(:,1),track(:,2),'r-+',track(:,1),track(:,3),'b-x');
figure(2);
plot(track(:,4));
% axis([1,34,0,30]);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -