【软件设计师—基础精讲笔记9】第九章 算法设计与分析

本文概述了分治法的基本思想和步骤,介绍了动态规划的避免重复计算原理,对比了贪心法的局部最优特性,以及回溯法和分支限界法在解空间搜索中的应用。这些方法是IT技术中的重要概念,适用于求解各种复杂问题。
摘要由CSDN通过智能技术生成

温馨提示:

        完整笔记已设置成专栏,欢迎各位点击右上角“订阅专栏”,收藏完整笔记。

目录

一、分治法

        1、基本思想

二、动态规划法

三、贪心法

四、回溯法

五、分支限界法

六、总 结


一、分治法

1、基本思想

一般来说,分治算法在每一层递归上都有 3 个步骤

(1) 分解。将原问题分解成一系列子问题。

(2) 求解。递归地求解各子问题。若子问题足够小,则直接求解。

(3) 合并。将子问题的解合并成原问题的解。

二、动态规划法

动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多次。如果能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,这样就可以避免大量的重复计算,节省时间。

动态规划算法通常用于求解具有某种最优性质的问题。

三、贪心法

从问题的某一个初始解出发一步一步地进行,根据某个优化测度,每一 步都要确保能获得局部最优解。每一步只考虑一 个数据,其选取应该满足局部优化的条件。若下 一个数据和部分最优解连在一起不再是可行解时, 就不把该数据添加到部分解中,直到把所有数据枚举完,或者不能再添加算法停止。

贪心算法在某种意义上具有局部最优解,但并不是对所有问题都能得到整体最优解,关键是贪心策略的选择。

四、回溯法

在包含问题的所有解的解空间树中,按照深度优先搜索的策略,从根结点出发深度探索解空间树。当探索到某一结点时,要先判断该结点是否包含问题的解,如果包含,就从该结点出发继续探索下去,如果该结点不包含问题的解,则逐层向其祖先结点回溯。

五、分支限界法

分支限界法常以广度优先方式搜索解空间树。在分支限界法中,每一个活结点只有一次机会成为扩展节点,活结点一旦成为扩展节点,就会一次性产生其所有儿子节点。在这些儿子节点中,导致不可行解或导致非最优解的儿子节点会被舍弃,其余儿子节点会被加入活结点表中。

为了有效的选择下一个扩展节点加速搜索,可在每一个活结点处计算一个函数值(限界),并根据计算的函数值结果从当前活结点表中选择下一个最有利的结点作为当前扩展结点,重复上述节点扩展过程,使搜索朝着解空间树上最优解的分支推进,直到找到所需的最优解或者活结点表为空。

六、总 结

        笔记总结不易,如果喜欢,请关注、点赞、收藏。

 完整笔记下载地址:(后续完成后更新)

基础精讲课件地址:(请关注、点赞、收藏后,私信我)

基础精讲视频地址:(请私信我)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ai安歌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值