禁忌搜索算法ppt课件
第2章 禁忌搜索算法
![第2章 禁忌搜索算法](https://img.taocdn.com/s3/m/597e9e2db4daa58da0114a65.png)
2 . 2 禁忌搜索
• 是局部搜索算法的扩展 • 它的一个重要思想是标记已得到的局部最 优解或求解的过程,并在进一步的迭代中 避开这些局部最优解或过程.
例2 . 2 . 1四城市非对称TSP
距离矩阵
例2 . 2 . 1
• 假设初始解x0 =(ABCD ),目标值为f (x0)=4 • 邻域映射为两个城市顺序对换的2-opt • 始、终点都为A 城市,所以候选集中最多 有两两城市对换对3 个 • 分别对换城市顺序并按目标值由小到大排 列,三个评价值都劣于原值4 .此时已达到 局部最优解.
问题
( 6 )如何利用更多的信息? • 通过记录其他一些信息,如当前最好解, 一个被禁对象(交换)被禁的次数,评价 值的大小等,来提高算法的效率 • BC 或CB 出现的高频率反映出这对顺序交 换对目标值影响较大,在现有的禁忌条件 下对BC 的禁忌长度应该增加 ( 7 )终止原则怎样给出?
Hale Waihona Puke 禁忌搜索算法的特征上次
所有候选对换被禁
问题
( 1 )选择什么为禁忌的对象? 例2 . 2 .1禁忌的是城市顺序对换,是否会造成 求全局最优解的困难? ( 2 )禁忌的长度如何选取? • 禁忌长度短会造成循环,也就可能在一个局部最 优解附近循环 • 禁忌长度长会造成算法的记忆存储量增加,使得 算法计算时间增加,同时可能造成算法无法继续 计算下去 • 因此,必须权衡这对矛盾,确定禁忌长度
例2 . 3 . 4 第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 ) } • xnext= ( ABCED; 44 )
禁忌搜索
![禁忌搜索](https://img.taocdn.com/s3/m/a9dabf7127284b73f3425005.png)
禁忌长度:
禁忌表的大小
候选解:
利用当前解的邻域函数产生其所有(或若干) 邻域解,并从中确定若干候选解。 候选解集的确定是选择策略的关键,对算法 性能影响很大。
藐视准则:
当一个禁忌移动在随后T次的迭代内再度出现
时,如果它能把搜索带到一个从未搜索过的区域,
则应该接受该移动即破禁,不受禁忌表的限制。
4.迭代③ 编码:4-2-7-1-5-6-3
Cx 14, C x* 18
结论:因渴望水平发挥作用,交换在破禁 表中的4和5
5.迭代④ 编码:5-2-7-1-4-6-3
Cx C x* 20
结论:交换7和1
6.迭代⑤ 编码:5-2-1-7-4-6-3
Cx C x* 20
*
.更新T表,转步骤2
四、禁忌算法示例
问题:由七层不同的绝缘材料构成的一种绝 缘体,应如何排列顺序,可获得最好的绝 缘性能
编码方式:顺序编码
初始编码:2-5-7-3-4-6-1
目标值:极大化目标值 邻域定义:两两交换是一个邻 域移动 邻域大小:Tabu Size: 3 NG: 5
禁忌搜索
专业:物流工程 姓名:冯颖 学号:201322303100
一、禁忌搜索概述
二、禁忌搜索的重要参数与基本
原理 三、禁忌搜索的算法步骤 四、禁忌算法示例
一、概述
禁忌搜索(Tabu Search或Taboo Search,简称TS ) 的思想最早由Glover提出,它是对局部领域搜索的一 种扩展,是一种全局逐步寻优算法,是对人类智力过 程的一种模拟。TS算法通过引入一个灵活的存储结构 和相应的禁忌准则来避免迂回搜索,并通过藐视准则 来赦免一些被禁忌的优良状态,进而保证多样化的有 效搜索以最终实现全局优化。
禁忌搜索算法
![禁忌搜索算法](https://img.taocdn.com/s3/m/30c2f2c7a58da0116d17490f.png)
3 禁忌搜索的关键参数和操作
3.1 变化因素
目标值的变化
局部搜索主要依赖起点的选取和邻域的结构; 为了得到好的解,可以比较不同的邻域结构和不同 的初始点; 如果初始点的选择足够多,
总可以计算出全局最优解。
2 禁忌搜索
2.1 算法的背景
禁忌搜索算法(Tabu Search)是由美国 科罗拉多州大学的Fred Glover教授在 1986年左右提出来的,是一个用来跳出 局部最优的搜寻方法。在解决最优问题 上,一般区分为两种方式:一种是传统 的方法,另一种方法则是一些启发式搜 索算法。
4.5 T 3.5 T
2 禁忌搜索
2 禁忌搜索示例
四城市非对称TSP问题
第5步
解的形式 A D B C f(x4)=4.5 禁忌对象及长度 B A B 0 C 1 2 C D 候选解
对换 评价值
CD BC BD
7.5 T 8 ☻ 4.5 T
TS算法 框架
(1)是否有其他形式的候选集? (2)禁忌的长度如何确定?如果在算法中记忆下搜索到 的当前最优解,极端的两种情况是:一是将所有的对换 个数作为禁忌长度,此时等价于将候选集中的所有的对 换遍历;另外则取为1,这等价于局部搜索算法。 (3)是否有评价值的其他替代形式?有时计算目标值的 工作量较大,或无法接受计算目标值所花费的时间,于 是需要其他的方法。 (4)被禁的对换能否再一次解禁?有这样的直观现象, 当搜索到一个局部最优解后,它邻域中的其他状态都被 禁,我们是否解禁一些状态以便跳出局部最优?解禁的 功能就是为了获得更大的搜索范围,以免陷入局部最优 。 (5)如何利用更多的信息?在禁忌搜索算法中,还可记 录其他一些信息。如一个被禁对象(交换)被禁的次数 ,评价值变化的大小等。 (6)终止原则,即一个算法停止的条件,怎样给出?
遗传算法ppt
![遗传算法ppt](https://img.taocdn.com/s3/m/ac2d8964a98271fe910ef931.png)
现代优化算法-遗传算法
于是,得到第二代种群 S 2 :
s1 11001 25 , s2 01100 12 , s3 11011 27 , s4 10000 16
第二代种群 S2 中各染色体的情况如表 10-1 所示。 表 10-1 第二代种群 S2 中各染色体的情况 染色体 s1=11001 s2=01100 s3=11011 s4=10000 适应度 625 144 729 256 选择概率 积累概率 估计的选中次数 0.36 0.08 0.41 0.15 0.36 0.44 0.85 1.00 1 0 2 1
0, 1 二进制串。串的长度取决于求解的精度,例如假设解空间为[-1,
因为 221<3106<222,所以编码所用的二进制串至少需要 22 位。
2],求解精度
为保留六位小数,由于解空间[-1, 2]的长度为 3,则必须将该区间分为 3106 等分。
现代优化算法-遗传算法
(1) 采用 5 位二进制数编码染色体,将种群规模设定为 4,取下列个体组成初始 种群 S1 : s1 13(01101), s2 24(11000), s3 8(01000), s4 19(10011) (2) 定义适应度函数为目标函数 f x x 2 (3) 计算各代种群中的各个体的适应度, 并对其染色体进行遗传操作,直到适应 度最高的个体,即 31(11111)出现为止。迭代的过程为: 首先计算种群 S1 中各个体 si 的适应度 f si 如下。
f ( s1 ) f (13) 132 169; f ( s2 ) f (24) 24 2 576; f ( s3 ) f (8) 82 64; f ( s4 ) f (19) 19 2 61
禁忌搜索算法.pptx
![禁忌搜索算法.pptx](https://img.taocdn.com/s3/m/1dcae364ec3a87c24128c4ac.png)
候选集合
禁忌表
3,2
[1,4,2,5,3,1] f1=8
3-4
3,5
[1,4,5,3,2,1] f2=10
2-3
5,2
[1,4,3,2,5,1] f3=14
4,2
[1,2,3,5,4,1] f4=16
对x3交换3和2时最优f(x)=8,不满足藐视准则,且由于3-2已经在禁忌表中,因此 我们退而求其次选择f2=10对应的解,此时x4=[1,4,5,3,2,1] f(x4)=10,历史最优为5, 将5-3放入禁忌表中,由于禁忌长度为2,因此将最先放入禁忌表中的3-4移出禁忌 表。
[1,4,3,5,2,1] f4=5
对x2交换2和3时,5最优,此时x3=[1,4,3,5,2,1] f(x3)=5,历史最优为5,将2-3放入禁 忌表中
禁忌表
3-4
2-3
禁忌搜索算法(Tabu search)
x3=[1,4,3,5,2,1】 5(x3)=5,历史最优为5
邻域移动(交换中间两个城市)
禁忌表 3-5 2-3
参考教材和资料
彭扬, 伍蓓. 物流系统优化与仿真[M]. 中国物资出版社, 2007.
通过局部邻域搜索和相应 的禁忌准则来避免迂回搜 索,并通过特赦准则释放 被禁忌的优良状态。以保 证多样化的有效搜索,最
终实现全局最优化。
禁忌搜索算法的思想
禁忌搜索算法的思想
1
禁忌搜索算法的思想
2
1
5
4
3
禁忌搜索算法的思想
15 14 13
11 10
12 9
2
1
58
4 6
3
7
时间步 T=1
禁忌表 1、2、3、4、5
禁忌搜索算法ppt课件
![禁忌搜索算法ppt课件](https://img.taocdn.com/s3/m/7ef527bcb84ae45c3a358cb3.png)
个候选解?
的解替换当前解
用新的解替换 当前解;
否
找出下一个 次好的新解
更新tabulist NI=NI+1
NI=0 Intensification
n=n+1
否 NI=M?
是 Diversification
NI=0 是
n<N
否
25
End
判断是否为tabu, 决定接受与否
接受最好的候选解,并替换当前解
NI=0 是
n<N
否
21
End
求得初始解 BS=初始解
初始解
Sequence The length of the route
132456
28
BS
Sequence The length of the route
132456
28
22
Start
Tabu list 初始化(清空) 设M,N的值
求得初始解 BS=初始解
Sequence The length of the route
当前解 413256
30
Sequence The length of the route
BS
132456
28
Tabu list {41, },NI=1,n=1
26
Start
Tabu list 初始化(清空) 设M,N的值
求得初始解 BS=初始解
The length of the route
30
35
38
40
45
24
Start
Tabu list 初始化(清空) 设M,N的值
求得初始解 BS=初始解
n=0;NI=0
禁忌搜索课件
![禁忌搜索课件](https://img.taocdn.com/s3/m/d4c0144e02d8ce2f0066f5335a8102d276a261c4.png)
五.TS举例(8)
迭代5 编码:5-2-1-7-4-6-3
cx= =C20x
结论: 迭代已到5次,得到最优解
5-2-7-1-4-6-3和5-2-1-7-4-6-3
cx = Cx =20
第26页,共46页。
六.TS的中、长期表的使用(1)
引入中长期表的目的 改善TS的广域搜索能力,TS的局域搜索能力很 好,邻域选优快,但广域搜索能力较差。搜索 能力是TS的关键,采用中长期表可改善TS的广 域搜索能力。
数组元加上Tabu-Size;
T表的下半部分,用来记频数,每次(i,j)交换 (i<j),对应的((j,i)+1)来记忆频数。
第30页,共46页。
六.TS的中、长期表的使用(5) 频数表的优点:同一数组作为T表和频数表共同 使用,方便操作又节省了时间。
第31页,共46页。
六.TS的中、长期表的使用(6)
5,4 7,4 3,6 2,3 4,1
cx
6 4 2 0 -1
……
结论:交换4和5
……
T表
1 2 3
第21页,共46页。
五.TS举例(4)
迭代1 编码:2-4-7-3-5-6-1
cx= Cx =16
移动 Sx
3,1 2,3 3,4 7,1 6,1
……
结论:交换1和3
cx
2 1 -1 -2 -4 ……
若
S x T
停止,否则令
k
k
,若
1 k
NG
(其中NG为最大迭代数)停止;
注:邻S域x小 T,T表表长示。非正正常常设终置止为,(T造表成长的度原<邻因域:
大小)。步骤②的作用是设置循环体出口。
禁忌搜索算法
![禁忌搜索算法](https://img.taocdn.com/s3/m/059744056edb6f1aff001fb9.png)
无时限单向配送车辆优化调度问题的禁忌搜索算法无时限单向配送车辆优化调度问题,是指在制定配送路线时不考虑客户对货物送到(或取走)时间要求的纯送货(或纯取货)车辆调度问题。
无时限单向配送车辆优化调度问题可以描述为:从某配送中心用多台配送车辆向多个客户送货,每个客户的位置和需求量一定,每台配送车辆的载重量一定,其一次配送的最大行驶距离一定,要求合理安排车辆配送路线,使目标函数得到优化,并满足一下条件:(1)每条配送路径上各客户的需求量之和不超过配送车辆的载重量;(2)每条配送路径的长度不超过配送车辆一次配送的最大行驶距离;(3)每个客户的需求必须满足,且只能由一台配送车辆送货。
一、禁忌搜索算法的原理禁忌搜索算法是解决组合优化问题的一种优化方法。
该算法是局部搜索算法的推广,其特点是采用禁忌技术,即用一个禁忌表记录下已经到达过的局部最优点,在下一次搜索中,利用禁忌表中的信息不再或有选择地搜索这些点,以此来挑出局部最优点。
在禁忌搜索算法中,首先按照随机方法产生一个初始解作为当前解,然后在当前解的领域中搜索若干个解,取其中的最优解作为新的当前解。
为了避免陷入局部最优解,这种优化方法允许一定的下山操作(使解的质量变差)。
另外,为了避免对已搜索过的局部最优解的重复,禁忌搜索算法使用禁忌表记录已搜索的局部最优解的历史信息,这可在一定程度上使搜索过程避开局部极值点,从而开辟新的搜索区域。
二、算法要素的设计1.禁忌对象的确定禁忌对象是指禁忌表中被禁的那些变化元素。
由于解状态的变化可以分为解的简单变化、解向量分量的变化和目标值变化三种情况,则在确定禁忌对象时也有相对应的三种禁忌情况。
一般来说,对解的简单变化进行禁忌比另两种的受禁范围要小,因此可能早能造成计算时间的增加,但其优点是提供了较大的搜索范围。
根据配送车辆优化调度问题的特点,可采用对解的简单变化进行禁忌的方法。
举例进行说明:当解从x变化到y时,y可能是局部最优解,为了避开局部最优解,禁忌y这一解再度出现,可采用如下禁忌规则:当y的领域中有比它更优的解时,选择更优的解;当y为其领域的局部最优解时,不再选y,而选比y稍差的解。
禁忌搜索算法 (第6章)
![禁忌搜索算法 (第6章)](https://img.taocdn.com/s3/m/06943c50cf84b9d528ea7aad.png)
8.终止条件
(1)给定最大迭代步数,如N =10000.优点是易于 操作和控制计算时间,但无法保证解的质量. (2)给定当前的最好解保持不变的最大连续迭代次 数.如2500次. (3)设定目标值的偏离幅度.若ZLB为问题的下界, ε为给定的偏离幅度,则当f (x)-ZLB≤ε时,终止计 算. (4) 设定禁忌对象的最大禁忌频率.若某个禁忌对 象的禁忌频率超过给定的值,则终止计算.
6.2 TS的基本思想和步骤
算法的基本思想:给定一个当前解(初始解)和候 选解产生函数(邻域结构),然后在当前解的邻域 中确定若干候选解;若最佳候选解对应的目标值优 于到目前为止搜索到的“最好解”(best-sofar),则忽视其禁忌特性,用其替代当前解和 “最好解”;若不存在上述候选解,则在候选解集 中选择非禁忌的最佳候选解为新的当前解,而无视 它与当前解的优劣;两种情况下都将相应的对象加 入禁忌表,并修改禁忌表中各对象的任期;如此重 复上述迭代搜索过程,直到满足停止准则.
5.禁忌对象
被置入禁忌表中的那些变化元素.禁忌的目的是为 了尽量避免迂回搜索. (1)以整个解的变化为禁忌对象.当解状态由x变化到 解状态y时,将解y(或x→y的变化)视为禁忌对 象. (2)以解分量的变化为禁忌对象.如示例中的情形. (3)以目标值的变化作为禁忌对象.
6.禁忌表和禁忌长度
禁忌表(tabu list)是针对禁忌对象所设计的一种结 构,可以是一维或二维的. 禁忌长度t(tabu length)是禁忌对象的禁忌期,即 9 不允许再次被选取的迭代次数.每迭代一步,t减
11
TS求解过程演示
当前解 最好解 (best-so-far) 逐步减小
显示 总迭代次数 最好解保持 不变的连续 迭代次数 特点 累加 波动
第七讲 禁忌搜索.ppt
![第七讲 禁忌搜索.ppt](https://img.taocdn.com/s3/m/42c044bb240c844768eaee0b.png)
入禁忌表解被解禁退出。
4
禁忌表作用示例(1)
七种不同绝缘材料构 成一种绝缘体,如何 排列七种材料使得绝 缘效果最好?
绝缘效果以绝缘数值 表示,数值越大,效 果越好。
某次迭代后,材料的 排列顺序为2-4-7-3-56-1,交换各种材料对 绝缘效果的改善情况 见下表:
交换的材料 绝缘效果改善
1,3 2,3 3,4 1,7 1,6
2. 禁忌表的概念 禁忌表的作用:防止搜索出现循环 ① 记录前若干步走过的点、方向或目标值,禁
止返回 ② 表是动态更新的——把最新的解记入,最老
的解从表中释放(解禁)。 ③ 表的长度称为Tabu-Size,一般取5、 7 、
11,表长越大分散性越好。
31
二. TS的基本原理及步骤(5)
3. 邻域搜索规则 每一步移动到不在T表中的邻域中的最优解,即
-7
绝缘效果的影响见下 表。
3,5
-9
…
…
6
禁忌表作用示例(3)
上表看出,交换(1,3)对绝缘数值的降 低最小,但是交换后又回到以前的状态, 为避免回到上一次交换前的状态,采用禁 忌表。 所以,选择交换(2,4),是其它选择中 使绝缘数值降低最小的一对。 此禁忌表中存放的不是解,而是解的移动。 为实现全局搜索,往往设置渴望水平,若 一个移动达到渴望水平,能跳离局部最优, 该移动可以不受禁忌表的限制,称为破禁。
S x s s x ud, s X
邻域S x是邻域移动可达到的解的集合。
27
二. TS的基本原理及步骤(3)
邻域举例: x=[0,1,0,0,1,0,0] u=1, d=[0,0,1,0,0,0,0]
sx x ud 0,1,1,0,1,0,0
禁忌搜索算法教程ppt课件
![禁忌搜索算法教程ppt课件](https://img.taocdn.com/s3/m/31eecd98f7ec4afe04a1dffa.png)
;
9
一.导言
2. 局域搜索
➢ 示例 例:五个城市的对称TSP问题
初始解为xbest=(ABCDE),f(xbest)=45,定义邻域映射
为对换两个城市位置的2-opt,选定A城市为起点。
;
10
一.导言
2. 局域搜索
➢ 示例 方法:全邻域搜索 第1步 N(xbest)={(ABCDE),(ACBDE),(ADCBE),(AECDB) ,(ABDCE),(ABEDC),(ABCED)}, 对应目标函数为f(x)={45, 43, 45, 60, 60, 59, 44}
;
14
二.禁忌搜索
1. TS的提出
➢ 人类在选择过程中局优记忆功能,比如走迷宫 时,当发现有可能又回到某个地点的时候总会 有意识地避开先前选择的方向而选择其他的可 能性,这样就可以确定性的避开迂回搜索。
➢ 借鉴人类的智能思考特性,采用禁忌策略尽量 避免迂回搜索就构成了TS算法。
➢ Glover在1977年提出TS。相对于LS,TS的优点 是能够通过接受劣解来逃离局优,在90年代初 开始受到广泛的关注。
C(sk x) OptC(sx), sxN x \T
则令 x sk,(x本) 次移动到邻域N(x)中未被禁忌的最优解 sk (x)
;
19
二.禁忌搜索
2. 构成要素
➢ 渴望水平 渴望水平A(s,x)是一个取决于s和x的值,若有
/~glover/
;
15
二.禁忌搜索
2. 构成要素
➢ 解的表达 ① 编码方法:用数学的形式来表示问题的解。 ② 初始解的产生:随机产生或者采用启发式方 法产生一个可行解。 ③ 适值函数C(x)的构造:往往直接将目标函数 f(x)作为适值函数。
新编文档-三章禁忌搜索-精品文档
![新编文档-三章禁忌搜索-精品文档](https://img.taocdn.com/s3/m/bb52cd52af1ffc4ffe47aca1.png)
27
二.禁忌搜索
4. TS克服局优分析
从邻域搜索的方法看
sK x Opt s x, s x N x \ T
移向N(x)\T中最好的解,而不与当前解比较,
sK x 是 N(x)\T中的最好点,但 C sK x
可能劣于 C x*
C x 20 x* x A(s, x) C(x*) 20
x
0 -3 -5 -6 -8 ……
T表 1 4,5 2 2,4 3 1,3
结论:交换7和1
36
三.算法举例
⑥ 迭代5 编码:5-2-1-7-4-6-3
C(x) 20
且
C C
ssLL
x x
Opt A(s,
C x)
sx
,令 x
,s
x
sL (x)
N x
,转Step
5;
注:Step 3的作用破禁检查
Step 4
若 C sK x Opt C s x, s x N x \ T
,令 x sK (x) ;
18
二.禁忌搜索
2. 构成要素
解的表达 ① 编码方法:用数学的形式来表示问题的解。 ② 初始解的产生:随机产生或者采用启发式方 法产生一个可行解。 ③ 评价函数C(x)的构造:往往直接将目标函数 f(x)作为评价函数。
19
二.禁忌搜索
2. 构成要素
邻域及邻域移动 ① 定义邻域移动s,例如,在函数优化问题中邻 域移动可以定义为给定步长和移动方向;在 组合优化问题中邻域移动可以定义为某种排 练序列置换。 ② 邻域是由当前解x及其通过定义的邻域移动能 够达到的所有解构成的集合。
禁忌搜索算法
![禁忌搜索算法](https://img.taocdn.com/s3/m/c544df0f0b4e767f5acfce26.png)
邻域选优的规则模拟了人类的记忆功能,找过的地方都 记下来,不再找第二次。一定的迭代次数后,早期进入 禁忌表的解被解禁退出。
7.5T 8☻ 4.5T
四城市非对称TSP问题
第 6步
解的形式 A DCB f(x5)=8 禁忌对象及长度 B A C D 候选解
对换 评价值
B
2 C
0 1
CD BC BD
3.5T 4.5T 4☻
谢谢观赏
2、禁忌对象为目标值变化 3、禁忌对象为分量变化 解的简单变化比解的分量变化和目标值变化的受禁范围要小,可 能造成计算时间的增加,但也给予了较大的搜索范围; 解分量的变化和目标值变化的禁忌范围大,减少了计算时间,可 能导致陷在局部最优点。
禁忌长度的选取
禁忌长度过短,一旦陷入局部最优点,出现循环无法跳出; 禁忌长度过长,造成计算时间较大,也可能造成计算无法继续下去。
(2)动态频率信息:从一个解、对换或目标值到另一个解、对换或目标值的变化趋势。
终止规则
(1)确定步数终止,无法保证解的效果,应记录当前最优解; (2)频率控制原则,当某一个解、目标值或元素序列的频率超过 一个给定值时,终止计算; (3)目标控制原则,如果在一个给定步数内,当前最优值没有变 化,可终止计算。
B
C
CD BC BD
4.5☻ 7.5 8
四城市非对称TSP问题
第 2步
解的形式 A B DC f(x1)=4.5 禁忌对象及长度 B A C D 候选解
对换 评价值
禁忌搜索算法
![禁忌搜索算法](https://img.taocdn.com/s3/m/c07d77bcb4daa58da0114af4.png)
如relocation、exchange、2-opt等,产生候选解(candidate solution),并计算各个候选解的适应值(即解对应的目标函数 值)。
• ③ 选择最好的候选解
爬山算法(第三天)
• 使用禁忌搜索算法后,妈妈再也不用担心我找不到人家了,阿弥陀佛~上帝这次创建小 和尚时,倒了一点禁忌搜索(Tabu Search)算法。小和尚在半山腰时想再次尝试爬山, 他发现之前走的路被自己标记了“禁止通行”的路标(禁忌策略),故成功的完成了先 下后上的爬山过程,达到了更高的山峰。
2.1 什么是禁忌搜索算法?
• 禁忌搜索算法(Tabu Search Algorithm,简称TS)起源于对于人 类记忆功能的模仿,是一种元启发式算法(meta-heuristics)。它 从一个初始可行解(initial feasible solution)出发,试探一系列的 特定搜索方向(移动),选择让特定的目标函数值提升最多的移 动。为了避免陷入局部最优解,禁忌搜索对已经经历过的搜索 过程信息进行记录,从而指导下一步的搜索方向。
• (7)停止规则(Stop Criterion):禁忌搜索中停止规则的设计多种多样,如最大迭代数、 算法运行时间、给定数目的迭代内不能改进解或组合策略等等。
• 例题1 旅行商问题(TSP)
下面我们以TSP问题为例说明介绍这些组成部分:如下图所示,有5个 城市,任何两个城市之间的距离都是确定的,现要求一个旅行商从某城市 出发必须经过每个城市一次且仅有一次,最后回到出发的城市,问如何确 定一条最短的线路(每条边的长度已在图中标出)?
如上图所示,通过3中搜索算子搜索一次得到的候选解的集合即为当前 邻域。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
12
分散搜索(Diversification)和 集中搜索(Intensification)策略
• 集中搜索:如果当前搜索区域内发 现了比较好的解,如果进一步对当 前区域进行更集中的搜索,那么可 能会发现更多更好的解。
13
• 分散搜索策略(Diversification strategy)在当前 搜索区域内进行了一定次数的搜索了之后(如 25次),若不能发现更好的解,那么就执行分 散搜索策略。把tabu list清空,然后从一个新 的初始解开始搜索。
• 集中搜索:如果最好解的记录被更新,那么就 执行集中搜索策略,即清空tabu list. 这样可以 在当前区域进行更自由的搜索。
14
要设计一个禁忌搜索算法,需要确 定以下环节
1)初始解和适配值函数(目标函数); 2)邻域结构(如何生成相邻解)和禁忌对象(禁
忌表中的元素); 3)候选解选择; 4)禁忌表及其长度; 5)藐视准则 6)集中搜索和分散搜索策略 7)终止准则。 ’
9
禁忌表长度
太短:计算速度快,但容易陷入死循环 太长:计算速度慢
在搜索过程中,禁忌表长度设为固定 在搜索过程中,禁忌表长度可动态变化
禁忌表长度:5—10
10
藐视准则(Aspiration criterion)
如果找到了一个新的解比当前记录的最好 解还要好,那么即使从当前得到这个新的 解被tabu list禁止,仍然接受这个新的解, 并更新tabu list. 即tabu list对这个解没有禁 止作用
1的邻域
2
1
5
4的邻域
4
2的邻域 3
7
禁忌表的更新
更新原则:先进先出 {①, ②, ③} {②, ③, ④} {③ , ④, ⑤} ….
8
禁忌表中元素
禁忌表中元素的可以是完整的解,可以是完 整解的一部分,也可以是采取的一个生成相 邻解的动作等等
完整解:{12345,13245,31245} 生成相邻解的操作(如交换的动作): {32, 31} 从12345开始,取3出来,插入1245 每个位置前面
否
最好的新解比 是
BS好?
是
It’s in tabu?
n<N
否
17
End
City to city
1 2 3 4 5 6
TSP算例
1
2
3
4
5
6
12
4
7
9 10
11 20 13
8
6 17 13
6
9
15
Байду номын сангаас18
Start
Tabu list 初始化(清空) 设M,N的值
求得初始解 BS=初始解
n=0;NI=0
求得一系列候选解, 并按优劣排序
否
最好的新解比 是
BS好?
是
It’s in tabu?
否
接受新的解用新的 解替换当前解
是否为最后一 是 接受新的解;用新
个候选解?
的解替换当前解
用新的解替换 当前解;
否
找出下一个 次好的新解
更新tabulist NI=NI+1
NI=0 Intensification
n=n+1
否 NI=M?
是 Diversification
NI=0 是
• 相对于模拟退火和遗传算法,TS是又一种搜索特 点不同的算法。迄今为止,TS算法在组合优化、 生产调度、机器学习、电路设计和神经网络等领 域取得了很大的成功,近年来又在函数全局优化 方面得到较多的研究,并大有发展的趋势。
3
Tabu Search
• 特点 – Neighborhood search + memory • Neighborhood search • Memory –Record the search history –Forbid cycling search
禁忌搜索 Tabu Search
1
禁忌搜索概述
• 禁忌搜索(Tabu Search或Taboo Search, 简称TS)的思想最早由Glover(1986)提出, 它是对局部邻域搜索的一种扩展,是一种 全局逐步寻优算法,是对人类智力过程的 一种模拟。
2
禁忌搜索概述
• TS算法通过引入一个灵活的存储结构和相应的禁 忌准则来避免迂回搜索,并通过藐视准则来赦免 一些被禁忌的优良状态,进而保证多样化的有效 探索以最终实现全局优化。
15
变量定义:
n = 搜索次数
N = 搜索N 次,程序结束
NI =连续没有找到更好解的次数
M =连续M次没有找到更好解, 执行分散搜索策略
BS = 找到的最好的解
16
Start
Tabu list 初始化(清空) 设M,N的值
求得初始解 BS=初始解
n=0;NI=0
求得一系列候选解, 并按优劣排序
否
最好的候选 是
解比BS好?
是
It’s in tabu? 否
接受新的解用新的 解替换当前解
是否为最后一是 接受新的解;用新 用新的解替换
个候选解?
的解替换当前解 BS;
否
找出下一个 次好的新解
更新tabulist NI=NI+1
NI=0 Intensification
n=n+1
否 NI=M?
是 Diversification NI=0 是
假设记录生成相邻解的方法,Tabu list =
{②, ③, ④},下一步采用②方法生成了迄今
为止最好的解,仍然接受这个,更新Tabu
list={②, ③, ②},
11
分散搜索(Diversification)和 集中搜索(Intensification)策略
• 分散搜索:是为了对整个解的空间 进行更广泛的覆盖,而不是仅仅局 限在某个局部的区域。
4
搜索陷入循环
1的邻域
2
1
4的邻域
4
2的邻域 3
在邻域中找到最好的解 5
加入禁忌表,避免陷入循环
禁忌表长度为3:{①, ②, ③}
规则:不得接受与禁忌表中相同的解
禁忌表的变化:
第一步搜索时{
}
第二步搜索时{①
}
第三步搜索时{①, ②, }
第四步搜索时{①, ②, ③}
6
避免循环的原理:当前解为④时,其领域中 最好的解为①,原本下一步应为①,但其与 禁忌表中的元素相同,所以选择次好的解⑤, 从而避免死循环
n<N
否
19
End
Tabu list 初始化(清空)设M,N的值
• Tabu list { },长度为2。 记录从当前解生 成新的解的过程中,产生的新的相邻关系
• M=2 • N=4
20
Start
Tabu list 初始化(清空) 设M,N的值
求得初始解 BS=初始解
n=0;NI=0
求得一系列候选解, 并按优劣排序