Tutorials › Graph Theory (Undergraduate) › List Coloring Chordal Graphs

Perfect Graphs and Special Colorings · Tutorial 415 of 799

List Coloring Chordal Graphs

Use a perfect elimination ordering in reverse to construct a proper list coloring of any chordal graph from lists as large as its largest clique.

Advanced 8 min read

What You'll Learn

  • Define list assignments and list colorings for finite simple graphs.
  • Identify perfect elimination orderings and the later neighbors they control.
  • Prove the chordal-graph list-coloring bound using reverse elimination.
  • Work through explicit list-coloring examples with nonidentical lists.
  • Explain why coloring in the forward order can fail.
  • Relate the list-coloring bound to the clique number.

List Coloring and the Chordal-Graph Bound

In an ordinary coloring, a color may be chosen from a common palette. In a list coloring, each vertex has its own permitted set of colors, and the choices must respect both the lists and the graph’s edges. For chordal graphs, a perfect elimination ordering provides a direct way to make those choices: color vertices in reverse order, so that the neighbors already colored at each step form a clique. The size of that clique gives the bound on how many colors can be unavailable.

All graphs below are finite and simple. A proper coloring assigns a color to each vertex so that adjacent vertices receive different colors. A list assignment \(L\) assigns a finite set \(L(v)\) of permitted colors to each vertex \(v\). A proper coloring \(c\) is an \(L\)-coloring if \(c(v)\in L(v)\) for every vertex. Lists need not be equal, and colors in lists are not required to have any particular names or ordering.

Definition: A vertex ordering \(v_1,\ldots,v_n\) is a perfect elimination ordering (PEO) if, for each \(i\), the neighbors of \(v_i\) among \(v_{i+1},\ldots,v_n\) form a clique. A graph is chordal if it has no induced cycle of length at least \(4\).

A clique is a set of pairwise adjacent vertices. For a nonempty graph \(G\), its clique number \(\omega(G)\) is the largest size of a clique in \(G\). We use the standard characterization of chordal graphs by perfect elimination orderings: a finite graph is chordal if and only if it has a PEO. This characterization was established in the earlier material on chordal graphs; here the coloring argument uses the ordering in the direction that matters for lists.

Why the Reverse Order Works

Suppose \(v_1,\ldots,v_n\) is a PEO, and color \(v_n,v_{n-1},\ldots,v_1\), in that order. When it is time to color \(v_i\), the vertices already colored are exactly the vertices \(v_j\) with \(j>i\). Consequently, the already-colored neighbors of \(v_i\) are precisely its later neighbors in the PEO. Those neighbors form a clique. Together with \(v_i\), they form a clique as well, so \(v_i\) has at most \(\omega(G)-1\) already-colored neighbors.

Theorem: Let \(G\) be a nonempty chordal graph, and let \(L\) be a list assignment such that \(|L(v)|\geq\omega(G)\) for every \(v\in V(G)\). Then \(G\) has a proper \(L\)-coloring.

Proof. Since \(G\) is chordal, choose a PEO \(v_1,\ldots,v_n\). We color in the order \(v_n,v_{n-1},\ldots,v_1\). Assume that the vertices \(v_{i+1},\ldots,v_n\) have already been colored properly. The already-colored neighbors of \(v_i\) are its later neighbors. By the PEO property, these neighbors form a clique; adding \(v_i\) gives a clique in \(G\). Therefore there are at most \(\omega(G)-1\) such neighbors. At most \(\omega(G)-1\) distinct colors can appear on them, so at most \(\omega(G)-1\) colors in \(L(v_i)\) are forbidden. Since \(|L(v_i)|\geq\omega(G)\), at least one color in \(L(v_i)\) is not used on any already-colored neighbor. Assign such a color to \(v_i\). This preserves properness on all edges whose endpoints have been colored. Repeating for every \(i\) colors all vertices; when each edge is considered, its later-colored endpoint was assigned a color different from the endpoint colored before it. Thus the final coloring is proper and belongs to the lists. \(\square\)

The count is a “one more color than neighbors” argument, but its justification depends on the ordering: it is the already-colored neighbors that must be bounded. A PEO bounds the later neighbors, which is why the order is reversed.

Worked Example: A Path with Different Lists

Let \(G\) have vertex set \(V=\{a,b,c,d\}\) and edge set \(E=\{ab,bc,cd\}\). This is a path, hence chordal, and its largest clique has size \(\omega(G)=2\). Use the lists \(L(a)=\{\text{blue},\text{yellow}\}\), \(L(b)=\{\text{red},\text{blue}\}\), \(L(c)=\{\text{red},\text{blue}\}\), and \(L(d)=\{\text{blue},\text{green}\}\). Each list has size \(2\).

The ordering \(a,d,b,c\) is a PEO: the later neighbors of \(a\) are \(\{b\}\), those of \(d\) are \(\{c\}\), those of \(b\) are \(\{c\}\), and \(c\) has no later neighbors. Color in reverse order, \(c,b,d,a\). Give \(c\) red, which is in \(L(c)\). Vertex \(b\) is adjacent to the already-colored \(c\), so red is unavailable; choose blue from \(L(b)\). Vertex \(d\) is adjacent to \(c\), whose color is red, so choose blue from \(L(d)\). Vertex \(a\) is adjacent to \(b\), whose color is blue, so choose yellow from \(L(a)\).

Check: The edge colors are \(ab\): yellow and blue; \(bc\): blue and red; and \(cd\): red and blue. Each edge has differently colored endpoints, and every assigned color belongs to its vertex’s list.

Examples with Clique Size Three

Worked Example: A Triangle with Two Pendant Vertices

Let \(G\) have \(V=\{a,b,c,d,e\}\) and \(E=\{ab,ac,bc,ad,be\}\). The vertices \(a,b,c\) form a triangle, and \(d,e\) are attached to \(a,b\), respectively. This graph is chordal: its only cycle is the triangle. Its clique number is \(3\). Set \(L(a)=L(b)=L(c)=\{\text{red},\text{blue},\text{green}\}\), \(L(d)=\{\text{green},\text{gold},\text{black}\}\), and \(L(e)=\{\text{blue},\text{gold},\text{white}\}\).

Take the PEO \(d,e,a,b,c\). The later neighbors of \(d\) are \(\{a\}\), those of \(e\) are \(\{b\}\), those of \(a\) are \(\{b,c\}\), which are adjacent, those of \(b\) are \(\{c\}\), and \(c\) has none. In reverse order, first color \(c\) red. Vertex \(b\), adjacent to \(c\), cannot use red, so assign blue. Vertex \(a\) is adjacent to both \(b\) and \(c\), whose colors are blue and red, so assign green. Vertex \(e\) is adjacent to \(b\), colored blue, so assign gold. Vertex \(d\) is adjacent to \(a\), colored green, so assign gold.

Check: The triangle edges \(ab,ac,bc\) have color pairs blue–green, green–red, and blue–red. The remaining edges \(ad\) and \(be\) have pairs green–gold and blue–gold. Thus every edge has different colors at its endpoints, and the selected colors all occur in their respective lists.

Worked Example: Two Triangles Sharing an Edge

Let \(G\) have \(V=\{a,b,c,d\}\) and \(E=\{ab,ac,bc,ad,bd\}\). It consists of triangles \(abc\) and \(abd\) sharing the edge \(ab\). It is chordal: every cycle of length at least \(4\) has the edge \(ab\) as a chord. Its clique number is \(3\). Give each vertex the list \(\{\text{red},\text{blue},\text{green}\}\).

Use the ordering \(c,d,a,b\). The later neighbors of \(c\) are \(a,b\), which are adjacent; those of \(d\) are also \(a,b\); those of \(a\) are \(b\); and \(b\) has none. Color in reverse order \(b,a,d,c\). Assign red to \(b\). Since \(a\) is adjacent to \(b\), assign blue to \(a\). Vertex \(d\) is adjacent to both \(a\) and \(b\), so red and blue are unavailable; assign green. Vertex \(c\) is also adjacent to \(a\) and \(b\), so assign green as well. This is allowed because \(c\) and \(d\) are not adjacent.

Check: The edges \(ab,ac,bc,ad,bd\) have endpoint colors red–blue, blue–green, green–red, blue–green, and green–red. All five edges are properly colored, and every color used is in the corresponding list.

The Bound and Its Scope

The theorem applies to arbitrary lists, not only to one common palette. At each step, the argument rules out the colors actually used on already-colored neighbors. It does not require the lists at different vertices to match, and it does not require those neighbors to use different colors. The clique property does imply that they receive distinct colors in a proper coloring, but the upper bound on forbidden colors follows even from the simpler count: there are at most \(\omega(G)-1\) neighbors to consider.

For a nonempty chordal graph, the bound is sharp in the uniform list-size sense. The theorem gives a coloring whenever every list has size at least \(\omega(G)\). Conversely, choose a clique of size \(\omega(G)\) and give every vertex in it the same list of \(\omega(G)-1\) colors. A proper coloring of that clique would need \(\omega(G)\) distinct colors, but only \(\omega(G)-1\) are available. So lists of that smaller size do not always suffice. In the standard notation for list chromatic number, this proves \(\chi_{\ell}(G)=\omega(G)\) for nonempty chordal graphs.

The empty graph has no vertices to color, so every list-coloring assertion about its vertices is vacuously satisfied; the theorem was stated for nonempty graphs to avoid choosing a convention for the clique number of the empty graph. Isolated vertices cause no difficulty: they have no already-colored neighbors, so any color in their nonempty list can be used. In a disconnected chordal graph, the PEO and reverse coloring argument apply to the entire graph, or component by component, because there are no edges between components.

Common Pitfall: Coloring in the Forward Order

A PEO controls each vertex’s later neighbors, not its earlier neighbors. Therefore the proof does not justify coloring \(v_1,v_2,\ldots,v_n\) in that order. For a concrete failure, take the star with \(V=\{x,y,z\}\), \(E=\{xz,yz\}\), and lists \(L(x)=L(y)=L(z)=\{\text{red},\text{blue}\}\). Its clique number is \(2\), and \(x,y,z\) is a PEO: each of \(x,y\) has the single later neighbor \(z\), while \(z\) has none.

If one incorrectly colors forward, one may assign red to \(x\) and blue to \(y\). Then both colors are forbidden at \(z\), so this particular partial coloring cannot be completed. That does not show the graph is not list-colorable: reverse order colors \(z\) first, say red, and then assigns blue to both \(x\) and \(y\), which are not adjacent. The correction is to match the direction of coloring to the neighbors controlled by the PEO. This example also shows why “a PEO exists” alone is not the coloring argument; the ordering must be used in reverse.

Check Your Understanding

Use the reverse-PEO argument to justify your answers, and distinguish the PEO condition from the direction in which vertices are colored.

  1. For a PEO \(v_1,\ldots,v_n\), which neighbors of \(v_i\) have already been colored when the coloring proceeds in reverse?
  2. Explain why \(v_i\), together with its later neighbors, is a clique and why there can be at most \(\omega(G)-1\) such neighbors.
  3. Let \(V=\{p,q,r\}\), \(E=\{pq,qr\}\), and give each vertex the list \(\{\text{amber},\text{violet}\}\). Give a PEO and produce a list coloring in reverse order.
  4. Why does a clique of size \(\omega(G)\) show that lists of size \(\omega(G)-1\) do not suffice for every list assignment?
  5. In the star example, why does the failed forward coloring not contradict the theorem?