Informatik · Klasse 7–10 · aktualisiert
Boolesche Funktionen: Wahrheitstabellen verstehen
Du lernst, was eine Boolesche Funktion ist, wertest Terme mit NICHT, UND und ODER aus und bildest KDNF und KKNF aus einer Wahrheitstafel.
0 von 9 Aufgaben gelöst
Kurz gesagt
Eine Boolesche Funktion ordnet Eingaben aus 0 und 1 einen Wert 0 oder 1 zu. Ihre Wahrheitstafel hat 2 hoch (Zahl der Eingangsvariablen) Zeilen. Aus den Zeilen mit Ergebnis 1 bildest du die KDNF, aus denen mit Ergebnis 0 die KKNF.
Ein Lichtschalter ist AN oder AUS, und die Lampe leuchtet oder nicht. Genau solche Fälle beschreibst du mit Booleschen Funktionen. Du lernst, wie du alle Möglichkeiten in einer Tabelle auflistest und Terme sicher ausrechnest. Dazu bekommst du ein Verfahren, mit dem du aus einer Tabelle einen Term baust.
Deine Lernziele
Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Mela das Ziel für dich ab.
3 Abschnitte
Stell dir eine Schaltung vor: Ein Schalter ist AN (1) oder AUS (0), und eine Lampe leuchtet (1) oder nicht (0). So etwas beschreibt eine Boolesche Funktion. Sie bekommt Eingaben, und jede Eingabe ist 0 oder 1. Dazu gibt sie einen Wert aus, der ebenfalls 0 oder 1 ist. Wir benutzen hier die wichtigste boolesche Algebra, die nur die zwei Elemente 0 und 1 hat. Dabei steht 0 für „falsch“ und 1 für „wahr“. Das Eingangs-Ausgangs-Verhalten jeder möglichen digitalen Schaltung kann durch einen booleschen Ausdruck modelliert werden.
Eine Wahrheitstafel (auch Wahrheitstabelle) listet für jede mögliche Eingabe den Ausgang auf. Wie viele Zeilen sie hat, hängt von der Zahl der Eingangsvariablen ab: Anzahl Zeilen = 2 hoch (Anzahl der Eingangsvariablen). Mit jeder weiteren Variablen verdoppelt sich also die Zeilenzahl. Damit du keine Zeile vergisst oder doppelt schreibst, fängst du mit lauter Nullen an. Dann zählst du wie im Dualsystem aufwärts, bis nur noch Einsen dastehen.
Auch die Zahl der möglichen Funktionen ist begrenzt. Mit einer Eingangsvariablen gibt es nur 4 verschiedene Funktionen, mit zwei Eingangsvariablen schon 16. Allgemein gibt es 2 hoch (2 hoch n) Funktionen mit n Eingängen. Bei 4 Eingängen sind das 2 hoch 16 = 65.536 verschiedene Funktionen.
Definition
Boolesche Funktion
Eine Boolesche Funktion (auch logische Funktion) bekommt n Eingaben aus 0 und 1 und gibt einen Wert aus 0 und 1 aus. Manchmal erlaubt man auch mehrere Ausgänge.
| Eingangsvariablen | Zeilen | Rechnung |
|---|---|---|
| 1 | 2 | 2 hoch 1 |
| 2 | 4 | 2 hoch 2 |
| 3 | 8 | 2 hoch 3 |
| 4 | 16 | 2 hoch 4 |
Merke: Die Wahrheitstafel hat 2 hoch n Zeilen, wenn die Funktion n Eingangsvariablen hat.
Teste dich
Ein Boolescher Term verknüpft Variablen mit drei Bausteinen. Sie heißen NICHT (Zeichen ¬), UND (Zeichen ∧) und ODER (Zeichen ∨). In Programmiersprachen heißen sie auch NOT, AND und OR.
So rechnest du: NICHT dreht den Wert um, aus 0 wird 1 und aus 1 wird 0. UND ergibt nur dann 1, wenn alle verknüpften Werte 1 sind. Ist ein Wert 0, ist das Ergebnis 0. ODER ist das nicht ausschließende ODER: Es ergibt 1, wenn mindestens eines von beiden wahr ist.
Ohne Klammern hat in der Schaltalgebra UND immer Vorrang vor ODER. Oft wird das UND-Zeichen weggelassen: ¬x1 x2 bedeutet ¬x1 ∧ x2. Um einen Term für alle Eingaben auszuwerten, gehst du jede Zeile der Wahrheitstafel durch. Setze die Werte ein, rechne erst NICHT und dann UND und zuletzt ODER.
Das XOR (EXCLUSIVE OR) gibt 1 aus, wenn die beiden Eingänge unterschiedlich sind. Als Term mit den Eingängen x1 und x2 schreibst du es so: (¬x1 ∧ x2) ∨ (x1 ∧ ¬x2).
Definition
Auswerten
Einen Term auszuwerten heißt: Du setzt für jede Variable 0 oder 1 ein und rechnest den Wert des ganzen Terms aus.
Beispiel: XOR für alle vier Eingaben auswerten
- 1x1 = 0, x2 = 0: (1 ∧ 0) ∨ (0 ∧ 1) = 0 ∨ 0 = 0
- 2x1 = 0, x2 = 1: (1 ∧ 1) ∨ (0 ∧ 0) = 1 ∨ 0 = 1
- 3x1 = 1, x2 = 0: (0 ∧ 0) ∨ (1 ∧ 1) = 0 ∨ 1 = 1
- 4x1 = 1, x2 = 1: (0 ∧ 1) ∨ (1 ∧ 0) = 0 ∨ 0 = 0
Merke: Erst NICHT, dann UND, zuletzt ODER. In der Schaltalgebra hat UND Vorrang vor ODER.
Teste dich
Aus jeder Wahrheitstafel kannst du einen Term bauen. Dazu brauchst du ein paar Wörter. Eine Konjunktion ist eine UND-Verknüpfung, eine Disjunktion ist eine ODER-Verknüpfung.
KDNF (kanonische disjunktive Normalform): Für jede Zeile mit Ergebnis 1 bildest du einen Minterm. Das ist eine UND-Verknüpfung aller Variablen. Variablen mit Wert 1 bleiben, wie sie sind. Variablen mit Wert 0 werden negiert. Dann verbindest du alle Minterme mit ODER. Jede Variable kommt in jedem Minterm genau einmal vor. Jede Boolesche Funktion hat genau eine KDNF, bis auf die Reihenfolge der Minterme.
KKNF (kanonische konjunktive Normalform): Für jede Zeile mit Ergebnis 0 bildest du einen Maxterm. Das ist eine ODER-Verknüpfung aller Variablen mit der invertierten Belegung. Eine Variable mit Wert 0 bleibt also, eine mit Wert 1 wird negiert. Dann verbindest du alle Maxterme mit UND. Beide Normalformen sind in der Regel keine minimale Formel, also nicht die kürzeste mögliche.
Umformen: Die Gesetze der Booleschen Algebra erlauben, einen Term durch einen gleichwertigen Term zu ersetzen. Die De Morganschen Gesetze lauten ¬(a ∧ b) = ¬a ∨ ¬b und ¬(a ∨ b) = ¬a ∧ ¬b. Außerdem gilt ¬(¬a) = a. Wegen der De Morganschen Regel reichen grundsätzlich auch zwei der drei Grundfunktionen aus, zum Beispiel NICHT zusammen mit UND. Du kannst jede Umformung mit der Wahrheitstafel prüfen. Ausgedachter Test für das erste Gesetz mit a = 1 und b = 0: ¬(1 ∧ 0) = ¬0 = 1 und ¬1 ∨ ¬0 = 0 ∨ 1 = 1.
Definition
Minterm und Maxterm
Ein Minterm ist eine UND-Verknüpfung aller Variablen, ein Maxterm eine ODER-Verknüpfung aller Variablen. Jede Variable steht darin genau einmal, entweder negiert oder nicht.
| KDNF | KKNF | |
|---|---|---|
| Diese Zeilen nimmst du | Ergebnis 1 | Ergebnis 0 |
| Baustein | Minterm (UND) | Maxterm (ODER) |
| Variable mit Wert 0 | wird negiert | bleibt unnegiert |
| Variable mit Wert 1 | bleibt unnegiert | wird negiert |
| Alles zusammen | Minterme mit ODER | Maxterme mit UND |
Merke: De Morgan: Beim Auflösen des NICHT wird aus UND ein ODER und aus ODER ein UND.
Teste dich
Alles auf einen Blick
Boolesche Funktion
Boolesche Funktion
Eingaben und Ausgabe sind 0 oder 1
Zeilenzahl
2 hoch (Zahl der Eingangsvariablen)
Auswerten
erst NICHT, dann UND, zuletzt ODER
KDNF
Minterme der Zeilen mit Ergebnis 1 mit ODER verbinden
KKNF
Maxterme der Zeilen mit Ergebnis 0 mit UND verbinden
De Morgan
Beim Auflösen des NICHT tauschen UND und ODER
Musteraufgabe · Schritt für Schritt
KDNF und KKNF einer Funktion bilden und umformen (ausgedachtes Beispiel)
- 1Die Funktion f hat die Eingänge a und b. Sie ergibt 1 bei (0,0), (1,0) und (1,1) und 0 bei (0,1).
- 2KDNF: Minterme der drei Zeilen mit 1 sind (¬a ∧ ¬b), (a ∧ ¬b) und (a ∧ b). Also f = (¬a ∧ ¬b) ∨ (a ∧ ¬b) ∨ (a ∧ b)
- 3KKNF: Nur die Zeile (0,1) ergibt 0. Invertierte Belegung: a bleibt, b wird ¬b. Also f = a ∨ ¬b
- 4Probe der KKNF: (0,0): 0 ∨ 1 = 1 · (0,1): 0 ∨ 0 = 0 · (1,0): 1 ∨ 1 = 1 · (1,1): 1 ∨ 0 = 1
- 5Umformen: ¬(¬a ∧ b) = ¬(¬a) ∨ ¬b = a ∨ ¬b. Das ist wieder dieselbe Funktion f.
Fehler finden
Prüfe die Aussagen zu den De Morganschen Gesetzen In einer Zeile steckt ein Fehler. Tippe sie an.
Fehler in Zeile 3Das ODER wird beim Auflösen des NICHT zum UND. Richtig: ¬(a ∨ b) = ¬a ∧ ¬b. Probe mit a = 1 und b = 0: ¬(1 ∨ 0) = 0, aber ¬1 ∨ ¬0 = 1.
Lückentext
Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.
Für die KDNF liest du die Zeilen mit dem Ergebnis ab. Bei 2 Eingangsvariablen hat die Wahrheitstafel Zeilen. Nach den De Morganschen Gesetzen wird aus NICHT (a UND b) der Term NICHT a NICHT b.
Karteikasten
Erst selbst überlegen, dann umdrehen.
Übung mit Feedback