k341-Berechnung_eines_Minimalpolynoms_Quine_McCluskey
Page 1
Kapitel 3 – Kombinatorische Logik
- Kombinatorische Schaltkreise
- Boolesche Algebren
- Boolesche Ausdrücke, Normalformen, zweistufige Synthese
- Berechnung eines Minimalpolynoms
- 4.1 Karnaugh / Quine-McCluskey
- 4.2 Überdeckungsproblem
- Arithmetische Schaltungen
- Anwendung: ALU von ReTI
Albert-Ludwigs-Universität Freiburg
Prof. Dr. Armin Biere
Institut für Informatik
Page 2
Billigste Überdeckung der markierten Ecken
Wir suchen ein sogenanntes Minimalpolynom, das heißt ein Polynom mit minimalen Kosten.
Definition:
Ein Minimalpolynom
Page 3
Quine's Primimplikantensatz
Satz:
Jedes Minimalpolynom
Beweis:
Nehme an, dass
Es gilt demnach
Ersetzt man in
(also mit strikt besseren Kosten).
Widerspruch dazu, dass
Page 4
Berechnung von Implikanten
Lemma 1:
Ist
Beweis:
Lemma 2:
Sind
Beweis:
Page 5
Charakterisierung von Implikanten
Satz:
Ein Monom
ein Minterm von ist, oder und Implikanten von sind für eine Variable , die nicht in vorkommt.
Äquivalente Schreibweise:
Beweis folgt unmittelbar aus Lemma 1 und Lemma 2.
Page 6
Berechnung eines Minimalpolynoms
Verfahren von Quine-McCluskey zur Berechnung aller Primimplikanten.
Idee: Berechne sogar alle Implikanten. Dann ist auch klar, welche Primimplikanten sind.
Verfahren zur Lösung des „Überdeckungsproblems": Treffe unter den Primimplikanten eine geeignete Auswahl, so dass die Disjunktion der ausgewählten Primimplikanten ein Polynom für
Page 7
Quine vs Karnaugh-Veitch
Die zwei Verfahren berechnen dasselbe, aber anders: Quine ist besser für den Computer und Karnaugh-Veitch funktioniert, weil Menschen Motive erkennen.
Page 8
4 Variablen
Funktion wird als Tabelle dargestellt. Gray-Code für die Einträge: nur eine Unterscheidung von einer Zeile zur nächsten.
| 00 | 01 | 11 | 10 | |
|---|---|---|---|---|
| 00 | ||||
| 01 | ||||
| 11 | ||||
| 10 |
Page 9
4 Variablen
Eigentlich Torus (Wikipedia-Bild). Für mehr als 4 Variablen: Schwer sich das Vorzustellen.
Page 10
Bedeutung der Tabelle
Jede Bedeckung ist eine Konjunktion von mehreren Boxen. Hier nur die positiven Literale:
| 00 | 01 | 11 | 10 | |
|---|---|---|---|---|
| 00 | ||||
| 01 | ||||
| 11 | ||||
| 10 |
Page 11
Bedeutung der Tabelle
Jede Bedeckung ist eine Konjunktion von mehreren Boxen. Hier nur die positiven Literale:
| 00 | 01 | 11 | 10 | |
|---|---|---|---|---|
| 00 | ||||
| 01 | ||||
| 11 | ||||
| 10 |
Page 12
Bedeutung der Tabelle
Jede Bedeckung ist eine Konjunktion von mehreren Boxen. Hier nur die positiven Literale:
| 00 | 01 | 11 | 10 | |
|---|---|---|---|---|
| 00 | ||||
| 01 | ||||
| 11 | ||||
| 10 |
Page 13
Bedeutung der Tabelle
Jede Bedeckung ist eine Konjunktion von mehreren Boxen. Hier nur die positiven Literale:
| 00 | 01 | 11 | 10 | |
|---|---|---|---|---|
| 00 | ||||
| 01 | ||||
| 11 | ||||
| 10 |
Page 14
Bedeutung der Tabelle
Jede Bedeckung ist eine Konjunktion von mehreren Boxen. Hier nur die positiven Literale:
| 00 | 01 | 11 | 10 | |
|---|---|---|---|---|
| 00 | ||||
| 01 | ||||
| 11 | ||||
| 10 |
Page 15
Ziel: Maximale Bedeckung finden
Gibt eine Bedeckung die nicht vollständig bedeckt ist:
| Bedeckung | Monom |
|---|---|
| 0 Literale | |
| 1 Literal | |
| 2 Literale | |
| 3 Literale | |
| 4 Literale |
(nicht vergessen: es ist ein Torus!)
Für jedes: Monom schreiben!
Page 16
Bedeckung
| 00 | 01 | 11 | 10 | |
|---|---|---|---|---|
| 00 | ||||
| 01 | ||||
| 11 | ||||
| 10 |
Page 17
Bedeckung
| 00 | 01 | 11 | 10 | |
|---|---|---|---|---|
| 00 | ||||
| 01 | ||||
| 11 | ||||
| 10 |
Page 18
Bedeckung
Es ist viel leichter zu erkennen als alle zu zeichnen:
| 00 | 01 | 11 | 10 | |
|---|---|---|---|---|
| 00 | =00 | =01 | ||
| 01 | =10 | =11 | ||
| 11 | ||||
| 10 |
Page 19
Ziel: Maximale Bedeckung finden
| 00 | 01 | 11 | 10 | |
|---|---|---|---|---|
| 00 | 1 | 1 | 1 | 0 |
| 01 | 1 | 1 | 1 | 0 |
| 11 | 1 | 1 | 0 | 1 |
| 10 | 1 | 1 | 0 | 1 |
Page 20
Ziel: Maximale Bedeckung finden
| 00 | 01 | 11 | 10 | |
|---|---|---|---|---|
| 00 | 1 | 1 | 1 | 0 |
| 01 | 1 | 1 | 1 | 0 |
| 11 | 1 | 1 | 0 | 1 |
| 10 | 1 | 1 | 0 | 1 |
Page 21
Ziel: Maximale Bedeckung finden
| 00 | 01 | 11 | 10 | |
|---|---|---|---|---|
| 00 | 1 | 1 | 1 | 0 |
| 01 | 1 | 1 | 1 | 0 |
| 11 | 1 | 1 | 0 | 1 |
| 10 | 1 | 1 | 0 | 1 |
Page 22
Ziel: Maximale Bedeckung finden
| 00 | 01 | 11 | 10 | |
|---|---|---|---|---|
| 00 | 1 | 1 | 1 | 0 |
| 01 | 1 | 1 | 1 | 0 |
| 11 | 1 | 1 | 0 | 1 |
| 10 | 1 | 1 | 0 | 1 |
Page 23
Ziel: Maximale Bedeckung finden
| 00 | 01 | 11 | 10 | |
|---|---|---|---|---|
| 00 | 1 | 1 | 1 | 0 |
| 01 | 1 | 1 | 1 | 0 |
| 11 | 1 | 1 | 0 | 1 |
| 10 | 1 | 1 | 0 | 1 |
Also:
Page 24
Verfahren von Quine: Der Algorithmus
Prime implicants function Quine (f : B^n → B)
begin
L₀ := Minterm(f);
i := 0;
Prim(f) := ∅
while (Lᵢ ≠ ∅) and (i < n) do
// Lᵢ enthält alle Implikanten von f der Länge n−i.
Lᵢ₊₁ := {m | m·x und m·x' sind in Lᵢ für ein x};
Prim(f) := Prim(f) ∪
{m' | m' ∈ Lᵢ und m' wird von keinem q ∈ Lᵢ₊₁ überdeckt};
i := i + 1;
end while;
return Prim(f) ∪ Lᵢ;
end;
Page 25
Verbesserung durch McCluskey
Vergleiche nur Monome untereinander,
- welche die gleichen Variablen enthalten und
- bei denen sich die Anzahl der positiven Literale nur um 1 unterscheidet.
Dies wird erreicht durch:
- Partitionierung von
in Klassen , mit und . enthält die Implikanten aus , deren Literale alle aus sind.- Anordnung der Monome in
gemäß der Anzahl der positiven Literale.
Page 26
Beispiel Quine-McCluskey
| Minterm | ||||
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | |
| 0 | 0 | 0 | 1 | |
| 0 | 1 | 0 | 0 | |
| 1 | 0 | 0 | 0 | |
| 0 | 0 | 1 | 1 | |
| 0 | 1 | 0 | 1 | |
| 1 | 0 | 0 | 1 | |
| 1 | 0 | 1 | 0 | |
| 1 | 1 | 0 | 0 | |
| 0 | 1 | 1 | 1 | |
| 1 | 1 | 0 | 1 | |
| 1 | 1 | 1 | 0 |
Vergleiche im Folgenden nur Monome aus benachbarten Blöcken!
0 0 0 0 steht für
1 0 0 1 steht für
Page 27
Beispiel Quine-McCluskey: Bestimmung von
| Minterm | ||||
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | |
| 0 | 0 | 0 | 1 | |
| 0 | 1 | 0 | 0 | |
| 1 | 0 | 0 | 0 | |
| 0 | 0 | 1 | 1 | |
| 0 | 1 | 0 | 1 | |
| 1 | 0 | 0 | 1 | |
| 1 | 0 | 1 | 0 | |
| 1 | 1 | 0 | 0 | |
| 0 | 1 | 1 | 1 | |
| 1 | 1 | 0 | 1 | |
| 1 | 1 | 1 | 0 |
| Implikant | ||||
|---|---|---|---|---|
| 0 | 0 | 0 | - |
Page 28
Beispiel Quine-McCluskey: Bestimmung von
| Minterm | ||||
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | |
| 0 | 0 | 0 | 1 | |
| 0 | 1 | 0 | 0 | |
| 1 | 0 | 0 | 0 | |
| 0 | 0 | 1 | 1 | |
| 0 | 1 | 0 | 1 | |
| 1 | 0 | 0 | 1 | |
| 1 | 0 | 1 | 0 | |
| 1 | 1 | 0 | 0 | |
| 0 | 1 | 1 | 1 | |
| 1 | 1 | 0 | 1 | |
| 1 | 1 | 1 | 0 |
| Implikant | ||||
|---|---|---|---|---|
| 0 | 0 | 0 | - |
| Implikant | ||||
|---|---|---|---|---|
| 0 | - | 0 | 0 |
Page 29
Beispiel Quine-McCluskey: Bestimmung von
| Minterm | ||||
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | |
| 0 | 0 | 0 | 1 | |
| 0 | 1 | 0 | 0 | |
| 1 | 0 | 0 | 0 | |
| 0 | 0 | 1 | 1 | |
| 0 | 1 | 0 | 1 | |
| 1 | 0 | 0 | 1 | |
| 1 | 0 | 1 | 0 | |
| 1 | 1 | 0 | 0 | |
| 0 | 1 | 1 | 1 | |
| 1 | 1 | 0 | 1 | |
| 1 | 1 | 1 | 0 |
| Implikant | ||||
|---|---|---|---|---|
| 0 | 0 | 0 | - |
| Implikant | ||||
|---|---|---|---|---|
| 0 | - | 0 | 0 | |
| 0 | - | 1 | 1 |
Page 30
Beispiel Quine-McCluskey: Bestimmung von
| Minterm | ||||
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | |
| 0 | 0 | 0 | 1 | |
| 0 | 1 | 0 | 0 | |
| 1 | 0 | 0 | 0 | |
| 0 | 0 | 1 | 1 | |
| 0 | 1 | 0 | 1 | |
| 1 | 0 | 0 | 1 | |
| 1 | 0 | 1 | 0 | |
| 1 | 1 | 0 | 0 | |
| 0 | 1 | 1 | 1 | |
| 1 | 1 | 0 | 1 | |
| 1 | 1 | 1 | 0 |
| Implikant | ||||
|---|---|---|---|---|
| 0 | 0 | 0 | - |
| Implikant | ||||
|---|---|---|---|---|
| 0 | - | 0 | 0 | |
| 0 | - | 1 | 1 |
Nicht kürzbar, da nicht Ecken der gleichen Kante.
Page 31
Beispiel Quine-McCluskey: Alle bestimmten Mengen
| 0 | 0 | - | 1 |
| 1 | 0 | - | 0 |
| 0 | 1 | - | 1 |
| 1 | 1 | - | 0 |
| - | 0 | 0 | 0 |
| - | 0 | 0 | 1 |
| - | 1 | 0 | 0 |
| - | 1 | 0 | 1 |
| 0 | 0 | 0 | - |
| 0 | 1 | 0 | - |
| 1 | 0 | 0 | - |
| 1 | 1 | 0 | - |
| 0 | - | 0 | 0 |
| 0 | - | 0 | 1 |
| 1 | - | 0 | 0 |
| 0 | - | 1 | 1 |
| 1 | - | 0 | 1 |
| 1 | - | 1 | 0 |
Alle Minterme von
Page 32
Beispiel Quine-McCluskey: Bestimmung von
| 0 | 0 | - | 1 |
| 1 | 0 | - | 0 |
| 0 | 1 | - | 1 |
| 1 | 1 | - | 0 |
| - | 0 | 0 | 0 |
| - | 0 | 0 | 1 |
| - | 1 | 0 | 0 |
| - | 1 | 0 | 1 |
| 0 | 0 | 0 | - |
| 0 | 1 | 0 | - |
| 1 | 0 | 0 | - |
| 1 | 1 | 0 | - |
| 0 | - | 0 | 0 |
| 0 | - | 0 | 1 |
| 1 | - | 0 | 0 |
| 0 | - | 1 | 1 |
| 1 | - | 0 | 1 |
| 1 | - | 1 | 0 |
Alle Implikanten aus
Page 33
Beispiel Quine-McCluskey: Bestimmung von
| 0 | 0 | - | 1 |
| 1 | 0 | - | 0 |
| 0 | 1 | - | 1 |
| 1 | 1 | - | 0 |
| - | 0 | 0 | 0 |
| - | 0 | 0 | 1 |
| - | 1 | 0 | 0 |
| - | 1 | 0 | 1 |
| 0 | 0 | 0 | - |
| 0 | 1 | 0 | - |
| 1 | 0 | 0 | - |
| 1 | 1 | 0 | - |
| 0 | - | 0 | 0 |
| 0 | - | 0 | 1 |
| 1 | - | 0 | 0 |
| 0 | - | 1 | 1 |
| 1 | - | 0 | 1 |
| 1 | - | 1 | 0 |
Alle Implikanten aus
Page 34
Beispiel Quine-McCluskey: Bestimmung von
| 0 | - | - | 1 |
| 1 | - | - | 0 |
| 0 | - | 0 | - |
| 1 | - | 0 | - |
| - | 0 | 0 | - |
| - | 1 | 0 | - |
| - | - | 0 | 0 |
| - | - | 0 | 1 |
Die markierten Implikanten-Flächen sind nicht Rand eines 3-dim. Implikanten. Sie sind also prim!
Page 35
Beispiel Quine-McCluskey: Bestimmung von
| 0 | - | - | 1 |
| 1 | - | - | 0 |
| 0 | - | 0 | - |
| 1 | - | 0 | - |
| - | 0 | 0 | - |
| - | 1 | 0 | - |
| - | - | 0 | 0 |
| - | - | 0 | 1 |
Die markierten Implikanten-Flächen sind Rand eines 3-dimensionalen Implikanten. Sie sind also nicht prim!
Page 36
Beispiel Quine-McCluskey: Ende
| - | - | 0 | - |
Page 37
Korrektheit von Quine-McCluskey (1/2)
Prime implicants function Quine (f : B^n → B)
begin
L₀ := Minterm(f);
i := 0;
Prim(f) := ∅
while (Lᵢ ≠ ∅) and (i < n) do
// Lᵢ enthält alle Implikanten von f der Länge n−i.
Lᵢ₊₁ := {m | m·x und m·x' sind in Lᵢ für ein x};
Prim(f) := Prim(f) ∪
{m' | m' ∈ Lᵢ und m' wird von keinem q ∈ Lᵢ₊₁ überdeckt};
i := i + 1;
end while;
return Prim(f) ∪ Lᵢ;
end;
Page 38
Korrektheit von Quine-McCluskey (2/2)
Satz:
Für alle
enthält nur Monome mit Literalen. enthält genau die Implikanten von mit Literalen.- Nach Iteration
enthält genau die Primimplikanten von mit mindestens Literalen.
Beweis:
Induktion über
Abbruchbedingung (
bedeutet, dass keine Implikanten bei der „Partnersuche" entstanden sind, d.h. ist vollständig in aufgegangen. bedeutet, dass berechnet wurde, es gilt dann oder , letzteres bedeutet ist die Eins-Funktion und .
Page 39
Kosten des Verfahrens
Lemma:
Es gibt
Beweis:
Für jedes Monom
enthält weder das positive noch das negative Literal von . enthält das positive Literal . enthält das negative Literal .
Jedes Monom ist durch diese Beschreibung auch eindeutig bestimmt.
Page 40
Komplexität des Verfahrens von Quine-McCluskey
Satz:
Die Laufzeit des Verfahrens liegt in
Beweisidee:
Jedes der
Gegeben sei ein Monom







































