需要有关 BDD 图形的帮助

Need help on BDDs graphs

提问人:Marco Antoniotti 提问时间:1/15/2018 更新时间:1/24/2018 访问量:102

问:

我正在重新实施(为了好玩,做一些工作和NIH的严重案例)一个ROBDD库。我想有一些由其他库构建的“参考”图来比较结果 [*]

例如,给定变量阶数 x1 < y1 < x2 < y2,得到的图形将用于什么

(x1 <=> y1) /\ 不是 (x2 <=> y2) /\ (x2 <=> y2) [**]

我假设是标准运算符。另外,如果有帮助,我假设 /\ 是左关联的。

欢迎任何其他小例子。

谢谢

马可

[*]我知道!我应该下载库,安装它们并使用它们,但我很懒惰。

[**]这个例子取自一个漂浮在网络上的 Moeller 和 Oestergard 的例子。

布尔表达式 二进制决策图

评论

0赞 Marco Antoniotti 1/15/2018
我忘了。我假设使用补边。
0赞 meolic 1/22/2018
你能给我们一个Moeller和Oestergard的例子的链接吗?
0赞 Marco Antoniotti 1/24/2018
查看 blakmoeller.net/pub 该示例在学士论文中。

答:

0赞 meolic 1/22/2018 #1

我是 BDD Scout 的作者 - 一个用于可视化 BDD 的工具。它适用于 MS Windows 和 GNU/Linux。它可以为您输入的任何布尔函数显示带有互补边的 ROBDD。它还支持没有互补边的 ROBDD 和 0-sup-BDD(又名 Minato 推出的 ZDD)。它还允许您对变量进行重新排序。您可以从 http://biddy.meolic.com/ 下载它。您的公式等于零,但例如,下面是为布尔函数生成的图形:

F = (x1*y1+!x1*!y1) * !(x2*y2+!x2*!y2)

enter image description here

编辑:请在下面找到两个使用 BDD Scout 生成的 PNG 文件,用于 Moeller 和 Oestergard 的学士论文(第 9 页)中的布尔函数。不幸的是,BDD Scout 不支持 <=>因此必须将函数指定为:

F = !( (!(x1^y1) * (x2^y2)) ^ !(x2^y2) )

enter image description here enter image description here

评论

0赞 Marco Antoniotti 1/23/2018
谢谢。非常有用的工具。
0赞 Marco Antoniotti 1/23/2018
也。我输入了错误的示例。我的意思是:(x1 <=> y1) /\ 不是 (x2 <=> y2) <=> (x2 <=> y2)
0赞 meolic 1/14/2020
两年后,如果有人仍然对 BDD 的图片感兴趣,这里有一些文档显示了所有带有 2 和 3 变量的布尔函数的图形: BDD 百科全书
1赞 Marco Antoniotti 5/28/2023
总是感兴趣。又过了三年:)