跳到主要内容
返回时间线
arXiv来源发表:

决策图不再数子函数:改用割矩阵的秩,ATDD在任意vtree上给出唯一规范形

核心概要

树决策图(TDD)按每个vtree割上不同子函数的个数计宽,这种计数看不见子函数之间的线性相关。把计数换成割矩阵的秩,得到代数树决策图(ATDD),其宽度即因子秩,且对每个函数和每个vtree只有唯一表示。ATDD比TDD指数级更简洁,比结构化确定性DNNF准多项式更简洁,同时保留多项式时间的模型计数、加权模型计数与等价检查。

Source-provided article image: Factor Rank: A Canonical Algebraic Generalization of Tree Decision Diagrams
arXiv

深度剖析

布尔函数的一种新表示把宽度从“不同子函数有多少个”改成“这些子函数张成的空间有多大”,因此同一函数在同一个vtree下可以写得更小。 此前的树决策图(TDD)在每个vtree割上统计互不相同的非零子函数个数,这个数目就是因子宽度,也是最小TDD在该处的宽度。 四变量例子中,两个2位数之和的中间输出位在平衡vtree的一个割上四行互不相同,最小TDD在该割有四个节点;但最后一行是前两行相减再加第三行,行空间维数为三,对应的ATDD在该割只有三个向量。

ATDD就是按vtree组织的树张量网络,每个节点存一组向量,内部节点用一个系数张量把子节点的向量组合成父节点的向量。 在节点处取割矩阵列空间的一组基,并固定为约化行阶梯形,这组基唯一,因而整个网络由函数和vtree唯一确定。 每个节点的基取约化行阶梯形后,父节点的规范测试恰是子节点规范测试的乘积,于是只需检查每个张量满足阶梯形条件与秩条件,就能在多项式时间内判定一个网络是不是该函数的ATDD,无需参照函数本身。

这种简洁性的提升不牺牲规范性:对固定vtree,每个布尔函数恰有一个ATDD,等价检查退化为逐项比较。 此前的基于秩的表示(加权树自动机、张量列等)只在换基意义下唯一,或需要奇异值互异等一般性假设,没有在任意vtree上的严格规范形。 在有理数上、不加任何一般性假设,两个尊重同一vtree且计算非零布尔函数的ATDD计算同一函数当且仅当它们逐项相同;模型计数、加权模型计数和布尔性判定都在ATDD规模的多项式时间内完成。

vtree改变可以局部完成:在一个节点上做一次旋转后,新ATDD与旧ATDD只差两个张量,这两个张量由旧的两个算出。 此前TDD更换vtree的复杂度是未解问题,已有工作只建议借用SDD编译器的局部vtree改动。 旋转的代价是若干次乘法加上对一个矩阵求约化行阶梯形;对TDD和ATDD,vtree更换都在输入加输出的多项式时间内完成,这回答了此前提出的复杂度问题。

启示与展望

演示范围是固定vtree下的布尔函数表示:宽度等于因子秩,操作集包含多项式时间的模型计数、加权模型计数、条件化、遗忘、合取、析取、否定与等价检查,vtree更换在输入加输出的多项式时间内完成。经验部分是两个Rust原型编译器在六族函数上的初步计时,以及八个原生CNF上与独立精确计数器sharpSAT-TD一致的模型计数。

作者列出两个未解问题:结构化确定性DNNF的准多项式分离能否加强为指数分离,以及任意两个低秩vtree之间是否存在不经过高秩中间结果、仅由旋转构成的路径。经验计时为初步结果,在TDD宽度与ATDD宽度几乎处处相同的鸽巢与随机3-CNF实例上,ATDD没有优势且开销更大,较大的鸽巢实例上ATDD编译器超出了TDD能满足的时限。