Presentation is loading. Please wait.

Presentation is loading. Please wait.

CMSC 150 RECURSION CS 150: Mon 26 Mar 2012. 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.

Similar presentations


Presentation on theme: "CMSC 150 RECURSION CS 150: Mon 26 Mar 2012. 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."— Presentation transcript:

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…


Download ppt "CMSC 150 RECURSION CS 150: Mon 26 Mar 2012. 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."

Similar presentations


Ads by Google