三章禁忌搜索-文档资料

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章 禁忌搜索
1
第三章 禁忌搜索
一. 前言 二. 禁忌搜索 三. 算法举例 四. 短、中、长期表的使用 五.学习TS的几点体会
2
1. 问题描述
一.前言
min f (x) s.t. g(x) 0
x X
目标函数 约束条件 定义域
3
一.前言
2. 局域搜索
邻域的概念 ① 函数优化问题: 邻域(N(x))通常定义为在给定距离空间内,以一点 (x)为中心的一个球体。 ② 组合优化问题:
23
二.禁忌搜索
2. 构成要素
停止准则 ① 设定最大迭代次数 ② 得到满意解 ③ 设定某个对象的最大禁忌频率
24
二.禁忌搜索
3. 算法流程
Step 1
选一个初始点 x( x X ),令 x x,T ,
渴望水平 A(s, x) C(x*) ,迭代指标 k=0;
Step 2
ABCDE
13
一.前言
2. 局域搜索
示例 全邻域搜索 第2步 N(xbest)={(ACBDE),(ABCDE),(ADBCE),(AEBDC) ,(ACDBE),(ACEDB),(ACBED)}, 对应目标函数为f(x)={43, 45, 44, 59, 59, 58, 43}
xbest=(ACBDE)



[5 2 3 4 1] [1 2 3 5 4] [3 4 2 5 1]



10
一.前言
2. 局域搜索
算法流程
Step 1 选定一个初始可行解x0,记录当前最优解 xbest=x0, T=N(xbest);
Step 2 当T\{xbest}=Φ或满足其他停止运算准则时,停 止运算,输出计算结果;否则,转Step 3;
2. 构成要素
选择策略 选择策略的作用:保证TS具有跳出局优的能力 当前解x每一步总是移动到邻域N(x)中未被禁忌的最优 解,即若
C(sk x) Opt C(s x), s x N x \ T
则令 优解
x sk
( xs)k
(x)
,本次移动到邻域N(x)中未被禁忌的最
注意:移动的意义是灵活的,目的是便于搜索。
20
二.禁忌搜索
2. 构成要素
禁忌表 禁忌表(T表)的作用:防止搜索出现循环
① 将移动、移动分量或适值作为禁忌对象 ② 表的长度称为Tabu-Size,可以用来控制局域
搜索和广域搜索 ③ 表是动态更新的:把最新的解记入,最老的
解从表中释放(解禁)
21
二.禁忌搜索
[2 3 3 5 3] [2 3 2 5 3] [2 2 3 5 5]



[2 2 3 4 3] [2 2 2 5 3] [2 2 3 4 4]



9
练习
定义邻域移动为:2-opt 对顺序编码[4 2 3 5 1],下列编码是否在其邻域内:
[4 3 2 5 1] [4 3 5 1 2] [4 3 3 5 1]
结论:迭代已到5次,得到最优解
T表 1 1,7 2 4,5 3 2,4
x* 5 2 7 1 4 6 3 C(x*) 20
37
作业
小规模TSP问题
算法设置如下: 初始解为1-2-3-4-5; 评价函数为极小化巡回路程; 邻域移动方式为2-opt; 禁忌对象为邻域移动方式; T表长度设为3,NG设为5。
C x 20 x* x A(s, x) C(x*) 20
移动 Sx
7,1 4,3 6,3 5,4 2,6
……
C 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
16
一.前言
2. 局域搜索
优劣性 ① 通用易实现,易于理解 ② 搜索效果依赖于初始点和邻域结构,极易陷 入局优
为了获得好解,可以采用的策略有(1)扩大邻域结构, (2)变邻域结构,(3)多初始点。但这些策略依然无 法保证算法具备跳出局优的能力。
17
二.禁忌搜索
1. TS(Tabu Search)的提出
Step 3 从T中选一个集合S,得到S中的最好解xnow; 若 f (xnow)<f(xbest),则xbest= xnow,T=N(xbest); 否则,T=T\S,转Step 2。
若S=T,则称为全邻域搜索
11
一.前言
2. 局域搜索
示例 例:五个城市的对称TSP问题
初始解为xbest=(ABCDE),f(xbest)=45,定义邻域映射 为对换两个城市位置的2-opt,选定A城市为起点。
22
二.禁忌搜索
2. 构成要素
渴望水平 渴望水平A(s,x)是一个取决于s和x的值,若有
C sx As, x
成立,则s(x)不受T表限制。也就是说即使存在
s(x) T
x仍然可以移动到s(x)。 A(s,x)一般选取为历史上所能达到的最优函数值。
禁忌策略和渴望水平构成了TS的两大核心移动规则
N : x X N(x) 2X 且 x N (x),称为一个邻域映射,其中2X表示X
所有子集组成的集合。
N(x)称为x的邻域, y N (x) 称为x的一个邻居。
4
一.前言
2. 局域搜索
邻域的概念 例:TSP问题解的一种表示方法为D={x=(i1,i2,…,in)| i1,i2,…,in是1,2,…,n的排列},定义它的邻域映射为 2-opt,即x中的两个元素进行对换,N(x)中共包含x 的Cn2=n(n-1)/2个邻居和x本身。 例如:x=(1,2,3,4), 则C42=6,N(x)={(1,2,3,4), (2,1,3,4), (3,2,1,4), (4,2,3,1), (1,3,2,4), (1,4,3,2), (1,2,4,3)}
18
二.禁忌搜索
2. 构成要素
解的表达 ① 编码方法:用数学的形式来表示问题的解。 ② 初始解的产生:随机产生或者采用启发式方 法产生一个可行解。 ③ 评价函数C(x)的构造:往往直接将目标函数 f(x)作为评价函数。
19
二.禁忌搜索
2. 构成要素
邻域及邻域移动 ① 定义邻域移动s,例如,在函数优化问题中邻 域移动可以定义为给定步长和移动方向;在 组合优化问题中邻域移动可以定义为某种排 练序列置换。 ② 邻域是由当前解x及其通过定义的邻域移动能 够达到的所有解构成的集合。
移动 Sx
3,1 2,3 3,4 7,1 6,1
C x
2 1 -1 -2 -4
T表 1 4,5
2 3
…… ……
结论:交换1和3
33
三.算法举例
③ 迭代2 编码:2-4-7-1-5-6-3
C x 18 x* x A(s, x) C(x*) 18
移动 Sx
1,3 2,4 7,6 4,5 5,3
28
二.禁忌搜索
4. TS克服局优分析
从选优规则看 始终保持历史最优解,不以当前解为最优
从停止规则上看 不以最优判据为停止规则,而是指定最大迭代 步数为停止条件,这样不能保证最优性。
29
三.算法举例
1. 问题提出
由7层不同的绝缘材料构成的一种绝缘体,应如何排 列顺序,可获得最好的绝缘性能?
人类在选择过程中具有记忆功能,比如走迷宫 时,当发现有可能又回到某个地点的时候总会 有意识地避开先前选择的方向而选择其他的可 能性,这样就可以确定性的避开迂回搜索。
借鉴人类的智能思考特性,采用禁忌策略尽量 避免迂回搜索就构成了TS算法。
Glover在1977年提出TS。相对于LS,TS的优点 是能够通过接受劣解来逃离局优,在90年代初 开始受到广泛的关注。
C x
-2 -4 -6 -7 -9
若选择这项 C(x)=16,渴望水平 不能发生作用
T表 1 1,3 2 4,5
3
…… ……
结论:因交换1和3已在禁忌表中,故只能交换2和4 34
三.算法举例
④ 迭代3
编码:4-2-7-1-5-6-3
C x 14 A(s, x) C(x*) 18
14
一.前言
2. 局域搜索
优劣性 ① 通用易实现,易于理解 ② 搜索效果依赖于初始点和邻域结构,极易陷 入局优
x0 x0
15
一.前言
2. 局域搜索
优劣性 ① 通用易实现,易于理解 ② 搜索效果依赖于初始点和邻域结构,极易陷 入局优
为了获得好解,可以采用的策略有(1)扩大邻域结构, (2)变邻域结构,(3)多初始点。但这些策略依然无 法保证算法具备跳出局优的能力。
注:x存入T表中的第一个位置
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*
移动 Sx C x
因C(x)=20>A(s,x)=18,此时渴望水平 发生作用,破禁。交换4和5。
4,5
6
5,3
2
7,1
0
1,3
-3
2,6
-6
T表 1 2,4 2 1,3 3 4,5
…… ……
结论:因渴望水平发挥作用,交换4和5
35
三.算法举例
⑤ 迭代4 编码:5-2-7-1-4-6-3
5
一.前言
2. 局域搜索
邻域的概念 例: 解的邻域映射可由2-opt,推广到k-opt,即对k个元 素按一定规则互换。
邻域的构造依赖于解的表示,邻域的结构 在智能优化算法中起重要的作用。
6
练习
定义邻域移动为:位值+1或-1 对整数编码[2 2 3 5 3],下列编码是否在其邻域内:
[2 3 3 5 3] [2 3 2 5 3] [2 2 3 5 5] [2 2 3 4 3] [2 2 2 5 3] [2 2 3 4 4]
12
一.前言
2. 局域搜索
示例 全邻域搜索 第1步 N(xbest)={(ABCDE),(ACBDE),(ADCBE),(AECDB) ,(ABDCE),(ABEDC),(ABCED)}, 对应目标函数为f(x)={45, 43, 45, 60, 60, 59, 44}
xbest=xnow=(ACBDE)
30
三.算法举例
2. 算法设计
编码方式:顺序编码 初始解的产生:随机产生,如2-5-7-3-4-6-1 适值函数:极大化目标值 邻域移动方式:2-opt,即两两交换 其他参数:禁忌对象为邻域移动方式,T表长度
设为3,NG设为5
31
三.算法举例
① 初始表 初始编码:2-5-7-3-4-6-1

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) ;
若 N x \ T ,则停Leabharlann Baidu;否则令k=k+1;若
k>NG(其中NG为最大迭代次数),则停止;
注:N x \ T 表示非正常终止,造成的原因:
邻域小,T表长。正常设置为T表长度<邻域大小。 Step 2的作用是设置循环体出口。
25
二.禁忌搜索
3. 算法流程
Step 3

7
练习
定义邻域移动为:2-opt 对顺序编码[4 2 3 5 1],下列编码是否在其邻域内:
[4 3 2 5 1] [4 3 5 1 2] [4 3 3 5 1] [5 2 3 4 1] [1 2 3 5 4] [3 4 2 5 1]
8
练习
定义邻域移动为:位值+1或-1 对整数编码[2 2 3 5 3],下列编码是否在其邻域内:
注:Step 4的作用邻域选优
26
二.禁忌搜索
3. 算法流程
Step 5
若 C x C x ,令 x x ,C x C x, As, x C x ;
注:Step 5的作用更新历史最好解及渴望水平
Step 6 更新T表,转Step 2 ;
C x 10 x* x A(s, x) C(x*) 10 T
移动 Sx C x
5,4
6
7,4
4
3,6
2
2,3
0
4,1
-1
T表
1 2 3
…… ……
结论:交换4和5
32
三.算法举例
② 迭代1 编码:2-4-7-3-5-6-1
C x 16 x* x A(s, x) C(x*) 16
相关文档
最新文档