计算机算法与分析
本自具足反求诸己
道生之,德畜之,物形之,势成之。
德之自身,其德乃真。
展开
-
算法概述
算法是什么?算法是解决问题的一种方法或者一个过程,更严格的讲,算法是由若干条指令组成的有穷序列,而且满足以下四条性质:a:输入。参数b:输出。返回结果c:确定性。指令语义语法无二义性d:有限性。执行次数有限程序是什么?程序是算法采用某种设计语言的具体实现。程序可以不满足算法的四条性质。算法的复杂性分析算法的复杂性是指运行该算法所需要的计算机资源是原创 2016-11-20 11:49:08 · 571 阅读 · 0 评论 -
递归与分治策略
任何可以用计算机求解的问题所需要的计算时间都与问题的规模相关。规模越小,求解时间往往越短,也容易处理。要想解决一个规模较大的问题,有时会很困难。分治策略是将一个难以解决的问题分割成一些规模较小的问题,然后降低问题的处理难度。如果分割成的小规模问题都是可解的,就可以利用小规模问题的解求解出原问题的解。在这种情况下可以不断使用分治策略,使问题的规模不断的缩小,这样子问题缩小到很容易求解出解。由此自然引原创 2016-11-20 12:31:03 · 610 阅读 · 0 评论 -
动态规划策略
动态规划的算法策略必须要从数学上的某个定理说起:如果某个决策满足最优化,那么在这个决策的某个阶段性状态下,它的基于当前状态下的剩余决策也是最优的。如果一个决策在任一阶段性状态下,它的基于当前状态下的剩余决策总是最优的,那么这个决策在整体上是最优的。这里面有几个非常要注意的条件:a:首先我们要确定我们的问题是在基于多阶段的情况下b:问题是在多阶段下寻求某种最优的状态c:需要验原创 2016-11-20 15:49:49 · 1230 阅读 · 0 评论 -
回溯法
回溯法有“通用解题法”之称。用它可以系统地索索一个问题的所有解和任一解。它是一个既带有系统性又带有跳跃性的搜索算法。它在问题的解空间树中,按深度优先遍历的策略,从根结点出发搜索解空间树。算法搜索到解空间树的任一结点时,先判断该结点是否包含包含问题的解。如果不包含则跳过对以该结点为根的子树的搜索,逐层向其父结点回溯。否则进入该子树,继续按深度优先策略搜索。只求一个解时只要第一搜索到叶子结点,从叶子结原创 2016-12-04 15:29:21 · 764 阅读 · 0 评论 -
分支限界法
分支界限法是在解空间上找出满足约束条件的一个解,或是在满足约束条件的解中找出使一目标函数值达到极大或极小的解,即在某种意义下的最优解。分支界限法以港独优先或以最小耗费优先的方式搜索解空间。分支界限法的策略是:在扩展结点处,先生成其所有的儿子结点,然后再从当前的活结点列表中选择下一个扩展结点。为了有效的选择下一个扩展结点,加速搜索进程,在每一或结点处计算一个函数值(限界),并根据函数值,从当前活结点原创 2016-12-04 18:02:13 · 2164 阅读 · 0 评论 -
随机化算法
随机化算法允许在执行过程中随机地选择下一个计算步骤。在许多情况下,当算法在执行过程中面临一个选择时,随机化选择常比最优选择省事。因此随机化算法在很大程度上降低算法的复杂度。随机化算法的一个基本特征是对所求问题的同一实例用同一随机化算法求解两次可能得到完全不同的效果。不仅是结果,甚至是时间都有可能相差很大。一般情况下,将随机化算法大致分为四类:数值随机化算法、蒙特卡罗算法,拉斯维加斯算法、和舍伍德算原创 2016-12-04 21:35:41 · 5127 阅读 · 0 评论 -
贪心算法
贪心算法是通过一系列的选择来得到问题的解。它所做的选择都是在当前状态下局部最优选择,即贪心选择。这种启发式的策略并不总是有效,但能够奏效的时候能够达到预期目标。能够使用贪心选择解决的问题一般有两个重要的性质:贪心选择性质和最优子结构性质。贪心选择性质是指所求问题的整体最优解可以通过一系列局部的最优选择(贪心选择)来实现。贪心选择是立足于当前已有的选择的接下来将要进行的下一步选择。动态规划的选择原创 2016-11-26 09:43:31 · 582 阅读 · 0 评论