利用最大割预测BDD操作的内存需求
1. 预备知识
在布尔函数的操作和分析中,有两个重要的基础概念:图与割,以及二元决策图(BDD)。
1.1 图与割
有向图是一个元组 $(V, A)$,其中 $V$ 是有限的顶点集,$A \subseteq V \times V$ 是顶点之间的弧集。对于顶点 $v \in V$,其入弧集为 $in(v) = A \cap (V \times {v})$,出弧集为 $out(v) = A \cap ({v} \times V)$。如果入度 $|in(v)| = 0$,则 $v$ 是源点;如果出度 $|out(v)| = 0$,则 $v$ 是汇点。
有向图 $(V, A)$ 的割是 $V$ 的一个划分 $(S, T)$,满足 $S \cup T = V$ 且 $S \cap T = \varnothing$。给定权重函数 $w : A \to R$,加权最大割问题是找到一个割 $(S, T)$,使得 $\sum_{a \in S \times T \cap A} w(a)$ 最大,即从 $S$ 中的顶点到 $T$ 中的顶点的弧的总权重最大。在不降低割的权重的情况下,可以假设 $V$ 中的所有源点都属于划分 $S$,所有汇点都属于 $T$。有向图的最大割问题是 NP 完全问题,即使将问题限制在有向无环图(DAG)上,问题的复杂度也不会降低。
如果权重函数 $w$ 仅计算穿过割的弧的数量,即 $\forall a \in A : w(a) = 1$,则上述问题简化为无权最大割问题,此时割的权重和大小可以互换。
1.2 二元决策图
二元决策图(BDD)是一个 DAG
基于最大割预测BDD内存需求
超级会员免费看
订阅专栏 解锁全文
188

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



