# COMP 482: Design and Analysis of Algorithms

## Presentation on theme: "COMP 482: Design and Analysis of Algorithms"— Presentation transcript:

COMP 482: Design and Analysis of Algorithms
Spring 2013 Lecture 6 Prof. Swarat Chaudhuri

Recap: Reachability game
Suppose you have a bipartite directed graph with nodes in the two partitions colored red and blue, and two players: Red and Blue. Red and Blue play a game where a token gets moved along edges of the graph. At each point, the player whose name matches the color of the current node pushes the token. Initially the token is at s (a red node). The objective of the game is that Red wants the token to avoid a certain set of blue nodes X. Blue wants the token to get to X at some point in the game; Red wants to avoid this. If the token gets to X at any point, the game is over and Blue wins. Aside from this there is no time bound on the game. Can you give an algorithm that, given the graph, s, and X, can tell if Red has a strategy to win this game?

Solution Iteratively grow a set S from which Blue can “force” Red to reach X The set we compute is called the “attractor” of S. We still need a proof! S := X while (S ≠ S’) { S’ := S Add to S every red node u such that ALL neighbors of u are in X Add to S every blue node v such that SOME neighbor of v is in X } Check if the initial node lies in S

Greedy algorithms 4.1 Interval Scheduling

Interval Scheduling Interval scheduling.
Job j starts at sj and finishes at fj. Two jobs compatible if they don't overlap. Goal: find maximum subset of mutually compatible jobs. a Activity selection = interval scheduling OPT = B, E, H Note: smallest job (C) is not in any optimal solution, job that starts first (A) is not in any optimal solution. b c d e f g h Time 1 2 3 4 5 6 7 8 9 10 11

Interval Scheduling: Greedy Algorithms
Greedy template. Consider jobs in some order. Take each job provided it's compatible with the ones already taken. [Earliest start time] Consider jobs in ascending order of start time sj. [Earliest finish time] Consider jobs in ascending order of finish time fj. [Shortest interval] Consider jobs in ascending order of interval length fj - sj. [Fewest conflicts] For each job, count the number of conflicting jobs cj. Schedule in ascending order of conflicts cj.

Interval Scheduling: Greedy Algorithms
Greedy template. Consider jobs in some order. Take each job provided it's compatible with the ones already taken. breaks earliest start time breaks shortest interval breaks fewest conflicts

Interval Scheduling: Greedy Algorithm
Greedy algorithm. Consider jobs in increasing order of finish time. Take each job provided it's compatible with the ones already taken. Implementation. O(n log n). Remember job j* that was added last to A. Job j is compatible with A if sj  fj*. Sort jobs by finish times so that f1  f2  ...  fn. A   for j = 1 to n { if (job j compatible with A) A  A  {j} } return A jobs selected

Interval Scheduling: Analysis
Theorem. Greedy algorithm is optimal. Pf. (by contradiction) Assume greedy is not optimal, and let's see what happens. Let i1, i2, ... ik denote set of jobs selected by greedy. Let j1, j2, ... jm denote set of jobs in the optimal solution with i1 = j1, i2 = j2, ..., ir = jr for the largest possible value of r. Proof idea: greedy algorithm stays ahead. Ideally you may want to show that Greedy = OPT, but this won’t work as there are many OPT. So we show that the size of the solution in OPT is same as in Greedy. job ir+1 finishes before jr+1 Greedy: i1 i1 ir ir+1 OPT: j1 j2 jr jr+1 . . . why not replace job jr+1 with job ir+1?

Interval Scheduling: Analysis
Theorem. Greedy algorithm is optimal. Pf. (by contradiction) Assume greedy is not optimal, and let's see what happens. Let i1, i2, ... ik denote set of jobs selected by greedy. Let j1, j2, ... jm denote set of jobs in the optimal solution with i1 = j1, i2 = j2, ..., ir = jr for the largest possible value of r. There can be many optimal solutions. r is the first point where Greedy differs from EVERY optimal solution. “Greedy stays ahead” job ir+1 finishes before jr+1 Greedy: i1 i1 ir ir+1 OPT: j1 j2 jr ir+1 . . . solution still feasible and optimal, but contradicts maximality of r.

Q1: Selecting Breakpoints
Road trip from Houston to Palo Alto along fixed route. Refueling stations at certain points along the way. Fuel capacity = C. Goal: makes as few refueling stops as possible. Greedy algorithm. Go as far as you can before refueling. applications: communication server sending information in chunks of size at most C C C C C Houston C C C Palo Alto 1 2 3 4 5 6 7

Selecting Breakpoints: Greedy Algorithm
Truck driver's algorithm. Question: Is this optimal? Implementation. O(n log n) Use binary search to select each breakpoint p. Sort breakpoints so that: 0 = b0 < b1 < b2 < ... < bn = L S  {0} x  0 while (x  bn) let p be largest integer such that bp  x + C if (bp = x) return "no solution" x  bp S  S  {p} return S breakpoints selected current location

Selecting Breakpoints: Correctness
Theorem. Greedy algorithm is optimal. Pf. (by contradiction) Assume greedy is not optimal, and let's see what happens. Let 0 = g0 < g1 < < gp = L denote set of breakpoints chosen by greedy. Let 0 = f0 < f1 < < fq = L denote set of breakpoints in an optimal solution with f0 = g0, f1= g1 , , fr = gr for largest possible value of r. Note: gr+1 > fr+1 by greedy choice of algorithm. g0 g1 g2 gr gr+1 Greedy: OPT: . . . f0 f1 f2 fr fr+1 fq why doesn't optimal solution drive a little further?

Selecting Breakpoints: Correctness
Theorem. Greedy algorithm is optimal. Pf. (by contradiction) Assume greedy is not optimal, and let's see what happens. Let 0 = g0 < g1 < < gp = L denote set of breakpoints chosen by greedy. Let 0 = f0 < f1 < < fq = L denote set of breakpoints in an optimal solution with f0 = g0, f1= g1 , , fr = gr for largest possible value of r. Note: gr+1 > fr+1 by greedy choice of algorithm. g0 g1 g2 gr gr+1 Greedy: OPT: . . . f0 f1 f2 fr fq another optimal solution has one more breakpoint in common  contradiction

4.1 Interval Partitioning

Interval Partitioning
Lecture j starts at sj and finishes at fj. Goal: find minimum number of classrooms to schedule all lectures so that no two occur at the same time in the same room. Ex: This schedule uses 4 classrooms to schedule 10 lectures. e j c d g b h a f i 9 9:30 10 10:30 11 11:30 12 12:30 1 1:30 2 2:30 3 3:30 4 4:30 Time

Interval Partitioning
Lecture j starts at sj and finishes at fj. Goal: find minimum number of classrooms to schedule all lectures so that no two occur at the same time in the same room. Ex: This schedule uses only 3. c d f j b g i a e h 9 9:30 10 10:30 11 11:30 12 12:30 1 1:30 2 2:30 3 3:30 4 4:30 Time

Interval Partitioning: Lower Bound on Optimal Solution
Def. The depth of a set of open intervals is the maximum number that contain any given time. Key observation. Number of classrooms needed  depth. Ex: Depth of schedule below = 3  schedule below is optimal. Q. Does there always exist a schedule equal to depth of intervals? a, b, c all contain 9:30 c d f j b g i a e h 9 9:30 10 10:30 11 11:30 12 12:30 1 1:30 2 2:30 3 3:30 4 4:30 Time

Interval Partitioning: Greedy Algorithm
Greedy algorithm. Consider lectures in increasing order of start time: assign lecture to any compatible classroom. Implementation. O(n log n). For each classroom k, maintain the finish time of the last job added. Keep the classrooms in a priority queue. Sort intervals by starting time so that s1  s2  ...  sn. d  0 for j = 1 to n { if (lecture j is compatible with some classroom k) schedule lecture j in classroom k else allocate a new classroom d + 1 schedule lecture j in classroom d + 1 d  d + 1 } number of allocated classrooms

Interval Partitioning: Greedy Analysis
Observation. Greedy algorithm never schedules two incompatible lectures in the same classroom. Theorem. Greedy algorithm is optimal. Pf. Let d = number of classrooms that the greedy algorithm allocates. Classroom d is opened because we needed to schedule a job, say j, that is incompatible with all d-1 other classrooms. Since we sorted by start time, all these incompatibilities are caused by lectures that start no later than sj. Thus, we have d lectures overlapping at time sj + . Key observation  all schedules use  d classrooms. ▪

Q2: A variation on Interval Scheduling
You have a processor that can operate People submit requests to run daily jobs on the processor. Each such job comes with a start time and an end time; if the job is accepted it must run continuously for the period between the start and end times, EVERY DAY. (Note that some jobs can start before midnight and end after midnight.) Given a list of n such jobs, your goal is to accept as many jobs as possible (regardless of length), subject to the constraint that the processor can run at most one job at any given point of time. Give an algorithm to do this. For example, here you have four jobs (6pm, 6am), (9pm, 4am), (3am, 2pm), (1pm, 7pm). The optimal solution is to pick the second and fourth jobs.

Download ppt "COMP 482: Design and Analysis of Algorithms"

Similar presentations