我已经使用 CUDD 包成功创建了 BDD。我还可以使用一些已经构建的工具对其进行可视化。我有兴趣使用 CUDD 的 DDDMP 包将 BDD 存储在文件中。我读到Dddmp_cuddBddStore()正在为我们做这件事。我找不到使用该功能的任何示例。它的论点有点复杂。任何使用该功能的小例子都会有很大帮助。
问问题
230 次
1 回答
1
与 Python 包的 CUDD 的 Cython 绑定提供了 DDDMP 包的接口dd
。下面是一个创建布尔函数的 BDD,将其保存到 DDDMP 文件,然后从该文件加载它的示例。
from dd import cudd as _bdd
bdd = _bdd.BDD()
bdd.declare('x', 'y')
# The BDD node for the conjunction of variables x and y
u = bdd.add_expr('x /\ y')
# save to a DDDMP file (the file extension matters,
# for example a PDF extension would result in plotting
# a diagram using GraphViz)
bdd.dump('storage.dddmp', [u])
# load the BDD from the DDDMP file
u_ = bdd.load('storage.dddmp')
assert u == u_, (u, u_)
Cython 模块的源代码dd/cudd.pyx
包括如何使用函数的示例Dddmp_cuddBddStore
和Dddmp_cuddBddLoad
这里描述dd
了使用模块的安装,可以总结为dd.cudd
pip download dd --no-deps
tar -xzf dd-*.tar.gz
cd dd-*/
python setup.py install --fetch --cudd
这将下载和构建 CUDD,并构建和安装到 CUDD 的 Cython 绑定dd
。
于 2020-02-23T13:45:19.883 回答