Recursion and Induction
description
Transcript of Recursion and Induction
![Page 1: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/1.jpg)
Recursion and Induction
• Themes– Recursion– Recurrence Relations– Recursive Definitions– Induction (prove properties of recursive programs and
objects defined recursively)
• Examples– Tower of Hanoi– Gray Codes– Hypercube
![Page 2: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/2.jpg)
Tower of Hanoi
• There are three towers• 64 gold disks, with decreasing sizes, placed on the
first tower• You need to move all of the disks from the first
tower to the last tower• Larger disks can not be placed on top of smaller
disks• The third tower can be used to temporarily hold
disks
![Page 3: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/3.jpg)
Tower of Hanoi
• The disks must be moved within one week. Assume one disk can be moved in 1 second. Is this possible?
• To create an algorithm to solve this problem, it is convenient to generalize the problem to the “N-disk” problem, where in our case N = 64.
![Page 4: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/4.jpg)
Recursive Solution
![Page 5: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/5.jpg)
Recursive Solution
![Page 6: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/6.jpg)
Recursive Solution
![Page 7: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/7.jpg)
Recursive Solution
![Page 8: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/8.jpg)
Tower of Hanoi
![Page 9: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/9.jpg)
Tower of Hanoi
![Page 10: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/10.jpg)
Tower of Hanoi
![Page 11: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/11.jpg)
Tower of Hanoi
![Page 12: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/12.jpg)
Tower of Hanoi
![Page 13: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/13.jpg)
Tower of Hanoi
![Page 14: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/14.jpg)
Tower of Hanoi
![Page 15: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/15.jpg)
Tower of Hanoi
![Page 16: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/16.jpg)
Recursive Algorithm
void Hanoi(int n, string a, string b, string c) { if (n == 1) /* base case */ Move(a,b); else { /* recursion */ Hanoi(n-1,a,c,b); Move(a,b); Hanoi(n-1,c,b,a); } }
![Page 17: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/17.jpg)
Induction
• To prove a statement S(n) for positive integers n– Prove S(1)– Prove that if S(n) is true [inductive hypothesis]
then S(n+1) is true.
• This implies that S(n) is true for n=1,2,3,…
![Page 18: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/18.jpg)
Correctness and Cost
• Use induction to prove that the recursive algorithm solves the Tower of Hanoi problem.
• The number of moves M(n) required by the algorithm to solve the n-disk problem satisfies the recurrence relation– M(n) = 2M(n-1) + 1– M(1) = 1
![Page 19: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/19.jpg)
Guess and Prove
• Calculate M(n) for small n and look for a pattern.
• Guess the result and prove your guess correct using induction.
n M(n)
1 1
2 3
3 7
4 15
5 31
![Page 20: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/20.jpg)
Substitution Method
• Unwind recurrence, by repeatedly replacing M(n) by the r.h.s. of the recurrence until the base case is encountered.
M(n) = 2M(n-1) + 1
= 2*[2*M(n-2)+1] + 1 = 22 * M(n-2) + 1+2
= 22 * [2*M(n-3)+1] + 1 + 2
= 23 * M(n-3) + 1+2 + 22
![Page 21: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/21.jpg)
Geometric Series
• After k stepsM(n) = 2k * M(n-k) + 1+2 + 22 + … + 2n-k-1
• Base case encountered when k = n-1M(n) = 2n-1 * M(1) + 1+2 + 22 + … + 2n-2
= 1 + 2 + … + 2n-1 =
• Use induction to reprove result for M(n) using this sum. Generalize by replacing 2 by x.
1
02
n
i
i
![Page 22: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/22.jpg)
Gray Code
• An n-bit Gray code is a 1-1 onto mapping from [0..2n-1] such that the binary representation of consecutive numbers differ by exactly one bit.
• Invented by Frank Gray for a shaft encoder - a wheel with concentric strips and a conducting brush which can read the number of strips at a given angle. The idea is to encode 2n different angles, each with a different number of strips, corresponding to the n-bit binary numbers.
![Page 23: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/23.jpg)
Shaft Encoder (Counting Order)
000
001010
011
100
101 110
111
Consecutive angles can have an abrupt change in the number of strips (bits) leading to potential detection errors.
![Page 24: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/24.jpg)
Shaft Encoder (Gray Code)
000
001011
010
110
111 101
100
Since a Gray code is used, consecutive angles have only one change in the number of strips (bits).
![Page 25: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/25.jpg)
Binary-Reflected Gray Code
• G1 = [0,1]
• Gn = [0Gn-1,1Gn-1], G reverse order complement leading bit
• G2 = [0G1,1G1] = [00,01,11,10]
• G3 = [0G2,1G2] = [000,001,011,010,110,111,101,100]
• Use induction to prove that this is a Gray code
![Page 26: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/26.jpg)
Iterative Formula
• Let Gn(i) be a function from [0,…,2n-1]
• Gn(i) = i ^ (i >> 1) [exclusive or of i and i/2]– G2(0) = 0, G2(1) = 1, G2(2) = 3, G2(3) = 2
• Use induction to prove that the sequence Gn(i), i=0,…,2n-1 is a binary-reflected Gray code.
![Page 27: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/27.jpg)
Gray Code & Tower of Hanoi
• Introduce coordinates (d0,…,dn-1), where di {0,1}
• Associate di with the ith disk• Initialize to (0,…,0) and flip the ith
coordinate when the i-th disk is moved• The sequence of coordinate vectors
obtained from the Tower of Hanoi solution is a Gray code (why?)
![Page 28: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/28.jpg)
Tower of Hanoi
(0,0,0)
![Page 29: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/29.jpg)
Tower of Hanoi
(0,0,1)
![Page 30: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/30.jpg)
Tower of Hanoi
(0,1,1)
![Page 31: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/31.jpg)
Tower of Hanoi
(0,1,0)
![Page 32: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/32.jpg)
Tower of Hanoi
(1,1,0)
![Page 33: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/33.jpg)
Tower of Hanoi
(1,1,1)
![Page 34: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/34.jpg)
Tower of Hanoi
(1,0,1)
![Page 35: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/35.jpg)
Tower of Hanoi
(1,0,0)
![Page 36: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/36.jpg)
Hypercube
• Graph (recursively defined)
• n-dimensional cube has 2n nodes with each node connected to n vertices
• Binary labels of adjacent nodes differ in one bit
000 001
101100
010 011
110 111
00 01
10 11
0 1
![Page 37: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/37.jpg)
Hypercube, Gray Code and Tower of Hanoi
• A Hamiltonian path is a sequence of edges that visit each node exactly once.
• A Hamiltonian path on a hypercube provides a Gray code (why?)
000 001
101100
010 011
110 111
![Page 38: Recursion and Induction](https://reader035.fdocuments.in/reader035/viewer/2022070405/56813e10550346895da7ee82/html5/thumbnails/38.jpg)
Hypercube and Gray Code
000 001
101100
010 011
110 111