Vizing's theorem
Template:Short description Template:CS1 config In graph theory, Vizing's theorem states that every simple undirected graph may be edge colored using a number of colors that is at most one larger than the maximum degree ΔScript error: No such module "Check for unknown parameters". of the graph. At least ΔScript error: No such module "Check for unknown parameters". colors are always necessary, so the undirected graphs may be partitioned into two classes: "class one" graphs for which ΔScript error: No such module "Check for unknown parameters". colors suffice, and "class two" graphs for which Δ + 1Script error: No such module "Check for unknown parameters". colors are necessary. A more general version of Vizing's theorem states that every undirected multigraph without loops can be colored with at most Δ+µScript error: No such module "Check for unknown parameters". colors, where µScript error: No such module "Check for unknown parameters". is the multiplicity of the multigraph.[1] The theorem is named for Vadim G. Vizing who published it in 1964.
Discovery
The theorem discovered by Soviet mathematician Vadim G. Vizing was published in 1964 when Vizing was working in Novosibirsk[2][3] and became known as Vizing's theorem. Indian mathematician R. P. Gupta independently discovered the theorem, while undertaking his doctorate (1965-1967).[4][5]
Examples
When Δ = 1Script error: No such module "Check for unknown parameters"., the graph Template:Mvar must itself be a matching, with no two edges adjacent, and its edge chromatic number is one. That is, all graphs with Δ(G) = 1Script error: No such module "Check for unknown parameters". are of class one.
When Δ = 2Script error: No such module "Check for unknown parameters"., the graph Template:Mvar must be a disjoint union of paths and cycles. If all cycles are even, they can be 2-edge-colored by alternating the two colors around each cycle. However, if there exists at least one odd cycle, then no 2-edge-coloring is possible. That is, a graph with Δ = 2Script error: No such module "Check for unknown parameters". is of class one if and only if it is bipartite.
Proof
This proof is inspired by Script error: No such module "Footnotes"..[6]
Let G = (V, E)Script error: No such module "Check for unknown parameters". be a simple undirected graph. We proceed by induction on mScript error: No such module "Check for unknown parameters"., the number of edges. If the graph is empty, the theorem trivially holds. Let m > 0Script error: No such module "Check for unknown parameters". and suppose a proper (Δ+1)Script error: No such module "Check for unknown parameters".-edge-coloring exists for all G − xyScript error: No such module "Check for unknown parameters". where xy ∈ EScript error: No such module "Check for unknown parameters"..
We say that color α ∈ {1,...,Δ+1Script error: No such module "Check for unknown parameters".} is missing in x ∈ VScript error: No such module "Check for unknown parameters". with respect to proper (Δ+1)Script error: No such module "Check for unknown parameters".-edge-coloring cScript error: No such module "Check for unknown parameters". if c(xy) ≠ αScript error: No such module "Check for unknown parameters". for all y ∈ N(x)Script error: No such module "Check for unknown parameters".. Also, let α/βScript error: No such module "Check for unknown parameters".-path from xScript error: No such module "Check for unknown parameters". denote the unique maximal path starting in xScript error: No such module "Check for unknown parameters". with αScript error: No such module "Check for unknown parameters".-colored edge and alternating the colors of edges (the second edge has color βScript error: No such module "Check for unknown parameters"., the third edge has color αScript error: No such module "Check for unknown parameters". and so on), its length can be 0Script error: No such module "Check for unknown parameters".. Note that if cScript error: No such module "Check for unknown parameters". is a proper (Δ+1)Script error: No such module "Check for unknown parameters".-edge-coloring of GScript error: No such module "Check for unknown parameters". then every vertex has a missing color with respect to cScript error: No such module "Check for unknown parameters"..
Suppose that no proper (Δ+1)Script error: No such module "Check for unknown parameters".-edge-coloring of GScript error: No such module "Check for unknown parameters". exists. This is equivalent to this statement:
- (1) Let xy ∈ EScript error: No such module "Check for unknown parameters". and cScript error: No such module "Check for unknown parameters". be arbitrary proper (Δ+1)Script error: No such module "Check for unknown parameters".-edge-coloring of G − xyScript error: No such module "Check for unknown parameters". and αScript error: No such module "Check for unknown parameters". be missing from xScript error: No such module "Check for unknown parameters". and βScript error: No such module "Check for unknown parameters". be missing from yScript error: No such module "Check for unknown parameters". with respect to cScript error: No such module "Check for unknown parameters".. Then the α/βScript error: No such module "Check for unknown parameters".-path from yScript error: No such module "Check for unknown parameters". ends in xScript error: No such module "Check for unknown parameters"..
This is equivalent, because if (1) doesn't hold, then we can interchange the colors αScript error: No such module "Check for unknown parameters". and βScript error: No such module "Check for unknown parameters". on the α/βScript error: No such module "Check for unknown parameters".-path and set the color of xyScript error: No such module "Check for unknown parameters". to be αScript error: No such module "Check for unknown parameters"., thus creating a proper (Δ+1)Script error: No such module "Check for unknown parameters".-edge-coloring of GScript error: No such module "Check for unknown parameters". from cScript error: No such module "Check for unknown parameters".. The other way around, if a proper (Δ+1)Script error: No such module "Check for unknown parameters".-edge-coloring exists, then we can delete xyScript error: No such module "Check for unknown parameters"., restrict the coloring and (1) won't hold either.
Now, let xy0 ∈ EScript error: No such module "Check for unknown parameters". and c0Script error: No such module "Check for unknown parameters". be a proper (Δ+1)Script error: No such module "Check for unknown parameters".-edge-coloring of G − xy0Script error: No such module "Check for unknown parameters". and αScript error: No such module "Check for unknown parameters". be missing in xScript error: No such module "Check for unknown parameters". with respect to c0Script error: No such module "Check for unknown parameters".. We define y0,...,ykScript error: No such module "Check for unknown parameters". to be a maximal sequence of neighbours of xScript error: No such module "Check for unknown parameters". such that c0(xyi)Script error: No such module "Check for unknown parameters". is missing in yi−1Script error: No such module "Check for unknown parameters". with respect to c0Script error: No such module "Check for unknown parameters". for all 0 < i ≤ kScript error: No such module "Check for unknown parameters"..
We define colorings c1,...,ckScript error: No such module "Check for unknown parameters". as
- ci(xyj)=c0(xyj+1)Script error: No such module "Check for unknown parameters". for all 0 ≤ j < iScript error: No such module "Check for unknown parameters".,
- ci(xyi)Script error: No such module "Check for unknown parameters". not defined,
- ci(e)=c0(e)Script error: No such module "Check for unknown parameters". otherwise.
Then ciScript error: No such module "Check for unknown parameters". is a proper (Δ+1)Script error: No such module "Check for unknown parameters".-edge-coloring of G − xyiScript error: No such module "Check for unknown parameters". due to definition of y0,...,ykScript error: No such module "Check for unknown parameters".. Also, note that the missing colors in xScript error: No such module "Check for unknown parameters". are the same with respect to ciScript error: No such module "Check for unknown parameters". for all 0 ≤ i ≤ kScript error: No such module "Check for unknown parameters"..
Let βScript error: No such module "Check for unknown parameters". be the color missing in ykScript error: No such module "Check for unknown parameters". with respect to c0Script error: No such module "Check for unknown parameters"., then βScript error: No such module "Check for unknown parameters". is also missing in ykScript error: No such module "Check for unknown parameters". with respect to ciScript error: No such module "Check for unknown parameters". for all 0 ≤ i ≤ kScript error: No such module "Check for unknown parameters".. Note that βScript error: No such module "Check for unknown parameters". cannot be missing in xScript error: No such module "Check for unknown parameters"., otherwise we could easily extend ckScript error: No such module "Check for unknown parameters"., therefore an edge with color βScript error: No such module "Check for unknown parameters". is incident to xScript error: No such module "Check for unknown parameters". for all cjScript error: No such module "Check for unknown parameters".. From the maximality of kScript error: No such module "Check for unknown parameters"., there exists 1 ≤ i < kScript error: No such module "Check for unknown parameters". such that c0(xyi) = βScript error: No such module "Check for unknown parameters".. From the definition of c1,...,ckScript error: No such module "Check for unknown parameters". this holds:
- c0(xyi) = ci−1(xyi) = ck(xyi−1) = βScript error: No such module "Check for unknown parameters".
Let PScript error: No such module "Check for unknown parameters". be the α/βScript error: No such module "Check for unknown parameters".-path from ykScript error: No such module "Check for unknown parameters". with respect to ckScript error: No such module "Check for unknown parameters".. From (1), PScript error: No such module "Check for unknown parameters". has to end in xScript error: No such module "Check for unknown parameters".. But αScript error: No such module "Check for unknown parameters". is missing in xScript error: No such module "Check for unknown parameters"., so it has to end with an edge of color βScript error: No such module "Check for unknown parameters".. Therefore, the last edge of PScript error: No such module "Check for unknown parameters". is yi−1xScript error: No such module "Check for unknown parameters".. Now, let P' Script error: No such module "Check for unknown parameters". be the α/βScript error: No such module "Check for unknown parameters".-path from yi−1Script error: No such module "Check for unknown parameters". with respect to ci−1Script error: No such module "Check for unknown parameters".. Since P' Script error: No such module "Check for unknown parameters". is uniquely determined and the inner edges of PScript error: No such module "Check for unknown parameters". are not changed in c0,...,ckScript error: No such module "Check for unknown parameters"., the path P' Script error: No such module "Check for unknown parameters". uses the same edges as PScript error: No such module "Check for unknown parameters". in reverse order and visits ykScript error: No such module "Check for unknown parameters".. The edge leading to ykScript error: No such module "Check for unknown parameters". clearly has color αScript error: No such module "Check for unknown parameters".. But βScript error: No such module "Check for unknown parameters". is missing in ykScript error: No such module "Check for unknown parameters"., so P' Script error: No such module "Check for unknown parameters". ends in ykScript error: No such module "Check for unknown parameters".. Which is a contradiction with (1) above.
Classification of graphs
Several authors have provided additional conditions that classify some graphs as being of class one or class two, but do not provide a complete classification. For instance, if the vertices of the maximum degree ΔScript error: No such module "Check for unknown parameters". in a graph Template:Mvar form an independent set, or more generally if the induced subgraph for this set of vertices is a forest, then Template:Mvar must be of class one.[7]
Script error: No such module "Footnotes". showed that almost all graphs are of class one. That is, in the Erdős–Rényi model of random graphs, in which all Template:Mvar-vertex graphs are equally likely, let p(n)Script error: No such module "Check for unknown parameters". be the probability that an Template:Mvar-vertex graph drawn from this distribution is of class one; then p(n)Script error: No such module "Check for unknown parameters". approaches one in the limit as Template:Mvar goes to infinity.[8] For more precise bounds on the rate at which p(n)Script error: No such module "Check for unknown parameters". converges to one, see Script error: No such module "Footnotes"..[9]
The general classification problem of graphs into class one or class two was shown in 1981 to be NP-complete.[10]
Planar graphs
Script error: No such module "Footnotes". showed that a planar graph is of class one if its maximum degree is at least eight. In contrast, he observed that for any maximum degree in the range from two to five, there exist planar graphs of class two. For degree two, any odd cycle is such a graph, and for degree three, four, and five, these graphs can be constructed from platonic solids by replacing a single edge by a path of two adjacent edges.
In Vizing's planar graph conjecture, Script error: No such module "Footnotes". states that all simple, planar graphs with maximum degree six or seven are of class one, closing the remaining possible cases. Independently, Script error: No such module "Footnotes". and Script error: No such module "Footnotes". partially proved Vizing's planar graph conjecture by showing that all planar graphs with maximum degree seven are of class one.[11][12] Thus, the only case of the conjecture that remains unsolved is that of maximum degree six. This conjecture has implications for the total coloring conjecture.
The planar graphs of class two constructed by subdivision of the platonic solids are not regular: they have vertices of degree two as well as vertices of higher degree. The four color theorem (proved by Script error: No such module "Footnotes".) on vertex coloring of planar graphs,[13] is equivalent to the statement that every bridgeless 3-regular planar graph is of class one.[14]
Graphs on nonplanar surfaces
In 1969, Branko Grünbaum conjectured that every 3-regular graph with a polyhedral embedding on any two-dimensional oriented manifold such as a torus must be of class one. In this context, a polyhedral embedding is a graph embedding such that every face of the embedding is topologically a disk and such that the dual graph of the embedding is simple, with no self-loops or multiple adjacencies. If true, this would be a generalization of the four color theorem, which was shown by Tait to be equivalent to the statement that 3-regular graphs with a polyhedral embedding on a sphere are of class one. However, Script error: No such module "Footnotes". showed the conjecture to be false by finding snarks that have polyhedral embeddings on high-genus orientable surfaces.[15] Based on this construction, he also showed that it is NP-complete to tell whether a polyhedrally embedded graph is of class one.[16]
Algorithms
Script error: No such module "Labelled list hatnote".
As the general classification problem, into either class one or class two, is NP-complete, there is no hope for a polynomial-time algorithm for best edge coloring. However, already Vizing's original proof of his theorem is algorithmic, describing a polynomial-time algorithm for coloring the edges of any graph with Δ + 1Script error: No such module "Check for unknown parameters". colors, where ΔScript error: No such module "Check for unknown parameters". is the maximum degree of the graph. That is, the algorithm uses the optimal number of colors for graphs of class two, and uses at most one more color than necessary for all graphs: it starts with an uncolored graph, and then repeatedly finds a way of recoloring the graph in order to increase the number of colored edges by one. The algorithm thus colors the edges, with each such recoloring taking time, for a total time-complexity of .
Script error: No such module "Footnotes". describe an algorithm following the same strategy as Vizing's original one. More specifically, suppose that uvScript error: No such module "Check for unknown parameters". is an uncolored edge in a partially colored graph. The algorithm of Misra and Gries may be interpreted as constructing a directed pseudoforest Template:Mvar (a graph in which each vertex has at most one outgoing edge) on the neighbors of Template:Mvar: for each neighbor Template:Mvar of Template:Mvar, the algorithm finds a color Template:Mvar that is not used by any of the edges incident to Template:Mvar, finds the vertex Template:Mvar (if it exists) for which edge Template:Mvar has color Template:Mvar, and adds Template:Mvar as an edge to Template:Mvar. There are two cases:
- If the pseudoforest Template:Mvar constructed in this way contains a path from Template:Mvar to a vertex Template:Mvar that has no outgoing edges in Template:Mvar, then there is a color Template:Mvar that is available both at Template:Mvar and Template:Mvar. Recoloring edge Template:Mvar with color Template:Mvar allows the remaining edge colors to be shifted one step along this path: for each vertex Template:Mvar in the path, edge Template:Mvar takes the color that was previously used by the successor of Template:Mvar in the path. This leads to a new coloring that includes edge Template:Mvar.[17]
- If, on the other hand, the path starting from Template:Mvar in the pseudoforest Template:Mvar leads to a cycle, let Template:Mvar be the neighbor of Template:Mvar at which the path joins the cycle, let Template:Mvar be the color of edge Template:Mvar, and let Template:Mvar be a color that is not used by any of the edges at vertex Template:Mvar. Then swapping colors Template:Mvar and Template:Mvar on a Kempe chain either breaks the cycle or the edge on which the path joins the cycle, leading to the previous case.[17]
With some simple data structures to keep track of the colors that are used and available at each vertex, the construction of Template:Mvar and the recoloring steps of the algorithm can all be implemented in time O(n)Script error: No such module "Check for unknown parameters"., where Template:Mvar is the number of vertices in the input graph. Since these steps need to be repeated Template:Mvar times, with each repetition increasing the number of colored edges by one, the total time is O(mn)Script error: No such module "Check for unknown parameters"..[17]
In an unpublished technical report, Script error: No such module "Footnotes". claimed a faster time bound for the same problem of coloring with Δ + 1Script error: No such module "Check for unknown parameters". colors.[18] The same bound also appears in a 1982 paper by Arjomandi[19]
In 2024, several improved algorithms were developed, culminating with a probabilistic quasilinear time algorithm, having time complexity.[20][21]
History
In both Script error: No such module "Footnotes". and Script error: No such module "Footnotes"., Vizing mentions that his work was motivated by a theorem of Script error: No such module "Footnotes".[22] showing that multigraphs could be colored with at most (3/2)ΔScript error: No such module "Check for unknown parameters". colors.[23][24] Although Vizing's theorem is now standard material in many graph theory textbooks, Vizing had trouble publishing the result initially, and his paper on it appears in an obscure journal, Diskret. Analiz.[25]
See also
- Brooks' theorem relating vertex colorings to maximum degree
References
<templatestyles src="Reflist/styles.css" />
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ a b c Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ The full name of this journal was Akademiya Nauk SSSR. Sibirskoe Otdelenie. Institut Matematiki. Diskretny˘ı Analiz. Sbornik Trudov. It was renamed Metody Diskretnogo Analiza in 1980 (the name given for it in Script error: No such module "Footnotes".) and discontinued in 1991 [1].
Script error: No such module "Check for unknown parameters".