%生成初始解,求目标函数f(x)=x1^2+x2^2+8在x1^2-x2>0;-x1-x2^2+2=0约束下的最小值问题
sol_new2=1;%(1)解空间(初始解)
sol_new1=2-sol_new2^2;
sol_current1 = sol_new1;
sol_best1 = sol_new1;
sol_current2 = sol_new2;
sol_best2 = sol_new2;
E_current = inf;
E_best = inf;
rand('state',sum(clock)); %初始化随机数发生器
t=90; %初始温度
tf=89.9; %结束温度
a = 0.99; %温度下降比例
while t>=tf%(7)结束条件
for r=1:1000 %退火次数
%产生随机扰动(3)新解的产生
sol_new2=sol_new2+rand*0.2;
sol_new1=2-sol_new2^2;
%检查是否满足约束
if sol_new1^2-sol_new2>=0 && -sol_new1-sol_new2^2+2==0 && sol_new1>=0 &&sol_new2>=0
else
sol_new2=rand*2;
sol_new1=2-sol_new2^2;
continue;
end
%退火过程
E_new=sol_new1^2+sol_new2^2+8;%(2)目标函数
if E_new<E_current%(5)接受准则
E_current=E_new;
sol_current1=sol_new1;
sol_current2=sol_new2;
if E_new<E_best
%把冷却过程中最好的解保存下来
E_best=E_new;
sol_best1=sol_new1;
sol_best2=sol_new2;
end
else
if rand<exp(-(E_new-E_current)/t)%(4)代价函数差
E_current=E_new;
sol_current1=sol_new1;
sol_current2=sol_new2;
else
sol_new1=sol_current1;
sol_new2=sol_current2;
end
end
plot(r,E_best,'*')
hold on
end
t=t*a;%(6)降温
end
disp('最优解为:')
disp(sol_best1)
disp(sol_best2)
disp('目标表达式的最小值等于:')
disp(E_best)
matlab模拟退火算法、
需积分: 0 176 浏览量
更新于2024-11-01
收藏 993B ZIP 举报
matlab模拟退火算法、
qing_best
- 粉丝: 68
- 资源: 46
最新资源
- 【岗位说明】宽X超市集团网络信息部岗位职责汇编.doc
- 【岗位说明】商品配送人员任职资格及岗位职责标准.doc
- 【岗位说明】商品验收人员任职资格及岗位职责标准.doc
- 【岗位说明】设备管理员任职资格及岗位职责标准.doc
- 【岗位说明】审核员任职资格及岗位职责标准.doc
- 【岗位说明】收银监察员任职资格及岗位职责标准.doc
- 【岗位说明】收货部各办员工岗位职责.doc
- 【岗位说明】售后服务司机任职资格及岗位职责标准.doc
- 【岗位说明】售后服务人员任职资格及岗位职责标准.doc
- 【岗位说明】维修班长任职资格及岗位职责标准.doc
- 【岗位说明】物价员任职资格及岗位职责标准.doc
- 【岗位说明】连锁超市商场营运总监职务说明书.docx
- 【岗位说明】直X超市员工岗位职责.doc
- 【岗位说明】新X佳连锁超市主管工作职责.doc
- 机械设计LED半导体点胶机(sw20可编辑+工程图)全套技术资料100%好用.zip
- 两级式光伏发电三相并网逆变器 simulink仿真 前级Boost升压电路 PLL锁相环 MPPT最大功率点跟踪控制(扰动观察法) dq解耦控制 SPWM调制 电流内环电压外环的双闭环并网控制策略