
算法导论
sunshine_lyn
欢迎访问个人博客: https://www.elainelv.github.io/
展开
-
《算法导论》之线性规划(2)单纯形算法
线性规划(Linear Programming,LP)是非常经典的算法之一,而解决该问题的最常用方法是单纯形法。本博文致力于用最简单、最详细的语言一步步解释单纯形算法的过程并加以详细的解释。中学课程里,我们都简单地接触过线性规划,那时候一般都是分析每个约束,在二维平面上画出直线,得到可行域,然后以固定斜率作出目标函数直线,在可行域内移动直线,在y轴上的截距就是最优解。而往往最优解的地方是通过(凸)...转载 2018-07-15 11:54:57 · 677 阅读 · 0 评论 -
《算法导论》之线性规划(1)关于标准型和松弛型的理解
一般线性规划一个线性规划问题是一个线性函数最小化或最大化的问题,该线性函数服从一组有限个线性约束。如果要最小化,则称此线性规划为最小化线性规划;如果要最大化,则称为最大化线性规划。 已知一组实数a1,a2,…,an和一组变量x1,x2,…,xn。给出定义在这些变量上的线性函数f: 首先,考虑两个变量的线性规划: 最大化 : x1+x2 满足约束 : 所有满足上述约束式的变...原创 2018-07-14 19:10:59 · 15841 阅读 · 3 评论 -
《算法导论》之动态规划重构解
动态规划(dynamic programming)就是把问题分解成一个个的子问题,然后对子问题进行求解。下面用通俗易懂的语言来解释下动态规划中关于重构解的理解。既保存最优切割收益也保存切割方案!重构解1、保存最优切割收益也保存切割方案的算法用 s[ j ] = i 来表示,长度为 j 的钢条(当然在构建模型的时候也可以是其他含义)所得的最优解为 i 。上述思想写成BOTTOM-UP-CU...原创 2018-09-20 18:49:08 · 761 阅读 · 0 评论 -
《算法导论》之最优二叉搜索树
最优二叉搜索树假定我们正在设计一个程序,实现英语文本到法语的翻译。对英语文本中出现的每个单词,我们需要查找对应的法语单词。为了实现这些查找操作,可以创建一棵二叉搜索树,将n个英语单词作为关键字,对应的法语单词作为关联数据。由于文本中的每个单词都要进行搜索,我们希望花费在搜索上的总时间尽量少。通过红黑树或其他平衡搜索树结构,我们可以假定每次搜索时间为O(lgn) 。但由于单词出现的频率是不同的,...原创 2018-09-20 21:04:29 · 19150 阅读 · 6 评论