cs0011009/smis.tex
1: \documentclass[11pt]{article}
2: \pagestyle{plain}
3: 
4: \usepackage{times}
5: \usepackage{mathfont}
6: %\usepackage{graphicx}
7: \usepackage{cite}
8: \usepackage{url}
9: \urlstyle{same}
10: 
11: \setlength{\textwidth}{6.5in}
12: \setlength{\textheight}{9in}
13: \setlength{\topmargin}{-.5in}
14: \oddsidemargin=.25in
15: \evensidemargin=.25in
16: \setlength{\oddsidemargin}{.25in}
17: \setlength{\evensidemargin}{.25in}
18: 
19: \def\min{\mathop{\rm min}}
20: \def\max{\mathop{\rm max}}
21: 
22: % magic to make big-O notation use script font
23: \mathcode`O="724F
24: 
25: %Box notdef in Latex2e
26: \DeclareSymbolFont{lasy}{U}{lasy}{m}{n}
27: \let\Box\undefined
28: \DeclareMathSymbol\Box{0}{lasy}{"32}
29: 
30: \newtheorem{lemma}{Lemma}
31: \newtheorem{corollary}{Corollary}
32: \newtheorem{theorem}{Theorem}
33: \newcommand{\qed}{\hfill$\Box$\medbreak}
34: \newenvironment{proof}{\noindent{\bf Proof: }}{\qed}
35: 
36: \begin{document}
37: 
38: \title{Small Maximal Independent Sets and Faster Exact Graph Coloring}
39: 
40: \author{David Eppstein\thanks{Dept. Inf. \& Comp. Sci., Univ. of
41: California, Irvine, CA 92697-3425.  Email: {\tt eppstein@ics.uci.edu}.}}
42: 
43: \date{ }
44: \maketitle   
45: 
46:  
47: \begin{abstract}
48: We show that, for any $n$-vertex graph $G$ and integer parameter $k$,
49: there are at most $3^{4k-n} 4^{n-3k}$
50: maximal independent sets $I\subset G$ with $|I|\le k$, and that all
51: such sets can be listed in time
52: $O(3^{4k-n} 4^{n-3k})$. These bounds are tight when $n/4 \le k
53: \le n/3$. As a consequence, we show how to compute the exact chromatic
54: number of a graph in time $O((4/3 + {3^{4/3}}/{4})^n)
55: \approx 2.4150^n$,
56: improving a previous
57: $O((1+3^{1/3})^n)\approx 2.4422^n$ algorithm of Lawler (1976).
58: \end{abstract} 
59: 
60: \section{Introduction}
61: 
62: One of the earliest works in the area of worst-case analysis of NP-hard
63: problems is a 1976 paper by Lawler~\cite{Law-IPL-76} on graph
64: coloring.  It contains two results: an algorithm for finding a
65: 3-coloring of a graph (if the graph is 3-chromatic) in time
66: $O(3^{n/3})\approx 1.4422^n$, and an algorithm for finding the chromatic
67: number of an arbitrary graph in time
68: $O((1+3^{1/3})^n)\approx 2.4422^n$.
69: Since then, the area has grown, and there has been a sequence of papers
70: improving Lawler's 3-coloring algorithm
71: \cite{Sch-WG-93,BeiEpp-FOCS-95,cs.DS/0006046,Epp-SODA-01},
72: with the most recent algorithm taking time $\approx 1.3289^n$.
73: However, there has been no improvement to Lawler's chromatic number
74: algorithm.
75: 
76: Lawler's algorithm follows a simple dynamic programming approach, in
77: which we compute the chromatic number not just of $G$ but of all its
78: induced subgraphs.  For each subgraph $S$, the chromatic number is found
79: by listing all maximal independent subsets $I\subset S$, adding one to the
80: chromatic number of
81: $S\setminus I$, and taking the minimum of these values.  The
82: $O((1+3^{1/3})^n)$ running time of this technique follows
83: from an upper bound of $3^{n/3}$ on the number of maximal independent
84: sets in any $n$-vertex graph, due to Moon and
85: Moser~\cite{MooMos-IJM-65}.  This bound is tight in graphs formed by a
86: disjoint union of triangles.
87: 
88: In this paper, we provide the first improvement to Lawler's algorithm,
89: using the following ideas.  First, instead of removing a maximal
90: independent set from each induced subgraph $S$, and computing the
91: chromatic number of
92: $S$ from that of the resulting subset, we add a maximal independent set of
93: $G\setminus S$ and compute the chromatic number of the resulting
94: superset from that of $S$.  This reversal does not itself affect the
95: running time of the dynamic programming algorithm, but it allows us to
96: constrain the size of the maximal independent sets we consider to
97: at most $|S|/3$. We show that, with such a constraint, we can improve the
98: Moon-Moser bound: for any $n$-vertex graph $G$ and integer parameter $k$,
99: there are at most $3^{4k-n} 4^{n-3k}$
100: maximal independent sets $I\subset G$ with $|I|\le k$.
101: This bound then leads to a corresponding improvement in the
102: running time of our chromatic number algorithm.
103: 
104: \section{Preliminaries}
105: 
106: We assume as given a graph $G$ with vertex set $V(G)$ and edge set
107: $E(G)$.  We let $n=|V(G)|$ and $m=|E(G)|$.  A {\em proper coloring} of
108: $G$ is an assignment of colors to vertices such that no two endpoints of
109: any edge share the same color.  We denote the chromatic number of $G$ (the
110: minimum number of colors in any proper coloring) by $\chi(G)$.
111: 
112: \def\deg{\mathop{\rm deg}}
113: 
114: If $V(G)=\{v_0,v_1,\ldots v_{n-1}\}$, then we can place subsets
115: $S\subseteq V(G)$ in one-to-one correspondence with the integers
116: $0,1,\ldots 2^n-1$:
117: $$S\leftrightarrow \sum_{v_i\in S} 2^i.$$
118: Subsets of vertices also correspond to induced subgraphs of $G$,
119: in which we include all edges between vertices in the subset.
120: We make no distinction between these three equivalent views of a
121: vertex subset, so e.g. we will write $\chi(S)$ to indicate the chromatic
122: number of the subgraph induced by set $S$, and $X[S]$ to indicate a
123: reference to an array element indexed by the number $\sum_{v_i\in S} 2^i$.
124: We write $S<T$ to indicate the usual arithmetic comparison between two
125: numbers, and $S\subset T$ to indicate the usual (proper) subset relation
126: between two sets.  Note that, if $S\subset T$, then also $S< T$, although
127: the reverse implication does not hold.
128: 
129: A set $S$ is a {\em maximal $k$-chromatic subset} of $T$
130: if $S\subseteq T$, $\chi(S)=k$, and $\chi(S')>k$ for every $S\subset
131: S'\subseteq T$. In particular, if $k=1$, $S$ is a {\em maximal independent
132: subset} of $T$.
133: 
134: For any vertex $v\in V(G)$, we let $N(v)$ denote the set of neighbors of
135: $v$, including $v$ itself.  If $S$ and $T$ are sets, $S\setminus T$
136: denotes the set-theoretic difference, consisting of elements of $S$ that
137: are not also in $T$.  $K_i$ denotes the complete graph on $i$ vertices.
138: We write $\deg(v,S)$ to denote the degree of vertex
139: $v$ in the subgraph induced by $S$.
140: 
141: We express our pseudocode in a syntax similar to that of C, C++, or Java.
142: In particular this implies that array indexing is zero-based.
143: We assume the usual RAM model of computation, in which a single
144: cell is capable of storing an integer large enough to index the memory
145: requirements of the program (thus, in our case, $n$-bit values are
146: machine integers), and in which arithmetic and array indexing operations
147: on these values are assumed to take constant time.
148: 
149: 
150: \section{Small Maximal Independent Sets}
151: 
152: \begin{theorem}
153: \label{thm:smallmis}
154: Let $G$ be an $n$-vertex graph, and $k$ be a nonnegative number.
155: Then the number of maximal independent sets $I\subset V(G)$
156: for which $|I|\le k$ is at most $3^{4k-n} 4^{n-3k}$.
157: \end{theorem}
158: 
159: \begin{proof}
160: We use induction on $n$; in the base case $n=0$, there is one (empty)
161: maximal independent set, and for any $k\ge 0$, $1\le
162: 3^{4k}4^{-3k}=(81/64)^k$. Otherwise, we divide into cases according to the
163: degrees of the vertices in $G$, as follows:
164: 
165: \begin{itemize}
166: \item
167: If $G$ contains a vertex $v$ of degree three or more,
168: then each maximal independent set $I$ either contains $v$
169: (in which case $I\setminus\{v\}$ is a maximal independent set of
170: $G\setminus N(v)$) or it does not contain $v$
171: (in which case $I$ itself is a maximal independent set of
172: $G\setminus\{v\}$).  Thus, by induction, the number of maximal
173: independent sets of cardinality at most $k$ is at most
174: $$
175: 3^{4k-(n-1)} 4^{(n-1)-3k} + 3^{4(k-1)-(n-4)} 4^{(n-4)-3(k-1)}
176: = (\frac34 + \frac14) 3^{4k-n} 4^{n-3k} = 3^{4k-n} 4^{n-3k}$$
177: as was to be proved.
178: 
179: \item
180: If G contains a degree-one vertex $v$,
181: let its neighbor be $u$.
182: Then each maximal independent set contains exactly one of $u$ or $v$,
183: and removing this vertex from the set produces a maximal independent
184: set of either $G\setminus N(u)$ or  $G\setminus N(v)$.
185: If the degree of $u$ is $d$, this gives us by induction a bound of
186: $$3^{4(k-1) - (n-2)} 4^{(n-2)-3(k-1)}
187: +3^{4(k-1) - (n-d-1)} 4^{(n-d-1)-3(k-1)}
188: \le \frac89\, 3^{4k-n} 4^{n-3k}$$
189: on the number of maximal independent sets of cardinality at most $k$.
190: 
191: \item If $G$ contains an isolated vertex $v$,
192: then each maximal independent set contains $v$,
193: and the number of maximal independent sets of cardinality at most $k$
194:  is at most
195: $$3^{4(k-1)-(n-1)} 4^{(n-1)-3(k-1)}
196: =\frac{16}{27}\, 3^{4k-n} 4^{n-3k}.$$
197: 
198: \item If $G$ contains a chain $u$-$v$-$w$-$x$
199: of degree two vertices,
200: then each maximal independent set contains $u$,
201: contains $v$, or does not contain $u$ and contains $w$.
202: Thus in this case the number of maximal independent sets
203: of cardinality at most $k$
204: is at most
205: $$2 \cdot 3^{4(k-1) - (n-3)} 4^{(n-3)-3(k-1)}
206: + 3^{4(k-1) - (n-4)} 4^{(n-4)-3(k-1)}
207: = \frac{11}{12}\, 3^{4k-n} 4^{n-3k}.$$
208: 
209: \item In the remaining case, $G$ consists of a disjoint union of
210: triangles, all maximal independent sets have exactly $n/3$ vertices,
211: and there are exactly $3^{n/3}$ maximal independent sets.
212: If $k\ge n/3$, then $3^{n/3}\le 3^{4k-n} 4^{n-3k}.$
213: If $k<n/3$, there are no maximal independent sets
214: of cardinality at most $k$.
215: \end{itemize}
216: 
217: Thus in all cases the number of maximal independent sets is within the
218: claimed bound.
219: \end{proof}
220: 
221: Croitoru~\cite{Cor-COR-79} proved a similar bound with the stronger
222: assumption that all maximal independent sets have $|I|\le k$.
223: When $n/4\le k\le n/3$, our result is tight, as can be seen for
224: a graph formed by the disjoint union of $4k-n$ triangles and $n-3k$
225: $K_4$'s.
226: 
227: \begin{figure}[p]
228: \begin{tabbing}
229: // List maximal independent subsets of $S$ smaller than a given
230: parameter. \\
231: // \qquad $S$ is a set of vertices forming an induced subgraph in $G$,\\
232: // \qquad $I$ is a set of vertices to be included in the MIS (initially
233: zero), and\\
234: // \qquad $k$ bounds the number of vertices of $S$ to add to $I$. \\
235: // We call processMIS$(I)$ on each generated set.  Some non-maximal sets
236: may be \\
237: // generated along with the maximal ones, but all generated sets are
238: independent. \\
239: \\
240: void smallMIS (set $S$, set $I$, int $k$) \\
241: \{ \quad \= \\
242:    \> if $(S = 0$ or $k=0)$ processMIS(I); \\
243:    \> else if $($there exists $v\in S$ with $\deg(v,S)\ge 3)$ \\
244:    \> \{ \quad \= \\
245:    \> \> smallMIS ($S\setminus\{v\}$, $I$, $k$); \\
246:    \> \> smallMIS ($S\setminus N(v)$, $I\cup\{v\}$, $k-1$); \\
247:    \> \} \\
248:    \> else if $($there exists $v\in S$ with $\deg(v,S) = 1)$ \\
249:    \> \{ \quad \= \\
250:    \> \> let $u$ be the neighbor of $v$; \\
251:    \> \> smallMIS ($S\setminus N(u)$, $I\cup\{u\}$, $k-1$); \\
252:    \> \> smallMIS ($S\setminus N(v)$, $I\cup\{v\}$, $k-1$); \\
253:    \> \} \\
254:    \> else if $($there exists $v\in S$ with $\deg(v,S) = 0)$ \\
255:    \> \> smallMIS ($S\setminus\{v\}$, $I\cup\{v\}$, $k-1$); \\
256:    \> else if $($some cycle in $S$ is not a triangle or $k\ge |S|/3)$\\
257:    \> \{ \\
258:    \> \> let $u$, $v$, and $w$ be adjacent degree-two
259: vertices, such that (if possible) $u$ and $w$ are nonadjacent; \\
260:    \> \> smallMIS ($S\setminus N(u)$, $I\cup\{u\}$, $k-1$); \\
261:    \> \> smallMIS ($S\setminus N(v)$, $I\cup\{v\}$, $k-1$); \\
262:    \> \> smallMIS ($S\setminus (\{u\}\cup N(w))$, $I\cup\{w\}$, $k-1$); \\
263:    \> \} \\
264: \}
265: \end{tabbing}
266: \caption{Algorithm for listing all small maximal independent sets.}
267: \label{fig:misalg}
268: \end{figure}
269: 
270: \begin{theorem}
271: \label{thm:misalg}
272: There is an algorithm for listing all maximal independent sets smaller
273: than $k$ in an $n$-vertex graph $G$, in time $O(3^{4k-n} 4^{n-3k})$.
274: \end{theorem}
275: 
276: \begin{proof}
277: We use a recursive backtracking search, following the case analysis
278: of Theorem~\ref{thm:smallmis}: if there is a high-degree vertex, we try
279: including it or not including it; if there is a degree-one vertex, we
280: try including it or its neighbor; if there is a degree-zero vertex, we
281: include it; and if all vertices form chains of degree-two vertices, we
282: test whether the parameter $k$ allows any small maximal independent
283: sets, and if so we try including each of a chain of three adjacent
284: vertices. The same case analysis shows that this algorithm performs
285:  $O(3^{4k-n} 4^{n-3k})$ recursive calls.
286: 
287: Each recursive call can easily be
288: implemented in time polynomial in the size of the graph passed to the
289: recursive call.  Since
290: our $3^{4k-n} 4^{n-3k}$ bound is exponential in $n$, even when $k=0$,
291: this polynomial overhead at the higher levels of the recursion is
292: swamped by the time spent at lower levels of the recursion,
293: and does not appear in our overall time bound.
294: \end{proof}
295: 
296: A more detailed pseudocode description of the algorithm is shown in
297: Figure~\ref{fig:misalg}.  The given pseudocode may generate non-maximal
298: as well as maximal independent sets, because (when we try not including
299: a high degree vertex) we do not make sure that a neighbor is later
300: included.  This will not cause problems for our chromatic number
301: algorithm, but if only maximal independent sets are desired one can
302: easily test the generated sets and eliminate the non-maximal ones.
303: The pseudocode also omits the data structures necessary to implement
304: each recursive call in time polynomial in $|S|$ instead of polynomial
305: in the number of vertices of the original graph.
306: 
307: \section{Chromatic Number}
308: 
309: 
310: \begin{figure}[t]
311: \begin{tabbing}
312: int chromaticNumber (graph $G$) \\
313: \{ \quad \= \\
314:    \> int $X[2^n]$; \\
315:    \> for $(S = 0$; $S\le 2^n$; $S$++) \\
316:    \> \{ \quad \= \\
317:    \> \> if $(\chi(S)\le 3)$ $X[S] = \chi[S]$; \\
318:    \> \> else $X[S] = \infty$; \\
319:    \> \} \\
320:    \> for $(S = 0$; $S\le 2^n$; $S$++) \\
321:    \> \{ \quad \= \\
322:    \> \> if $(3\le X[S] < \infty)$ \\
323:    \> \> \{ \quad \= \\
324:    \> \> \qquad for (each maximal independent set $I$ of $G\setminus S$
325: with
326: $|I|\le \displaystyle\frac{|S|}{X[S]}$)\\
327:    \> \> \qquad \qquad $X[S\cup I] = \min (X[S\cup I], X[S]+1)$;\\
328:    \> \> \} \\
329:    \> \} \\
330:    \> return $X[V(G)]$; \\
331: \}
332: \end{tabbing}
333: \caption{Algorithm for computing the chromatic number of a graph.}
334: \label{fig:cnalg}
335: \end{figure}
336: 
337: We are now ready to describe our algorithm for computing the chromatic
338: number of graph $G$.  We use an array $X$, indexed by the $2^n$ subsets
339: of $G$, which will (eventually) hold the chromatic numbers of certain of
340: the subsets including $V(G)$ itself.  We initialize
341: this array by testing, for each subset
342: $S$, whether $\chi(S)\le 3$; if so, we set $X[S]$ to $\chi(S)$, but
343: otherwise we set $X[S]$ to $\infty$.
344: 
345: Next, we loop through the subsets $S$ of $V(G)$, in numerical order
346: (or any other order such that all proper subsets of each set $S$ are
347: visited before we visit $S$ itself).
348: When we visit $S$, we first test whether $X[S]\ge 3$.  If not, we skip
349: over $S$ without doing anything.  But if $X[S]\ge 3$, we loop through
350: the small independent sets of $G\setminus S$, limiting the size of each
351: such set to $|S|/X[S]$, using the algorithm of the previous section.
352: For each independent set $I$, we set $X[S\cup I]$ to the minimum of
353: its previous value and $X[S]+1$.
354: 
355: Finally, after looping through all subsets, we return the value in
356: $X[V(G)]$ as the chromatic number of $G$.
357: Pseudocode for this algorithm is shown in Figure~\ref{fig:cnalg}.
358: 
359: \begin{lemma}
360: Throughout the course of the algorithm, for any set $S$,
361: $X[S]\ge\chi(S)$.
362: \end{lemma}
363: 
364: \begin{proof}
365: Clearly this is true of the initial values of $X$.
366: Then for any $S$ and any independent set $I$,
367: we can color $S\cup I$ by using a coloring of $S$
368: and another color for each vertex in $I$, so
369: $\chi(S\cup I)\le \chi(S)+1\le X[S]+1$,
370: and each step of our algorithm preserves the invariant. 
371: \end{proof}
372: 
373: \begin{lemma}\label{lem:MSI}
374: Let $M$ be a maximal $k+1$-chromatic subset of $G$,
375: and let $(S,I)$ be a partition of $M$ into a $k$-chromatic subset $S$
376: and an independent subset $I$, maximizing the cardinality of $S$ among
377: all such partitions. Then
378: $I$ is a maximal independent subset
379: of $G\setminus S$ with $|I|\le |S|/k$,
380: and $S$ is a maximal $k$-chromatic subset of $G$.
381: \end{lemma}
382: 
383: \begin{proof}
384: If we have any $(k+1)$-coloring of $G$,
385: then the partition formed by separating the largest $k$ color classes
386: from the smallest color class satisfies the inequality
387: $|I|\le |S|/k$, so clearly this also is true when $(S,I)$ is the partition
388: maximizing $|S|$.  If $I$ were not maximal, due to the existence
389: of another independent set $I\subset I'\subset G\setminus S$,
390: then $S\cup I'$ would be a larger $(k+1)$-chromatic graph, violating the
391: assumption of maximality of $M$.
392: 
393: Similarly, suppose there were another $k$-chromatic set
394: $S\subset S'\subset G$.
395: Then if $S'\cap I$ were empty, $S'\cup I$ would be a $(k+1)$-chromatic
396: superset of $M$, violating the assumption of $M$'s maximality.
397: But if $S'\cap I$ were nonempty, $(S',I\setminus S')$
398: would be a better partition than $(S,I)$,
399: so in either case we get a contradiction.
400: \end{proof}
401: 
402: \begin{lemma}\label{lem:cnok}
403: Let $M$ be a maximal $k+1$-chromatic subset of $G$.
404: Then, when the outer loop of our algorithm reaches $M$,
405: it will be the case that $X[M]=\chi(M)$.
406: \end{lemma}
407: 
408: \begin{proof}
409: Clearly, the initialization phase of the algorithm causes
410: this to be true when $\chi(M)\le 3$. Otherwise,
411: let $(S,I)$ be as in Lemma~\ref{lem:MSI}.
412: By induction on $|M|$, $X[S]=\chi(S)$
413: at the time we visit $S$.
414: Then $X[S]\ge 3$, and $|I|\le |S|/X[S]$,
415: so the inner loop for $S$ will visit $I$ and
416: set $X[M]$ to $X[S]+1=\chi(M)$.
417: \end{proof}
418: 
419: 
420: \begin{theorem}\label{thm:cnalg}
421: We can compute the chromatic number of a graph $G$
422: in time $O((4/3 + {3^{4/3}}/{4})^n)$ and space $O(2^n)$.
423: \end{theorem}
424: 
425: \begin{proof}
426: $V(G)$ is itself a maximal $\chi(G)$-chromatic subset of $G$,
427: so Lemma~\ref{lem:cnok} shows that the algorithm correctly computes
428: $\chi(G)=X[V(G)]$.  Clearly, the space is bounded by $O(2^n)$. It remains
429: to analyze the algorithm's time complexity.
430: 
431: First, we consider the time spent initializing $X$.
432: Since we perform a 3-coloring algorithm on each subset of $G$,
433: this time is
434: $$\sum_{S\subset V(G)} O(1.3289^{|S|})
435: = O\Bigl(\sum_{i=0}^n {n\choose i} 1.3289^i\Bigr)
436: = O(2.3289^i).$$
437: 
438: Finally, we bound the time in the main loop of the algorithm.
439: We may possibly apply the algorithm of Theorem~\ref{thm:misalg}
440: to generate small independent subsets of
441: each set $G\setminus S$.  In the worst case, $X[S]=3$
442: and we can only limit the size of the generated independent sets
443: to $|S|/3$.  We spend constant time adjusting the value of
444: $X[S\cup I]$ for each generated set. Thus, the total time can be bounded
445: as
446: $$\sum_{S\subset V(G)} O(3^{4\frac{|S|}{3}-|G\setminus S|}
447: 4^{|G\setminus S|-3\frac{|S|}{3}})
448: = O\Bigl(\sum_{i=0}^n {n\choose i} 3^{\frac{7i}{3}-n} 4^{n-2i}\Bigr)
449: = O\Bigl( (\frac43 + \frac{3^{4/3}}{4})^n \Bigr).$$
450: This final term dominates the overall time bound.
451: \end{proof}
452: 
453: 
454: \section{Finding a Coloring}
455: 
456: 
457: \begin{figure}[t]
458: \begin{tabbing}
459: void color (graph $G$) \\
460: \{ \quad \= \\
461:    \> compute array $X$ as in Figure~\ref{fig:cnalg};\\
462:    \> $S = V(G)$; \\
463:    \> for $(T = 2^n-1$; $T\ge 0$; $T${}$-${}$-)$ \\
464:    \> \{ \quad \= \\
465:    \> \> if $(T\subset S$ and $X[S\setminus T]=1$ and $X[T]=X[S]-1$)\\
466:    \> \> \{ \quad \= \\
467:    \> \> \> color all vertices in $S\setminus T$ with the same new
468: color;\\
469:    \> \> \> $S = T$;\\
470:    \> \> \} \\
471:    \> \} \\
472: \}
473: \end{tabbing}
474: \caption{Algorithm for optimally coloring a graph.}
475: \label{fig:color}
476: \end{figure}
477: 
478: Although the algorithm of the previous section finds the chromatic
479: number of $G$, it is likely that an explicit coloring is desired,
480: rather than just this number.
481: The usual method of performing this sort of construction task in a
482: dynamic programming algorithm is to augment the dynamic programming
483: array with back pointers indicating the origin of each value computed in
484: the array, but since storing $2^n$ chromatic numbers is likely to be the
485: limiting factor in determining how large a graph this algorithm can be
486: applied to, it is likely that also storing $2^n$ set indices will
487: severely reduce its applicability.
488: 
489: Instead, we can simply search backwards from $V(G)$
490: until we find a subset $S$ that can be augmented by an independent set
491: to form $V(G)$, and that has chromatic number $\chi(S)=\chi(G)-1$
492: as indicated by the value of $X[S]$.
493: We assign the first color to $G\setminus S$.
494: Then, we continue searching for a similar subset $T\subset S$, etc., until
495: we reach the empty set.
496: Although not every set $S$ may necessarily have $X[S]=\chi(S)$,
497: it is guaranteed that for any $S$
498: we can find $T\subset S$ with $S\setminus T$ independent and
499: $X[T]=X[S]-1$, so this search procedure always finds a correct coloring.
500: 
501: \begin{theorem}
502: After computing the array $X$ as in Theorem~\ref{thm:cnalg},
503: we can compute an optimal coloring of $G$
504: in additional time $O(2^n)$ and no additional space.
505: \end{theorem}
506: 
507: We omit the details of the correctness proof and analysis.
508: A pseudocode description of the coloring algorithm
509: is shown in Figure~\ref{fig:color}.
510: 
511: \section{Conclusions}
512: 
513: We have shown a bound on the number of small independent sets in a
514: graph, shown how to list all small independent sets in time proportional
515: to our bound, and used this algorithm in a new dynamic programming
516: algorithm for computing the chromatic number of a graph as well as an
517: optimal coloring of the graph.
518: 
519: Our bound on the number of small independent sets is tight for $n/4\le
520: k\le n/3$, and an examination of the analysis of Theorem~\ref{thm:cnalg}
521: shows that independent set sizes in this range are also the ones leading
522: to the worst case time bound for our coloring algorithm.  Nevertheless, it
523: would be of interest to find tight bounds on the number of small
524: independent sets for all ranges of $k$.  It would also be of interest
525: to find an algorithm for
526: listing all small maximal independent sets in time proportional to the
527: number of generated sets rather than simply proportional to the worst case
528: bound on this number.
529: 
530: Our worst case analysis of the chromatic number algorithm assumes that,
531: every time we call the procedure for listing small maximal independent
532: sets, this procedure achieves its worst case time bound.  But is it
533: really possible for all sets $G\setminus S$ to be worst case instances
534: for this procedure? If not, perhaps the analysis of our
535: coloring algorithm can be improved.
536: 
537: Can we prove a bound smaller than $n\choose i$ on the number of
538: $i$-vertex maximal $k$-chromatic induced subgraphs of a graph $G$?
539: If such a bound could be proven, even for $k=3$, we could likely improve
540: the algorithm presented here by only looping through the independent
541: subgraphs of $G\setminus S$ when $S$ is maximal.
542: 
543: An alternative possibility for improving the present algorithm would
544: be to find an algorithm for testing whether $\chi(G)\le 4$ in time
545: $o(1.415^n)$. Then we could test the four-colorability of all subsets of
546: $G$ before applying the rest of our algorithm, and avoid looping over
547: maximal independent subsets of $G\setminus S$ unless $X[S]\ge 4$.  This
548: would produce tighter limits on the independent set sizes and therefore
549: reduce the number of independent sets examined.  However such a time
550: bound would be significantly better than what is currently known for
551: four-coloring algorithms.
552: 
553: \bibliographystyle{abuser}
554: \bibliography{3color}
555: 
556: \end{document}
557: