6.4

Exact Coloring of Real-Life Graphs is Easy

Olivier Coudert Synopsys, Inc., 700 East Middlefield Rd. Mountain View, CA 94043

...... Abstract jpqq .. ..., .. m!miI. , ....’. has several important applications in : L ...... : VISI CAI]. Since graph coloring is NP-complete, heuris- tics arc used to approximate the optimum solution. Rut Iicurisbic solutions are typically 10% off, and as much as Figure 1: Max. clique, max. independent sct, inin. col- 100% off, the minimum coloring. This paper shows that oring, and min. clique partition. since real-life graphs appear to be 1-perfect, one can in- deed solve them exactly for a small overhead. 2 Notations 1 Introduction A simple (i.e., undirected and self-loop frcc) graph G Coloring a graph consists of assigning a color to ev- is denoted by V(G),E(G)),where V(G)is its set of cry vertex so that no two vertices linked by an edge vertices, and E IG) its set of edges. We denotc hy N(V) have the same color. The associated optimization the set of neighbors of a vertex v in a iven graph G, i.c., problem consists of minimizing the number of colors. N(w) = {v’ E V(G)I {TJ,~’}E E(C)f. The t1egrc.c of a Graph coloring is used in microcode o timization [15, vertex is its number of neighbors, IN(v)I. Givcri a set of pp. 168-1691, scheduling [8, pp. 248-252L resource bind- vertices V,we will often use the notation G- V to dcnotc ing and sharing [8, pp. 277-2941 [15, pp. 230-2331, the subgraph induced by (V(G)- V,E(G)). Whcn the (un)constrained state encoding of (a)synchronous finite context is not ambiguous, we will denotc a suhgraph hy state machines [15, pp. 323-3271, and planar routing [6]. its set of vertices. Other non-CAD applications include code compilation, In the sequel, n is the number of vertices, and IC the frequency assignment, and network optimization. Be- number of colors used by a coloring. The saturatzon nurn- cause graph coloring is NP-complete, heuristics are used ber of a vertex v is the number of colors used by its neigh- to produce an approximate solution. bors (i.e., the number of forbidden colors for v). We say This paper shows that since real-life coloring instances that a color is saturated if it cannot be used anyrnorc to appear to be 1-perfect, one can solve them exactly in no extend a partial coloring. more time than heuristics, while heuristics are on average A clzque is a set of vertices that are all linked lo each 10% off, and as much as 100% off, from the optimum. other by edges. An zndependent set is a set of vertices This paper is organized as follows. Section 2 gives that are not connected by any edge. Partitioning the set some definitions and notations. Section 3 presents the of vertices into cliques is nothing but coloring the com- well-known sequential coloring algorithm, and pinpoints plementary graph. Fig. 1 illustrates these NI’-complel~c its main weakness. Based on experimental evidence, it problems [9 . An independent set is maxzmal iff it is not then explains why solving the maximumclique problem is a proper sub set of another independent set. a decisive factor when coloring real-life graphs. Section 4 Let y(G) be the size of the maximum clique of G, and introduces original pruning techniques to solve maximum x(G) be the chromatic number of G, i.e., the minimum clique. Section 5 gives experimental results. It shows number of colors needed to color G. Since every vertex of that all the real-life application instances we had access a clique must be assigned a different color, y(G) 5 x(G). to (> 600) are solved exactly in a few seconds. When r(G) = x(G),we say that C is l-pcrfccll.

Permission to make digital/hnrd copy of all or part of this work 3 Exact Coloring for personal or classroom use is granted without fee provided that copies are not made or distributedfor profit or commercial Coloring a graph can be done in two ways. One can advantage, the copyright notice, the title of the publication and its date appear, and notice is given that copying is by determine a color class one at a time: this consists of enu- permission of ACM, Inc. To copy otherwise, to republish, to merating maximal independent sets. Or one can color the post on servers or to redistribute to lists, requires prior specific vertices one at a time: this is called sequential coloring. permission and/or a fee. DAC 97, Anaheim, Californin G is perfect iff euery subgraph of G is 1-perfect. Exact coloring (c) 1997 ACM 0-89791-920-3/97/08 .. $3.50 of perfect graphs is polynomial [lo], but much too slow in practice.

121 fiirictioii SC(G); C t a clique of G; k to; forcach o E C { /* color the clique */ ktk+1; color t~ with k; /* a color is an integer 2 1 */ 1 return SCrcc(G,k, IV(G)l + 1, ICl); /* G is a graph partially colored, using L colors, and */ /* brst is the chromatic number found so far */ Figure 4: Three non 1-perfect graphs: y(G) < x(G). fiiiictioii SCrec(G, k, best, Ib); if G is entirely colored return k; /* new best coloring */ pi +- an uncolored vertex of G; 3.2 Why is Sequential Coloring Hard? for (c c I; c 5 min(k + 1, best - I); c +- c + 1) { /* for rach potential color */ The way the lowcr bound is used in SC is largcly incf- if (V~J’E N(v , coIor(v’) # c) { /* c is non-conflicting */ fective. As a comparison, considcr a hrancli-and-hoi~ri~l color v wit 1I c; algorithm that solvrs maximum clique (c.g., Fig. 5). bcst +- SCrrc(G, niax(c, k),brsf, Ib); Based on the inequality y(G) 5 x(G),a coloring is coni- uiirolor TI; is if Ib = besl rctiirii bcst; /* y(G) = x(G): abort */ puted at each recursion and uscd as an upprr hound to prune the search tree of maximum clique. Conversely, a clique is a lower bound on the chromatic number of returii best; a graph. But the analogy ends here: a clique does not give any valuable information on a graph partially col- Figure 2: SC, the exact sequential coloring. ored with unsaturated colors. Indeed, quickly estimat- ing a lower bound on the number of colors necessary to optimaly complete an unsaturated coloring is an open problem. SC uses several unsaturated colors at the samc time (e.g., the two gray colors used in the second and third graphs of Fig. 3), and thus has only one stalac lowcr bound which is not reevaluated at each recursioii, unlike “standard” branch-and-bound algorithms. We thcrcforc Figure 3: Sequential coloring. have the following fact (e.g., [13, pp. 2201): Fact 1 If y(G) < x(G), then the lower bound does not anfluence the length of the computataon at all, because the This section discusses the sequential coloring algo- search must exhaustavely enumerate all potentaal (unsuc- rithm. We pinpoint the main weakness of this algorithm, cessful) colorangs that would amprove op x(G),whach can and explain why the maximum clique problem is a key take exponentaal tame. player when coloring real-life graphs. Let us face the second fact ([a, 31, [13, pp. 243 2471): 3.1 Sequential Coloring Fact 2 Almost all graphs G salasfy: Fig. 2 outlines the exact sequential coloring algorithm SC [5]. It first generates a clique, which is used both as a lower bound and as a starting point for the coloring, since every vertex of the clique must be assigned a different This shows an actual large gap between y(G) and x(G). color and does not need to be recolored afterwards. Then Combined with Fact 1, this leaves little hope to address uncolored vertices are picked one at a time, and each is exact coloring in general. assigned a color (an integer 2 1) non-conflicting with its neighbors’ colors. 3.3 Why is Maximum Clique Important? al- An efficient heuristic, the well known DSATUR However, Fact 3 gives a different perspective 011 exact gorithm [4], consists of picking the vertex that has the graph coloring from the practical point of view: largest saturation number, and in breaking ties with the larges!, in the uncolored graph. The idea is to Fact 3 All the practical instances we found (more than choose the vertex that is the most “diflicult” to color, and 600 real-life examples in scheduling, register allocataon, tjhatJpropagates as many condraints as possible. Fig. 3 planar routing, and frequency assignment) are 1-perfed (from left to right) shows how a simple graph is sequen- graphs, a.e., y(G) = x(G). t,ially colored with this heuristic. The reader is referred to [16] for an extensive descrip- For instance, the graph of Fig. 3 is 1-perfect. Fig. 4 tion of some improvements and variations of sequential shows non 1-perfect ‘graphs (the one on the right is coloring (e.g., non-sequential backtracking [4, 181). myciel3, see Section 5).

122 fiiiic ticm MaxClique( G); rctiirri MaxClrqurIlec(G, 0,0,+m); /* G is the remaining graph, C is the clique under con- */ /* striiction, and best is the largest cliquc found so far. */ fiinction MaxClzqueRec(G, C, lest, ub); ...... if G is empty return C; /* new best solution */ ...... N( v) . {I,,. . . , I!} + a coloring of G; ub +- min(u6, IC1 -tk); /* compute an upper bound */ if ti6 5 JbcstJreturn besl; /* prune */ v + a maximum degree vertex of G; Figure 6: q-colorable vertices can be rernovctl. GI + graph induced by N(u); /* force 11 in the clique */ bcsl + MaxClrqueIlcc(G1, G U {U}, best, “6); if 166 = Ibest) return best; /* prune */ GO + graph induccd by V(G) - {U}; /* exclude v */ rctiirii Max~~~gzrc~kc(~~O,c,brsl, ub); Rules (a)-(c) are trivial to implement. l (Cl- lbcsll + k, can be removed from the graph. 4 Maximum Clique Proof. Fig. 6 shows the k-coloring of G, i.e., the parti- tion of the vertices of G into k independent sets 11,.. . , Ik. This section shows how to solve maximum clique, and Assume that the vertex v can be colored with q colors. proposes an original pruning technique that drastically Without loss of generality, this means that I3 U {ii is an reduces the search space. independent set for 1 5 j 5 q. Let C1 be the /argesi, Fig. 5 shows a simplified branch-and-bound algorithm clique that can be obtained by forcing v in C. We then for solving maximum clique. One can add the following obtain : improvements: IC11 = ICU {U} U MazClzque(N(v))I (I) When (CI + IV(G)l 5 [best/,the recursion is pruned, = IC1 + 1 + 7(N(v)) (2) because it is impossible to find a larger clique. L IC1 + 1 + x(N(v)) (3) Every vertex v such that v,degree < I best1 - (CI must -< ICI+l+k-q (4) be removed from the graph, because it cannot be a 5 lbestl (5) member of a larger clique. Inequality (4) holds because N(v) is necessarily a subset Every vertex such that v.degree JV(G)I- 2 must v 2 of Ij, and thus {Iq+l,. Ik} is a valid (k q)- be put in the clique under construction, since exclud- Ut=q+l . . , - ing it cannot produce a larger clique. coloring of N(v). Inequality (5) holds because of the assumption on q. Since one cannot find a larger clique More generally, a vertex v such that V(G)- N(v) by selecting v,one can remove it from the graph. 1 is an independent set must be put in the clique un- Even if k is too large (i.e., (Cl+IC > Ibestl) to produce der construction, since excluding it cannot produce a “normal” pruning, Theorem 1 shows that q-colorahlc a larger clique. vertices yield unsuccessful branches, and can be removed. One can force the choice of at least 2 non-neighbors This reduces the number of choice points, bui, the cf- of v in GO. In other words, the maximum clique of fectiveness of this pruning technique is its snowball cf- G is either fect. Removing vertices gives more opportunities t,o ap- ply rules a)-(d). Vertices that are removed are also un- {v} U MazClique(N(v)), colored, w ich frees some colors for their neighbors, which increases 6their own q’s, which infers more removal. Re- or moving vertices can empty an independent set, which q {q, U MazClique(N(v1) N(v~)), decreases k, which loosens the constraint on and pro- 02) n duces more removal. Eventually k becomes small ciiough where v1,v2 E V(G)- N(v)- {v}, and v2 E N(v1). to prune the recursion.

123 r cxainplcs without name [VI !E( y #back CPU schooll-nsh 385 16710 14 2414 8.16 keller4 171 9435 11 30047 51.5 sanr200-0.7 200 13868 18 20681 1 488.4 24780 brock200-1 200 14834 21 777895 2184.7 100900 112.9 san.200-0.7-2 200 13930 18 12996 93.2 p-hai300-2 300 21928 25 57761 481 .O 1211 4.21 hammingb-4 256 20864 16 4147 26.3 0.1 8 san200-0.9-1 200 17910 70 17 236823 17h 30mn 507 5.61 MA”-a.27 378 70551 126 - > 2 days

Vor cadi graph, we give: its number of vertices (IVl),it.s number of edges (!El),its clique niiiiil~er(y), thc nutnlxrof hacktracks (#back) performed to solve maxirnutn clique, and t.he CPU time in seconds 011 a 60 MI1z SuperSpnrc (85.4 Spcclnl). witllont. is t.he “rdanilard” branch-and-bound algorit,hm shown in Fig. 5, and with is Lhe improved version descril,ed in Section 4. Table 1: Solving Maximum Clique.

h notable aspect of this pruning technique is its no function Color WithlndSet(G); gain/no cost aspect. Using the SC algorithm without z 0; backtrack to find the h-coloring, the number of colors while G is not empty { I t a maximal independent set of G; that can be used to color a vertex is nothing but v’s v t ZU{I}; ‘U’S z number of unconstrained colors, i.e., 6 minus satura- G t graph induced by V(G)- I; tion number, which is computed in O(1). Using a prior- 1 itjy qurue t,hat keeps the vertices in decreasing saturation return Z: number, one can test for the removal of the vertices from t,he tail of the queue up to its head. The first failure of Figure 7: Heuristic coloring with indepcndcnt sds. thc test indicates that one can stop the whole pruning procedure. Thus if no pruning is possible, the overhead is in O(1). If T vertices can be removed (the last T ver- function FindIndSetHl (G); tices of the queue), the overhead is in O(T x IV(G)\)for I c 0; a potentially exponential benefit. while G is not empty { Experience shows that thanks to this original pruning w +- vertex of minimum degree; technique, the search space is reduced by several orders I + lu{v}; G +- graph induced by V(G)- {U) - N(v); of magnitude, drastically speeding up maximum clique 1 (Table 1). return I; On real-life examples, this pruning technique quickly lmds the algorithm to a maximum clique. Where one function FindlndSet H2 (G); previously needed about 1000 backtracks, and up to I c 0: while G is not empty { 10000 backtracks, less than 10 backtracks are now neces- ifI=0 sary to Jind (not necessarily prove) an optimum solution. U t vertex of maximum degree; else 5 w t vertex of max. removed edges, then min. degrcc; Experimental Results I t I U {v); G +- graph induced by V(G)- {U} - N(v); This section presents experiments done with real-life 1 applications, combinatorics instances, and ( artificial2) return 1: hard examples. The planar routing instances come from [6]. The other instances come from [7]. Figure 8: Color class for heuristics Hl and I!2, 5.1 Heuristic Coloring Fig. 7 shows a heuristic coloring algorithm. It consists We compared three widely used coloring heuristics3 , of adding a maximal independent set I (i.e., a saturated 111 , 112, and H3. H3 consists of forbidding any back- color class) to a coloring Z under construction, removing track in the sequential coloring SC. I from G, and iterating this process until G is empty. Heuristic HI consists of using a greedy algorithm de- 2Mycielski graphs [17] are difficult to color because their clique signed for maxzmum independent set (Fig. 8) to produce number is 2, while their chromatic number increases in problem the maximal independent sets. H1 is guaranteed to find size. Leighton graphs I141 are difficult to color because their opti- a coloring within O(n/logn) of the optimum [123. mum coloring is hidden among many suboptimal solutions. Graph coloring is not polynomially approximable within Instead of looking for a large maximal independent n’/’-‘ for any e > 0 [I]. The best known approximation ratio set, one can look for a maximal independent set that is in O(n(logIogn)’/(l~gn)~)[11]. minimizes the number of edges connected to uncolored

124 nential (Fact 1 of Section 3.2). Hi ~2 rr3 All the 600 real-life cxamplcs arc solved cxact,ly, cvcri 876the large graphs (> 6000 nodes, > 500000 cdgcs-). ‘I’his iISJ1<500.1 500 3555 12 12 16 13 12 is because they arc all I-pcrfcct, and because thcliquc MANN-a9 45 918 16 18 18 20 19 algorithm introduccd in Section 4 quickly firitls t81ic op- 111 000.1 1000 14378 20 20 a3 20 20 thcsc rcsiilt,s rll25.5 250 3838 36 36 51 39 38 timum lower bound. A way of comparing tlliatl otic m50.I c 250 30227 64 64 72 68 G5 with the state-of-the-art consists of assuming c-Jat200- 1 200 1534 12 12 15 13 15 finds a suboptimum clique (which is often the cas(: with d2rap.a.l 319 8534 61 61 63 61 63 “standard” heuristics). Assuming that one only fintls a er3n 44 176 10 10 11 11 10 clique of size y(G) - 1, most, of the cxamplcs caririo13 I)c crdr 54 336 12 12 13 13 12 solved in less than one hour, and many of thcrri rcrnain cmm 1 200 17124 126 126 137 127 126 unsolved after 2 days e.g., the scheduling cxamplcs atid cram2 250 26081 141 141 154 147 142 most of the resource aI location problcms). rram3 300 36801 162 162 177 164 lG2 JZa//000-t50-0 1000 245000 14 50 104 110 113 6 Discussion & Conclusion jla1300-20-0 300 21375 11 20 40 41 42 451 8691 30 Jpr o 12.1.2 30 35 30 30 This paper has explaincd how to improvc on graph col- lc450-15d 450 16750 15 15 31 25 25 a lc450-25a 450 8260 25 25 31 26 25 oring, which is key application in schcduling, rcso~ircc le450-25c 450 17343 25 25 38 30 28 allocation, constrained encoding, multi-layer topological le4 50-5c 450 9803 5 5 9 9 11 routing, etc. When a graph is 1-perfect, and provzrlang le450-5d 450 9757 5 5 8 10 11 that one finds a rnaxzmum clique, the coloring is easy. quecn6-6 36 290 6 7 899Despite our effort, we did not find a real-life cxamplr queen7-7 49 476 7 7 10 10 10 that is not 1-perfect. Based on this cxpcrimental facl, queenR-8 64 728 8 9 12 11 13 and thanks to an improved maximum clique computa- queen9-9 81 2112 9 10 13 12 12 tion algorithm, a sequential coloring algorithm can solvc qzleenll-11 121 3960 10 11 16 16 14 all our real-life instances exactly in a matter of scconds. queen13-13 169 6656 13 13 18 18 17 This tends to show that, in practicc, and in particrr- sanZ00-0.7-2 200 13930 18 18 20 26 23 lar for CAD applications, one can afford to solvc graph sgelq2. a. 2 182 3254 26 26 29 26 28 coloring exactly: for roughly the same timc, OIW is school1 385 19095 14 14 36 30 17 CPU schooll-nsh 352 14612 14 14 32 25 26 rewarded with an optimum result, while heuristic solu- tions are typically 10% off, and as much as 100% olf, the average 313 16710 28.5 30.2 38.5 35.7 34.8 minimum coloring. For each graph, we give: its number of vertices (IVl),its num- ber of edges (IEI),its clique number (Y), its chromatic number References (x), and thenumberofcolors obtained with heuristics H1, H2, and H3. Heuristics are 10% off, and as much as 100% off, the [l] M. Bellare, 0. Goldreich, M. Sudan, “Free bits, I’Cl’s optimum solution. and non-approximability - towards tight results”, Proc. of 36th Ann. IEEE Symp. on Foundations of Comput. Table 2: Heuristic coloring. SC~.,pp. 422-431, 1995. [2] B. Bollobiis, P. Rrdos, “Cliques in Random Graphs”, vcrticcs (Fig. 8) [14]. This heuristic, H2, reduces the Math. Proc. Camb. Phil. Soc., 80, pp. 419-427, 1976. number of conflicts with the uncolored vertices so that [3] B. Bollobis, “The Chromatic Number of Random less color classes are needed to complete the coloring. Graphs”, Combinalorica, 8-1, pp. 49-55, 1988. Table 2 compares these three heuristics. Clearly, 112 [4] D. BrBlaz, “New Methods lo Color Vertices of a Graph”, and 113 are better than H1, but none of them wins con- Comm. of the ACM, 22-4, pp. 251-256, 1979. sistently. It happens that there is a large gap between the [5] J. R. Brown, “Chromatic Scheduling and the Chromatic heuristic colorings and the exact solution, even on rcal- life examples, e.g., the scheduling problem schooll-nsh. Number Problem”, Management Sci., 19, pp. 456- 463, 1972. 5.2 Exact Coloring [SI J. Cong, M. Hossain, N. A. Sherwani, “A Provably Good Multilayer Topological Planar Routing Algorithm in IC Table 3 gives the performance of exact coloring on real- Layout Designs”, IEEE Trans. on CAD, 12-1, pp. 70-78, life application idstances (selected among more than 600 Jan. 1993. , and on combinatorics, hard, and random ex- exan’ple?bamples. he coloring algorithm is the sequential coloring [7] ftp://dimacs.rutgers.edu/pub/challenge/graph/bciicli- described in Section 3.1, using the clique produced by al- mark/, benchmark for graph coloring and clique, 1993. gorithm of Section 4 in no more than 10 backtracks. [8] D. Gajski, N. Dutt, A. Wu, S. Lin, Iligh-Level Synthesis, The combinatoric, artificial, and random examples arc Kluwer Ac. Pub., 1992. more difficult, especially when the graph is not 1-perfect: [9] M. R. Garey, D. S. Johnson, Computers and Intractabil- in that case, the algorithm has to enumerate all the op- ity: A Guide to the Theory of NP-Completeness, Ihc- timum colorings before terminating, which can be expo- man, 1979.

125 iiilnio [VI JEl y x I #back CPU name IV( IEl y x I #back CPU I scheduling queen graphs rchooll-ash 352 14612 14 14 I 11 0.25 quern5-5 25 I60 5 5 I 4 0.01 F ch. o o 11 385 19095 14 14 1 12 0.41 quem6-6 36 290 6 7 897 0.0:3 regiskr allocation gueen7-7 49 476 7 7 f852 0.07 mulsol.i.1 197 3925 49 49 2 0.10 gueen8-8 64 728 8 9 1824457 :38.89 nlrrp.i.1 253 5039 39 39 3 0.15 qseeng-9 81 2112 9 10 561222078 5h 12mn %2esp.r.l 319 8534 61 61 1 0.16 9qrmm.i.J 439 8458 55 55 0 0.17 myciel3 11 20 2 4 23 0.01 fp3ol2.1.1 496 11654 65 65 4 0.27 myciel4 23 71 2 5 539 0.02 91nhr2.1.2 557 11535 29 29 7 0.39 myciel5 47 236 2 6 191488 4.17 ’iphtrf.8.2 823 16250 30 30 4 0.67 myciel6 95 755 2 7 3287401951 35h 22mn condsct.i.1 1185 27013 54 54 7 1.33 s1asbr.i.J 1752 72265 87 87 2 3.70 Leigh t on graphs s1nrin.i.J 2337 71600 73 73 2 4.93 le4 5025a 450 8260 25 25 0 0.13 rnidnl.z.1 2408 114388 136 136 4 15.4 le4 50-25 b 450 8263 25 25 0 0.1 1 drsrco.1.J 2826 86688 117 117 3 12.4 le4 50-5c 450 9803 5 5 232 3.04 h2d.l.l 3072 228151 171 171 3 19.8 le450-5d 450 9757 5 5 171271 31.40 tw1drv.z.J 4905 338709 227 227 3 37.5 fpppp.i.J 5439 543223 212 212 1 45.5 MANN-a9 45 918 16 18 60 0.08 wana1f.z.J 6760 190975 71 71 2 39.6 hamming6-4 64 704 4 7 1517 0.20 c-jat200-1 200 1534 12 12 325 0.43 Dlanar routinnv burs 24 133 9 9 1 0.01 c-fat200-2 200 3235 24 24 0 0.41 exJ 21 77 7 7 1 0.01 e-fat500-1 500 4459 14 14 1 1.72 ex3a 44 176 10 10 1 0.01 san200-0.72 200 13930 18 18 42377 16.52 ex36 47 283 9 9 1 0.01 c-fal500-2 500 9139 26 26 1 2.63 ex3c 54 336 12 12 0 0.02 c-jat500-5 500 23191 64 64 1 5.46 ex4 b 54 298 11 11 0 0.02 c-Jat500-10 500 46627 126 126 2 4.35 rx5 64 405 9 9 I 0.01 ex56 64 427 10 10 0 0.02 DSJC125.1 125 736 4 5 2512 0.16 deul 72 763 16 16 1 0.02 DSJR500.1 500 3555 12 12 0 0.12 exam 1 200 7124 126 26 2 0.46 R125.1 125 209 5 5 0 0.02 rxamd 250 26081 141 141 10 0.96 R125.5 250 3838 36 36 41167 2.60 exam3 300 36801 162 162 6 1.45 RJ25.l~ 125 7501 46 46 0 0.13 R250.1 250 867 8 8 0 0.05 man7 548 3250 10 10 0 0.11 R250.1 c 250 30227 64 64 15 2.13 man8 858 4023 10 10 0 0.30 R1OOO.l 1000 14378 20 20 0 0.54

For each graph, we give: its number of vertices (IVl),its number of edges ([El),its clique number (y), and its chromatic number (x). Note that all the real-life examples are 1-perfect. We give the number of backtracks (#back) performed to solve the minimum coloring. The CPU time is given in seconds on a 60 MHz SuperSparc (85.4 SpecInt), and includes: reading the graph description, building the internal data structure, solving the minimum coloring problem, and finally freeing the memory.

Table 3: Coloring of real-life application graphs (left), and of hard artificial graphs (right).

[IO] M. Groetschel, L. Lovisz, A. Schrijver, “The Ellipsoid [15] G. D. Micheli, Synthesis and Optimization of Digilal Cir- Method and its Consequences in Combinatorial Opti- cuits, McGraw-Hill, 1994. mization”, Combinatorica, 1, pp. 169-197, 1981. [16] C. A. Morgenstern, Algorithms for General Graph Col- [Ill M. M. IJalld6rsson, “A still better performance guar- oring, Ph.D. thesis, Department of Computing Science, antee for approximate graph coloring” Inform. Process. University of New Mexico, Albuquerque NM, 1990. Lett., 45, pp. 19-23, 1993. [17] J: Mycielski, “Sur le Coloriage des Graphes”, Colloq. Math., 1955 [12] I). S. Johnson, “Worst-case Behavior of Graph-Coloring 3, Algorithms”, Proc. 5th Southeastern Conf. on Combi- [18] J. Peemoller, “A Correction to Brklaz’s Modification of natorics, , and Computing, pp. 513-528, Brown’s Coloring Algorithm”, Comm. of the ACM, 26, Winnipeg, 1974. pp. 595-597, 1983. [13] I,. KuEera, Combinatorial Algorithms, Adam Hilger, 1990. [14] F. T. Leighton, “A Graph Coloring Algorithm for Large Scheduling Problems”, J. Res. Nat. Bur. Standards, 84, pp. 489-506, 1979.

126