数学建模(4)——模拟退火
来源:互联网 发布:豆人网络战争前线 编辑:程序博客网 时间:2024/05/21 22:34
以寻找最小值的优化问题为例
例题题目查看
%此处代码为获得距离矩阵d后得到初始解部分d=d+d'; S0=[];Sum=inf; rand('state',sum(clock)); for j=1:1000 %先使用 Monte Carlo 方法求得一个较好的初始解 S=[1 1+randperm(100),102]; temp=0; for i=1:101 temp=temp+d(S(i),S(i+1)); end if temp<Sum S0=S;Sum=temp; endend
%退火过程 e=0.1^30;%终止温度L=20000;at=0.999;%降温系数T=1; for k=1:L %产生新解 %2变换法 c=2+floor(100*rand(1,2)); %产生2个1~100间的随机数 c=sort(c); c1=c(1); c2=c(2); %计算代价函数值 df=d(S0(c1-1),S0(c2))+d(S0(c1),S0(c2+1))-d(S0(c1-1),S0(c1))-d(S0(c2),S0(c2+1)); %df为路径差 if df<0 %接受新路径 S0=[S0(1:c1-1),S0(c2:-1:c1),S0(c2+1:102)]; Sum=Sum+df; elseif exp(-df/T)>rand(1) %以概率接受新的路 S0=[S0(1:c1-1),S0(c2:-1:c1),S0(c2+1:102)]; Sum=Sum+df; end T=T*at; %降温 if T<e %结束条件 break; endend% 输出巡航路径及路径长度 S0,Sum
思路解释
阅读全文
0 0
- 数学建模(4)——模拟退火
- 模拟退火算法_数学建模系列
- 数学建模 模拟退火入门介绍
- poj1379——模拟退火
- 模拟退火——模板
- 机器学习基础—— 模拟退火(Simulated Annealing)
- 现代启发式算法(二)——模拟退火算法
- 数学建模(12)——拟合
- 数学建模(15)——聚类分析
- 数学建模(11)——Lingo使用&数学规划
- 优化算法——模拟退火算法
- 优化算法——模拟退火算法
- 随机算法 —— 模拟退火
- 模拟退火算法——自我总结
- 模拟退火算法——自我总结
- 算法简介—模拟退火算法
- 算法简介—模拟退火算法
- 经典算法之—模拟退火
- Win7 Qt4.8.5+QtCreator2.8.0+mingw配置过程
- 股票庄家套路(转发)
- 秋招面试
- jmeter监控服务器性能配置
- JAVA----操作XML文件的两个封装方法
- 数学建模(4)——模拟退火
- 安全测试
- 《leetcode》spiral-matrix-ii(构造螺旋矩阵)
- 内存重叠
- squid 启用https反向代理代理
- 第五课 Tensorflow TFRecord读取数据
- 欢迎使用CSDN-markdown编辑器
- 谱聚类(spectral clustering)原理总结
- [LintCode 376] 二叉树的路径和(Python)