【TSP】基于matlab禁忌搜索算法求解31城市旅行商问题【含Matlab源码 1143期】
2021-07-26 03:55
标签:插入 ceil 目标 png 最大 csdn -o 映射关系 常用 1 局部领域搜索 1.1 优点: 1.2 缺点: 2 TS算法的特点: TS算法构成要素: 禁忌表的主要指标(两项指标) 禁忌对象(三种变化) 禁忌长度:可以是一个固定的常数(T=c),也可以是动态变化的,可按照某种规则或公式在区间内变化。 (5)渴望水平函数一、简介
又称爬山启发式算法,从当前的节点开始,和周围的邻居节点的值进行比较。如果当前节点是最大的,那么返回当前节点,作为最大值(即山峰最高点);反之就用最高的邻居节点替换当前节点,从而实现向山峰的高处攀爬的目的。它是禁忌搜索的基础,TS算法是在其上改进而来。
容易理解,容易实现,具有较强的通用性;
局部开发能力强,收敛速度很快。
全局开发能力弱,只能搜索到局部最优解;
搜索结果完全依赖于初始解和邻域的映射关系。
通过针对爬山法的分析,提出了TS搜索算法:
改进1:接受劣解。
改进2:引入禁忌表。
改进3:引入长期表和中期表。
2.1 基本思想——避免在搜索过程中的循环
2.2 只进不退的原则,通过禁忌表实现
2.3 不以局部最优作为停止准则
2.4 邻域选优的规则模拟了人类的记忆功能
(1)编码方式
将不相同的n件物品分为m组,可以用的编码:
a、带分隔符的顺序编码
以自然数1~n分别代表n件物品,n个数加上 m-1个分割符号混编在一起,随机排列。 如:1-3-4-0-2-6-7-5-0-8-9
b、自然数编码
编码的每一位分别代表一件物品,而每一位的值代表该物品所在的分组。
如:1-2-1-1-2-2-2-3-3
(2)初始解的获取
可以随机给出初始解,也可以事先使用其他启发式等算法给出一个较好的初始解。
(3)移动邻域
移动是从当前解产生新解的途径,例如上述问题中用移动s产生新解s(x)。 从当前解可以进行的所有移动构成邻域,也可以理解为从当前解经过“一步”可以到达的区域。
(4)禁忌表
禁忌表的作用:防止搜索出现循环?
(1)记录前若干步走过的点、方向或目标值,禁止返回
(2)表是动态更新的
(3)表的长度称为Tabu-Size
禁忌对象:禁忌表中被禁的那些变化元素
禁忌长度:禁忌的步数
以状态本身或者状态的变化作为禁忌对象
以状态分量以及分量的变化作为禁忌对象
采用类似的等高线做法,以目标值变化作为禁忌对象
禁忌长度过短,一旦陷入局部最优点,出现循环无法跳出;
禁忌长度过长,候选解全部被禁忌,造成计算时间较大,也可能造成计算无法继续下去。
文章标题:【TSP】基于matlab禁忌搜索算法求解31城市旅行商问题【含Matlab源码 1143期】
文章链接:http://soscw.com/index.php/essay/106977.html