Graph coloring
In graph theory, graph coloring is a methodic assignment of labels traditionally called "colors" to elements of a graph. The assignment is subject to certain constraints, such as that no two adjacent elements have the same color. Graph coloring is a special case of graph labeling. In its simplest form, it is a way of coloring the vertices of a graph such that no two adjacent vertices are of the same color; this is called a vertex coloring. Similarly, an edge coloring assigns a color to each edge so that no two adjacent edges are of the same color, and a face coloring of a planar graph assigns a color to each face so that no two faces that share a boundary have the same color.
Vertex coloring is often used to introduce graph coloring problems, since other coloring problems can be transformed into a vertex coloring instance. For example, an edge coloring of a graph is just a vertex coloring of its line graph, and a face coloring of a plane graph is just a vertex coloring of its dual. However, non-vertex coloring problems are often stated and studied as-is. This is partly pedagogical, and partly because some problems are best studied in their non-vertex form, as in the case of edge coloring.
The convention of using colors originates from coloring the countries in a political map, where each face is literally colored. This was generalized to coloring the faces of a graph embedded in the plane. By planar duality it became coloring the vertices, and in this form it generalizes to all graphs. In mathematical and computer representations, it is typical to use the first few positive or non-negative integers as the "colors". In general, one can use any finite set as the "color set". The nature of the coloring problem depends on the number of colors but not on what they are.
Graph coloring enjoys many practical applications as well as theoretical challenges. Beside the classical types of problems, different limitations can also be set on the graph, or on the way a color is assigned, or even on the color itself. It has even reached popularity with the general public in the form of the popular number puzzle Sudoku. Graph coloring is still a very active field of research.
History
The first results about graph coloring deal almost exclusively with planar graphs in the form of map coloring. While trying to color a map of the counties of England in 1852, Francis Guthrie postulated the four color conjecture, noting that four colors were sufficient to color the map so that no regions sharing a common border received the same color. Guthrie's brother Frederick passed on the question to his mathematics teacher Augustus De Morgan at University College, who mentioned it in a letter to William Hamilton in 1852. Arthur Cayley raised the problem at a meeting of the London Mathematical Society in 1879. The same year, Alfred Kempe published a paper that claimed to establish the result, and for a decade the four color problem was considered solved. For his accomplishment Kempe was elected a Fellow of the Royal Society and later President of the London Mathematical Society.In 1890, Percy John Heawood pointed out that Kempe's argument was wrong. However, in that paper he proved the five color theorem, saying that every planar map can be colored with no more than five colors, using ideas of Kempe. In the following century, a vast amount of work was done and theories were developed to reduce the number of colors to four, until the four color theorem was finally proved in 1976 by Kenneth Appel and Wolfgang Haken. The proof went back to the ideas of Heawood and Kempe and largely disregarded the intervening developments. The proof of the four color theorem is noteworthy, aside from its solution of a century-old problem, for being the first major computer-aided proof.
In 1912, George David Birkhoff introduced the chromatic polynomial to study the coloring problem, which was generalised to the Tutte polynomial by W. T. Tutte, both of which are important invariants in algebraic graph theory. Kempe had already drawn attention to the general, non-planar case in 1879, and many results on generalisations of planar graph coloring to surfaces of higher order followed in the early 20th century.
In 1960, Claude Berge formulated another conjecture about graph coloring, the strong perfect graph conjecture, originally motivated by an information-theoretic concept called the zero-error capacity of a graph introduced by Shannon. The conjecture remained unresolved for 40 years, until it was established as the celebrated strong perfect graph theorem by Chudnovsky, Robertson, Seymour, and Thomas in 2002.
Graph coloring has been studied as an algorithmic problem since the early 1970s: the chromatic number problem is one of Karp's 21 NP-complete problems from 1972, and at approximately the same time various exponential-time algorithms were developed based on backtracking and on the deletion-contraction recurrence of. One of the major applications of graph coloring, register allocation in compilers, was introduced in 1981.
Definition and terminology
Vertex coloring
When used without any qualification, a coloring of a graph almost always refers to a proper vertex coloring, namely a labeling of the graph's vertices with colors such that no two vertices sharing the same edge have the same color. Since a vertex with a loop could never be properly colored, it is understood that graphs in this context are loopless.The terminology of using colors for vertex labels goes back to map coloring. Labels like red and blue are only used when the number of colors is small, and normally it is understood that the labels are drawn from the integers.
A coloring using at most colors is called a -coloring. The smallest number of colors needed to color a graph is called its chromatic number, and is often denoted. Sometimes is used, since is also used to denote the Euler characteristic of a graph. A graph that can be assigned a -coloring is -colorable, and it is -chromatic if its chromatic number is exactly. A subset of vertices assigned to the same color is called a color class; every such class forms an independent set. Thus, a -coloring is the same as a partition of the vertex set into independent sets, and the terms -partite and -colorable have the same meaning.
Chromatic polynomial
The chromatic polynomial counts the number of ways a graph can be colored using some of a given number of colors. For example, using three colors, the graph in the adjacent image can be colored in 12 ways. With only two colors, it cannot be colored at all. With four colors, it can be colored in 24 + 4 × 12 = 72 ways: using all four colors, there are 4! = 24 valid colorings ; and for every choice of three of the four colors, there are 12 valid 3-colorings. So, for the graph in the example, a table of the number of valid colorings would start like this:| Available colors | 1 | 2 | 3 | 4 | ... |
| Number of colorings | 0 | 0 | 12 | 72 | ... |
The chromatic polynomial is a function that counts the number of -colorings of. As the name indicates, for a given the function is indeed a polynomial in. For the example graph,, and indeed.
The chromatic polynomial includes more information about the colorability of than does the chromatic number. Indeed, is the smallest positive integer that is not a zero of the chromatic polynomial.
| Triangle | |
| Complete graph | |
| Tree with vertices | |
| Cycle | |
| Petersen graph |
Edge coloring
An edge coloring of a graph is a proper coloring of the edges, meaning an assignment of colors to edges so that no vertex is incident to two edges of the same color. An edge coloring with colors is called a -edge-coloring and is equivalent to the problem of partitioning the edge set into matchings. The smallest number of colors needed for an edge coloring of a graph is the chromatic index, or edge chromatic number,. A Tait coloring is a 3-edge coloring of a cubic graph. The four color theorem is equivalent to the assertion that every planar cubic bridgeless graph admits a Tait coloring.Total coloring
Total coloring is a type of coloring on the vertices and edges of a graph. When used without any qualification, a total coloring is always assumed to be proper in the sense that no adjacent vertices, no adjacent edges, and no edge and its end-vertices are assigned the same color. The total chromatic number of a graph is the fewest colors needed in any total coloring of.Face coloring
For a graph with a strong embedding on a surface, the face coloring is the dual of the vertex coloring problem.Tutte's flow theory
For a graph with a strong embedding on an orientable surface, William T. Tutte discovered that if the graph is -face-colorable then admits a nowhere-zero -flow. The equivalence holds if the surface is sphere.Unlabeled coloring
An unlabeled coloring of a graph is an orbit of a coloring under the action of the automorphism group of the graph. The colors remain labeled; it is the graph that is unlabeled.There is an analogue of the chromatic polynomial which counts the number of unlabeled colorings of a graph from a given finite color set.
If we interpret a coloring of a graph on vertices as a vector in, the action of an automorphism is a permutation of the coefficients in the coloring vector.
Properties
Upper bounds on the chromatic number
Assigning distinct colors to distinct vertices always yields a proper coloring, soThe only graphs that can be 1-colored are edgeless graphs. A complete graph of n vertices requires colors. In an optimal coloring there must be at least one of the graph's m edges between every pair of color classes, so
More generally a family of graphs is -bounded if there is some function such that the graphs in can be colored with at most colors, where is the clique number of. For the family of the perfect graphs this function is.
The 2-colorable graphs are exactly the bipartite graphs, including trees and forests.
By the four color theorem, every planar graph can be 4-colored.
A greedy coloring shows that every graph can be colored with one more color than the maximum vertex degree,
Complete graphs have and, and odd cycles have and, so for these graphs this bound is best possible. In all other cases, the bound can be slightly improved; Brooks' theorem states that