符号化OBDD算法在图问题中的应用与复杂度分析
1. 布尔函数运算基础
在处理布尔函数时,有两个重要的操作:合成(Synthesis)和量化(Quantification)。
- 合成 :给定两个π - OBDD (G_f) 和 (G_g) ,以及一个二元布尔运算符 (\otimes\in B_2) ,可以计算出函数 (h := f \otimes g) 的π - OBDD (G_h) 。这个计算过程在时间和空间上的复杂度为 (O(|G_f|·|G_g|)) ,并且 (G_h) 的大小上限为 (O(|G_f| · |G_g|)) 。
- 量化 :给定 (G_f) 、一个索引 (i \in {1, \ldots, n}) 和一个量词 (Q \in {\exists, \forall}) ,可以计算出函数 (h := (Qx_i)f) 的π - OBDD (G_h) ,其中 ((\exists x_i)f := f| {x_i = 0} \vee f| {x_i = 1}) , ((\forall x_i)f := f| {x_i = 0} \wedge f| {x_i = 1}) 。 (G_h) 的计算可以通过两次常量替换和一次合成操作实现,时间和空间复杂度为 (O(|G_f|^2)) 。
2. 基于符号化OBDD的图表示
对于一个有 (N) 个顶点 (v_0, \ldots, v_{N - 1}) 的图 (G = (V, E)) ,其边集 (E) 可以用OBDD来表示其特征函数。
- 无权重图
超级会员免费看
订阅专栏 解锁全文
20

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



