Claims
- 1) A method for Boolean Satisfiability (SAT), said method comprising:
a) using a variable decision heuristic in a SAT algorithm; and b) pruning the search space of SAT using said decision heuristic, wherein said decision heuristic is based on partitioning a conjunctive normal form (CNF) of a Boolean formula corresponding to the SAT and said partitioning is induced by a separator set.
- 2) A method of image computation, wherein said image computation uses Boolean Satisfiability (SAT) and binary decision diagrams (BDD), said SAT is performed by a process comprising:
a) using a variable decision heuristic in a SAT algorithm; and b) pruning the search space of SAT using said decision heuristic, wherein said decision heuristic is based on partitioning a conjunctive normal form (CNF) of a Boolean formula corresponding to the SAT and said partitioning is induced by a separator set.
- 3) The method of claim 1, wherein said decision heuristic is targeted at variables that dynamically result in partitioning a problem corresponding to the SAT into subproblems consisting of clauses with disjoint variable support.
- 4) The method of claim 1, wherein said partitioning is performed recursively on existing partitions whose sizes are above a threshold.
- 5) The method of claim 1, wherein during the SAT preference is given to making decisions on separator variables.
- 6) The method of claim 1, wherein said partitioning is done using a dependency matrix.
- 7) The method of claim 6, wherein rows of said dependency matrix contain conjunctive partitions and columns of said dependency matrix contains variable corresponding to said conjunctive partitions.
- 8) The method of claim 7, wherein a minimum number of clauses are considered for each gate such that all dependencies are captured.
- 9) The method of claim 7, wherein an additional row is added to the dependency matrix to denote dependency of an input set corresponding to the BDD to various variables.
- 10) The method of claim 7, wherein a column is selected from an active region of the matrix that intersects a maximum number of shortest rows, said column is moved to leftmost position and the active region is shrunk to exclude the selected column.
- 11) The method of claim 10, wherein rules are incorporated to break ties whenever there are multiple columns that can be moved to the left.
- 12) The method of column 11, wherein said rule comprises giving preference to columns with a most number of entries in an inactive region.
- 13) The method of claim 1, wherein said partitioning is done using a hypergraph partitioning technique.
- 14) The method of claim 13, wherein a CNF graph is used, where nodes denote clauses and hyperedges denote variables of formulae corresponding to the CNF.
- 15) The method of claim 13, wherein a node is added to the CNF graph to represent inputs of the BDD.
- 16) The method of claim 14, wherein each hyperedge is provided a weight that is equal to a number of nodes said each hyperedge connects to.
- 17) The method of claim 13, wherein a minimum-weight cutset of the graph is determined such that the cutset partitions the graph into unconnected components.
- 18) The method of claim 17, wherein the minimum weight cutset comprises hyperedges.
- 19) The method of claim 18, wherein a separator partition is defined as all clause that variables corresponding to hyperedges in the minimum weight cutset appear in.
- 20) The methods of claim 1, wherein the partitioning results in a partition tree such that a size of each terminal partition is less than a threshold.
- 21) The method of claim 20, wherein the partition tree is used to assign a weight each to each variable in the CNF representation.
- 22) The method of claim 21, wherein the weight is used to rank variables.
- 23) The method of claim 21 wherein terminals corresponding to the separator are assigned a weight of 2 and other terminals are assigned a weight of 1.
- 24) The method of claim 23, wherein shared separator variables are give more preference that private separator variables.
- 25) The method of claim 24 wherein the preference is implemented by calculating a weight for a variable by adding contributions from each terminal partition that the variable appears in.
- 26) The method of claim 21, wherein the weight assigned to each terminal partition decreased according to increased depth from top of the partition tree.
- 27) The method of claim 21, wherein smaller partitions are given higher weight.
I. DESCRIPTION
[0001] This Application claims priority from co-pending U.S. Provisional Application Ser. No. 60/281,793, filed Apr. 6, 2001.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60281793 |
Apr 2001 |
US |