exact coloring of real-life graphs is easy

Post on 15-Apr-2017

191 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Exact Coloring of Real-Life Graphs is Easy

34th DAC, June 10, 1997

Olivier CoudertSynopsys, Inc.

Summary

Introduction

Why is Coloring Difficult?

Maximum Clique

Experiments & Conclusion

Graph Coloring

|clique| |color|

Graph Coloring Scheduling Microcode optimization Register allocation Resource sharing State encoding Planar routing Frequency assignment Network optimization ....

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

Summary

Introduction

Why is Coloring Difficult?

Maximum Clique

Experiments & Conclusion

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

|clique| |color|

|clique| |color|

|clique| |color|

Sequential ColoringFind a clique

Sequential ColoringColor the clique

colors

Sequential ColoringColor the remaining vertices one by one

colors

Sequential ColoringBacktrack to look for a better solution

colors

Sequential ColoringBacktrack to look for a better solution

colors

Sequential ColoringBacktrack to look for a better solution

colors

Sequential ColoringBacktrack to look for a better solution

colors

Sequential ColoringBacktrack to look for a better solution

colors

Sequential ColoringBacktrack to look for a better solution

colors

Sequential ColoringBacktrack to look for a better solution

colors

Sequential ColoringBacktrack to look for a better solution

colors

Sequential ColoringBacktrack to look for a better solution

colors

Sequential ColoringBacktrack to look for a better solution

colors

Sequential Coloringetc...Exhaustively enumerate the colorings

Sequential Coloring

EXP

Sequential Coloring

Use a bound to prunethe search space

Branch-and-Bound

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

Branch-and-bound with aunique, static, lower bound

Sequential Coloring

Consequences in General...

If |MaxClique| |MinColor|, one has to enumerate all colorings before terminating

Fact 1:

Almost all graphs satisfy|MaxClique| |MinColor|

Fact 2:

…But in Practice

Real-life graphs appear to be 1-perfect, i.e.,|MaxClique| =|MinColor|

Fact 3:

Consequence:

To color real-life graphs, find a maximum clique first.

Sequential ColoringWhat if we find the maximum clique?

Sequential ColoringColor the clique

Sequential ColoringColor the remaining vertices one by one

Sequential Coloring

size of the clique = 4number of colors = 4

Here, no backtrack is needed

Sequential Coloring

size of the clique = number of colors

Summary

Introduction

Why is Coloring Difficult?

Maximum Clique

Experiments & Conclusion

Maximum CliqueBranch-and-bound

Lower bound: a coloring

|clique| |color|

q-Color Pruning

further pruneTakes advantage of a coloring to the search spacefurther prune

search space reduced by x100

clique = 3

Wait!

clique = 3

clique = 3

clique = 3 color = 4

clique = 3 color = 4

q color clique

clique = 3 color = 4

q 4 3

clique = 3 color = 4

q 2

clique = 3 color = 4 q = 2

clique = 3 color = 4 q = 2

clique = 3 color = 4 q = 2

clique = 3 color = 4 q = 2

clique = 3 color = 4 q = 2

clique = 3 color = 4 q = 2

clique = 3 color = 4 q = 2

clique = 3 color = 4 q = 2

clique = 3 color = 4 q = 2

clique = 3 color = 4 q = 2

Solving Max. Clique

1

10

100

1000

10000

100000

1000000

withoutwith

> 11 days

1 sec

2mn

15mn

3h

10 sec

1 day

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

Summary

Introduction

Why is Coloring Difficult?

Maximum Clique

Experiments & Conclusion

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

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

Conclusion

One can color real life graphs exactly with no more time

than heuristics

Thank you!

top related