Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture 33 CSE 331 Nov 18, 2016.

Similar presentations


Presentation on theme: "Lecture 33 CSE 331 Nov 18, 2016."— Presentation transcript:

1 Lecture 33 CSE 331 Nov 18, 2016

2 Mini project video grading

3 Homework 9

4 HW 8 solutions End of the lecture

5 Graded HW 6 Done by today Apologies for the delay!

6 CS Ed week (Dec 5)

7 Weighted Interval Scheduling
Input: n jobs (si,fi,vi) Output: A schedule S s.t. no two jobs in S have a conflict Goal: max Σi in S vj Assume: jobs are sorted by their finish time

8 Couple more definitions
p(j) = largest i<j s.t. i does not conflict with j p(j) < j = 0 if no such i exists OPT(j) = optimal value on instance 1,..,j

9 Property of OPT OPT(j) = max { vj + OPT( p(j) ), OPT(j-1) }
j not in OPT(j) j in OPT(j) OPT(j) = max { vj + OPT( p(j) ), OPT(j-1) } Given OPT(1),…., OPT(j-1), how can one figure out if j in optimal solution or not?

10

11 Proof of correctness by induction on j
A recursive algorithm Proof of correctness by induction on j Correct for j=0 Compute-Opt(j) If j = 0 then return 0 return max { vj + Compute-Opt( p(j) ), Compute-Opt( j-1 ) } = OPT( p(j) ) = OPT( j-1 ) OPT(j) = max { vj + OPT( p(j) ), OPT(j-1) }

12 Exponential Running Time
1 2 3 4 5 p(j) = j-2 Only 5 OPT values! OPT(5) OPT(3) OPT(4) Formal proof: Ex. OPT(2) OPT(3) OPT(1) OPT(2) OPT(1) OPT(2) OPT(1)

13

14 Using Memory to be smarter
Pow (a,n) // n is even and ≥ 2 return t * t t= Pow(a,n/2) Pow (a,n) // n is even and ≥ 2 return Pow(a,n/2) * Pow(a, n/2) O(n) as we recompute! O(log n) as we compute only once

15 How many distinct OPT values?

16 A recursive algorithm M-Compute-Opt(j) = OPT(j) M-Compute-Opt(j)
If j = 0 then return 0 If M[j] is not null then return M[j] M[j] = max { vj + M-Compute-Opt( p(j) ), M-Compute-Opt( j-1 ) } return M[j] Run time = O(# recursive calls)

17 Bounding # recursions M-Compute-Opt(j) If j = 0 then return 0
O(n) overall If j = 0 then return 0 If M[j] is not null then return M[j] M[j] = max { vj + M-Compute-Opt( p(j) ), M-Compute-Opt( j-1 ) } return M[j] Whenever a recursive call is made an M value is assigned At most n values of M can be assigned

18

19 Property of OPT Given OPT(1), …, OPT(j-1), one can compute OPT(j)
OPT(j) = max { vj + OPT( p(j) ), OPT(j-1) } Given OPT(1), …, OPT(j-1), one can compute OPT(j)

20 Recursion+ memory = Iteration
Iteratively compute the OPT(j) values Iterative-Compute-Opt M[0] = 0 M[j] = max { vj + M[p(j)], M[j-1] } For j=1,…,n M[j] = OPT(j) O(n) run time

21

22 Reading Assignment Sec 6.1, 6.2 of [KT]

23 When to use Dynamic Programming
There are polynomially many sub-problems Richard Bellman Optimal solution can be computed from solutions to sub-problems There is an ordering among sub-problem that allows for iterative solution


Download ppt "Lecture 33 CSE 331 Nov 18, 2016."

Similar presentations


Ads by Google