符号模型检验(7)ADD

⇑ ⇑ ⇑ ⇑ ⇑ \Uparrow\Uparrow\Uparrow\Uparrow\Uparrow 上方专栏内有更多内容 ⇑ ⇑ ⇑ ⇑ ⇑ \Uparrow\Uparrow\Uparrow\Uparrow\Uparrow

ADD

代数决策图(ADD)是一种用于伪布尔函数表示和操作的图形化数据结构。与BDD不同的是BDD只有0,1两个终端节点,但ADD 可以有多个不同终端节点。
n元伪布尔函数:任意一个自变量取值只能是0或1,函数值可为实数的n元函数。
令R表示实数集,B={0,1},那么n元伪布尔函数可表示为: f : B n → R f : B^n\to R f:BnR
例如伪布尔函数 f = x 1 x 2 + 2 x 3 x 4 f = x_1x_2 + 2x_3x_4 f=x1x2+2x3x4
伪布尔函数 f = x 1 x 2 + 2 x 3 x 4 f = x_1x_2 + 2x_3x_4 f=x1x2+2x3x4 在变量序 π : x 1 < x 2 < x 3 < x 4 \pi:x_1<x_2<x_3<x_4 π:x1<x2<x3<x4下的ADD为

0
1
2
3
x1
x2
x3
x3
x4
x4

再有例子:给出一个自动机,把它转换为ADD形式。

1
2
1
1
3
2
0
1
2
3

将顶点进行编码0:[00],1:[10],2:[01],3:[11]
M G = y 0 y 1 00 10 01 11 00 10 01 11 [ 1 2 0 1 0 0 3 0 0 0 0 3 0 2 0 0 ] x 0 x 1 M_G=\begin{matrix} &\begin{matrix}y_0y_1& \quad&\quad&\quad\end{matrix}\\ &\begin{matrix}00&10&01&11\end{matrix}\\ \begin{matrix}00\\10\\01\\11\end{matrix}& \begin{bmatrix}1&2&0&1\\0&0&3&0\\0&0&0&3\\0&2&0&0\end{bmatrix}\\ x_0x_1 \end{matrix} MG=00100111x0x1y0y1001001111000200203001030
转换为ADD为

0
1
2
3
x0
x1
x1
y0
y0
y0
y0
y1
y1
y1
y1

伪布尔函数可以看作是布尔函数的扩展,即把布尔函数的值域从{0,1}扩展到整个实数域。同样,伪布尔函数也可以按照类似布尔函数的方式进行展开。
定理 如果 f ( x 1 , x 2 , … , x n ) f(x_1, x_2, \dots, x_n) f(x1,x2,,xn)是伪布尔函数,则对于 ∀ x i ∈ x 1 , x 2 , … , x n \forall x_i\in{x_1, x_2, \dots, x_n} xix1,x2,,xn有:
f ( x 1 , … , x i − 1 , x i , x i + 1 , … , x n ) = x i × f ( x 1 , … , x i − 1 , 1 , x i + 1 , … , x n ) + ( 1 − x i ) × f ( x 1 , … , x i − 1 , 0 , x i + 1 , … , x n ) f (x_1, …,x_{i-1}, x_i, x_{i+1}, …, x_n)= \\x_i \times f (x_1, …,x_{i-1}, 1, x_{i+1}, …, x_n) \\+ (1-x_i) \times f (x_1, …,x_{i-1}, 0, x_{i+1}, …, x_n) f(x1,,xi1,xi,xi+1,,xn)=xi×f(x1,,xi1,1,xi+1,,xn)+(1xi)×f(x1,,xi1,0,xi+1,,xn)
其中:“ × \times ×”、“ + + +”和“ − - ”分别表示算术运算乘法、加法和减法。

为了便于介绍伪布尔函数的ADD描述,下面用 x ′ x' x代表 ( 1 − x ) (1-x) (1x)
对于任意伪布尔函数 f ( x 1 , x 2 , … , x n ) f(x_1, x_2, \dots, x_n) f(x1,x2,,xn),根据定理有:
f ( x 1 , x 2 , … , x n ) = x 1 ′ f ( 0 , x 2 , … , x n ) + x 1 f ( 1 , x 2 , … , x n ) = x 1 ′ x 2 ′ f ( 0 , 0 , x 3 , … , x n ) + x 1 ′ x 2 f ( 0 , 1 , x 3 , … , x n ) + x 1 x 2 ′ f ( 1 , 0 , x 3 , … , x n ) + x 1 x 2 f ( 1 , 1 , x 3 , … , x n ) = x 1 ′ x 2 ′ … x n ′ f ( 0 , 0 , … , 0 ) + x 1 ′ x 2 ′ … x n − 1 ′ x n f ( 0 , 0 , … , 0 , 1 ) + ⋯ + x 1 x 2 … x n f ( 1 , 1 , … , 1 ) f(x_1, x_2, \dots, x_n)= x_1' f (0, x_2, \dots, x_n) + x_1 f (1, x_2,\dots, x_n)\\ = x_1' x_2' f (0, 0, x_3, \dots, x_n) + x_1' x_2 f (0, 1, x_3,\dots, x_n) \\\quad+ x_1 x_2' f (1, 0, x_3, \dots, x_n) + x_1 x_2 f (1, 1, x_3,\dots, x_n)\\ = x_1' x_2' \dots x_n' f (0, 0, \dots, 0) + x_1'x_2' \dots x_{n-1}' x_n f (0, 0,…, 0, 1)\\\quad+ \dots+ x_1 x_2 \dots x_n f (1, 1, \dots , 1) f(x1,x2,,xn)=x1f(0,x2,,xn)+x1f(1,x2,,xn)=x1x2f(0,0,x3,,xn)+x1x2f(0,1,x3,,xn)+x1x2f(1,0,x3,,xn)+x1x2f(1,1,x3,,xn)=x1x2xnf(0,0,,0)+x1x2xn1xnf(0,0,,0,1)++x1x2xnf(1,1,,1)
其中, x 1 ′ x 2 ′ … x n ′ , … , x 1 x 2 … x n x_1'x_2'\dots x_n', \dots , x_1x_2\dots x_n x1x2xn,,x1x2xn称之为小项,共有2n项; f ( 0 , 0 , … , 0 ) , … , f ( 1 , 1 , … , 1 ) f (0, 0, \dots, 0),\dots,f (1, 1, \dots, 1) f(0,0,,0)f(1,1,,1)为S中的元素,称之为函数 f ( x 1 , x 2 , … , x n ) f(x_1, x_2, \dots, x_n) f(x1,x2,,xn)对应小项的系数。

ADD可以看做是对小项的隐式列举,所以ADD可以用小项的系数矩阵来表示。
例如,当n=2时,函数f (x1, x2)的小项系数矩阵为:
[ f ( 0 , 0 ) f ( 0 , 1 ) f ( 1 , 0 ) f ( 1 , 1 ) ] \begin{bmatrix}f(0,0)&f(0,1)\\f(1,0)&f(1,1)\end{bmatrix} [f(0,0)f(1,0)f(0,1)f(1,1)]

ADD基本操作:
1、布尔操作
2、算术操作
3、提取操作(Abstraction Operation)

1、布尔操作--ITE (if-then-else)操作
定义 若已知具有相同变量序 π : x 1 < x 2 < ⋯ < x n \pi:x_1<x_2<\dots<x_n π:x1<x2<<xn的ADD f,g和h,且f为只具有0和1终结点的ADD,则 I T E ( f , g , h ) = f ⋅ g + f ′ ⋅ h {\rm ITE}( f, g, h) = f \cdot g+f'\cdot h ITE(f,g,h)=fg+fh
如果用 D f D^f Df, D g D^g Dg, D h D^h Dh D I D^I DI分别表示f, g, h和 I T E ( f , g , h ) {\rm ITE}( f, g, h) ITE(f,g,h)的小项系数的集合,则:
D f = { d 1 f , … , d q f } = { f ( 0 , 0 , … , 0 ) , f ( 0 , 0 , … , 1 ) , … , f ( 1 , 1 , … , 1 ) } D^f=\{d^f_1,\dots,d^f_q\}=\{f(0,0,\dots,0),f(0,0,\dots,1),\dots ,f(1,1,\dots,1)\} Df={d1f,,dqf}={f(0,0,,0),f(0,0,,1),,f(1,1,,1)}  
D g = { d 1 g , … , d q g } = { g ( 0 , 0 , … , 0 ) , g ( 0 , 0 , … , 1 ) , … , g ( 1 , 1 , … , 1 ) } D^g=\{d^g_1,\dots,d^g_q\}=\{g(0,0,\dots,0),g(0,0,\dots,1),\dots ,g(1,1,\dots,1)\} Dg={d1g,,dqg}={g(0,0,,0),g(0,0,,1),,g(1,1,,1)}  
D h = { d 1 h , … , d q h } = { h ( 0 , 0 , … , 0 ) , h ( 0 , 0 , … , 1 ) , … , h ( 1 , 1 , … , 1 ) } D^h=\{d^h_1,\dots,d^h_q\}=\{h(0,0,\dots,0),h(0,0,\dots,1),\dots ,h(1,1,\dots,1)\} Dh={d1h,,dqh}={h(0,0,,0),h(0,0,,1),,h(1,1,,1)}  
其中 f ( ⋅ ) ∈ { 0 , 1 } f (\cdot)\in\{0,1\} f(){0,1}, g ( ⋅ ) ∈ S g(\cdot)\in S g()S, h ( ⋅ ) ∈ S , q = 2 n h(\cdot)\in S, q=2n h()S,q=2n

D I = { i t e ( d 1 f , d 1 g , d 1 h ) , i t e ( d 2 f , d 2 g , d 2 h ) , … , i t e ( d q f , d q g , d q h ) } D^I=\{{\rm ite}(d^f_1,d^g_1,d^h_1),{\rm ite}(d^f_2,d^g_2,d^h_2),\dots,{\rm ite}(d^f_q,d^g_q,d^h_q)\} DI={ite(d1f,d1g,d1h),ite(d2f,d2g,d2h),,ite(dqf,dqg,dqh)}
由定义可知

d i f d^f_i dif d i g d^g_i dig d i h d^h_i dih i t e ( d 1 f , d 1 g , d 1 h ) {\rm ite}(d^f_1,d^g_1,d^h_1) ite(d1f,d1g,d1h)
1-- d i g d^g_i dig
0-- d i h d^h_i dih
-- = d i g =d^g_i =dig d i g d^g_i dig
-10 d i f d^f_i dif

例:已知伪布尔函数f、g和h对应的系数矩阵 M f M_f Mf M g M_g Mg M h M_h Mh,分别如下所示,试构造一个用于表示函数 I = f g + f ′ h I = f g+f ' h I=fg+fh的ADD:
M f = [ 1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 ] M g = [ 3 3 3 3 3 3 3 3 5 5 5 5 5 5 5 5 ] M h = [ 1 1 4 4 1 1 4 4 0 0 2 2 0 0 2 2 ] M_f=\begin{bmatrix}1&0&0&0\\1&1&0&0\\1&1&1&0\\1&1&1&1\end{bmatrix} M_g=\begin{bmatrix}3&3&3&3\\3&3&3&3\\5&5&5&5\\5&5&5&5\end{bmatrix} M_h=\begin{bmatrix}1&1&4&4\\1&1&4&4\\0&0&2&2\\0&0&2&2\end{bmatrix} Mf=1111011100110001Mg=3355335533553355Mh=1100110044224422
三个矩阵的ADD为

f
x0
x1
x1
y0
y0
y1
1
0
g
x0
x1
x1
3
5
h
x0
x1
x1
y1
y1
1
4
0
2

从三个系数矩阵中可以得到I的系数矩阵 M I = [ 3 1 4 4 3 3 4 4 5 5 5 2 5 5 5 5 ] M_I=\begin{bmatrix}3&1&4&4\\3&3&4&4\\5&5&5&2\\5&5&5&5\end{bmatrix} MI=3355135544554425

1
2
3
4
5
x0
x1
x1
y0
y0
y1
y1
y1

2、算术操作
定义 若已知表示具有相同变量序 π : x 1 < x 2 < ⋯ < x n \pi:x_1<x_2<\dots<x_n π:x1<x2<<xn的伪布尔函数 ϕ \phi ϕ φ \varphi φ的ADD f和g,及二元运算符op,则 A p p l y ( f , g , o p ) = f ⟨ o p ⟩ g {\rm Apply} (f, g, op) = f \langle op \rangle g Apply(f,g,op)=fopg .
op: + + + − - × \times × ÷ \div ÷、min和max等算术操作。
A p p l y ( f , g , o p ) {\rm Apply} ( f, g, op) Apply(f,g,op)操作的本质:设 D f D^f Df D g D^g Dg D A D^A DA分别表示f、g和 A p p l y ( f , g , o p ) {\rm Apply} ( f, g, op) Apply(f,g,op)的小项系数的集合,则:
D f = { d 1 f , … , d q f } = { f ( 0 , 0 , … , 0 ) , f ( 0 , 0 , … , 1 ) , … , f ( 1 , 1 , … , 1 ) } D^f=\{d^f_1,\dots,d^f_q\}=\{f(0,0,\dots,0),f(0,0,\dots,1),\dots ,f(1,1,\dots,1)\} Df={d1f,,dqf}={f(0,0,,0),f(0,0,,1),,f(1,1,,1)}  
D g = { d 1 g , … , d q g } = { g ( 0 , 0 , … , 0 ) , g ( 0 , 0 , … , 1 ) , … , g ( 1 , 1 , … , 1 ) } D^g=\{d^g_1,\dots,d^g_q\}=\{g(0,0,\dots,0),g(0,0,\dots,1),\dots ,g(1,1,\dots,1)\} Dg={d1g,,dqg}={g(0,0,,0),g(0,0,,1),,g(1,1,,1)}

D A = { d 1 f ⟨ o p ⟩ d 1 g , … , d q f ⟨ o p ⟩ d q g } D^A=\{d^f_1\langle op \rangle d^g_1,\dots,d^f_q\langle op \rangle d^g_q\} DA={d1fopd1g,,dqfopdqg}

例:已知伪布尔函数f和g对应的系数矩阵 M f M_f Mf M g M_g Mg,分别如下所示,试构造一个用于表示函数 A = f + g A = f +g A=f+g的ADD
M f = [ 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 ] M g = [ 3 3 3 3 3 3 3 3 2 2 2 2 2 2 2 2 ] M_f=\begin{bmatrix}0&0&1&1\\0&0&1&1\\1&1&0&0\\1&1&0&0\end{bmatrix} M_g=\begin{bmatrix}3&3&3&3\\3&3&3&3\\2&2&2&2\\2&2&2&2\end{bmatrix} Mf=0011001111001100Mg=3322332233223322
可以得到A的系数矩阵 M A = [ 3 3 4 4 3 3 4 4 3 3 2 2 3 3 2 2 ] M_A=\begin{bmatrix}3&3&4&4\\3&3&4&4\\3&3&2&2\\3&3&2&2\end{bmatrix} MA=3333333344224422
设行以 [ x 0 ′ x 1 ′ , x 0 x 1 ′ , x 0 ′ x 1 , x 0 x 1 ] [x_0'x_1',x_0x_1',x_0'x_1,x_0x_1] [x0x1,x0x1,x0x1,x0x1]标记,列以 [ y 0 ′ y 1 ′ , y 0 y 1 ′ , y 0 ′ y 1 , y 0 y 1 ] [y_0'y_1',y_0y_1',y_0'y_1,y_0y_1] [y0y1,y0y1,y0y1,y0y1]标记,则f,g,A的ADD:

g
x1
3
2
f
x1
y1
y1
0
1
A
x1
y1
y1
3
4
2

3、提取操作(Abstraction Operation)
通过对函数变量的提取可减少函数维数。例如,当函数表示的是一个 N × N ( N = 2 p ) N\times N(N=2p) N×N(N=2p)的矩阵时,设矩阵行和列分别由布尔变量 x 0 , x 1 , … , x p x_0,x_1,\dots,x_p x0,x1,,xp y 0 , y 1 , … , y p y_0,y_1,\dots,y_p y0,y1,,yp表示,则通过对矩阵提取行变量 x 0 , x 1 , … , x p x_0,x_1,\dots,x_p x0,x1,,xp,便可得到行向量,即 1 × N 1\times N 1×N的矩阵,从而减少原矩阵的维数
f x o p ( y ) = ∖ x o p f ( u ) = o p 1 ⃗ x = 0 ⃗ f ( u ) , u = x y ‾ ∈ { x 0 x 1 … x p y 0 y 1 … y p } f^{op}_ \bm x(\bm y)=\setminus^{op}_\bm xf(u)=\underset{\bm x=\vec 0}{\overset{\vec 1}{op}}f(u),u=\overline{\bm x\bm y}\in\{x_0x_1\dots x_py_0y_1\dots y_p\} fxop(y)=xopf(u)=x=0 op1 f(u),u=xy{x0x1xpy0y1yp}
例如,假设函数 f = A ( X , Y ) f = A(X,Y) f=A(X,Y)表示某个 n × m n\times m n×m矩阵 M M M,其中
X = { x 0 , x 1 , … , x p } ( p = l o g 2 n ) X=\{x_0,x_1,\dots,x_p\}(p=log_2n) X={x0,x1,,xp}(p=log2n)是行变量编码,
Y = { y 0 , y 1 , … , y q } ( q = l o g 2 m ) Y =\{y_0,y_1,\dots,y_q\}(q=log_2m) Y={y0,y1,,yq}(q=log2m)是列变量编码。
∖ X + A ( X , Y ) \setminus^+_XA(X,Y) X+A(X,Y):对同一列元素求和,其结果是一个 1 × m 1\times m 1×m 矩阵

∖ X × A ( X , Y ) \setminus^\times_XA(X,Y) X×A(X,Y):对同一列元素求积,其结果是一个 1 × m 1\times m 1×m矩阵
∖ Y m i n A ( X , Y ) \setminus^{min}_Y A(X,Y) YminA(X,Y):求每一行元素的最小值,其结果是一个 n × 1 n\times 1 n×1矩阵

例:给出矩阵 f = A ( X , Y ) f = A(X,Y) f=A(X,Y),计算 ∖ X + A ( X , Y ) \setminus^+_XA(X,Y) X+A(X,Y) ∖ Y m i n A ( X , Y ) \setminus^{min}_Y A(X,Y) YminA(X,Y)
A = [ 1 2 3 4 5 6 7 8 0 0 1 2 2 2 2 2 ] A=\begin{bmatrix}1&2&3&4\\5&6&7&8\\0&0&1&2\\2&2&2&2\end{bmatrix} A=1502260237124822
计算有
∖ X + A ( X , Y ) = [ 8 10 13 16 ] ∖ Y m i n A ( X , Y ) = [ 1 5 0 2 ] \setminus^+_XA(X,Y)=\begin{bmatrix}8&10&13&16\end{bmatrix}\quad\setminus^{min}_Y A(X,Y)=\begin{bmatrix}1\\5\\0\\2\end{bmatrix} X+A(X,Y)=[8101316]YminA(X,Y)=1502

例2:给出矩阵 f = A ( X , Y ) f = A(X,Y) f=A(X,Y),设行以 [ x 0 ′ x 1 ′ , x 0 x 1 ′ , x 0 ′ x 1 , x 0 x 1 ] [x_0'x_1',x_0x_1',x_0'x_1,x_0x_1] [x0x1,x0x1,x0x1,x0x1]标记,列以 [ y 0 ′ y 1 ′ , y 0 y 1 ′ , y 0 ′ y 1 , y 0 y 1 ] [y_0'y_1',y_0y_1',y_0'y_1,y_0y_1] [y0y1,y0y1,y0y1,y0y1]标记。
A = [ 1 5 0 2 2 6 0 2 3 7 1 2 4 8 2 2 ] A=\begin{bmatrix}1&5&0&2\\2&6&0&2\\3&7&1&2\\4&8&2&2\end{bmatrix} A=1234567800122222

∖ { x 0 , y 0 } + A ( X , Y ) = ∖ { y 0 } + B ( X , Y ) = [ 14 4 22 7 ] \setminus^+_{\{x_0,y_0\}}A(X,Y)=\setminus^+_{\{y_0\}}B(X,Y)=\begin{bmatrix}14&4\\22&7\end{bmatrix} {x0,y0}+A(X,Y)={y0}+B(X,Y)=[142247]
∖ { x 0 , x 1 , y 0 } m i n A ( X , Y ) = ∖ { y 0 } m i n C ( X , Y ) = [ 1 0 ] \setminus^{min}_{\{x_0,x_1,y_0\}}A(X,Y)=\setminus^{min}_{\{y_0\}}C(X,Y)=\begin{bmatrix}1&0\end{bmatrix} {x0,x1,y0}minA(X,Y)={y0}minC(X,Y)=[10]
其中 B ( X , Y ) = [ 3 11 0 4 7 15 3 4 ] B(X,Y)=\begin{bmatrix}3&11&0&4\\7&15&3&4\end{bmatrix} B(X,Y)=[3711150344] C ( X , Y ) = [ 1 5 0 2 ] C(X,Y)=\begin{bmatrix}1&5&0&2\end{bmatrix} C(X,Y)=[1502]

这里如果细心的话可以注意到之前所有设计出的行标记和列标记是故意没有按照枚举顺序。

例3:已知ADD,求 ∖ { x 0 , y 0 } + A ( X , Y ) \setminus^+_{\{x_0,y_0\}}A(X,Y) {x0,y0}+A(X,Y)

0
1
2
3
4
x0
x1
x1
y0
y0
y0
y0
y1

我们令 r u r_u ru代表提取操作中步骤的子图。例如
r = ∖ { x 0 , y 0 } + f ( u ) r_{}=\setminus^+_{\{x_0,y_0\}}f(u) r={x0,y0}+f(u)
r 1 = ∖ { y 0 } + f ( u ) ∣ x 0 = 1 r_{1}=\setminus^+_{\{y_0\}}f(u)|_{x_0=1} r1={y0}+f(u)x0=1
r 10 = ∖ { y 0 } + f ( u ) ∣ x 0 = 1 , x 1 = 0 r_{10}=\setminus^+_{\{y_0\}}f(u)|_{x_0=1,x_1=0} r10={y0}+f(u)x0=1,x1=0
r 101 = ∖ { } + f ( u ) ∣ x 0 = 1 , x 1 = 0 , y 0 = 1 r_{101}=\setminus^+_{\{\}}f(u)|_{x_0=1,x_1=0,y_0=1} r101={}+f(u)x0=1,x1=0,y0=1
在达到形式 r a b c r_{abc} rabc下可以发现提取操作下没有元素需要提取。
所以
r a b c = ∖ { } + f ( u ) ∣ x 0 = a , x 1 = b , y 0 = c = f ( u ) ∣ x 0 = a , x 1 = b , y 0 = c r_{abc}=\setminus^+_{\{\}}f(u)|_{x_0=a,x_1=b,y_0=c}=f(u)|_{x_0=a,x_1=b,y_0=c} rabc={}+f(u)x0=a,x1=b,y0=c=f(u)x0=a,x1=b,y0=c
即本题下形如 r a b c r_{abc} rabc的提取操作的子图就是ADD的子图。
我们又知
r a b = ∖ { y 0 } + f ( u ) ∣ x 0 = a , x 1 = b = Σ y ^ 0 f ( u ) ∣ x 0 = a , x 1 = b , y 0 = y ^ 0 = f ( u ) ∣ x 0 = a , x 1 = b , y 0 = 0 + f ( u ) ∣ x 0 = a , x 1 = b , y 0 = 1 = r a b 0 + r a b 1 r_{ab}=\setminus^+_{\{y_0\}}f(u)|_{x_0=a,x_1=b}\\ =\underset{\hat y_0}\Sigma f(u)|_{x_0=a,x_1=b,y0=\hat y_0}\\ =f(u)|_{x_0=a,x_1=b,y0=0}+f(u)|_{x_0=a,x_1=b,y0=1}\\ =r_{ab0}+r_{ab1} rab={y0}+f(u)x0=a,x1=b=y^0Σf(u)x0=a,x1=b,y0=y^0=f(u)x0=a,x1=b,y0=0+f(u)x0=a,x1=b,y0=1=rab0+rab1
r a b = A p p l y ( r a b 0 , r a b 1 , + ) r_{ab}={\rm Apply}(r_{ab0},r_{ab1},+) rab=Apply(rab0,rab1,+)
对于 r a r_a ra
r a = ∖ { y 0 } + f ( u ) ∣ x 0 = a = x 1 ∖ { y 0 } + f ( u ) ∣ x 0 = a , x 1 = 1 + x 1 ′ ∖ { y 0 } + f ( u ) ∣ x 0 = a , x 1 = 0 = x 1 r a 1 + x 1 ′ r a 0 = I T E ( x 1 , r a 1 , r a 0 ) r_a=\setminus^+_{\{y_0\}}f(u)|_{x_0=a}\\ =x_1\setminus^+_{\{y_0\}}f(u)|_{x_0=a,x_1=1}+x_1'\setminus^+_{\{y_0\}}f(u)|_{x_0=a,x_1=0}\\ =x_1r_{a1}+x_1'r_{a0}\\ ={\rm ITE}(x_1,r_{a1},r_{a0}) ra={y0}+f(u)x0=a=x1{y0}+f(u)x0=a,x1=1+x1{y0}+f(u)x0=a,x1=0=x1ra1+x1ra0=ITE(x1,ra1,ra0)

同理可得 r = A p p l y ( r 0 , r 1 , + ) r={\rm Apply}(r_{0},r_{1},+) r=Apply(r0,r1,+)
可以看到这整个过程就是二叉结构自底向上构建。这也是提取操作的计算步骤。
需要提取的元素就是用apply运算,不需要的则是ite运算

apply
apply
apply
apply
apply
ite
ite
ite
ite
apply
apply
r000
r00
r001
r010
r01
r011
...
r10
r0
r1
...
r
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值