电话坏了



我正在尝试使用DDcal来评估二元决策图。当我尝试评估一些公式时,例如:a+b*c',我总是得到这个错误:

util_pipefork: can not exec dot: No such file or directory.

有没有人知道我如何解决这个错误?

您可以使用Python包dd与使用Python或CUDD后端的bdd一起工作(免责声明:我是dd的作者)。例子:

import dd.autoref as _bdd  # to use CUDD, replace `dd.bdd` with `dd.cudd`
bdd = _bdd.BDD()
bdd.declare('a', 'b', 'c')
u = bdd.add_expr(r'a / (b / ~ c)')

语法在文档中有描述。如果你更喜欢写a | (b & ~ c),那也可以。纯Python后端是用pip install dd安装的。

您也可以使用dot绘图(假设安装了GraphViz):

bdd.dump('bdd_graph.pdf')

方法BDD.dump在这里描述。

关于DDcal的消息

grep -ilr "util_pipefork" ./*表示您从DDcal报告的错误似乎来自以下行:

/* Set up bidirectional pipe to/from dot. */
/* A unidirectional pipe should suffice. We'll try it some day. */
retval = util_pipefork(args,&toCommand,&fromCommand,&pid);
if (retval == 0) {
(void) fprintf(stderr,"Panic: util_pipefork returned 0!n");
exit(2);
}
因此,您需要安装GraphViz,并确保其可执行文件(特别是dot)位于运行时环境的$PATH中。

相关内容

  • 没有找到相关文章

最新更新