堆优化模拟退火(List-Based Simulated Annealing|LBSA)
申明
本文部分内容来自List-Based Simulated Annealing Algorithm for Traveling Salesman Problem[1]
如有侵权,请联系删除
引入
模拟退火是用于求解连续函数的极值的随机化算法,由爬山算法优化得来
普通模拟退火对参数值极为敏感,经常要调很久
最近了解到一种进阶版模拟退火,即堆优化模拟退火 LBSA
,全称 List-Based Simulated Annealing
,较于普通的的模拟退火,它对参数的敏感度较低,得到最优解的概率较高,不失为一种优秀的骗分算法
算法过程
预处理
首先要生成初始温度堆,步骤如下:
-
生成初始解 ,建立温度堆 ,定义堆长度 ,定义初始接受概率
-
随机生成 的临近解 ,如果 优于 ,则令
-
将温度 放入 中
-
重复这一过程,直到放满 个温度
求解
-
初始化温度堆
-
取出(pop)堆中的最大值
-
随机生成 的临近解 ,如果 比 优,则令 ,跳至第5步;否则执行第4步
-
设概率 ,随机一个 ,若 ,则令并累计执行次数 ,
-
重复3~4步 次
-
如果 , 将 中的最大值换为 ,清空
-
重复2~6步 次
本文来自博客园,作者:lnw143,转载请注明原文链接:https://www.cnblogs.com/lnw143/p/17636880.html
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现