算法 | 分支限界法和回溯法的搜索策略&动态规划特性&贪心算法特性

分支限界法的搜索策略:

一次性生成当前扩展节点的所有儿子节点,然后从活节点表中选取要扩展的下一个结点,为了加快搜索速度,会计算节点的函数值,即限界函数。然后从活节点表中选取最有利的结点进行扩展。使搜索朝着最优解的方向进行,以便更快的找到最优解


回溯法的搜索策略:

在有问题所有可能解的状态空间树 上进行深度优先搜索,解为叶子节点 ,当搜索到一个新节点时,先判断该节点的子树是否含有问题的解,如果没有就放弃搜索该节点,退回到父节点,再进行深搜。在整个回溯过程,不是事先构造好整颗状态空间树,而是逐步构造出整颗状态空间树,边搜索边构造


动态规划的特性:

最优子结构:是指问题的最优解可以通过求解子问题的解来得到

重叠子问题:在求解的过程中,有大量的子问题是重复的

无后效性:求解时只和前面阶段有关,和后面的阶段无关


什么是贪心算法

通过当前的最优选择,期待通过局部的最优选择来得到全局的最优解

贪心算法的特性:

最优子结构:问题的最优解包括子问题的解

贪心选择策略 :通过局部最优选择可以实现得到原问题的最优解


相关推荐
会编程的土豆几秒前
【数据结构与算法】LCS刷题
数据结构·算法·动态规划
无敌憨憨大王1 分钟前
最小生成树
算法
Jasmine_llq2 分钟前
《B4258 [GESP202503 一级] 四舍五入》
数据结构·算法·整数运算实现四舍五入整十数算法·批量输入遍历算法·逐行输出算法·整数算术运算组合算法·顺序输入处理算法
2401_874732535 分钟前
模板编译期排序算法
开发语言·c++·算法
weixin_421922697 分钟前
C++与Node.js集成
开发语言·c++·算法
j_xxx404_8 分钟前
力扣--分治(归并排序)算法题I:排序数组,交易逆序对的总数
数据结构·c++·算法·leetcode·排序算法
sprite_雪碧14 分钟前
排版类问题(机试高频)
c语言·数据结构·算法
暮冬-  Gentle°15 分钟前
设计模式在C++中的实现
开发语言·c++·算法
2501_9083298518 分钟前
实时音频处理C++实现
开发语言·c++·算法
dapeng287019 分钟前
移动语义与完美转发详解
开发语言·c++·算法