GRASP: a search algorithm for propositional satisfiability
Summary (5 min read)
1 Introduction
- THE Boolean satisfiability problem (SAT) appears inmany contexts in the field of computer-aided design of integrated circuits, including automatic test pattern generation (ATPG), timing analysis, delay fault testing, and logic verification, to name just a few.
- Over the years, many algorithmic solutions have been proposed for SAT, the most well-known being the different variations of the Davis-Putnam procedure [7].
- Nevertheless, nonchronological backtracking techniques have been extensively studied and applied to different areas of Artificial Intelligence, particularly Truth Maintenance Systems (TMS) [9], [35], Constraint Satisfaction Problems (CSP) [8], [14], [15], [31], and Logic Programming [4], in some cases with very promising experimental results [8], [15].
- By noting that conflicts arise when certain clauses are missing from the problem specification, GRASP views conflict occurrence as an opportunity to augment the problem description with such conflict-induced clauses.
2.1 Basic Definitions and Notation
- The authors will refer to a CNF formula as a clause database and use ªformula,º ªCNF formula,º and ªclause databaseº interchangeably.
- A backtracking search algorithm for SAT is implemented by a search process that implicitly traverses the space of 2n possible binary assignments to the problem variables.
- This last case can only happen when A is a partial assignment.
- An assignment partitions the clauses of ' into three sets: satisfied clauses (evaluating to 1); unsatisfied clauses (evaluating to 0); and unresolved clauses (evaluating to X).
2.2 Formula Satisfiability
- Formula satisfiability is concerned with determining if a given formula ' is satisfiable and with identifying a satisfying assignment for it.
- The search process iterates through the steps of: 1. Extending the current assignment by making a decision assignment to an unassigned variable.
- When relevant to the context, the assignment notation introduced earlier may be extended to indicate the decision level at which the assignment occurred.
- The implications that can be derived from a given partial assignment depend on the set of available clauses.
2.3 Function Satisfiability
- Given an initial formula ', a search system can attempt to augment it with additional implicates to increase the deductive power during the search process.
- The approach considers the occurrence of a conflict, which is unavoidable for an unsatisfiable instance unless the formula is complete, as an opportunity to ªlearn from the mistake that led to the conflictº and introduces additional implicates to the clause database only when it stumbles.
- Conflict diagnosis produces three distinct pieces of information that can help speed up the search: 1. New implicates that did not exist in the clause database and that can be identified with the occurrence of the conflict.
- If that assignment was the most recent (i.e., at the current decision level), the opposite assignment (if it has not been tried) is immediately implied as a necessary consequence of the conflict; the authors refer to this as a failure-driven assertion (FDA).
- If the conflict resulted from an earlier decision assignment (at a lower decision level), the search can backtrack to the corresponding level in the decision tree since the subtree rooted at that level corresponds to assignments that will yield the same conflict.
2.4 Structure of the Search Process
- The basic mechanism for deriving implications from a given clause database is Boolean constraint propagation (BCP) [11], [39].
- Such assignments are referred to as logical implications (implications, for short) and correspond to the application of the unit clause rule proposed by Davis and Putnam [7].
- BCP refers to the iterated application of this rule to a clause database until the set of unit clauses becomes empty or one or more clauses become unsatisfied.
- Note that the antecedent assignment of an electively assigned variable is empty.
- The directed edges from the vertices in A!.
2.5 Search Algorithm Template
- The general structure of the GRASP search algorithm is shown in Fig. The recursive Search function consists of four major operations: 1. Decide, which chooses a decision assignment at each stage of the search process.
- For the results given in Section 4, the following greedy heuristic is used:.
- For most of these heuristics, preference is given to assignments that simplify the clauses the most and can lead to more implications due to BCP.
- The algorithm repeatedly applies the unit clause rule [7] while unit clauses exist.
- If, on the other hand, a conflict arises due to this assignment, the Diagnose function is called to analyze this conflict and to determine an appropriate decision level for backtracking the search.
3 Conflict Analysis Procedures
- When a conflict arises during BCP, the structure of the implication sequence converging on a conflict vertex K is analyzed to determine those variable assignments that are directly responsible for the conflict.
- Negation of this implicant, therefore, yields an implicate of the Boolean function f (whose satisfiability the authors seek) that does not exist in the clause database '.
- Thus, along with assignments from previous levels, the decision assignment at the current decision level is a sufficient condition for the conflict.
- Determination of the conflicting assignment A!C can now be expressed as: A!C causes of where causes_of(.) is defined by: 4. Conditions similar to these implicates are referred to as ªnogoodsº in TMS [9], [35] and in some algorithms for CSP [31].
- Unlike the precise computations of the conflicting assignment A!C in (3) and conflict-induced clause !C in (4), the procedures in these related works were only informally described.
3.1 Standard Conflict Diagnosis Engine
- The identification of a conflict-induced clause !C enables the derivation of further implications that help prune the search.
- C include asserting the current decision variable to its opposite value and determining a backtracking level for the search process.
- Such immediate implications do not require that !.
- In particular, adding !C to the clause database ensures that the search engine will not regenerate the conflicting assignment that led to the current conflict.
3.1.1 Failure-Driven Assertions
- If !C involves the current decision variable, erasing the implication sequence at the current decision level makes !.
- C a unit clause and causes the immediate implication of the decision variable to its opposite value.
- The authors refer to such assignments as failure-driven assertions (FDAs) to emphasize that they are implications of conflicts and not decision assignments.
- The authors note further that their derivation is automatically handled by their BCP-based deduction engine and does not require special processing.
- This is in contrast with most search-based SAT algorithms that treat a second branch at the current decision level as another decision assignment.
3.1.2 Conflict-Directed Backtracking
- If all the literals in !C correspond to variables that were assigned at decision levels that are lower than the current decision level, the authors can immediately conclude that the search process needs to backtrack.
- Illustrated in Fig. 4a for their working example.
- When < dÿ 1, however, the search process may backtrack nonchronologically by jumping back over several levels in the decision tree.
- The procedure starts with an analysis of what caused the conflict and the creation of a new conflict-induced clause.
- If backtracking is necessary (indicated by 6 d), a new conflict vertex K is added to the implication graph and its antecedent assignments A are recorded.
3.2 Variations on the Standard Diagnosis Engine
- This section describes two improvements to the standard diagnosis engine described above.
- The first is concerned with ways of controlling the growth of the clause database.
- The second provides techniques that utilize the structure of the implication sequences to reduce the size of identified implicates.
- Both of these improvements represent novel contributions to search-based SAT algorithms.
3.2.1 Space-Bounded Diagnosis Engines
- Standard conflict diagnosis, described in the previous section, suffers from two drawbacks.
- (b) Decision tree. of SAT, can lead to large run times.
- One solution to the second drawback is a simple modification to the conflict diagnosis engine that guarantees the worst case growth of the clause database to be polynomial in the number of variables.
- Conflict-induced clauses of size greater than k are marked red and kept around only while they are satisfied, unsatisfied, or are unit clauses.
- The worst case growth becomes polynomial in the number of variables as a function of the fixed integer k.
3.2.2 Unique Implication Points
- Further enhancements to the conflict diagnosis engine involve generating stronger implicates (containing fewer literals) by more careful analysis of the structure of the implication graph I.
- X4 x10 x11 is an implicate of the function that did not exist in the clause database, also known as Hence, the clause.
- Both of these implicates are stronger than the single conflict-induced clause identi- fied earlier in (5) and can potentially provide additional implications in the presence of partial assignments.
- This procedure for constructing strong implicates can be generalized for an arbitrary number of UIPs.
- Description of the standard diagnosis engine.
4 Experimental Results
- The authors present experimental results for GRASP.
- The CPU times for all programs were scaled to the equivalent CPU times on a SUN SPARC 5/85 machine.
- These benchmarks represent one practical application of SAT algorithms to the field of Electronic Design Automation, thus being of key significance for experimentally evaluating SAT algorithms.
- A benchmark suite is partitioned into classes of related benchmarks, e.g., for the DIMACS benchmarks, class AIM-100 includes all benchmarks with name aim-100-*.
4.1 DIMACS Benchmark Results
- The CPU times of running GRASP and the other algorithms on the DIMACS benchmarks are shown in Table 1.9.
- It can also be concluded that, for benchmarks where GRASP performs better, the other programs either take a very long time to find a solution or are unable to find a solution in less than 10,000 seconds.
- Still, GSAT is the most efficient tool for the class of benchmarks G. Finally, none of the evaluated algorithms was able to find a solution to any problem instance of the benchmark classes F and PAR32.
- Second, the jumps in the decision tree can save a large amount of search work.
- Nevertheless, POSIT can be more efficient for specific benchmarks, as the examples of the last two rows indicate.
4.2 UCSC Benchmark Results
- The results obtained for the UCSC benchmarks are shown in Table 4 and in Table 5.
- The BF and SSA benchmark classes denote, respectively, CNF formulas for bridging and stuck-at faults.
- GRASP performs significantly better than any other program on these benchmarks.
- The UCSC benchmarks are characterized by extremely sparse CNF formulas for which the BCP-based conflict analysis procedure of GRASP works particularly well.
- In addition, it should be noted that a direct comparison of the results of each algorithm with the results of DPL illustrates how effective search-pruning techniques can be for these classes of instances of SAT.
4.2.1 Database Growth Versus CPU Time
- It is interesting to evaluate how the growth of the clause database affects the amount of search and the CPU time.
- The CPU time and the number of backtracks for the SSA and BF benchmarks are shown in Fig.
- As the maximum size of added clauses grows, the number of backtracks decreases and the CPU time decreases accordingly.
- These results also suggest that it may possible to experimentally identify optimal growth rates for different classes of problem instances.
5 Conclusions and Research Directions
- This paper introduces a procedure for conflict analysis in satisfiability algorithms and describes a configurable algorithmic framework for solving SAT.
- Experimental results indicate that conflict analysis and its by-products, nonchronological backtracking and identification of equivalent conflicting conditions can contribute decisively for efficiently solving a large number of classes of instances of SAT.
- Besides the algorithmic organization of GRASP, special attention must be paid to the implementation details.
- Hence, BCP only identifies those assign- ments that are necessary for a partial assignment to be extended to a complete assignment representing a solution of a given instance of SAT.
- Let the conflict assignment A!C be computed according to (3).
Did you find this useful? Give us your feedback
Citations
2,886 citations
Cites methods from "GRASP: a search algorithm for propo..."
...GRASP [8], POSIT [5], SATO [13], rel_sat [2], WalkSAT [9]) have been developed, most employing some combination of two main strategies: the Davis-Putnam (DP) backtrack search and heuristic local search....
[...]
1,739 citations
1,332 citations
1,163 citations
Cites background from "GRASP: a search algorithm for propo..."
...One of the key ingredients in modern SAT solvers is conflict analysis [78]: infeasible subproblems that are encountered during branch-and-bound are analyzed in order to learn deduced clauses that can later be used to prune other nodes of the search tree....
[...]
...In addition, these conflict clauses enable the solver to perform so-called nonchronological backtracking [78]....
[...]
904 citations
References
42,654 citations
40,020 citations
2,758 citations
"GRASP: a search algorithm for propo..." refers methods in this paper
...Iterated application of the unit clause rule is commonly referred to as Boolean Constraint Propagation (BCP) [39] or as derivation of implications in the electronic CAD literature [1]....
[...]
2,743 citations
"GRASP: a search algorithm for propo..." refers background in this paper
...GRASP is premised on the inevitability of conflicts during the search and its most distinguishing feature is the augmentation of basic backtracking search with a powerful conflict analysis procedure....
[...]
1,874 citations
"GRASP: a search algorithm for propo..." refers background in this paper
...Conditions similar to these implicates are referred to as ªnogoodsº in TMS [9], [35] and in some algorithms for CSP [31]....
[...]
...Only in [28] is a nonchronological backtracking procedure outlined for solving problems in Logic Truth Maintenance Systems (LTMS), but it is only sketched and no experimental results are presented....
[...]
...Conditions similar to these implicates are referred to as anogoodso in TMS [9], [35] and in some algorithms for CSP [31]....
[...]
...Nevertheless, nonchronological backtracking techniques have been extensively studied and applied to different areas of Artificial Intelligence, particularly Truth Maintenance Systems (TMS) [9], [35], Constraint Satisfaction Problems (CSP) [8], [14], [15], [31], and Logic Programming [4], in some cases with very promising experimental results [8], [15]....
[...]
Related Papers (5)
Frequently Asked Questions (2)
Q2. What are the future works mentioned in the paper "Grasp: a search algorithm for propositional satisfiability" ?
Future research work will emphasize heuristic control of the rate of growth of the clause database. Finally, the authors propose to undertake a comprehensive experimental characterization of the instances of SAT for which conflict analysis provides significant performance gains. ( A more thorough discussion and proof of the TABLE 2 Number of Successes on the DIMACS Benchmarks correctness and completeness of the algorithm and its variations can be found in [ 26 ]. ) There are only two situations under which a conflict K can be identified.