0

Let's assume that we have to solve a 3-SAT instance (encoded in CNF form) and we are looking for sets of N-variables (smaller are better) that has the following property:

When we turn such a set of N-variables into combinations of possible literals (in other words we make all possible partial assignments from the variables 2 to the power of N), then for each combination if we perform binary constraint propagation (BCP) we can reach the conflict or not, and if the only single combination from 2 to the power of N is not causing a conflict - the property will be fulfilled (the set of variables has "one-valid" property - which I call).

Example:

  1. We picked 2 variables: 42 and 16 - and this is our set

  2. We make partial assignments from all combinations:

    -42,-16

    42,-16

    -42,16

    42,16

  3. Then after BCP, we found that only 42,-16 is valid, the others are leading to a conflict. So the variable set 42,16 has "one valid" property.

The question is if we can find such sets quite easily or it is hard (until we check them)? And how to find them more often than creating sets from randomly picked variables?

komorra
  • 123

1 Answers1

1

If a set of variables has exatly one non-conflicting partial assignment, then each subset of these variables will have either zero or one non-conflicting partial assignment. Therefore it is reasonable to look only for single variables with one (or zero) non-conflicting assignments. This is usually called "failed literal probing".

Indeed there are more efficient ways of finding failed literals than just trying all of them. Maybe this blog post is a good starting point to learn more.

Simon
  • 5,061