Download presentation

Presentation is loading. Please wait.

Published byJett Yardley Modified over 3 years ago

1
CMSC 150 RECURSION CS 150: Mon 26 Mar 2012

2
Motivation : Bioinformatics Example A G A C T A G T T A C C G A G A C G T Want to compare sequences for similarity Similar sequences: common ancestors? Point mutations Insertions Deletions − − A G A C T A G T T A C C G A G A C − − G − T − −

3
Global Alignment Algorithm Think about brute force A G A C T A G T T A C C G A G A C G T Where should gaps go? Enumerate all possible alignments?

4
Global Alignment Algorithm Think about brute force A G A C T A G T T A C C G A G A C G T For two sequences of length L: # of possible global alignments: ~ 2 2L if L = 250, this is ~10 149 alignments @ 1B alignments / second, takes 3.21 X 10 132 years age of universe: ~1.4 X 10 10 years

5
Global Alignment Algorithm Think about brute force A G A C T A G T T A C C G A G A C G T For two sequences of length L: # of possible global alignments: ~ 2 2L if L = 250, this is ~10 149 alignments @ 1B alignments / second, takes 3.21 X 10 132 years age of universe: ~1.4 X 10 10 years

6
Needleman-Wunsch Algorithm Computes optimal global alignment Technique: Uses dynamic programming combine optimal solutions from subproblems number of subproblems must be (relatively) small Typically bottom-up: find solution using a recursive series of simpler solutions

7
Recursion Use same algorithm on smaller subproblems Need: Base case: simplest input possible, solution immediately available Recursive call: invoke the algorithm on a smaller set of the input Without base case, recursion would be infinite!

8
An Example Search phone book for a name start in middle: if found, stop otherwise, repeat process in correct “half” of book Base case: only one name to search Recursive call: search remaining “half” of book

9
Another Example : Factorial n! = n x (n-1) x (n-2) x … x 2 x 1 5! = 5 x 4 x 3 x 2 x 1 = 120 4! = 4 x 3 x 2 x 1= 24 3! = 3 x 2 x 1 = 6 2! = 2 x 1 = 2 1! = 1 0! = 1 (multiplicative identity)

10
Another Example : Factorial n! = n x (n-1) x (n-2) x … x 2 x 1 5! = 5 x 4 x 3 x 2 x 1 = 120 4! = 4 x 3 x 2 x 1= 24 3! = 3 x 2 x 1 = 6 2! = 2 x 1 = 2 1! = 1 0! = 1 (multiplicative identity)

11
Another Example : Factorial n! = n x (n-1) x (n-2) x … x 2 x 1 5! = 5 x 4 x 3 x 2 x 1 = 5 x 4! = 120 4! = 4 x 3 x 2 x 1= 24

12
Another Example : Factorial n! = n x (n-1) x (n-2) x … x 2 x 1 n! = n x (n-1)! Defined recursively: 1if n = 0 n! =n(n-1)!if n > 0

13
Compute n! in BlueJ…

14
Another Example : Fibonacci Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, … After first two, each term is sum of previous two Defined recursively: Let f n be the n th term, n = 0, 1, 2… 0if n = 0 f n =1if n = 1 f n-1 + f n-2 if n > 1

15
Another Example : Fibonacci Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, … 0if n = 0 f n =1if n = 1 f n-1 + f n-2 if n > 1 f 0 = 0f 1 = 1 f 2 = f 1 + f 0 = 1 + 0 = 1 f 3 = f 2 + f 1 = 1 + 1 = 2 f 4 = f 3 + f 2 = 2 + 1 = 3

16
Fibonacci in Nature Fibonacci spiral: Fibonacci tiling: squares of sizes 1, 1, 2, 3, 5, 8, 13, 21, 34 Draw circular arc connecting opposite corners of squares

17
Fibonacci in Nature Fibonacci spiral: Fibonacci tiling: squares of sizes 1, 1, 2, 3, 5, 8, 13, 21, 34 Draw circular arc connecting opposite corners of squares More explanation: Fibonacci in natureFibonacci in nature

18
Compute n th Fibonacci in BlueJ…

19
Another Example : Towers of Hanoi 3 towers, n disks each of different size Rules: Can move only one disk at a time No larger disk can be on top of smaller disk Goal: move n-tower from 1 st tower to 3 rd tower

20
Think Recursively n n - 1 Consider the n-tower as a tower of n-1 and a tower of 1…

21
Think Recursively n - 1 If we can somehow move the n-1 tower to the middle…

22
Think Recursively n - 1 And then the largest disk to the right…

23
Think Recursively n - 1 And finally the n-1 tower to the right, we have a solution!

24
Think Recursively What is the base case? a tower of n = 1 disk

25
Think Recursively n n - 1 What is the recursive step? Move n-1 tower to middle Then largest disk to right Then n-1 tower from middle to right 1 1 2 2 3 3

26
Think Recursively n n - 1 In pseudocode: moveTower( n-1, 1, 2 ); moveDisk( 1, 3 ); moveTower( n-1, 2, 3 ); 1 1 2 2 3 3 Note that we do not explicitly implement the steps for a tower of size n-1

27
Solve Towers in BlueJ…

Similar presentations

OK

Chapter 2 Recursion: The Mirrors. © 2005 Pearson Addison-Wesley. All rights reserved2-2 Recursive Solutions Recursion is an extremely powerful problem-solving.

Chapter 2 Recursion: The Mirrors. © 2005 Pearson Addison-Wesley. All rights reserved2-2 Recursive Solutions Recursion is an extremely powerful problem-solving.

© 2018 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Genetics for kids ppt on batteries Ppt on multivariate statistical analysis Ppt on operating systems Ppt on unity in diversity in india free download Ppt on astronomy and astrophysics journals Ppt on gir national park Ppt on mahatma gandhi biography Ppt on creativity and innovation management syllabus Ppt on resources utilization and development Ppt on disaster management in india