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.

564<br />

Chapter 10 Extending the Limits of TractabiliW<br />

Figure 10.1 Aninstance of the Circular-Arc Coloring Problem with six arcs (a, b, c, d, e, f)<br />

on a four-node cycle.<br />

P~ so that overlapping paths receive different wavelengths. We wil! refer to<br />

this as a valid assignment of wavelengths to the paths. Figure 10.1 shows a<br />

sample instance of this problem. In this instance, there is a valid assignment<br />

using k = 3 wavelengths, by assigning wavelength 1 to the pat!gs a and e,<br />

wavelength 2 to the paths b and f, and wavelength 3 to the paths c. and d.<br />

From the figure, we see that the underlying cycle network can be viewed as a<br />

circle, and the paths as arcs on this circle; hence we will refer to this special<br />

case of Path Coloring as the Circular-Arc Coloring Problem.<br />

The Complexity of Circular-Arc Coloring It’s not hard to see that Circular-<br />

Arc Coloring can be directly reduced to Graph Coloring. Given an instance of<br />

Circular-Arc Coloring, we define a graph H that has a node zi for each path<br />

pi, and we connect nodes zi and zj in H if the paths Pi and Pj share an edge<br />

in G. Now, routing all streams using k wavelengths is simply the problem<br />

of coloring H using at most k colors. (In fact, this problem is yet<br />

application of graph coloring in which the abstract ’cmo , since they<br />

different wavelengths of light, are actually colors.)<br />

10.3 Coloring a Set of Circular Arcs<br />

Note that this doesn’t imply that Circular-Arc Coloring is NP-complete-all<br />

we’ve done is to reduce it to a known NP-complete problem, which doesn’t<br />

tell us anything about its difficulty. For Path Co!oring on general graphs, in fact,<br />

it is easy to reduce from Graph Coloring to Path Coloring, thereby establishing<br />

that Path Coloring is NP-complete. However, this straightforward reduction<br />

does not work when the underlying graph is as simple as a cycle. So what is<br />

the complexity of Circular-Arc Coloring?<br />

It turns out that Circular-Arc Coloring can be shown to be NP-complete<br />

using a very complicated reduction. This is bad news for people working<br />

with optical networks, since it means that optimal wavelength assignment<br />

is unlikely to be efficiently solvable. But, in fact, the known reductions that<br />

show Circular-Arc Coloring is NP-complete all have the following interesting<br />

property: The hard instances of Circular-Arc Coloring that they produce all<br />

involve a set of available wavelengths that is quite large. So, in particular,<br />

these reductions don’t show that the Circular-Arc Coloring is hard in the case<br />

when the number of wavelengths is small; they leave open the possibility that<br />

for every fixed, constant number of wavelengths k, it is possible to solve the<br />

wavelength assignment problem in time polynomial in n (the size of the cycle)<br />

and m (the number of paths). In other words, we could hope for a running<br />

time of the form we saw for Vertex Cover in Section 10.1: O(f(k).p(n, m)),<br />

where f(.) may be a rapidly growing function but p(., .) is a polynomial.<br />

Such a running time would be appealing (assuming f(.) does not grow too<br />

outrageously), since it would make wavelength assignment potentially feasible<br />

when the number of wavelengths is small. One way to appreciate the challenge<br />

in obtaining such a running time is to note the following analogy: The general<br />

Graph Coloring Problem is already hard for three colors. So if Circular-Arc<br />

Coloring were tractable for each fixed number of wavelengths (i.e., colors) k,<br />

it would show that it’s a special case of Graph Coloring with a qualitatively<br />

different complexity.<br />

The goal of this section is to design an algorithm with this type of running<br />

time, O(f(k). p(n, m)). As suggested at the beginning of the section, the<br />

algorithm itself builds on the intuition we developed in Section 10.2 when<br />

solving Maximum-Weight Independent Set on trees. There the difficult search<br />

inherent in finding a maximum-weight independent set was made tractable<br />

by the fact that for each node u in a tree T, the problems in the components<br />

of T-{u} became completely decoupled once we decided whether or not to<br />

include u in the independent set. This is a specific example of the general<br />

principle of fixing a small set of decisions, and thereby separating the problem<br />

into smaller subproblems that can be dealt with independently.<br />

The analogous idea here will be to choose a particular point on the cycle<br />

and decide how to color the arcs that cross over this point; fixing these degrees<br />

565

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

Saved successfully!

Ooh no, something went wrong!