Sie sind auf Seite 1von 31

Informatik I

3. Boolesche Algebra
Prof. Dr. Dieter Koller
Übersicht

1. Einführung
2. Zahlensysteme
3. Boolesche Algebra
4. Rechneraufbau und -architektur
5. Betriebssystem
6. Software und Programmierung
7. Algorithmen und Komplexität
8. Anwendungen

Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 78


Boolesche Algebra – Inhalt und Lernziele

o Grundlagen der Aussagenlogik und der Booleschen Algebra


o Technische Umsetzung der Booleschen Algebra
o Operationen der Boolesche Aussagenlogik (UND, ODER, NICHT)
o Axiome der Boolesche Aussagenlogik
o Boolesche Funktionen
o Realisierung boolescher Funktionen durch Gatter
o Logikbausteine (Halb,- Volladdierer und Rechenwerk)
o Speicher als Logikbaustein
o Schaltnetze als technische Realisierung Boolescher Funktionen
o Disjunktive und konjunktive Normalform

Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 79


Rechnen mit dem Computer
7 + 5 = 12 Zahlendarstellung

0111 + 0101 = 1100 Binäre Operationen

Logik-Bausteine

Transistoren

Quelle: Prof. Studt – Informatik I

Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 80


Boolesche Algebra
George Boole war englischer Mathematiker und Philosoph, der sich Mitte des 19.
Jahrhunderts mit den Formalismen der Aussagenlogik beschäftigte.

Dabei entwickelte er die nach ihm benannte boolesche Algebra.


In der booleschen Algebra existieren nur zwei Werte:

0 (falsch bzw. false) und 1 (wahr bzw. true)

Das Verständnis der booleschen Algebra ist wichtig für die


Konstruktion und den Bau von effizienten Strukturen und
Schaltungen zur Verarbeitung binärer Größen und bildet
damit die Grundlage heutige Rechner-Hardware.

George Boole (um 1860)

Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 81


Boolesche Algebra und deren technische Umsetzung
Aus der geschichtlichen Entwicklung wissen wir, dass die ersten elektro-
nischen Rechner mit Relais gebaut wurden (z.B. Konrad Zuse 1941: Z3).

Stromkreis mit mechanischem Schalter und mit Relais-Schalter


Relais
Eingang
0  0V
Schalter offen:
+ Lampe aus (kein Strom)
Relais aus:
Schalter offen:
- Zustand 0 + 5V Lampe aus
(falsch, false) Zustand 0
- 0V (falsch, false)

 Relais
Eingang
Schalter geschlossen: 1  5V
+ Relais ein:
Lampe an (Strom)
Zustand 1 Schalter zu:
- + 5V Lampe an
(wahr, true)
Zustand 1
- 0V (wahr, true)

Entnommen: Kiermaier – Informatik I

Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 82


Boolesche Algebra und deren technische Umsetzung
Die technische Entwicklung führte ab 1955 den Transistor für digitale Logik-
schaltungen (TTL ab 1961) ein: und ab 1970 den stromsparenden
MOSFET-Transistor:

Transistor sperrt: Transistor sperrt:


Lampe aus Lampe aus
Eingang (kein Strom) Zustand 0
0  0V Zustand 0 Eingang
+ 5V 0 = 0V
(falsch, false)
(falsch, false) + 3V
- 0V
- 0V

Transistor leitet:
Transistor leitet: Lampe an
Eingang Lampe an Zustand 1
Eingang
1  5V (Strom fließt) (wahr, true)
+ 5V 1 = 3V
Zustand 1 + 3V
(wahr, true)
- 0V - 0V

Entnommen: Kiermaier – Informatik I

Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 83


Boolesche Aussagenlogik
Auf der zweiwertigen Grundmenge {0, 1} bzw. {falsch, wahr} sind
drei Operationen definiert:
Zwei Operationen verknüpfen zwei Aussagen a und b miteinander:

ODER - Disjunktion
UND - Konjunktion

Eine dritte Operation negiert eine einzelne Aussage a:

NICHT - Negation

Für die Operatoren selbst gibt es dabei unterschiedliche Schreibweisen.

Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 84


Boolesche Aussagenlogik: ODER (OR) Operation
ODER-Operation (OR), auch Disjunktion oder Logische Summe
Schreibweise des Operators:  oder als +
Das Ergebnis ist nur dann wahr (true, 1), wenn mindestens eine der Aussagen
a ODER b gleich wahr (true, 1) ist.
Geschrieben: oder
Beispiel 1:
Aussage a: "Sie haben Ihren Personalausweis dabei".
Aussage b: "Sie haben Ihren Führerschein dabei".
Zur Kontrolle: "Sie haben Ihren Personalausweis oder Führerschein dabei".
(Zur Identifikation benötigen Sie mindestens eines, d.h. es muss a oder b wahr sein.)
Beispiel 2:
Aussage a: "Du kannst ein Eis haben".
Aussage b: "Du kannst eine Schokolade haben".
Mutter zu Kind: "Du kannst ein Eis oder eine Schokolade haben!".
(Umgangssprachlich ist das ODER häufig im Sinne von "entweder … oder").
Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 85
Boolesche Aussagenlogik: ODER (OR) Operation
Für die zweiwertige Logik mit 0 und 1 lassen sich alle
möglichen Ergebnisse (Zustände) für n Variable in einer a b ab
Wahrheitstabelle mit 2n Zeilen zusammenfassen. 0 0
Erinnerung: 1 entspricht wahr, 0 entspricht falsch!
0 1
Die ODER-Funktion lässt sich mit parallelen 1 0
Schaltern bzw. Transistoren nachbilden: 1 1

a b
OR als Symbol:
+ Eingang a
+ 5V
a
- - 0V >1 a+b
Eingang b b ab
Schalter a ODER Schalter b
muss geschlossen werden
(oder auch beide) Eingang a oder Eingang b Oder = Oben offen
(oder beide) müssen 1 sein
Entnommen: Kiermaier – Informatik I

Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 86


Boolesche Aussagenlogik: UND (AND) Operation
UND-Operation, Konjunktion, Logisches Produkt
Schreibweise des Operators:  oder als * a b ab
Das Ergebnis ist nur dann wahr (true, 1), wenn genau 0 0
beide Aussagen a UND b wahr (1) sind. 0 1
geschrieben: oder als a * b bzw. 1 0

Die UND-Funktion lässt sich mit seriellen Schaltern bzw. 1 1


Transistoren nachbilden:

a
AND als Symbol:
Eingang a
b + 5V a
& a*b
+ - 0V b ab
- Eingang b

Schalter a UND Schalter b Eingang a UND Eingang b Und = Unten offen


müssen geschlossen werden müssen 1 (= +5V) sein Entnommen: Kiermaier – Informatik I

Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 87


Boolesche Aussagenlogik: NICHT (NOT) Operation
NOT Operation, Negation, Logische Verneinung
Schreibweise des Operators: -a oder ¬a oder a¯ a a¯
Das Ergebnis ist nur dann wahr (true, 1), wenn 0
Aussage a gleich falsch (0) ist und umgekehrt. 1
Die NOT-Funktion lässt sich mit einem Öffner-Schalter
oder zwei unterschiedlichen Transistoren nachbilden:

a + 5V T1 NOT als Symbol:


10 (pnp)
+ - 0V 01
Eingang a
T2 a 1 ¯a
- (npn)

Wird der Öffner-Schalter a Eingang a muss 0V sein damit T1 Negationskringel


betätigt, ist der Zustand 0 durchlässt, oder +5V damit T2
durchlässt.
Entnommen: Kiermaier – Informatik I

Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 88


Boolesche Algebra: Axiome der Aussagenlogik
In der Booleschen Algebra gibt es zu den drei Operatoren auch Gesetze (sog. Axiome) zur Manipulation
logischer Gleichungen (nicht alle entsprechen denen aus der bekannten Mathematik mit + und * (!)):
OR logische Summe +
AND logisches Produkt *
NOT logische Verneinung ¬
Kommutativgesetz: a*b =b*a kurz: ab = ba
a+b=b+a
Assoziativgesetz: a * (b * c) = (a * b) * c kurz: a(bc) = (ab)c
a + (b + c) = (a + b) + c
Distributivgesetz: a * (b + c) = (a * b) + (a * c) kurz: a(b+c) = ab + ac
a + (b * c) = (a + b) * (a + c) kurz: a + bc = (a+b)(a+c)
Identitätsgesetz: a*1=a
a+0=a
Null/Einsgesetz: a*0=0
a+1=1
Komplementärgesetz: a * ¬a = 0 aa¯ = 0
a + ¬a = 1 a+a¯ = 1
Idempotenzgesetz: a*a=a
a+a=a
Verschmelzungsgesetz: a * (a + b) = a
a + (a * b) = a
Doppeltes Negationsgesetz: ¬(¬a) = a a¯ = a
De Morgan'sche Gesetze: ¬(a * b) = ¬a + ¬b a * b = a¯ + b
¯
¬(a + b) = ¬a * ¬b a + b = a¯ * b
¯

Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 89


Boolesche Algebra: Axiome der Aussagenlogik
Die Regel von de Morgan schauen wir noch etwas intensiver an:
Doppeltes Negationsgesetz: ¬(¬a) = a a¯ = a

De Morgan'sche Gesetze ¬(a * b) = ¬a + ¬b


¬(a + b) = ¬a * ¬b
De Morgan: "Um einen logischen Operator in den anderen umzuwandeln, negiert man zuerst alle
Einzeloperanden und dann die gesamte Operation!"

Das heißt, man kann mit Hilfe der Negation aus einem OR ein AND machen und umgekehrt!
Beispiel OR  AND: a + b = a¯ + ¯b = a¯ * ¯b
¯
Beispiel AND  OR: a * b = a¯ + b
Mit Symbolen:

a a 1 a
>1 a+b = & 1 a+b =
b
&
b b 1
Negationskringel

Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 90


Boolesche Funktionen
Eine Konsequenz der Boolesche Algebra ist, dass n Eingängen bzw. Variablen oder Aussagen
n
durch die Operatoren der Aussagenlogik zu genau 22 Ergebnissen bzw. Aussagen kombiniert
werden können. Dies wird beschrieben durch n-stellige booleschen Funktionen 𝒇 ∶ 𝑩𝒏 → 𝑩1 .
Für n=2 (a und b) gibt es genau 16 zweistellige boolesche Funktionen (Antworten/Ergebnisse):

f0: 0000 a(¬a) = 0 Kontradiktion Nullfunktion


f1: 0001 ab Konjunktion a AND b f1: AND = a b ab
f2: 0010 a(¬b) 1. Differenz a AND NOT b
0 0
f3: 0011 a 1. Identität
f4: 0100 (¬a)b 2. Differenz NOT a AND b 0 1
f5: 0101 b 2. Identität 1 0
f6: 0110 (¬a)b + a(¬b) Antivalenz a XOR b
f7: 0111 a+b Disjunktion a OR b 1 1
f8: 1000 ¬(a+b) Negatdisjunktion a NOR b
f9: 1001 (¬a+b)(a+¬b) Äquivalenz a b
f10: 1010 ¬b 2. Negation NOT b
f11: 1011 a + ¬b 2. Implikation b  a (Sprechweise: Wenn b, dann a)
f12: 1100 ¬a 1. Negation NOT a
f13: 1101 ¬a + b 1. Implikation a  b (Sprechweise: Wenn a, dann b)
f14: 1110 ¬(ab) Negatkonjunktion a NAND b
f15: 1111 a + ¬a = 1 Tautologie Einsfunktion Quelle: H. Herold, B. Lurz, J. Wohlrab: "Grundlagen der Informatik ".

Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 91


Boolesche Funktionen: Beispiele
f6: 0 1 1 0 (¬a)b + a(¬b) Antivalenz a XOR b a b XOR
XOR bzw. Exklusiv-Oder ist nur dann wahr (1), wenn entweder 0 0 a
a oder b wahr (1) ist, also wenn beide ungleich sind! 0 1 b
=1
1 0
1 1
f9: 1 0 0 1 (¬a+b)(a+¬b) Äquivalenz a b a b 
Diese Funktion ergibt nur dann wahr (1), wenn a und b beide a 0 0
gleich (äquivalent) sind . b
=1 0 1
1 0
f8: 1 0 0 0 ¬(a+b) Negatdisjunktion a NOR b 1 1
a b NOR
Hier wird das Ergebnis der OR-Funktion negiert. D.h. es ergibt 0 0
sich nur wahr (1), wenn a und b beide nicht wahr (0) sind. a
0 1
b
>1
1 0
f14: 1 1 1 0 ¬(ab) Negatkonjunktion a NAND b 1 1
Hier wird das Ergebnis der AND-Funktion negiert. Da der a b NAND
Herstellungsprozess für ein NAND einfach ist, bestehen viele a 0 0
Schaltnetze aus Bauteilen mit dieser Funktion. b
& 0 1
1 0
1 1

Entnommen: Kiermaier – Informatik I

Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 92


Realisierung boolescher Funktionen durch Gatter
Bisher haben wir gesehen, dass alle zwei-stelligen booleschen Funktionen sich nur durch
Anwendung der Negation, Konjunktion und Disjunktion (NOT, AND und OR) bilden lassen.
Da wir ein AND in ein OR umwandeln können (Seite 90), genügt es sogar, nur die Negation
und Konjunktion (NOT, AND) oder die Negation und Disjunktion (NOT, OR) zu verwenden.
Weil aber ein negiertes OR ein NOR und ein negiertes AND ein NAND ist, ist es möglich,
alle Funktionen nur mit NAND oder NOR nachzubilden! abc

Und was ist mit n-stelligen Funktionen (n>2)? a b c


0 0 0
Ein AND mit 3 Eingängen kann aus 2 zwei-stelligen AND hergestellt werden:
0 0 1
a a 0 1 0
b
& 0 1 1
& abc = a  b  c b 1 0 0
c
1 0 1
abc 1 1 0
Wie macht man so etwas aus einem NAND? c
1 1 1

1. Schritt: Wenn man 2 Eingänge eines NAND verbindet a


(a = b) erhält man eine Negation (f10/f12)! NOT aus NAND b
2. Schritt: Man negiert damit den Ausgang eines
NAND und erhält ein AND! a & c
abc
3. Schritt: Verbinden gemäß Schaubild oben!

Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 93


Realisierung boolescher Funktionen durch Gatter
Die logischen Funktionen werden nun durch sog. Gatter dargestellt.
Wie macht man aus mehreren NANDs ein zweistelliges OR?
Gemäß dem de Morgan'schen Gesetz kann man ein OR aus einem AND machen,
indem man alle Eingänge und den Ausgang (Ergebnis) negiert:

Beispiel: OR  AND: a+b= a∗b

a1 1
a & a3 3
Überprüfen:
b1
a2 & c=a+b Mit zusätzlichen
2 b3 =ab a1= b1 a3
Spalten a3 und b3
b & a 0
b2
1 a a3 b b3 c a b OR
0 1 0 1 0 0
oder ganz kurz: 0 1 1 0  0 1
1 0 0 1 1 0
a2= b2 b3 1 0 1 0 1 1
a a
b
& = b
>1 b 0
1
Wahrheits-
tabelle für OR

Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 94


Logikbausteine: Der Halbaddierer
Aus diesen Gattern werden dann Logikbausteine zusammengesetzt.
Z. Bsp.: Wie realisieren wir mit dem bisherigen Wissen nun einen
a b  ü
Rechenautomat, der z.B. zwei Bits addieren kann? 0 0
Zunächst erstellen wir uns eine Wahrheitstabelle zum Addieren: 0 1
Wir sehen, dass wir zwei Lösungsfunktionen brauchen: einen für 1 0
1 1
die Summe und einen für den Übertrag.
Die Funktion für die Summe ist f6 (vgl. Seite 91) – die Antivalenz (XOR).
Für den Übertrag ist es die Funktion f1 – die Konjunktion (AND).
Zusammengeschaltet:

a Als neues Symbol: Übung:


=1 
b a Versuchen Sie den Halbaddierer mit
/  max. 7 NAND-Gattern aufzubauen!
b 2
& ü Nutzen Sie dabei die Funktion
ü a XOR b = ab  ab
Diese Schaltung nennt man Halbaddierer
Entnommen: Kiermaier – Informatik I

Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 95


Logikbausteine: Der Volladdierer
Mit der zwei Bit Addition haben wir noch nicht viel erreicht. Wir müssen auch mehr Bits
addieren können.
Dazu nehmen wir den Halbaddierer und addieren die ersten Bits a0 und b0. Dann addieren
wir die beiden nächsten Bits a1 und b1 mit einem weiteren Halbaddierer.
Allerdings kann nun von den ersten Bits ein Übertrag da sein, den wir auch noch hinzu
addieren müssen (mit einem dritten Halbaddierer)!
Im ungünstigsten Fall kann dabei wieder ein Übertrag entstehen, also verbinden wir die
beiden Übertragausgänge der Halbaddierer mit einem ODER!
b1 a1 b0 a0

ü1' / ü0 / Neues Symbol für


2 2 einen Volladdierer
ü1 >1 bn an
1'
0
ü1" / ün
 ün-1
2
Volladdierer
n
1 Entnommen: Kiermaier – Informatik I

Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 96


Ein 4-Bit Rechenwerk
Wie rechnet nun ein Computer?
Mit einem Halbaddierer am Anfang und mehreren Volladdierern kann man nun ein
Rechenwerk aufbauen. Hier zum Beispiel für 4 Bit:
b3 a3 b2 a2 b1 a1 b0 a0
Mit nur einer kleinen Erweiterung kann man
damit auch Subtrahieren. Wie wir wissen,
wird eine Zahl subtrahiert, indem man das
ü3
 ü2
 ü1
 ü0 /
2
Zweierkomplement addiert! 3 2 1 0
Das Zweierkomplement bekommt man durch Negieren der Bits mit einem XOR-Gatter.
Add = 0 Das Rechenwerk (ALU) als Symbol:
b3 b2 b1 b0
a0..an b0 … bn A/S
Sub = 1
Steuerleitung …
=1 =1 =1 =1 =1 =1

addiert 1 für
a3 a2 a1 a0
B-Komplement
Das wichtigste
ü3
 ü2
 ü1
 ü0
 n Element eines
Prozessors (CPU)

3 2 1 0 n-Bits + Ü
Entnommen: Kiermaier – Informatik I

Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 97


Aufbau einer CPU

Register

Zwei Rechenwerke

L1 Speicher
Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 98
Aufbau Intel core i7 Prozessor (Quad Core)

Intel core i7-2600K


Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 99
Der Speicher als Logikbaustein
Wie speichern wir die Summanden oder das Ergebnis einer Berechnung?
Wie speichert man denn ein Bit?
Eine rückgekoppelte Schaltung realisiert ein Gedächtnis, mit dem man Bits speichert!
Sehen wir uns dazu folgende Schaltung mit NOR-Gattern an:
S a b NOR
(Set) >1 Q R S Q Q
0 0 1 0 Grundzustand angenommen 0 0 1
1 0 0 1 R auf 1  Rücksetzen (Q wird 0) 0 1 0
(Reset) 0 0 0 1 Ruhezustand (Keine Änderung) 1 0 0
R >1 Q
0 1 1 0 S auf 1  Setzen (Q wird 1) 1 1 0
0 0 1 0 Ruhezustand (Keine Änderung)
Diese Schaltung nennt
man RS-Flipflop
0 0 0 1 0 0
S 0 1 1 0
>1 >1 >1 >1 1
>1 Q
1 0 0 1

0 1 1 0 0

R >1 1
>1 0 >1 0 >1 1
>1 1
Q
0 1 0 0 0

Verboten (unerwünscht) ist es, R und S gleichzeitig auf 1 zu setzen (Race condition)!
Entnommen: Kiermaier – Informatik I

Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 100


Flip-Flops als 1-Bit Speicher
In der Literatur findet man diese Schaltung auch oft mit NAND-Gattern.
(Umformung nach de Morgan!)

S
& Q Weil dabei die Ein- S & & Q a b NAND
gänge negiert werden, 0 0
setzt man oft noch ein 0 1
NOT aus einem NAND- 1 0
R & Q
Gatter davor! R & & Q 1 1

Um das RS-Flipflop zum Speichern eines Bits zu verwenden, stört uns noch, dass es
zwei Eingänge R und S gibt. Besser wäre nur ein Eingang je Bit!
Bit
(0 oder 1) & & Q Neues Symbol für
einen 1-Bit Speicher
Übernahmetakt
& (D-Flipflop D Q
zum Speichern
1 & & bzw. D-Latch) C1 Q
0
Entnommen: Kiermaier – Informatik I

Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 101


8-Bit SRAM Speicherzelle aus D-Flipflops
Mit acht D-Flipflops kann 1 Byte (8 Bit Daten) gespeichert werden.

Bit7 Bit3 Bit2 Bit1 Bit0


Takt zum
Speichern
1 C1 D C1 D C1 D C1 D C1 D
0
Q Q … Q Q Q Q Q Q Q Q Wichtiges Element
eines Prozessors bzw.
des Computers

1 Datenbyte (statische RAM-Zelle = SRAM)

Durch Hintereinanderschalten mehrerer D-Flipflops kann man z.B. auch einen


(asynchronen) Zähler realisieren:

Takt zum D Q D Q D Q Mit jedem Takt zählt die Schaltung binär


Zählen um 1 hoch (0 bis 7)
C1 Q C1 Q C1 Q
1
0
Q0 Q1 Q2
Entnommen: Kiermaier – Informatik I

Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 102


Schaltnetze
Die technische Realisierung einer Booleschen Funktion durch Verschal-
tung mehrerer Logik-Bausteine (Gatter) nennt man ein Schaltnetz.
Jede Boolesche Funktion f, die den Booleschen Eingangsvariablen x
einem Ausgangsvektor y zuordnet, kann mittels eines Schaltnetzes
dargestellt werden.

Beispiel:
Sei x = (a, b, c) der Eingangsvektor für drei Boolesche Eingangsvariable
und y die einzige Boolesche Ausgangsvariable der Funktion f(a, b, c),
dann kann f durch ein Schaltnetz realisiert werden:
a
y = f(a, b, c) b f y = f(a, b, c)
c

Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 103


Schaltnetze aus Wahrheitstabellen erstellen
Die Boolesche Algebra kennt die drei Operatoren: Konjunktion (AND), Disjunktion (OR) und
Negation (NOT). Jede beliebige Schaltfunktion lässt sich darauf zurückführen.
Zur Bestimmung der Funktion f aus einer Wahrheitstabelle gibt es formale Methoden (Rezepte):

Die Disjunktive Normalform (DNF)


Die Schaltfunktion wird in lauter Disjunktionen (OR) geschrieben. D.h. die einzelnen Terme
(Vollkonjunktionen) werden mit ODER-Verknüpfungen zusammengefasst.
Beispiel: 𝑓 𝑎, 𝑏, 𝑐 = 𝑎𝑏𝑐 ∨ 𝑎𝑏𝑐 ∨ 𝑎𝑏𝑐 ∨ 𝑎𝑏𝑐

Es muss mindestens einer der Einzelterme wahr (1) sein, damit f(a,b,c) = 1 wird!
 MinTerme

Die Konjunktive Normalform (KNF)


Die Schaltfunktion wird in lauter Konjunktionen (AND) geschrieben. D.h. die einzelnen Terme
(Volldisjunktionen) werden mit AND-Verknüpfungen zusammengefasst.
Beispiel: 𝑓 𝑎, 𝑏, 𝑐 = (𝑎 ∨ 𝑏 ∨ 𝑐) ⋅ (𝑎 ∨ 𝑏 ∨ 𝑐) ⋅ (𝑎 ∨ 𝑏 ∨ 𝑐) ⋅ (𝑎 ∨ 𝑏 ∨ 𝑐)
Es genügt, wenn 'maximal' einer der Einzelterme falsch (0) ist, damit f(a,b,c) = 0 wird!
 MaxTerme

Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 104


Normalformen von Schaltfunktionen
Zahl x2 x1 x0 Aufgabe: Erstellen Sie ein Schaltnetz, das bei Eingabe einer
a b c PZ Dualzahl [x2, x1, x0] von 0 – 7 bestimmt, ob diese eine Primzahl ist.
0 0 0 0
Wahrheitstabelle der Primzahlen von 0 – 7: 2, 3, 5, 7
1 0 0 1
2 0 1 0 DNF: Disjunktive Normalform (alle Terme, die 1 sind)
3 0 1 1
4
𝒇 𝒂, 𝒃, 𝒄 = 𝒂𝒃𝒄 ∨ 𝒂𝒃𝒄 ∨ 𝒂𝒃𝒄 ∨ 𝒂𝒃𝒄
1 0 0
5 1 0 1 KNF: Konjunktive Normalform (alle Terme, die 0 sind)
6 1 1 0 𝑓(𝑎, 𝑏, 𝑐) = 𝑎𝑏𝑐 ∨ 𝑎𝑏𝑐 ∨ 𝑎𝑏𝑐 ∨ 𝑎𝑏𝑐
7 1 1 1
⇒ 𝒇 𝒂, 𝒃, 𝒄 = (𝒂 ∨ 𝒃 ∨ 𝒄) ⋅ (𝒂 ∨ 𝒃 ∨ 𝒄) ⋅ (𝒂 ∨ 𝒃 ∨ 𝒄) ⋅ (𝒂 ∨ 𝒃 ∨ 𝒄)
In der vollständigen (kanonischen) Normalform werden
immer alle Variablen (a, b, c) angegeben. Dabei sind die Name Binär MinTerm MaxTerm
MinTerme die Konjunktionen der Eingangsgrößen die wahr m0 000 𝑎𝑏𝑐 𝑎∨𝑏∨𝑐
m1 001 𝑎𝑏𝑐 𝑎∨𝑏∨𝑐
ergeben (die Zeilen mit 1 im Ergebnis), und die MaxTerme die
m2 010 𝑎𝑏𝑐 𝑎∨𝑏∨𝑐
Disjunktionen die falsch ergeben (0-Werte), wobei die
m3 011 𝑎𝑏𝑐 𝑎∨𝑏∨𝑐
Eingangsgrößen negiert werden (man schreibt die KNF zuerst m4 100 𝑎𝑏𝑐 𝑎∨𝑏∨𝑐
als 𝑓 mit Disjunktionen und benutzt dann de Morgan). m5 101 𝑎𝑏𝑐 𝑎∨𝑏∨𝑐
Jeder Min- oder Maxterm hat ein entspr. Binäräquivalent, m6 110 𝑎𝑏𝑐 𝑎∨𝑏∨𝑐
m7 111 𝑎𝑏𝑐 𝑎∨𝑏∨𝑐
aus dem der Index des Terms abgelesen werden kann!

Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 105


Disjunktive Normalform – DNF
Schaltungsentwurf mit DNF
Wenn wir z. B. eine Schaltung realisieren wollen, die ein Lämpchen aktiviert, wenn eine
Primzahl eingegeben wird, dann können wir aus der disjunktiven Normalform erstellen:

a b c DNF: Für die Primzahlen 2, 3, 5, 7


2 3 5 7
1 𝑓 𝑎, 𝑏, 𝑐 = 𝑎𝑏𝑐 ∨ 𝑎𝑏𝑐 ∨ 𝑎𝑏𝑐 ∨ 𝑎𝑏𝑐
&
1 Prüfen:
Damit das ODER-Gatter eine 1 liefert, muss
mindestens ein Eingang 1 sein!
1 Das ist der Fall, wenn mind. ein UND-Gatter
eine 1 liefert (Minimum nötig)!
& Das ist der dann Fall, wenn an allen Eingängen
>1 f(a,c,b) eines UND-Gatters eine 1 liegt!
1 & z.B.: 2 = 0102 liefert am 1. UND eine 1.
7 = 1112 liefert am 4. UND eine 1, usw.

Statt einem OR und mehreren AND-Gattern


& hätten wir auch nur NOR-Gatter verwenden
können

Entnommen: Kiermaier – Informatik I

Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 106


Konjunktive Normalform – KNF
Schaltungsentwurf KNF:
Die gleiche Funktion soll nun aus einer Schaltung mit der konjunktiven Normalform erreicht
werden:
KNF: Für die Primzahlen 2, 3, 5, 7
a b c

𝑓 𝑎, 𝑏, 𝑐 = (𝑎 ∨ 𝑏 ∨ 𝑐) ⋅ (𝑎 ∨ 𝑏 ∨ 𝑐) ⋅ (𝑎 ∨ 𝑏 ∨ 𝑐) ⋅ (𝑎 ∨ 𝑏 ∨ 𝑐)
>1
>1 Prüfen:
Damit das UND-Gatter eine 1 liefert, müssen
1 alle Eingänge 1 sein!
Das ist der Fall, wenn alle ODER-Gatter eine
1 1 liefern (Maximum nötig)!

>1 & f(a,b,c) Das ist der Fall, wenn an mindestens einem
Eingang jedes OR eine 1 liegt!
z.B.: 0 = 0002 liefert am 1. OR eine 0.
1 1 = 0012 liefert am 2. OR eine 0, usw.

1 >1 Statt einem AND und mehreren OR-Gattern hätten


wir auch nur NAND-Gatter verwenden können.

Entnommen: Kiermaier – Informatik I

Informatik I – 3. Boolesche Algebra – Prof. Dr. Dieter Koller 107