首页 > 编程知识 正文

禁忌搜索算法仿真,禁忌搜索算法及应用

时间:2023-05-04 11:14:11 阅读:33551 作者:850

1 .算法简介禁忌搜索算法ts(TabuSearch )由美国科罗拉多州大学的Fred Glover教授于1986年左右提出,是为了摆脱局部最好的搜索方法。

禁忌搜索是一种子启发式随机搜索算法,从一个初始可行解中选择一系列特定的搜索方向(移动)作为启发式搜索,实现特定目标函数值变化最大的移动。 为了不陷入局部最优解,TS检索采用了记录和选择已经进行的优化过程,指导下一个检索方向的灵活的“记忆”技术。

TS是人工智能的体现,是局部区域搜索的延伸。 禁忌搜索是在区域搜索的基础上,禁忌通过设置禁忌表所经历的操作,利用鄙视标准奖励一些优秀状态,其中包括邻域 、禁忌表、禁忌长度、候选解、藐视准则等影响禁忌搜索算法性能的重要因素迄今为止,TS算法在组合优化等计算机领域取得了很大的成功,近年来对函数的全局优化取得了很多研究,并有很大的发展趋势。

2 .算法框架

注:

特赦(轻蔑)原则

)1)根据评价规则,如果一个解的目标值优于前面的任何一个最佳解候选,可以特赦;

)2)基于最小错误规则,所有对象被禁忌时,特赦评价值最小的解。

3 .算法示例:

禁忌的对象是分量的变化,也就是交换两个城市,禁忌的长度默认为3。

在第一步中,可以看出对交换CD的评价值最小,所以放入禁忌表,将其解作为现在的解:

在步骤2中,由于此时对BC置换的评价值最小,所以将BC放入禁忌表中,将其解作为现在的解。 请注意此处禁忌对象和长度表示的理解如下。

第一行中有三个正方形表示a可以替换BCD,同样,CD (右下)上显示为3表示当前禁忌对象为CD,禁忌长度为3,以后添加禁忌对象时一个

在步骤3中,因为设定为CD和BC以及禁忌,所以此时将BD作为禁忌对象,将其解作为现在的解。

因为此时禁忌表已满,所以此时满足轻蔑标准,将BD置换为最初进入禁忌表的解CD,同时将其解作为现在的解。

4 .算法实际应用时的注意点经过上述例子,可以看出http://www.Sina.com/(2(两个指标)

禁忌对象:禁忌表中禁止的变化因素禁忌长:禁忌步数对禁忌表的主要指标有以下三种形式:

解的简单变化:对于上述TSP问题,例如ABCD、BACD等解的成分的变化:即上述例子的形式目标值的变化:对于上述TSP问题,即总路径的长度禁忌对象的选取

(1)从邻里中选出几个目标值最好的邻居;

)2)随机选择。候选集合的确定

(1)通过直接评价函数、目标函数的运算得到评价函数

)间接评价函数,构建其他评价函数代替目标函数。 应该反映目标函数的特性,减少计算的复杂性。

评价函数

根据记忆的频率信息(禁忌次数等)控制禁忌参数(禁忌的长度等)。

例如:

如果一个元素或序列重复,或者目标值变化很小,可以增加禁忌长度以避免循环。

如果最佳目标值出现频率高,可以中止计算并视为达到了最佳值。记忆频率信息

)确定步数结束。 具有操作方便、控制时间的优点,但不能保证解的效果。 记录当前最佳解;

)频率控制原则)某解、目标值或要素序列的频率超过某一定值时,结束计算。

)3)目标控制原则是,在给定的步数内,如果当前的最佳值没有变化,则和规则2一样,可以结束计算。

其他优秀文章(包括代码示例)

3359 blog.csdn.net/Zuo Chao _ 2013/article/details/72292466

3359 blog.csdn.net/tyhj _ SF/article/details/5423550

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。