1.1 Von der Wahrheitstabelle zur Booleschen Gleichung
Es soll mittels Boolescher Algebra die einfachste Boolesche Gleichung aus der Wahrheitstabelle ermittelt werden.
1.1.1 Wahrheitstabelle
Nummer
D
C
B
A
Y
Minterm
Verwendet
1
0
0
0
0
0
-
-
2
0
0
0
1
1
\(\bar{D} \land \bar{C} \land \bar{B} \land {A}\)
x
3
0
0
1
0
0
-
-
4
0
0
1
1
1
\(\bar{D} \land \bar{C} \land {B} \land {A}\)
xy
5
0
1
0
0
0
-
-
6
0
1
0
1
1
\(\bar{D} \land {C} \land \bar{B} \land {A}\)
x
7
0
1
1
0
1
\(\bar{D} \land {C} \land {B} \land \bar{A}\)
-
8
0
1
1
1
1
\(\bar{D} \land {C} \land {B} \land {A}\)
y
9
1
0
0
0
0
-
-
10
1
0
0
1
1
\({D} \land \bar{C} \land \bar{B} \land {A}\)
x
11
1
0
1
0
0
-
-
12
1
0
1
1
1
\({D} \land \bar{C} \land {B} \land {A}\)
y
13
1
1
0
0
1
\({D} \land {C} \land \bar{B} \land \bar{A}\)
-
14
1
1
0
1
1
\({D} \land {C} \land \bar{B} \land {A}\)
-
15
1
1
1
0
0
-
-
16
1
1
1
1
0
-
-
1.1.2 Vereinfachen durch Vergleich von Thermen mit nur einem Unterschied
Da gilt \(A \lor A = A\) (Idempotenzgesetz der Disjunktion) können Therme mehrfach verwendet werden. Es muss nur so lange verglichen werden, bis alle Terme einmal benutzt wurden! Gibt es zu einem Term keinen weiteren Term mit nur einer abweichenden Negation, so ist dieser vollständig in das Ergebnis zu übernehmen.
Nun wird erneut verglichen bis jeder Therm mindestens einmal verwendet wurde. Gibt es zu einem Term keinen weiteren Term mit nur einer abweichenden Negation, so ist dieser vollständig in das Ergebnis zu übernehmen.
Mit dem Idempotenzgesetz der Disjunktion \(A \lor A = A\) kann der letzte dieser Terme weg gelassen werden, da er bereits in der ersten Zeile vorkommt.
Es handelt sich um eine automatisch generierte Schaltung mit amerikanischen Symbolen! Diese Schaltung entspricht NICHT europäischen Normen und ist rein informativ.
Code
from schemdraw.parsing import logicparse#https://schemdraw.readthedocs.io/en/latest/elements/logic.htmlYeqstring =str(Yeq.rhs).replace('&','and').replace('|','or').replace('~','not ')#print(Yeqstring)Yeqstring ="(((A and not C) or (A and not D)) or (C and D and not B)) or (B and C and not D)"#Manuell editiert für besseres grafische Ergebnisdisplay(logicparse(Yeqstring, outlabel='$Y$'))