On threshold BDDs and the optimal variable ordering problem

Many combinatorial optimization problems can be formulated as 0/1 integer programs (0/1 IPs). The investigation of the structure of these problems raises the following tasks: count or enumerate the feasible solutions and find an optimal solution according to a given linear objective function. All these tasks can be accomplished using binary decision diagrams (BDDs), a very popular and effective datastructure in computational logics and hardware verification. We present a novel approach for these tasks which consists of an output-sensitive algorithm for building a BDD for a linear constraint (a so-called threshold BDD) and a parallel AND operation on threshold BDDs. In particular our algorithm is capable of solving knapsack problems, subset sum problems and multidimensional knapsack problems. BDDs are represented as a directed acyclic graph. The size of a BDD is the number of nodes of its graph. It heavily depends on the chosen variable ordering. Finding the optimal variable ordering is an NP-hard problem. We derive a 0/1 IP for finding an optimal variable ordering of a threshold BDD. This 0/1 IP formulation provides the basis for the computation of the variable ordering spectrum of a threshold function. We introduce our new tool azove 2.0 as an enhancement to azove 1.1 which is a tool for counting and enumerating 0/1 points. Computational results on benchmarks from the literature show the strength of our new method.

[1]  Kenneth J. Supowit,et al.  Finding the Optimal Variable Ordering for Binary Decision Diagrams , 1990, IEEE Trans. Computers.

[2]  Rolf Drechsler,et al.  An improved branch and bound algorithm for exact BDD minimization , 2003, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[3]  Prof. Dr. Christoph Meinel,et al.  Algorithms and Data Structures in VLSI Design , 1998, Springer Berlin Heidelberg.

[4]  Shuzo Yajima,et al.  Size of Ordered Binary Decision Diagrams Representing Threshold Functions , 1996, Theor. Comput. Sci..

[5]  Alexander Schrijver,et al.  Theory of linear and integer programming , 1986, Wiley-Interscience series in discrete mathematics and optimization.

[6]  Ingo Wegener,et al.  Branching Programs and Binary Decision Diagrams , 1987 .

[7]  Bernd Becker,et al.  BDDs in a Branch and Cut Framework , 2005, WEA.

[8]  Thomas Stützle,et al.  SATLIB: An Online Resource for Research on SAT , 2000 .

[9]  Randal E. Bryant,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 1986, IEEE Transactions on Computers.

[10]  C. Y. Lee Representation of switching circuits by binary-decision programs , 1959 .

[11]  G. Ziegler Lectures on Polytopes , 1994 .

[12]  Beate Bollig,et al.  Improving the Variable Ordering of OBDDs Is NP-Complete , 1996, IEEE Trans. Computers.

[13]  Alasdair Urquhart,et al.  Formal Languages]: Mathematical Logic--mechanical theorem proving , 2022 .

[14]  Friedrich Eisenbrand,et al.  0/1 Vertex and Facet Enumeration with BDDs , 2007, ALENEX.