Cavity method to count colorings

Sometimes we have an easy way to find marginal probabilities of spin configurations, cavity method gives us a way to combine those marginal probabilities to get a partition functon.

For example, consider all possible ways of coloring a kite graph

"cavityReport_1.gif" "cavityReport_2.gif"
"cavityReport_3.gif" "cavityReport_4.gif"
"cavityReport_5.gif" "cavityReport_6.gif"

Taking all configurations to be equally likely, we can see from this that the probability of the leftmost node taking black color is 1/3. In the graph above, this can be found by counting all configurations, however more efficient methods exist to find this marginal probability. The question is now whether we can combine such probabilities to find the total number of configurations.

Step 0 : pick some arbitrary order over vertices

"cavityReport_7.gif"

"cavityReport_8.gif"

"cavityReport_9.gif"

Step 1 : pick an arbitrary proper coloring using greedy method

"cavityReport_10.gif"

Step 2 : suppose proper colorings are sampled uniformly, find the probability of first vertex assuming the color picked for it in Step 1

"cavityReport_11.gif"

By symmetry, this value is 1/3

Step 3 : remove this vertex, and remove it's color from the list of allowed colors for adjacent vertices.  

"cavityReport_12.gif"

"cavityReport_13.gif"

Step 4 : find probability of the next node taking it' s assigned color

"cavityReport_14.gif"

By symmetry you can see this value is 1/2

Step 5 : repeat steps 3 and 4 for the next vertex

"cavityReport_15.gif"

"cavityReport_16.gif"

the probability of node assuming it' s chosen color is 1

Step 6: repeat steps 3 and 4 again

"cavityReport_17.gif"

"cavityReport_18.gif"

Again the probability of remaining node taking black is 1

Step 7: multiply together the marginal probabilities

"cavityReport_19.gif"

Spikey Created with Wolfram Mathematica 7.0