86
Solving Recurrences II COMS10007 2020, Lecture 14 Dr. John Lapinskas (substituting for Dr. Christian Konrad) March 18th 2020 John Lapinskas Lecture 14 March 18th 2020 1 / 17

Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Solving Recurrences IICOMS10007 2020, Lecture 14

Dr. John Lapinskas(substituting for Dr. Christian Konrad)

March 18th 2020

John Lapinskas Lecture 14 March 18th 2020 1 / 17

Page 2: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

The recursion tree method

This lecture we’ll ignore O-notation and divisibility issues, and focus onexamples of the recurrences themselves. Consider the recurrence

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

Step 1: Use the recursion tree method to get a good guess at a solution.

As with the mergesort analysis, we view this as a tree.

Each recursive invocation corresponds to a child node — so the root hasthree children, each of which has three children, and so on.

Each node gets labelled with the non-recursive running time at that step,and then T (n) is the sum of all the labels in the tree.

John Lapinskas Lecture 14 March 18th 2020 2 / 17

Page 3: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

A concrete example

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

n = 64

n = 16

n = 4

n = 1[All 1’s]

32

888

2 2 2 2 2 2 2 2 2

T (64) = 3T (16) + 32

John Lapinskas Lecture 14 March 18th 2020 3 / 17

Page 4: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

A concrete example

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

n = 64

n = 16

n = 4

n = 1[All 1’s]

32

888

2 2 2 2 2 2 2 2 2

T (64) = 3T (16) + 32 = 9T (4) + 3 · 8 + 32

John Lapinskas Lecture 14 March 18th 2020 3 / 17

Page 5: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

A concrete example

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

n = 64

n = 16

n = 4

n = 1[All 1’s]

32

888

2 2 2 2 2 2 2 2 2

T (64) = 9T (4) + 3 · 8 + 32

John Lapinskas Lecture 14 March 18th 2020 3 / 17

Page 6: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

A concrete example

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

n = 64

n = 16

n = 4

n = 1

[All 1’s]

32

888

2 2 2 2 2 2 2 2 2

T (64) = 9T (4) + 3 · 8 + 32 = 27T (1) + 9 · 2 + 3 · 8 + 32

John Lapinskas Lecture 14 March 18th 2020 3 / 17

Page 7: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

A concrete example

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

n = 64

n = 16

n = 4

n = 1

[All 1’s]

32

888

2 2 2 2 2 2 2 2 2

T (64) = 27T (1) + 9 · 2 + 3 · 8 + 32

John Lapinskas Lecture 14 March 18th 2020 3 / 17

Page 8: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

A concrete example

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

n = 64

n = 16

n = 4

n = 1[All 1’s]

32

888

2 2 2 2 2 2 2 2 2

T (64) = 27T (1) + 9 · 2 + 3 · 8 + 32 = 27 · 1 + 9 · 2 + 3 · 8 + 32

John Lapinskas Lecture 14 March 18th 2020 3 / 17

Page 9: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

A concrete example

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

n = 64

n = 16

n = 4

n = 1[All 1’s]

32

888

2 2 2 2 2 2 2 2 2

T (64) = 27 · 1 + 9 · 2 + 3 · 8 + 32 = 101.

John Lapinskas Lecture 14 March 18th 2020 3 / 17

Page 10: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

The general case

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

n

n/4

n/16

1[All 1’s]

n2

n8

n8

n8

n32

n32

n32

n32

n32

n32

n32

n32

n32

......

......

Except for the bottom, level i has 3i−1 nodes, each with cost n/(2 · 4i−1).

Let #(levels) = t. Then n/4t−1 = 1, so we have t = 1 + log4 n.

John Lapinskas Lecture 14 March 18th 2020 4 / 17

Page 11: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

The general case

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

n

n/4

n/16

1[All 1’s]

n2

n8

n8

n8

n32

n32

n32

n32

n32

n32

n32

n32

n32

......

......

Except for the bottom, level i has 3i−1 nodes, each with cost n/(2 · 4i−1).Let #(levels) = t. Then n/4t−1 = 1, so we have t = 1 + log4 n.

John Lapinskas Lecture 14 March 18th 2020 4 / 17

Page 12: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

There are 1 + log4 n levels in total.For i ≤ log4 n, level i has 3i−1 nodes with time cost n/(2 · 4i−1) each.Level 1 + log4 n has 3log4 n nodes with time cost 1 each.

T (n) is the total time cost over the whole tree, so

T (n) =

log4 n∑i=1

(3

4

)i−1 n2

+ 3log4 n.

Summing the geometric series gives

log4 n∑i=1

(3

4

)i−1 n2

=n

2·log4 n∑i=1

(3

4

)i−1≤ n

2·∞∑i=0

(3

4

)i=

n

2· O(1) = O(n).

And we have

3log4 n = 2log(3)·log4(n) = 2log(3)· log(n)

log(4) = nlog(3)log(4) = o(n).

So overall, we expect T (n) = O(n). In other words, the root dominates.

John Lapinskas Lecture 14 March 18th 2020 5 / 17

Page 13: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

There are 1 + log4 n levels in total.For i ≤ log4 n, level i has 3i−1 nodes with time cost n/(2 · 4i−1) each.Level 1 + log4 n has 3log4 n nodes with time cost 1 each.

T (n) is the total time cost over the whole tree, so

T (n) =

log4 n∑i=1

(3

4

)i−1 n2

+ 3log4 n.

Summing the geometric series gives

log4 n∑i=1

(3

4

)i−1 n2

=n

2·log4 n∑i=1

(3

4

)i−1≤ n

2·∞∑i=0

(3

4

)i=

n

2· O(1) = O(n).

And we have

3log4 n = 2log(3)·log4(n) = 2log(3)· log(n)

log(4) = nlog(3)log(4) = o(n).

So overall, we expect T (n) = O(n). In other words, the root dominates.

John Lapinskas Lecture 14 March 18th 2020 5 / 17

Page 14: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

There are 1 + log4 n levels in total.For i ≤ log4 n, level i has 3i−1 nodes with time cost n/(2 · 4i−1) each.Level 1 + log4 n has 3log4 n nodes with time cost 1 each.

T (n) is the total time cost over the whole tree, so

T (n) =

log4 n∑i=1

(3

4

)i−1 n2

+ 3log4 n.

Summing the geometric series gives

log4 n∑i=1

(3

4

)i−1 n2

=n

2·log4 n∑i=1

(3

4

)i−1

≤ n

2·∞∑i=0

(3

4

)i=

n

2· O(1) = O(n).

And we have

3log4 n = 2log(3)·log4(n) = 2log(3)· log(n)

log(4) = nlog(3)log(4) = o(n).

So overall, we expect T (n) = O(n). In other words, the root dominates.

John Lapinskas Lecture 14 March 18th 2020 5 / 17

Page 15: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

There are 1 + log4 n levels in total.For i ≤ log4 n, level i has 3i−1 nodes with time cost n/(2 · 4i−1) each.Level 1 + log4 n has 3log4 n nodes with time cost 1 each.

T (n) is the total time cost over the whole tree, so

T (n) =

log4 n∑i=1

(3

4

)i−1 n2

+ 3log4 n.

Summing the geometric series gives

log4 n∑i=1

(3

4

)i−1 n2

=n

2·log4 n∑i=1

(3

4

)i−1≤ n

2·∞∑i=0

(3

4

)i

=n

2· O(1) = O(n).

And we have

3log4 n = 2log(3)·log4(n) = 2log(3)· log(n)

log(4) = nlog(3)log(4) = o(n).

So overall, we expect T (n) = O(n). In other words, the root dominates.

John Lapinskas Lecture 14 March 18th 2020 5 / 17

Page 16: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

There are 1 + log4 n levels in total.For i ≤ log4 n, level i has 3i−1 nodes with time cost n/(2 · 4i−1) each.Level 1 + log4 n has 3log4 n nodes with time cost 1 each.

T (n) is the total time cost over the whole tree, so

T (n) =

log4 n∑i=1

(3

4

)i−1 n2

+ 3log4 n.

Summing the geometric series gives

log4 n∑i=1

(3

4

)i−1 n2

=n

2·log4 n∑i=1

(3

4

)i−1≤ n

2·∞∑i=0

(3

4

)i=

n

2· O(1)

= O(n).

And we have

3log4 n = 2log(3)·log4(n) = 2log(3)· log(n)

log(4) = nlog(3)log(4) = o(n).

So overall, we expect T (n) = O(n). In other words, the root dominates.

John Lapinskas Lecture 14 March 18th 2020 5 / 17

Page 17: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

There are 1 + log4 n levels in total.For i ≤ log4 n, level i has 3i−1 nodes with time cost n/(2 · 4i−1) each.Level 1 + log4 n has 3log4 n nodes with time cost 1 each.

T (n) is the total time cost over the whole tree, so

T (n) =

log4 n∑i=1

(3

4

)i−1 n2

+ 3log4 n.

Summing the geometric series gives

log4 n∑i=1

(3

4

)i−1 n2

=n

2·log4 n∑i=1

(3

4

)i−1≤ n

2·∞∑i=0

(3

4

)i=

n

2· O(1) = O(n).

And we have

3log4 n = 2log(3)·log4(n) = 2log(3)· log(n)

log(4) = nlog(3)log(4) = o(n).

So overall, we expect T (n) = O(n). In other words, the root dominates.

John Lapinskas Lecture 14 March 18th 2020 5 / 17

Page 18: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

There are 1 + log4 n levels in total.For i ≤ log4 n, level i has 3i−1 nodes with time cost n/(2 · 4i−1) each.Level 1 + log4 n has 3log4 n nodes with time cost 1 each.

T (n) is the total time cost over the whole tree, so

T (n) =

log4 n∑i=1

(3

4

)i−1 n2

+ 3log4 n.

Summing the geometric series gives

log4 n∑i=1

(3

4

)i−1 n2

=n

2·log4 n∑i=1

(3

4

)i−1≤ n

2·∞∑i=0

(3

4

)i=

n

2· O(1) = O(n).

And we have

3log4 n

= 2log(3)·log4(n) = 2log(3)· log(n)

log(4) = nlog(3)log(4) = o(n).

So overall, we expect T (n) = O(n). In other words, the root dominates.

John Lapinskas Lecture 14 March 18th 2020 5 / 17

Page 19: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

There are 1 + log4 n levels in total.For i ≤ log4 n, level i has 3i−1 nodes with time cost n/(2 · 4i−1) each.Level 1 + log4 n has 3log4 n nodes with time cost 1 each.

T (n) is the total time cost over the whole tree, so

T (n) =

log4 n∑i=1

(3

4

)i−1 n2

+ 3log4 n.

Summing the geometric series gives

log4 n∑i=1

(3

4

)i−1 n2

=n

2·log4 n∑i=1

(3

4

)i−1≤ n

2·∞∑i=0

(3

4

)i=

n

2· O(1) = O(n).

And we have

3log4 n = 2log(3)·log4(n)

= 2log(3)· log(n)

log(4) = nlog(3)log(4) = o(n).

So overall, we expect T (n) = O(n). In other words, the root dominates.

John Lapinskas Lecture 14 March 18th 2020 5 / 17

Page 20: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

There are 1 + log4 n levels in total.For i ≤ log4 n, level i has 3i−1 nodes with time cost n/(2 · 4i−1) each.Level 1 + log4 n has 3log4 n nodes with time cost 1 each.

T (n) is the total time cost over the whole tree, so

T (n) =

log4 n∑i=1

(3

4

)i−1 n2

+ 3log4 n.

Summing the geometric series gives

log4 n∑i=1

(3

4

)i−1 n2

=n

2·log4 n∑i=1

(3

4

)i−1≤ n

2·∞∑i=0

(3

4

)i=

n

2· O(1) = O(n).

And we have

3log4 n = 2log(3)·log4(n) = 2log(3)· log(n)

log(4)

= nlog(3)log(4) = o(n).

So overall, we expect T (n) = O(n). In other words, the root dominates.

John Lapinskas Lecture 14 March 18th 2020 5 / 17

Page 21: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

There are 1 + log4 n levels in total.For i ≤ log4 n, level i has 3i−1 nodes with time cost n/(2 · 4i−1) each.Level 1 + log4 n has 3log4 n nodes with time cost 1 each.

T (n) is the total time cost over the whole tree, so

T (n) =

log4 n∑i=1

(3

4

)i−1 n2

+ 3log4 n.

Summing the geometric series gives

log4 n∑i=1

(3

4

)i−1 n2

=n

2·log4 n∑i=1

(3

4

)i−1≤ n

2·∞∑i=0

(3

4

)i=

n

2· O(1) = O(n).

And we have

3log4 n = 2log(3)·log4(n) = 2log(3)· log(n)

log(4) = nlog(3)log(4)

= o(n).

So overall, we expect T (n) = O(n). In other words, the root dominates.

John Lapinskas Lecture 14 March 18th 2020 5 / 17

Page 22: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

There are 1 + log4 n levels in total.For i ≤ log4 n, level i has 3i−1 nodes with time cost n/(2 · 4i−1) each.Level 1 + log4 n has 3log4 n nodes with time cost 1 each.

T (n) is the total time cost over the whole tree, so

T (n) =

log4 n∑i=1

(3

4

)i−1 n2

+ 3log4 n.

Summing the geometric series gives

log4 n∑i=1

(3

4

)i−1 n2

=n

2·log4 n∑i=1

(3

4

)i−1≤ n

2·∞∑i=0

(3

4

)i=

n

2· O(1) = O(n).

And we have

3log4 n = 2log(3)·log4(n) = 2log(3)· log(n)

log(4) = nlog(3)log(4) = o(n).

So overall, we expect T (n) = O(n). In other words, the root dominates.

John Lapinskas Lecture 14 March 18th 2020 5 / 17

Page 23: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

There are 1 + log4 n levels in total.For i ≤ log4 n, level i has 3i−1 nodes with time cost n/(2 · 4i−1) each.Level 1 + log4 n has 3log4 n nodes with time cost 1 each.

T (n) is the total time cost over the whole tree, so

T (n) =

log4 n∑i=1

(3

4

)i−1 n2

+ 3log4 n.

Summing the geometric series gives

log4 n∑i=1

(3

4

)i−1 n2

=n

2·log4 n∑i=1

(3

4

)i−1≤ n

2·∞∑i=0

(3

4

)i=

n

2· O(1) = O(n).

And we have

3log4 n = 2log(3)·log4(n) = 2log(3)· log(n)

log(4) = nlog(3)log(4) = o(n).

So overall, we expect T (n) = O(n). In other words, the root dominates.John Lapinskas Lecture 14 March 18th 2020 5 / 17

Page 24: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof via substitution

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

Guess: T (n) ≤ Cn for all n ≥ 1 (C to be determined).

Now that we have a good guess, proving it formally is a standard induction.

Base case n = 1: We have T (1) = 1 ≤ C · 1 whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′.Then we must prove T (n) ≤ Cn.

By the induction hypothesis, we have

T (n) = 3T (n/4) + n/2

≤ 3Cn/4 + n/2

= Cn − Cn/4 + n/2 = Cn +(12 −

C4

)n.

This is at most Cn iff C ≥ 2. X

We have proved T (n) ≤ 2n for all n ≥ 1, and hence T (n) = O(n).

John Lapinskas Lecture 14 March 18th 2020 6 / 17

Page 25: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof via substitution

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

Guess: T (n) ≤ Cn for all n ≥ 1 (C to be determined).

Now that we have a good guess, proving it formally is a standard induction.

Base case n = 1: We have T (1) = 1 ≤ C · 1 whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′.Then we must prove T (n) ≤ Cn.

By the induction hypothesis, we have

T (n) = 3T (n/4) + n/2

≤ 3Cn/4 + n/2

= Cn − Cn/4 + n/2 = Cn +(12 −

C4

)n.

This is at most Cn iff C ≥ 2. X

We have proved T (n) ≤ 2n for all n ≥ 1, and hence T (n) = O(n).

John Lapinskas Lecture 14 March 18th 2020 6 / 17

Page 26: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof via substitution

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

Guess: T (n) ≤ Cn for all n ≥ 1 (C to be determined).

Now that we have a good guess, proving it formally is a standard induction.

Base case n = 1: We have T (1) = 1 ≤ C · 1 whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′.Then we must prove T (n) ≤ Cn.

By the induction hypothesis, we have

T (n) = 3T (n/4) + n/2

≤ 3Cn/4 + n/2

= Cn − Cn/4 + n/2 = Cn +(12 −

C4

)n.

This is at most Cn iff C ≥ 2. X

We have proved T (n) ≤ 2n for all n ≥ 1, and hence T (n) = O(n).

John Lapinskas Lecture 14 March 18th 2020 6 / 17

Page 27: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof via substitution

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

Guess: T (n) ≤ Cn for all n ≥ 1 (C to be determined).

Now that we have a good guess, proving it formally is a standard induction.

Base case n = 1: We have T (1) = 1 ≤ C · 1 whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′.Then we must prove T (n) ≤ Cn.

By the induction hypothesis, we have

T (n) = 3T (n/4) + n/2

≤ 3Cn/4 + n/2

= Cn − Cn/4 + n/2 = Cn +(12 −

C4

)n.

This is at most Cn iff C ≥ 2. X

We have proved T (n) ≤ 2n for all n ≥ 1, and hence T (n) = O(n).

John Lapinskas Lecture 14 March 18th 2020 6 / 17

Page 28: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof via substitution

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

Guess: T (n) ≤ Cn for all n ≥ 1 (C to be determined).

Now that we have a good guess, proving it formally is a standard induction.

Base case n = 1: We have T (1) = 1 ≤ C · 1 whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′.Then we must prove T (n) ≤ Cn.

By the induction hypothesis, we have

T (n) = 3T (n/4) + n/2 ≤ 3Cn/4 + n/2

= Cn − Cn/4 + n/2 = Cn +(12 −

C4

)n.

This is at most Cn iff C ≥ 2. X

We have proved T (n) ≤ 2n for all n ≥ 1, and hence T (n) = O(n).

John Lapinskas Lecture 14 March 18th 2020 6 / 17

Page 29: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof via substitution

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

Guess: T (n) ≤ Cn for all n ≥ 1 (C to be determined).

Now that we have a good guess, proving it formally is a standard induction.

Base case n = 1: We have T (1) = 1 ≤ C · 1 whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′.Then we must prove T (n) ≤ Cn.

By the induction hypothesis, we have

T (n) = 3T (n/4) + n/2 ≤ 3Cn/4 + n/2

= Cn − Cn/4 + n/2

= Cn +(12 −

C4

)n.

This is at most Cn iff C ≥ 2. X

We have proved T (n) ≤ 2n for all n ≥ 1, and hence T (n) = O(n).

John Lapinskas Lecture 14 March 18th 2020 6 / 17

Page 30: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof via substitution

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

Guess: T (n) ≤ Cn for all n ≥ 1 (C to be determined).

Now that we have a good guess, proving it formally is a standard induction.

Base case n = 1: We have T (1) = 1 ≤ C · 1 whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′.Then we must prove T (n) ≤ Cn.

By the induction hypothesis, we have

T (n) = 3T (n/4) + n/2 ≤ 3Cn/4 + n/2

= Cn − Cn/4 + n/2 = Cn +(12 −

C4

)n.

This is at most Cn iff C ≥ 2. X

We have proved T (n) ≤ 2n for all n ≥ 1, and hence T (n) = O(n).

John Lapinskas Lecture 14 March 18th 2020 6 / 17

Page 31: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof via substitution

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

Guess: T (n) ≤ Cn for all n ≥ 1 (C to be determined).

Now that we have a good guess, proving it formally is a standard induction.

Base case n = 1: We have T (1) = 1 ≤ C · 1 whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′.Then we must prove T (n) ≤ Cn.

By the induction hypothesis, we have

T (n) = 3T (n/4) + n/2 ≤ 3Cn/4 + n/2

= Cn − Cn/4 + n/2 = Cn +(12 −

C4

)n.

This is at most Cn iff C ≥ 2. X

We have proved T (n) ≤ 2n for all n ≥ 1, and hence T (n) = O(n).

John Lapinskas Lecture 14 March 18th 2020 6 / 17

Page 32: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof via substitution

T (1) = 1, T (n) = 3T (n/4) + n/2, n is a power of 4.

Guess: T (n) ≤ Cn for all n ≥ 1 (C to be determined).

Now that we have a good guess, proving it formally is a standard induction.

Base case n = 1: We have T (1) = 1 ≤ C · 1 whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′.Then we must prove T (n) ≤ Cn.

By the induction hypothesis, we have

T (n) = 3T (n/4) + n/2 ≤ 3Cn/4 + n/2

= Cn − Cn/4 + n/2 = Cn +(12 −

C4

)n.

This is at most Cn iff C ≥ 2. X

We have proved T (n) ≤ 2n for all n ≥ 1, and hence T (n) = O(n).John Lapinskas Lecture 14 March 18th 2020 6 / 17

Page 33: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Another example

Now consider the recurrence

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

n

n/2

n/4

1

n2

n2

4n2

4n2

4n2

4

n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16

......

......

...

Except for the bottom, level i has 4i−1 nodes, each with cost (n/2i−1)2.Let #(levels) = t. Then n/2t−1 = 1, so we have t = 1 + log n.

John Lapinskas Lecture 14 March 18th 2020 7 / 17

Page 34: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Another example

Now consider the recurrence

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

n

n/2

n/4

1

n2

n2

4n2

4n2

4n2

4

n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16

......

......

...

Except for the bottom, level i has 4i−1 nodes, each with cost (n/2i−1)2.Let #(levels) = t. Then n/2t−1 = 1, so we have t = 1 + log n.

John Lapinskas Lecture 14 March 18th 2020 7 / 17

Page 35: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Another example

Now consider the recurrence

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

n

n/2

n/4

1

n2

n2

4n2

4n2

4n2

4

n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16

......

......

...

Except for the bottom, level i has 4i−1 nodes, each with cost (n/2i−1)2.

Let #(levels) = t. Then n/2t−1 = 1, so we have t = 1 + log n.

John Lapinskas Lecture 14 March 18th 2020 7 / 17

Page 36: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Another example

Now consider the recurrence

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

n

n/2

n/4

1

n2

n2

4n2

4n2

4n2

4

n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16n2

16

......

......

...

Except for the bottom, level i has 4i−1 nodes, each with cost (n/2i−1)2.Let #(levels) = t. Then n/2t−1 = 1, so we have t = 1 + log n.

John Lapinskas Lecture 14 March 18th 2020 7 / 17

Page 37: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

There are 1 + log n levels in total.For i ≤ log n, level i has 4i−1 nodes with cost (n/2i−1)2 each.Level 1 + log n has 4log n = 22 log n = n2 nodes with time cost 1 each.

T (n) is the total cost over the whole tree, so

T (n) =

log n∑i=1

4i−1 ·( n

2i−1

)2+ n2

=

log n∑i=1

n2 + n2

= (log(n) + 1)n2 = O(n2 log n).

In other words, every level costs the same.

John Lapinskas Lecture 14 March 18th 2020 8 / 17

Page 38: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

There are 1 + log n levels in total.For i ≤ log n, level i has 4i−1 nodes with cost (n/2i−1)2 each.Level 1 + log n has 4log n = 22 log n = n2 nodes with time cost 1 each.

T (n) is the total cost over the whole tree, so

T (n) =

log n∑i=1

4i−1 ·( n

2i−1

)2+ n2 =

log n∑i=1

n2 + n2

= (log(n) + 1)n2 = O(n2 log n).

In other words, every level costs the same.

John Lapinskas Lecture 14 March 18th 2020 8 / 17

Page 39: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

There are 1 + log n levels in total.For i ≤ log n, level i has 4i−1 nodes with cost (n/2i−1)2 each.Level 1 + log n has 4log n = 22 log n = n2 nodes with time cost 1 each.

T (n) is the total cost over the whole tree, so

T (n) =

log n∑i=1

4i−1 ·( n

2i−1

)2+ n2 =

log n∑i=1

n2 + n2

= (log(n) + 1)n2

= O(n2 log n).

In other words, every level costs the same.

John Lapinskas Lecture 14 March 18th 2020 8 / 17

Page 40: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

There are 1 + log n levels in total.For i ≤ log n, level i has 4i−1 nodes with cost (n/2i−1)2 each.Level 1 + log n has 4log n = 22 log n = n2 nodes with time cost 1 each.

T (n) is the total cost over the whole tree, so

T (n) =

log n∑i=1

4i−1 ·( n

2i−1

)2+ n2 =

log n∑i=1

n2 + n2

= (log(n) + 1)n2 = O(n2 log n).

In other words, every level costs the same.

John Lapinskas Lecture 14 March 18th 2020 8 / 17

Page 41: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

There are 1 + log n levels in total.For i ≤ log n, level i has 4i−1 nodes with cost (n/2i−1)2 each.Level 1 + log n has 4log n = 22 log n = n2 nodes with time cost 1 each.

T (n) is the total cost over the whole tree, so

T (n) =

log n∑i=1

4i−1 ·( n

2i−1

)2+ n2 =

log n∑i=1

n2 + n2

= (log(n) + 1)n2 = O(n2 log n).

In other words, every level costs the same.

John Lapinskas Lecture 14 March 18th 2020 8 / 17

Page 42: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

Guess: T (n) ≤ Cn2 log n for all n ≥ 2 (C to be determined).

Base case n = 2: We have T (2) = 4T (1) + 4 = 8, and C · 22 log 2 = 4C .So T (2) ≤ Cn2 log n whenever C ≥ 2. X

Inductive step: Suppose that for all 2 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′2 log n′.Then we must prove T (n) ≤ Cn2 log n.

By the induction hypothesis, we have

T (n) = 4T (n/2) + n2

≤ 4C(n2

)2log(n2

)+ n2

= Cn2(log n − 1) + n2 = Cn2 log n + (1− C )n2.

This is at most Cn2 log n iff C ≥ 1. X

We have proved T (n) ≤ 2n2 log n for all n ≥ 2, so T (n) = O(n2 log n).

John Lapinskas Lecture 14 March 18th 2020 9 / 17

Page 43: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

Guess: T (n) ≤ Cn2 log n for all n ≥ 2 (C to be determined).

Base case n = 2: We have T (2) = 4T (1) + 4 = 8, and C · 22 log 2 = 4C .So T (2) ≤ Cn2 log n whenever C ≥ 2. X

Inductive step: Suppose that for all 2 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′2 log n′.Then we must prove T (n) ≤ Cn2 log n.

By the induction hypothesis, we have

T (n) = 4T (n/2) + n2

≤ 4C(n2

)2log(n2

)+ n2

= Cn2(log n − 1) + n2 = Cn2 log n + (1− C )n2.

This is at most Cn2 log n iff C ≥ 1. X

We have proved T (n) ≤ 2n2 log n for all n ≥ 2, so T (n) = O(n2 log n).

John Lapinskas Lecture 14 March 18th 2020 9 / 17

Page 44: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

Guess: T (n) ≤ Cn2 log n for all n ≥ 2 (C to be determined).

Base case n = 2: We have T (2) = 4T (1) + 4 = 8, and C · 22 log 2 = 4C .So T (2) ≤ Cn2 log n whenever C ≥ 2. X

Inductive step: Suppose that for all 2 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′2 log n′.Then we must prove T (n) ≤ Cn2 log n.

By the induction hypothesis, we have

T (n) = 4T (n/2) + n2

≤ 4C(n2

)2log(n2

)+ n2

= Cn2(log n − 1) + n2 = Cn2 log n + (1− C )n2.

This is at most Cn2 log n iff C ≥ 1. X

We have proved T (n) ≤ 2n2 log n for all n ≥ 2, so T (n) = O(n2 log n).

John Lapinskas Lecture 14 March 18th 2020 9 / 17

Page 45: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

Guess: T (n) ≤ Cn2 log n for all n ≥ 2 (C to be determined).

Base case n = 2: We have T (2) = 4T (1) + 4 = 8, and C · 22 log 2 = 4C .So T (2) ≤ Cn2 log n whenever C ≥ 2. X

Inductive step: Suppose that for all 2 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′2 log n′.Then we must prove T (n) ≤ Cn2 log n.

By the induction hypothesis, we have

T (n) = 4T (n/2) + n2

≤ 4C(n2

)2log(n2

)+ n2

= Cn2(log n − 1) + n2 = Cn2 log n + (1− C )n2.

This is at most Cn2 log n iff C ≥ 1. X

We have proved T (n) ≤ 2n2 log n for all n ≥ 2, so T (n) = O(n2 log n).

John Lapinskas Lecture 14 March 18th 2020 9 / 17

Page 46: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

Guess: T (n) ≤ Cn2 log n for all n ≥ 2 (C to be determined).

Base case n = 2: We have T (2) = 4T (1) + 4 = 8, and C · 22 log 2 = 4C .So T (2) ≤ Cn2 log n whenever C ≥ 2. X

Inductive step: Suppose that for all 2 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′2 log n′.Then we must prove T (n) ≤ Cn2 log n.

By the induction hypothesis, we have

T (n) = 4T (n/2) + n2 ≤ 4C(n2

)2log(n2

)+ n2

= Cn2(log n − 1) + n2 = Cn2 log n + (1− C )n2.

This is at most Cn2 log n iff C ≥ 1. X

We have proved T (n) ≤ 2n2 log n for all n ≥ 2, so T (n) = O(n2 log n).

John Lapinskas Lecture 14 March 18th 2020 9 / 17

Page 47: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

Guess: T (n) ≤ Cn2 log n for all n ≥ 2 (C to be determined).

Base case n = 2: We have T (2) = 4T (1) + 4 = 8, and C · 22 log 2 = 4C .So T (2) ≤ Cn2 log n whenever C ≥ 2. X

Inductive step: Suppose that for all 2 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′2 log n′.Then we must prove T (n) ≤ Cn2 log n.

By the induction hypothesis, we have

T (n) = 4T (n/2) + n2 ≤ 4C(n2

)2log(n2

)+ n2

= Cn2(log n − 1) + n2

= Cn2 log n + (1− C )n2.

This is at most Cn2 log n iff C ≥ 1. X

We have proved T (n) ≤ 2n2 log n for all n ≥ 2, so T (n) = O(n2 log n).

John Lapinskas Lecture 14 March 18th 2020 9 / 17

Page 48: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

Guess: T (n) ≤ Cn2 log n for all n ≥ 2 (C to be determined).

Base case n = 2: We have T (2) = 4T (1) + 4 = 8, and C · 22 log 2 = 4C .So T (2) ≤ Cn2 log n whenever C ≥ 2. X

Inductive step: Suppose that for all 2 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′2 log n′.Then we must prove T (n) ≤ Cn2 log n.

By the induction hypothesis, we have

T (n) = 4T (n/2) + n2 ≤ 4C(n2

)2log(n2

)+ n2

= Cn2(log n − 1) + n2 = Cn2 log n + (1− C )n2.

This is at most Cn2 log n iff C ≥ 1. X

We have proved T (n) ≤ 2n2 log n for all n ≥ 2, so T (n) = O(n2 log n).

John Lapinskas Lecture 14 March 18th 2020 9 / 17

Page 49: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

Guess: T (n) ≤ Cn2 log n for all n ≥ 2 (C to be determined).

Base case n = 2: We have T (2) = 4T (1) + 4 = 8, and C · 22 log 2 = 4C .So T (2) ≤ Cn2 log n whenever C ≥ 2. X

Inductive step: Suppose that for all 2 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′2 log n′.Then we must prove T (n) ≤ Cn2 log n.

By the induction hypothesis, we have

T (n) = 4T (n/2) + n2 ≤ 4C(n2

)2log(n2

)+ n2

= Cn2(log n − 1) + n2 = Cn2 log n + (1− C )n2.

This is at most Cn2 log n iff C ≥ 1. X

We have proved T (n) ≤ 2n2 log n for all n ≥ 2, so T (n) = O(n2 log n).

John Lapinskas Lecture 14 March 18th 2020 9 / 17

Page 50: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 4T (n/2) + n2, n is a power of 2.

Guess: T (n) ≤ Cn2 log n for all n ≥ 2 (C to be determined).

Base case n = 2: We have T (2) = 4T (1) + 4 = 8, and C · 22 log 2 = 4C .So T (2) ≤ Cn2 log n whenever C ≥ 2. X

Inductive step: Suppose that for all 2 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′2 log n′.Then we must prove T (n) ≤ Cn2 log n.

By the induction hypothesis, we have

T (n) = 4T (n/2) + n2 ≤ 4C(n2

)2log(n2

)+ n2

= Cn2(log n − 1) + n2 = Cn2 log n + (1− C )n2.

This is at most Cn2 log n iff C ≥ 1. X

We have proved T (n) ≤ 2n2 log n for all n ≥ 2, so T (n) = O(n2 log n).

John Lapinskas Lecture 14 March 18th 2020 9 / 17

Page 51: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

A third example

Now consider the recurrence

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

n

n/3

n/9

1 1 1 1 1 1 1 1 1

√n

√n/3

√n/3

√n/9

√n/9

√n/9

√n/9

......

...

Except for the bottom, level i has 2i−1 nodes, each with cost√n/3i−1.

Let #(levels) = t. Then n/3t−1 = 1, so we have t = 1 + log3 n.

John Lapinskas Lecture 14 March 18th 2020 10 / 17

Page 52: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

A third example

Now consider the recurrence

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

n

n/3

n/9

1 1 1 1 1 1 1 1 1

√n

√n/3

√n/3

√n/9

√n/9

√n/9

√n/9

......

...

Except for the bottom, level i has 2i−1 nodes, each with cost√n/3i−1.

Let #(levels) = t. Then n/3t−1 = 1, so we have t = 1 + log3 n.

John Lapinskas Lecture 14 March 18th 2020 10 / 17

Page 53: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

A third example

Now consider the recurrence

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

n

n/3

n/9

1 1 1 1 1 1 1 1 1

√n

√n/3

√n/3

√n/9

√n/9

√n/9

√n/9

......

...

Except for the bottom, level i has 2i−1 nodes, each with cost√

n/3i−1.

Let #(levels) = t. Then n/3t−1 = 1, so we have t = 1 + log3 n.

John Lapinskas Lecture 14 March 18th 2020 10 / 17

Page 54: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

A third example

Now consider the recurrence

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

n

n/3

n/9

1 1 1 1 1 1 1 1 1

√n

√n/3

√n/3

√n/9

√n/9

√n/9

√n/9

......

...

Except for the bottom, level i has 2i−1 nodes, each with cost√

n/3i−1.Let #(levels) = t. Then n/3t−1 = 1, so we have t = 1 + log3 n.

John Lapinskas Lecture 14 March 18th 2020 10 / 17

Page 55: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

There are 1 + log3 n levels in total.For i ≤ log3 n, level i has 2i−1 nodes with cost

√n/3i−1 each.

Level 1 + log3 n has 2log3 n nodes with time cost 1 each.

T (n) is the total cost over the whole tree, so

T (n) =

log3 n∑i=1

2i−1 ·√n/3i−1 + 2log3 n

=√n

log3 n∑i=1

( 2√3

)i−1+ 2log3 n.

Since 2 >√

3, this sum is dominated by its last term; formally, we have

log3 n∑i=1

( 2√3

)i−1=( 2√

3

)log3 n−1 log3−1∑j=0

(√3

2

)j= Θ

(( 2√3

)log3 n).

John Lapinskas Lecture 14 March 18th 2020 11 / 17

Page 56: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

There are 1 + log3 n levels in total.For i ≤ log3 n, level i has 2i−1 nodes with cost

√n/3i−1 each.

Level 1 + log3 n has 2log3 n nodes with time cost 1 each.

T (n) is the total cost over the whole tree, so

T (n) =

log3 n∑i=1

2i−1 ·√n/3i−1 + 2log3 n =

√n

log3 n∑i=1

( 2√3

)i−1+ 2log3 n.

Since 2 >√

3, this sum is dominated by its last term; formally, we have

log3 n∑i=1

( 2√3

)i−1=( 2√

3

)log3 n−1 log3−1∑j=0

(√3

2

)j= Θ

(( 2√3

)log3 n).

John Lapinskas Lecture 14 March 18th 2020 11 / 17

Page 57: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

There are 1 + log3 n levels in total.For i ≤ log3 n, level i has 2i−1 nodes with cost

√n/3i−1 each.

Level 1 + log3 n has 2log3 n nodes with time cost 1 each.

T (n) is the total cost over the whole tree, so

T (n) =

log3 n∑i=1

2i−1 ·√n/3i−1 + 2log3 n =

√n

log3 n∑i=1

( 2√3

)i−1+ 2log3 n.

Since 2 >√

3, this sum is dominated by its last term; formally, we have

log3 n∑i=1

( 2√3

)i−1

=( 2√

3

)log3 n−1 log3−1∑j=0

(√3

2

)j= Θ

(( 2√3

)log3 n).

John Lapinskas Lecture 14 March 18th 2020 11 / 17

Page 58: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

There are 1 + log3 n levels in total.For i ≤ log3 n, level i has 2i−1 nodes with cost

√n/3i−1 each.

Level 1 + log3 n has 2log3 n nodes with time cost 1 each.

T (n) is the total cost over the whole tree, so

T (n) =

log3 n∑i=1

2i−1 ·√n/3i−1 + 2log3 n =

√n

log3 n∑i=1

( 2√3

)i−1+ 2log3 n.

Since 2 >√

3, this sum is dominated by its last term; formally, we have

log3 n∑i=1

( 2√3

)i−1=( 2√

3

)log3 n−1 log3−1∑j=0

(√3

2

)j

= Θ(( 2√

3

)log3 n).

John Lapinskas Lecture 14 March 18th 2020 11 / 17

Page 59: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

There are 1 + log3 n levels in total.For i ≤ log3 n, level i has 2i−1 nodes with cost

√n/3i−1 each.

Level 1 + log3 n has 2log3 n nodes with time cost 1 each.

T (n) is the total cost over the whole tree, so

T (n) =

log3 n∑i=1

2i−1 ·√n/3i−1 + 2log3 n =

√n

log3 n∑i=1

( 2√3

)i−1+ 2log3 n.

Since 2 >√

3, this sum is dominated by its last term; formally, we have

log3 n∑i=1

( 2√3

)i−1=( 2√

3

)log3 n−1 log3−1∑j=0

(√3

2

)j= Θ

(( 2√3

)log3 n).

John Lapinskas Lecture 14 March 18th 2020 11 / 17

Page 60: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree (part 2)

T (n) =√n

log3 n∑i=1

( 2√3

)i−1+ 2log3 n,

log3 n∑i=1

( 2√3

)i−1= Θ

(( 2√3

)log3 n).

We have

√n( 2√

3

)log3 n

=√n · 2log3 n

3(log3 n)/2=√n · 2log3 n

n1/2= 2log3 n.

So T (n) = O(2log3 n) = O(n1/ log(3)), and the leaves dominate.

John Lapinskas Lecture 14 March 18th 2020 12 / 17

Page 61: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree (part 2)

T (n) =√n

log3 n∑i=1

( 2√3

)i−1+ 2log3 n,

log3 n∑i=1

( 2√3

)i−1= Θ

(( 2√3

)log3 n).

We have

√n( 2√

3

)log3 n=√n · 2log3 n

3(log3 n)/2

=√n · 2log3 n

n1/2= 2log3 n.

So T (n) = O(2log3 n) = O(n1/ log(3)), and the leaves dominate.

John Lapinskas Lecture 14 March 18th 2020 12 / 17

Page 62: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree (part 2)

T (n) =√n

log3 n∑i=1

( 2√3

)i−1+ 2log3 n,

log3 n∑i=1

( 2√3

)i−1= Θ

(( 2√3

)log3 n).

We have

√n( 2√

3

)log3 n=√n · 2log3 n

3(log3 n)/2=√n · 2log3 n

n1/2

= 2log3 n.

So T (n) = O(2log3 n) = O(n1/ log(3)), and the leaves dominate.

John Lapinskas Lecture 14 March 18th 2020 12 / 17

Page 63: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree (part 2)

T (n) =√n

log3 n∑i=1

( 2√3

)i−1+ 2log3 n,

log3 n∑i=1

( 2√3

)i−1= Θ

(( 2√3

)log3 n).

We have

√n( 2√

3

)log3 n=√n · 2log3 n

3(log3 n)/2=√n · 2log3 n

n1/2= 2log3 n.

So T (n) = O(2log3 n) = O(n1/ log(3)), and the leaves dominate.

John Lapinskas Lecture 14 March 18th 2020 12 / 17

Page 64: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Analysing the tree (part 2)

T (n) =√n

log3 n∑i=1

( 2√3

)i−1+ 2log3 n,

log3 n∑i=1

( 2√3

)i−1= Θ

(( 2√3

)log3 n).

We have

√n( 2√

3

)log3 n=√n · 2log3 n

3(log3 n)/2=√n · 2log3 n

n1/2= 2log3 n.

So T (n) = O(2log3 n) = O(n1/ log(3)), and the leaves dominate.

John Lapinskas Lecture 14 March 18th 2020 12 / 17

Page 65: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3) for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1 ≤ C · 11/ log(3) whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3).Then we must prove T (n) ≤ Cn1/ log(3).

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n

≤ 2C (n/3)1/ log(3) +√n

=2

31/ log(3)Cn1/ log(3) +

√n.

We have 31/ log(3) = 2log(3)/ log(3) = 2, so T (n) ≤ Cn1/ log(3) +√n...

which isn’t quite good enough.

But we know how to deal with this: add a correction term!

John Lapinskas Lecture 14 March 18th 2020 13 / 17

Page 66: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3) for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1 ≤ C · 11/ log(3) whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3).Then we must prove T (n) ≤ Cn1/ log(3).

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n

≤ 2C (n/3)1/ log(3) +√n

=2

31/ log(3)Cn1/ log(3) +

√n.

We have 31/ log(3) = 2log(3)/ log(3) = 2, so T (n) ≤ Cn1/ log(3) +√n...

which isn’t quite good enough.

But we know how to deal with this: add a correction term!

John Lapinskas Lecture 14 March 18th 2020 13 / 17

Page 67: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3) for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1 ≤ C · 11/ log(3) whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3).Then we must prove T (n) ≤ Cn1/ log(3).

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n

≤ 2C (n/3)1/ log(3) +√n

=2

31/ log(3)Cn1/ log(3) +

√n.

We have 31/ log(3) = 2log(3)/ log(3) = 2, so T (n) ≤ Cn1/ log(3) +√n...

which isn’t quite good enough.

But we know how to deal with this: add a correction term!

John Lapinskas Lecture 14 March 18th 2020 13 / 17

Page 68: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3) for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1 ≤ C · 11/ log(3) whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3).Then we must prove T (n) ≤ Cn1/ log(3).

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n

≤ 2C (n/3)1/ log(3) +√n

=2

31/ log(3)Cn1/ log(3) +

√n.

We have 31/ log(3) = 2log(3)/ log(3) = 2, so T (n) ≤ Cn1/ log(3) +√n...

which isn’t quite good enough.

But we know how to deal with this: add a correction term!

John Lapinskas Lecture 14 March 18th 2020 13 / 17

Page 69: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3) for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1 ≤ C · 11/ log(3) whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3).Then we must prove T (n) ≤ Cn1/ log(3).

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n ≤ 2C (n/3)1/ log(3) +

√n

=2

31/ log(3)Cn1/ log(3) +

√n.

We have 31/ log(3) = 2log(3)/ log(3) = 2, so T (n) ≤ Cn1/ log(3) +√n...

which isn’t quite good enough.

But we know how to deal with this: add a correction term!

John Lapinskas Lecture 14 March 18th 2020 13 / 17

Page 70: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3) for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1 ≤ C · 11/ log(3) whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3).Then we must prove T (n) ≤ Cn1/ log(3).

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n ≤ 2C (n/3)1/ log(3) +

√n

=2

31/ log(3)Cn1/ log(3) +

√n.

We have 31/ log(3) = 2log(3)/ log(3) = 2, so T (n) ≤ Cn1/ log(3) +√n...

which isn’t quite good enough.

But we know how to deal with this: add a correction term!

John Lapinskas Lecture 14 March 18th 2020 13 / 17

Page 71: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3) for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1 ≤ C · 11/ log(3) whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3).Then we must prove T (n) ≤ Cn1/ log(3).

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n ≤ 2C (n/3)1/ log(3) +

√n

=2

31/ log(3)Cn1/ log(3) +

√n.

We have 31/ log(3) = 2log(3)/ log(3) = 2, so T (n) ≤ Cn1/ log(3) +√n.

..which isn’t quite good enough.

But we know how to deal with this: add a correction term!

John Lapinskas Lecture 14 March 18th 2020 13 / 17

Page 72: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3) for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1 ≤ C · 11/ log(3) whenever C ≥ 1. X

Inductive step: Suppose that for all 1 ≤ n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3).Then we must prove T (n) ≤ Cn1/ log(3).

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n ≤ 2C (n/3)1/ log(3) +

√n

=2

31/ log(3)Cn1/ log(3) +

√n.

We have 31/ log(3) = 2log(3)/ log(3) = 2, so T (n) ≤ Cn1/ log(3) +√n...

which isn’t quite good enough.

But we know how to deal with this: add a correction term!

John Lapinskas Lecture 14 March 18th 2020 13 / 17

Page 73: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution (attempt 2)

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3)−√n for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1, and C · 11/ log(3) −√

1 = C − 1.So the base case works whenever C ≥ 2. X

Inductive step: Suppose for all n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3) −√n′.

Then we must prove T (n) ≤ Cn1/ log(3) −√n.

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n

≤ 2C (n/3)1/ log(3)− 2√n/3 +

√n

≤ 2

31/ log(3)Cn1/ log(3).

We have 31/ log(3) = 2log(3)/ log(3) = 2, so this is at most Cn1/ log(3) always.

We have proved T (n) ≤ 2n1/ log(3) −√n for all n, so T (n) = O(n1/ log(3)).

John Lapinskas Lecture 14 March 18th 2020 14 / 17

Page 74: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution (attempt 2)

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3)−√n for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1, and C · 11/ log(3) −√

1 = C − 1.So the base case works whenever C ≥ 2. X

Inductive step: Suppose for all n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3) −√n′.

Then we must prove T (n) ≤ Cn1/ log(3) −√n.

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n

≤ 2C (n/3)1/ log(3)− 2√n/3 +

√n

≤ 2

31/ log(3)Cn1/ log(3).

We have 31/ log(3) = 2log(3)/ log(3) = 2, so this is at most Cn1/ log(3) always.

We have proved T (n) ≤ 2n1/ log(3) −√n for all n, so T (n) = O(n1/ log(3)).

John Lapinskas Lecture 14 March 18th 2020 14 / 17

Page 75: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution (attempt 2)

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3)−√n for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1, and C · 11/ log(3) −√

1 = C − 1.So the base case works whenever C ≥ 2. X

Inductive step: Suppose for all n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3) −√n′.

Then we must prove T (n) ≤ Cn1/ log(3) −√n.

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n

≤ 2C (n/3)1/ log(3)− 2√n/3 +

√n

≤ 2

31/ log(3)Cn1/ log(3).

We have 31/ log(3) = 2log(3)/ log(3) = 2, so this is at most Cn1/ log(3) always.

We have proved T (n) ≤ 2n1/ log(3) −√n for all n, so T (n) = O(n1/ log(3)).

John Lapinskas Lecture 14 March 18th 2020 14 / 17

Page 76: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution (attempt 2)

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3)−√n for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1, and C · 11/ log(3) −√

1 = C − 1.So the base case works whenever C ≥ 2. X

Inductive step: Suppose for all n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3) −√n′.

Then we must prove T (n) ≤ Cn1/ log(3) −√n.

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n

≤ 2C (n/3)1/ log(3)− 2√n/3 +

√n

≤ 2

31/ log(3)Cn1/ log(3).

We have 31/ log(3) = 2log(3)/ log(3) = 2, so this is at most Cn1/ log(3) always.

We have proved T (n) ≤ 2n1/ log(3) −√n for all n, so T (n) = O(n1/ log(3)).

John Lapinskas Lecture 14 March 18th 2020 14 / 17

Page 77: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution (attempt 2)

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3)−√n for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1, and C · 11/ log(3) −√

1 = C − 1.So the base case works whenever C ≥ 2. X

Inductive step: Suppose for all n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3) −√n′.

Then we must prove T (n) ≤ Cn1/ log(3) −√n.

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n ≤ 2C (n/3)1/ log(3)− 2

√n/3 +

√n

≤ 2

31/ log(3)Cn1/ log(3).

We have 31/ log(3) = 2log(3)/ log(3) = 2, so this is at most Cn1/ log(3) always.

We have proved T (n) ≤ 2n1/ log(3) −√n for all n, so T (n) = O(n1/ log(3)).

John Lapinskas Lecture 14 March 18th 2020 14 / 17

Page 78: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution (attempt 2)

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3)−√n for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1, and C · 11/ log(3) −√

1 = C − 1.So the base case works whenever C ≥ 2. X

Inductive step: Suppose for all n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3) −√n′.

Then we must prove T (n) ≤ Cn1/ log(3) −√n.

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n ≤ 2C (n/3)1/ log(3)− 2

√n/3 +

√n

≤ 2

31/ log(3)Cn1/ log(3).

We have 31/ log(3) = 2log(3)/ log(3) = 2, so this is at most Cn1/ log(3) always.

We have proved T (n) ≤ 2n1/ log(3) −√n for all n, so T (n) = O(n1/ log(3)).

John Lapinskas Lecture 14 March 18th 2020 14 / 17

Page 79: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution (attempt 2)

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3)−√n for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1, and C · 11/ log(3) −√

1 = C − 1.So the base case works whenever C ≥ 2. X

Inductive step: Suppose for all n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3) −√n′.

Then we must prove T (n) ≤ Cn1/ log(3) −√n.

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n ≤ 2C (n/3)1/ log(3)− 2

√n/3 +

√n

≤ 2

31/ log(3)Cn1/ log(3).

We have 31/ log(3) = 2log(3)/ log(3) = 2, so this is at most Cn1/ log(3) always.

We have proved T (n) ≤ 2n1/ log(3) −√n for all n, so T (n) = O(n1/ log(3)).

John Lapinskas Lecture 14 March 18th 2020 14 / 17

Page 80: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Formal proof by substitution (attempt 2)

T (1) = 1, T (n) = 2T (n/3) +√n, n is a power of 3.

Guess: T (n) ≤ Cn1/ log(3)−√n for all n ≥ 1 (C to be determined).

Base case n = 1: We have T (1) = 1, and C · 11/ log(3) −√

1 = C − 1.So the base case works whenever C ≥ 2. X

Inductive step: Suppose for all n′ ≤ n − 1, T (n′) ≤ Cn′1/ log(3) −√n′.

Then we must prove T (n) ≤ Cn1/ log(3) −√n.

By the induction hypothesis, we have

T (n) = 2T (n/3) +√n ≤ 2C (n/3)1/ log(3)− 2

√n/3 +

√n

≤ 2

31/ log(3)Cn1/ log(3).

We have 31/ log(3) = 2log(3)/ log(3) = 2, so this is at most Cn1/ log(3) always.

We have proved T (n) ≤ 2n1/ log(3) −√n for all n, so T (n) = O(n1/ log(3)).

John Lapinskas Lecture 14 March 18th 2020 14 / 17

Page 81: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Recap

These examples fell into three categories:

1 For T (n) = 2T (n/3) +√n, the leaves dominated.

2 For T (n) = 4T (n/2) + n2, the levels were all equal.

3 For T (n) = 3T (n/4) + n/2, the root dominated.

Wouldn’t it be nice if we could put any recurrence relation of the formT (n) = aT (n/b) + f (n) into one of those three categories?

Then we could just write the answer down without having to solve it...

Actually, we can!

John Lapinskas Lecture 14 March 18th 2020 15 / 17

Page 82: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Recap

These examples fell into three categories:

1 For T (n) = 2T (n/3) +√n, the leaves dominated.

2 For T (n) = 4T (n/2) + n2, the levels were all equal.

3 For T (n) = 3T (n/4) + n/2, the root dominated.

Wouldn’t it be nice if we could put any recurrence relation of the formT (n) = aT (n/b) + f (n) into one of those three categories?

Then we could just write the answer down without having to solve it...

Actually, we can!

John Lapinskas Lecture 14 March 18th 2020 15 / 17

Page 83: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Recap

These examples fell into three categories:

1 For T (n) = 2T (n/3) +√n, the leaves dominated.

2 For T (n) = 4T (n/2) + n2, the levels were all equal.

3 For T (n) = 3T (n/4) + n/2, the root dominated.

Wouldn’t it be nice if we could put any recurrence relation of the formT (n) = aT (n/b) + f (n) into one of those three categories?

Then we could just write the answer down without having to solve it...

Actually, we can!

John Lapinskas Lecture 14 March 18th 2020 15 / 17

Page 84: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

The Master Theorem (non-examinable!)

The Master Theorem: Suppose T (1) = O(1) and, for n > 1,T (n) = aT (n/b) + f (n) for some constants a, b > 0 and some functionf : N→ R. Let ξ = logb a be the critical exponent. Then:

1 If f (n) = O(nξ−ε) for some ε > 0, then T (n) = Θ(nξ).In other words, the leaves dominate.

2 If f (n) = Θ(nξ), then T (n) = Θ(nξ log n).In other words, the levels are roughly equal.

3 If f (n) = Ω(nξ+ε) for some ε > 0 and af (n/b) = O(f (n)), thenT (n) = Θ(f (n)). In other words, the root dominates.

The condition af (n/b) = O(f (n)) in the last case always holds when f isa polynomial in n, but rules out weird cases like

f (n) =

n if n is odd,

n2 if n is even.

John Lapinskas Lecture 14 March 18th 2020 16 / 17

Page 85: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

The Master Theorem (non-examinable!)

The Master Theorem: Suppose T (1) = O(1) and, for n > 1,T (n) = aT (n/b) + f (n) for some constants a, b > 0 and some functionf : N→ R. Let ξ = logb a be the critical exponent. Then:

1 If f (n) = O(nξ−ε) for some ε > 0, then T (n) = Θ(nξ).In other words, the leaves dominate.

2 If f (n) = Θ(nξ), then T (n) = Θ(nξ log n).In other words, the levels are roughly equal.

3 If f (n) = Ω(nξ+ε) for some ε > 0 and af (n/b) = O(f (n)), thenT (n) = Θ(f (n)). In other words, the root dominates.

The condition af (n/b) = O(f (n)) in the last case always holds when f isa polynomial in n, but rules out weird cases like

f (n) =

n if n is odd,

n2 if n is even.

John Lapinskas Lecture 14 March 18th 2020 16 / 17

Page 86: Solving Recurrences II COMS10007 2020, Lecture 14people.cs.bris.ac.uk/~konrad/courses/2019_2020... · John Lapinskas Lecture 14 March 18th 20205/17. T(1) = 1; T(n) = 3T(n=4) + n=2;

Next time:Christian’s triumphant return!∗

*Return may not be triumphant or even physical, rules and restrictions apply.

John Lapinskas Lecture 14 March 18th 2020 17 / 17