美文网首页
搜索算法中常见的几种剪枝操作

搜索算法中常见的几种剪枝操作

作者: fatshi | 来源:发表于2022-03-02 16:59 被阅读0次

可行性剪枝

所谓可行性剪枝,顾名思义,就是当当前状态和题意不符,并且由于题目可以推出,往后的所有情况和题意都不符,那么就可以进行剪枝,直接把这种情况及后续的所有情况判负,直接返回。

即:不可行,就返回。

排除等效冗余

所谓排除等效冗余,就是当几个枝桠具有完全相同的效果的时候,只选择其中一个走就可以了。

即:都可以,选一个。

最优性剪枝

所谓最优性剪枝,是在我们用搜索方法解决最优化问题的时候的一种常用剪枝。就是当你搜到一半的时候,已经比已经搜到的最优解要不优了,那么这个方案肯定是不行的,即刻停止搜索,进行回溯。

即:有比较,选最优。

顺序剪枝

普遍来讲,搜索的顺序是不固定的,对一个问题来讲,算法可以进入搜索树的任意的一个子节点。但假如我们要搜索一个最小值,而非要从最大值存在的那个节点开搜,就可能存在搜索到最后才出解。而我们从最小的节点开搜很可能马上就出解。这就是顺序剪枝的一个应用。一般来讲,有单调性存在的搜索问题可以和贪心思想结合,进行顺序剪枝。

即:有顺序,按题意。

记忆化

记忆化搜索其实是搜索的另外一个分支。在这里简单介绍一下记忆化的原理:

就是记录搜索的每一个状态,当重复搜索到相同的状态的时候直接返回。

即:搜重了,直接跳。

引用:https://www.cnblogs.com/jaszzz/p/12722445.html

相关文章

  • 搜索算法中常见的几种剪枝操作

    可行性剪枝 所谓可行性剪枝,顾名思义,就是当当前状态和题意不符,并且由于题目可以推出,往后的所有情况和题意都不符,...

  • 高级搜索

    剪枝 Alpha-beta 剪枝是一种搜索算法,用以减少极小化极大算法(Minimax 算法)搜索树的节点数。这是...

  • JavaScript数据结构-搜索算法

    搜索算法在平时的编程中很常见,比如我们要在电话薄中查找对手机号,在学生列表中查找某个学生等等,都将用到到搜索算法,...

  • java.util.Date、java.sql.Date、jav

    在web开发中,避免不了对日期的操作,就几种常见的日期操作做个总结(部分参考网络,在此表示感谢): java.ut...

  • python 字符串命令练习

    如:str="ma zhang feng yue cui"字符串有以下几种常见的操作 find查找在str中是否包...

  • 一个Java 程序员的python学习之路4-Ternary 操

    Ternary 操作在java中非常常见: 在python中,也有类似的实现,主要有以下几种形式: 从2.4开始,...

  • Java时间

    Java 中日期的几种常见操作 ——取值、转换、加减、比较 1. 日期取值 在旧版本 JDK 的时代,有不少代码中...

  • 炒股常见的几种神操作

    股票市场作为企业直接融资的渠道,未来将发挥越来越重要的作用。 我国的股市从上世纪90年代开始,到今天已经走过了30...

  • NSDictionary

    // 1.NSDictionary字典的初始化(常见的几种方式) // 2.NSDictionary的操作 // ...

  • 用Python操作MySQL

    使用Python操作MySQL的常见方式有以下几种: MySQL-pythonMySQL-python 又叫MyS...

网友评论

      本文标题:搜索算法中常见的几种剪枝操作

      本文链接:https://www.haomeiwen.com/subject/xlcerrtx.html