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