从 CUDD 管理器中的管理器中删除变量?

时间:2021-03-26 16:02:17

标签: variables cudd

我希望从 CUDD 库中的管理器中删除一个变量。这个问题是 8 年前在 this thread 中提出的,但没有令人满意的答案。现在有人知道吗?

1 个答案:

答案 0 :(得分:1)

看CUDD源码,好像不存在这样的函数。

请注意,这并不奇怪。很少有需要这种功能的情况。如果一个管理器的所有 BDD 都没有使用一个变量,那么删除一个变量几乎没有什么好处:没有变量,变量重新排序可能会快一点,并且有代表变量的唯一节点本身会占用一些内存。在许多情况下,这几乎不值得。然而,如果当前在 BDD 中使用了一个变量,那么删除变量的含义并没有明确定义。

此外,删除变量非常复杂——这意味着所有 BDD 节点都必须更改以保持变量数连续(这是置换表所需的不变量)。如果使用 BDD 的程序在别处使用变量编号,则更改变量编号是错误的来源。相比之下,添加新变量很容易,因为新变量只是附加在当前变量列表的末尾。

相关问题