TAOCP 7.2.2.2 Exercise 168

Let $F$ be the clause set at step L3, and let Algorithm X have produced heuristic scores $H(l)$ for every literal $l$ based on step L2.

Section 7.2.2.2: Satisfiability

Exercise 168. [26] [26] Suggest a way to choose the branch literal $l$ in step L3, based on the heuristic scores $H(l)$ that were compiled by Algorithm X in step L2. Hint: Experience shows that it's good to have both $H(l)$ and $H(\bar{l})$ large.

Verified: yes
Solve time: 1m04s


Setup

Let $F$ be the clause set at step L3, and let Algorithm X have produced heuristic scores $H(l)$ for every literal $l$ based on step L2. For each variable $v$, the two associated literals are $v$ and $\bar v$.

Step L3 requires selecting a branch literal $l$ to guide the search split.

The goal is to choose $l$ so that both subproblems induced by assigning $l=1$ and $l=0$ are made as favorable as possible according to the heuristic information already computed.

Solution

Define a selection score for each variable $v$ by

$$ B(v) = \min\bigl(H(v), H(\bar v)\bigr), $$

and a secondary score

$$ S(v) = H(v) + H(\bar v). $$

Choose a variable $v^\ast$ that maximizes $B(v)$ over all variables $v$. If several variables achieve the same maximum value of $B(v)$, choose among them one that maximizes $S(v)$. Finally, take the branch literal $l$ to be either $v^\ast$ or $\overline{v^\ast}$; the choice between these two is immaterial at the selection stage and may be fixed arbitrarily or by a consistent convention such as selecting the positive literal.

This rule ensures that the selected variable has both literals with large heuristic weight, since maximizing $\min(H(v), H(\bar v))$ forces neither branch to be weak according to the score produced by Algorithm X. The secondary maximization of $H(v)+H(\bar v)$ breaks ties in favor of variables that are globally more influential in the clause set.

Verification

For the chosen variable $v^\ast$, suppose $B(v^\ast)$ is maximal. Then for every variable $v$,

$$ \min\bigl(H(v^\ast), H(\bar v^\ast)\bigr) \ge \min\bigl(H(v), H(\bar v)\bigr), $$

so neither branch of $v^\ast$ can be dominated in score by both branches of any competing variable simultaneously.

If one branch were significantly weaker, say $H(v^\ast) \ll H(\bar v^\ast)$, then $B(v^\ast)$ would be small, and another variable with more balanced scores would achieve a larger minimum, contradicting maximality. Thus both $H(v^\ast)$ and $H(\bar v^\ast)$ are forced to be large relative to competing choices.

The secondary criterion ensures that among variables with equal worst-branch strength, the selected variable contributes maximal total heuristic weight, preserving global clause influence while maintaining branch balance.

This completes the proof. ∎