Download presentation

1
**Algorithm Design and Analysis (ADA)**

, Semester 1. Mathematical Induction Objective to introduce mathematical induction through examples

2
Overview 1. Motivation 2. Induction Defined 3. Maths Notation Reminder 4. Four Examples 5. More General Induction Proofs 6. A Fun Tiling Problem

3
1. Motivation Induction is used in mathematical proofs of many recursive algorithms e.g. quicksort, binary search Induction is used to mathematically define recursive data structures e.g. lists, trees, graphs continued

4
**Induction is often used to derive mathematical estimates of program running time**

timings based on the size of input data e.g. time increases linearly with the number of data items processed timings based on the number of times a loop executes

5
**2. Induction Defined Induction is used to solve problems such as:**

is S(n) correct/true for all n values? usually for all n >= 0 or all n >=1 Example: let S(n) be "n2 + 1 > 0" is S(n) true for all n >= 1? S(n) can be much more complicated, such as a program that reads in an n value. continued

6
**How do we prove (disprove) S(n)? **

One approach is to try every value of n: is S(1) true? is S(2) true? ... is S(10,000) true? ... forever!!! Not very practical

7
**Induction to the Rescue**

Induction is a technique for quickly proving S(n) true or false for all n we only have to do two things First show that S(1) is true do that by calculation as before continued

8
" stands for "implies" We prove that S(n) S(n+1) is true Read as "if S(n) is true then S(n+1) is true" When S(1) is true and "S(n) S(n+1)" is true, then S(n) is true for all n>=1. Why? continued

9
**With S(1) and S(n) S(n+1) then S(2) is true**

S(1) S(2) when n == 1 With S(2) and S(n) S(n+1) then S(3) is true S(2) S(3) when n == 2 With S(3) and S(n) S(n+1) then S(4) is true S(3) S(4) when n == 3 and so on, for all n

10
**Proving S(n) S(n+1) We prove the implication by:**

1. Assume that S(n) is true; write it down 2. Write down some extra maths, which depends on the problem e.g. (n+1)! = n! * (n+1) 3. Write down S(n+1) 4. Combine S(n) and the maths to obtain S(n+1)

11
**Let’s do it Prove S(n): "n2 + 1 > 0" for all n >= 1.**

First task: show S(1) is true by calculation S(1) == == 2, which is > 0 so S(1) is true Second task: prove S(n) S(n+1) is true continued

12
Assume S(n) is true S(n): n2 + 1 > 0 Extra maths: n > 0 Write down S(n+1) S(n+1) == (n+1) == n2 + 2n == (n2 + 1) + 2n + 1 continued

13
**Use S(n) and the extra maths to show that S(n+1) is true**

S(n) means that n2 + 1 > 0, and the extra maths is n > 0, so (n2 + 1) + 2n + 1 > 0 this means that S(n+1) is true so S(n) S(n+1) continued

14
**We have used induction to show two things:**

S(1) is true S(n) S(n+1) is true From these it follows that S(n) is true for all n >= 1

15
**Induction More Formally**

Three pieces: 1. A statement S(n) to be proved the statement must be about an integer n 2. A basis for the proof. This is the statement S(b) for some integer. Often b = 0 or b = 1. continued

16
**3. An inductive step for the proof**

3. An inductive step for the proof. We prove the statement “S(n) S(n+1)” The statement S(n), used in this proof, is called the inductive hypothesis We conclude that S(n) is true for all n >= b S(n) might not be true for some n < b

17
**3. Maths Notation Reminder**

Summation: means …+n e.g. means …+m2 Product: means 1*2*3*…*n

18
**4. Example 1 Prove the statement S(n): for all n >= 1**

e.g = (4*5)/2 = 10 Basis. S(1), n = 1 so 1 = (1*2)/2 continued

19
**Inductive Step. Prove S(n) S(n+1)**

1. Assume S(n) is true: 2. The extra maths involve summations: 3. We want to calculate S(n+1): (1) (2) (3) continued

20
To prove S(n) S(n+1), combine S(n) (equation 1) and the extra maths (equation 2) to calculate S(n+1) (equation 3). continued

21
Substitute the right hand side (rhs) of (1) for the first operand of (2), to give: = (n2 + n + 2n + 2) /2 = (n2+3n+2)/2 which is (3) continued

22
**This means that S(n) is true for all n ≥ 1 Finished.**

We have shown: S(1) is true S(n) S(n+1) is true This means that S(n) is true for all n ≥ 1 Finished. continued

23
**Example 2 Prove the statement S(n): for all n >= 0**

e.g = 16-1 Basis. S(0), n = 0 so 20 = 21 -1 continued

24
**Inductive Step. Prove S(n) S(n+1)**

1. Assume S(n) is true: 2. The extra maths involve summations: 3. We want to calculate S(n+1): (1) (2) (3) continued

25
To prove S(n) S(n+1), combine S(n) (equation 1) and the extra maths (equation 2) to calculate S(n+1) (equation 3). continued

26
**Substitute the right hand side (rhs) of (1) for the first operand of (2), to give:**

which is (3)

27
**This means that S(n) is true for all n ≥ 0 Finished.**

We have shown: S(0) is true S(n) S(n+1) is true This means that S(n) is true for all n ≥ 0 Finished. continued

28
**Example 3 Prove the statement S(n): n! >= 2n-1 for all n >= 1**

e.g. 5! >= 24, which is 120 >= 16 Basis. S(1), n = 1: 1! >= 20 so 1 >= 1 continued

29
**Inductive Step. Prove S(n) S(n+1)**

1. Assume S(n) is true: n! >= 2n-1 2. The extra maths involve factorials: (n+1)! = n! * (n+1) 3. We want to calculate S(n+1): (n+1)! >= 2(n+1) >= 2n (1) (2) (3) continued

30
To prove S(n) S(n+1), combine S(n) (equation 1) and the extra maths (equation 2) to calculate S(n+1) (equation 3). continued

31
**Substitute the right hand side (rhs) of (1) for the first operand of (2), to give:**

(n+1)! >= 2n-1 * (n+1) >= 2n-1 * 2 since (n+1) >= 2 (n+1)! >= 2n which is (3) why?

32
**This means that S(n) is true for all n ≥ 1 Finished.**

We have shown: S(1) is true S(n) S(n+1) is true This means that S(n) is true for all n ≥ 1 Finished. continued

33
**Example 4 Prove the statement S(n): for all n >= 1**

This proof can be used to show that. the limit of the sum: is 1 Basis. S(1), n = 1 so 1/2 = 1/2 continued

34
**Inductive Step. Prove S(n) S(n+1)**

1. Assume S(n) is true: 2. The extra maths involve summations: 3. We want to calculate S(n+1): (1) (2) (3) continued

35
To prove S(n) S(n+1), combine S(n) (equation 1) and the extra maths (equation 2) to calculate S(n+1) (equation 3). continued

36
**Substitute the right hand side (rhs) of (1) for the first operand of (2), to give:**

= which is (3)

37
**This means that S(n) is true for all n ≥ 1 Finished.**

We have shown: S(1) is true S(n) S(n+1) is true This means that S(n) is true for all n ≥ 1 Finished. continued

38
**5. More General Inductive Proofs**

There can be more than one basis case. We can use strong induction where the proof of S(n+1) may use any of S(b), S(b+1), …, S(n) b is the lowest basis value

39
**Strong Induction Example**

Show: S(1) is true S(2) is true S(3) is true S(n-2) S(n+1) is true This means that S(n) is true for all n ≥ 1 Why? 3 base cases

40
Example Every integer >= 24 can be written as 5a+7b for non-negative integers a and b. note that some integers < 24 cannot be expressed this way (e.g. 16, 23). Let S(n) be the statement (for n >= 24) “n = 5a + 7b, for a >= 0 and b >= 0” continued

41
**Using Strong Induction**

We will show: S(24) is true S(25) is true S(26) is true S(27) is true S(28) is true S(n-4) S(n+1) is true This means that S(n) is true for all n ≥ 24 Why? 5 base cases

42
**Basis. The 5 basis cases are 24 through 28.**

S(24) true because 24 = (5*2) + (7*2) S(25) true because 25 = (5*5) + (7*0) S(26) true because 26 = (5*1) + (7*3) S(27) true because 27 = (5*4) + (7*1) S(28) true because 28 = (5*0) + (7*4) continued

43
**Inductive Step. Prove S(n-4) S(n+1)**

1. Assume S(n-4) is true: n - 4 = 5a + 7b 2. No extra maths 3. We want to calculate S(n+1): n+1 = 5a' + 7b' To prove S(n-4) S(n+1), use S(n-4) (equation 1) to calculate S(n+1) (equation 2). (1) (2) continued

44
**Add 5 to both sides of the equation:**

Use S(n-4): n-4 = 5a + 7b Add 5 to both sides of the equation: n = 5a + 7b + 5 n + 1 = 5(a + 1) + 7b n + 1 = 5a' + 7b (a' is some new variable) which means that S(n+1) is true

45
**This means that S(n) is true for all n ≥ 24 Finished.**

We have shown: S(24), S(25), S(26), S(27), S(28) are true S(n-4) S(n+1) is true This means that S(n) is true for all n ≥ 24 Finished. continued

46
6. A Tiling Problem A right tromino is a “corner” shape made of 3 squares: Use induction to prove that any number of right trominos can be used to tile (cover) any n*n size board of squares but n must be a power of 2 e.g. board sizes can be 2*2, 4*4, 8*8, 16*16, ... Show that a tiled board will always have 1 blank square. continued

47
**For example, a 4*4 board (22*22), with 1 blank square:**

5 trominos used

Similar presentations

© 2019 SlidePlayer.com Inc.

All rights reserved.

To make this website work, we log user data and share it with processors. To use this website, you must agree to our Privacy Policy, including cookie policy.

Ads by Google