我坚持使用CUDD(C接口)的BDD操作,我不知道我们是否可以在执行计算图像时(从状态到另一个BDD状态)删除一些变量以及如何移动结果BDD (最终BDD)获得所有变量,任何人都可以告诉我,如果我们可以通过CUDD做到这一点?干杯
答案 0 :(得分:3)
我从未使用过CUDD,但BDD中使用的变量列表通常称为 support 。 从BDD中删除变量通常通过存在量化来完成。
点击源代码,我找到了
/**Function********************************************************************
Synopsis [Finds the variables on which a DD depends.]
Description [Finds the variables on which a DD depends.
Returns a BDD consisting of the product of the variables if
successful; NULL otherwise.]
SideEffects [None]
SeeAlso [Cudd_VectorSupport Cudd_ClassifySupport]
******************************************************************************/
DdNode *
Cudd_Support(
DdManager * dd /* manager */,
DdNode * f /* DD whose support is sought */)
和
/**Function********************************************************************
Synopsis [Existentially abstracts all the variables in cube from f.]
Description [Existentially abstracts all the variables in cube from f.
Returns the abstracted BDD if successful; NULL otherwise.]
SideEffects [None]
SeeAlso [Cudd_bddUnivAbstract Cudd_addExistAbstract]
******************************************************************************/
DdNode *
Cudd_bddExistAbstract(
DdManager * manager,
DdNode * f,
DdNode * cube)