算法导论的主要思想
涉及分治思想,动态规划,贪心算法,回溯法,分支限界法,随机概率算法。
几里路遥
非志无以成学,非学无以广才。
展开
-
回溯法
回溯法的基本思想:回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。经典例子:回溯法子集树解决数字组合问题1.问题:找出从自然数1、2、3、...、n中任取r个数的所有组合(组合需要有序)。...原创 2019-06-20 19:56:28 · 279 阅读 · 0 评论 -
分支限界法
分支限界法的基本思想:求解目标:分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义下的最优解。 搜索方式:以广度优先或以最小耗费优先的方式搜索解空间树。分支限界法常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树。 在分支限界法中,每一个活结点只有一次机会成为扩展结点。活结点一旦成为扩展结点,就一次性产生其所有儿子结点。在这些儿子结点中,...原创 2019-04-23 17:32:51 · 45482 阅读 · 3 评论 -
贪心算法
贪心算法的思想: 贪心算法是指:在每一步求解的步骤中,它要求“贪婪”的选择最佳操作,并希望通过一系列的最优选择,能够产生一个问题的(全局的)最优解。 贪心算法每一步必须满足一下条件: 1、可行的:即它必须满足问题的约束。 2、局部最优:他是当前步骤中所有可行选择中最佳的局部选择。 3、不可取消:即选择一旦做出,在算法的后面步骤就不可改变了。贪心算法的经典例子:...原创 2019-03-15 19:03:03 · 288 阅读 · 0 评论 -
动态规划
动态规划算法的思想:把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解。动态规划一般可分为线性动规,区域动规,树形动规,背包动规四类。线性动规:拦截导弹,合唱队形等;区域动规:石子合并, 统计单词个数,炮兵布阵等;树形动规:二分查找树,数字三角形,三角树塔等;背包问题:01背包问题,完全背包问题,等;经典动态规划算法举例:1.三角树塔问题。问题...原创 2019-02-22 16:32:29 · 216 阅读 · 0 评论 -
分治算法
分治算法的思想:将问题规模为n的原问题归纳为规模n/2的两个子问题,或规模n/m的m'个子问题;若规模缩小的子问题仍不能简单求解,则继续归约为规模更小的问题;分别求解小规模的子问题,并逐步综合得到原问题的解。分治算法改进途径:1.通过代数变换减少子问题数。 2.通过预处理减少递归内部计算量。分治算法的经典例子:1.查找峰顶...原创 2018-12-27 17:07:44 · 343 阅读 · 0 评论