搜索及其其优化.pptx

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
搜索及其其优化.pptx

搜索及其优化杨志灿Spiders通过将一棵树的某个节点与另一棵树的节点合并使两棵树合并为新的树给定n棵树,将其合并为一棵树,使新树的最长链尽量长,输出长度1=n=100, 树大小=100CodeForces 120 FSpiders新树的最长链等于n棵树最长链长度之和。求最长链从树的每个节点DFS/BFS,不断更新最长链长度。O(n^2)从树的任意一个节点DFS/BFS,找出距离最远的点P,从点P进行DFS/BFS,再次求最远的点Q,PQ即为最长链。O(n)DPO(n)迭代加深搜索DFS在一些问题模型中可能无限扩展如8数码问题增加深度限制:假设目标状态所处深度不超过某阈值。问题条件或人为假设当搜索深度到达阈值时直接剪枝,不再往下搜索。迭代加深搜索Iterative Deepening Depth-First Search求最优/深度最低/步数最少解不断放宽迭代深度限制第一次找到的目标状态即为最优解与DFS不同何时用IDDFS而不用BFS空间限制极强时时间限制内求较优解计算机博弈、规划等当状态的存储与表示比较麻烦/费时时迭代加深搜索效率对比设解所在深度为d,每个状态都能扩展出b个状态。BFSNbfs=1+b+b2+…+bd = (bd+1-1)/(b-1)IDDFS(d+1)+d*b+(d-1)*b2+…+2bd-1+bd =b/(b-1) * (bd+1-1)/(b-1) - (d+1)/(b-1) =b/(b-1)*Nbfs - (d+1)/(b-1)两种算法的扩展节点数渐进相同双向广度搜索从初始状态和目标状态两个方向BFS用hash等方法将两者的搜索路径相接例八数码双向广度搜索效率对比设解所在深度为d,每个状态都能扩展出b个状态。BFSNbfs=1+b+b2+…+bd = (bd+1-1)/(b-1)Bidirectional BFS(1+b+b2+…+bd/2) * 2 = 2 * (bd/2+1-1)/(b-1)Hash/数据结构判重Knight Moves一个L*L的象棋棋盘,给定马的起点和终点,求最少步数4 = L = 300POJ 1915可行性剪枝在搜索的同时,实时判断是否可能存在可行解若不可能存在任何可行解,进行剪枝判断方法放缩、放宽条件限制举例精确覆盖问题重复覆盖问题精确覆盖问题Exact Cover Problem全集X,X的子集的集合为S精确覆盖S的子集S*,满足X中的每一个元素在S*中恰好出现一次精确覆盖问题求最小的精确覆盖举例数独N皇后NP完全问题重复覆盖问题Set Cover Problem全集X,X的子集的集合为S重复覆盖S的子集S*,满足X中的每一个元素在S*中至少出现一次重复覆盖问题求最小的重复覆盖举例数独八皇后NP完全问题最优性剪枝在搜索的同时,实时判断是否可能存在比当前最优解更优的解若不可能存在比当前最优解更优的解,进行剪枝判断方法放缩、放宽条件限制可用贪心/构造等方法预处理出一些较优解为最优性剪枝提供方便举例精确覆盖问题重复覆盖问题飘飘乎数独飘飘乎数独共n行,每行的数字都由1~m自然数填满(每行中每个数字用且只能用一次)3=n, m=7相邻的自然数不能出现在相邻的方格中(包括左右相邻和上下相邻)飘飘乎数独每一列都有一个得分规则:第i列的得分为第i列所有自然数的总和*i,最后的总分即为m列得分之和。求总分最大的飘飘乎数独TY-1469飘飘乎数独状态压缩动态规划DFS最优性剪枝预处理从第i行开始不考虑冲突能得到的最大得分最大团/最大独立集给定一张无向图求该无向图的点集中的一个最大的子集,满足该子集内的边集为满集(最大团)/空集(最大独立集)NP完全问题最大团/最大独立集点1~点i-1的最大团的大小为Ans[i-1]则点1~点i的最大团的大小必为Ans[i-1]或Ans[i-1]+1反证法按i从小到大,依次计算点1~点i的最大团的大小Ans[i]DFS最优性剪枝生日蛋糕制作一个体积为Nπ的M层生日蛋糕,每层是一个圆柱体。 设从下往上数第i层蛋糕是半径为Ri, 高度为Hi的圆柱。要求Ri Ri+1且Hi Hi+1。 希望蛋糕外表面(最下一层的下底面除外)的面积Q最小。 令Q = Sπ 对给出的N和M,找出蛋糕的制作方案(适当的Ri和Hi的值),使S最小。 (除Q外,以上所有数据皆为正整数) N = 10000, M = 20NOI 1999生日蛋糕体积V = πR2H 侧面积A = 2πRH 底面积A = πR2DFS从下到上确定每层蛋糕的半径与高度可行性剪枝最大化体积 N最小化体积 N最优性剪枝最大化表面积 = 当前最优答案启发式搜索智能改变搜索顺序此前介绍的搜索方法属于“盲目搜索”,搜索顺序与输入数据基本无关调整搜索顺序使得(更可能)尽快搜索到最优解(更可能)尽快进行剪枝启发式搜索

文档评论(0)

youngyu0329 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档