📄 jm98b.m
字号:
%98 年全国大学生数学建模竞赛B题"水灾巡视问题"模拟退火算法。
%这是一个推销员问题,本题有53个点,所有可能性大约为exp(53),
%目前没有好方法求出精确解,既然求不出精确解,我们使用模拟退火法求出一个较优解,
%将所有结点编号为1到53,1到53的排列就是系统的结构,结构的变化规则是:
%从1到53的排列中随机选取一个子排列,将其反转或将其移至另一处,能量E自然是路径总长度。
%具体算法描述如下:
%步1:设定初始温度T,给定一个初始的巡视路线。
%步2:步3 --8循环K次
%步3:步 4--7循环M次
%步4:随机选择路线的一段
%步5:随机确定将选定的路线反转或移动,即两种调整方式:反转、移动。
%步6:计算代价D,即调整前后的总路程的长度之差
%步7:按照如下规则确定是否做调整:
%如果D<0,则调整
%如果D>0,则按照EXP(-D/T)的概率进行调整
%步8:T*0.9-->T,降温
%本程序用C语言编写jm98b.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -