算法导论
This presentation is the property of its rightful owner.
Sponsored Links
1 / 31

算法导论 PowerPoint PPT Presentation


  • 167 Views
  • Uploaded on
  • Presentation posted in: General

算法导论. 第二课 Erik Demaine 教授. 求解递归. 讲稿 1 中合并排序的分析需要求解一个递归 求解递归就像求解积分,微分方程一样。 学会一些技巧 讲稿 3 :递归的应用. 第三天 算法导论 L2. 2. 替代法. 最通用的方法: 猜测 解的形式。 通过推导 验证。 解 出常数。. 例子 :. T ( n ) = 4 T ( n /2) + n. [ 假设 T(1) = Θ(1) .] 猜测 O(n 3 ) . ( 分别证明 O 和 Ω .) 假设 T(k) ≤ ck 3 对于 k< n .

Download Presentation

算法导论

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


3843252

算法导论

第二课

Erik Demaine 教授


3843252

求解递归

  • 讲稿 1中合并排序的分析需要求解一个递归

  • 求解递归就像求解积分,微分方程一样。

    • 学会一些技巧

  • 讲稿 3 :递归的应用

第三天 算法导论L2.2


3843252

替代法

最通用的方法:

  • 猜测解的形式。

  • 通过推导验证。

  • 解出常数。

例子:

T(n) = 4T(n/2) + n

  • [假设T(1) = Θ(1).]

  • 猜测O(n3). (分别证明O 和Ω.)

  • 假设T(k) ≤ ck3对于k< n.

  • 通过推导证明T(n) ≤cn3.

第三天 算法导论L2.3


3843252

替代法举例

T(n) = 4T(n/2) + n

≤ 4c(n/2)3 + n

= (c/2)n3 + n

= cn3 –((c/2)n3 – n)←期望– 余项

≤ cn3←期望

(c/2)n3 – n ≥ 0, 例如,如果c ≥ 2 且n ≥ 1.

余项

第三天 算法导论L2.4


3843252

例子(续)

  • 我们必须要处理初始条件,也就是说,首先要保证推导在初始情况成立。

  • 初始:当n0为适当的常量时,对于所有n< n0T(n) = Θ(1)都成立。

  • 如果我们选择足够大的c,那么对于1 ≤ n < n0, “Θ(1)” ≤ cn3.

边界并不紧密 !

第三天 算法导论L2.5


3843252

更接近的上界?

我们要证明T(n) = O(n2).

假设对于k < n:T(k) ≤ ck2

T(n)= 4T(n/2) + n

≤ 4c(n/2)2 + n

= cn2 + n

= O (n2)

= cn2 – (- n) [ 期望 – 余项]

≤ cn2没有任何c > 0满足. 失败!

错误!我们必须证明 I.H.

第三天 算法导论L2.6


3843252

更接近的上界!

思想:加强推导的假设.

• 减一个低阶项

推导假设:对于k < n, T(k) ≤ c1k2 – c2k.

T(n)= 4T(n/2) + n

= 4(c1(n/2)2–c2(n/2))+ n

= c1n2–2c2n+ n

= c1n2–c2n–(c2n–n)

≤ c1n2–c2n如果c2≥1.

选择足够大的c1 使初始条件成立。

第三天 算法导论L2.7


3843252

递归树方法

  • 递归树对算法递归执行的花费(时间)建模

  • 递归树方法可以用作替代法之前的猜想。

  • 递归树方法可能不是很可靠,就像任何使用椭圆的方法一样

  • 然而,递归树方法有启发的作用

第三天 算法导论L2.8


3843252

递归树方法举例

第三天 算法导论L2.9


3843252

递归树方法举例

第三天 算法导论L2.10


3843252

递归树方法举例

第三天 算法导论L2.11


3843252

递归树方法举例

第三天 算法导论L2.12


3843252

递归树方法举例

第三天 算法导论L2.13


3843252

递归树方法举例

第三天 算法导论L2.14


3843252

递归树方法举例

第三天 算法导论L2.15


3843252

递归树方法举例

第三天 算法导论L2.16


3843252

递归树方法举例

第三天 算法导论L2.17


3843252

递归树方法举例

第三天 算法导论L2.18


3843252

递归树方法举例

第三天 算法导论L2.19


3843252

大师法

大师法适用于下面的递归形式

第三天 算法导论L2.20


3843252

三种情况

第三天 算法导论L2.21


3843252

三种情况(续)

第三天 算法导论L2.22


3843252

举例

第三天 算法导论L2.23


3843252

举例

这时大师法不适用。特别是,对任意常数

我们有

第三天 算法导论L2.24


Akra bazzi

通用方法(Akra-Bazzi)

只要用 代替 ,结果和大师法相同。

(Akra 和Bazzi证明了更加通用的结果。)

令p为下列方程的唯一解

第三天 算法导论L2.25


3843252

大师法的思路

第三天 算法导论L2.26


3843252

大师法的思路

情况1:加权从根到叶子几何级数

增长。叶子在总的权重仅仅占常量

部分

第三天 算法导论L2.27


3843252

大师法的思路

情况2: (k=0)在logbn层中

每层的加权基本相同

第三天 算法导论L2.28


3843252

大师法的思路

情况3:权重从根到叶子几何级数

递减。根在整个权重中仅仅是常量

部分

第三天 算法导论L2.29


3843252

结论

  • 下次: 应用大师法

  • 大师法理论的证明,参考CLRS

第三天 算法导论L2.30


3843252

附录:几何序列

第三天 算法导论L2.31


  • Login