📄 main.m
字号:
clc;clear;
figure(1);
Parameter_Sum=6;%从Parameter_Sum_All中找出参数个数为Parameter_Sum的最优组合
[J_Yuan,Para_Position,Parameter_Sum_All]=wh_test_44(Parameter_Sum);
Max=J_Yuan;Max_1=Max;Sample_Sum=wh_ZHS(Parameter_Sum_All,Parameter_Sum);
Temperature=1000;Decline=0.8;Step=Sample_Sum;Temp_step=1;
Temperature_Initial=Temperature; Temperature_End=1;Max_1_Max=0;
Temp_step_Point=round((Temperature_Initial-Temperature_End)/10);%将温度起点和终点分为10段,每段的两个端点都是采样点
if (Temp_step_Point<2)
Temp_step_Point=2;
end
while ~(Temperature<Temperature_End)
Temp_step=Temp_step+1;
if (Temp_step==Temp_step_Point)
if (Max_1==Max)
Max_1_Max=1;
break;%如果两个采样点的值相同,那末认为已经找到最优解,退出循环
else
Temp_step=1;%如果不相同,继续降温Temperature=Temperature*Decline;
end
end
for step=1:Step
[J_Xin,P]= wh_test_44(Parameter_Sum);
D=J_Xin-J_Yuan;
if J_Xin>=J_Yuan
Max=J_Xin;
J_Yuan=J_Xin;
Para_Position=P;
if (Temp_step==1)
Max_1=Max;
end%if (step==1)
else
Edge=rand(1);
if exp(D/Temperature)>Edge
Max=J_Yuan;
if (Temp_step==1)
Max_1=Max;
end%if (step==1)
end%---if exp(D/Temperature)>Edge
end%-----if J_Xin>=J_Yuan
end%---Step
Temperature=Temperature*Decline;
end%---while ~(Temperature<1)
figure(1);
title 'Finished';
% while ~(Temperature<100)
% % for Step=1:500
% step=1;W_step=1;
% while ~and((Max_1==Max),(step==Step))%具有自适应功能,直到在该温度下平衡才结束(直到最大值不再有变化时循环才停止)
% if (step==Step)
% step=1;%两次采样点间的距离,如果两次采样的值相等,我们就认为在该温度下达到平衡
% W_step=W_step+1;%判断该温度下平衡的次数,如果大于W_step_Max,我们就认为在该温度下不能达到平衡,break出去开始降温
% Max_1==Max;
% end%(step==Step)
%
% if (W_step==W_step_Max)
% break;
% end
%
% [J_Xin,P]= wh_test;
% D=J_Xin-J_Yuan;D=D*10^5;
% if J_Xin>=J_Yuan
% Max=J_Xin;
% J_Yuan=J_Xin;
% Para_Position=P;
% else
% Edge=rand(1);
% if exp(D/Temperature)>Edge
% Max=J_Yuan;
% % J_Yuan=J_Yuan;
% % Para_Position=Para_Position;
% end%---if exp(D/Temperature)>Edge
% end%-----if J_Xin>=J_Yuan
% % end%---Step
% step=step+1;
% end% while ~and((Max_1==Max),step==Step)
% Temperature=Temperature*Decline;
% end%---while
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -