CSCI2110 – Discrete Mathematics Tutorial 6 Recursion Wong Chung Hoi (Hollis) 12-7-2011 Agenda • • • • • • How to solve recurrence Counting Rabbits Double Tower of Hanoi Tower of Hanoi with adjacency requirement Counting strings Triangulated polygon How to solve recurrence • Recurrence Equation and Boundary Values – E.g. Rn = Rn-1 + Rn-2 + n, T0 = 0, T1 = 1 • Solving recurrence problem: 1. Define a recurrence variable, e.g. Rn 2. Try for a few base cases, e.g. R1, R2,… 3. Express Rn in terms of Rn-1, Rn-2,… • If it is not possible, try another approach 4. Find its closed form if necessary, e.g. calculating large n • By observation, guessing or iteration 5. Verify the closed form • By base cases or induction Agenda • • • • • • How to solve recurrence Counting Rabbits Double Tower of Hanoi Tower of Hanoi with adjacency requirement Counting strings Triangulated polygon Counting Rabbits - Problem • Problem – Start with 1 pair of baby rabbit. – Rabbits take 2 months to become an adult. – Adult rabbits gives birth to 3 pairs of baby rabbits every month. – Rabbits NEVER DIE! – Number of pairs of rabbits in the end of the year? 1. Denote Rn as the number of rabbit after n month. 2. R0= 1, R1 = 1, R2 = 1, R3 = 3+1=4, R4 = 4+3 = 7 … Counting Rabbits - Solution 3. Observation: Rabbit born at nth month = 3Rn-3 – Rn = 3Rn-3 + Rn-1 – By Repeatedly substitution R5 = 10 R6 = 22 R7= 43 R8 = 73 R9 = 139 R10 = 268 R11 = 487 R12 = 904 Agenda • • • • • • How to solve recurrence Counting Rabbits Double Tower of Hanoi Tower of Hanoi with adjacency requirement Counting strings Triangulated polygon Double tower of Hanoi – Problem • How many moves is needed to move the whole tower? 1. Denote Tn as the number of moves for moving 2n discs from one pole to another. A 2n discs B C Double tower of Hanoi – Solution 2. T1 = ? Double tower of Hanoi – Solution 2. T1 = 1 Double tower of Hanoi – Solution 2. T1 = 2 Double tower of Hanoi – Solution 2. T1 = 2, T2 = ? Double tower of Hanoi – Solution 2. T1 = 2, T2 = 1 Double tower of Hanoi – Solution 2. T1 = 2, T2 = 2 Double tower of Hanoi – Solution 2. T1 = 2, T2 = 3 Double tower of Hanoi – Solution 2. T1 = 2, T2 = 4 Double tower of Hanoi – Solution 2. T1 = 2, T2 = 5 Double tower of Hanoi – Solution 2. T1 = 2, T2 = 6, T3 = ? 3. What is the recurrence equation? Double tower of Hanoi – Solution 3. Observation: – We must first move the top 2(n-1) discs Double tower of Hanoi – Solution 3. Observation: – We must first move the top 2(n-1) discs – Then move the 2 largest discs Double tower of Hanoi – Solution 3. Observation: – We must first move the top 2(n-1) discs – Then move the 2 largest discs Double tower of Hanoi – Solution 3. Observation: – We must first move the top 2(n-1) discs – Then move the 2 largest discs – Move the 2(n-1) discs again Double tower of Hanoi – Solution 3. Observation: – – – – We must first move the top 2(n-1) discs Then move the 2 largest discs Move the 2(n-1) discs again Tn = Tn-1 + 2 + Tn-1 = 2Tn-1 + 2 Double tower of Hanoi – Solution 4. Finding the closed form of Tn = 2Tn-1 + 2 – By iteration: Tn = 2Tn-1 + 2 = 2(2Tn-2 + 2) + 2 = 22Tn-2+22+2 = 22(2Tn-3+2)+22+2 = 23Tn-3+23+22+2 … = 2n-1T1+2n-1+2n-2+…+2 = 2n+2n-1+…+2 = 2(1-2n) / (1-2) = 2n+1-2 Double tower of Hanoi – Solution 5. Verifying Tn = 2Tn-1+2, T1 = 2 is equivalent to Tn=2n+1-2 – By induction: • • • Case n = 1, T1 = 21+1-2 = 2 Assume when n = k-1, they are equivalent Case n = k, Tk = 2Tk-1+2 = 2(2(k-1)+1-2) + 2 = 2k+1 -2 Double tower of Hanoi – Extension • What about triple, quadruple tower of Hanoi? • What if we have to preserve the order of disc? Double tower of Hanoi – Extension • What about triple, quadruple tower of Hanoi? • What if we have to preserve the order of disc? Double tower of Hanoi – Extension • What about triple, quadruple tower of Hanoi? • What if we have to preserve the order of disc? Double tower of Hanoi – Extension 1. Let Sn be the number of moves for 2n discs that preserves order. 2. S1 = ? Double tower of Hanoi – Extension 1. Let Sn be the number of moves for 2n discs that preserves order. 2. S1 = 1 Double tower of Hanoi – Extension 1. Let Sn be the number of moves for 2n discs that preserves order. 2. S1 = 2 Double tower of Hanoi – Extension 1. Let Sn be the number of moves for 2n discs that preserves order. 2. S1 = 3 Double tower of Hanoi – Extension 1. Let Sn be the number of moves for 2n discs that preserves order. 2. S1 = 3, S2 = ? Double tower of Hanoi – Extension 1. Let Sn be the number of moves for 2n discs that preserves order. 2. S1 = 3, S2 = 1 Double tower of Hanoi – Extension 1. Let Sn be the number of moves for 2n discs that preserves order. 2. S1 = 3, S2 = 2 Double tower of Hanoi – Extension 1. Let Sn be the number of moves for 2n discs that preserves order. 2. S1 = 3, S2 = 3 Double tower of Hanoi – Extension 1. Let Sn be the number of moves for 2n discs that preserves order. 2. S1 = 3, S2 = 4 Double tower of Hanoi – Extension 1. Let Sn be the number of moves for 2n discs that preserves order. 2. S1 = 3, S2 = 5 Double tower of Hanoi – Extension 1. Let Sn be the number of moves for 2n discs that preserves order. 2. S1 = 3, S2 = 6 Double tower of Hanoi – Extension 1. Let Sn be the number of moves for 2n discs that preserves order. 2. S1 = 3, S2 = 7 Double tower of Hanoi – Extension 1. Let Sn be the number of moves for 2n discs that preserves order. 2. S1 = 3, S2 = 8 Double tower of Hanoi – Extension 1. Let Sn be the number of moves for 2n discs that preserves order. 2. S1 = 3, S2 = 9 Double tower of Hanoi – Extension 1. Let Sn be the number of moves for 2n discs that preserves order. 2. S1 = 3, S2 = 10 Double tower of Hanoi – Extension 1. Let Sn be the number of moves for 2n discs that preserves order. 2. S1 = 3, S2 = 11 Double tower of Hanoi – Extension 3. Observation: – Sn = Double tower of Hanoi – Extension 3. Observation: – Sn = Sn-1 Double tower of Hanoi – Extension 3. Observation: – Sn = Sn-1 + 1 Double tower of Hanoi – Extension 3. Observation: – Sn = Sn-1 + 1 + Sn-1 Double tower of Hanoi – Extension 3. Observation: – Sn = Sn-1 + 1 + Sn-1 + 1 Double tower of Hanoi – Extension 3. Observation: – Sn = Sn-1 + 1 + Sn-1 + 1 + Sn-1 Double tower of Hanoi – Extension 3. Observation: – Sn = Sn-1 + 1 + Sn-1 + 1 + Sn-1 + 1 Double tower of Hanoi – Extension 3. Observation: – Sn = Sn-1 + 1 + Sn-1 + 1 + Sn-1 + 1 + Sn-1 – In previous example, Tn-1 moves actually move 2(n-1) discs tower with only bottom layer flipped Double tower of Hanoi – Extension 3. Observation: – Sn = Sn-1 + 1 + Sn-1 + 1 + Sn-1 + 1 + Sn-1 – In previous example, Tn-1 moves actually move 2(n-1) discs tower with only bottom layer flipped Double tower of Hanoi – Extension 3. Observation: – Sn = Sn-1 + 1 + Sn-1 + 1 + Sn-1 + 1 + Sn-1 – In previous example, Tn-1 moves actually move 2(n-1) discs tower with only bottom layer flipped Double tower of Hanoi – Extension 3. Observation: – Sn = Sn-1 + 1 + Sn-1 + 1 + Sn-1 + 1 + Sn-1 – In previous example, Tn-1 moves actually move 2(n-1) discs tower with only bottom layer flipped Double tower of Hanoi – Extension 3. Observation: – Sn = Sn-1 + 1 + Sn-1 + 1 + Sn-1 + 1 + Sn-1 – In previous example, Tn-1 moves actually move 2(n-1) discs tower with only bottom layer flipped Double tower of Hanoi – Extension 3. Observation: – Sn = Sn-1 + 1 + Sn-1 + 1 + Sn-1 + 1 + Sn-1 – In previous example, Tn-1 moves actually move 2(n-1) discs tower with only bottom layer flipped Double tower of Hanoi – Extension 3. Observation: – Sn = Tn-1 + 1 + Tn-1 + 1 + Tn-1 + 1 + Tn-1 = 4Tn-1 + 3 – In previous example, Tn-1 moves actually move 2(n-1) discs tower with only bottom layer flipped Double tower of Hanoi – Extension 4. Exercise: Show that Sn = 2n+2-5 5. Exercise: Verify by induction Tower of Hanoi with Adjacency Requirement • From A to C, from C to A is now allowed • We want to move the tower from A to C 1. Let Tn be the number of move from A to C A B C Agenda • • • • • • How to solve recurrence Counting Rabbits Double Tower of Hanoi Tower of Hanoi with adjacency requirement Counting strings Triangulated polygon Tower of Hanoi with Adjacency Requirement 2. T1 = ? A B C Tower of Hanoi with Adjacency Requirement 2. T1 = 1 A B C Tower of Hanoi with Adjacency Requirement 2. T1 = 2 A B C Tower of Hanoi with Adjacency Requirement 2. T1 = 2, T2 = ? A B C Tower of Hanoi with Adjacency Requirement 2. T1 = 2, T2 = 1 A B C Tower of Hanoi with Adjacency Requirement 2. T1 = 2, T2 = 2 A B C Tower of Hanoi with Adjacency Requirement 2. T1 = 2, T2 = 3 A B C Tower of Hanoi with Adjacency Requirement 2. T1 = 2, T2 = 4 A B C Tower of Hanoi with Adjacency Requirement 2. T1 = 2, T2 = 5 A B C Tower of Hanoi with Adjacency Requirement 2. T1 = 2, T2 = 6 A B C Tower of Hanoi with Adjacency Requirement 2. T1 = 2, T2 = 7 A B C Tower of Hanoi with Adjacency Requirement 2. T1 = 2, T2 = 8, T3 = ? A B C Tower of Hanoi with Adjacency Requirement 3. Observation: – Tn = ? A B C Tower of Hanoi with Adjacency Requirement 3. Observation: – Tn = Tn-1 A B C Tower of Hanoi with Adjacency Requirement 3. Observation: – Tn = Tn-1 + 1 A B C Tower of Hanoi with Adjacency Requirement 3. Observation: – Tn = Tn-1 + 1 + Tn-1 A B C Tower of Hanoi with Adjacency Requirement 3. Observation: – Tn = Tn-1 + 1 + Tn-1 + 1 A B C Tower of Hanoi with Adjacency Requirement 3. Observation: – Tn = Tn-1 + 1 + Tn-1 + 1 + Tn-1 = 3Tn-1 + 2 4. Exercise: Show that Sn = 3n – 1 5. Exercise: Verify by induction A B C Agenda • • • • • • How to solve recurrence Counting Rabbits Double Tower of Hanoi Tower of Hanoi with adjacency requirement Counting strings Triangulated polygon Counting Strings • Problem – A string make of 3 types of alphabets “a”, “b”, “c” – Count the number of string with length n and without the pattern “aa” 1. Let Ln be the number of string with length n and without pattern “aa” 2. L1 = 3, {a,b,c} L2 = 8, {ab,ac,ba,bb,bc,ca,cb,cc} L3 = 22, {aba,abb,abc,aca,acb,acc,bab,bac, bba,bbb,bbc,bca,bcb,bcc,cab,cac, cba,cbb,cbc,cca,ccb,ccc} Counting Strings 3. Observation: – If the length n string starts with “b” or “c”, its safe to append all n-1 length string to it. – Else, the length n string must start with “a”. • The second character must be either “b” or “c”, • Therefore, its safe to append all n-2 length string after “ab” or “ac” – Ln = 2Ln-1 + 2Ln-2 4. Exercise: Show that L6 = 448 Agenda • • • • • • How to solve recurrence Counting Rabbits Double Tower of Hanoi Tower of Hanoi with adjacency requirement Counting strings Triangulated polygon Catalan Number • Recall that recurrence equation of the form has a closed form which is called the Catalan number Triangulated Polygon • Problem – How many ways to cut a convex polygons into triangles? 1. Let Tn be the number of ways to cut an n+2 sides polygon into triangles. Triangulated Polygon 2. T0 = 1, T1 = 1, T2 = 2, T3 = 5 Triangulated Polygon 3. Observation: – If we fix an edge AB on a polygon, in the final cutting, this edge must form a triangle with other n vertex. – This triangle partition the polygon into 3 regions n=4 A B Triangulated Polygon 3. Observation: – Tn = T0 Tn-1 n=4 Tn-1 T0 A B Triangulated Polygon 3. Observation: – Tn = T0 Tn-1 + T1Tn-2 n=4 Tn-2 A T1 B Triangulated Polygon 3. Observation: – Tn = T0 Tn-1 + T1Tn-2 + T2Tn-3 + … n=4 Tn-3 A T2 B Triangulated Polygon 3. Observation: – Tn = T0 Tn-1 + T1Tn-2 + T2Tn-3 + … + Tn-1T0 = 4. The closed form is given by Catalan number Cn. How many way to triangulate an octagon? n=4 Tn-1 T0 A B Conclusion • Be familiar with the 5 steps in solving recurrence – Defining recurrence variable – Check for boundary cases – Come up with recurrence equation – Find the closed form – Verify the closed form