C++迭代加深搜索及其例题讲解—————Addition Chains

本文介绍了迭代加深搜索的概念及其在解决最优解问题中的优势,特别是针对那些深度有限且最优解深度最小的情况。通过一个Addition Chains的题目实例,详细解释了如何使用迭代加深搜索来构造具有最小长度的加法链,并提供了相应的C++代码实现。
摘要由CSDN通过智能技术生成

前言:

学习算法时,一个关键的问题是什么时候来使用它。在一些搜索问题中,使用普通的DFS可能会让你把时间浪费在深度非常大而且答案不是最优的搜索过程上,甚至有的时候DFS搜索的深度是无穷的,而BFS虽说理论上可以避免这种情况,却又无法满足题目的某些需求,或者无法实现。仔细思考一下这个例子,它有着两个特征:一是它是个最优解问题,二是最优的答案深度最小,如右图:

但是我们的答案有三个,若我们要ans3这个答案,那么DFS和BFS都是不满足的,so我们引入迭代加深搜索来解决这个问题。

概念:

1.迭代加深搜索,实质上就是限定下界的深度优先搜索。即首先允许深度优先搜索K层搜索树,若没有发现可行解,再将K+1后重复以上步骤搜索,直到搜索到可行解。

2.在迭代加深搜索的算法中,连续的深度优先搜索被引入,每一个深度约束逐次加

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值