⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kekaoxing_ssa.m

📁 利用MATLAB编写
💻 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 + -