09.09.2014 Views

algorithms

algorithms

algorithms

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

Figure 8.7 Reductions between search problems.<br />

All of NP<br />

SAT<br />

3SAT<br />

INDEPENDENT SET<br />

3D MATCHING<br />

VERTEX COVER<br />

CLIQUE<br />

ZOE<br />

SUBSET SUM<br />

ILP<br />

RUDRATA CYCLE<br />

TSP<br />

8.3 The reductions<br />

We shall now see that the search problems of Section 8.1 can be reduced to one another as<br />

depicted in Figure 8.7. As a consequence, they are all NP-complete.<br />

Before we tackle the specific reductions in the tree, let’s warm up by relating two versions<br />

of the Rudrata problem.<br />

RUDRATA (s, t)-PATH−→RUDRATA CYCLE<br />

Recall the RUDRATA CYCLE problem: given a graph, is there a cycle that passes through each<br />

vertex exactly once? We can also formulate the closely related RUDRATA (s, t)-PATH problem,<br />

in which two vertices s and t are specified, and we want a path starting at s and ending at t<br />

that goes through each vertex exactly once. Is it possible that RUDRATA CYCLE is easier than<br />

RUDRATA (s, t)-PATH? We will show by a reduction that the answer is no.<br />

The reduction maps an instance (G = (V, E), s, t) of RUDRATA (s, t)-PATH into an instance<br />

G ′ = (V ′ , E ′ ) of RUDRATA CYCLE as follows: G ′ is simply G with an additional vertex x and<br />

two new edges {s, x} and {x, t}. For instance:<br />

G G ′<br />

s<br />

s<br />

t<br />

x<br />

t<br />

So V ′ = V ∪ {x}, and E ′ = E ∪ {{s, x}, {x, t}}. How do we recover a Rudrata (s, t)-path in G<br />

given any Rudrata cycle in G ′ ? Easy, we just delete the edges {s, x} and {x, t} from the cycle.<br />

247

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

Saved successfully!

Ooh no, something went wrong!