Download presentation

Presentation is loading. Please wait.

Published byMargaretMargaret Wright Modified over 2 years ago

1
1 Recursive Algorithm Analysis Dr. Ying Lu ylu@cse.unl.edu RAIK 283: Data Structures & Algorithms September 13, 2012

2
2 b Giving credit where credit is due: Most of the lecture notes are based on the slides from the Textbook’s companion websiteMost of the lecture notes are based on the slides from the Textbook’s companion websitehttp://www.aw-bc.com/info/levitin Several slides are from Hsu Wen Jing of the National University of SingaporeSeveral slides are from Hsu Wen Jing of the National University of Singapore I have modified them and added new slidesI have modified them and added new slides RAIK 283: Data Structures & Algorithms

3
3 Example: a recursive algorithm b Algorithm: if n=0 then F(n) := 1 else F(n) := F(n-1) * n return F(n)

4
4 Algorithm F(n) // Compute the n th Fibonacci number recursively //Input: A nonnegative integer n //Output: the n th Fibonacci number if n 1 return n else return F(n-1) + F(n-2) Example: another recursive algorithm

5
5 Recurrence Relation b Recurrence Relation

6
6 Recurrence Relation b Recurrence Relation: an equation or inequality that describes a function in terms of its value on smaller inputs

7
7 Example: a recursive algorithm b Algorithm: if n=0 then F(n) := 1 else F(n) := F(n-1) * n return F(n) b What does this algorithm compute?

8
8 Example: a recursive algorithm b Algorithm: if n=0 then F(n) := 1 else F(n) := F(n-1) * n return F(n) b What does this algorithm compute? b What’s the basic operation of this algorithm?

9
9 Example: recursive evaluation of n ! b Recursive definition of n!: b Algorithm: if n=0 then F(n) := 1 else F(n) := F(n-1) * n return F(n) b M(n): number of multiplications to compute n! with this recursive algorithm

10
10 Example: recursive evaluation of n ! b Recursive definition of n!: b Algorithm: if n=0 then F(n) := 1 else F(n) := F(n-1) * n return F(n) b M(n): number of multiplications to compute n! with this recursive algorithm b Could we establish a recurrence relation for deriving M(n)?

11
11 Example: recursive evaluation of n ! b Definition: n ! = 1*2*…*(n-1)*n b Recursive definition of n!: b Algorithm: if n=0 then F(n) := 1 else F(n) := F(n-1) * n return F(n) b M(n) = M(n-1) + 1 b Initial Condition: M(0) = ?

12
12 Example: recursive evaluation of n ! b Recursive definition of n!: b Algorithm: if n=0 then F(n) := 1 else F(n) := F(n-1) * n return F(n) b M(n) = M(n-1) + 1 b Initial condition: M(0) = 0 b Explicit formula for M(n) in terms of n only?

13
13 Time efficiency of recursive algorithms Steps in analysis of recursive algorithms: b Decide on parameter n indicating input size b Identify algorithm’s basic operation b Determine worst, average, and best case for inputs of size n b Set up a recurrence relation and initial condition(s) for C(n)-the number of times the basic operation will be executed for an input of size n b Solve the recurrence to obtain a closed form or determine the order of growth of the solution (see Appendix B)

14
14 EXAMPLE: tower of hanoi b Problem: Given three pegs (A, B, C) and n disks of different sizesGiven three pegs (A, B, C) and n disks of different sizes Initially, all the disks are on peg A in order of size, the largest on the bottom and the smallest on topInitially, all the disks are on peg A in order of size, the largest on the bottom and the smallest on top The goal is to move all the disks to peg C using peg B as an auxiliaryThe goal is to move all the disks to peg C using peg B as an auxiliary Only 1 disk can be moved at a time, and a larger disk cannot be placed on top of a smaller oneOnly 1 disk can be moved at a time, and a larger disk cannot be placed on top of a smaller one AC B n disks

15
15 EXAMPLE: tower of hanoi b Design a recursive algorithm to solve this problem: Given three pegs (A, B, C) and n disks of different sizesGiven three pegs (A, B, C) and n disks of different sizes Initially, all the disks are on peg A in order of size, the largest on the bottom and the smallest on topInitially, all the disks are on peg A in order of size, the largest on the bottom and the smallest on top The goal is to move all the disks to peg C using peg B as an auxiliaryThe goal is to move all the disks to peg C using peg B as an auxiliary Only 1 disk can be moved at a time, and a larger disk cannot be placed on top of a smaller oneOnly 1 disk can be moved at a time, and a larger disk cannot be placed on top of a smaller one AC B n disks

16
16 EXAMPLE: tower of hanoi b Step 1: Solve simple case when n<=1? Just trivial AC B AC B Move(A, C)

17
17 EXAMPLE: tower of hanoi b Step 2: Assume that a smaller instance can be solved, i.e. can move n-1 disks. Then? AC B AC B AC B

18
18 EXAMPLE: tower of hanoi AC B AC B AC B AC B

19
19 EXAMPLE: tower of hanoi AC B AC B AC B AC B TOWER(n, A, B, C)

20
20 EXAMPLE: tower of hanoi AC B AC B AC B AC B TOWER(n, A, B, C) TOWER(n-1, A, C, B) Move(A, C) TOWER(n-1, B, A, C)

21
21 EXAMPLE: tower of hanoi TOWER(n, A, B, C) { TOWER(n-1, A, C, B); Move(A, C); TOWER(n-1, B, A, C) } if n<1 return;

22
22 EXAMPLE: tower of hanoi TOWER(n, A, B, C) { TOWER(n-1, A, C, B); Move(A, C); TOWER(n-1, B, A, C) } if n<1 return; b Algorithm analysis: b Input size? Basic operation?

23
23 EXAMPLE: tower of hanoi TOWER(n, A, B, C) { TOWER(n-1, A, C, B); Move(A, C); TOWER(n-1, B, A, C) } if n<1 return; b Algorithm analysis: b Do we need to differentiate best case, worst case & average case for inputs of size n?

24
24 EXAMPLE: tower of hanoi TOWER(n, A, B, C) { TOWER(n-1, A, C, B); Move(A, C); TOWER(n-1, B, A, C) } if n<1 return; b Algorithm analysis: b Set up a recurrence relation and initial condition(s) for C(n)

25
25 EXAMPLE: tower of hanoi TOWER(n, A, B, C) { TOWER(n-1, A, C, B); Move(A, C); TOWER(n-1, B, A, C) } if n<1 return; b Algorithm analysis: b C(n) = 2C(n-1)+1

26
26 In-Class Exercise b P. 76 Problem 2.4.1 (c): solve this recurrence relation: x(n) = x(n-1) + n for n>0, x(0)=0 b P. 77 Problem 2.4.4: consider the following recursive algorithm: Algorithm Q(n)Algorithm Q(n) // Input: A positive integer n If n = 1 return 1 else return Q(n-1) + 2 * n – 1 A. Set up a recurrence relation for this function’s values and solve it to determine what this algorithm computesA. Set up a recurrence relation for this function’s values and solve it to determine what this algorithm computes B. Set up a recurrence relation for the number of multiplications made by this algorithm and solve it.B. Set up a recurrence relation for the number of multiplications made by this algorithm and solve it. C. Set up a recurrence relation for the number of additions/subtractions made by this algorithm and solve it.C. Set up a recurrence relation for the number of additions/subtractions made by this algorithm and solve it.

27
27 Example: BinRec(n) Algorithm BinRec(n) //Input: A positive decimal integer n //Output: The number of binary digits in n’s binary representation if n = 1 return 1 else return BinRec( n/2 ) + 1

28
28 Smoothness rule If T(n) (f(n)) for values of n that are powers of b, where b 2, then T(n) (f(n))

29
29 Example: BinRec(n) Algorithm BinRec(n) //Input: A positive decimal integer n //Output: The number of binary digits in n’s binary representation if n = 1 return 1 else return BinRec( n/2 ) + 1 If C(n) (f(n)) for values of n that are powers of b, where b 2, then C(n) (f(n))

30
30 Fibonacci numbers b The Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21, … b Fibonacci recurrence: F(n) = F(n-1) + F(n-2) F(0) = 0 F(1) = 1 2nd order linear homogeneous recurrence relation with constant coefficients

31
31 Solving linear homogeneous recurrence relations with constant coefficients b Easy first: 1 st order LHRRCCs: C(n) = a C(n -1) C(0) = t … Solution: C(n) = t a n b Extrapolate to 2 nd order L(n) = a L(n-1) + b L(n-2) … A solution?: L(n) = ? b Characteristic equation (quadratic) b Solve to obtain roots r 1 and r 2 (quadratic formula) quadratic formulaquadratic formula b General solution to RR: linear combination of r 1 n and r 2 n b Particular solution: use initial conditions

32
32 Solving linear homogeneous recurrence relations with constant coefficients b Easy first: 1 st order LHRRCCs: C(n) = a C(n -1) C(0) = t … Solution: C(n) = t a n b Extrapolate to 2 nd order L(n) = a L(n-1) + b L(n-2) … A solution?: L(n) = ? b Characteristic equation (quadratic) b Solve to obtain roots r 1 and r 2 (quadratic formula) quadratic formulaquadratic formula b General solution to RR: linear combination of r 1 n and r 2 n b Particular solution: use initial conditions b Explicit Formula for Fibonacci Number: F(n) = F(n-1) +F(n-2)

33
33 1. Definition based recursive algorithm Computing Fibonacci numbers Algorithm F(n) // Compute the n th Fibonacci number recursively //Input: A nonnegative integer n //Output: the n th Fibonacci number if n 1 return n else return F(n-1) + F(n-2)

34
34 2. Nonrecursive brute-force algorithm Computing Fibonacci numbers Algorithm Fib(n) // Compute the n th Fibonacci number iteratively //Input: A nonnegative integer n //Output: the n th Fibonacci number F[0] 0; F[1] 1 for i 2 to n do F[i] F[i-1] + F[i-2] return F[n]

35
35 Computing Fibonacci numbers 3. Explicit formula algorithm Special care in its implementation: Intermediate results are irrational numbers Their approximations in the computer are accurate enough Final round-off yields a correct result

36
36 In-Class Exercises b What is the explicit formula for A(n)? A(n) = 3A(n-1) – 2A(n-2) A(0) = 1 A(1) = 3 b P.83 2.5.3. Climbing stairs: Find the number of different ways to climb an n-stair stair-case if each step is either one or two stairs. (For example, a 3- stair staircase can be climbed three ways: 1-1-1, 1- 2, and 2-1.)

Similar presentations

OK

Appendix B Solving Recurrence Equations ： With Applications to Analysis of Recursive Algorithms.

Appendix B Solving Recurrence Equations ： With Applications to Analysis of Recursive Algorithms.

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Ppt on national education day 2016 Ppt on red hat linux Ppt on data collection methods in quantitative research Ppt on obesity management strategies Ppt on role of information technology in agriculture Ppt on social networking in our lives Ppt on website design and development Ppt on bucky paper uses Ppt on energy giving food meaning Ppt on word association testing