‹ Informatik

Karnaugh-Veitch-Diagramm

Karnaugh-Veitch-Diagramm verständlich erklärt: Definition, Regeln, Beispiele und Anwendung in Logik, Boolescher Algebra und Schaltungen.

Wenn du eine Schaltung planst, soll ein Ausgang oft nur bei bestimmten Eingaben eingeschaltet sein. Eine lange logische Formel wird dabei schnell unübersichtlich. Mit einem KV-Diagramm erkennst du Muster und machst die Formel kürzer.

Deine Lernziele
  • Du erklärst, wozu ein KV-Diagramm dient.
  • Du überträgst Werte aus einer Wahrheitstabelle.
  • Du bildest erlaubte Gruppen aus Einsen.
  • Du liest eine vereinfachte logische Formel ab.

Von Schaltern zur Wahrheitstabelle

In der Digitaltechnik gibt es zwei Zustände: aus und an. Dafür nutzt man meist die Werte 0 und 1.

Definition

Eine boolesche Funktion ist eine Regel mit Eingaben, die nur 0 oder 1 sein können. Auch ihr Ergebnis ist immer 0 oder 1.

Eine Variable ist ein Platzhalter für eine Eingabe, zum Beispiel \(A\) oder \(B\).

Eine Wahrheitstabelle zeigt für jede mögliche Kombination der Eingaben das Ergebnis der Funktion.

Stell dir zwei Schalter vor. Eine Lampe soll leuchten, wenn mindestens einer der beiden Schalter an ist.

Beispiel

Für die Funktion \(F=A \lor B\) bedeutet \(\lor\) „oder“.

A B F
0 0 0
0 1 1
1 0 1
1 1 1
Merke

Ein KV-Diagramm ordnet die Zeilen einer Wahrheitstabelle so an, dass du eine boolesche Funktion leichter vereinfachen kannst.

Das KV-Diagramm aufbauen

Ein Karnaugh-Veitch-Diagramm, kurz KV-Diagramm, besteht aus Feldern. Jedes Feld steht für genau eine Kombination der Eingabevariablen.

Ein Bit ist eine einzelne binäre Stelle. Es kann nur den Wert 0 oder 1 haben. Bei \(n\) Variablen gibt es \(2^n\) Felder. Mit zwei Variablen sind es vier Felder, mit drei Variablen acht.

Die Reihenfolge der Felder ist besonders wichtig. Benachbarte Felder dürfen sich nur in einer Variable unterscheiden. Deshalb lautet die Reihenfolge bei zwei Bits nicht \(00\), \(01\), \(10\), \(11\), sondern \(00\), \(01\), \(11\), \(10\).

Beispiel

Ein KV-Diagramm für zwei Variablen kann so aussehen:

A \ B 0 1
0 0 1
1 1 1

Die Zahlen im Inneren stammen aus der Wahrheitstabelle von \(F=A \lor B\).

Gut zu wissen

Die Felder am linken und rechten Rand gelten ebenfalls als Nachbarn. Bei Diagrammen mit mehr Variablen gilt das auch für oben und unten.

Interaktiver Lückentext wird geladen ...

Einsen sinnvoll gruppieren

Zum Vereinfachen verwendest du meistens die Minterm-Methode. Ein Minterm beschreibt genau eine Eingabekombination, für die eine boolesche Funktion den Wert 1 liefert. Im KV-Diagramm entspricht jeder Minterm einem Feld mit einer 1.

Du übernimmst also die Einsen aus der Wahrheitstabelle in das KV-Diagramm. Danach fasst du benachbarte Einsen zu Gruppen zusammen. Eine Gruppe darf aus \(1\), \(2\), \(4\), \(8\) oder \(16\) Feldern bestehen. Sie muss ein Rechteck bilden.

Beispiel

Diese beiden Einsen liegen nebeneinander:

A \ B 0 1
0 0 0
1 1 1

Sie bilden eine Zweiergruppe. In beiden Feldern ist \(A=1\). Der Wert von \(B\) wechselt. Daher bleibt nur \(A\) übrig.

Merke

Je größer eine Gruppe ist, desto kürzer wird ihr Term. In einer Gruppe streichst du alle Variablen, die ihren Wert ändern.

Gruppen dürfen sich überlappen. Das ist manchmal nötig, damit jede Eins erfasst wird und die Formel möglichst kurz wird. Diagonal berührte Felder sind keine Nachbarn.

Interaktive Quizfrage wird geladen ...

Den Term aus einer Gruppe ablesen

Jetzt übersetzt du jede Gruppe zurück in eine Formel. Bei der Minterm-Methode schreibst du nur die Variablen auf, die innerhalb der Gruppe gleich bleiben. Diese Variablen verbindest du mit UND. Das Zeichen dafür ist \(\land\).

Mehrere Gruppenterme verbindest du mit ODER. Das Zeichen dafür ist \(\lor\).

Eine Negation kehrt einen Wert um. „Nicht \(A\)“ schreibt man als \(\lnot A\). Wenn \(A=0\) ist, ist \(\lnot A=1\).

Beispiel

Betrachte die Funktion:

$$ F=(\lnot A \land B) \lor (A \land B) $$

In beiden Teilen ist \(B\) immer 1. \(A\) wechselt von 0 zu 1. Die beiden passenden Felder bilden deshalb eine Zweiergruppe.

Nach dem Gruppieren bleibt:

$$ F=B $$
Gut zu wissen

Für einen Gruppenterm gilt: Gleich bleibende Variablen aufschreiben, wechselnde Variablen weglassen. Ist eine Variable in allen Feldern 0, schreibst du ihre Negation.

Interaktiver Lückentext wird geladen ...

Ein vollständiges Beispiel

Die Funktion soll immer dann 1 werden, wenn \(B\) den Wert 1 hat. Ausgeschrieben kann sie so aussehen:

$$ F=(\lnot A \land B) \lor (A \land B) $$

Trage die beiden Einsen in ein KV-Diagramm ein.

Beispiel
A \ B 0 1
0 0 1
1 0 1

Die rechte Spalte ist eine Zweiergruppe. Dort bleibt \(B=1\), während \(A\) wechselt.

Daraus liest du ab:

$$ F=B $$

Die kürzere Formel beschreibt genau dieselbe Schaltung. Weniger Bestandteile in der Formel können auch weniger Logikgatter in einer Schaltung bedeuten.

Interaktive Quizfrage wird geladen ...

Nullen und Sonderfälle

Manchmal gruppierst du statt der Einsen die Nullen. Das heißt Maxterm-Methode. Ein Maxterm beschreibt eine Eingabekombination, für die die Funktion den Wert 0 liefert. Diese Methode führt zu einer anderen Schreibweise der Formel und ist für den Einstieg meist schwieriger.

Ein Feld mit \(X\) heißt Don't-Care-Zustand. Das bedeutet: Für diese Eingabekombination ist das Ergebnis unwichtig. Bei der Minterm-Methode darfst du ein solches Feld wie eine 1 verwenden, wenn dadurch eine größere Gruppe entsteht. Bei der Maxterm-Methode darfst du es entsprechend wie eine 0 verwenden. Du musst ein \(X\)-Feld aber nicht in eine Gruppe aufnehmen.

Beispiel

Liegt neben einer einzelnen Eins ein \(X\)-Feld, kannst du beide bei der Minterm-Methode als Zweiergruppe behandeln. Dann kann eine Variable wegfallen und die Formel wird kürzer.

Merke

Arbeite zuerst sicher mit den Einsen: Wahrheitstabelle übertragen, möglichst große Gruppen bilden, gleich bleibende Variablen ablesen und die Gruppenterme mit ODER verbinden.

Zusammenfassung

Ein KV-Diagramm ordnet die Fälle einer booleschen Funktion so an, dass du benachbarte Einsen leicht erkennst. Benachbarte Felder unterscheiden sich immer nur in einer Variable. Auch gegenüberliegende Ränder sind Nachbarn.

Du gruppierst alle Einsen in möglichst große rechteckige Zweierpotenzen. Aus jeder Gruppe bleiben nur die Variablen übrig, die sich nicht ändern. Die Terme aller Gruppen verbindest du mit ODER. So wird aus einer langen Formel eine kurze und übersichtliche Formel.