利用最大切割预测BDD操作的内存需求
1. ZDD操作中的最大分层切割
在BDD(Binary Decision Diagram,二元决策图)操作的相关结果中,部分结论与BDD的约简规则存在松散但微妙的联系。具体而言,定理1可直接应用于ZDD(Zero-suppressed Binary Decision Diagram,零抑制二元决策图),但定理2及其衍生结论为ZDD提供的边界并不合理。这是因为与BDD不同,在ZDD积构造算法执行过程中,被抑制的ZDD节点可能会重新出现。
例如在并集操作中,处理两个不同层级的节点对时,其高子节点会成为一个ZDD中的节点v与另一个ZDD中的⊥终端的积,即便在原始的f和g的两个切割中不存在指向⊥的弧。
为解决这一问题,引入了类似于(−∞) −→rf的特殊弧。若没有与⊥配对的弧,则弧(−∞) −→⊥会被视为输入切割的一部分。即假设将CB i:f替换为ZC B i:f,定义如下:
[
ZC B_{i:f} =
\begin{cases}
CB_{i:f} + 1 & \text{如果 } ⊥∈B \text{ 且 } CB_{i:f} = CB\setminus{⊥} {i:f} \
CB {i:f} & \text{否则}
\end{cases}
]
2. 将分层切割添加到Adiar算法中
Adiar算法有以下特点:
- 自上而下的Apply算法中优先队列的内容始终是输入或输出的1级或2级切割,可能排除指向一个或两个终端的弧。
- 自下而上的Reduce算法中优先队列的内容始终是输
超级会员免费看
订阅专栏 解锁全文
18

被折叠的 条评论
为什么被折叠?



