230 likes | 1.13k Views
Tabu Search. 基于 Tabu Search 的特征选择 -- 卢俊. Outline. Tabu Search 简介 Tabu Search 流程图 Tabu Search 范例 Demo Conclusion. Tabu Search. Tabu Search( 禁忌算法 ) 是一种启发式的寻优算法。由 Glover 提出,运用 Tabu List 这种记忆结构表,来避免搜索过程的重复,在搜索了较小的解空间后获得较优的解。 Tabu Search 有一个隐含的假设:一个解的邻域往往存在性能更好的解. Tabu Search 六大要素.
E N D
Tabu Search 基于Tabu Search的特征选择 -- 卢俊
Outline • Tabu Search 简介 • Tabu Search 流程图 • Tabu Search 范例Demo • Conclusion
Tabu Search • Tabu Search(禁忌算法)是一种启发式的寻优算法。由Glover提出,运用Tabu List这种记忆结构表,来避免搜索过程的重复,在搜索了较小的解空间后获得较优的解。 • Tabu Search有一个隐含的假设:一个解的邻域往往存在性能更好的解
Tabu Search 六大要素 • 起始解(Starting Solution) • 禁忌列表 (Tabu List) • 表越长搜索的范围就越广泛,获得较好解的概率就大,不过增加了存储的空间,和计算量 • 激活规则(Aspiration Criterion) 用来激活Tabu List中的移步,当这个移步在禁忌限制中,但是优越于目前的最佳解的时候,激活规制会直接探索此解。
候选名单(Candidate list) • 为通过领域生成的所有合法的移步,扣除了所有的Tabu List中的移步,加上了由激活规则释放的移步的集合 • 其中邻域的生成会影响到算法的性能 • 候选解的数量会影响到算法的性能
移步(move) • 搜索停止规则 • 运算次数达到所设定的最大迭代次数 • 无法优于现在的最优解的运算次数达到设定的最大失败次数 • 预设可接受的目标值
迭代次数i=1,最优解Xg=4 令迭代步数i=1,Tabulist=NULL,终止条件为i=10 初始设置Xg=X=x9 X插入Tabulist X的邻域候选集合N=(x6,x8)
迭代次数i=2,Xg=6 从N中选出了最优解xn=x6 而且xn不属于Tabulist,X=xn,并且X的性能比Xg好,Xg=X,把X添加入Tabulist N=(x5,x3,x9,x11)
迭代次数i=3,最优解Xg=6 从N中选出了最优解xn=x11,x11不属于Tabulist,X=x11,把X加入Tabulist N=(x10,x6,x13)
迭代次数i=4,最优解Xg=7 从N中选出最优解xn=x13,xn不属于Tabulist,令X=xn,并且X的性能比Xg好,更新Xg=X,X加入Tabulist N=(x12,x7,x11)
迭代次数i=5,最优解Xg=7 从N中选出了最优解Xn=x11,并且xn属于Tabulist,但是不满足激活条件的时候,更新N N=(x12,x7)
迭代次数i=6,最优解Xg=7 从N中选择最优解xn=x12,并且xn不属于Tabulist,X=xn,把X加入Tabulist中 N=(x13,x10)
迭代次数i=7,最优解Xg=7 从N中选择出最优解xn=x13,但是xn属于Tabulsit,不过不满足激活条件,更新N N=(x10)
迭代次数i=8,最优解Xg=7 从N中选出最优解x10,xn=x10,并且xn不属于Tabulist,不过Tabulist也满了,释放最早进入的x9,更新Tabulist N=(x13,x8,x12)
迭代次数i=9,最优解Xg=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 N=(x4,x9,x10)
迭代次数i=10,Xg=7 从N中选择最优解xn=x9 xn不属于Tabulist,更新Tabulist,X=xn
此时,迭代次数i=10等于终止条件,打印出结果Xg=7,退出此时,迭代次数i=10等于终止条件,打印出结果Xg=7,退出
Conclusion • 为了找到“全局最优解”,就不应该执着于某一个特定的区域。局部搜索的缺点就是太贪婪地对某一个局部区域以及其邻域搜索,导致一叶障目,不见泰山。禁忌搜索就是对于找到的一部分局部最优解,有意识地避开它(但不是完全隔绝),从而获得更多的搜索区间