  We present a theoretical framework for characterizing the geometrical
properties of the space of solutions in constraint satisfaction problems,
together with practical algorithms for studying this structure on particular
instances. We apply our method to the coloring problem, for which we obtain the
total number of solutions and analyze in detail the distribution of distances
between solutions.
