l2
...
ln
(where the li
are literals, or their negations) are extracted from the CNF and placed
in a separate data-structure called Conjunction of Equivalences (CoE). Second,
the found CoE is solved using a polynomial algorithm. Unary clauses or binary
equivalences found in the solution are iteratively propagated. If no conflict
has occurred, the original clause form is used for the not satisfied
equivalences. The remaining CoE part is neglected during solving (in contrast
to march_eq).
![]() |
The lookahead evaluation function (Diff in short) used in march sums up - in a weighted fashion - the newly created binary clauses in the resulted formula after lookahead on a variable. A new binary clauses x v y is weighted according to equation (1). In this equation occn( l ) refers to the occurrences of literal l in clauses of length n. The final branch decision is based on function H, which is calculated as in line 12 of Algorithm 1. In a node, variable x with the highest H( x ) is selected as branch variable for its two child nodes.
![]() |
(1) |
The partial behaviour of the lookahead is realised by only performing
lookahead on variables in set
: At the beginning of each node, this
set is filled by pre-selection heuristics that are based on a Diff
approximation function (Daf). The ranking of variable x is
calculated by multiplying Daf(x) and
Daf(
x). The higher the ranking, the ``better'' the
variable. Set
contains always a constant number of variables. This
constant number depends on the original number of variables.
![]() |
(2) |
Two variants of march have been submitted to the Sat 2004 competition. The first, march_001 performs only lookahead on the "best" 1% of the variables, while the second, march_007 performs only lookahead on the "best" 7%.
:
Equivalent variables will have the same Diff, so only one of them
is required in
.
. These implications trees are used to
decrease the number of unit propagations.
y and
x
y are
detected during the lookahead on x and
x
, y is assigned to true because it is a necessary assignment.