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.

Independent Set<br />

● Vertex coloring - A coloring of a graph G is in fact a partitioning of the vertices of G into a small<br />

number of independent sets, since any two vertices of the same color cannot have an edge<br />

between them. In fact, most scheduling applications of independent set are really coloring<br />

problems, since all tasks eventually must be completed.<br />

● Clique - <strong>The</strong> complement of a graph G = (V,E) is a graph G' = (V,E'), where iff (i,j) is<br />

not in E. In other words, we replace each edge by a nonedge and vica versa. <strong>The</strong> maximum<br />

independent set in G is exactly the maximum clique in G', so these problems are essentially<br />

identical. <strong>Algorithm</strong>s and implementations in Section can thus be easily used for independent<br />

set.<br />

<strong>The</strong> simplest reasonable heuristic is to find the lowest-degree vertex, add it to the independent set, and<br />

delete it and all vertices adjacent to it. Repeating this process until the graph is empty gives a maximal<br />

independent set, in that it can't be made larger just by adding vertices. Using randomization or perhaps<br />

some exhaustive search to distinguish among the low-degree vertices might result in somewhat larger<br />

independent sets.<br />

<strong>The</strong> independent set problem is in some sense dual to the graph matching problem. <strong>The</strong> former asks for<br />

a large set of vertices with no edge in common, while the latter asks for a large set of edges with no<br />

vertex in common. This suggests trying to rephrase your problem as a matching problem, which can be<br />

computed in polynomial time, while the maximum independent set problem is NP-complete.<br />

<strong>The</strong> maximum independent set of a tree can be found in linear time by (1) stripping off the leaf nodes,<br />

(2) adding them to the independent set, (3) deleting the newly formed leaves, and then (4) repeating from<br />

the first step on the resulting tree until it is empty.<br />

Implementations: Programs for the closely related problems of finding cliques and independent sets<br />

were sought for the Second DIMACS Implementation Challenge, held in October 1993. Programs and<br />

data from the challenge are available by anonymous ftp from dimacs.rutgers.edu. Source codes are<br />

available under pub/challenge/graph and test data under pub/djs. See Section .<br />

Combinatorica [Ski90] provides (slow) Mathematica implementations of cliques, independent sets, and<br />

vertex covers. See Section for further information on Combinatorica.<br />

Neural-network heuristics for vertex cover and related problems such as clique and vertex coloring have<br />

been implemented in C and Mathematica by Laura Sanchis and Arun Jagota, and are available in the<br />

algorithm repository http://www.cs.sunysb.edu/ algorith.<br />

Notes: Independent set remains NP-complete for planar cubic graphs [GJ79]. However, it can be solved<br />

efficiently for bipartite graphs [Law76].<br />

file:///E|/BOOK/BOOK4/NODE173.HTM (2 of 3) [19/1/2003 1:31:18]

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

Saved successfully!

Ooh no, something went wrong!