第七章 高级搜索.ppt
《第七章 高级搜索.ppt》由会员分享,可在线阅读,更多相关《第七章 高级搜索.ppt(151页珍藏版)》请在麦多课文档分享上搜索。
1、第七章 高级搜索,主要内容,局部搜索方法 模拟退火算法 遗传算法,7.1 基本概念,优化与组合优化问题,很多问题属于优化问题,或者可以转化为优化问题 如TSP问题,皇后问题,优化问题的描述,设x是决策变量,D是x的定义域,f(x)是指标函数,g(x)是约束条件集合。则优化问题可以表示为,求解满足g(x)的f(x)最小值问题。 如果在定义域D上,满足条件g(x)的解是有限的,则优化问题称为组合优化问题。,算法的时间复杂度,对于组合优化问题,由于其可能的解是有限的,当问题的规模比较小时,总可以通过枚举的方法获得问题的最优解,但当问题的规模比较大时,就难于求解了。 常用的算法复杂度函数,时间复杂性函
2、数比较(10亿次/秒),一些难的组合优化问题,旅行商问题 背包问题 装箱问题 .寻求在可以接受的时间内得到满意解的方法,邻域的概念,邻域,简单的说就是一个点附近的其他点的集合。 在距离空间,邻域就是以某一点为中心的圆。 组合优化问题的定义: 设D是问题的定义域,若存在一个映射N,使得:则称N(S)为S的邻域。,例:皇后问题,S=Si表示一个可能解,其中Si表示在第i行,第Si列有一个皇后。 如四皇后问题的一个解:S=(2, 4, 1, 3),定义映射N为棋盘上任意两个皇后的所在行或列进行交换,即S中任意两个元素交换位置。例:当S = (2, 4, 1, 3)时,其邻域为: N(S) = (4,
3、 2, 1, 3), (1, 4, 2, 3), (3, 4, 1, 2), (2, 1, 4, 3), (2, 3, 1, 4), (2, 4, 3, 1),例:旅行商问题,用一个城市的序列表示一个可能的解。 通过交换两个城市的位置获取S的邻居 例:简单交换方法设S = (x1, x2, xi-1, xi, xi+1, , xj-1, xj, xj+1, , xn) 则通过交换xi和xj两个城市的位置可以得到S的一个邻居:S = (x1, x2, xi-1, xj, xi+1, , xj-1, xi, xj+1, , xn),x1,x2,xn,xj+1,xj,xj-1,xi-1,xi,xi+
4、1,x1,x2,xn,xj+1,xj,xj-1,xi-1,xi,xi+1,例:逆序交换方法 设xi、xj是选取的两个城市,所谓的逆序交换方式是指,通过逆转xi、xj两个城市之间的城市次序来得到S的邻居。 设:S = (x1, x2, xi-1, xi, xi+1, , xj-1, xj, xj+1, , xn) 则:S = (x1, x2, xi-1, xi, xj-1, x j-2, xi+1, xj, xj+1, , xn),x1,x2,xn,xj+1,xj,xj-1,xi-1,xi,xi+1,x1,x2,xn,xj+1,xj,xj-1,xi-1,xi,xi+1,7.2 局部搜索算法,基本
5、思想:在搜索过程中,始终向着离目标最接近的方向搜索。 目标可以是最大值,也可以是最小值。 在后面的介绍中,如果没有特殊说明,均假定是最小值。,局部搜索算法(Local Search) 1,随机的选择一个初始的可能解x0D,xb=x0,P=N(xb); 2,如果不满足结束条件,则 3,Begin 4, 选择P的一个子集P,xn为P中的最优解 5, 如果f(xn) f(xb),则xb xn,P = N(xb),转2;f(x)为指标函数。 6, 否则P = P P,转2。 7,End 8,输出计算结果 9,结束,例:5城市旅行商问题,A,B,C,D,E,7,13,6,10,7,10,10,9,6,5
6、,设初始的可能解:x0 = (a, b, c, d, e) f(xb) = f(x0) = 38 通过交换两个城市获得领域P = (a, c, b, d, e), (a, d, c, b, e), (a, e, c, d, b), (a, b, d, c, e), (a, b, e, d, c), (a, b, c, e, d) 设每次随机从P中选择一个邻居。,第一次循环,从P中选择一个元素, 假设xn = (a, c, b, d, e), f(xn) = 42, f(xn) f(xb), P = P xn = (a, d, c, b, e), (a, e, c, d, b), (a, b,
7、d, c, e), (a, b, e, d, c), (a, b, c, e, d),第二次循环,从P中选择一个元素, 假设xn = (a, d, c, b, e), f(xn) = 45, f(xn) f(xb), P = P xn = (a, e, c, d, b), (a, b, d, c, e), (a, b, e, d, c), (a, b, c, e, d),第三次循环,从P中选择一个元素, 假设xn = (a, e, c, d, b), f(xn) = 44, f(xn) f(xb), P = P xn = (a, b, d, c, e), (a, b, e, d, c), (a
8、, b, c, e, d),第四次循环,从P中选择一个元素, 假设xn = (a, b, d, c, e), f(xn) = 44, f(xn) f(xb), P = P xn = (a, b, e, d, c), (a, b, c, e, d),第五次循环,从P中选择一个元素, 假设xn = (a, b, e, d, c), f(xn) = 34, f(xn) f(xb), xb = (a, b, e, d, c), P = (a, e, b, d, c), (a, d, e, b, c), (a, c, e, d, b), (a, b, d, e, c), (a, b, c, d, e),
9、 (a, b, e, c, d),第六次循环,从P中选择一个元素, 假设xn = (a, e, b, d, c), f(xn) = 44, f(xn) f(xb), P = P xn = (a, d, e, b, c), (a, c, e, d, b), (a, b, d, e, c), (a, b, c, d, e), (a, b, e, c, d),第七次循环,从P中选择一个元素, 假设xn = (a, d, e, b, c), f(xn) = 39, f(xn) f(xb), P = P xn = (a, c, e, d, b), (a, b, d, e, c), (a, b, c, d
10、, e), (a, b, e, c, d),第八次循环,从P中选择一个元素, 假设xn = (a, c, e, d, b), f(xn) = 38, f(xn) f(xb), P = P xn = (a, b, d, e, c), (a, b, c, d, e), (a, b, e, c, d),第九次循环,从P中选择一个元素, 假设xn = (a, b, d, e, c), f(xn) = 38, f(xn) f(xb), P = P xn = (a, b, c, d, e), (a, b, e, c, d),第十次循环,从P中选择一个元素, 假设xn = (a, b, c, d, e),
11、f(xn) = 38, f(xn) f(xb), P = P xn = (a, b, e, c, d),第十一次循环,从P中选择一个元素, 假设xn = (a, b, e, c, d), f(xn) = 41, f(xn) f(xb), P = P xn = P等于空,算法结束, 得到结果为xb = (a, b, e, d, c), f(xb) = 34。,存在的问题,局部最优问题,解决方法,每次并不一定选择邻域内最优的点,而是依据一定的概率,从邻域内选择一个点,指标函数优的点,被选中的概率比较大,而指标函数差的点,被选中的概率比较小。,选择概率的计算,设求最大值:,选择概率的计算,当求最小值
12、时:,局部搜索算法1(Local Search 1) 1,随机的选择一个初始的可能解x0D,xb=x0,P=N(xb) 2,如果不满足结束条件,则 3,Begin 4, 对于所有的xP计算指标函数f(x),并按照式(3)或者式(4)计算每一个点x的概率 5, 依计算的概率值,从P中随机选择一个点xn,xb xn,P = N(xb),转2 6,End 7,输出计算结果 8,结束,存在的问题,步长问题,解决方法,变步长,局部搜索算法2(Local Search 2) 1,随机的选择一个初始的可能解x0D,xb=x0,确定一个初始步长计算P=N(xb) 2,如果不满足结束条件,则 3,Begin 4
13、, 选择P的一个子集P,xn为P中的最优解 5, 如果f(xn) f(xb),则xb xn 6, 按照某种策略改变步长,计算P = N(xb),转2 7, 否则P = P P,转2。 8,End 9,输出计算结果 10,结束,存在问题,起始点问题,A,B,全局最大值,局部最大值,解决方法,随机的生成一些初始点,从每个初始点出发进行搜索,找到各自的最优解。再从这些最优解中选择一个最好的结果作为最终的结果。,局部搜索算法3(Local Search 3) 1,k = 0 2,随机的选择一个初始的可能解x0D,xb=x0,P=N(xb) 3,如果不满足结束条件,则 4,Begin 5, 选择P的一个
14、子集P,xn为P中的最优解 6, 如果f(xn) f(xb),则xb xn,P = N(xb),转3 7, 否则P = P P,转3。 8,End 9,k = k+1 10,如果k达到了指定的次数,则从k个结果中选择一个最好的结果输出,否则转(2) 11,输出结果 12,结束,多种方法的集成,以上几种解决方法可以结合在一起使用,比如第一、第二种方法的结合,就产生了我们将在后面介绍的模拟退火方法。,皇后搜索算法(Queen Search) 1,随机地将n个皇后分布在棋盘上,使得棋盘的每行、每列只有一个皇后。 2,计算皇后间的冲突数conflicts。 3,如果冲突数conflicts等于0,则转
15、(6) 4,对于棋盘上的任意两个皇后,交换他们的行或者列,如果交换后的冲突数conflicts减少,则接受这种交换,更新冲突数conflicts,转3。 5,如果陷入了局部极小,既交换了所有的皇后后,冲突数仍然不能下降,则转1。 6,输出结果 7,结束。,不同规模下皇后问题的 平均求解时间,7.3 模拟退火算法,是局部搜索算法的一种扩展 最早由Metropolis在1953年提出,Kirkpatrick等人在1983年成功地将模拟退火算法用于求解组合优化问题。 基本思想是借用金属的退化过程改进局部搜索算法,固体退火过程,溶解过程:随着温度的不断上升,粒子逐渐脱离开其平衡位置,变得越来越自由,直
16、到达到固体的溶解温度,粒子排列从原来的有序状态变为完全的无序状态。 退火过程:随着温度的下降,粒子的热运动逐渐减弱,粒子逐渐停留在不同的状态,其排列也从无序向有序方向发展,直至到温度很低时,粒子重新以一定的结构排列。,粒子不同的排列结构,对应着不同的能量水平。如果退火过程是缓慢进行的,也就是说,温度的下降如果非常缓慢的话,使得在每个温度下,粒子的排列都达到一种平衡态,则当温度趋于0(绝对温度)时,系统的能量将趋于最小值。,如果以粒子的排列或者相应的能量来表达固体所处的状态,在温度T下,固体所处的状态具有一定的随机性。一方面,物理系统倾向于能量较低的状态,另一方面,热运动又妨碍了系统准确落入低能
17、状态。,Metropolis准则,从状态i转换为状态j的准则: 如果E(j)E(i),则状态转换被接受; 如果E(j)E(i),则状态转移被接受的概率为: 其中E(i)、E(j)分别表示在状态i、j下的能量,T是温度,K0是波尔兹曼常数。,在给定的温度T下,当进行足够多次的状态转换后,系统将达到热平衡。此时系统处于某个状态i的概率由波尔兹曼(Boltzmann)分布给出:(6)其中 为归一化因子,S是所有可能状态的集合。,考察一下式(6)随温度T的变化情况: 同一温度下,两个能量不同的状态 高温下的情况 低温下的情况 当温度下降时的情况,在给定的温度T下,设有i、j两个状态,E(i)E(j)
18、:即在任何温度T下,系统处于能量低的状态的概率大于处于能量高的状态的概率。,由于E(i)E(j),所以该项小于1,当温度趋于无穷时:其中|S|表示系统所有可能的状态数。 当温度很高时,系统处于各个状态的概率基本相等,接近于平均值,与所处状态的能量几乎无关。,当温度趋于0时 :设Sm表示系统最小能量状态的集合,Em是系统的最小能量。上式分子、分母同乘以,当温度趋近于0时,系统以等概率趋近于几个能量最小的状态之一,而系统处于其他状态的概率为0。以概率1达到能量最小的状态。,当温度上升或下降时:,系统落入低能量状态的概率随着温度的下降单调上升,而系统落入高能量状态的概率随着温度的下降单调下降。,在高
19、温下,系统基本处于无序的状态,基本以等概率落入各个状态。在给定的温度下,系统落入低能量状态的概率大于系统落入高能量状态的概率,这样在同一温度下,如果系统交换的足够充分,则系统会趋向于落入较低能量的状态。随着温度的缓慢下降,系统落入低能量状态的概率逐步增加,而落入高能量状态的概率逐步减少,使得系统各状态能量的期望值随温度的下降单调下降,而只有那些能量小于期望值的状态,其概率才随温度下降增加,其他状态均随温度下降而下降。因此,随着能量期望值的逐步下降,能量低于期望值的状态逐步减少,当温度趋于0时,只剩下那些具有最小能量的状态,系统处于其他状态的概率趋近于0。因此最终系统将以概率1处于具有最小能量的
20、一个状态。,达到最小能量状态的三个条件,(1)初始温度必须足够高; (2)在每个温度下,状态的交换必须足够充分; (3)温度T的下降必须足够缓慢。,组合优化问题与退火过程的类比,1,随机选择一个解i,k=0,t0=Tmax(初始温度),计算指标函数f(i)。 2,如果满足结束条件,则转(15)。 3,Begin 4, 如果在该温度内达到了平衡条件,则转(13)。 5, Begin 6, 从i的邻域N(i)中随机选择一个解j。 7, 计算指标函数f(j)。 8, 如果f(j)j)Random(0, 1),则i=j,f(i)=f(j)。 11, 转(4) 12, End 13, tk+1=Drop
21、(tk),k=k+1。 14,End 15,输出结果。 16,结束。,算法中的问题,初始温度的选取 内循环的结束条件,即每个温度状态交换何时结束 外循环的结束条件,即温度下降到什么时候结束 温度的下降方法,在模拟退火过程中,给定温度下状态(解)的转移可以看作是一个马尔可夫链。对于任意两个状态i和j,我们用Pt(i, j)表示温度t下,从状态i转移到状态j的一步转移概率,则有:其中:Gt(i,j) 是产生概率,表示从状态i产生状态j的概率。At(i,j) 是接受概率,表示在状态i产生状态j后,接受状态j的概率。,定理7.1,满足条件的Gt(i,j)、At(i,j) 举例:,说明:条件2的后半部分
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七 高级 搜索 PPT
