04.09.2013 Views

Algorithm Design

Algorithm Design

Algorithm Design

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.

582<br />

Chapter 10 Extending the Limits of Tractability<br />

Vt<br />

No edge<br />

~ g the choice of U<br />

breaks all communication[<br />

between desc~’ndants |<br />

~.(and with the parent).<br />

Parent(t)<br />

No edge<br />

Figure 10.8 The subproblem it(U) in the subgraph Gr in the optimal solution to this<br />

subproblem, we consider independent sets Si in the descendant subgraphs Gti, subject<br />

to the constraint that Sin Vt = U n Vtr<br />

Let S be the maximum-weight independent set in G t subject to the requirement<br />

that S N V t = U; that is, w(S) = it(U). The key is to understand how this<br />

set S looks when intersected with each of the subgraphs Gti, as suggested in<br />

Figure 10.8. We let St denote the intersection of S with the nodes of Gt~.<br />

(10.17) S t is a maximum-weight independent set of Gtg, subject to the<br />

straint that S t ~ Vt = U C~ Vt,.<br />

10.4 Tree Decompositions of Graphs<br />

Proof. Suppose there were an independent set S~ of Gti with the property that<br />

S~ C] V t = U N Vti and w(S~) > w(S~). Then consider the set S’ = (S-Si) u S~.<br />

Clearly w(S’) > w(S). Also, it is easy to check that S’ ~ V t = U.<br />

We claim that S’ is an independent set in G; this will contradict our choice<br />

of S as the maximum-weight independent set in Gt subject to S ~ V t = U. For<br />

suppose S’ is not independent, and let e = (u, v) be an edge with both ends in S’.<br />

It cannot be that u and v both belong to S, or that they both belong to S~, since<br />

these are both .independent sets. Thus we must have u ~ S-S[ and v e S~-S,<br />

from which it follows that u is not a node of Gt~ while u ~ Gti - (V t ~ Vti)" But<br />

then, by (10.14), there cannot be an edge joining u and v. []<br />

Statement (10.17) is exactly what we need to design a recurrence relation<br />

for our subproblems. It says that the ~nformation needed to compute ft(U)<br />

is implicit in the values already computed for the subtrees. Specifically, for<br />

each child t~, we need simply determine the value of ~e maximum-weight<br />

independent set St of Gt~ , subject to the constraint that Si ~ V t _-_ U ~ Vti. This<br />

constraint does not completely determine what S t ~ Vt~ should be; rather, it<br />

says that it can be any independent set Uz c__ Vt~ such that U~ ~ V t = U ~ Vtg.<br />

Thus the weight of the optimal S~ is equal to<br />

max{ft~(U~) : Ui ~ V t = U ~ Vti and U~ c_ Vt~ is independent}.<br />

Finally, the value of f~ (U) is simply w(U) plus these maxima added over the d<br />

children of t--except that to avoid overcoundng the nodes in U, we exclude<br />

them from the contribution of the children. Thus we have<br />

(10.18) The value "<br />

of it(U) is given by the following recurrence:<br />

d<br />

it(U) = w(U) + ~ max{ft~(U~ ) _ w(U~ ~ U)"<br />

U~ ~ V t = U ~ Vt~ and U~ c__ Vt~ is independent}.<br />

The overall algorithm now just builds up the values of all the subproblems<br />

from the leaves of T upward.<br />

To find a maximum-weight independent set of G,<br />

given a tree decomposition (T, [Vt} ) of G:<br />

Modify the tree decomposition if necessary so<br />

Root T at a node r<br />

For each node ~ of T in post-order<br />

If t is a leaf then<br />

it is nonredundant<br />

583

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

Saved successfully!

Ooh no, something went wrong!