
算法导论
文章平均质量分 88
Sanchez·J
这个作者很懒,什么都没留下…
展开
-
算法导论复习——CHP16 贪心算法
每一步都做出当前看来最优的操作。1)确定问题的最优子结构;每次对其作出选择后,只剩下一个子问题需要求解;3)证明作出贪心选择后,剩余的子问题满足:其最优子解与前面的贪心选择组合即可得到原问题的最优解(具有最优子结构)。贪心选择性质和最优子结构性是两个关键要素。贪心选择性质:可以通过做出局部最优(贪心)选择来构造全局最优解的性质。贪心选择性质使得我们进行选择时,只需做出当前看起来最优的选择,而不用考虑子问题的解。原创 2024-01-03 11:56:30 · 885 阅读 · 1 评论 -
算法导论复习——CHP22 分支限界法
注:只要U的初始值不小于最小成本答案结点的成本,利用U就不会杀死可以到达最小成本答案结点的活结点。1)如果X是答案结点,则C(X)是由状态空间树的根结点到X 的成本(即所用的代价,可以是级数、计算复杂度等)。成本函数:每个结点赋予一个成本函数c(X) ,并使得代表最优解的答案结点的c(X)是所有结点成本的最小值。3) 如果X不是答案结点但子树X包含答案结点,则C(X)应等于子树X中具有最小成本的答案结点的成本。故引进h(X)改进成本估计函数:h(x)=根结点到结点X的成本——已发生成本。原创 2024-01-04 11:57:33 · 1071 阅读 · 0 评论 -
算法导论复习——CHP22 基本图算法
由隐式约束条件可知:可能的解只能是( 1,2,3,4,5,6,7,8 )的 置换(排列),最多有8!不同的解可以是大小不同的元组,如(1,2,4)和(3,4)。答案状态:是这样的一些解状态S,对于这些解状态而言,由根到 S的这条路径确定了问题的一个解(满足隐式约束条件 的解)。, wn}和正数M,找出W 中的和数等于M的所有子集。设t(n,e)和s(n,e)是算法BFS在任一具有n个结点和 e 条边的图G上所花的时间和。若G由邻接表表示,则 t(n,e)=Θ(n+e) 和 s(n,e)=Θ(n)。原创 2024-01-04 11:26:14 · 938 阅读 · 0 评论 -
算法导论复习——CHP26 最大流
如何增加流值——利用增广路径。如何判断算法终止时,确实找到了最大流呢?——利用最大流最小切割定理进行判定最大流最小切割定理:建立最大流和切割容量之间的关系,从而建立最大流和残存网络增广路径上的残存容量之间的关系。一个流是最大流当且仅当其残存网络中不包含任何增广路径。流网络的切割给定流网络 ,源结点为s,汇点为t。定义一个切割(S,T),将结点集合V分成两部分S和T=V-S, 使得。若f是G上的一个流,定义横跨切割(S,T)的净流量f(S,T)为:定义切割(S,T)的容量为。原创 2024-01-04 10:35:17 · 1148 阅读 · 0 评论 -
算法导论复习——CHP25 多源最短路
2)如果结点k是路径p上的中间结点,则k将路径p分解为两段(如下图),最优子结构性,p1是从结点i到结点k的一条最短路径,且中间结点全部取自集合{1,2,…在图中,对所有的结点对 u,v∈V,找出从结点u到结点v的最短路径。对于每个结点i∈V,定义图G对于结点i的前驱子图为 Gπ,i=(Vπ,i,Eπ,i),其中。对于所有的结点v∈V’ ,定义:h(v)=δ(s,v)。定有向图G=(V,E),定义图G的传递闭包G*=(V,E*),其中 E*={(i,j):如果图G中包含一条从结点i到结点j的路径}。原创 2024-01-03 21:00:22 · 1105 阅读 · 0 评论 -
算法导论复习——CHP24 单源最短路
单源最短路径问题: 给定一个图G =(V,E),找出从给定的源点s∈V到其它每个结点v∈V的最短路径。 这样最短路径具有最优子结构性:两个结点之间的最短路径的任何子路径都是最短的。 对于每个结点v,维持一个属性v.d,记录从源点s到结点v的最短路径权重的上界。 首先测试一下是否可以对从s到v的最短路径进行改善。如果可以改善,则v.d更新为新的最短路径估计值,v的前驱v.π更新为新的前驱结点。其中,测试指对s到v所经过的最后一个中 间结点u,按下列方式计算从s出发,原创 2024-01-03 17:28:57 · 430 阅读 · 0 评论 -
算法导论复习——CHP23 最小生成树
问题转化为找G中的一个无环。T中包含有G的所有结点,且是一棵树,所以 (u,v) 与 T 中从结点 u 到结点 v 的简单路径 p 形成一个环。设T是一棵包含 A 的最小生成树,且T不包含轻量级边(u,v) (若T包含轻量级边(u,v)则已成立)对于安全边(u,v),由于A∪{(u,v)}必须无环,所以 (u,v) 连接的是。对于(u,v)而言, u和v分别处在它所横跨的切割(S,V-S)的两端,且。由于边(u,v)是横跨切割(S,V-S)的一条轻量级边,而且边 (x,y)也横跨该切割,所以应有。原创 2024-01-03 16:26:08 · 850 阅读 · 0 评论 -
算法导论复习——CHP15 动态规划
T的左子树的所有元素比根结点中的元素小;T的右子树的所有元素比根结点中的元素大;T的左子树和右子树也是二叉搜索树。给定一个n个关键字的已排序的序列K=(不失一般性,设 k1原创 2024-01-01 21:10:02 · 1040 阅读 · 0 评论 -
算法导论复习——CHP4 分治策略
(但实际上,采用Strassen算法作递归运算,需要创建大量的动态二维数组,其中分配堆 内存空间将占用大量计算时间,从而掩盖了Strassen算法的优势。用T(n)表示对规模为n的问题进行求解的时间,则规模分别为n1和n2的子问题的求解时间可表示为T(n1 )和T(n2)。1)分解(Divide):将原问题分为若干个规模较小、相互独立,形式与原 问题一样的子问题;3)合并(Combine):将两个有序的子数组合并成有序的原数组。3)合并(Combine):将子问题的解合并成原问题的解。原创 2024-01-01 07:39:25 · 1447 阅读 · 0 评论 -
算法导论复习——CHP3 函数的增长
研究算法的渐进效率,给出算法运行时间随问题规模的变化关系,给出时间 / 空间复杂度限界函数的定义,引入渐进记号。记算法的实际执行时间为f(n),分析所得的限界函数为g(n)。其中,n :问题规模的某种测度。f(n) :是与机器及语言有关的量。g(n) :是事前分析的结果,一个形式简单的函数,与频率计数有关、 而与机器及语言无关。原创 2023-12-31 17:35:41 · 877 阅读 · 1 评论 -
《算法导论》复习——CHP1、CHP2 算法基础
算法是一组有穷的规则,规定了解决某一特定类型问题的一系列运算。关心算法的正确性和效率。确定性、能行性、输入、输出、有穷性。在第一次进入循环之前成立、以后每次循环之后还成立的关系。原创 2023-12-30 21:43:58 · 411 阅读 · 0 评论