1、局域搜索与随机搜索,概要,爬山法随机搜索模拟退火法局域射线搜索遗传算法,搜索问题,已知:一个状态(或构形)集:S=X1,XM,一个评估每个状态的函数:Eval(X).求解:寻找全域极值:寻找X*使得Eval(X*)比所有其它Eval(Xi)都更大,Xi是所有可能的值。,实例,超大规模集成电路(VLSI)布局图:X=组件放置+连接路由Eval=组件间距离+没用的组件%+路由长度,放置铺设安排信道路由封装,实例,调度:已知m个机器,n个任务X=给机器的任务安排Eval=这n个任务完成时间的极小化其它:车辆路由、设计、处理排序、,任务,机器,时间,挑战性,感兴趣的问题:构形集太大,不能显式列举。计算
2、Eval(.)可能很昂贵。没有用来寻找Eval(.)极大值的有效算法。对于要解决的问题,Eval(.)值相似的解被认为是等同的。不关心怎样得到X*,仅关心对X*构形的描述。这是与以前介绍的搜索问题的一个关键不同。,实例:旅行推销商问题(TSP),寻找一个经过每个结点一次,且长度最小的旅行路线。,Eval(X1)Eval(X2),X1=1,2,5,3,6,7,4,X2=1,2,5,4,7,6,3,实例:旅行推销商问题(TSP),构形X=经过结点1,N的旅行Eval=由1,N的一个排列来定义的路径长度寻找X*来实现Eval(X)的极小。搜索空间尺寸=(N-1)!/2量级。注意:N为几十万时,搜索空
3、间是巨大的。,Eval(X1)Eval(X2),X1=1,2,5,3,6,7,4,X2=1,2,5,4,7,6,3,实例:可满足性问题(SAT),命题逻辑(布尔代数):ABCACDBDECDEACE,实例:可满足性问题(SAT),ABCACDBDECDEACE,构形X=有N个布尔变量值的矢量。Eval(X)=在已知X值的条件下,可满足的句子数。寻找X*来使Eval(X)极大。搜索空间尺寸=2N。注意:变量和句子上千时,搜索空间是巨大的。,实例:N个皇后,寻找一个构形,使得没有一个皇后能攻击其她任何一个皇后。,EVAL(X)=5,EVAL(X)=2,EVAL(X)=0,实例:N个皇后,构形X=在
4、N列中N个皇后的位置。Eval(X)=能两两相互攻击的皇后偶对的数目。寻找X*来实现极小:Eval(X)=0。搜索空间尺寸:NN量级。注意:N10时,搜索空间是巨大的。,EVAL(X)=5,EVAL(X)=2,EVAL(X)=0,局域搜索,假设对每个构形X,定义一个邻域(或移动集)Neighbors(X),它是从X出发在一步内能到达的构形集。X0 初始态重复直到满意当前构形为止:评估Neighbors(Xi)中的一些近邻选择其中一个近邻,Xi+1移到Xi+1,局域搜索,议题:一般情况下,不能直接、清楚、唯一地定义邻域,然而搜索算法的性能依赖于邻域的定义。选择策略:怎样决定接受哪个近邻?满意条件
5、,即停止条件?,最简单的实例,S=1,100Neighbors(X)=X-1,X+1,最简单的实例,虽然对全域极值有兴趣,但可能只得到一个局域极值。事实上,每次迭代只能得到局域极值。挑战性:通过一系列的局域移动来试图达到全域极值。,S=1,100,全域极值Eval(X*)所有X的Eval(X),局域极值Eval(X*)在Neighbors(X)中所有X的Eval(X),Neighbors(X)=X-1,X+1,最基本的算法:爬山法(Hill Climbing)(局域贪婪搜索(GLS)),X 初始构形迭代:E Eval(X)N Neighbors(X)对在N中的每个XiEi Eval(Xi)if
6、 所有的Ei 都比E低Return Xelsei*=argmaxi(Ei)XXi*EEi*,更有趣的实例,怎样来定义Neighbors(X)?,SATABCACDBDECDEACE,TSP,N个皇后,议题,多个局域极值,Eval(.)恒定值的平台区,山脊:仅用爬山移动是不可能从Xstart到达X*的。,议题,空间开销恒定。所能期望的,就是找到最接近初始构形的局域极值。还能做到比这更好吗?山脊与平台将困扰所有的局域算法。邻域的设计是与算法的设计一样的关键。对邻域尺寸要权衡:较大的邻域=找到一个好极值的机会较大,但可能需要评估巨大的移动数。较小的邻域=较小的评估量,但可能会被困在局域极值处。,贪婪
7、爬山vs.随机爬山,随机搜索:随机爬山法,X 初始构形迭代:E Eval(X)X 在Neighbors(X)中随机选择一个构形E Eval(X)if E EX XE E议题:迭代停止条件?不再选择在整个邻域中的最佳移动,但又是什么的其它移动呢?,TSP移动,选择2条边,颠倒对应结点的次序,2边改变,产生O(N2)的邻域,3边改变,产生O(N3)的邻域,选择3条边,爬山法:TSP示例,k边优化=采用k边变化邻域的爬山法结果:3边优化比2边优化好。在给定计算时间增量下,4边优化没有明显更好。采用随机重算以提高成功的几率。更好的度量:离开极小代价估值的百分数。,爬山法:N个皇后,基本爬山法不是很有效
8、。由于许多构形有相同的代价,所有出现平台问题。多次随机重算是提高性能的标准方法。,E=5,E=2,E=0,爬山法:SAT,ABC ACD BDE CDE ACE WALKSAT算法:状态X=N个布尔变量的赋值。随机初始化变量(x1,xN)为真或伪。迭代直到所有句子被满足或是到达迭代极限:选择一个不满足的句子以p的概率,随机选择一个变量xi以1-p的概率,选择这样的变量xi,改变xi后只不满足极少数句子,即使Eval(X)极大。改变所选择变量的值。注:2为随机行走,3为贪婪爬山。,爬山法:SAT,WALKSAT算法是最为有效的SAT算法之一。结合两个要素:随机行走和贪婪爬山。不完全搜索:不能发现
9、该句子无法满足。,模拟退火法(SA),E Eval(X)X 一个在Neighbors(X)中随机选择的构形。E Eval(X)if E EX XE Eelse 以某概率p接受到达X的该移动:X XE E注:不再总是爬山移动了。怎样选择p?,怎样给p赋值?,X 初始构形迭代:E Eval(X)X 一个在Neighbors(X)中随机选择的构形。E Eval(X)if E EX XE Eelse 以某概率p接受到达X的该移动:X XE E,如果p为常数:则不知道该给p赋怎样的值,因为其值应依赖于Eval函数的形状。随着迭代的发展,p应降低。由此可在趋向全域极值时,接受较少的下山移动。随着E-E 增
10、加,p应降低。如果坡度陡,则应降低下山移动的概率。,怎样给p赋值?,E-E 大:较可能的是,迭代正朝着一个敏锐的极大值移动。因此,此时不宜采取大的下山移动。,E-E 小:可能是迭代正朝着一个平缓的极大值移动。这类极值可能是一个局域极值,因此,希望移下山,去探索其它地方。,选择p:模拟退火法,if E E,接受该移动else 接受该移动,并置概率为:p=e-(E-E)/T从高温开始,随着迭代开展而逐渐降低T,即冷却调度,选择p:模拟退火法,if E E,接受该移动else 接受该移动,并置概率为:p=e-(E-E)/T从高温开始,随着迭代开展而逐渐降低T,即冷却调度,增加E,p,增加T,模拟退火
11、法,迭代K次:E Eval(X)X 一个在Neighbors(X)中随机选择的构形。E Eval(X)if E EX X;E Eelse 接受该移动,并置概率为p=e-(E-E)/T:X X;E ET T,模拟退火法,X初始构形T初始高温迭代:迭代K次:E Eval(X)X 一个在Neighbors(X)中随机选择的构形。E Eval(X)if E EX X;E Eelse 接受该移动,并置概率为p=e-(E-E)/T:X X;E ET T,模拟退火法,注意事项:迭代K次时,保持温度恒定。T=0,p=0,随机爬山法;T=,p=1,随机行走。采用一个指数冷却调度来逐步降低温度:T(n)=nT,且
12、1,即=n。采用前次迭代定义的概率值来接受下山移动。,示例,T=15.8975,T=12.877,起点:爬山移动。,150次迭代:随机下山移动以避开局域极值。,示例,T=11.5893,T=3.2731,180次迭代:随机下山移动已使迭代离开了局域极值。,800次迭代:随着T降低,只允许较少的下山移动,由此就留在最高点。,基本示例,在高温下,允许大范围地不使用爬山搜索。,E,温度,迭代次数,模拟退火法起源,如果一块固体的温度为T,则在两能量状态间转移的概率为:e-Energy/kT。如果固体温度缓慢下降,则它将到达一个平衡态,固体处于一个特殊状态的概率为:Probability(State)e
13、-Energy(State)/kT。波尔兹曼分布:相对于T的低能量状态是更可能的状态。类比:固态与构形X能量与评估函数Eval(.),TSP示例1,N=13个结点K=100NE=25注:有一个明显的解答。,起始构形E(X)=55,TSP示例,在高温下,允许大范围地不使用下山搜索。,E,温度,迭代次数,迭代次数,起始构形,收敛后的最终构形,中间态可能比起始态还差,TSP示例2,N=13个结点K=100N,起始构形,TSP示例2,在高温下,允许大范围地不使用下山搜索。,E,温度,迭代次数,迭代次数,起始构形,收敛后的最终构形,什么是收敛?,理论上:Pr为在温度T下,K次迭代后,模拟退火所到达的状态
14、X是一个全域极值的概率。实际上:执行足够多的迭代,即K足够大。温度降低要足够慢,即要足够接近于1。但是,如果不小心,可能不得不执行大量计算。,模拟退火法,X初始构形T初始高温迭代:迭代K次:E Eval(X)X 一个在Neighbors(X)中随机选择的构形。E Eval(X)if E EX X;E Eelse 接受该移动,并置概率为p=e-(E-E)/T:X X;E ET T需要处理的参数有:初始构形、初始温度、K、Neighbors(X)、随机选择一个构型、等。,SA讨论,邻域设计是关键性的。怎样选择K?通常,K是与邻域尺寸有关的。怎样选择?是避免大量无用计算的关键。特别是在接近收敛时,这
15、确是一个问题。经验告我们,大部分时间是花在极值附近的。,SA讨论,怎样选择初始温度?通常与E的期望值的分布有关。例如,Tstart=maxE:一个近邻偶对的大样本如果选择了一个差的起始X,怎么办?多次随机重算。怎样避免重复估算?用一点存储空间来记录已试过的移动(禁忌(Tabu)搜索)。如可能,采用快的近似估算。,SA讨论,通常优于爬山法。在很多应用中很成功。要处理许多参数。如不小心,所需要的计算量可能非常大。根据具体应用,可采用半无限的变化来改善性能。,局域射线搜索(LBS),不是追踪一个状态,而是k个状态开始,随机产生k个状态在每一步产生这k个状态的后续态如果有一个是终态,则停止否则从完整序
16、列中选择k个最佳的后续态随机重启搜索平行的k个随机重启搜索是相互独立的局域射线搜索中的平行搜索共享有用的信息随机射线搜索局域搜索:选择k个最佳后续态,因此搜索可能会很快集中到状态空间的某个小区域内随机射线搜索:以后续态值的增函数为概率来随机地选择k个后续态,因此可增加多样性,遗传算法(GA),进化的原则是适者生存、优胜劣汰,其过程结合了下面两个特点:多样性:保证了具有应对环境变化的创新能力;正响应:保证了对环境的适应性能够得到强化。以进化来看待优化。把构形看做群体中的个体。把Eval看做适应性的度量(适应度)。让最不适应个体无复制地淘汰。与上一代相比,每代总体上应有更好的适应性,即较高的Eval值。如果等待得足够长,则群体应进化成每个体都具有高适应性,即Eval最大。,遗传算法:实现,构形用位串来表示:X=类比:位串是代表个体的染色体。位串由基因组成。基因构形被传给后代。对高适应性有贡献的基因构形趋向于在群体中继续生存。从一个有P个构形的随机群体开始,并实施下面两个操作:复制:选择父与母,并生产2个后代。变异:在一个随机选择的构形中,选择一个随机入口,并改变它。,遗传算法:复制,一个后
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1