Algorithm Design
Algorithm Design
Algorithm Design
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