comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: BDD package in Ada.
Date: Wed, 8 Apr 2015 08:38:10 +0200
Date: 2015-04-08T08:38:10+02:00	[thread overview]
Message-ID: <1miph3v72f4y2$.1u76w2ujg74zf$.dlg@40tude.net> (raw)
In-Reply-To: 44b2e375-8993-4a7e-b81a-6a7b512d2e3e@googlegroups.com

On Tue, 7 Apr 2015 13:35:53 -0700 (PDT), Vincent DIEMUNSCH wrote:

> Binary Decisions Diagram [1] is a key technology in computer science, for
> the verification of software and hardware designs.  Donald Knuth calls
> BDDs "one of the only really fundamental data structures that came out in
> the last twenty-five years" and mentions that Bryant's 1986 paper was for
> some time one of the most-cited papers in computer science.

I would not call it "fundamental". It is simply a tree with factored out
subtrees. Need not to be binary, BTW.

IMO, factoring out similar subtrees is merely a technique to save memory
and reduce overheard of some computations over the graph nodes. Sometimes
it pays off, sometimes it does not.

As for decision trees, they were known and used in AI for I don't know how
long, ever.

> There are many BDD libraries in C/C++, there are libraries in Lisp,
> Python, Java, Lua, OCaml, Prolog... all available on the Internet [2], but
> I couldn't find one in Ada. I am pretty sure that there must be excellent
> BDD libraries in Ada used in the Defense Industry, but it seems that no
> one is public.

Of course there exist Ada implementations. I have one in Ada

http://www.dmitry-kazakov.de/ada/fuzzy_ml_api.htm#Fuzzy.Graph

with binary and general case nodes.

> So I hesitate between developping a binding to an existing C library, and
> thus having access to the best and fastest implementations, or developping
> one myself, but the result might be less efficient, although easier to use
> from Ada and more portable.
> 
> Any piece of advice to give me? Would some of you be interested in using
> it? In contributing to the development as an Open Source? 

I don't think structures like trees and directed graphs could be packed in
a library. Each application of graphs is very specific. The abstraction
level is too low to make it a decent container. Memory management is always
different. Operations are always different. The impact of the
representation is so huge that different application almost always require
a different implementation.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


  reply	other threads:[~2015-04-08  6:38 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-07 20:35 BDD package in Ada Vincent DIEMUNSCH
2015-04-08  6:38 ` Dmitry A. Kazakov [this message]
2015-04-08  7:44   ` Vincent DIEMUNSCH
2015-04-08 12:25     ` jan.de.kruyf
2015-04-08 18:39       ` vincent.diemunsch
2015-04-09  9:31         ` jan.de.kruyf
2015-04-09 16:51         ` jan.de.kruyf
2015-04-09 18:23           ` vincent.diemunsch
2015-04-08 21:30     ` Randy Brukardt
2015-04-08 23:40       ` Paul Rubin
2015-04-09  9:05         ` gautier_niouzes
2015-04-09 23:49           ` Randy Brukardt
2015-04-09  9:06       ` Georg Bauhaus
2015-04-09  9:29         ` Dmitry A. Kazakov
2015-04-10  0:05         ` Randy Brukardt
2015-04-08 21:20   ` Randy Brukardt
2015-04-08 18:27 ` Per Sandberg
2015-04-09 15:24 ` Paul Rubin
2015-04-09 20:02   ` vincent.diemunsch
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox