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.

458<br />

Chapter 8 NP and Computational Intractability<br />

Our goal is to cover the edges in E, so we formulate an instance of Set<br />

Cover in which the ground set U is equal to E. Each time we pick a vertex in<br />

the Vertex Cover Problem, we cover all the edges incident to it; thus, for each<br />

vertex i ~ V, we add a set Sic__ U to our Set Cover instance, consisting of all<br />

the edges in G incident to i.<br />

Sn<br />

We now claim that U can be covered with at most k of the sets $1 .....<br />

if and only if G has a vertex cover of size at most k. This can be proved very<br />

easily. For if Sh ..... Si~ are ~ ! k sets that cover U, then every edge in G is<br />

incident to one of the vertices il ..... i~, and so the set {i~ ..... ie} is a vertex<br />

cover in G of size ~ _< k. Conversely, if {i~ ..... i~} is a vertex cover in G of size<br />

~ _< k, then the sets S h ..... S h cover U.<br />

Thus, given our instance of Vertex Cover, we formulate the instance of<br />

Set Cover described above, and pass it to our black box. We answer yes if and<br />

only if the black box answers yes.<br />

(You can check that the instance of Set Cover pictured in Figure 8.2 is<br />

actually the one you’d get by following the reduction in this proof, starting<br />

from the graph in Figure 8.1.) m<br />

Here is something worth noticing, both about this proof and about the<br />

previous reductions in (8.4) and (8.5). Although the definition of

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

Saved successfully!

Ooh no, something went wrong!