TSP问题

模拟退火:

https://www.cnblogs.com/ranjiewen/p/6084052.html

https://www.cnblogs.com/rvalue/p/8678318.html

1. 随机交换序列中2个位置的元素;

2. 如果新序列比老序列更优(E(new)-E(old)<0), 则完全接受新序列; (E是越小越好)

   如果新序列比老序列更差(E(new)-E(old)>0), 则以概率p=exp( - (E(new)-E(old)) / kT )的概率接受新序列;

3. 略微减少T

T是温度,从高到低期间,接受更差解的概率越来越小,趋于稳定;

1中的随机交换2个元素,也可以换成整个序列彻底随机等。。。

 

A*: https://wenku.baidu.com/view/774588e3524de518964b7da4.html

对每一个状态s来说:F(s) = G(s) + h(s);F是总估值函数,每次在open-list里扩展F最小的节点;G是ground-truth,已经走过的路径长度;h是预估值,TSP里用该点到其他未遍历节点的最小边(min)*剩余边数

为了防止状态爆炸,每次扩展完1个s,可以只保留最优的前N(本程序里N=100)个s,后面的删掉;

步骤:1. 从open-list中取best 2.对best扩展(依次扩展序列末尾节点周围未遍历的节点们),每个扩展加入到open-list; 3. 还没有到终点的解或者不满意,则跳到1继续循环;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值