Skip to main content
Article thumbnail
Location of Repository

Anytime Algorithms for ROBDD Symmetry Detection and Approximation

By Neil Kettle


Reduced Ordered Binary Decision Diagrams (ROBDDs) provide a dense and memory efficient representation of Boolean functions. When ROBDDs are applied in logic synthesis, the problem arises of detecting both classical and generalised symmetries. State-of-the-art in symmetry detection is represented by Mishchenko's algorithm. Mishchenko showed how to detect symmetries in ROBDDs without the need for checking equivalence of all co-factor pairs. This work resulted in a practical algorithm for detecting all classical symmetries in an ROBDD in O(|G|<sup>3</sup>) set operations where |G| is the number of nodes in the ROBDD. Mishchenko and his colleagues subsequently extended the algorithm to find generalised symmetries. The extended algorithm retains the same asymptotic complexity for each type of generalised symmetry. Both the classical and generalised symmetry detection algorithms are monolithic in the sense that they only return a meaningful answer when they are left to run to completion. In this thesis we present efficient anytime algorithms for detecting both classical and generalised symmetries, that output pairs of symmetric variables until a prescribed time bound is exceeded. These anytime algorithms are complete in that given sufficient time they are guaranteed to find all symmetric pairs. Theoretically these algorithms reside in O(n<sup>3</sup>+n|G|+|G|<sup>3</sup>) and O(n<sup>3</sup>+n<sup>2</sup>|G|+|G|<sup>3</sup>) respectively, where n is the number of variables, so that in practice the advantage of anytime generality is not gained at the expense of efficiency. In fact, the anytime approach requires only very modest data structure support and offers unique opportunities for optimisation so the resulting algorithms are very efficient. The thesis continues by considering another class of anytime algorithms for ROBDDs that is motivated by the dearth of work on approximating ROBDDs. The need for approximation arises because many ROBDD operations result in an ROBDD whose size is quadratic in the size of the inputs. Furthermore, if ROBDDs are used in abstract interpretation, the running time of the analysis is related not only to the complexity of the individual ROBDD operations but also the number of operations applied. The number of operations is, in turn, constrained by the number of times a Boolean function can be weakened before stability is achieved. This thesis proposes a widening that can be used to both constrain the size of an ROBDD and also ensure that the number of times that it is weakened is bounded by some given constant. The widening can be used to either systematically approximate an ROBDD from above (i.e. derive a weaker function) or below (i.e. infer a stronger function). The thesis also considers how randomised techniques may be deployed to improve the speed of computing an approximation by avoiding potentially expensive ROBDD manipulation

Topics: QA76
OAI identifier:

Suggested articles


  1. A Digital Synthesis Procedure Under Function Symmetries and Mapping Methods. doi
  2. (1968). A Formal Basis for the Heuristic Determination of Minimum Cost Paths in Graphs. doi
  3. (1993). A New Graph Based Prime Computation Technique. doi
  4. A New Method to Compute Prime and Essential Prime Implicants of Boolean Functions. doi
  5. (1991). A Proposal for a New Block Encryption Standard. In doi
  6. (2000). A Simple Polynomial Groundness Analysis for Logic Programs. doi
  7. (1992). Abstract Interpretation and Application to Logic Programs. doi
  8. (1998). Abstract Interpretation Using Typed Decision Graphs. doi
  9. (1977). Abstract Interpretation: a Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In doi
  10. (1997). Abstrakte Interpretation logischer Programme: Theorie, Implementierung, Generierung. PhD thesis, Universit¨ at des Saarlandes,
  11. (1997). Abstrakte Interpretation logischer Programme: Theorie, Implementierung, Generierung. PhD thesis, Universita¨t des Saarlandes,
  12. (1962). Algorithm 97: Shortest Path. doi
  13. (1997). Algorithms for Scheduling Real-Time Tasks with Input Error and End-to-End Deadlines. doi
  14. (1988). An Analysis of Time-Dependent Planning.
  15. (2006). An Anytime Symmetry Detection Algorithm for ROBDDs. doi
  16. (1995). Anytime Scheduling with Neural Networks. doi
  17. (2005). Average Path Length of Binary Decision Diagrams. doi
  18. BDDNOW: A Parallel BDD Package. doi
  19. (1978). Binary Decision Diagrams. doi
  20. (1996). Bit-Level Analysis of an SRT Divider Circuit. doi
  21. (2009). Boolean Functions: Theory, Algorithms and Applications, doi
  22. (1992). Boolean Matching Using Binary Decision Diagrams with Applications to Logic Synthesis and Verification. doi
  23. (1991). Boolean Satisfiability and Equivalence Checking using General Binary Decision Diagrams. doi
  24. (2006). Combining Widening and Acceleration in Linear Relation Analysis. In doi
  25. (1992). Comparing the Galois Connection and Widening/Narrowing Approaches to Abstract Interpretation. doi
  26. (1979). Computers and Intractability a Guide to the Theory of NP-Completeness. Freeman and Company, doi
  27. (2003). Construction of Efficient BDDs for Bounded Arithmetic Constraints. doi
  28. (2000). Constructive Library-Aware Synthesis using Symmetries. doi
  29. (1993). Dynamic Variable Reoredering for BDD Minimization. doi
  30. (1990). Efficient Implementation of a BDD Package. doi
  31. (2004). Exploiting Structure in Symmetry Detection for CNF. doi
  32. (2008). Extra Library of DD Procedures,
  33. (1999). Factorizing Equivalent Variable Pairs in ROBDD-Based Implementations of Pos. doi
  34. (2003). Fast Computation of Symmetries in Boolean Functions. doi
  35. (2000). Finding Bugs with a Constraint Solver. doi
  36. (1990). Finding the Optimal Variable Ordering for Binary Decision Diagrams. doi
  37. (2004). Finite-Tree Analysis for Constraint Logic-Based Languages. doi
  38. (2001). Generalized Symmetric Variables. doi
  39. (2000). Generalized Symmetries in Boolean Functions. In doi
  40. (1986). Graph-Based Algorithms for Boolean Function Manipulation. doi
  41. (1996). Graph-based Representations of Discrete Functions. doi
  42. (1982). Hilbert’s Tenth Problem is Unsolvable. doi
  43. (1992). Implicit and Incremental Computation of Primes and Essential Primes of Boolean Functions. doi
  44. Improving the Variable Ordering of OBDDs is NP-complete. doi
  45. (2008). Inferring Non-Suspension Conditions for Logic Programs with Dynamic Scheduling. doi
  46. (1999). International Organization for Standardization. doi
  47. (2000). Least Upper Bounds for the Size of OBDDs Using Symmetry Properties. doi
  48. (1996). Logic Synthesis and Verification Algorithms. doi
  49. (2006). Mailenable v2.33,
  50. (1971). Maximal Sized Antichains in Partial Orders. doi
  51. (2004). Minimization of the Expected Path Length in BDDs Based on Local Changes. doi
  52. (2000). Model Checking. doi
  53. (2005). Monte Carlo Model Checking. In doi
  54. (1991). Multilevel Logic Synthesis of Symmetric Switching Functions. doi
  55. (1995). On Relationship between Boolean Functions and Their Prime Implicants in OBDD Size.
  56. (1971). On the Complexity of Theorem-proving Procedures. doi
  57. (1991). On the Complexity of VLSI Implementations and Graph Representations of Boolean Functions with Application to Integer Multiplication. doi
  58. (1978). On The Number of Prime Implicants. doi
  59. (1983). On-line Computation of Transitive Closure of Graphs. doi
  60. (2006). Parameterized Complexity. doi
  61. (1981). Practical Graph Isomorphism. doi
  62. (2002). Precise Pair-Sharing Analysis of Logic Programs. doi
  63. (2005). Precise Widening Operators for Convex Polyhedra. doi
  64. (2003). Principles of Constraint Programming. doi
  65. (1972). Reducibility Among Combinatorial Problems. In doi
  66. (2002). Remote Buffer Overflow Vulnerability in Sun RPC,
  67. (2006). Scheduling of Image Processing Using Anytime Algorithm for Real-time System. doi
  68. (2004). Set Bounds and (Split) Set Domain Propagation Using ROBDDs. doi
  69. (2004). Set Domain Propagation Using ROBDDs. doi
  70. (1999). Sharing and Groundness Dependencies in Logic Programs. doi
  71. (2006). SMT Techniques for Fast Predicate Abstraction. In doi
  72. (2005). Solving Set Constraint Satisfaction Problems using ROBDDs. doi
  73. (2003). Survey of Code-Size Reduction Methods. doi
  74. (1992). Symbolic Boolean Manipulation with Ordered BinaryDecision Diagrams. doi
  75. (1979). Systematic Design of Program Analysis Frameworks. In doi
  76. (2005). Techniques for Scaling Up Analyses Based on Pre-interpretations. doi
  77. (1990). Technology Mapping Using Boolean Matching and Don’t Care Sets. doi
  78. (1995). Test Generation for Path Delay Faults Using Binary Decision Diagrams. doi
  79. (2005). The ASTRE´E Analyser. doi
  80. (1993). The Graph Isomorphism Problem: Its Structural Complexity. Birkh¨ auser,
  81. (1993). The Graph Isomorphism Problem: Its Structural Complexity. Birkha¨user,
  82. (1998). Two classes of Boolean Functions for Dependency Analysis. doi
  83. (2005). Two Open Questions On ROBDDs and Prime Implicants. and Test/abstract30.html
  84. (1993). Verifying Equivalence of Functions with Unknown Input Correspondence. doi
  85. (2005). Verifying Very Large Industrial Circuits Using 100 Processes and Beyond. In doi
  86. (2006). Widening ROBDDs with Prime Implicants. In Tools and Algorithms for the Construction and Analysis of Systems, doi
  87. (1999). Worst-Case Groundness Analysis using Positive Boolean Functions. doi
  88. (1993). Zero-Suppressed BDDs for Set Manipulation in Combinatorial Problems. doi

To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.