算法导论
pppaass
这个作者很懒,什么都没留下…
展开
-
基础算法之回溯法、分支限界法
一、什么是回溯法 回溯法是一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。二、如何使用 (1)针对所给问题,确定问题的解空间: 首先应明确定义问题的解空间,问题的解空间应至少包含问题的一个(最优)解。 (2)确定结点的扩展搜索规则。 (3)以深度优先方式原创 2015-03-02 08:21:11 · 837 阅读 · 0 评论 -
基础算法之分治法
一、什么是分治法 将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。二、如何使用 (1)将原问题分解为若干个规模较小,相互独立,与原问题形式相同或者不同的子问题。 (2)若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题。 (3)将各个子问题的解合并为原问题的解。三、什么时候使用 分治法所能解决的问原创 2015-03-01 13:30:48 · 347 阅读 · 0 评论 -
基础算法之动态规划
一、什么是动态规划法 动态规划算法通常基于一个递推公式及一个或多个初始状态。 当前子问题的解将由上一次子问题的解推出。使用动态规划来解题只需要多项式时间复杂度。动态规划是一个多阶段决策的过程。与分治法最大的差别是:适合于用动态规划法求解的问题,经分解后得到的子问题往往不是互相独立的(即下一个子阶段的求解是建立在上一个子阶段的解的基础上,进行进一步的求解)。二、如何使用原创 2015-02-27 21:04:29 · 310 阅读 · 0 评论 -
基础算法之贪心算法
一、什么是贪心算法 在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。二、如何使用 (1)建立数学模型来描述问题。 (2)把求解的问题分成若干个子问题。 (3)对每一子问题求解,得到子问题的局部最优解。 (4)把子问题的解局部最优解合成原来解问题的一个解。三、什么时候使原创 2015-03-01 14:48:26 · 323 阅读 · 0 评论