回溯算法原理总结

本文详细介绍了回溯算法的原理,将其定义为一种类似于枚举的搜索尝试过程,利用深度优先搜索策略遍历解空间树。文章阐述了回溯法的约束函数、状态空间树、扩展节点等核心概念,并提供了回溯法的步骤和DFS实现流程。此外,还列举了若干个相关题目以供实践和进一步学习。
摘要由CSDN通过智能技术生成

回溯算法理论总结

回溯法是一种类似枚举的搜索尝试过程,既然是枚举,那么就会遍历解空间树中的所有解(或者是“路径”),搜索的过程按照DFS原则,而尝试就意味着,在遍历的过程中,有可能到达某一个结点后,发现不能够满足约束条件,在这次尝试中,这条“路”是不优的,将走不通,即无法找到所求的解,那么就会回退到上一步的状态,重新作出选择。如果即满足约束条件,但是依然没有获得有效的解,那么我们就需要在此基础上做下一步选择,即将当前结点当做一个新的根结点。所以经常会使用递归的方法。如果一步步下来的选择结果正好满足我们所求的问题,那么就是一个有效的解。

 

回溯法思想:在包含问题所有解的解空间树中,按照深度优先搜索的策略,从根结点出发深度搜索解空间树。当搜索到某一结点时,要先判断该结点是否包含问题的解,如果包含,就从该结点出发继续探索下去,如果该结点不包含问题的解,则逐层向其祖先结点回溯。(其实回溯法就是对隐式图的深度优先搜索算法)。若用回溯法求问题的所有解时,要回溯到根,且根结点的所有可行的子树都要已被检索一遍才结束。而若使用回溯法求任一个解时,只要搜索到问题的一个解就可以结束。

若用回溯法求问题的所有解时,要回溯到根,且根结点的所有可行的子树都要已被搜索遍才结束。

若使用回溯法求任一个解时,只要搜索到问题的一个解就可以结束。

 

回溯法中的三个概念:

(1)约束函数:约束函数是根据题意定出的。通过描述合法解的一般特征用于去除不合法的解(即使这个解并不是完整的解),从而

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值