1 / 47

禁忌搜索算法 ( Tabu Search ) 吴浩博

禁忌搜索算法 ( Tabu Search ) 吴浩博. 1 局部搜索 2 禁忌搜索 1 算法的主要思路 2 禁忌搜索示例 3 禁忌搜索的关键参数和操作 3.1 变化因素 3.2 禁忌表 3.3 其他 4 禁忌搜索的实现与应用 4.1 图结点染色. 局部搜索示例. n 个城市的对称 旅行商问题 简单易行,但无法保证全局最优性; 局部搜索主要依赖起点的选取和邻域的结构; 为了得到好的解,可以比较不同的邻域结构和不同的初始点; 如果初始点的选择足够多,

grady
Download Presentation

禁忌搜索算法 ( Tabu Search ) 吴浩博

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 禁忌搜索算法 (Tabu Search) 吴浩博

  2. 1 局部搜索 2 禁忌搜索 1 算法的主要思路 2 禁忌搜索示例 3 禁忌搜索的关键参数和操作 3.1 变化因素 3.2 禁忌表 3.3 其他 4 禁忌搜索的实现与应用 4.1图结点染色

  3. 局部搜索示例 • n个城市的对称旅行商问题 简单易行,但无法保证全局最优性; 局部搜索主要依赖起点的选取和邻域的结构; 为了得到好的解,可以比较不同的邻域结构和不同的初始点; 如果初始点的选择足够多, 总可以计算出全局最优解。 1 局部搜索

  4. 2 禁忌搜索 2.1 算法的背景 • 禁忌搜索算法(Tabu Search)是由美国科罗拉多州大学的Fred Glover教授在1986年左右提出来的,是一个用来跳出局部最优的搜寻方法。在解决最优问题上,一般区分为两种方式:一种是传统的方法,另一种方法则是一些启发式搜索算法。

  5. 2.1 算法的背景 2 禁忌搜索 使用传统的方法,我们必须对每一个问题都去设计一套算法,相当不方便,缺乏广泛性,优点在于我们可以证明算法的正确性,我们可以保证找到的答案是最优的;而对于启发式算法,针对不同的问题,我们可以套用同一个架构来寻找答案,在这个过程中,我们只需要设计评价函数以及如何找到下一个可能解的函数等,所以启发式算法的广泛性比较高,但相对在准确度上就不一定能够达到最优,但是在实际问题中启发式算法那有着更广泛的应用。 

  6. 2 禁忌搜索 2.1 算法的背景 • 禁忌搜索是一种亚启发式随机搜索算法,它从一个初始可行解出发,选择一系列的特定搜索方向(移动)作为试探,选择实现让特定的目标函数值变化最多的移动。为了避免陷入局部最优解,TS搜索中采用了一种灵活的“记忆”技术,对已经进行的优化过程进行记录和选择,指导下一步的搜索方向。 TS是人工智能的一种体现,是局部领域搜索的一种扩展。禁忌搜索是在领域搜索的基础上,通过设置禁忌表来禁忌一些已经历的操作,并利用藐视准则来奖励一些优良状态,其中涉及邻域 、禁忌表、禁忌长度、候选解、藐视准则等影响禁忌搜索算法性能的关键因素。迄今为止,TS算法在组合优化等计算机领域取得了很大的成功,近年来又在函数全局优化方面得到较多的研究,并大有发展的趋势。

  7. 2.2 禁忌搜索示例 • 四城市非对称TSP问题 初始解x0=(ABCD),f(x0)=4,邻域映射为两个城市顺序对换的2-opt,始、终点都是A城市。 2 禁忌搜索

  8. 2.2 禁忌搜索示例 • 四城市非对称TSP问题 第1步 解的形式 禁忌对象及长度 候选解 f(x0)=4 2 禁忌搜索 ☻

  9. 2.2 禁忌搜索示例 • 四城市非对称TSP问题 第2步 解的形式 禁忌对象及长度 候选解 f(x1)=4.5 2 禁忌搜索 T ☻

  10. 2.2 禁忌搜索示例 • 四城市非对称TSP问题 第3步 解的形式 禁忌对象及长度 候选解 f(x2)=3.5 2 禁忌搜索 T T ☻

  11. 2.2 禁忌搜索示例 • 四城市非对称TSP问题 第4步 解的形式 禁忌对象及长度 候选解 f(x3)=7.5 禁忌长度的选取 2 禁忌搜索 T T T

  12. 2.2 禁忌搜索示例 • 四城市非对称TSP问题 第4步(如果减小禁忌长度) 解的形式 禁忌对象及长度 候选解 f(x3)=7.5 2 禁忌搜索 ☻ T T

  13. 2 禁忌搜索示例 • 四城市非对称TSP问题 第5步 解的形式 禁忌对象及长度 候选解 f(x4)=4.5 2 禁忌搜索 T ☻ T

  14. TS算法 框架

  15. (1)是否有其他形式的候选集? • (2)禁忌的长度如何确定?如果在算法中记忆下搜索到的当前最优解,极端的两种情况是:一是将所有的对换个数作为禁忌长度,此时等价于将候选集中的所有的对换遍历;另外则取为1,这等价于局部搜索算法。 • (3)是否有评价值的其他替代形式?有时计算目标值的工作量较大,或无法接受计算目标值所花费的时间,于是需要其他的方法。 • (4)被禁的对换能否再一次解禁?有这样的直观现象,当搜索到一个局部最优解后,它邻域中的其他状态都被禁,我们是否解禁一些状态以便跳出局部最优?解禁的功能就是为了获得更大的搜索范围,以免陷入局部最优。 • (5)如何利用更多的信息?在禁忌搜索算法中,还可记录其他一些信息。如一个被禁对象(交换)被禁的次数,评价值变化的大小等。 • (6)终止原则,即一个算法停止的条件,怎样给出?

  16. 3.1 变化因素 • 禁忌表的主要指标(两项指标) 禁忌对象:禁忌表中被禁的那些变化元素 禁忌长度:禁忌的步数 • 状态变化(三种变化) 解的简单变化 解向量分量的变化 目标值变化 3 禁忌搜索的关键参数和操作

  17. 3.1 变化因素 • 解的简单变化 3 禁忌搜索的关键参数和操作 这种变化最为简单,如从(ABCDE)变到(ABCED)

  18. 3.1 变化因素 • 向量分量的变化 设原有的解向量为(x1, …, xi-1, xi, xi+1, …, xn),向量分量的最基本变化为 (x1, …, xi-1, xi, xi+1,…, xn)→(x1, …, xi-1, yi, xi+1,…, xn) 即只有第i个分量发生变化。 也包含多个分量变化的情形。 3 禁忌搜索的关键参数和操作

  19. 3.1 变化因素 • 目标值的变化 目标值的变化隐含着解集合的变化。 3 禁忌搜索的关键参数和操作

  20. 3.2 禁忌表 • 禁忌对象的选取 情况1:禁忌对象为简单的解变化 禁忌长度为4,从2-opt邻域中选出最佳的5个解组成候选集Can_N(xnow),初始解xnow=x0=(ABCDE),f(x0)=45,H={(ABCDE;45)}。 3 禁忌搜索的关键参数和操作

  21. 3.2 禁忌表 • 禁忌对象的选取 情况1:禁忌对象为简单的解变化 第1步—— xnow=(ABCDE),f(xnow)=45,H={(ABCDE;45)} Can_N(xnow)={(ACBDE;43),(ABCDE;45),(ADCBE;45),(ABEDC;59),(ABCED;44)}。 3 禁忌搜索的关键参数和操作 xnext=(ACBDE)

  22. 3.2 禁忌表 • 禁忌对象的选取 情况1:禁忌对象为简单的解变化 第2步—— xnow=(ACBDE),f(xnow)=43,H={(ABCDE;45),(ACBDE;43)} Can_N(xnow)={(ACBDE;43),(ACBED;43),(ADBCE;44),(ABCDE;45),(ACEDB;58)}。 3 禁忌搜索的关键参数和操作 xnext=(ACBED)

  23. 3.2 禁忌表 • 禁忌对象的选取 情况1:禁忌对象为简单的解变化 第3步—— xnow=(ACBED),f(xnow)=43,H={(ABCDE;45),(ACBDE;43) ,(ACBED;43)} Can_N(xnow)={(ACBED;43),(ACBDE;43),(ABCED;44),(AEBCD;45),(ADBEC;58)}。 3 禁忌搜索的关键参数和操作 xnext=(ABCED)

  24. 3.2 禁忌表 • 禁忌对象的选取 情况1:禁忌对象为简单的解变化 第4步—— xnow=(ABCED),f(xnow)=44,H={(ABCDE;45),(ACBDE;43) ,(ACBED;43) ,(ABCED;44)} Can_N(xnow)={(ACBED;43),(AECBD;44),(ABCDE;45),(ABCED;44),(ABDEC;58)}。 3 禁忌搜索的关键参数和操作 xnext=(AECBD) 此时H已达到4个解,新选入的解代替最早被禁的解

  25. 3.2 禁忌表 • 禁忌对象的选取 情况1:禁忌对象为简单的解变化 第5步—— xnow=(AECBD),f(xnow)=44,H={(ACBDE;43) ,(ACBED;43) ,(ABCED;44) ,(AECBD;44)} Can_N(xnow)={(AEDBC;43),(ABCED;44),(AECBD;44),(AECDB;44),(AEBCD;45)}。 3 禁忌搜索的关键参数和操作 xnext=(AEDBC)

  26. 3.2 禁忌表 • 禁忌对象的选取 情况2:禁忌对象为分量变化 禁忌长度为3,从2-opt邻域中选出最佳的5个解组成候选集Can_N(xnow),初始解xnow=x0=(ABCDE),f(x0)=45。 3 禁忌搜索的关键参数和操作

  27. 3.2 禁忌表 • 禁忌对象的选取 情况2:禁忌对象为分量变化 第1步—— xnow=(ABCDE),f(xnow)=45,H=Φ Can_N(xnow)={(ACBDE;43),(ADCBE;45),(AECDB;60),(ABEDC;59),(ABCED;44)}。 3 禁忌搜索的关键参数和操作 xnext=(ACBDE) 由于H为空集,从候选集中选最好的一个,它是B与C的对换构成

  28. 3.2 禁忌表 • 禁忌对象的选取 情况2:禁忌对象为分量变化 第2步—— xnow=(ACBDE),f(xnow)=43,H={(B,C)} Can_N(xnow)={(ACBED;43),(ADBCE;44),(ABCDE;45),(ACEDB;58),(AEBDC;59)}。 3 禁忌搜索的关键参数和操作 xnext=(ACBED)

  29. 3.2 禁忌表 • 禁忌对象的选取 情况2:禁忌对象为分量变化 第3步—— xnow=(ACBED),f(xnow)=43,H={(B,C),(D,E)} Can_N(xnow)={(ACBDE;43),(ABCED;44),(AEBCD;45),(ADBEC;58),(ACEBD;58)}。 3 禁忌搜索的关键参数和操作 xnext=(AEBCD) 可以看出,情况2 比情况1禁忌的范围要更大一些

  30. 3.2 禁忌表 • 禁忌对象的选取 情况3:禁忌对象为目标值变化 禁忌长度为3,从2-opt邻域中选出最佳的5个解组成候选集Can_N(xnow),初始解xnow=x0=(ABCDE),f(x0)=45。 3 禁忌搜索的关键参数和操作

  31. 3.2 禁忌表 • 禁忌对象的选取 情况3:禁忌对象为目标值变化 第1步—— xnow=(ABCDE),f(xnow)=45,H={45} Can_N(xnow)={(ABCDE;45),(ACBDE;43),(ADCBE;45),(ABEDC;59),(ABCED;44)}。 3 禁忌搜索的关键参数和操作 xnext=(ACBDE)

  32. 3.2 禁忌表 • 禁忌对象的选取 情况3:禁忌对象为目标值变化 第2步—— xnow=(ACBDE),f(xnow)=43,H={45,43} Can_N(xnow)={(ACBDE;43),(ACBED;43),(ADBCE;44),(ABCDE;45),(ACEDB;58)}。 3 禁忌搜索的关键参数和操作 xnext=(ADBCE) 这种方法禁忌的范围更大

  33. 3.2 禁忌表 • 禁忌对象的选取 解的简单变化比解的分量变化和目标值变化的受禁范围要小,可能造成计算时间的增加,但也给予了较大的搜索范围; 解分量的变化和目标值变化的禁忌范围大,减少了计算时间,可能导致陷在局部最优点。 3 禁忌搜索的关键参数和操作

  34. 3.2 禁忌表 3 禁忌搜索的关键参数和操作

  35. 3.2 禁忌表 • 禁忌长度的选取 禁忌长度过短,一旦陷入局部最优点,出现循环无法跳出; 禁忌长度过长,造成计算时间较大,也可能造成计算无法继续下去。 3 禁忌搜索的关键参数和操作

  36. 3.2 禁忌表 • 特赦(藐视)原则 (1)基于评价值的规则,若出现一个解的目标值好于前面任何一个最佳候选解,可特赦; (2)基于最小错误的规则,若所有对象都被禁忌,特赦一个评价值最小的解; 3 禁忌搜索的关键参数和操作

  37. 3.3 其他 • 候选集合的确定 (1)从邻域中选择若干目标值最佳的邻居入选; (2)随机选取。 3 禁忌搜索的关键参数和操作

  38. 3.3 其他 • 评价函数 (1)直接评价函数,通过目标函数的运算得到评价函数; (2)间接评价函数,构造其他评价函数替代目标函数,应反映目标函数的特性,减少计算复杂性。 3 禁忌搜索的关键参数和操作

  39. 3.3 其他 • 记忆频率信息 根据记忆的频率信息(禁忌次数等)来控制禁忌参数(禁忌长度等)。 例如: 如果一个元素或序列重复出现或目标值变化很小,可增加禁忌长度以避开循环; 如果一个最佳目标值出现频率很高,则可以终止计算认为已达到最优值。 3 禁忌搜索的关键参数和操作

  40. 3.3 其他 • 终止规则 (1)确定步数终止,优点是易于操作和控制时间,但无法保证解的效果,应记录当前最优解; (2)频率控制原则,当某一个解、目标值或元素序列的频率超过一个给定值时,终止计算; (3)目标控制原则,如果在一个给定步数内,当前最优值没有变化,同规则2,可终止计算。 3 禁忌搜索的关键参数和操作

  41. 3 禁忌搜索的关键参数和操作 3.3 其他 • 禁忌算法的特征由禁忌对象和长度、候选集和评价函数、停止规则和一些计算信息组成 • 综合上面的讨论,给出了他们的选取 禁忌对象,禁忌长度,特赦规则,候选集合,评价函数,终止规则

  42. 禁忌搜索算法: • step1 选定一个初始解xnow及给以禁忌表H等于空集; • step2 若满足停止规则,停止计算;否则,在xnow的邻域N(H,xnow)中选出满足禁忌要求的候选集Can_N(xnow);在Can_N(xnow)中选一个评价值最佳的解xnext,xnow:=xnest;更新历史记录H,重复step2. 禁忌算法的step2中,xnow的邻域N(H,xnow)中满足禁忌要求的元素包含两类:一类是那些没有被禁忌的元素,另一类是可以被解除禁忌的元素。

  43. 4 禁忌搜索的应用和实现 4.1 图结点染色 • 举一个参考文献4中的例子: 给定一个无向图G,其顶点集V={1,2,···,n},E是边集,求最少用几种颜色k,使不同颜色的点间没有边相连。 求最小的k,使(V1,···Vk)是V的一个划分。

  44. 总结 与传统的优化算法相比,TS算法的主要特点是: 1.从移动规则看,每次只与最优点比较,而不与经过点比较,故可以爬出局部最优。 2.选优规则始终保持曾经达到的最优点,所以即使离开了全局最优点也不会失去全局最优性。 3.终止规则不以达到局部最优为终止规则,而以最大迭代次数、出现频率限制或者目标值偏离成都为终止规则 禁忌搜索是对人类思维过程本身的一种模拟,它通过对一些局部最优解的禁忌(也可以说是记忆)达到接纳一部分较差解,从而跳出局部搜索的目的。因而在计算搜索领域有着广泛应用。

  45. 参考文献 • 维基百科 http://en.wikipedia.org/wiki/Tabu_search • 现代优化计算方法 清华大学出版社 • 陈丽 禁忌搜索算法的研究及其在TSP的应用 2010 • Hertz A, de Werra D.The Tabu Search metaheuristics:how we use it . Annals of Mathematics and Atrifical Intelligence,1990,1:111~121 • 百度百科 http://baike.baidu.com/view/354708.htm http://baike.baidu.com/view/1117099.htm

  46. 谢谢!

More Related