This preview shows pages 1–2. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
Unformatted text preview: Introduction to Algorithms Solution Set 1 CS 4820, Spring 2010 (1) The algorithm restores the websites in decreasing order of c i /t i , where c i is the rate of lost dollars per hour for site i , and t i is the number of hours to finish the job. Analysis of running time. Computing the ratio for each job requires O ( n ) time, and sorting them requires O ( n log n ) time. Correctness. The proof of correctness uses an exchange argument, similar to the proof of correctness of the scheduling algorithm in Section 4.2 of Kleinberg & Tardos. If you have a schedule with two consecutive jobs i,j (in that order) and you swap the order of i and j , the net change can be broken down as follows. Site i is restored t j hours later, which increases the lost revenue by c i t j . Site j is restored t i hours earlier, which decreases the lost revenue by c j t i . All other sites are restored at the same time. Thus the net change in lost revenue is c i t j c j t i = c i t i c j t j ! t i t j . (1) This implies the following facts. 1. In any optimal schedule, there cant be two consecutive jobs i,j such that ( c i /t i ) ( c j /t j ) is negative. If there were, one could decrease the lost revenue by swapping the order of i and j . 2. Therefore, in every optimal schedule, the jobs are sorted in order of decreasing c i /t i . 3. Swapping the order of two consecutive jobs i,j such that c i /t i = c j /t j has no effect on the amount of lost revenue. 4. Therefore, for every ordering of the jobs such that the ratios c i /t i form a nonincreasing sequence, the cost is equal to that of an optimal schedule. (2) The algorithm initializes a set of events denoted by their occurrence times x i ( i = 1 ,...,n ), and a set S of intervals denoted by their left endpoints t i e i and right endpoints t i + e i ( i = 1 ,...,n ). As usual, we say that an interval with endpoints a,b contains an event x if it is the case that a x b . The events are sorted in increasing order of occurrence time, and they are processed one by one in that order. When each event x i is processed, the algorithm identifies all of the intervals in S that contain x i . If no interval in S contains x i , then the algorithm terminates and declares that no association exists. Otherwise, among all the intervals in S that contain x i , it selects the one whose right endpoint t j + e j is earliest. It associates x i with t j , removes the interval ( t j e j ,t j + e j ) from the set S , and continues processing the next event in the list. If it reaches the end of the list of events and finds that it has associated each one with a timestamp...
View Full
Document
 Spring '08
 KLEINBERG
 Algorithms

Click to edit the document details