47
禁禁禁禁禁禁 禁禁禁禁禁禁 Tabu Search 禁禁禁

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

  • Upload
    grady

  • View
    415

  • Download
    0

Embed Size (px)

DESCRIPTION

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

Citation preview

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

禁忌搜索算法禁忌搜索算法 ( Tabu Search )

吴浩博

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

1 局部搜索2 禁忌搜索1 算法的主要思路2 禁忌搜索示例

3 禁忌搜索的关键参数和操作3.1 变化因素3.2 禁忌表3.3 其他

4 禁忌搜索的实现与应用禁忌搜索的实现与应用4.1 4.1 图结点染色图结点染色

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

1 1 局部搜索局部搜索

n个城市的对称旅行商问题 简单易行,但无法保证全局最优性; 局部搜索主要依赖起点的选取和邻域的结构; 为了得到好的解,可以比较不同的邻域结构和

不同的初始点; 如果初始点的选择足够多, 总可以计算出全局最优解。

局部搜索示例局部搜索示例

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

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

2 2 禁忌搜索禁忌搜索 2.1 2.1 算法的背景算法的背景

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

2 2 禁忌搜索禁忌搜索 2.1 2.1 算法的背景算法的背景

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

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

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

2 2 禁忌搜索禁忌搜索 2.1 2.1 算法的背景算法的背景

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

2 2 禁忌搜索禁忌搜索

四城市非对称 TSP 问题

初始解 x0=(ABCD) , f(x0)=4 ,邻域映射为两个城市顺序对换的 2 - opt ,始、终点都是 A 城市。

2.2.2 2 禁忌搜索示例禁忌搜索示例

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

2 2 禁忌搜索禁忌搜索

四城市非对称 TSP 问题 第 1 步 解的形式 禁忌对象及长度

候选解

f(x0)=4

2.2.2 2 禁忌搜索示例禁忌搜索示例

A B C DB C D

A

B

C

对换 评价值CD 4.5

BC 7.5

BD 8

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

2 2 禁忌搜索禁忌搜索

四城市非对称 TSP 问题 第 2 步 解的形式 禁忌对象及长度

候选解

f(x1)=4.5

2.2 2.2 禁忌搜索示例禁忌搜索示例

A B D CB C D

A

B

C 3

对换 评价值CD 4.5

BC 3.5

BD 4.5

T

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

2 2 禁忌搜索禁忌搜索

四城市非对称 TSP 问题 第 3 步 解的形式 禁忌对象及长度

候选解

f(x2)=3.5

2.2 2.2 禁忌搜索示例禁忌搜索示例

A C D BB C D

A

B 3

C 2

对换 评价值CD 8

BC 4.5

BD 7.5☻

T

T

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

2 2 禁忌搜索禁忌搜索

四城市非对称 TSP 问题 第 4 步 解的形式 禁忌对象及长度

候选解

f(x3)=7.5

禁忌长度的选取

2.2 2.2 禁忌搜索示例禁忌搜索示例

A C B DB C D

A

B 2 3

C 1

对换 评价值CD 4.5

BC 4.5

BD 3.5

T

T

T

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

2 2 禁忌搜索禁忌搜索

四城市非对称 TSP 问题 第 4 步(如果减小禁忌长度) 解的形式 禁忌对象及长度

候选解

f(x3)=7.5

2.2 2.2 禁忌搜索示例禁忌搜索示例

A C B DB C D

A

B 1 2

C 0

对换 评价值CD 4.5

BC 4.5

BD 3.5

T

T

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

2 2 禁忌搜索禁忌搜索

四城市非对称 TSP 问题 第 5 步 解的形式 禁忌对象及长度

候选解

f(x4)=4.5

2 2 禁忌搜索示例禁忌搜索示例

A D B CB C D

A

B 0 1

C 2

对换 评价值CD 7.5

BC 8

BD 4.5

T

T

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

TS 算法 框架

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

(1) 是否有其他形式的候选集? (2) 禁忌的长度如何确定?如果在算法中记忆下搜索到

的当前最优解,极端的两种情况是:一是将所有的对换个数作为禁忌长度,此时等价于将候选集中的所有的对换遍历;另外则取为 1 ,这等价于局部搜索算法。

(3) 是否有评价值的其他替代形式?有时计算目标值的工作量较大,或无法接受计算目标值所花费的时间,于是需要其他的方法。

(4)被禁的对换能否再一次解禁?有这样的直观现象,当搜索到一个局部最优解后,它邻域中的其他状态都被禁,我们是否解禁一些状态以便跳出局部最优?解禁的功能就是为了获得更大的搜索范围,以免陷入局部最优。

(5) 如何利用更多的信息?在禁忌搜索算法中,还可记录其他一些信息。如一个被禁对象(交换)被禁的次数,评价值变化的大小等。

(6)终止原则,即一个算法停止的条件,怎样给出?

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

3 3 禁忌搜索的关键参数和操作禁忌搜索的关键参数和操作

禁忌表的主要指标(两项指标) 禁忌对象:禁忌表中被禁的那些变化元素 禁忌长度:禁忌的步数 状态变化(三种变化) 解的简单变化 解向量分量的变化 目标值变化

3.1 3.1 变化因素变化因素

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

3 3 禁忌搜索的关键参数和操作禁忌搜索的关键参数和操作

解的简单变化

3.1 3.1 变化因素变化因素

个解。是从一个解变化到另一

则简单解变化为优化问题的定义域,,其中,邻域映射为假设

)(

,

xNyx

DNDyx

这种变化最为简单,如从( ABCDE )变到( ABCED )

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

3 3 禁忌搜索的关键参数和操作禁忌搜索的关键参数和操作

向量分量的变化 设原有的解向量为 (x1, …, xi-1, xi, xi+1, …, xn) ,向

量分量的最基本变化为 (x1, …, xi-1, xi, xi+1,…, xn)→(x1, …, xi-1, yi, xi+1,…, xn)

即只有第 i个分量发生变化。 也包含多个分量变化的情形。

3.1 3.1 变化因素变化因素

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

3 3 禁忌搜索的关键参数和操作禁忌搜索的关键参数和操作

目标值的变化 目标值的变化隐含着解集合的变化。

3.1 3.1 变化因素变化因素

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

3 3 禁忌搜索的关键参数和操作禁忌搜索的关键参数和操作

禁忌对象的选取 情况 1 :禁忌对象为简单的解变化

禁忌长度为 4 ,从 2 - opt 邻域中选出最佳的 5

个解组成候选集 Can_N(xnow) ,初始解xnow=x0=(ABCDE) , f(x0)=45 , H={(ABCDE;45)} 。

3.2 3.2 禁忌表禁忌表

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

3 3 禁忌搜索的关键参数和操作禁忌搜索的关键参数和操作

禁忌对象的选取 情况 1 :禁忌对象为简单的解变化 第 1 步——

xnow=(ABCDE) , f(xnow)=45 , H={(ABCDE;45)}

Can_N(xnow)={(ACBDE;43) , (ABCDE;45) ,(ADCBE;45) , (ABEDC;59) , (ABCED;44)} 。

3.2 3.2 禁忌表禁忌表

xnext=(ACBDE)

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

3 3 禁忌搜索的关键参数和操作禁忌搜索的关键参数和操作

禁忌对象的选取 情况 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.2 3.2 禁忌表禁忌表

xnext=(ACBED)

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

3 3 禁忌搜索的关键参数和操作禁忌搜索的关键参数和操作

禁忌对象的选取 情况 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.2 3.2 禁忌表禁忌表

xnext=(ABCED)

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

3 3 禁忌搜索的关键参数和操作禁忌搜索的关键参数和操作

禁忌对象的选取 情况 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.2 3.2 禁忌表禁忌表

xnext=(AECBD)

此时 H 已达到 4 个解,新选入的解代替最早被禁的解

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

3 3 禁忌搜索的关键参数和操作禁忌搜索的关键参数和操作

禁忌对象的选取 情况 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.2 3.2 禁忌表禁忌表

xnext=(AEDBC)

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

3 3 禁忌搜索的关键参数和操作禁忌搜索的关键参数和操作

禁忌对象的选取 情况 2 :禁忌对象为分量变化

禁忌长度为 3 ,从 2 - opt 邻域中选出最佳的 5

个解组成候选集 Can_N(xnow) ,初始解xnow=x0=(ABCDE) , f(x0)=45 。

3.2 3.2 禁忌表禁忌表

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

3 3 禁忌搜索的关键参数和操作禁忌搜索的关键参数和操作

禁忌对象的选取 情况 2 :禁忌对象为分量变化 第 1 步——

xnow=(ABCDE) , f(xnow)=45 , H=Φ

Can_N(xnow)={(ACBDE;43) , (ADCBE;45) ,(AECDB;60) , (ABEDC;59) , (ABCED;44)} 。

3.2 3.2 禁忌表禁忌表

xnext=(ACBDE)

由于 H 为空集,从候选集中选最好的一个,它是 B 与C 的对换构成

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

3 3 禁忌搜索的关键参数和操作禁忌搜索的关键参数和操作

禁忌对象的选取 情况 2 :禁忌对象为分量变化 第 2 步——

xnow=(ACBDE) , f(xnow)=43 , H={(B,C)}

Can_N(xnow)={(ACBED;43) , (ADBCE;44) ,(ABCDE;45) , (ACEDB;58) , (AEBDC;59)} 。

3.2 3.2 禁忌表禁忌表

xnext=(ACBED)

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

3 3 禁忌搜索的关键参数和操作禁忌搜索的关键参数和操作

禁忌对象的选取 情况 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.2 3.2 禁忌表禁忌表

xnext=(AEBCD)

可以看出,情况 2 比情况 1 禁忌的范围要更大一些

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

3 3 禁忌搜索的关键参数和操作禁忌搜索的关键参数和操作

禁忌对象的选取 情况 3 :禁忌对象为目标值变化

禁忌长度为 3 ,从 2 - opt 邻域中选出最佳的 5

个解组成候选集 Can_N(xnow) ,初始解xnow=x0=(ABCDE) , f(x0)=45 。

3.2 3.2 禁忌表禁忌表

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

3 3 禁忌搜索的关键参数和操作禁忌搜索的关键参数和操作

禁忌对象的选取 情况 3 :禁忌对象为目标值变化 第 1 步——

xnow=(ABCDE) , f(xnow)=45 , H={45}

Can_N(xnow)={(ABCDE;45) , (ACBDE;43) ,(ADCBE;45) , (ABEDC;59) , (ABCED;44)} 。

3.2 3.2 禁忌表禁忌表

xnext=(ACBDE)

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

3 3 禁忌搜索的关键参数和操作禁忌搜索的关键参数和操作

禁忌对象的选取 情况 3 :禁忌对象为目标值变化 第 2 步——

xnow=(ACBDE) , f(xnow)=43 , H={45 , 43}

Can_N(xnow)={(ACBDE;43) , (ACBED;43) ,(ADBCE;44) , (ABCDE;45) , (ACEDB;58)} 。

3.2 3.2 禁忌表禁忌表

xnext=(ADBCE)

这种方法禁忌的范围更大

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

3 3 禁忌搜索的关键参数和操作禁忌搜索的关键参数和操作

禁忌对象的选取 解的简单变化比解的分量变化和目标值变化的受

禁范围要小,可能造成计算时间的增加,但也给予了较大的搜索范围;

解分量的变化和目标值变化的禁忌范围大,减少了计算时间,可能导致陷在局部最优点。

3.2 3.2 禁忌表禁忌表

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

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

],[ maxmin ttt

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

3 3 禁忌搜索的关键参数和操作禁忌搜索的关键参数和操作

禁忌长度的选取 禁忌长度过短,一旦陷入局部最优点,出现循

环无法跳出; 禁忌长度过长,造成计算时间较大,也可能造

成计算无法继续下去。

3.2 3.2 禁忌表禁忌表

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

3 3 禁忌搜索的关键参数和操作禁忌搜索的关键参数和操作

特赦(藐视)原则 ( 1 )基于评价值的规则,若出现一个解的目

标值好于前面任何一个最佳候选解,可特赦; ( 2 )基于最小错误的规则,若所有对象都被

禁忌,特赦一个评价值最小的解;

3.2 3.2 禁忌表禁忌表

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

3 3 禁忌搜索的关键参数和操作禁忌搜索的关键参数和操作

候选集合的确定 ( 1 )从邻域中选择若干目标值最佳的邻居入

选;( 2 )随机选取。

3.3 3.3 其他其他

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

3 3 禁忌搜索的关键参数和操作禁忌搜索的关键参数和操作

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

到评价函数; ( 2 )间接评价函数,构造其他评价函数替代

目标函数,应反映目标函数的特性,减少计算复杂性。

3.3 3.3 其他其他

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

3 3 禁忌搜索的关键参数和操作禁忌搜索的关键参数和操作

记忆频率信息 根据记忆的频率信息(禁忌次数等)来控制禁

忌参数(禁忌长度等)。 例如: 如果一个元素或序列重复出现或目标值变化很

小,可增加禁忌长度以避开循环; 如果一个最佳目标值出现频率很高,则可以终

止计算认为已达到最优值。

3.3 3.3 其他其他

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

3 3 禁忌搜索的关键参数和操作禁忌搜索的关键参数和操作

终止规则 ( 1 )确定步数终止,优点是易于操作和控制

时间,但无法保证解的效果,应记录当前最优解; ( 2 )频率控制原则,当某一个解、目标值或

元素序列的频率超过一个给定值时,终止计算; ( 3 )目标控制原则,如果在一个给定步数内,

当前最优值没有变化,同规则 2 ,可终止计算。

3.3 3.3 其他其他

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

禁忌算法的特征由禁忌对象和长度、候选集和评价函数、停止规则和一些计算信息组成

综合上面的讨论,给出了他们的选取禁忌对象,禁忌长度,特赦规则,候选集合,评价函数,终止规则

3 3 禁忌搜索的关键参数和操作禁忌搜索的关键参数和操作

3.3 3.3 其他其他

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

禁忌搜索算法:step1 选定一个初始解 xnow 及给以禁忌表 H等于空集;step2 若满足停止规则,停止计算;否则,在xnow 的邻域 N( H, xnow )中选出满足禁忌要求的候选集 Can_N(xnow) ;在 Can_N(xnow)中选一个评价值最佳的解 xnext, xnow:=xnest ;更新历史记录 H,重复 step2.

禁忌算法的 step2 中, xnow 的邻域N( H, xnow )中满足禁忌要求的元素包含两类:一类是那些没有被禁忌的元素,另一类是可以被解除禁忌的元素。

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

举一个参考文献 4 中的例子:给定一个无向图G ,其顶点集V={1,2, ···, n}, E是边集,求最少用几种颜色 k,使不同颜色的点间没有边相连。

求最小的 k,使( V1, ···Vk )是 V 的一个划分。

4 4 禁忌搜索的应用和实现禁忌搜索的应用和实现 4.1 4.1 图结点染色图结点染色

Page 44: 禁忌搜索算法 ( Tabu  Search ) 吴浩博
Page 45: 禁忌搜索算法 ( Tabu  Search ) 吴浩博

总结 与传统的优化算法相比, TS 算法的主要特点是: 1 .从移动规则看,每次只与最优点比较,而不与经过点比较,故可以爬出局部最优。

 2 .选优规则始终保持曾经达到的最优点,所以即使离开了全局最优点也不会失去全局最优性。

 3 .终止规则不以达到局部最优为终止规则,而以最大迭代次数、出现频率限制或者目标值偏离成都为终止规则

禁忌搜索是对人类思维过程本身的一种模拟,它通过对一些局部最优解的禁忌(也可以说是记忆)达到接纳一部分较差解,从而跳出局部搜索的目的。因而在计算搜索领域有着广泛应用。

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

参考文献

维基百科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.htmhttp://baike.baidu.com/view/1117099.htm

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

谢谢!