禁忌搜索算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
*禁忌搜索算法
tabu search
测控二班 高钊政 201424080217
禁忌搜索
禁忌搜索概述
禁忌搜索的主要思路 禁忌搜索的流程
栗子
禁忌搜索算法概述
禁忌——禁止重复前面的操作 禁忌搜索(Tabu Search)算法是一种亚启发式(meta-heuristic)随机搜索算 法,它从一个初始可行解出发,选择一系列的特定搜索方向(移动)作为试探, 选择实现让特定的目标函数值变化最多的移动。为了避免陷入局部最优解, TS搜索中采用了一种灵活的“记忆”技术,对已经进行的优化过程进行记 录和选择,指导下一步的搜索方向,这就是Tabu表的建立 为了找到“全局最优解”,就不应该执着于某一个特定的区域。局部搜索 的缺点就是太贪婪地对某一个局部区域以及其邻域搜索,导致一叶障目,不 见泰山。禁忌搜索就是对于找到的一部分局部最优解,有意识地避开它(但 不是完全隔绝),从而获得更多的搜索区间。
特赦(藐视)准则(aspiration criterion)
1)基于评价的规则,若出现一个解 的目标值好于前面任何一个最佳候 选解,可特赦。 2)基于最小错误的规则,若所有 对象都被禁忌,则特设一个评价最 优的解 3)基于影响力的大小,可特赦一 个对目标值影响大的对象
停止规则:算法在何种条件下停止 1)把最大迭代数作为停止算法的标准 2)在给定数目的迭代内所发现的最好解无法改进或 者无法离开时,算法停止 3)最优解的目标函数小于指定误差 4)最优解的禁忌频率达到指定值
禁忌搜索算法的主要思路
1、在搜索中,构造一个短期循环记忆表-禁忌表,禁忌表中存放刚刚进行过的 |T|(T 称为禁忌表)个邻居的移动,这种移动即解的简单变化。
2、禁忌表中的移动称为禁忌移动。对于进入禁忌表中的移动, 在以后的 |T| 次循环 内是禁止的,以避免回到原来的解,从而避免陷入循环。|T| 次循环后禁忌解除。
禁忌搜索算法的步骤
例子: 四城市非对称TSP问题,
始,终点都为A
第一步,wk.baidu.com设禁忌长度为3
例子: 四城市非对称TSP问题,
始,终点都为A
第二步
例子: 四城市非对称TSP问题,
始,终点都为A
第三步
例子: 四城市非对称TSP问题,
始,终点都为A
第四步
例子: 四城市非对称TSP问题,
始,终点都为A
搜索陷入循环
在邻域中找到最好的解
加入禁忌表,避免进入循环
禁忌表长度为T:{ } 规则:不得接受与禁忌表中相同的解 禁忌表的变化: 第一步搜索时:{ } 第二步搜索时:{ ① } 第三步搜索时:{ ①,②} 第四步搜索时:{ ①,②,③} . . . . .
避免陷入循环原理:当解为④时,邻域最优解为①, 下一步原本应该为①,但禁忌表中存在①,所以选择 次好的⑤,从而避免循环
3、禁忌表是一个循环表,在搜索过程中被循环的修改,使禁忌表始终保持 |T| 个移 动。 4、即使引入了禁忌表,禁忌搜索仍可能出现循环。因此,必须给定停止准则以避免 出现循环。当迭代内所发现的最好解无法改进或无法离开它时,算法停止。
兔子们找到了泰山,它们之中的一只就会留守在这里,其他的 再去别的地方寻找。就这样,一大圈后,把找到的几个山峰一 比较,珠穆朗玛峰脱颖而出。 当兔子们再寻找的时候,一般地会有意识地避开泰山,因为他 们知道,这里已经找过,并且有一只兔子在那里看着了。这就 是禁忌搜索中“禁忌表(tabu list)”的含义。那只留在泰山 的兔子一般不会就安家在那里了,它会在一定时间后重新回到 找最高峰的大军,因为这个时候已经有了许多新的消息,泰山 毕竟也有一个不错的高度,需要重新考虑,这个归队时间,在 禁忌搜索里面叫做“禁忌长度(tabu length)”;如果在搜索 的过程中,留守泰山的兔子还没有归队,但是找到的地方全是 华北平原等比较低的地方,兔子们就不得不再次考虑选中泰山, 也就是说,当一个有兔子留守的地方优越性太突出,超过了 “best so far”的状态,就可以不顾及有没有兔子留守,都把 这个地方考虑进来,这就叫“特赦准则(aspiration criterion)”。。
若禁忌长度减少1,第四步
例子: 四城市非对称TSP问题,
始,终点都为A
第五步
例子: 四城市非对称TSP问题,
始,终点都为A
第六步
thanks
谢谢
相关文档
最新文档