Title: 5-Recursion -1
1Strong Induction
- Normal Induction If we prove that 1)
P(n0) 2) For any kn0, if P(k) then P(k1) - Then P(n) is true for all nn0.
- Strong Induction If we prove that 1)
Q(n0) 2) For any kn0, if Q(j) for all j from
n0 to k then Q(k1) Then Q(k) is true for all
kn0. - These two are equivalent!
- Why? Set P(n) to be the predicate If n0 j
n then Q(j) - P(n0) Q(n0)
- P(k) Q(j) holds for all j between n0 and k
2Proof by Strong Induction Jigsaw Puzzle
- Each step in assembling a jigsaw puzzle
consists of putting together two already
assembled blocks of pieces where each single
piece is considered a block itself. - P(n) It takes exactly n-1 steps to assemble a
saw puzzle of n pieces. - Basis Step P(1) is (trivially) true.
- Inductive Step We assume P(j) true for all jk
and well argue P(k1) - The last step in assembling a puzzle of k1
pieces is to put together two blocks one of size
jgt0 and one of size k1-j, for some j. - Since 0ltj,k1-jk, P(j) and P(k1-j) are
both assumed true. - And so, the total number of steps to assemble a
puzzle with n1 pieces is 1 (j-1)
((k1-j)-1) k (k1)-1. - (This implies P(k1), and hence ends the
inductive part, and thus also the proof.)
3More Examples of Theorems with easy Proofs using
Strong Induction
- Thm1 The second player always wins the following
game - Starting with 2 piles each containing the same
number of matches, players alternately remove any
non-zero number of matches from one of the piles. - The winner is the person who removes the last
match. - Thm2 Every ngt1 can be written as the product of
primes. - Thm3 Every postage amount of at least 18 cents
can be formed using just 4-cent and 7-cent
stamps - - First 4 cases 18274, 19734, 2054,
2137 - - Afterwards, using strong induction Take any
k21. By (strong) inductive assumption, and by
the 4 cases above, k-3i7j4 for some i,j.
Therefore k1i7(j1)4, which ends the
inductive step. - (Btw, starting from 18 may seem weird, but
you just cant do it for 17...)
4Basis for Induction Integers are well ordered
- Induction is based on the fact that the integers
are well ordered, i.e. - Any non-empty set of integerswhich is bounded
below i.e. there exists b (not necessarily in
S) s.t. b x for all x in Scontains a smallest
element i.e. e in S s.t. for all x in S we
have e x. - Why does well-ordering imply induction?
- Assume () P(0) and () P(k)?P(k1) for all
k0. - Well show that P(n)T for all n0 (thus showing
that induction works) - Define () S ngt0 P(n)F. Assume S
non-empty. - By well-ordering of N, there is a least element e
of S. - Consider element e1 Since P(e) F then by
() also P(e1) F. - Note that e1 cannot be equal to 0 because P(0)
T by (). - But then by (), e1 is in S, so e is not the
least element of S - Contradiction!
- Therefore S must be empty. Therefore P(n)T for
all n 0.
5Well Ordering can be used directly to prove
things (i.e. not necessarily via induction)
- Theorem If a and b are integers, not both 0,
then ?s,t?Z (sa tb gcd( a,b )). - Proof For any a,b define S ngt0 ?s,t?Z n
sa tb. - By the well-ordering of Z, S has a smallest
element, call it d. - Choose s and t so that d sa tb.
- Claim d is a common divisor of a and b.
- Proof that d a
- Writing d qa r where 0rltd. If r0 then d
a. - If rgt0 then since r d qa (sa tb)
qa (s - q)a tb - we would have r?S.
- But since rltd it would mean that d is not the
smallest element of S - gt contradiction gt and therefore r0 (and hence
d a). - Similarly, d b.
- d is the greatest common divisor since any common
divisor of a and b must also divide sa tb d.
6Recursive (Inductive) Definitions
- A function f N?R is defined recursively by
specifying(1) f(0), its value at 0, and(2)
f(n), for ngt0, in terms of f(1),.,f(n-1), i.e
. in terms of f(k)s for kltn. - Examples
- f(n)n! can be specified as f(0)1 and, for ngt0,
f(n)nf(n-1). - For any a, fa(n)an, can be specified as fa(0)1
and,for ngt0, fa(n)afa(n-1) - Note In many cases, we specify f(k) explicitly
not only for f(0) but also for f(1), f(2), ,
f(m) for some mgt0, and then use a recursive
formula to define f(n) for all ngtm.
7Fibonacci Numbers are Recursively Defined
- The Fibonacci numbers f0,f1,f2,,fn,, are
defined by - (1) f00, f11
- (2) fnfn-1fn-2, for n2
- (Btw, we can also use F(n) instead of fn to
designate n-th Fibonacci number.) - The first 18 Fibonacci numbers are
- f00, f11, f21, f32, f43, f55, f68,
f713, f821, f934, f1055, f1089, f11144,
f12233, f13377, f14610, f15987, f111597,
f122584, f134181, f146765, f1510946,
f1617711, f1728657, f1846368, ... - Ref http//en.wikipedia.org/wiki/Fibonacci_number
- Question Are they growing exponentially, i.e.
like fn an for some a?
8Fibonacci numbers are related to a Golden
Sectioni.e. the splitting of an interval so that
(larger part) / whole (smaller p. / larger p.)
Ref http//en.wikipedia.org/wiki/Golden_ratio
9Fibonacci Growth
- Theorem If n3 then fn gt f n-2
- where f is the solution to golden ratio, i.e. f
(1?5) / 2 - Proof by Strong Induction
- Basis Step (for n3 and 4)
- f3 2 gt f 1.618
- f4 3 gt f2 (12?55)/4 (3?5)/2 f1
2.168 -
- Fact you can check f2 f1
- Inductive Step Assume fkgtfk-2 for all k s.t.
3kn. - fn1 fnfn-1 gt fn-2fn-3 fn-3(f1) fn-3f2
f(n1)-2
10Recursively Defined Sets
- Always (1) Basis Step and (2) Recursive Step
- Set S of multiples of 3(1) 3?S (2) If x?S
and y?S, then xy ?S - Strings S over an alphabet S. Let ? be the
empty string.(1) ?? S (2) If w?S and x?S,
then wx?S - Examples S0,1 S0,1,2,3,4,5,6,7,8,9
Sa,b,c,d,e,,x,y,z - Now recursively define length of a string, L
S?N where (1) L(?)0 (2) L(wx)L(w)1 - String Catenation ()(1) If u?S, then
u?u(2) If u,w?S and x?S, then u(wx)(uw)x
11Recursively Defined Sets
- Always (1) Basis Step and (2) Recursive Step
- Well-Formed Boolean Formula
- T, F, and s, where s is a propositional variable
are all well-formed formula (WFF). - If E and F are WFFs, then (E), (E?F), (E?F),
(E?F), and (E?F) are all WFFs. - Well-Formed Arithmetic Expression
- x is a well-formed arithmetic expression (WFA) if
x is either a numeral or a variable. - If F and G are WFAs, then (FG), (F-G), (FG),
(F/G), and (E?F) are all WFAs.
12Recursively Defined StructuresRooted Trees
- Rooted Trees(1) A single vertex, r, is a rooted
tree with root r.(2) Suppose that T1,T2,,Tn are
rooted trees with roots r1,r2,,rn
respectively. Then the graph formed by starting
with a root, r, which is not in any of these
trees and adding an edge from r to each of
these roots is also a rooted tree, whose root is
r. - Basis Step 1
Step 2
13Recursively Defined StructuresExtended Binary
Trees
- Extended Binary Trees(1) The empty set is an
Extended Binary Tree(2) If T1 and T2 are
extended binary trees, then the following tree,
denoted T1T2 , is also an extended binary
tree pick a new root - r, and attach T1 as the left subtree and
T2 as the right subtree. - Step 1 Step 2 Step 3
14Full Binary Trees
- Full Binary Trees(1) A single vertex is a Full
Binary Tree(2) If T1 and T2 are full binary
trees, then the following tree, denoted T1T2 ,
is also a full binary tree pick a new root, r,
and attach T1 as the left subtree and attach T2
as the right subtree. - (Definition change only in the base case, but
unlike Extended Binary - Trees, Full Binary Tree has exactly 0 or 2
child-nodes) - Base Step 1 Step 2
15(Recursive) Definitions of Functions on Full
Binary Trees
- Definition of Height, h(T), of a Full Binary Tree
T(1) If T has a single (root) node/vertex then
h(T)0.(2) O/w h(T1T2 )1max(h(T1),h(T2 )) - The Number of vertices, n(T), of a Full Binary
Tree, T, is given by(1) If T has a single (root)
node/vertex, n(T)1.(2) n(T1T2 )1n(T1)n(T2 )
16Structural Induction
- If a set is recursively defined, to show a
predicate true for all elements in the set one
needs to - (1) Show the predicate true on all base cases
- (2) Show that if the predicate is true for each
of the elements used to construct a new element,
then the same predicate is also true for that new
element. - E.g. to prove P(T) holds for all T?FBT, these
steps are - (1) showing P(vertex) holds, because base case of
FBT definition is just a vertex - (2) Showing that if P(T1) and P(T2) then P(T1T2
), because the recursive clause of FBT definition
defines a new FBT as T1T2 . - Example Well show that if T is a full binary
tree, then n(T) 2h(T)1-1 - (proof on next slide)
17Structural Induction Example
- Thrm If T is a full binary tree, then
n(T)2h(T)1-1 - Proof
- Basis Step If T is just the root vertex,
- n(T)1, h(T)0 and therefore n(T)1 201-1 1
- Inductive Step When T T1T2 , we compute
- n(T)1n(T1)n(T2) Definition of n(T)
1(2h(T1)1-1)(2h(T2)1-1) Inductive
hypothesis 2max(2h(T1)1,2h(T2)1)-1 Arithmeti
c - 221max(h(T1),h(T2)) -1 Arithmetic
- 22h(T)-1 Definition of h(T)
18Recursive Algorithms
- An algorithm is recursive if it solves a
problem by reducing it to an instance of the same
problem with smaller input. - Examples
- procedure factorial (n nonnegative integer)if
n0 then factorial(n)1else factorial(n)n
factorial(n-1) - procedure power(a nonzero real, n nonnegative
integer)if n0 then power(a,n)1else
power(a,n)apower(a,n-1) - procedure gcd(a,b nonnegative integers with
altb)if a0 then gcd(a,b)belse gcd(a,b)gcd(b
mod a, a) - procedure fibonacci (n nonnegative integer)if
n1 then fibonacci(n)1else fibonacci
(n)fibonacci (n-1)fibonacci (n-2)