Blocking Clauses
ConceptBlocking clauses are clauses added to a propositional formula to rule out previously enumerated solutions (typically models or partial models), commonly used in AllSAT/enumeration and SAT-based witness generation. They enable exponential reductions in the number of generated models but can increase memory consumption and slow unit propagation. Related but distinct notions include blocked clauses (a syntactic redundancy notion in SAT/QBF/DQBF) and blocking clauses used in uniform witness generators such as UniGen.
WIKI
Definition and Purpose
In propositional satisfiability (SAT), a blocking clause is a clause added to a working formula in order to rule out a solution (model, or partial model) that has already been found, so that the solver or enumerator does not produce the same solution again. A basic algorithm for enumerating disjoint propositional models (disjoint AllSAT) is built on adding blocking clauses incrementally after each found model.
Blocking clauses can act on partial models, which gives them the potential to reduce the number of generated models exponentially compared to blocking clauses over full models. However, the same accumulation that makes them powerful has well-known drawbacks:
NEIGHBORHOOD
No graph connections found for this entity yet. It may appear in future ingestion runs.
explore full graph →