Here you can ask questions and find or give answers to organizational, academic and other questions about studying computer science.

1.1k questions

1.3k answers

1.7k comments

557 users

0 votes

Hello 

Given a propositional formula representing a ZDD, we want to construct an FDD.

 ϕ = (a & b & c) | (a & b & !c) | (a & !b & c) | (a & !b & !c) | (!a & b & c) | (!a & !b & c) | (!a & !b & !c)

Step 3: Find the co-factors for variable a:

(a | !a) ⊕ a = 1 ⊕ a = !a = 1 ⊕ a & (1 ⊕ 0) = 1 ⊕ a & 1 

I cant figure out how did you get 1 ⊕ a & 1 ? Can you please write the steps because I am getting it  1⊕ a & 0 

I also did not understand step 4 

(1 ⊕ b & (1 ⊕ a & 1)) ⊕ c & (0 ⊕ b & (1 ⊕ a & 1))

in * TF "Emb. Sys. and Rob." by (370 points)

1 Answer

0 votes
 
Best answer

Context

We have two node for variable b, each of them having up to two co-factors. This yields these formulas:

  1. (a | !a)
  2. ((a | !a) ⊕ a)
  3. ( ( a|!a) ⊕ (a|!a))
  4. ( ( (a|!a) ⊕(a|!a)) ⊕ (a ⊕ (a|!a)))
(a | !a) is a tautology. We often abbreviate that as 1. Let's apply this abbreviation to the formulas above:
  1. (a | !a)  = 1
  2. ((a | !a) ⊕ a) = 1 ⊕ a
  3. ( ( a|!a) ⊕ (a|!a)) = 1 ⊕ 1 = 0
  4. ( ( (a|!a) ⊕(a|!a)) ⊕ (a ⊕ (a|!a))) = ( ( 1 ⊕ 1) ⊕ (a ⊕ 1)) = 0 ⊕ (a ⊕ 1) = 1 ⊕ a
As the first, and third formula don't contain a (in the diagram, thee are just direct edges to the leaves), and the second, and fourth formula are equivalent, we have only one node labelled a that is supposed to represent 1 ⊕ a (also known as ¬a)
(I think so far you understood the context)

Davio-Decomposition of ¬a

The positive Davio decomposition (chapter 3, slide 117) for variable is defined as: (negative co-factor of x) ⊕ (x & (positive co-factor ⊕ negative cofactor)). A formula's positive (negative) co-factor with respect to a variable is the formula that yields after fixing the variable to 1 (0). In case of ¬a, the positive co-factor is 0, the negative one is 1. Hence, the Davio decomposition of ¬a is:
(negative co-factor of a) ⊕ (a & (positive co-factor ⊕ negative co-factor))
= 1 ⊕ (a & (0 ⊕ 1))
(The same as it is in the part of the solution you quoted.)
The term (0 ⊕ 1) is a tautology. One operand is fixed to 0, the other one to 1, hence, XOR is always satisfied. We could write 1 instead of the XOR-term. We get
1 ⊕ a & 1
It may seem a bit odd that we don't simplify a&1 to a. We avoid that as we want to keep the structure of the Davio-Decomposition. The negative co-factor (here, the left 1) is our low-child in the FDD, the XOR of the positive and negative co-factor (here, the right 1) is our high-child in the FDD.

Getting the final Davio-Decomposition

In the previous steps, we got many negative-co-factors, and derivations (that's how we call this negative co-factor XOR positive co-factor). We now have to plug them all in one formula. First, we had decomposed by c:
((a & b) | (a & !b) | (!a & !b) ) ⊕ c & (((a & b) | (a & !b) | (!a & !b) ) ⊕ (( a & b) | (a & !b) | (!a & b) | (!a & !b )))
The part to the first ⊕ was the negative co-factor (low-child), the part after c& is the derivative (high-child). We replace them by step 2.1, and 2.2:
((a | !a) ⊕ b & ((a | !a) ⊕ a)) ⊕ c & (( ( a|!a) ⊕ (a|!a)) ⊕ b & ( ( (a|!a) ⊕(a|!a)) ⊕ (a ⊕ (a|!a))))
Let's abbreviate that a little:
(1 ⊕ b & (1 ⊕ a)) ⊕ c & (( 1 ⊕ 1) ⊕ b & ( ( 1 ⊕ 1) ⊕ (a ⊕ 1)))
Since ( 1 ⊕ 1) = 0, and 0 ⊕ X = X, we can clean that up even more:
(1 ⊕ b & (1 ⊕ a)) ⊕ c & (0 ⊕ b & ( a ⊕ 1))
(Test yourself: Why did we keep specifically the first occurrence of 0? If you don't know the answer, re-read the end of the paragraph on the decomposition of ¬a)
Now, we just need to insert the Davio-Decomposition of a ⊕ 1, which is 1 ⊕ a & 1:
(1 ⊕ b & (1 ⊕ a & 1)) ⊕ c & (0 ⊕ b & ( 1 ⊕ a & 1))

Construct the FDD

You now know the Davio-Decomposition, and its ingredients (negative co-factor, and derivative i.e. negative XOR positive co-factor). Each FDD-node consists of the variable, a high-child pointing to the FDD for the derivative, and a low-child pointing to the FDD for the derivative negative co-factor. Use that, to construct the FDD. Also keep in mind, that FDDs omit nodes wth a high-child pointing to 0.
by (25.6k points)
selected by
Thank you Martin for the detailed clarification .

Related questions

+2 votes
2 answers
0 votes
2 answers
+1 vote
1 answer
asked Aug 18, 2018 in * TF "Emb. Sys. and Rob." by mohan (430 points)
Imprint | Privacy Policy
...