+ All Categories
Home > Documents > Week 3.3, Friday, Sept 6 - Purdue University1 Week 3.3, Friday, Sept 6 Announcement: Homework 1...

Week 3.3, Friday, Sept 6 - Purdue University1 Week 3.3, Friday, Sept 6 Announcement: Homework 1...

Date post: 06-Jul-2020
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
21
1 Week 3.3, Friday, Sept 6 Announcement: Homework 1 Solutions released on Piazza Homework 2 Due: September 16 th , 2019 @ 11:59PM on Gradescope
Transcript

1

Week 3.3, Friday, Sept 6

Announcement: Homework 1 Solutions released on PiazzaHomework 2 Due: September 16th, 2019 @ 11:59PM on Gradescope

Recap: Master Theorem

β€’ Derived by analyzing recursion tree

𝑇𝑇 𝑛𝑛 = �𝟏𝟏𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎 π’Šπ’Šπ’Šπ’Š 𝒏𝒏 ≀ 𝟏𝟏𝟎𝟎𝟎𝟎

π‘Žπ‘Ž Γ— 𝑇𝑇𝑛𝑛𝑏𝑏

+ 𝟏𝟏 + 𝑛𝑛𝑐𝑐 π‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œ

Obtain Geometric Series: 𝑇𝑇 𝑛𝑛 = Θ 𝑛𝑛𝑐𝑐 βˆ‘π‘–π‘–=1log𝑏𝑏 𝑛𝑛 π‘Žπ‘Ž

𝑏𝑏𝑐𝑐𝑖𝑖

β€’ Key Ratio: a/bc 𝒍𝒍𝒍𝒍𝒍𝒍𝒃𝒃 𝒂𝒂 β‰₯ 𝒄𝒄 ↔ 𝒂𝒂𝒃𝒃𝒄𝒄β‰₯ 𝟏𝟏

β€’ Case 1: π‘Žπ‘Žπ‘π‘π‘π‘

< 1 𝑇𝑇 𝑛𝑛 = Θ 𝑛𝑛𝑐𝑐

β€’ Case 2: π‘Žπ‘Žπ‘π‘π‘π‘

= 1 𝑇𝑇 𝑛𝑛 = Θ 𝑛𝑛𝑐𝑐 log𝑛𝑛

β€’ Case 3: π‘Žπ‘Žπ‘π‘π‘π‘

> 1 𝑇𝑇 𝑛𝑛 = Θ 𝑛𝑛log𝑏𝑏 π‘Žπ‘Ž

2

Other Form of Master Theorem

β€’ What if MergeCost is not exactly f(n)=nc? β€’ f(n) = n log n? or β€’ f n = 𝑛𝑛

110+log𝑏𝑏 π‘Žπ‘Ž/log(𝑛𝑛)?

3

Case 3: 𝑓𝑓 𝑛𝑛 = 𝑂𝑂 𝑛𝑛log𝑏𝑏 π‘Žπ‘Žβˆ’Ξ΅ 𝑇𝑇 𝑛𝑛 = Θ 𝑛𝑛log𝑏𝑏 π‘Žπ‘Ž

𝑇𝑇 𝑛𝑛 = �𝑢𝑢 𝟏𝟏 π’Šπ’Šπ’Šπ’Š 𝒏𝒏 ≀ 𝟏𝟏𝟎𝟎𝟎𝟎

π‘Žπ‘Ž Γ— 𝑇𝑇𝑛𝑛𝑏𝑏

+ πŸ“πŸ“πŸŽπŸŽ + 𝑓𝑓(𝑛𝑛) π‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œ

Case 1: 𝑓𝑓 𝑛𝑛 = Ξ© 𝑛𝑛Ρ+log𝑏𝑏 π‘Žπ‘Ž 𝑇𝑇 𝑛𝑛 = Θ 𝑓𝑓(𝑛𝑛)

Case 2: 𝑓𝑓 𝑛𝑛 = Θ 𝑛𝑛log𝑏𝑏 π‘Žπ‘Ž logπ‘˜π‘˜ 𝑛𝑛 𝑇𝑇 𝑛𝑛 = Θ 𝑛𝑛log𝑏𝑏 π‘Žπ‘Ž logπ‘˜π‘˜+1 𝑛𝑛(assumes π‘˜π‘˜ β‰₯ 0)

Assume𝑓𝑓(𝑛𝑛) β‰₯ 0

Clicker Question

Suppose that f n = 𝑛𝑛110+log𝑏𝑏 π‘Žπ‘Ž/log(𝑛𝑛) above what is 𝑇𝑇 𝑛𝑛 ?

A. Θ 𝑓𝑓(𝑛𝑛) B. Θ 𝑛𝑛log𝑏𝑏 π‘Žπ‘Ž logπ‘˜π‘˜+1 𝑛𝑛

C. 𝑇𝑇 𝑛𝑛 = Θ 𝑛𝑛log𝑏𝑏 π‘Žπ‘Ž D. More info required

4

Case 3: 𝑓𝑓 𝑛𝑛 = 𝑂𝑂 𝑛𝑛log𝑏𝑏 π‘Žπ‘Žβˆ’Ξ΅ 𝑇𝑇 𝑛𝑛 = Θ 𝑛𝑛log𝑏𝑏 π‘Žπ‘Ž

𝑇𝑇 𝑛𝑛 ≀ �𝟏𝟏𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎 π’Šπ’Šπ’Šπ’Š 𝒏𝒏 ≀ 𝟏𝟏𝟎𝟎𝟎𝟎

π‘Žπ‘Ž Γ— 𝑇𝑇𝑛𝑛𝑏𝑏

+ πŸ“πŸ“πŸŽπŸŽ + 𝑓𝑓(𝑛𝑛) π‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œ

Case 1: 𝑓𝑓 𝑛𝑛 = Ξ© 𝑛𝑛Ρ+log𝑏𝑏 π‘Žπ‘Ž 𝑇𝑇 𝑛𝑛 = Θ 𝑓𝑓(𝑛𝑛)

Case 2: 𝑓𝑓 𝑛𝑛 = Θ 𝑛𝑛log𝑏𝑏 π‘Žπ‘Ž logπ‘˜π‘˜ 𝑛𝑛 𝑇𝑇 𝑛𝑛 = Θ 𝑛𝑛log𝑏𝑏 π‘Žπ‘Ž logπ‘˜π‘˜+1 𝑛𝑛(assumes π‘˜π‘˜ β‰₯ 0)

Assume𝑓𝑓(𝑛𝑛) β‰₯ 0

Clicker Question

Suppose that f n = 𝑛𝑛110+log𝑏𝑏 π‘Žπ‘Ž/log(𝑛𝑛) above what is 𝑇𝑇 𝑛𝑛 ?

A. Θ 𝑓𝑓(𝑛𝑛) B. Θ 𝑛𝑛log𝑏𝑏 π‘Žπ‘Ž logπ‘˜π‘˜+1 𝑛𝑛

C. 𝑇𝑇 𝑛𝑛 = Θ 𝑛𝑛log𝑏𝑏 π‘Žπ‘Ž D. More info required

5

Case 3: 𝑓𝑓 𝑛𝑛 = 𝑂𝑂 𝑛𝑛log𝑏𝑏 π‘Žπ‘Žβˆ’Ξ΅ 𝑇𝑇 𝑛𝑛 = Θ 𝑛𝑛log𝑏𝑏 π‘Žπ‘Ž

𝑇𝑇 𝑛𝑛 ≀ �𝟏𝟏𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎 π’Šπ’Šπ’Šπ’Š 𝒏𝒏 ≀ 𝟏𝟏𝟎𝟎𝟎𝟎

π‘Žπ‘Ž Γ— 𝑇𝑇𝑛𝑛𝑏𝑏

+ πŸ“πŸ“πŸŽπŸŽ + 𝑓𝑓(𝑛𝑛) π‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œπ‘œ

Case 1: 𝑓𝑓 𝑛𝑛 = Ξ© 𝑛𝑛Ρ+log𝑏𝑏 π‘Žπ‘Ž 𝑇𝑇 𝑛𝑛 = Θ 𝑓𝑓(𝑛𝑛)

Case 2: 𝑓𝑓 𝑛𝑛 = Θ 𝑛𝑛log𝑏𝑏 π‘Žπ‘Ž logπ‘˜π‘˜ 𝑛𝑛 𝑇𝑇 𝑛𝑛 = Θ 𝑛𝑛log𝑏𝑏 π‘Žπ‘Ž logπ‘˜π‘˜+1 𝑛𝑛(assumes π‘˜π‘˜ β‰₯ 0)

Assume𝑓𝑓(𝑛𝑛) β‰₯ 0

Other Types of Recurrences

β€’ T n = T n βˆ’ 1 + 1 (Unroll: T n = Θ(n))β€’ T n = T n βˆ’ 1 + 1 = T n βˆ’ 2 + 1 + 1

= T n βˆ’ 3 + 1 + 1 + 1 = β‹― = T n βˆ’ k + k= T 1 + n βˆ’ 1

β€’ T n = 2 Γ— T n βˆ’ 10 (Exponential)

T n = 2T n βˆ’ 10 = 2 2𝑇𝑇 𝑛𝑛 βˆ’ 20 = 4T n βˆ’ 20

= 8T n βˆ’ 30 = β‹― = 2𝑖𝑖T n βˆ’ 10i

= 2𝑛𝑛10βˆ’1T 10 = Θ 2

𝑛𝑛10

6

Only constant reduction in input sizeTwo branches

Other Recurrences

β€’ T n = T n βˆ’ 1 + T(𝑛𝑛 βˆ’ 3) (Exponential)

T n = Θ cn

β€’ Unrolling gets messy fast! How to find c? [Trick]Assume 𝑇𝑇 𝑛𝑛 = 𝑐𝑐𝑛𝑛 for some c𝑐𝑐𝑛𝑛 = 𝑇𝑇 𝑛𝑛 = T n βˆ’ 1 + T 𝑛𝑛 βˆ’ 3 = π‘π‘π‘›π‘›βˆ’1 + π‘π‘π‘›π‘›βˆ’3

β†’ 𝑐𝑐𝑛𝑛 = π‘π‘π‘›π‘›βˆ’1 + π‘π‘π‘›π‘›βˆ’3 β†’ c3 = 𝑐𝑐2 + 1

β†’ c β‰ˆ 1.46577(Root of Characteristic Equation)

Must verify solution by induction7

Only constant reduction in input sizeTwo branches

Other Recurrences

β€’ T n = T n βˆ’ 1 + T(𝑛𝑛 βˆ’ 3) (Exponential)

β†’ 𝑐𝑐𝑛𝑛 = π‘π‘π‘›π‘›βˆ’1 + π‘π‘π‘›π‘›βˆ’3 β†’ c3 = 𝑐𝑐2 + 1

β†’ c β‰ˆ 1.46577(Root of Characteristic Equation)

Claim: T n ≀ π‘˜π‘˜π‘π‘π‘›π‘› (pick k s.t. T(0) < k)

Inductive Step: T n = T n βˆ’ 1 + T 𝑛𝑛 βˆ’ 3≀ π‘˜π‘˜ π‘π‘π‘›π‘›βˆ’1 + π‘π‘π‘›π‘›βˆ’3 (IH)= π‘˜π‘˜ 𝑐𝑐𝑛𝑛 (Choice of c)

8

Only constant reduction in input sizeTwo branches

Other Recurrences

β€’ MergeSort with Uneven Split: Split L into A, B of sizes n/4 and 3n/4.

T n = Tn4

+ 𝑇𝑇3𝑛𝑛4

+ 𝑛𝑛

A bit harder to Analyze with recursion tree

9

n

�𝑛𝑛 16 οΏ½9𝑛𝑛16οΏ½3𝑛𝑛

16

οΏ½3𝑛𝑛4�𝑛𝑛 4

οΏ½3𝑛𝑛16

O(log n)

n

n

n

𝐓𝐓 𝒏𝒏 = 𝜣𝜣 𝒏𝒏 π₯π₯π₯π₯π₯π₯𝒏𝒏… …

Another Unbalanced Recurrence

β€’ Geometric Series

T n = Tn5

+ 𝑇𝑇3𝑛𝑛4

+ 𝑛𝑛

β€’ Claim: T n = Θ 𝑛𝑛

10

n

�𝑛𝑛 25 οΏ½9𝑛𝑛16 οΏ½3𝑛𝑛

20

οΏ½3𝑛𝑛4�𝑛𝑛 5

οΏ½3𝑛𝑛20

O(log n)

n

(19/20)n

(19/20)2n

T n ≀ n�𝑖𝑖=0

∞1920

𝑖𝑖

11

Mergesort Quicksort Binary Search Linear-time selection Skyline Problem Maximum Subarray Counting inversions

12

Maximum Subarray ProblemGiven an array A of n (positive and negative) numbers, find the contiguous subarray whose sum has the largest value.

10 5 -20 5 12 -6 33 6 2 -52 6 45 3 -4

Brute Force For every pair i and j, i≀j, compute the sum from A(i) to A(j).

Remember the pair resulting in the maximum. How many pairs? O(n2) Using previously computed values, the total running time is

O(n2) (n3 is excessive brute force)

13

Aim for O(n) or O(n log n)? Divide and conquer? Split the problem into two halves and solve each recursively Combine two solutions to produce the final answer

14

10 5 -20 21 12 -18 12 5 15 -22 6 5 3 -4 -12 55

10 5 -20 21 12 -18 12 5 15 -22 6 5 3 -4 -12 55

10 5 -20 21 12 -18 12 5 15 -22 6 5 3 -4 -12 55

32 46

15

Combining the answers from the two subproblems

The maximum subarray can be in one the two halves (easy case) or it can cross the midpoint

To determine the maximum subarray crossing the midpoint, we can compute the two maximum subarrays β€œanchored” at the midpoint. Running Sum: sweep left (resp. right) from midpoint keeping track of max Requires time O(n) for merge step

Results in T(n) = 2T(n/2) + cnGives an O(n log n) time algorithm

16

A Faster O(n) time solutionIdea: Each recursive call returns additional information to make merge step easier

Optimal Solution: (i,j) and value 𝒗𝒗 = βˆ‘π‘₯π‘₯=𝑖𝑖𝑗𝑗 𝐴𝐴[π‘₯π‘₯]

Total Sum: 𝑇𝑇 = βˆ‘π‘₯π‘₯=1𝑛𝑛 𝐴𝐴[π‘₯π‘₯] π’Šπ’Šπ’†π’†π’π’π’†π’† maximizing value 𝒗𝒗𝒆𝒆𝒏𝒏𝒆𝒆 = βˆ‘π‘₯π‘₯=𝑖𝑖𝑒𝑒𝑒𝑒𝑒𝑒

𝑛𝑛 𝐴𝐴[π‘₯π‘₯]

π’‹π’‹π’ƒπ’ƒπ’†π’†π’π’π’Šπ’Šπ’π’ maximizing value π’—π’—π’ƒπ’ƒπ’†π’†π’π’π’Šπ’Šπ’π’ = βˆ‘π‘₯π‘₯=1𝑗𝑗𝑏𝑏𝑒𝑒𝑏𝑏𝑏𝑏𝑒𝑒 𝐴𝐴[π‘₯π‘₯]

10 5 -20 21 12 -18 12 5 -50 2 5

π‘—π‘—π‘œπ‘œ , π’‹π’‹π’ƒπ’ƒπ’†π’†π’π’π’Šπ’Šπ’π’ π’Šπ’Šπ’†π’†π’π’π’†π’†

𝒗𝒗𝒆𝒆𝒏𝒏𝒆𝒆 = πŸ“πŸ“π’—π’—π’ƒπ’ƒπ’†π’†π’π’π’Šπ’Šπ’π’ = 𝟐𝟐𝟐𝟐 𝒗𝒗 = πŸ‘πŸ‘πŸπŸ

17

A Faster O(n) time solution

Merge in Constant Time: Suppose A was split into L and R

Three possibilities for (i,j): π‘œπ‘œπΏπΏ , 𝑗𝑗𝐿𝐿 , π‘œπ‘œπ‘…π‘… , 𝑗𝑗𝑅𝑅 , π‘œπ‘œπ‘’π‘’π‘›π‘›π‘’π‘’πΏπΏ , 𝑗𝑗𝑏𝑏𝑒𝑒𝑏𝑏𝑖𝑖𝑛𝑛𝐿𝐿

Case 1: Opt in L Case 2: Opt in R Case 3: Opt crosses L and R

10 5 -20 21 12 -18 12 5 -50 2 5 -5 50 1 -2 -80 44 1 1 6

𝑣𝑣𝐿𝐿 𝑣𝑣𝑅𝑅 𝑣𝑣𝑒𝑒𝑛𝑛𝑒𝑒𝐿𝐿 + 𝑣𝑣𝑏𝑏𝑒𝑒𝑏𝑏𝑖𝑖𝑛𝑛𝑅𝑅

𝐯𝐯𝐑𝐑 = πŸ“πŸ“πŸπŸπ―π―πžπžπžπžπžπžπ‘π‘ = πŸ“πŸ“πŸπŸ

π―π―π›π›πžπžπ₯π₯π›π›πžπžπ‘π‘ = πŸ’πŸ’πŸ’πŸ’π―π―πžπžπžπžπžπžπ‹π‹ = πŸπŸπ‘£π‘£πΏπΏ = 32π’—π’—π’ƒπ’ƒπ’†π’†π’π’π’Šπ’Šπ’π’π‘³π‘³ = 𝟐𝟐𝟐𝟐

𝑣𝑣 = max 𝑣𝑣𝐿𝐿,𝑣𝑣𝑅𝑅, 𝑣𝑣𝑒𝑒𝑛𝑛𝑒𝑒𝐿𝐿 + 𝑣𝑣𝑏𝑏𝑒𝑒𝑏𝑏𝑖𝑖𝑛𝑛𝑅𝑅 = 𝑣𝑣𝑒𝑒𝑛𝑛𝑒𝑒𝐿𝐿 + 𝑣𝑣𝑏𝑏𝑒𝑒𝑏𝑏𝑖𝑖𝑛𝑛𝑅𝑅 = 53β†’ π‘œπ‘œ, 𝑗𝑗 = π‘œπ‘œπ‘’π‘’π‘›π‘›π‘’π‘’πΏπΏ , 𝑗𝑗𝑏𝑏𝑒𝑒𝑏𝑏𝑖𝑖𝑛𝑛𝐿𝐿

18

A Faster O(n) time solution

Merge in Constant Time: Suppose A was split into L and R

Still Needs to Compute Extra Values Update Total: 𝑇𝑇 = 𝑇𝑇𝐿𝐿 + 𝑇𝑇𝑅𝑅

π’Šπ’Šπ’†π’†π’π’π’†π’† maximizing value 𝒗𝒗𝒆𝒆𝒏𝒏𝒆𝒆 = βˆ‘π‘₯π‘₯=𝑖𝑖𝑒𝑒𝑒𝑒𝑒𝑒𝑛𝑛 𝐴𝐴[π‘₯π‘₯]

Case 1: π’Šπ’Šπ’†π’†π’π’π’†π’† = π‘œπ‘œπ‘’π‘’π‘›π‘›π‘’π‘’π‘…π‘… (interval in R)

Case 2: π’Šπ’Šπ’†π’†π’π’π’†π’† = π‘œπ‘œπ‘’π‘’π‘›π‘›π‘’π‘’πΏπΏ (interval crosses L)

10 5 -20 21 12 -18 12 5 -50 2 5 -5 50 1 -2 -80 44 1 1 6π―π―πžπžπžπžπžπžπ‘π‘ = πŸ“πŸ“πŸπŸπ―π―πžπžπžπžπžπžπ‹π‹ = 𝟐𝟐

𝐯𝐯𝒆𝒆𝒏𝒏𝒆𝒆 = max{𝐯𝐯𝒆𝒆𝒏𝒏𝒆𝒆𝐑𝐑 ,𝐓𝐓𝑹𝑹 + π―π―πžπžπžπžπžπžπ‹π‹ } = 𝐯𝐯𝒆𝒆𝒏𝒏𝒆𝒆𝐑𝐑 = πŸ“πŸ“πŸπŸ π’Šπ’Šπ’†π’†π’π’π’†π’† = π‘œπ‘œπ‘’π‘’π‘›π‘›π‘’π‘’π‘…π‘…

For any merges higher in the recursion tree!

19

A Faster O(n) time solution

Merge in Constant Time: Suppose A was split into L and R

Merge Needs to Compute Extra Values 𝑇𝑇 = 𝑇𝑇𝐿𝐿 + 𝑇𝑇𝑅𝑅

π’‹π’‹π’ƒπ’ƒπ’†π’†π’π’π’Šπ’Šπ’π’ maximizing value π’—π’—π’ƒπ’ƒπ’†π’†π’π’π’Šπ’Šπ’π’ = βˆ‘π‘₯π‘₯=1𝑗𝑗𝑏𝑏𝑒𝑒𝑏𝑏𝑏𝑏𝑒𝑒 𝐴𝐴[π‘₯π‘₯]

Similar to computing π’Šπ’Šπ’†π’†π’π’π’†π’† Case 1: π’‹π’‹π’ƒπ’ƒπ’†π’†π’π’π’Šπ’Šπ’π’ = 𝑗𝑗𝑏𝑏𝑒𝑒𝑏𝑏𝑖𝑖𝑛𝑛𝐿𝐿 (interval in L)

Case 2: π’‹π’‹π’ƒπ’ƒπ’†π’†π’π’π’Šπ’Šπ’π’ = 𝑗𝑗𝑏𝑏𝑒𝑒𝑏𝑏𝑖𝑖𝑛𝑛𝑅𝑅 (interval crosses R)

10 5 -20 21 12 -18 12 5 -50 2 5 -5 50 1 -2 -80 44 1 1 6

π―π―π›π›πžπžπ₯π₯π›π›πžπžπ‘π‘ = πŸ’πŸ’πŸ’πŸ’π’—π’—π’ƒπ’ƒπ’†π’†π’π’π’Šπ’Šπ’π’π‘³π‘³ = 𝟐𝟐𝟐𝟐

π―π―π›π›πžπžπ₯π₯π›π›πžπž = max{π―π―π’ƒπ’ƒπ’†π’†π’π’π’Šπ’Šπ’π’π‹π‹ ,𝐓𝐓𝑳𝑳 + π―π―π›π›πžπžπ₯π₯π›π›πžπžπ‘Ήπ‘Ή } = 𝐓𝐓𝑳𝑳 + π―π―π›π›πžπžπ₯π₯π›π›πžπžπ‘Ήπ‘Ή = βˆ’πŸπŸπŸ’πŸ’ + πŸ’πŸ’πŸ’πŸ’ = πŸ‘πŸ‘πŸŽπŸŽ π’‹π’‹π’ƒπ’ƒπ’†π’†π’π’π’Šπ’Šπ’π’ = 𝑗𝑗𝑏𝑏𝑒𝑒𝑏𝑏𝑖𝑖𝑛𝑛𝑅𝑅

20

Summary: A Faster O(n) time solution

Idea: Each recursive call returns additional information to make merge step easier

Constant Time Merge:

𝑇𝑇 𝑛𝑛 = 2𝑇𝑇𝑛𝑛2

+ 1

Master Theorem (a=2, b=2, c=0): 𝑇𝑇 𝑛𝑛 = Θ 𝑛𝑛

21

Summary: Maximum Subarray problemGiven an array A of n (positive and negative) numbers, find the contiguous subarray whose sum has the largest value.

10 5 -20 5 12 -6 33 6 2 -52 6 45 3 -4

All pairs: O(n2)

D&C with simple combine step: O(n log n)

D&C with extra information: O(n)

Simple non-D&C solution: O(n)


Recommended