Claims
- 1. A method for determining satisfying variable assignments of a Boolean formula, or for determining that no satisfying variable assignments exist, the method comprising the steps of:
a. assigning a variable to zero or one; b. generating implications resulting from the assignment using Boolean Constraint Propagation, wherein implications are generated by watching two literals, the two literals watched being randomly selected from variables not assigned to zero; and c. continuing steps (a) and (b) until reaching a conflict or until all variables are assigned, wherein upon reaching a conflict the assignment of at least one variable is changed, implications resulting from the changed assignment are generated and steps (a) and (b) continue until determining a satisfying variable assignment, or until determining that no satisfying variable assignment exists.
- 2. The method of claim 1, wherein implications are generated in accordance with an invariant maintaining that if a clause can become newly implied via any sequence of assignments, then the sequence will include an assignment of one of the watched literals to zero.
- 3. The method of claim 1, wherein implications are generated in accordance with an invariant maintaining that if a clause is not currently implied, but can become newly implied in the future, then both of the two watched literals are unassigned.
- 4. The method of claim 1, wherein an implication is generated when all literals in a clause except one are assigned to zero.
- 5. The method of claim 1, wherein an implication is generated when one of the two watched literals is assigned to zero and an attempt to select another literal to watch fails as all other literals are assigned to zero, wherein the other of the two watched literals is implied to one.
- 6. The method of claim 1, wherein unassigning a variable results in no change to the two literals selected for watching.
- 7. The method of claim 1, wherein the Boolean formula is represented in conjunctive normal form.
- 8. The method of claim 1, wherein the Boolean formula is represented as a logic circuit.
- 9. A method for determining satisfying variable assignments of a Boolean formula, or for determining that no satisfying variable assignments exist, the method comprising the steps of:
a. assigning a variable to zero or one; b. generating implications resulting from the assignment using Boolean Constraint Propagation, wherein implications are generated by watching two literals, the two literals watched being randomly selected from variables not assigned to zero; and c. continuing steps (a) and (b) until reaching a conflict or until all variables are assigned, wherein upon reaching a conflict the assignment of at least one variable is changed, implications resulting from the changed assignment are generated and steps (a) and (b) continue until reaching a conflict or until all variables are assigned, whereby:
i. all variables being assigned and no conflict reached indicates that a satisfying variable assignment has been determined; and ii. a conflict is reached and no variable assignment to be changed remains indicates that no satisfying variable assignment exists for the boolean formula.
- 10. A method for determining satisfying variable assignments of a Boolean formula, or for determining that no satisfying variable assignments exist, the method comprising the steps of:
a. assigning a variable to zero or one; b. generating implications resulting from the assignment using Boolean Constraint Propagation, wherein implications are generated by watching two literals, the two literals watched being selected from variables not assigned to zero, wherein upon assignment to zero of one of the two literals watched a variable not assigned to zero is randomly selected as a replacement, becoming one of the two literals watched; and c. continuing steps (a) and (b) until reaching a conflict or until all variables are assigned, wherein upon reaching a conflict the assignment of at least one variable is changed, implications resulting from the changed assignment are generated and steps (a) and (b) continue until determining a satisfying variable assignment, or until determining that no satisfying variable assignment exists.
- 11. The method of claim 10, wherein the Boolean formula is represented in conjunctive normal form.
- 12. The method of claim 10, wherein the Boolean formula is represented as a logic circuit.
- 13. A method for determining satisfying variable assignments of a Boolean formula, or for determining that no satisfying variable assignments exist, the method comprising the steps of:
a. assigning a variable to zero or one, wherein deciding which variable to assign is determined using a strategy termed Variable State Independent Decaying Sum (VSIDS); b. generating implications resulting from the assignment using Boolean Constraint Propagation; and c. continuing steps (a) and (b) until reaching a conflict or until all variables are assigned, wherein upon reaching a conflict the assignment of at least one variable is changed, implications resulting from the changed assignment are generated and steps (a) and (b) continue until determining a satisfying variable assignment, or until determining that no satisfying variable assignment exists.
- 14. The method of claim 13, wherein the Boolean formula is represented in conjunctive normal form.
- 15. The method of claim 13, wherein the Boolean formula is represented as a logic circuit.
- 16. A method for determining satisfying variable assignments of a Boolean formula, or for determining that no satisfying variable assignments exist, the method comprising the steps of:
a. assigning a variable to zero or one, wherein the variable selected for assignment is the variable determined the most likely to be set; b. generating implications resulting from the assignment using Boolean Constraint Propagation; and c. continuing steps (a) and (b) until reaching a conflict or until all variables are assigned, wherein upon reaching a conflict the assignment of at least one variable is changed, implications resulting from the changed assignment are generated and steps (a) and (b) continue until determining a satisfying variable assignment, or until determining that no satisfying variable assignment exists.
- 17. The method of claim 16, wherein determining the variable most likely to be set involves a computation of a Variable State Independent Decaying Sum (VSIDS) rank.
- 18. The method of claim 17, wherein the higher the VSIDS rank the more likely the variable is to be set.
- 19. The method of claim 16, wherein the Boolean formula is represented in conjunctive normal form.
- 20. The method of claim 16, wherein the Boolean formula is represented as a logic circuit.
- 21. A method for determining satisfying variable assignments of a Boolean formula, or for determining that no satisfying variable assignments exist, the method comprising the steps of:
a. assigning a variable to zero or one; b. generating implications resulting from the assignment using Boolean Constraint Propagation, wherein implications are generated by watching two literals, the two literals watched being selected from variables not assigned to zero and determined least likely to be set; and c. continuing steps (a) and (b) until reaching a conflict or until all variables are assigned, wherein upon reaching a conflict the assignment of at least one variable is changed, implications resulting from the changed assignment are generated and steps (a) and (b) continue until determining a satisfying variable assignment, or until determining that no satisfying variable assignment exists.
- 22. The method of claim 21, wherein determining which variables are least likely to be set involves a computation of a Variable State Independent Decaying Sum (VSIDS) rank.
- 23. The method of claim 22, wherein the lower the VSIDS rank the less likely the variable is to be set.
- 24. The method of claim 21, wherein determining which variables are least likely to be set considers a combination of a last decision level of a variable and a Variable State Independent Decaying Sum (VSIDS) rank of the variable.
- 25. The method of claim 21, wherein the Boolean formula is represented in conjunctive normal form.
- 26. The method of claim 21, wherein the Boolean formula is represented as a logic circuit.
- 27. A method for determining satisfying variable assignments of a Boolean formula, or for determining that no satisfying variable assignments exist, the method comprising the steps of:
a. assigning a variable to zero or one, wherein deciding which variable to assign is determined using a strategy termed Variable State Independent Decaying Sum (VSIDS); b. generating implications resulting from the assignment using Boolean Constraint Propagation, wherein implications are generated by watching two literals, the two literals watched being initially selected from variables not assigned to zero, wherein upon assignment to zero of one of the two literals watched a remaining variable not assigned to zero is selected as a replacement, becoming one of the two literals watched; and c. continuing steps (a) and (b) until reaching a conflict or until all variables are assigned, wherein upon reaching a conflict the assignment of at least one variable is changed, implications resulting from the changed assignment are generated and steps (a) and (b) continue until determining a satisfying variable assignment, or until determining that no satisfying variable assignment exists.
- 28. The method of claim 27, wherein the initial and replacement selections from variables not assigned to zero of the two literals watched is random.
- 29. The method of claim 27, wherein the initial and replacement selections from variables not assigned to zero of the two literals watched involves determining which variables are least likely to be set and selecting the variable not assigned to zero that is least likely to be set.
- 30. The method of claim 29, wherein determining which variable is least likely to be set for the initial and replacement selections of the two literals watched involves a computation of a VSIDS rank.
- 31. The method of claim 30, wherein the lower the VSIDS rank of a variable the less likely the variable is to be set.
- 32. The method of claim 29, wherein determining which variable is least likely to be set for the replacement selection of one of the two literals watched considers a combination of a last decision level of a variable and a VSIDS rank of the variable.
- 33. The method of claim 27, wherein the Boolean formula is represented in conjunctive normal form.
- 34. The method of claim 27, wherein the Boolean formula is represented as a logic circuit.
- 35. A computer readable medium that configures a computer system to perform a method for determining satisfying variable assignments of a Boolean formula, or for determining that no satisfying variable assignments exist, the method comprising the steps of:
a. assigning a variable to zero or one; b. generating implications resulting from the assignment using Boolean Constraint Propagation, wherein implications are generated by watching two literals, the two literals watched being randomly selected from variables not assigned to zero; and c. continuing steps (a) and (b) until reaching a conflict or until all variables are assigned, wherein upon reaching a conflict the assignment of at least one variable is changed, implications resulting from the changed assignment are generated and steps (a) and (b) continue until determining a satisfying variable assignment, or until determining that no satisfying variable assignment exists.
- 36. A computer readable medium that configures a computer system to perform a method for determining satisfying variable assignments of a Boolean formula, or for determining that no satisfying variable assignments exist, the method comprising the steps of:
a. assigning a variable to zero or one; b. generating implications resulting from the assignment using Boolean Constraint Propagation, wherein implications are generated by watching two literals, the two literals watched being selected from variables not assigned to zero, wherein upon assignment to zero of one of the two literals watched a variable not assigned to zero is randomly selected as a replacement, becoming one of the two literals watched; and c. continuing steps (a) and (b) until reaching a conflict or until all variables are assigned, wherein upon reaching a conflict the assignment of at least one variable is changed, implications resulting from the changed assignment are generated and steps (a) and (b) continue until determining a satisfying variable assignment, or until determining that no satisfying variable assignment exists.
- 37. A computer readable medium that configures a computer system to perform a method for determining satisfying variable assignments of a Boolean formula, or for determining that no satisfying variable assignments exist, the method comprising the steps of:
a. assigning a variable to zero or one, wherein deciding which variable to assign is determined using a strategy termed Variable State Independent Decaying Sum (VSIDS); b. generating implications resulting from the assignment using Boolean Constraint Propagation; and c. continuing steps (a) and (b) until reaching a conflict or until all variables are assigned, wherein upon reaching a conflict the assignment of at least one variable is changed, implications resulting from the changed assignment are generated and steps (a) and (b) continue until determining a satisfying variable assignment, or until determining that no satisfying variable assignment exists.
- 38. A computer readable medium that configures a computer system to perform a method for determining satisfying variable assignments of a Boolean formula, or for determining that no satisfying variable assignments exist, the method comprising the steps of:
a. assigning a variable to zero or one, wherein the variable selected to assign is the variable determined most likely to be set; b. generating implications resulting from the assignment using Boolean Constraint Propagation; and c. continuing steps (a) and (b) until reaching a conflict or until all variables are assigned, wherein upon reaching a conflict the assignment of at least one variable is changed, implications resulting from the changed assignment are generated and steps (a) and (b) continue until determining a satisfying variable assignment, or until determining that no satisfying variable assignment exists.
- 39. A computer readable medium that configures a computer system to perform a method for determining satisfying variable assignments of a Boolean formula, or for determining that no satisfying variable assignments exist, the method comprising the steps of:
a. assigning a variable to zero or one; b. generating implications resulting from the assignment using Boolean Constraint Propagation, wherein implications are generated by watching two literals, the two literals watched being selected from variables not assigned to zero and determined least likely to be set; and c. continuing steps (a) and (b) until reaching a conflict or until all variables are assigned, wherein upon reaching a conflict the assignment of at least one variable is changed, implications resulting from the changed assignment are generated and steps (a) and (b) continue until determining a satisfying variable assignment, or until determining that no satisfying variable assignment exists.
- 40. A computer readable medium that configures a computer system to perform a method for determining satisfying variable assignments of a Boolean formula, or for determining that no satisfying variable assignments exist, the method comprising the steps of:
a. assigning a variable to zero or one, wherein deciding which variable to assign is determined using a strategy termed Variable State Independent Decaying Sum (VSIDS); b. generating implications resulting from the assignment using Boolean Constraint Propagation, wherein implications are generated by watching two literals, the two literals watched being initially selected from variables not assigned to zero, wherein upon assignment to zero of one of the two literals watched a remaining variable not assigned to zero is selected as a replacement, becoming one of the two literals watched; and c. continuing steps (a) and (b) until reaching a conflict or until all variables are assigned, wherein upon reaching a conflict the assignment of at least one variable is changed, implications resulting from the changed assignment are generated and steps (a) and (b) continue until determining a satisfying variable assignment, or until determining that no satisfying variable assignment exists.
- 41. A computer-readable medium that stores a program for determining satisfying variable assignments of a Boolean formula, or for determining that no satisfying variable assignments exist, the program comprising:
a. means for assigning a variable to zero or one; b. means for generating implications resulting from the assignment using Boolean Constraint Propagation, wherein implications are generated by watching two literals, the two literals watched being randomly selected from variables not assigned to zero; and c. means for continuing steps (a) and (b) until reaching a conflict or until all variables are assigned, wherein upon reaching a conflict the assignment of at least one variable is changed, implications resulting from the changed assignment are generated and steps (a) and (b) continue until determining a satisfying variable assignment, or until determining that no satisfying variable assignment exists.
- 42. A computer-readable medium that stores a program for determining satisfying variable assignments of a Boolean formula, or for determining that no satisfying variable assignments exist, the program comprising:
a. means for assigning a variable to zero or one; b. means for generating implications resulting from the assignment using Boolean Constraint Propagation, wherein implications are generated by watching two literals, the two literals watched being selected from variables not assigned to zero, wherein upon assignment to zero of one of the two literals watched a variable not assigned to zero is randomly selected as a replacement, becoming one of the two literals watched; and c. means for continuing steps (a) and (b) until reaching a conflict or until all variables are assigned, wherein upon reaching a conflict the assignment of at least one variable is changed, implications resulting from the changed assignment are generated and steps (a) and (b) continue until determining a satisfying variable assignment, or until determining that no satisfying variable assignment exists.
- 43. A computer-readable medium that stores a program for determining satisfying variable assignments of a Boolean formula, or for determining that no satisfying variable assignments exist, the program comprising:
a. means for assigning a variable to zero or one, wherein deciding which variable to assign is determined using a strategy termed Variable State Independent Decaying Sum (VSIDS); b. means for generating implications resulting from the assignment using Boolean Constraint Propagation; and c. means for continuing steps (a) and (b) until reaching a conflict or until all variables are assigned, wherein upon reaching a conflict the assignment of at least one variable is changed, implications resulting from the changed assignment are generated and steps (a) and (b) continue until determining a satisfying variable assignment, or until determining that no satisfying variable assignment exists.
- 44. A computer-readable medium that stores a program for determining satisfying variable assignments of a Boolean formula, or for determining that no satisfying variable assignments exist, the program comprising:
a. means for assigning a variable to zero or one, wherein the variable selected to assign is the variable determined most likely to be set; b. means for generating implications resulting from the assignment using Boolean Constraint Propagation; and c. means for continuing steps (a) and (b) until reaching a conflict or until all variables are assigned, wherein upon reaching a conflict the assignment of at least one variable is changed, implications resulting from the changed assignment are generated and steps (a) and (b) continue until determining a satisfying variable assignment, or until determining that no satisfying variable assignment exists.
- 45. A computer-readable medium that stores a program for determining satisfying variable assignments of a Boolean formula, or for determining that no satisfying variable assignments exist, the program comprising:
a. means for assigning a variable to zero or one; b. means for generating implications resulting from the assignment using Boolean Constraint Propagation, wherein implications are generated by watching two literals, the two literals watched being selected from variables not assigned to zero and determined least likely to be set; and c. means for continuing steps (a) and (b) until reaching a conflict or until all variables are assigned, wherein upon reaching a conflict the assignment of at least one variable is changed, implications resulting from the changed assignment are generated and steps (a) and (b) continue until determining a satisfying variable assignment, or until determining that no satisfying variable assignment exists.
- 46. A computer-readable medium that stores a program for determining satisfying variable assignments of a Boolean formula, or for determining that no satisfying variable assignments exist, the program comprising:
a. means for assigning a variable to zero or one, wherein deciding which variable to assign is determined using a strategy termed Variable State Independent Decaying Sum (VSIDS); b. means for generating implications resulting from the assignment using Boolean Constraint Propagation, wherein implications are generated by watching two literals, the two literals watched being initially selected from variables not assigned to zero, wherein upon assignment to zero of one of the two literals watched a remaining variable not assigned to zero is selected as a replacement, becoming one of the two literals watched; and c. means for continuing steps (a) and (b) until reaching a conflict or until all variables are assigned, wherein upon reaching a conflict the assignment of at least one variable is changed, implications resulting from the changed assignment are generated and steps (a) and (b) continue until determining a satisfying variable assignment, or until determining that no satisfying variable assignment exists.
RELATED APPLICATIONS
[0001] This application claims benefit of U.S. Provisional Application Serial No. 60/318,110, filed Sep. 7, 2001, entitled “Method for Efficient Implementation of Boolean Satisfiability.”
Provisional Applications (1)
|
Number |
Date |
Country |
|
60318110 |
Sep 2001 |
US |