模拟退火算法应用

您所在的位置:网站首页 matlab函数极值点 模拟退火算法应用

模拟退火算法应用

2024-06-29 01:35| 来源: 网络整理| 查看: 265

仅作自己学习使用 一、问题

在这里插入图片描述

二、代码 clear clc T1 = cputime; xmax = 5; xmin = -5; ymax = 5; ymin = -5; L = 20; % 马尔科夫链长度 dt = 0.998; % 降温系数 S = 0.02; % 步长因子 T = 200; % 初始温度 TZ = 1e-8; % 容差 Tmin = 0.01;% 最低温度 P = 0; % Metropolis接受准则中接受的点的个数 PreX = rand*(xmax - xmin) + xmin; % (设置初始x的位置)上一个搜索的x值 PreY = rand*(ymax - ymin) + ymin; % (设置初始y的位置)上一个搜索的y值 PreBestX = PreX; % 上一个最优秀的x值 PreBestY = PreY; % 上一个最优秀的y值 PreX = rand*(xmax - xmin) + xmin; % 上一个搜索的x值 PreY = rand*(ymax - ymin) + ymin; % 上一个搜索的y值 BestX = PreX; % 最优秀的X值 BestY = PreY; % 最优秀的y值 trace = []; % 用于记录历代最优解的函数值 deta = abs(eval(BestX,BestY) - eval(PreBestX,PreBestY)); % 上一次最小值和这次最小值的差的绝对值 while (deta>TZ) && (T>0.01) % 在当前温度下迭代L次数 for i = 1: L % 在当前点附件随机的选取下一点 P = 0; while P==0 NextX = PreX + S*(rand*(xmax-xmin) + xmin); NextY = PreY + S*(rand*(ymax-ymin) + ymin); if (NextX >= xmin && NextX = ymin && NextY


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3