Graph Coloring
Vertex Coloring problem in VLSI routing channels Standard cells Share a track Minimize channel width- assign horizontal Metal wires to tracks.. (min # of tracks = min channel width
Vertex Coloring problem in VLSI routing channels Standard cells Minimize channel width- assign horizontal Metal wires to tracks.. (min # of tracks = min channel width
Vertex=wire edge=overlapped wires color = track R B R G B CHORDAL GRAPH
Vertex Coloring problem in register allocation channels Share a register Minimize # of registers: assign variable (lifetimes) to registers (min # of registers ) TIME increasing
Clique paritioning: edges are connected if there is no conflict (no overlapping wires, no overlapping lifetimes) R B R G B COMPLEMENT OF CHORDAL GRAPH IS COMPARABILITY GRAPH
Clique paritioning: example R B R G B
Garey & Johnson Text Instance: graph G=(V,E), positive integer K<=|V|. Question: is G K-colorable ? Solvable in polynomial time for K=2, NP- complete for K>=3. General problem solvable in polynomial time for comparability graphs, chordal graphs, and others.
Also same for clique partitioning Graph G=(V,E), K<=|V| Question : can vertices of G be partitioned into k<=K disjoint sets V1, V2,…Vk such that for 1<=i<=k the subgraph induced by Vi is a complete graph?
abab cdcd a b d c ? In our application, our graphs are always chordal ! (in channel routing problem)
Register allocation in loops coloring of a circular arc graph which is NP-complete a b d c ? LOOP- variable c is defined in loop iteration i and used in the next loop iteration i+1 Time increasing c ? LOOP
Channel routing is still a hard problem due to the vertical constraints Which we cannot accommodate in our graph theory formulation (which Only looks at horizontal constraints i.e. horizontal intervals) top down view
Berge’s Algorithm(contract- connect) for Vertex Coloring a b c e d Consider a,b a b c e d a b c e d
ab c e d b c e d a b c e d a b c e d a
b c e d a b c e d a b c e d a be c e d a b c e d a c d a SMALLEST Complete graph
Consider a,b b c e d a be c e d a
adG eb BcBc R b Ge d a Ra Gb Bc Ge Rd b c e d Ra