Kempe's Graph-Coloring Algorithm

Kempe's Graph-Coloring Algorithm

Kempe’s graph-coloring algorithm Andrew W. Appel Princeton University, 2016 These slides help explain Color.v, the graph-coloring chapter of Verified Functional Algorithms, a volume in the Software Foundations series. These slides are best viewed in your PDF viewer in whole-page (page-at-a-time) mode, not scrolling mode. 1 Alfred B. Kempe, 1849-1922 In 1879, tried to prove the 4-color theorem: every planar graph can be colored using at most 4 colors. f That is, any nodes connected by an edge e must have different j k b m colors. d c h g 2 Alfred B. Kempe, 1849-1922 In 1879, tried to prove the 4-color theorem: every planar graph can be colored using at most 4 colors. Failed: his proof had a bug. But in the process, proved the 5-color theorem: every planar graph can be colored using at most 5 colors. For use in this proof, he invented an algorithm for graph coloring that is still relevant today, for use in many applications such as register allocation in compilers. 3 Alfred B. Kempe, 1849-1922 In 1879, tried to prove the 4-color theorem: every planar graph can be colored using at most 4 colors. Failed: his proof had a bug. Some other guys fixed up Kempe’s buggy proof in 1976, using computers: they proved the 4-color theorem. But their proof doesn’t have applications to compilers, as far as I know. 4 Kempe’s graph-coloring algorithm To 6-color a planar graph: 1. Every planar graph has at least one vertex of degree ≤ 5. 2. Remove this vertex. 3. Color the rest of the graph with a recursive call to Kempe’s algorithm. 4. Put the vertex back. It is adjacent to at most 5 vertices, which use up at most 5 colors from your “palette.” Use the 6th color for this vertex. 5 From 6-coloring to 5-coloring That was Kempe’s simplest algorithm, to 6-color a planar graph; or in general, to K-color a graph in class C, such that (1) every graph in class C has a node of degree <K, and (2) removing a node from a graph in class C gives you another graph in class C. Kempe had two more algorithms: 5-color a planar graph 4-color a planar graph (but this algorithm had a bug) 6 Kempe’s 5-coloring algorithm To 5-color a planar graph: 1. Every planar graph has at least one vertex of degree ≤ 5. 2. Remove this vertex. 3. Color the rest of the graph with a recursive call to Kempe’s algorithm. 4. Put the vertex back. It is adjacent to at most 5 vertices. How many different colors are used in these 5 vertices? Four or less: use the fifth color for this vertex. Five: use the method of “Kempe chains”, which is beyond the scope of this discussion. 7 Kempe’s 5-coloring algorithm To 5-color a planar graph: 1. Every planar graph has at least one vertex of degree ≤ 5. We will set this algorithm aside, 2. Removeas itthis does vertex. not really concern us, 3. Color the andrest go of backthe graph to Kempe’s with a recursive call to Kempe’s simpleralgorithm. algorithm 4. Put the vertex back. It is adjacent to at most 5 vertices. How many different colors are used in these 5 vertices? Four or less: use the fifth color for this vertex. Five: use the method of “Kempe chains”, which is beyond the scope of this discussion. 8 Heuristic hack of Kempe’s algorithm To mostly K-color a graph (whether planar or not!) Is there a vertex of degree < K ? If so: Remove this vertex. Color the rest of the graph with a recursive call to the algorithm. Put the vertex back. It is adjacent to at most K-1 vertices. They use (among them) at most K-1 colors. That leaves one of your colors for this vertex. If not: Remove this vertex. Color the rest of the graph with a recursive call. Put the vertex back. It is adjacent to ≥ K vertices. How many colors do these vertices use among them? If < K : there is an unused color to use for this vertex If ≥ K: leave this vertex uncolored. 9 Heuristic hack of Kempe’s algorithm To mostly K-color a graph (whether planar or not!) Is there a vertex of degree < K ? If so: Remove this vertex. Color the rest of the graph with a recursive call to theWhat? algorithm. Put the vertex back. It is adjacent to at mostAre Kwe-1 vertices.allowed They to do use that? (among them) at most K-1 colors. That leaves one of your colors for this vertex. If not: Yes! Remove this vertex. This is an algorithm to Color the rest of the graph with a recursive“mostly call. K-color” a graph. Put the vertex back. It is adjacent to ≥ K vertices. How many colors do these vertices use among them? If < K : there is an unused color to use for this vertex If ≥ K: leave this vertex uncolored. 10 Heuristic hack of Kempe’s algorithm To mostly K-color a graph (whether planar or not!) Is there a vertex of degree < K ? If so: Remove this vertex. In the application of register allocation for compilers, Color the rest of the graph with a recursive call to the algorithm. the uncolored nodes correspond to variables that are Put the“spilled” vertex toback. memory It is adjacent instead toof atheld most in Kregisters.-1 vertices. They use (among them) at most K-1 colors. That leaves one of your colors for this vertex. Gregory Chaitin If not: This variation of Kempe’s algorithm was invented Remove this vertex. by Gregory Chaitin in 1981. Color the rest of the graph with a recursive call. Put the vertex back. It is adjacent to ≥ K vertices. How many colors do these vertices use among them? If < K : there is an unused color to use for this vertex If ≥ K: leave this vertex uncolored. 11 Example: 3-color this graph f e j k b m d h c g Stack: 12 Example: 3-color this graph f e j k b m d h c g This node has degree < 3 ; remove it! Stack: 13 Example: 3-color this graph f e j k b m d h c g Push node c on Stack: c the stack 14 Example: 3-color this graph Removing c lowers the degree f of nodes b and m; that will be helpful later! e j k b m d h c g Stack: c 15 Example: 3-color this graph f e This node has degree < 3 ; j b m remove it! k d h g Stack: c 16 Example: 3-color this graph f e This node has degree < 3 ; j b m remove it! k d h g Stack: h c 17 Example: 3-color this graph f e j b m This node k has degree < 3 ; d remove it! g Stack: h c 18 Example: 3-color this graph No node has degree < 3 Pick a node arbitrarily, f remove it, and push it on the stack e j k b m d Stack: g h c 19 Example: 3-color this graph No node has degree < 3 Pick a node arbitrarily, f remove it, and push it on the stack e j k b m d Stack: k g h c 20 Example: 3-color this graph f e j b m d This node has degree < 3 ; remove it! Stack: k g h c 21 Example: 3-color this graph f e j This node b m has degree < 3 ; remove it! Stack: d k g h c 22 Example: 3-color this graph This node f has degree < 3 ; remove it! e b m Stack: j d k g h c 23 Example: 3-color this graph e This node has degree < 3 ; remove it! b m Stack: f j d k g h c 24 Example: 3-color this graph This node b m has degree < 3 ; remove it! Stack: e f j d k g h c 25 Example: 3-color this graph This node m has degree < 3 ; remove it! Stack: b e f j d k g h c 26 Example: 3-color this graph Stack: m b e f j d k g h c 27 Now, color the nodes in stack order Find a color for this node that’s not already used in an adjacent node used in an adjacent node f e j k b m d h c g Stack: m b e f j d k g h c 28 Now, color the nodes in stack order Find a color for this node that’s not already used in an adjacent node f e j k b m d h c g Stack: m b e f j d k g h c 29 Now, color the nodes in stack order Find a color for this node that’s not already used in an adjacent node f e j k b m d h c g Stack: m b e f j d k g h c 30 Now, color the nodes in stack order Find a color for this node that’s not already used in an adjacent node f e j k b m d h c g Stack: m b e f j d k g h c 31 Now, color the nodes in stack order Find a color for this node that’s not already used in an adjacent node f e j k b m d h c g Stack: m b e f j d k g h c 32 Now, color the nodes in stack order Find a color for this node that’s not already used in an adjacent node f e j k b m d h c g Stack: m b e f j d k g h c 33 Now, color the nodes in stack order We’re about to color node k.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    72 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us