slide1
Download
Skip this Video
Download Presentation
算法导论

Loading in 2 Seconds...

play fullscreen
1 / 31

算法导论 - PowerPoint PPT Presentation


  • 234 Views
  • Uploaded on

算法导论. 第二课 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 .

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '算法导论' - diamond


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
slide1
算法导论

第二课

Erik Demaine 教授

slide2
求解递归
  • 讲稿 1中合并排序的分析需要求解一个递归
  • 求解递归就像求解积分,微分方程一样。
    • 学会一些技巧
  • 讲稿 3 :递归的应用

第三天 算法导论L2.2

slide3
替代法

最通用的方法:

  • 猜测解的形式。
  • 通过推导验证。
  • 解出常数。

例子:

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

  • [假设T(1) = Θ(1).]
  • 猜测O(n3). (分别证明O 和Ω.)
  • 假设T(k) ≤ ck3对于k< n.
  • 通过推导证明T(n) ≤cn3.

第三天 算法导论L2.3

slide4
替代法举例

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

slide5
例子(续)
  • 我们必须要处理初始条件,也就是说,首先要保证推导在初始情况成立。
  • 初始:当n0为适当的常量时,对于所有n< n0T(n) = Θ(1)都成立。
  • 如果我们选择足够大的c,那么对于1 ≤ n < n0, “Θ(1)” ≤ cn3.

边界并不紧密 !

第三天 算法导论L2.5

slide6
更接近的上界?

我们要证明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

slide7
更接近的上界!

思想:加强推导的假设.

• 减一个低阶项

推导假设:对于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

slide8
递归树方法
  • 递归树对算法递归执行的花费(时间)建模
  • 递归树方法可以用作替代法之前的猜想。
  • 递归树方法可能不是很可靠,就像任何使用椭圆的方法一样
  • 然而,递归树方法有启发的作用

第三天 算法导论L2.8

slide9
递归树方法举例

第三天 算法导论L2.9

slide10
递归树方法举例

第三天 算法导论L2.10

slide11
递归树方法举例

第三天 算法导论L2.11

slide12
递归树方法举例

第三天 算法导论L2.12

slide13
递归树方法举例

第三天 算法导论L2.13

slide14
递归树方法举例

第三天 算法导论L2.14

slide15
递归树方法举例

第三天 算法导论L2.15

slide16
递归树方法举例

第三天 算法导论L2.16

slide17
递归树方法举例

第三天 算法导论L2.17

slide18
递归树方法举例

第三天 算法导论L2.18

slide19
递归树方法举例

第三天 算法导论L2.19

slide20
大师法

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

第三天 算法导论L2.20

slide21
三种情况

第三天 算法导论L2.21

slide22
三种情况(续)

第三天 算法导论L2.22

slide23
举例

第三天 算法导论L2.23

slide24
举例

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

我们有

第三天 算法导论L2.24

akra bazzi
通用方法(Akra-Bazzi)

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

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

令p为下列方程的唯一解

第三天 算法导论L2.25

slide26
大师法的思路

第三天 算法导论L2.26

slide27
大师法的思路

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

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

部分

第三天 算法导论L2.27

slide28
大师法的思路

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

每层的加权基本相同

第三天 算法导论L2.28

slide29
大师法的思路

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

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

部分

第三天 算法导论L2.29

slide30
结论
  • 下次: 应用大师法
  • 大师法理论的证明,参考CLRS

第三天 算法导论L2.30

slide31
附录:几何序列

第三天 算法导论L2.31

ad