Many practical constraint satisfaction problems, such as timetabling problems, can be mapped onto graph coloring problems. The problem of graph coloring can be described as follows. Suppose a graph exists with vertex set V and edge set E, where the ordered pair (R,S) is in E if and only if an edge exists between the vertices R and S. Two vertices in a graph are said to be adjacent if an edge exists between them. The problem of graph coloring is to partition the vertices into a minimum number of sets in such a way that no two adjacent vertices are placed in the same set. Then, a different color is assigned to each set of vertices, as shown in Figure 3. This is known as a proper graph coloring.
Figure 3: A proper graph coloring using three colors.