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