hw9s.f11

hw9s.f11 - ECE608, Homework #9 Solution (1) CLR 16.1-3 Let...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: ECE608, Homework #9 Solution (1) CLR 16.1-3 Let S be the set of n activities. The obvious solution of using Greedy-Activity- Selector to find a maximum-size set S 1 of compatible activities from S for the first lecture hall, then using it again to find a maximum-size set S 2 of compatible activities from S S 1 for the second hall, and so on until all the activities are assigned, requires ( n 2 ) time in the worst case. However, there is a better algorithm, whose asymptotic time is just the time needed to sort the activities by time (i.e., O ( n lg n ) time), or possibly as fast as O ( n ) if the times are small integers. The general idea is to go through the activities in order of start time, assigning each to any hall that is available at that time. To do this, move through the set of events consisting of activities starting and activities finishing, in order of event time. Maintain two lists of lecture halls: Halls that are busy at the current event-time t (because they have been assigned an activity i that started at s i t but wont finish until f i > t ) and halls that are free at time t . (As in the activity-selection problem in Section 16.1, we are assuming that activity time intervals are half openthat is, if s i f j , activities i and j are compatible.) When t is equal to the start time of some activity, assign that activity to a free hall and move the hall from the free list to the busy list. When t is equal to the finish time of some activity, move the activitys hall from the busy list to the free list. (The activity is certainly in some hall, because the event times are processed in order and the activity must have started before its finish time t , hence must have been assigned to a hall.) To avoid using more halls than necessary, always pick a hall that has already had an activity assigned to it, if possible, before picking a never-used hall. (This can be done by always working at the front of the free-hall listputting freed halls onto the front of the list and taking halls from the front of the listso that a new hall doesnt come to the front and get chosen if there are previously used halls.) This guarantees that the algorithm uses as few lecture halls as possible: The algorithm will terminate with a schedule requiring m n lecture halls. Let activity i be the first activity scheduled in lecture hall m . The reason that i was put in the m-th lecture hall is that the first m 1 lecture halls were busy at time s i . So at this time, there are m activities occurring simultaneously. Therefore any schedule must use at least m lecture halls, so the schedule returned by the algorithm is optimal. Run time: (i) Sort the 2 n activity-starts/activity-ends events. (In the sorted order, an activity- ending event should precede an activity-starting event at the same time.) O ( n lg n ) 1 time for arbitrary times, possibly O ( n ) if the times are restricted (e.g., to small integers)....
View Full Document

Page1 / 9

hw9s.f11 - ECE608, Homework #9 Solution (1) CLR 16.1-3 Let...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online