- 博客(5)
- 收藏
- 关注
原创 算法设计与分析——动态规划(五):最长公共子序列
分类目录:《算法设计与分析》总目录在生物应用中,经常需要比较两个(或多个)不同生物体的DNA。一个DNA串由一串称为碱基的分子组成,碱基有腺嘌呤、鸟嘌呤、胞嘧啶和胸腺嘧啶4种类型。我们用英文单词首字母表示4种碱基,这样就可以将一个DNA串表示为有限集A,C,G,T{A,C,G,T}A,C,G,T上的一个字符串。例如,某种生物的DNA可能为S1=ACCGGTCGAGTGCGCGGAAGCCGGCCGAAS_1= ACCGGTCGAGTGCGCGGAAGCCGGCCGAAS1=ACCGGTCGAGTGCGC
2021-07-25 17:16:42 19591 7
原创 算法设计与分析——动态规划(四):动态规划详解
分类目录:《算法设计与分析》总目录虽然我们已经用动态规划方法解决了钢条切割和矩阵链乘法两个问题,但你可能还是弄不清应该在何时使用动态规划。我们关注适合应用动态规划方法求解的最优化问题应该具备的两个要素:最优子结构和子问题重叠。我们还会再次讨论备忘方法,更深入地讨论在自顶向下方法中如何借助备忘机制来充分利用子问题重叠特性。最优子结构用动态规划方法求解最优化问题的第一步就是刻画最优解的结构。如前文所述,如果一个问题的最优解包含其子问题的最优解,我们就称此问题具有最优子结构性质。因此,某个问题是否适合应用动
2021-07-24 15:44:29 13663
原创 算法设计与分析——动态规划(三):矩阵链乘法
分类目录:《算法设计与分析》总目录这个例子是求解矩阵链相乘问题的动态规划算法。给定一个n个矩阵的序列(矩阵链)(A1.A2.⋯ ,An)(A_1. A_2. \cdots, A_n)(A1.A2.⋯,An),我们希望计算它们的乘积A1A2⋯AnA_1A_2\cdots A_nA1A2⋯An其中,我们可以先用括号明确计算次序,然后利用标准的矩阵相乘算法进行计算。由于矩阵乘法满足结合律,因此任何加括号的方法都会得到相同的计算结果。我们称有如下性质的矩阵乘积链为完全括号化的:它是单一矩阵,或者是两个
2021-07-18 22:06:15 12892
原创 算法设计与分析——动态规划(二):钢条切割
分类目录:《算法设计与分析》总目录我们第一个应用动态规划的例子是求解一个如何切割钢条的简单问题。公司购买长钢条,将其切割为短钢条出售。切割工序本身没有成本支出。公司管理层希望知道最佳的切割方案。假定我们知道公司出售一段长度为iii英寸的钢条的价格为ppp。钢条的长度均为整英寸。下图给出了一个价格表的样例。每段长度为iii英寸的钢条为公司带来ppp美元的收益钢条切割问题是这样的:给定一段长度为nnn英寸的钢条和一个价格表ppp,求切割钢条方案,使得销售收益rrr最大。注意,如果长度为nnn英寸的钢条的价
2021-07-17 22:10:08 19294 7
原创 算法设计与分析——动态规划(一):基础知识
分类目录:《算法设计与分析》总目录动态规划(Dynamic Programming)与分治方法相似,都是通过组合子问题的解来求解原问题。分治方法将问题划分为互不相交的子问题,递归地求解子问题,再将它们的解组合起来,求出原问题的解。与之相反,动态规划应用于子问题重叠的情况,即不同的子问题具有公共的子子问题(子问题的求解是递归进行的,将其划分为更小的子子问题)。在这种情况下,分治算法会做许多不必要的工作,它会反复地求解那些公共子子问题。而动态规划算法对每个子子问题只求解一次,将其解保存在一个表格中,从而无需每
2021-07-10 16:20:37 11565
思维导图源文件《预训练模型总览》
2023-06-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人