Exact coloring of real-life graphs is easy
-
Upload
olivier-coudert -
Category
Software
-
view
191 -
download
0
Transcript of Exact coloring of real-life graphs is easy
![Page 1: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/1.jpg)
Exact Coloring of Real-Life Graphs is Easy
34th DAC, June 10, 1997
Olivier CoudertSynopsys, Inc.
![Page 2: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/2.jpg)
Summary
Introduction
Why is Coloring Difficult?
Maximum Clique
Experiments & Conclusion
![Page 3: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/3.jpg)
Graph Coloring
|clique| |color|
![Page 4: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/4.jpg)
Graph Coloring Scheduling Microcode optimization Register allocation Resource sharing State encoding Planar routing Frequency assignment Network optimization ....
![Page 5: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/5.jpg)
Graph Coloring
Graph coloring is NP-complete Graph coloring is not polynomially approximable
Heuristics coloring can be arbitrarily farfrom the optimum solution Heuristics coloring in practice is 10% off,up to 100% off, the optimum solution
![Page 6: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/6.jpg)
Summary
Introduction
Why is Coloring Difficult?
Maximum Clique
Experiments & Conclusion
![Page 7: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/7.jpg)
blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blahblah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blahblah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blahblah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blahblah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blahblah blah blah blah blah blah b |clique| |color| blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blahblah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blahblah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blahblah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blahblah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blahblah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blahblah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blahblah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
![Page 8: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/8.jpg)
|clique| |color|
![Page 9: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/9.jpg)
|clique| |color|
![Page 10: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/10.jpg)
|clique| |color|
![Page 11: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/11.jpg)
Sequential ColoringFind a clique
![Page 12: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/12.jpg)
Sequential ColoringColor the clique
colors
![Page 13: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/13.jpg)
Sequential ColoringColor the remaining vertices one by one
colors
![Page 14: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/14.jpg)
Sequential ColoringBacktrack to look for a better solution
colors
![Page 15: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/15.jpg)
Sequential ColoringBacktrack to look for a better solution
colors
![Page 16: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/16.jpg)
Sequential ColoringBacktrack to look for a better solution
colors
![Page 17: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/17.jpg)
Sequential ColoringBacktrack to look for a better solution
colors
![Page 18: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/18.jpg)
Sequential ColoringBacktrack to look for a better solution
colors
![Page 19: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/19.jpg)
Sequential ColoringBacktrack to look for a better solution
colors
![Page 20: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/20.jpg)
Sequential ColoringBacktrack to look for a better solution
colors
![Page 21: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/21.jpg)
Sequential ColoringBacktrack to look for a better solution
colors
![Page 22: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/22.jpg)
Sequential ColoringBacktrack to look for a better solution
colors
![Page 23: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/23.jpg)
Sequential ColoringBacktrack to look for a better solution
colors
![Page 24: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/24.jpg)
Sequential Coloringetc...Exhaustively enumerate the colorings
![Page 25: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/25.jpg)
Sequential Coloring
EXP
![Page 26: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/26.jpg)
Sequential Coloring
![Page 27: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/27.jpg)
Use a bound to prunethe search space
Branch-and-Bound
![Page 28: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/28.jpg)
Sequential Coloring
Find a cliqueColor the cliqueIf all vertex are colored, new coloringIf |clique| = #used colors, abort
Select an uncolored vertexColor it w/o conflictIf it is not possible, backtrack
![Page 29: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/29.jpg)
Branch-and-bound with aunique, static, lower bound
Sequential Coloring
![Page 30: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/30.jpg)
Consequences in General...
If |MaxClique| |MinColor|, one has to enumerate all colorings before terminating
Fact 1:
Almost all graphs satisfy|MaxClique| |MinColor|
Fact 2:
![Page 31: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/31.jpg)
…But in Practice
Real-life graphs appear to be 1-perfect, i.e.,|MaxClique| =|MinColor|
Fact 3:
![Page 32: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/32.jpg)
Consequence:
To color real-life graphs, find a maximum clique first.
![Page 33: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/33.jpg)
Sequential ColoringWhat if we find the maximum clique?
![Page 34: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/34.jpg)
Sequential ColoringColor the clique
![Page 35: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/35.jpg)
Sequential ColoringColor the remaining vertices one by one
![Page 36: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/36.jpg)
Sequential Coloring
size of the clique = 4number of colors = 4
![Page 37: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/37.jpg)
Here, no backtrack is needed
Sequential Coloring
size of the clique = number of colors
![Page 38: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/38.jpg)
Summary
Introduction
Why is Coloring Difficult?
Maximum Clique
Experiments & Conclusion
![Page 39: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/39.jpg)
Maximum CliqueBranch-and-bound
Lower bound: a coloring
|clique| |color|
![Page 40: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/40.jpg)
q-Color Pruning
further pruneTakes advantage of a coloring to the search spacefurther prune
search space reduced by x100
![Page 41: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/41.jpg)
![Page 42: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/42.jpg)
![Page 43: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/43.jpg)
![Page 44: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/44.jpg)
![Page 45: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/45.jpg)
clique = 3
![Page 46: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/46.jpg)
Wait!
clique = 3
![Page 47: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/47.jpg)
clique = 3
![Page 48: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/48.jpg)
clique = 3 color = 4
![Page 49: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/49.jpg)
clique = 3 color = 4
q color clique
![Page 50: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/50.jpg)
clique = 3 color = 4
q 4 3
![Page 51: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/51.jpg)
clique = 3 color = 4
q 2
![Page 52: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/52.jpg)
clique = 3 color = 4 q = 2
![Page 53: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/53.jpg)
clique = 3 color = 4 q = 2
![Page 54: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/54.jpg)
clique = 3 color = 4 q = 2
![Page 55: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/55.jpg)
clique = 3 color = 4 q = 2
![Page 56: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/56.jpg)
clique = 3 color = 4 q = 2
![Page 57: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/57.jpg)
clique = 3 color = 4 q = 2
![Page 58: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/58.jpg)
clique = 3 color = 4 q = 2
![Page 59: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/59.jpg)
clique = 3 color = 4 q = 2
![Page 60: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/60.jpg)
clique = 3 color = 4 q = 2
![Page 61: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/61.jpg)
clique = 3 color = 4 q = 2
![Page 62: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/62.jpg)
![Page 63: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/63.jpg)
![Page 64: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/64.jpg)
Solving Max. Clique
1
10
100
1000
10000
100000
1000000
withoutwith
> 11 days
1 sec
2mn
15mn
3h
10 sec
1 day
![Page 65: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/65.jpg)
As a Heuristic:
q-color pruning finds a maximum clique in less than 10 backtracks,
where 1000 backtracks, and up to 10000 backtracks, were previously necessary
![Page 66: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/66.jpg)
Summary
Introduction
Why is Coloring Difficult?
Maximum Clique
Experiments & Conclusion
![Page 67: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/67.jpg)
Facts
Real-life graphs seem to be 1-perfect
1-perfect graphs are easy to color,providing that one finds a maximum clique
The maximum clique algorithm quickly finds the optimum lower bound
![Page 68: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/68.jpg)
Experiments
> 600 real-life examples in scheduling, register allocation, planar routing, frequency assignment
They are all 1-perfect graphs
Colored exactly in seconds, while heuristics are10% off on average, up to 100% off
![Page 69: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/69.jpg)
Conclusion
One can color real life graphs exactly with no more time
than heuristics
![Page 70: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/70.jpg)
Thank you!
![Page 71: Exact coloring of real-life graphs is easy](https://reader036.fdocuments.net/reader036/viewer/2022062523/587bd43e1a28ab834d8b4ca5/html5/thumbnails/71.jpg)