TAOCP 7.2.2.2 Exercise 171

Corrected solution: Edit `DFAIL` in Algorithm Y is a bookkeeping mechanism that records when a double-lookahead attempt has already been performed for a literal and has failed to produce useful inform...

Section 7.2.2.2: Satisfiability

Exercise 171. [20] What is the purpose of DFAIL in Algorithm Y?

Verified: no
Solve time: 8m46s


Corrected solution:

Edit

DFAIL in Algorithm Y is a bookkeeping mechanism that records when a double-lookahead attempt has already been performed for a literal and has failed to produce useful information.

In Algorithm Y, the value DFAIL(l) is associated with each literal (l). It is initialized to zero. During a search state, when Algorithm Y performs double lookahead on a literal (l_0), the algorithm checks DFAIL(l_0) in step Y1. If

[ DFAIL(l_0)=ISTAMP, ]

the algorithm terminates the double-lookahead attempt immediately because the same literal has already been examined during the current search state.

If the double-lookahead procedure is carried out and does not find a contradiction or produce any useful implication, step Y6 sets

[ DFAIL(l_0)\leftarrow ISTAMP . ]

This records that the double-lookahead investigation for (l_0) has failed at the current timestamp.

The purpose of DFAIL is therefore to prevent repeated unsuccessful double-lookahead computations. Since double lookahead is an expensive operation, Algorithm Y avoids wasting time by remembering which literals have already been tested and found unproductive in the current context. It is a failure marker that allows the algorithm to skip redundant work while preserving the correctness of the search.