19
1 Tabu Search 基基 Tabu Search 基基基基基 -- 基基

Tabu Search

  • Upload
    alvaro

  • View
    277

  • Download
    4

Embed Size (px)

DESCRIPTION

Tabu Search. 基于 Tabu Search 的特征选择 -- 卢俊. Outline. Tabu Search 简介 Tabu Search 流程图 Tabu Search 范例 Demo Conclusion. Tabu Search. Tabu Search( 禁忌算法 ) 是一种启发式的寻优算法。由 Glover 提出,运用 Tabu List 这种记忆结构表,来避免搜索过程的重复,在搜索了较小的解空间后获得较优的解。 Tabu Search 有一个隐含的假设:一个解的邻域往往存在性能更好的解. Tabu Search 六大要素. - PowerPoint PPT Presentation

Citation preview

Page 1: Tabu Search

1

Tabu Search

基于 Tabu Search的特征选择 -- 卢俊

Page 2: Tabu Search

2

Outline

Tabu Search 简介 Tabu Search 流程图 Tabu Search 范例 Demo Conclusion

Page 3: Tabu Search

3

Tabu Search

Tabu Search(禁忌算法 ) 是一种启发式的寻优算法。由 Glover提出,运用Tabu List这种记忆结构表,来避免搜索过程的重复,在搜索了较小的解空间后获得较优的解。

Tabu Search有一个隐含的假设:一个解的邻域往往存在性能更好的解

Page 4: Tabu Search

4

Tabu Search 六大要素 起始解( Starting Solution) 禁忌列表 (Tabu List)

表越长搜索的范围就越广泛,获得较好解的概率就大,不过增加了存储的空间,和计算量 激活规则( Aspiration Criterion) 用来激活 Tabu List中的移步,当这个移步在禁忌限制中,但是优越于目前的最佳解的时候,激活规制会直接探索此解。

Page 5: Tabu Search

5

候选名单 (Candidate list) 为通过领域生成的所有合法的移步,扣除了所有的 Tabu List中的移步,加上了由激活规则释放的移步的集合 其中邻域的生成会影响到算法的性能 候选解的数量会影响到算法的性能

Page 6: Tabu Search

6

移步( move) 搜索停止规则

运算次数达到所设定的最大迭代次数 无法优于现在的最优解的运算次数达到设定的最大失败次数 预设可接受的目标值

Page 7: Tabu Search

7

Tabu 流程图开始

设定初始解为最优解

候选名单:通过领域构造选出候次最

佳解

是否存在在tabulist?

进行移步

是否符合激活规则

更新tabulist

是否优于现在的最佳解?

更新现在的最佳解

是否符合终止条件?

输出结果

结束

激活

Page 8: Tabu Search

8

X1=1

X5=5

X3=3

X4=1

X6=6

X7=1

X8=3

X9=4

X11=5

X12=4

X2=2

X10=2

X13=7

令迭代步数i=1, Tabulist=NULL,终止条件为 i=10

初始设置 Xg=X=x9X 插入 Tabulist

X9

Tabulist

X 的邻域候选集合N=(x6,x8)

迭代次数 i=1,最优解 Xg=4

Page 9: Tabu Search

9

X1=1

X5=5

X3=3

X4=1

X6=6

X7=1

X8=3

X9=4

X11=5

X12=4

X2=2

X10=2

X13=7

从 N 中选出了最优解xn=x6

而且 xn不属于Tabulist, X=xn,并且 X 的性能比 Xg好, Xg=X,把 X 添加入Tabulist

X9

X6

Tabulist

N=(x5,x3,x9,x11)

迭代次数 i=2, Xg=6

Page 10: Tabu Search

10

X1=1

X5=5

X3=3

X4=1

X6=6

X7=1

X8=3

X9=4

X11=5

X12=4

X2=2

X10=2

X13=7

从 N 中选出了最优解xn=x11 , x11不属于Tabulist , X=x11,把 X 加入 Tabulist

x9

x6

x11

N=(x10,x6,x13)

迭代次数 i=3,最优解Xg=6

Page 11: Tabu Search

11

X1=1

X5=5

X3=3

X4=1

X6=6

X7=1

X8=3

X9=4

X11=5

X12=4

X2=2

X10=2

X13=7

从 N 中选出最优解xn=x13, xn不属于Tabulist,令 X=xn,并且X 的性能比 Xg好,更新 Xg=X,X 加入 Tabulist

x9

x6

x11

x13

Tabulist

N=(x12,x7,x11)

迭代次数 i=4,最优解Xg=7

Page 12: Tabu Search

12

X1=1

X5=5

X3=3

X4=1

X6=6

X7=1

X8=3

X9=4

X11=5

X12=4

X2=2

X10=2

X13=7

从 N 中选出了最优解Xn=x11,并且 xn属于Tabulist,但是不满足激活条件的时候,更新 N

N=(x12,x7)

x9

x6

x11

x13

Tabulist

迭代次数 i=5,最优解Xg=7

Page 13: Tabu Search

13

X1=1

X5=5

X3=3

X4=1

X6=6

X7=1

X8=3

X9=4

X11=5

X12=4

X2=2

X10=2

X13=7

从 N 中选择最优解xn=x12,并且 xn不属于 Tabulist, X=xn,把 X 加入 Tabulist中

X9

x6

x11

x13

x12

N=( x13, x10)

迭代次数 i=6,最优解Xg=7

Page 14: Tabu Search

14

X1=1

X5=5

X3=3

X4=1

X6=6

X7=1

X8=3

X9=4

X11=5

X12=4

X2=2

X10=2

X13=7

从 N 中选择出最优解 xn=x13,但是 xn属于 Tabulsit,不过不满足激活条件,更新 N

N=( x10)X9

x6

x11

x13

x12

迭代次数 i=7,最优解Xg=7

Page 15: Tabu Search

15

X1=1

X5=5

X3=3

X4=1

X6=6

X7=1

X8=3

X9=4

X11=5

X12=4

X2=2

X10=2

X13=7

从 N 中选出最优解x10,xn=x10,并且 xn不属于 Tabulist,不过Tabulist也满了,释放最早进入的 x9,更新Tabulist

x6

x11

x13

x12

x10

Tabulist

N=( x13, x8, x12 )

迭代次数 i=8,最优解Xg=7

Page 16: Tabu Search

16

X1=1

X5=5

X3=3

X4=1

X6=6

X7=1

X8=3

X9=4

X11=5

X12=4

X2=2

X10=2

X13=7

从 N 中选出最优解 xn=x13,不过xn属于 Tabulist,更新 N=N-xn=( x8, x12)从 N 中选出最优解 xn=x12,不过xn属于 Tabulist,更新 N=N-xn=( x8)从 N 选择出最优解 xn=x8, xn不属于 Tabulist, X=xn,插入Tabulist

x11

x13

x12

x10

x8

Tabulist

N=(x4,x9,x10)

迭代次数 i=9,最优解Xg=7

Page 17: Tabu Search

17

x11

x13

x10

x8

x9

Tabulist

从 N 中选择最优解 xn=x9

xn不属于 Tabulist,更新 Tabulist, X=xn

X1=1

X5=5

X3=3

X4=1

X6=6

X7=1

X8=3

X9=4

X11=5

X12=4

X2=2

X10=2

X13=7

迭代次数 i=10, Xg=7

Page 18: Tabu Search

18

此时,迭代次数 i=10等于终止条件,打印出结果 Xg=7,退出

Page 19: Tabu Search

19

Conclusion

为了找到“全局最优解”,就不应该执着于某一个特定的区域。局部搜索的缺点就是太贪婪地对某一个局部区域以及其邻域搜索,导致一叶障目,不见泰山。禁忌搜索就是对于找到的一部分局部最优解,有意识地避开它(但不是完全隔绝),从而获得更多的搜索区间