04.09.2013 Views

Algorithm Design

Algorithm Design

Algorithm Design

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

602<br />

Chapter 11 Approximation <strong>Algorithm</strong>s<br />

analysis, therefore, we wig need a lower bound on the optimum--a quantity<br />

with the guarantee that no matter how good the optimum is, it cannot be less<br />

than this bound.<br />

There are many possible lower bounds on the optimum. One idea for a<br />

lower bound is based on considering the total processing time ~j tj. One of<br />

the m machines must do at least a 1/m fraction of the total work, and so we<br />

have the following.<br />

(11.1) The optimal makespan is at least<br />

1<br />

T* >_ -- E t<br />

. j.<br />

1<br />

There is a particular kind of case in which this lower bound is much too<br />

weak to be useful. Suppose we have one job that is extremely long relative to<br />

the sum of all processing times. In a sufficiently extreme version of this, the<br />

optimal solution will place this job on a machine by itself, and it will be the<br />

last one to finish. In such a case, our greedy algorithm would actually produce<br />

the optimal solution; but the lower bound in (11.1) isn’t strong enough to<br />

establish this.<br />

This suggests the following additional lower bound on T*.<br />

(11.2) The optimal rnakespan is at least T* > maxl<br />

Now we are ready to evaluate the assignment obtained by our greedy<br />

algorithm.<br />

(iL3) AIgO~thra Greedy2Bal~he produCe~ an assign~ent b[ ]obs to ~achines<br />

wtth makespan T_ 2T ,<br />

Prooi. Here is the overall plan for the proof. In analyzing an approximation<br />

algorithm, one compares the solution obtained to what one knows about the<br />

optimum--in this case, our lower bounds (11.1) and (11.2). We consider a<br />

machine Mi that attains the maximum load T in our assignment, and we ask:<br />

What was the last job j to be placed on Mi ~. If tj is not too large relative t.o m6st<br />

of the other jobs, then we are not too far above the lower bound (11.1). And,<br />

if tj is a very large job, then we can use (11.2). Figure 11.2 shows the structure<br />

of this argument.<br />

Here is how we can make this precise. When we assigned job j to Mi, the<br />

machine Mi had the smallest load of any machine; this is the key property<br />

of our greedy algorithm. Its load just before this assignment was Ti - tp and<br />

since this was the smallest load at that moment, it follows that every machine<br />

11.1 Greedy <strong>Algorithm</strong>s and Bounds on the Optimum: A Load Balancing Problem<br />

I~<br />

he contribution of<br />

e last job alone is<br />

most the optimum<br />

I~<br />

ust before adding<br />

e last job, the load<br />

n Mi was at most<br />

e optimum.<br />

Figure 11.2 Accounting for the load on machine Mi in two parts: the last job to be<br />

added, and all the others.<br />

had load at least Ti - t i. Thus, adding up the loads of all machines, we have<br />

Y~.I~ TI~ >- m(Ti - ti), or equivalently,<br />

Ti - t]

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!