【发布时间】:2021-03-26 16:02:17
【问题描述】:
我希望从 CUDD 库的管理器中删除一个变量。这个问题是 8 年前在this thread 中提出的,没有令人满意的答案。现在有人知道吗?
【问题讨论】:
我希望从 CUDD 库的管理器中删除一个变量。这个问题是 8 年前在this thread 中提出的,没有令人满意的答案。现在有人知道吗?
【问题讨论】:
看CUDD源码,好像没有这样的功能。
请注意,这并不奇怪。很少有需要这种功能的情况。如果一个管理器的所有 BDD 都不使用一个变量,那么删除一个变量几乎没有什么好处:没有变量的变量重新排序可能会稍微快一点,并且存在表示变量本身的唯一节点会占用一些内存。在许多情况下,这几乎不值得。但是,如果当前在 BDD 中使用了变量,则删除变量的含义并没有明确定义。
此外,删除变量非常复杂——这意味着所有 BDD 节点都必须更改以保持变量编号连续(这是置换表所需的不变量)。如果使用 BDD 的程序在其他地方使用变量编号,则更改变量编号是错误的来源。相比之下,添加新变量很容易,因为新变量只是附加在当前变量列表的末尾。
【讨论】: