obdd: Ordered Reduced Binary Decision Diagrams

[ gpl, library, logic ] [ Propose Tags ]

Construct, combine and query OBDDs; an efficient representation for formulas in propositional logic.

This is mostly educational. The BDDs do not share nodes and this might introduce inefficiencies.

An important (for me, in teaching) feature is that I can immediately draw the BDD to an X11 window (via graphviz). For example, to show the effect of different variable orderings, try this in ghci:

import qualified Prelude as P
import OBDD
let f [] = false; f (x:y:zs) = x && y || f zs
display P.$ f P.$ P.map variable [1,2,3,4,5,6]
display P.$ f P.$ P.map variable [1,4,2,5,3,6]

If you want better performance, use CUDD Haskell bindings, see this example.

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.2, 0.2.3, 0.2.5, 0.2.7, 0.3.1, 0.3.2, 0.3.3, 0.4.0, 0.5.0, 0.6.0, 0.6.1, 0.8.1, 0.8.2, 0.8.4, 0.9.0
Dependencies array, base (>=4 && <5), containers (>=0.5), mtl, process, random [details]
License LicenseRef-GPL
Author Johannes Waldmann
Maintainer Johannes Waldmann
Category Logic
Home page https://github.com/jwaldmann/haskell-obdd
Source repo head: git clone git://github.com/jwaldmann/haskell-obdd.git
Uploaded by JohannesWaldmann at 2016-11-22T23:15:33Z
Distributions
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 10214 total (63 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2016-11-22 [all 1 reports]