Domain-independent CS Algorithm
1. Set OPEN to the set of vertices. Then do until an inconsistency is
detected or until OPEN is empty:
a. Select an OBJ in OPEN and reduce possible values according to
constraints provided by adjacency set.
b. If first time OBJ examined or if values reduced, add adjacency
2. If each feature has a single value then quit (solution found).
3. If inconsistency arose, return failure.
4. If neither 2 nor 3 then until solution is found or all solutions have
a. Select an object whose value is not determined and assign a value.
b. Recursively invoke CS on graph.