Graph coloring is an assignment of labels traditionally called colors to elements of a graph subject to certain constraints.