zoukankan      html  css  js  c++  java
  • 剪枝

    剪枝:

    最优性剪枝

    可行性剪枝

    迭代搜索:最优性剪枝的变种

    如果我们不确定答案,只知道答案比较小,我们可以从深度为1开始,不停地增加深度到2, 3, ...,直到能到达终点为止.事实上这个方法时间效率上是不如BFS的,但它的好处在于它是深搜,深搜的空间比较小,也不需要储存和判重所有的状态

    对bfs的限制

    用dfs的方法实现

    特征就是可以在原矩阵的基础上改变,节省空间,时间换空间

    剪枝优化原则:

    1.直觉

    2.正确性

    实际应用时要多考虑搜索顺序

    例题:斗地主

    像这种牌肯定是出的越多越好.

    首先考虑的是最暴力的方法,依次枚举上述的各种情况,肯定是稳T.(可以用来做暴力对拍)

    尝试着改变枚举顺序,因为顺子的牌是最多的,每次一旦枚举到顺子就可以大量减少牌的数量,然后按照牌量减的大小 依次枚举四三二一就行了.

    在数据随机下基本上就是能过了的

    然后我们考虑切换枚举顺序,如果先枚举四,三呢?

    因为四和三每种牌都只能有一个,而且特别少,所以肯定是能够枚举的.

    我们注意到至多有7对三/四个,然后每个地方都需要3种情况的枚举,至多有128种情况.

    接下来枚举顺子,顺子最多有4组,而且越多枚举到的可用顺子很少.

    最后枚举单双,事实上单双根本就不用枚举了,直接就能双双,能单单就行了.

    而这里存在的优化空间是在这个四和三带上的,我们不需要确定它们带了哪张牌,那我们就直接记录有多少单和对需要被带就行了,如果最后不可行,就直接退出即可.

    靶形数独

    A*

  • 相关阅读:
    浅析uitableview
    ios9和xcode7的适配问题
    uiviewContentMode的介绍 转载
    关于常见的加密算法浅析
    程序中发起电话呼叫
    单例实现方式以及类方法和实例方法
    windows下的git的安装教程
    上传github项目
    android 使用SurfaceView绘制一个简单动画控件
    android 自定义控件属性获取bitmap和drawable的绘制
  • 原文地址:https://www.cnblogs.com/lcezych/p/12912503.html
Copyright © 2011-2022 走看看