08.10.2016 Views

Foundations of Data Science

2dLYwbK

2dLYwbK

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

a b c<br />

i<br />

j<br />

Figure 9.9: warning propagation<br />

k and the factors by a, b, and c. Factor a sends a message m ai to each variable i that<br />

appears in the factor a called a warning. The warning is 0 or 1 depending on whether<br />

or not factor a believes that the value assigned to i is required for a to be satisfied. A<br />

factor a determines the warning to send to variable i by examining all warnings received<br />

by other variables in factor a from factors containing them.<br />

For each variable j, sum the warnings from factors containing j that warn j to take<br />

value T and subtract the warnings that warn j to take value F. If the difference says that<br />

j should take value T or F and this value for variable j does not satisfy a, and this is<br />

true for all j, then a sends a warning to i that the value <strong>of</strong> variable i is critical for factor a.<br />

Start the warning propagation algorithm by assigning 1 to a warning with probability<br />

1/2. Iteratively update the warnings. If the warning propagation algorithm converges,<br />

then compute for each variable i the local field h i and the contradiction number c i . The<br />

local field h i is the number <strong>of</strong> clauses containing the variable i that sent messages that<br />

i should take value T minus the number that sent messages that i should take value F.<br />

The contradiction number c i is 1 if variable i gets conflicting warnings and 0 otherwise.<br />

If the factor graph is a tree, the warning propagation algorithm converges. If one <strong>of</strong> the<br />

warning messages is one, the problem is unsatisfiable; otherwise it is satisfiable.<br />

9.13 Correlation Between Variables<br />

In many situations one is interested in how the correlation between variables drops <strong>of</strong>f<br />

with some measure <strong>of</strong> distance. Consider a factor graph for a 3-CNF formula. Measure<br />

the distance between two variables by the shortest path in the factor graph. One might<br />

ask if one variable is assigned the value true, what is the percentage <strong>of</strong> satisfying assignments<br />

<strong>of</strong> the 3-CNF formula in which the second variable also is true. If the percentage<br />

is the same as when the first variable is assigned false, then we say that the two variables<br />

are uncorrelated. How difficult it is to solve a problem is likely to be related to how fast<br />

the correlation decreases with distance.<br />

Another illustration <strong>of</strong> this concept is in counting the number <strong>of</strong> perfect matchings<br />

in a graph. One might ask what is the percentage <strong>of</strong> matching in which some edge is<br />

322

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!