Questions tagged [binary-decision-diagram]

In the field of computer science, a binary decision diagram (BDD) or branching program, like a negation normal form (NNF) or a propositional directed acyclic graph (PDAG), is a data structure that is used to represent a Boolean function. On a more abstract level, BDDs can be considered as a compressed representation of sets or relations.

Wikipedia Article: http://en.wikipedia.org/wiki/Binary_decision_diagram

Introduction to Binary Decision Diagrams, Henrik Reif Andersen [PDF]: http://www.cs.unb.ca/~gdueck/courses/cs4835/bdd97.pdf

Fun With Binary Decision Diagrams, Donald Knuth [Video]: http://myvideos.stanford.edu/player/slplayer.aspx?coll=ea60314a-53b3-4be2-8552-dcf190ca0c0b&co=18bcd3a8-965a-4a63-a516-a1ad74af1119&o=true

87 questions
3
votes
2 answers

CUDD: Manipulation of BDDs

I'm working with CUDD C++ interface (https://github.com/ivmai/cudd) but there is almost no information about this library. I would like to know how to remove one variable according to its value. For example, I have now the next table stored in a…
A.J.X
  • 55
  • 5
3
votes
3 answers

How to turn a Boolean Function into a Binary Decision Diagram

Say I have the following Boolean functions: or(x, y) := x || y and(x, y) := x && y not(x) := !x foo(x, y, z) := and(x, or(y, z)) bar(x, y, z, a) := or(foo(x, y, z), not(a)) baz(x, y) := and(x, not(y)) Now I would like to construct a Binary Decision…
Lance
  • 75,200
  • 93
  • 289
  • 503
3
votes
2 answers

Any way to reorder variables for binary decision diagrams?

I am working on a teaching tool for binary decision diagrams in which there is also a feature for variable reordering. Can anyone suggest a suitable library which implements variable reordering while building the tree or some kind of algorithm which…
Razor21
  • 59
  • 1
  • 6
3
votes
1 answer

Manipulating BDD imported from a BLIF file in CUDD

I'm trying to import a BLIF file into the CUDD package, create a BDD out of it and then perform some manipulations. I've managed to import the BLIF file using the ntr package. However, I can't figure out how I'm supposed to access any of the…
red_house
  • 63
  • 3
3
votes
1 answer

How to plot an exploratory decision tree in R

Let's assume that a group of people is followed during time and at 3 time points they were asked if they would like become judge or not. During the time they will change their opinion. I would like to show graphically the change of opinion to become…
giordano
  • 2,954
  • 7
  • 35
  • 57
3
votes
0 answers

Internal representation of Enumeration Types in NuSMV/NuXMV

why is there a significant performance dropdown when representing a 16-bit signed integer variable as an intervall (-32768..32767) in comparison to fixed length bit arrays? Inspecting the pre-processed NuSMV/NuXMV model one can observe that the…
optional
  • 2,504
  • 4
  • 18
  • 30
2
votes
2 answers

Calculate image of a set for a function represented as an array of ROBDD's

I have a set of integers, represented as a Reduced Ordered Binary Decision Diagram (ROBDD) (interpreted as a function which evaluates to true iff the input is in the set) which I shall call Domain, and an integer function (which I shall call F)…
harold
  • 61,398
  • 6
  • 86
  • 164
2
votes
0 answers

Computing minimal cut sets from Binary Decision Diagram modelled using Python package dd

Question: How to compute the minimal cut sets (MCS) from a Binary Decision Diagram modeled using the Python package dd? Definition: In a nutshell, and based on the example below, a MCS is that set of minimal and unique occurrences that lead to an…
lisandrojim
  • 509
  • 5
  • 18
2
votes
1 answer

Generating Binary decision diagram from an available data structure

This question is a bit long; please bear with me. I have a data structure with elements like this {x1, x2, x3, x4, x5}: {0 0 0 0 0, 0 0 0 1 0, 1 1 1 1 0,.....} They represent all the TRUEs in the truth table. Of course, the 5-bit string elements…
user12928042
2
votes
2 answers

Representing BDDs in CUDD without simplification

Is it possible to get a bdd for (x0 ∧ x1 ) ∨ (x0 ∧!x1 ) ∨ (!x0 ∧ x1 ) ∨ (!x 0 ∧!x 1 ) that still has nodes representing the variables x0 and x1, using CUDD? I know the above boolean formula simplifies to the constant function 1. But I still want a…
2
votes
1 answer

How to Compute the Reachable Symbolic State Space for a Binary Decision Diagram

This question is about how to generate the symbolic state space for a symbolic model checker. First I go into some background which leads me to want to do this for MDDs, then I explain the question in more detail. This lecture by Edmund M. Clarke…
Lance
  • 75,200
  • 93
  • 289
  • 503
2
votes
1 answer

Exploration of State Space in NuSMV Source

I am working on a program correction/synthesis project. My task is to obtain an error trace (counter-example), locate it in the complete state space, and repair the model at that location. I want to implement this as a NuSMV extension. I have been…
Brishna Batool
  • 445
  • 3
  • 15
2
votes
4 answers

Are there any mature Binary Decision Diagram tools available?

Are there any Binary Decision Diagram (BDD) libraries for C, or other languages that are tested and have good documentation?
majid
2
votes
0 answers

Decision Diagram for Multiple Output Boolean Function in CUDD

I know that CUDD has support for ADDs (Algebraic Decision Diagrams) but I can't seem to figure out how I can use ADDs for multiple output boolean functions. The ADD for such functions would need to have multiple leaves, with each leaf representing a…
red_house
  • 63
  • 3
2
votes
2 answers

What is the benefit of being able to map a system's dependencies as a DAG (directed acyclic graph)?

If I were to organize a collection of objects' dependencies into a DAG, in what situations would that be more desirable than another data structure such as a BDD (binary decision diagram)?
Pup
  • 10,236
  • 6
  • 45
  • 66