1 / 27

Discrete Structures & Algorithms More on Methods of Proof / Mathematical Induction

Discrete Structures & Algorithms More 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  n 2 is false

Download Presentation

Discrete Structures & Algorithms More on Methods of Proof / Mathematical Induction

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Discrete Structures & AlgorithmsMore on Methods of Proof / Mathematical Induction EECE 320 — UBC

  2. Announcements • First assignment due Friday • drop-box • Quiz during next lecture

  3. 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.

  4. What have we explored so far? • Propositional logic • Rules of inference • Methods of proof • Proofs by induction

  5. The essential elements of mathematical induction are: • The proposition of interest • The base case • The inductive step

  6. Example • Prove that 2 n < n! for all n > 3

  7. Example • Prove that n3-n is divisible by 3 for all integers n • Do you need to use ‘strong induction’?

  8. 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

  9. 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, 0j k. • Aim to show that 5(k+1)=0. • We can write k+1=i+j with 0i,j k. 5(k+1)=5(i+j)=5i+5j=0+0=0.

  10. Recursive definitions • Series: • Sn = 1 + 2 + 3 + … + n • Can be defined as: • S1 = 1 • Sn+1 = Sn + (n+1)

  11. 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

  12. 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

  13. Recursive algorithms • Naturally work on all recursive definitions! • Example: Insertion sort

  14. 24 10 6 Insertion sort To insert 12, we need to make room for it by moving first 36 and then 24. 36 12

  15. 24 10 6 Insertion sort 36 12

  16. 24 36 Insertion sort 10 6 12

  17. Insertion sort • Procedure sort (List L): • if length(L)  1 • return L • else • C = head (L) • T = tail (L) • return insert (C, sort(T))

  18. (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))

  19. Induction proofs and recursive procedures • You can use proofs based on induction to prove: • Correctness invariants • Complexity limits

  20. 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

  21. 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

  22. 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

  23. Better sorting

  24. 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

  25. The essential elements of mathematical induction are: • The proposition of interest • The base case • The inductive step

  26. Various uses of induction • Normal • Strong induction • Recursive definitions • Induction: To prove correctness properties (invariants) • Induction: To analyze algorithm complexity

  27. 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.

More Related