模拟退火算法每次的解为什么不一样?

 我来答
宝我想去看看
2021-10-14 · 记录生活热爱生活分享生活
宝我想去看看
采纳数:215 获赞数:9101

向TA提问 私信TA
展开全部

模拟退火每次的解不同是很正常的,因为模拟退火本身是一种随机算法,转移向更差的解不是必然而是概率性的,也就是说每次执行算法时,执行过程转移到的解可能都是完全不一样的。

至于TSP问题,本身属于NP-hard问题,找不到存在多项式时间复杂度的解。

如果要求精确的解,目前可行的方法有枚举、分支限界、动态规划等,但这些方法适用的数据范围都很小,一旦数据规模变大,它们都将无能为力。

所以目前广泛使用的大都是一些随机算法,比如蚁群、遗传等,模拟退火就是其中的一种,这些算法的一大特点就是通过随机去逼近最优解,但也有可能得到错解。

只有穷举法可以保证得到最优解,但是穷举法在数据量比较大的时候运行时间通常是不能接受的,所以用了各种近似方法。

模拟退火算法新解的产生和接受可分为如下四个步骤:

第一步是由一个产生函数从当前解产生一个位于解空间的新解;为便于后续的计算和接受,减少算法耗时,通常选择由当前新解经过简单地变换即可产生新解的方法,如对构成新解的全部或部分元素进行置换、互换等,注意到产生新解的变换方法决定了当前新解的邻域结构,因而对冷却进度表的选取有一定的影响。

第二步是计算与新解所对应的目标函数差。因为目标函数差仅由变换部分产生,所以目标函数差的计算最好按增量计算。事实表明,对大多数应用而言,这是计算目标函数差的最快方法。

第三步是判断新解是否被接受,判断的依据是一个接受准则,最常用的接受准则是Metropolis准则: 若ΔT<0则接受S′作为新的当前解S,否则以概率exp(-ΔT/T)接受S′作为新的当前解S。

第四步是当新解被确定接受时,用新解代替当前解,这只需将当前解中对应于产生新解时的变换部分予以实现,同时修正目标函数值即可。此时,当前解实现了一次迭代。可在此基础上开始下一轮试验。而当新解被判定为舍弃时,则在原当前解的基础上继续下一轮试验。

Sievers分析仪
2024-10-13 广告
总有机碳(TOC),由专门的仪器——总有机碳分析仪(以下简称TOC分析仪)来测定。TOC分析仪,是将水中的总有机碳氧化为二氧化碳,并且测定其含量。利用二氧化碳与总有机碳之间碳含量的对应关系,从而对水溶液中总有机碳进行定量测定。TOC分析仪由... 点击进入详情页
本回答由Sievers分析仪提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式