0

For the masters of CUDD out there, I'm actually using the Python equivalent, tulip-dd: https://github.com/tulip-control/dd.

I'm trying to plot the MDD, or multistate decision diagram defined by:

from omega.symbolic import temporal as trl
aut = trl.Automaton()
aut.declare_variables(y=(0, 3))
u=aut.add_expr('y = 1')

One of the questions I have is how to plot the MDD. I tried:

aut.collect_garbage()
aut.dump('example_mdd_v.pdf')

But there are no such methods for Automatons.

  • 1
    The "temporal" class that you are using does not seem to represent an MDD. Rather, it stores the parts of the transition system in dictionaries that in turn map keys to BDDs. Hence, their structure is internally more complicated, and a single dump function to a PDF does not appear to exist. There is however the __str__ function, so my suggestion is to try "print(str(aut))" so that you can check if that is readable enough already. – DCTLib Mar 25 '21 at 08:40
  • @DCTLib, are you familiar with tulipp-dd and tulip-omega? Seems like you are and I had some other questions on algos I've been trying to build based on them. – Gui Larange Mar 25 '21 at 11:52
  • 1
    No, I'm not familiar with them but know some of the academic works of the authors. After seeing your question, I looked at the source code to find out whether they are really using something other than BDDs for automaton (edge) representation, because that would be interesting academically. But it looks like they use standard BDDs embedded into a more elaborate data structure. – DCTLib Mar 26 '21 at 09:51
  • But there's more to it.Check out : https://github.com/tulip-control/dd/blob/master/doc.md#multi-valued-decision-diagrams-mdd (Have to scroll to end to find the MDD data structure.) – Gui Larange Mar 26 '21 at 12:16
  • Yes, but that's for multi-valued decision diagrams (MDDs). You mentioned "multistate decision diagrams", which I haven't heard of before. – DCTLib Mar 26 '21 at 14:25
  • Doh, my bad! I meant multi-valued. The intent is to use MDD to solve multi-state reliability quantification, much like you suggested a recursive algorithm to solve binary reliability with BDDs. Could I send you an email with an attachment to show you what I'm talking about. This does have academic/research potential. – Gui Larange Mar 31 '21 at 19:43
  • Just dropped you a mail one minute ago. – DCTLib Apr 01 '21 at 21:23

0 Answers0