270 likes | 289 Views
Explore methods of proof, mathematical induction, and recursive algorithms in EECE 320 course material at UBC. Learn essential elements of induction and proof strategies in a structured approach.
E N D
Discrete Structures & AlgorithmsMore on Methods of Proof / Mathematical Induction EECE 320 — UBC
Announcements • First assignment due Friday • drop-box • Quiz during next lecture
Quiz sample • 1.) Show that the following statement: • For every positive integer n, 2n n2 • is false • 2.) Show that if x is irrational, then • sqrt(x) is irrational.
What have we explored so far? • Propositional logic • Rules of inference • Methods of proof • Proofs by induction
The essential elements of mathematical induction are: • The proposition of interest • The base case • The inductive step
Example • Prove that 2 n < n! for all n > 3
Example • Prove that n3-n is divisible by 3 for all integers n • Do you need to use ‘strong induction’?
Example • Consider the following game: • Two players. • Players take turns removing any positive number of matches from one of two piles of matches. • The player who takes the last match(es) wins. • Show that if the two piles contain the same number of matches, the second player has a guaranteed winning strategy
What’s wrong with the following proof using ‘strong induction’? • For all non-negative integer n, 5n=0 • Proof: • Base case: 5*0=0 • Induction step: Suppose that 5j = 0 for all non-negative integers j, 0j k. • Aim to show that 5(k+1)=0. • We can write k+1=i+j with 0i,j k. 5(k+1)=5(i+j)=5i+5j=0+0=0.
Recursive definitions • Series: • Sn = 1 + 2 + 3 + … + n • Can be defined as: • S1 = 1 • Sn+1 = Sn + (n+1)
Recursive definitions • Sets: • S3 = {n| n>0, n divisible by 3} • Can recursively be defined as: • Base step: 3 S3 • Recursive step: if x S3 and y S3 then x+y S3
Recursive definitions • Structures: • A list Ln …is formed by its cells • C1, C2 ,,, Cn • A list recursively be defined as: • Base step: an empty list is a list. • Recursive step: Ln+1 is a list if it is formed by adding a cell C to a list Ln
Recursive algorithms • Naturally work on all recursive definitions! • Example: Insertion sort
24 10 6 Insertion sort To insert 12, we need to make room for it by moving first 36 and then 24. 36 12
24 10 6 Insertion sort 36 12
24 36 Insertion sort 10 6 12
Insertion sort • Procedure sort (List L): • if length(L) 1 • return L • else • C = head (L) • T = tail (L) • return insert (C, sort(T))
(auxiliary procedure: Insertion) • Procedure insert (Cell C, List L): • if length(L) = 0 • return list(C) • else • if C < head (L) • return list(C,L) • else • return list(head(L), insert (C, tail(L))
Induction proofs and recursive procedures • You can use proofs based on induction to prove: • Correctness invariants • Complexity limits
Insertion sort – correctness L1 sorted • Procedure sort (List L): • if length(L) 1 • return L • else • C = head (L) • T = tail (L) • return insert (C, sort(T)) if LN sorted then LN+1 sorted • To prove: LN sorted for all lengths N
Insertion sort – complexity P1 = 0 • Procedure sort (List L): • if length(L) 1 • return L • else • C = head (L) • T = tail (L) • return insert (C, sort(T)) PN+1 = PN + complexity(insertN) • To find: PN – the average number of operations to sort LN
In class exercise • Give a recursive algorithm to find the maximum of a list of non-negative integers. • Use structural induction to prove correctness • Analyze complexity
Procedure mergesort (L=a1, a2, ….an): • if n>1 then m:= n/2 L1 = a1, a2, …. am L2 = am+1, …. an L = merge (mergesort(L1),mergesort(L2)) return L • Recursive proof • Correctness • Complexity
The essential elements of mathematical induction are: • The proposition of interest • The base case • The inductive step
Various uses of induction • Normal • Strong induction • Recursive definitions • Induction: To prove correctness properties (invariants) • Induction: To analyze algorithm complexity
To understand how to perform computations efficiently, we need to know • How to count! • How to sum a sequence of steps. • Reason about the complexity/efficiency of an algorithm. • Prove the correctness of our analysis. • Logic • Methods of inference • Proof strategies • Induction • … • (and eventually) How to create better algorithms.