18.04.2013 Views

The.Algorithm.Design.Manual.Springer-Verlag.1998

The.Algorithm.Design.Manual.Springer-Verlag.1998

The.Algorithm.Design.Manual.Springer-Verlag.1998

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Problems and Reductions<br />

Next: Simple Reductions Up: Intractable Problems and Approximations Previous: Intractable Problems and<br />

Approximations<br />

Problems and Reductions<br />

Throughout this book we have encountered problems, such as the traveling salesman problem, for which we couldn't find<br />

any efficient algorithm. By the early 1970s, literally hundreds of problems were stuck in this swamp. <strong>The</strong> theory of NPcompleteness<br />

provided the tools needed to show that all of these problems were really the same thing.<br />

<strong>The</strong> key idea behind demonstrating the hardness of a problem is that of a reduction. Suppose that I gave you the following<br />

algorithm to solve the Bandersnatch problem:<br />

Bandersnatch(G)<br />

Translate the input G to an instance of the Bo-billy problem Y.<br />

Call the subroutine Bo-billy on Y to solve this instance.<br />

Return the answer of Bo-billy(Y) as the answer to Bandersnatch(G).<br />

It is important to see that this algorithm correctly solves the Bandersnatch problem provided that the translation to Bo-billy<br />

always preserves the correctness of the answer. In other words, the translation has the property that for any instance of G,<br />

Bandersnatch(G) = Bo-billy(Y). A translation of instances from one type of problem to instances of another type such that<br />

the answers are preserved is called a reduction.<br />

Now suppose this reduction translates G to Y in O(P(n)) time. <strong>The</strong>re are two possible implications:<br />

● If my Bo-billy subroutine ran in O(P'(n)), this means I could solve the Bandersnatch problem in O(P(n)+P'(n)) by<br />

spending the time to translate the problem and then the time to execute the Bo-Billy subroutine.<br />

● If I know that is a lower bound on computing Bandersnatch, meaning there definitely exists no faster way to<br />

solve it, then must be a lower bound to compute Bo-billy. Why? If I could solve Bo-billy any faster,<br />

then I could solve Bandersnatch in faster time by using the above simulation, thus violating my lower bound. This<br />

implies that there can be no way to solve Bo-billy any faster than claimed.<br />

This second argument is the approach that we will use to prove problems hard. Essentially, this reduction shows that Bobilly<br />

is at least as hard as Bandersnatch, and therefore once we believe that Bandersnatch is hard, we have a tool for proving<br />

other problems hard.<br />

Reductions, then, are operations that convert one problem into another. To describe them, we must be somewhat rigorous in<br />

our definition of a problem. A problem is a general question, with parameters for the input and conditions on what<br />

constitutes a satisfactory answer or solution. An instance is a problem with the input parameters specified. <strong>The</strong> difference<br />

file:///E|/BOOK/BOOK3/NODE105.HTM (1 of 2) [19/1/2003 1:29:43]

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

Saved successfully!

Ooh no, something went wrong!