4.2.4 Convert Boolean expressions into simpler forms.
Teaching Notes:
A maximum of three inputs will be expected. Conversions may be done "algebraically" (using identities such as x + 1 = 1 and DeMorgan's laws) or by using Karnaugh maps, Venn diagrams or any other appropriate method.
Sample Question:
(d) Simplify the Boolean expression ⋅+ ⋅B+ A⋅. [2 marks]
JSR Notes:
Here are some more possible K-maps for you to look at, appreciate, and be able to quickly draw and use for conversions in a testing situation. Forgive my incorrect symbols for now;
Easy:
Situation "Verticle Pair". In such a case, A won't matter, since it can be either A or !A.
This reduces to * C.
Situation "Horizontal Pair". In such cases, either B or C won't matter. In this case, B doesn't matter, since it can be true or false. But the expression is true only when C is not true, along with A being not true.
This reduces to *
"Easy Combos". This first one combines a verticle pair and a horizontal pair.
This reduces to B * C + A *
Now you should refer to page 244 of the text book for other fairly easy and standard combinations of K-maps.
Harder:
The questions you ask yoursef to answer these questions can be "Does it matter what A is?" If so, wite down what it has to be, and then do the same for B and C.
So above, "Does it matter what A is?" Yes, it must be true, so write down A.
Next, does it matter what B is? Yes, it must be true, so write down * B.
Finally, does it matter what C is? No, C can be either true or false, and the overall function is true.
This therefore reduces to A * B.
C can be either true or false, but B must be false - along with A being true - for the overall expression to be true.
So this reduces to A *.
This reduces to * .
Situation "Horizontal Middle Pairs". This presents a bit more of a difficulty. But the thing to note is that this is an XOR situation. B or C must be true, but not both. In this case, along with A being true.
This reduces to A *( B C)
Situation "Horizontal Book-ends". Even a bit trickier if we are looking for a simplification, except that we can just do the inverse of the previous. This expression is true whenever A is true and Not B xor C.
This reduces to A *. [This one I'd better put in correct symbolic form, as best I can short of Photoshoping: ]
Note that ***ALL*** diagonal pairs in K-maps do not simplify. So this expression remains, in its simplest form:
* B * C + A * B *
Penultimately, here's a hybrid situation. Note that you can't use the diagonals, and there are no vertical pairs, but there are two horizontal pairs. So...
This reduces to A * + * B
And finally, here's the trickiest one in the book, from pge 246. How to reduce it?
Take the easy part first, the vertical pair, resulting in B*C. Then you can take the middle pair,which is B xor C. So..
This reduces to B*C + (A B C).
Any one of these we can double check with a couple of truth tables: one big one for the whole expression, and an easier one with our reduced expression. The one I will choose is a repeat of:
* | ||||
---|---|---|---|---|
The full expression is: A()A().
And we said it reduced to
A . Let's see if the two truth tables are indeed equivalent.
Here goes the quite mamouth truth table:
A | B | C | A() | A() | A()A() | ||||
---|---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 |
1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
And the easier one:
A | B | A | |
---|---|---|---|
0 | 0 | 1 | 0 |
0 | 1 | 0 | 0 |
1 | 0 | 1 | 1 |
1 | 1 | 0 | 0 |
Do note the way we do the truth table for double-checking the same way as the first one, with the same eight rows. And they do evaluate to the same thing. Ta da.