# 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 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:

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 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 − −

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?

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

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

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

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!

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

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)

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)

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

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

Compute n! in BlueJ…

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

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

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

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

Compute n th Fibonacci in BlueJ…

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

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

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

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

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

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

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

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

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