剪枝问题
来源:互联网 发布:dota2天梯淘宝买账号 编辑:程序博客网 时间:2024/05/01 19:58
搜索的进程可以看作是从树根出发,遍历一棵倒置的树—-搜索树的过程。而所谓的剪枝,顾名思义,就是通过某种判断,避免一些不必要的遍历过程,形象的说,就是减去了搜索树中的某些“枝条”,故称剪枝。
即剪去解答树上已被证明不可能存在可行解或最优解的子树.
既然采用了搜索,剪枝就显得十分的必要,即使就简简单单的设一个槛值,或多加一两条判断,就可对搜索的效率产生惊人的影响。例如N后问题,假如放完皇后再判断,则仅仅只算到7,就开始有停顿,到了8就已经超过了20秒,而如果边放边判断,就算到了10,也没有停顿的感觉。所以,用搜索一般都就要剪枝。
剪枝至少有两方面,一是从方法上剪枝,如采用分枝定界,启发式搜索等,适用范围比较广;二是使用一些小技巧,这类方法适用性虽不如第一类,有时甚至只能适用一道题,但也十分有效,并且几乎每道题都存在一些这样那样的剪枝技巧,只是每题有所不同而已。
剪枝的原则:
1.正确性:必须保证不丢失正确的结果。
2.准确性:能够尽可能多的减去不能通向正解的枝条
3.高效性:在很多时候,为了加强优化的效果,我们会增加一些判断,这样对程序效率也带来了副作用,所以要考虑剪枝的高效性,否则得不偿失。
0 0
- 剪枝问题
- 搜索剪枝问题
- dfs的剪枝问题
- 八皇后问题:DFS剪枝
- 八皇后问题(DFS剪枝)
- 剪枝
- 深度搜索剪枝——生日蛋糕问题
- 迷宫问题:hdoj1010 DFS--剪枝实现
- 经典问题:木棒(搜索+强力剪枝)
- HDU 2553 N皇后问题( DFS + 剪枝 )
- poj 1011 回溯+剪枝 木棒问题
- poj 1321 棋盘问题 深搜+剪枝
- 找零钱问题(暴力枚举+剪枝)
- hdu 5046 重复覆盖问题 搜索+剪枝
- poj 1011 sticks 经典剪枝问题
- 搜索DFS+BFS和剪枝问题
- Vijos P1016 钟表问题 BFS+剪枝
- 常用剪枝小结与小木棍问题
- Text Reverse(hdu 1062)
- 密码(hdu 2043)
- 统计元音(hdu 2027)
- DFS之全排列
- Humble Numbers(hdu1058)
- 剪枝问题
- VS2010/MFC编程入门之十一(对话框:非模态对话框的创建及显示)
- 普通母函数
- Dijkstra算法
- 二分图——匈牙利算法
- Luke'family
- 结构体排序
- linux磁盘管理二之磁盘配额
- 2072Count(foj)