有什么方法可以为二元决策图重新排序变量?

Any way to reorder variables for binary decision diagrams?

我正在开发一个二元决策图的教学工具,其中还有一个变量重新排序的功能。任何人都可以建议一个合适的库在构建树时实现变量重新排序或实现相同的某种算法吗?

如果我能使用像 pyeda、buDDy 或 pycudd 这样的库,那将是最好的,因为我已经熟悉这些库了。

谢谢,如果您需要任何澄清,请发表评论。

你看过 Ioannis Filippidis 的 dd 吗?

我是 pyeda 的作者。在 Python 中实现 ROBDD 绝对有趣,并且可能具有一定的教育价值,但它绝对不会进行任何自动变量重新排序,因此如果这是一个要求,我建议查看 dd 或其他你名单上的那些。

我在马里博尔大学的小组正在制作 BDD Scout ( http://biddy.meolic.com/ ),这是一种 BDD 可视化工具。目前,支持具有补边的 ROBDD 和具有补边的 0-sup-BDD。支持转换。它们都支持重新排序(即变量交换和筛选算法)。 BDD Scout 在 GNU/Linux MS Windows 上工作(源和二进制包可用)。我们希望有一天我们的工具成为一个很好的教学工具,但我们需要一些反馈来改进它。除了鲁棒性之外,功能集是需要改进的最关键部分。如果您有时间尝试一下,请随时给我们任何意见和问题。