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