Learning to Order BDD Variables in Verification

06/30/2011
by   O. Grumberg, et al.
0

The size and complexity of software and hardware systems have significantly increased in the past years. As a result, it is harder to guarantee their correct behavior. One of the most successful methods for automated verification of finite-state systems is model checking. Most of the current model-checking systems use binary decision diagrams (BDDs) for the representation of the tested model and in the verification process of its properties. Generally, BDDs allow a canonical compact representation of a boolean function (given an order of its variables). The more compact the BDD is, the better performance one gets from the verifier. However, finding an optimal order for a BDD is an NP-complete problem. Therefore, several heuristic methods based on expert knowledge have been developed for variable ordering. We propose an alternative approach in which the variable ordering algorithm gains 'ordering experience' from training models and uses the learned knowledge for finding good orders. Our methodology is based on offline learning of pair precedence classifiers from training models, that is, learning which variable pair permutation is more likely to lead to a good order. For each training model, a number of training sequences are evaluated. Every training model variable pair permutation is then tagged based on its performance on the evaluated orders. The tagged permutations are then passed through a feature extractor and are given as examples to a classifier creation algorithm. Given a model for which an order is requested, the ordering algorithm consults each precedence classifier and constructs a pair precedence table which is used to create the order. Our algorithm was integrated with SMV, which is one of the most widely used verification systems. Preliminary empirical evaluation of our methodology, using real benchmark models, shows performance that is better than random ordering and is competitive with existing algorithms that use expert knowledge. We believe that in sub-domains of models (alu, caches, etc.) our system will prove even more valuable. This is because it features the ability to learn sub-domain knowledge, something that no other ordering algorithm does.

READ FULL TEXT

page 21

page 26

research
09/27/2019

Quantum Algorithm for Finding the Optimal Variable Ordering for Binary Decision Diagrams

An ordered binary decision diagram (OBDD) is a directed acyclic graph th...
research
12/14/2010

On the size of data structures used in symbolic model checking

Temporal Logic Model Checking is a verification method in which we descr...
research
07/06/2023

LEO: Learning Efficient Orderings for Multiobjective Binary Decision Diagrams

Approaches based on Binary decision diagrams (BDDs) have recently achiev...
research
04/28/2020

Iterative Variable Reordering: Taming Huge System Families

For the verification of systems using model-checking techniques, symboli...
research
12/24/2018

Efficient Parametric Model Checking Using Domain Knowledge

We introduce an efficient parametric model checking (ePMC) method for th...
research
08/17/2019

Software Verification with PDR: Implementation and Empirical Evaluation of the State of the Art

Property-directed reachability (PDR) is a SAT/SMT-based reachability alg...
research
07/11/2022

Adaptive Behavioral Model Learning for Software Product Lines

Behavioral models enable the analysis of the functionality of software p...

Please sign up or login with your details

Forgot password? Click here to reset