This preview shows pages 1–3. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: 76 COMMUNICATIONS OF THE ACM | AUGUST 2009 | VOL. 52 | NO. 8 review articles DOI:10.1145/1536616.1536637 Satisfi ability solvers can now be effectively deployed in practical applications. BY SHARAD MALIK AND LINTAO ZHANG In its simplest form, the variables are Boolean valued (true/false, often represented using 1/0) and proposition- al logic formulas can be used to express the constraints on the variables. 15 In propositional logic the operators AND, OR, and NOT (represented by the sym- bols , , and respectively) are used to construct formulas with variables. If x is a Boolean variable and f , f 1 and f 2 are propositional logic formulas (subsequently referred to simply as formulas), then the following recursive defi nition describes how complex for- mulas are constructed and evaluated using the constants 0 and 1, the vari- ables, and these operators. x is a formula that evaluates to 1 when x is 1, and evaluates to 0 when x is 0 f is a formula that evaluates to 1 when f evaluates to 0, and 0 when f eval- uates to 1 f 1 f 2 is a formula that evaluates to 1 when f 1 and f 2 both evaluate to 1, and THERE ARE MANY practical situations where we need to satisfy several potentially confl icting constraints. Simple examples of this abound in daily life, for example, determining a schedule for a series of games that resolves the availability of players and venues, or fi nding a seating assignment at dinner consistent with various rules the host would like to impose. This also applies to applications in computing, for example, ensuring that a hardware/software system functions correctly with its overall behavior constrained by the behavior of its components and their composition, or fi nding a plan for a robot to reach a goal that is consistent with the moves it can make at any step. While the applications may seem varied, at the core they all have variables whose values we need to determine (for example, the person sitting at a given seat at dinner) and constraints that these variables must satisfy (for example, the hosts seating rules). Boolean Satisfi ability From Theoretical Hardness to Practical Success AUGUST 2009 | VOL. 52 | NO. 8 | COMMUNICATIONS OF THE ACM 77 evaluates to 0 if either f 1 or f 2 evaluate to 0 f 1 f 2 is a formula that evaluates to 0 when f 1 and f 2 both evaluate to 0, and evaluates to 1 if either f 1 or f 2 evaluate to 1 ( x 1 x 2 ) x 3 is an example formula constructed using these rules. Given a valuation of the variables, these rules can be used to determine the valuation of the formula. For example: when ( x 1 = 0, x 2 = 0, x 3 = 1), this formula evalu- ates to 1 and when ( x 3 = 0), this formula evaluates to 0, regardless of the values of x 1 and x 2 . This example also illus- trates how the operators in the formula provide constraints on the variables....
View Full Document
- Spring '08