matlab模拟退火算法(SA)详解(二)旅行商问题(TSP)详解

 

旅行商问题(Traveling Salesman Problem,TSP)代表一类组合优化问题,在物流配送、计算机网络、电子地图、交通疏导、电气布线等方面都有重要的工程和理论价值,引起了许多学者的关注 。TSP 简单描述为:一名商人要到n 个不同的城市去推销商品,每2个城市i和j之间的乐离为d,如何选择一条路径使得商人每个城市走一遍后回到起点,所走的路径最短。 TSP是典型的组合优化问题,并且是一个 NP难题。 TSP 描述起来很简单,早期的研容者使用精确算法求解该问题,常用的方法包括分枝定界法、线性规划法和动态规划法等,但是可能的路径总数随城市数目n是呈指数型增长的,所以当城市数目在100个以上时,一般很难结确地求出其全局最优解。随着人工智能的发展,出现了许多独立于问题的智能优化算法,如蚁群算法、遗传算法、模拟退火、禁忌搜索、神经网络、粒子群优化算法、免疫算法等,通过模拟或解释某些自然现象或过程而得以发展。模拟退火算法具有高效、鲁棒、通用、灵活的优点。将模拟退火算法引入TSP求解,可以避免在求解过程中陷入TSP的局部最优。
算法设计步骤:
(1)TSP问题的解空间和初始解 
 TSP的解空间S是遍访每个城市恰好一次的所有回路,是所有城市排列的集合。TSP问
题的解空间 S 可表示为{1,2,....n}的所有排列的集合,即
S={(C1,C2,..,Cn.) | (C1,C2,...,C)}
其中每一个排列S,表示遍访n个城市的一个路径,Ci=j表示第i次访问城市j。模拟退火算法的最优解和初始状态没有强的依赖关系,故初始解为随机函数生成一个{1,2,...,n}的随机排列作为S。.
(2)目标函数
TSP 问题的目标函数即为访问所有城市的路径总长度,也可称为代价函数,现在 TSP 问题的求解就是通过模拟退火算法求出目标函数C(c1,C2,...,C.)的最小值,相应地,S=(ci,c2,,c:)即为 TSP问题的最优解。 
(3)新解产生
新解的产生对问题的求解非常重要。新解可通过分别或者交替使用以下两种方法来
产生:
二变换法:任选序号u、v(设u<v<n),交换u和v之间的访问顺序。
三变换法:任选序号u、v(设u<v<n),u.v.w(设u<<w),将u和之间的路径插到w之后访问。
(4)目标函数差 
计算变换前的解和变换后目标函数的差值:
△C'=C(s0)-C(s)
(5)Metropolis接受准则 
以新解与当前解的目标函数差定义接受概率,即 
P = (1)1 , △C<0 向好的方向发展

       (2)exp(-△C/T),△C>0 向坏的方向发展

     

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值