Upload
anastasia-mcbride
View
212
Download
0
Embed Size (px)
Citation preview
UCI ICS/Math 6A, Summer 2007 5-Recursion [email protected], after [email protected]
Strong Induction
““Normal” InductionNormal” Induction: If we prove that 1) P(n0) is true for some n0 (typically 0 or 1), and 2) If P(k) is true for any k≥n0, then P(k+1) is also true.Then P(n) is true for all n≥n0.
““Strong” InductionStrong” Induction: If we prove that
1) Q(n0) is true for some n0 (typically 0 or 1), and 2) If Q(j) is true for all j from n0 to k (for any k≥n0), then Q(k+1) is also true.Then Q(k) is true for all k≥n0.
These 2 forms are equivalent: Let P(n) = “These 2 forms are equivalent: Let P(n) = “n0≤j≤n Q(j)”
Ref: http://en.wikipedia.org/wiki/Strong_induction
UCI ICS/Math 6A, Summer 2007 5-Recursion [email protected], after [email protected]
Proof by Strong Induction: Jigsaw Puzzle
Each “step” in assembling a jigsaw puzzle consists of putting together 2 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 jigsaw puzzle of n pieces.”
Basis Step: P(1) is (trivially) true.
Inductive Step: We assume P(k) true for k≤n and we’ll argue P(n+1):
The last step in assembling a puzzle with n+1 steps is to put together 2 blocks: one of size j>0 and one of size n+1-j.
By since 0<j,n+1-j≤n, P(j) and P(n+1-j) are both assumed true.
And so, the total number of steps to assemble a puzzle with n+1 pieces is 1 + (j-1) + ((n+1-j)-1) = n = (n+1)-1.
(this implies P(n+1), and hence ends the inductive part, and thus also the whole proof)
UCI ICS/Math 6A, Summer 2007 5-Recursion [email protected], after [email protected]
More 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 n>1 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.
UCI ICS/Math 6A, Summer 2007 5-Recursion [email protected], after [email protected]
Basis for Induction: Integers are well orderedInduction is based on the fact that the integers are
“well ordered” in the following sense:Any non-empty set of integers
which is bounded below i.e. there exists b (not necessarily in S) s.t. b ≤ x for all x in Scontains a least element i.e. element e in S s.t. for all x in S we have e ≤ x.
Fact: The integers are well ordered.Why does well-ordering imply induction?
Assume P(0) and P(k)→P(k+1) for all k≥0.We’ll show that P(n) is true for all n≥0 (thus showing that induction works):
Define S = {n>0 | P(n) is not true}. Assume S non-empty.By well-ordering of N, there is a least element e of S.Let k=e-1≥0. If (not P(e)) then (not P(e-1)).We conclude that (not P(e-1)).e-1 cannot be equal to 0 because P(0) is true.But then e-1 must be in S, and so e is not the least element of S!=> Contradiction => Therefore S must b empty.Therefore P(n) is true for all n>0. Since P(0) is also true, P(n) is true for all n≥0.
UCI ICS/Math 6A, Summer 2007 5-Recursion [email protected], after [email protected]
Well Ordering can be used directly to prove things (i.e. not necessarily via induction)
Thrm: If a and b are integers, not both 0, then s,tZ Z (sa + tb = gcd(a,b)).
Proof: For any a,b define S = {n>0 | s,tZZ 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 0≤r<d. If r=0 then d|a. If r>0 then since
r=d-qa=(sa+tb)-qa=(s-q)a+tbwe would have rS. But since r<d it would mean that d is not the smallest element of S=> contradiction => and therefore r=0 (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.
UCI ICS/Math 6A, Summer 2007 5-Recursion [email protected], after [email protected]
Recursive (Inductive) Definitions
A function f:N→R is defined “recursively” by specifying(1) f(0), its value at 0, and(2) f(n), for n>0, in terms of f(1),….,f(n-1),
i.e. in terms of f(k)’s for k<n.
Examples:– f(n)=n! can be specified as f(0)=1 and, for n>0, f(n)=n*f(n-1).
– For any a, fa(n)=an, can be specified as fa(0)=1 and,
for n>0, fa(n)=a*fa(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 m>0, and then use a recursive formula to define f(n) for all n>m.
UCI ICS/Math 6A, Summer 2007 5-Recursion [email protected], after [email protected]
Fibonacci Numbers are Recursively Defined
The Fibonacci numbers f0,f1,f2,…,fn,…, are defined by (1) f0=0, f1=1 (2) fn=fn-1+fn-2, for n≥2Subscripts can be a real pain and can interfere with understanding.
It is often convenient to use F(n) instead of fn The Fibonacci numbers are f0=0, f1=1, f2=1, f3=2, f4=3, f5=5, f6=8, f7=13, f8=21, f9=34, f10=55, f10=89, f11=144, f12=233, f13=377, f14=610, f15=987, f11=1597, f12=2584, f13=4181, f14=6765, f15=10946, f16=17711, f17=28657, f18=46368,
...Ref: http://en.wikipedia.org/wiki/Fibonacci_number
UCI ICS/Math 6A, Summer 2007 5-Recursion [email protected], after [email protected]
Fibonacci numbers are related to a Golden Section
1(1 5) 1.61802
x y xPhi
x y
x y
Ref: http://en.wikipedia.org/wiki/Golden_ratio
UCI ICS/Math 6A, Summer 2007 5-Recursion [email protected], after [email protected]
Fibonacci Growth
Theorem: Let φ=(1+5)/2and n≥3 then fn > φ n-2
Proof by Strong Induction:
Basis Step (for n=3 and 4):
f3 = 2 > φ =1.618…
f4 = 3 > φ2 = (1+25+5)/4 = (3+5)/2 = φ+1 = 2.168…(Note: Along the way, we showed that φ2 = φ+1)
Inductive Step: Assume fk>φk-2 for all k s.t. 3≤k≤n.
fn+1 = fn+fn-1 > φn-2+φn-3 = φn-3(φ+1) = φn-3φ2 = φ(n+1)-2
UCI ICS/Math 6A, Summer 2007 5-Recursion [email protected], after [email protected]
Recursively Defined Sets
Always (1) “Basis Step” and (2) “Recursive Step”
Multiples of 3(1) 3SS. (2) If . (2) If xxSS and and yySS,, then x+y x+y SS . .
Strings Σ* over an alphabet Σ. Let λ be the empty string.(1) λ Σ*. (2) If . (2) If wwΣ* and and xxΣ,, then wxwxΣ* . .
Examples: Examples: Σ={0,1}; Σ={0,1,2,3,4,5,6,7,8,9}; Σ={a,b,c,d,e,…,x,y,z}
Now Now recursively define (“length”) L: Σ*→→NN by by (1) (1) L(L(λ)=0; (2)L(wx)=L(x)+1
String Catenation (“•”)(1) If wwΣ*, then w•λ=w(2) If u,wΣ* and xΣ, then u•(wx)=(u•w)x
UCI ICS/Math 6A, Summer 2007 5-Recursion [email protected], after [email protected]
Recursively Defined Sets
Always (1) “Basis Step” and (2) “Recursive Step”
Well-Formed Boolean Formulae(1) T, F, and s, where s is a propositional variable are all
well-formed Boolean formulae (WFBF)..(2) If E and F are WFBF’s, then (¬E), (EF), (EF),
(EF), and (E↔F) are all WFBF’s.
Well-Formed Arithmetic Expressions(1) x is a well-formed arithmetic expression (WFAE) if x
is a numeral or a variable.(2) If F and G are WFAE’s, then (F+G), (F-G), (F*G),
(F/G), and (EF) are all WFAE’s.
UCI ICS/Math 6A, Summer 2007 5-Recursion [email protected], after [email protected]
Recursively Defined StructuresExample 1: Rooted 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 following graph is a rooted tree with root r: Take a free node r and add an edge from r to each of root r1,…,rn.
Basis Step 1 Step 2
... ...
UCI ICS/Math 6A, Summer 2007 5-Recursion [email protected], after [email protected]
Recursively Defined StructuresExample 2: Extended Binary Trees
Extended Binary Trees(1) The empty set is an Extended Binary Tree (EBT)(2) If T1 and T2 are EBT’s, then the following tree, denoted T1•T2 , is
also an EBT: Pick a new root, r, and attach T1 as r’s left subtree and attach T2 as r’s right subtree.
- “Extended” means that even an empty set is considered a tree.- “Binary” means that every node has at most 2 children.
Basis Step 1 Step 2 Step 3
One element:
An Empty Set! ...
UCI ICS/Math 6A, Summer 2007 5-Recursion [email protected], after [email protected]
Recursively Defined StructuresExample 3: Full Binary Trees
Full Binary Trees(1) A single vertex is an Full Binary Tree (FBT)(2) If T1 and T2 are FBT’s, then the following tree, denoted T1•T2 , is
also an FBT: Pick a new root, r, and attach T1 as r’s left subtree and attach T2 as r’s right subtree.
- Unlike “Extended” BT’s we don’t count an empty set in.- In “Full” BTs each node has exactly 0 or 2 children
Base Step 1 Step 2 Step 3
...
UCI ICS/Math 6A, Summer 2007 5-Recursion [email protected], after [email protected]
Recursive Definitions of Functions on recursively defined objects (e.g. Full Binary Trees)
Trees were defined recursively. Natural definition of a function on trees will be recursive as well!
Examples:
The Height function, h(T):(1) If T has a single (root) node/vertex, h(T)=0.(2) o/w, i.e. if T=T1•T2,, then h(T) = h(T1•T2 ) = 1+max(h(T1),h(T2 ))
The Number of vertices (function), n(T):(1) If T has a single (root) node/vertex, n(T)=1.(2) o/w, i.e. if T=T1•T2,, then n(T) = n(T1•T2 ) = 1+n(T1)+n(T2 )
UCI ICS/Math 6A, Summer 2007 5-Recursion [email protected], after [email protected]
Structural Induction
If a set is recursively defined, to show a result true for all elements in the set: (1) Show the result is true for all elements the basis step includes.(2) Show that if the result is true for each of the elements used to construct a new element, it is also true for that new element.
Thrm: If T is a full binary tree, then n(T)≤2h(T)+1-1(proof on next slide)
Ref: http://en.wikipedia.org/wiki/Structural_induction
UCI ICS/Math 6A, Summer 2007 5-Recursion [email protected], after [email protected]
Structural 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 n(T)=1≤1=20+1-1
Inductive Step: When T= T1•T2 , we compute
n(T)=1+n(T1)+n(T2) Definition of n(T)
≤ 1+(2h(T1)+1-1)+(2h(T2)+1-1) Induction hypothesis
≤ 2·max(2h(T1)+1,2h(T2)+1)-1 Arithmetic
= 2·21+max(h(T1),h(T2)) -1 Arithmetic
= 2·2h(T)-1 Definition of h(T)
UCI ICS/Math 6A, Summer 2007 5-Recursion [email protected], after [email protected]
Recursive Algorithms
An algorithm is “recursive” if it solves a problem by reducing it to an instance of the same problem with smaller input.
Examples:1. procedure factorial (n: nonnegative integer)
if n=0 then factorial(n) := 1else factorial(n) := n ·factorial(n-1)
2. procedure power(a: nonzero real, n: nonnegative integer)if n=0 then power(a,n) := 1else power(a,n) := a·power(a,n-1)
3. procedure gcd(a,b: nonnegative integers with a<b)if a=0 then gcd(a,b) := belse gcd(a,b) := gcd(b mod a, a)
4. procedure fibonacci (n: nonnegative integer)if n≤1 then fibonacci(n) := 1else fibonacci(n) := fibonacci(n-1) + fibonacci(n-2)