1. 基本概念
终端节点:叶子
非终端节点
决策变量: index(v)=i,xi是v的决策变量
数学表达:
v | 节点 |
V | 节点的集合 |
e | 树的边 |
E | 边的集合 |
value(v) | 叶子的值 |
index(v) | 非终端节点的层序号,取值范围{1,..,n} |
xi | index(v)=i,xi是v的决策变量 |
else(v) | 0-child |
then(v) | 1-child |
下面是一个bdd的示例:
x2是第二层的决策变量。
3. ROBDD
一个布尔函数f可能有多高obdd,但是有一个ROBDD与之对应。
BDD到ROBDD的化简方法:
step1: 两个具有相同值的叶子合并为一个
step2: 相同决策变量,相同0-child和1-child的两个非叶节点合并
step3: 非页节点A的两个儿子相同,则舍弃A,同时将A的边转射到A的子节点。
下面为应用的化简示例:
4. 通过ORBDD推导表达式
寻找confactor,然后从confactor出发,由叶子向根推导,有几个连到叶子便有几项。