算法合集之《探寻深度优先搜索中的优化技巧》汇.pptVIP

  • 1
  • 0
  • 约1.36千字
  • 约 27页
  • 2018-05-12 发布于浙江
  • 举报

算法合集之《探寻深度优先搜索中的优化技巧》汇.ppt

算法合集之《探寻深度优先搜索中的优化技巧》汇

探寻深度优先搜索中的优化技巧;正方形剖分问题;分析;设fi,j表示一个i×j的矩形最少可以被剖分成多少个小正方形:;;搜索的对象和顺序;剪枝;改进搜索的顺序;猜想:任何剖分方案是否都能通过若干条剖分线把一个个小正方形剖分出来呢?;证明;新的搜索顺序;新增剪枝;搜索效率:在最慢时(n=31)只要20s左右就能够出解了。(测试环境 (R)4 CPU 1.7GHz) 还有什么方法能够使搜索效率再大幅提高呢? 看下边这棵搜索树:;那么,若已知y的值,蓝色节点就变为了搜索树中的叶子节点,因为搜到它就可直接回溯了。 若求出了大量的节点的y值,就能使许多非叶子节点变为叶子节点,总节点数就会大大减少。;状态的表示;优化状态的表示;状态的对应的实现;动态规划;显然无法求出所有的状态的fi值,但是我们只需求出其中的若干个就足够了。当然应该尽量多求一些,因为求出的状态越多搜索的效率就会越高。 观察上面的动态规划方程,假如把将每个状态看作一个点,若状态i添加一个小正方形能变成状态j就连一条有向边i?j,那么fi就是点1到点i的最短距离。由于每条边长度都为1,可以从点1开始广搜,不断扩展直到产生出足够多的状态。;为了搜索时查找方便,每扩展出一个节点,就将它放入Hash表中。 搜索时,每搜到一个节点,就查找当前的状态i是否在表中,如果找到了相应的fi值就可改进当前最优值然后直接回溯。 查找的复杂度仅为常数(≤

文档评论(0)

1亿VIP精品文档

相关文档