k342-Berechnung_eines_Minimalpolynoms_Ueberdeckungsproblem
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
Das Matrix-Überdeckungsproblem
Wir haben nun durch das Verfahren von Quine-McCluskey alle Primimplikanten von
Die Disjunktion aller Primimplikanten ist ein Polynom, das
Für das Minimalpolynom benötigen wir eine kostenminimale Teilmenge
Diese Art von Problemen wird Matrix-Überdeckungsproblem genannt.
Page 3
Das Matrix-Überdeckungsproblem: Einfaches Beispiel
Für eine Expedition wird ein Fahrer, ein Messtechniker und ein Kameramann benötigt. Es stehen fünf Kandidaten mit unterschiedlichen Fähigkeiten und Gehaltsvorstellungen zur Auswahl. Welches ist das kostengünstigste Team?
| Kandidat | Fahrer? | Messtechniker? | Kameramann? | Gehalt |
|---|---|---|---|---|
| Alice | Ja | Nein | Ja | 4000 |
| Dilbert | Ja | Ja | Nein | 2000 |
| Dogbert | Ja | Ja | Ja | 5000 |
| Ted | Nein | Nein | Ja | 1000 |
| Wally | Nein | Ja | Ja | 1500 |
Page 4
Primimplikantentafel
Definiere eine Boolesche Matrix
- Die Zeilen entsprechen eindeutig den Primimplikanten von
. - Die Spalten entsprechen eindeutig den Mintermen von
.
Sei
Der Eintrag an der Stelle
Gesucht:
Eine kostenminimale Teilmenge
Page 5
Primimplikantentafel: Beispiel (1/2)
Primimplikantentafel
| Primimplikant | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 1 | 1 | 1 | |||||||||
| 1 | 1 | 1 | 1 | 1 | ||||||||
| 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Page 6
Primimplikantentafel: Beispiel (2/2)
Gesucht:
Eine kostenminimale Teilmenge
Primimplikantentafel
| Primimplikant | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 1 | 1 | 1 | |||||||||
| 1 | 1 | 1 | 1 | 1 | ||||||||
| 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Page 7
Erste Reduktionsregel – Wesentlicher Implikant
Definition:
Ein Primimplikant
für jeden anderen Primimplikanten
Lemma:
Jedes Minimalpolynom von
1. Reduktionsregel: Entferne aus der Primimplikantentafel
Page 8
Erste Reduktionsregel: Beispiel (1/2)
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A | 1 | 1 | 1 | 1 | |||||||||||||
| B | 1 | 1 | 1 | 1 | |||||||||||||
| C | 1 | 1 | 1 | 1 | |||||||||||||
| D | 1 | 1 | 1 | 1 | |||||||||||||
| E | 1 | 1 | 1 | 1 | |||||||||||||
| F | 1 | 1 | 1 | 1 | |||||||||||||
| G | 1 | 1 | 1 | 1 | |||||||||||||
| H | 1 | 1 | 1 | 1 | |||||||||||||
| I | 1 | 1 | 1 | 1 | |||||||||||||
| J | 1 | 1 | 1 | 1 | |||||||||||||
| K | 1 | 1 | 1 | 1 | |||||||||||||
| L | 1 | 1 | 1 | 1 | |||||||||||||
| M | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Page 9
Erste Reduktionsregel: Beispiel (2/2)
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A | 1 | 1 | 1 | 1 | |||||||||||||
| B | 1 | 1 | 1 | 1 | |||||||||||||
| C | 1 | 1 | 1 | 1 | |||||||||||||
| D | 1 | 1 | 1 | 1 | |||||||||||||
| E | 1 | 1 | 1 | 1 | |||||||||||||
| F | 1 | 1 | 1 | 1 | |||||||||||||
| G | 1 | 1 | 1 | 1 | |||||||||||||
| H | 1 | 1 | 1 | 1 | |||||||||||||
| I | 1 | 1 | 1 | 1 | |||||||||||||
| J | 1 | 1 | 1 | 1 | |||||||||||||
| K | 1 | 1 | 1 | 1 | |||||||||||||
| L | 1 | 1 | 1 | 1 | |||||||||||||
| M | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
A, B, C, D sind wesentlich!
Page 10
Nach Anwendung der 1. Reduktionsregel
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | |
|---|---|---|---|---|---|---|---|---|---|
| E | 1 | 1 | |||||||
| F | 1 | 1 | |||||||
| G | 1 | 1 | |||||||
| H | 1 | 1 | |||||||
| I | 1 | 1 | 1 | ||||||
| J | 1 | 1 | 1 | ||||||
| K | 1 | 1 | 1 | ||||||
| L | 1 | 1 | 1 | ||||||
| M | 1 |
Die Matrix enthält keine wesentlichen Zeilen mehr!
Page 11
Zweite Reduktionsregel – Spaltendominanz
Definition:
Sei
Nutzen für unser Problem: Dominiert ein Minterm
Jeder in
2. Reduktionsregel: Entferne aus der Primimplikantentafel
Page 12
Zweite Reduktionsregel: Beispiel
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | |
|---|---|---|---|---|---|---|---|---|---|
| E | 1 | 1 | |||||||
| F | 1 | 1 | |||||||
| G | 1 | 1 | |||||||
| H | 1 | 1 | |||||||
| I | 1 | 1 | 1 | ||||||
| J | 1 | 1 | 1 | ||||||
| K | 1 | 1 | 1 | ||||||
| L | 1 | 1 | 1 | ||||||
| M | 1 |
Spalte 17 dominiert Spalte 10 ⇒ Spalte 17 kann gelöscht werden!
Page 13
Dritte Reduktionsregel – Zeilendominanz
Definition:
Sei
Nutzen für unser Problem: Dominiert ein Primimplikant
Der Primimplikant
3. Reduktionsregel: Entferne aus der Primimplikantentafel
Page 14
Dritte Reduktionsregel: Beispiel
Nehme an, dass die Zeilen 5 bis 12 gleiche Kosten haben.
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | |
|---|---|---|---|---|---|---|---|---|
| E | 1 | 1 | ||||||
| F | 1 | 1 | ||||||
| G | 1 | 1 | ||||||
| H | 1 | 1 | ||||||
| I | 1 | 1 | ||||||
| J | 1 | 1 | ||||||
| K | 1 | 1 | ||||||
| L | 1 | 1 | ||||||
| M |
E, F, G, H werden dominiert (von L, J, K, L bzw. L).
Page 15
Dritte Reduktionsregel: Beispiel
Nehme an, dass die Zeilen 5 bis 12 gleiche Kosten haben.
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | |
|---|---|---|---|---|---|---|---|---|
| E | 1 | 1 | ||||||
| F | 1 | 1 | ||||||
| G | 1 | 1 | ||||||
| H | 1 | 1 | ||||||
| I | 1 | 1 | ||||||
| J | 1 | 1 | ||||||
| K | 1 | 1 | ||||||
| L | 1 | 1 | ||||||
| M |
E, F, G, H werden dominiert (von L, J, K, L bzw. L).
Page 16
Nach Anwendung der 3. Reduktionsregel
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | |
|---|---|---|---|---|---|---|---|---|
| I | 1 | 1 | ||||||
| J | 1 | 1 | ||||||
| K | 1 | 1 | ||||||
| L | 1 | 1 | ||||||
| M |
Offensichtlich kann nun wieder die erste Reduktionsregel angewendet werden, da die Zeilen I, J, K, L wesentlich sind.
Die resultierende Matrix ist leer.
Das gefundene Minimalpolynom ist:
Page 17
Ein weiteres Beispiel
Welche Reduktionsregel(n) können in dem Beispiel angewendet werden?
Primimplikantentafel
| Primimplikant | ||||||
|---|---|---|---|---|---|---|
| 1 | 1 | |||||
| 1 | 1 | |||||
| 1 | 1 | |||||
| 1 | 1 | |||||
| 1 | 1 | |||||
| 1 | 1 |
Page 18
Ein weiteres Beispiel
Welche Reduktionsregel(n) können in dem Beispiel angewendet werden?
Primimplikantentafel
| Primimplikant | ||||||
|---|---|---|---|---|---|---|
| 1 | 1 | |||||
| 1 | 1 | |||||
| 1 | 1 | |||||
| 1 | 1 | |||||
| 1 | 1 | |||||
| 1 | 1 |
Kein Primimplikant ist wesentlich!
Page 19
Zyklische Überdeckungsprobleme
Definition:
Eine Primimplikantentafel heißt reduziert, wenn keine der drei Reduktionsregeln anwendbar ist. Ist eine reduzierte Tafel nicht-leer, spricht man von einem zyklischen Überdeckungsproblem.
In der Praxis werden solche Probleme heuristisch gelöst. Es gibt auch exakte Methoden (Petrick, Branch-and-Bound).
Primimplikantentafel
| Primimplikant | ||||||
|---|---|---|---|---|---|---|
| 1 | 1 | |||||
| 1 | 1 | |||||
| 1 | 1 | |||||
| 1 | 1 | |||||
| 1 | 1 | |||||
| 1 | 1 |
Page 20
Petrick's Methode
Verfahren:
- Übersetze die PIT in ein Produkt von Summen, d.h. in ein (OR, AND)-Polynom, das alle Möglichkeiten der Überdeckung enthält.
- Multipliziere das (OR, AND)-Polynom aus, so dass ein (AND-OR)-Polynom entsteht.
- Die gesuchte minimale Überdeckung ist gegeben durch das Monom, das einer PI-Auswahl mit minimalen Kosten entspricht.
Primimplikantentafel
| 1 | 1 | |||||
| 1 | 1 | |||||
| 1 | 1 | |||||
| 1 | 1 | |||||
| 1 | 1 | |||||
| 1 | 1 |
wird übersetzt in:
Bei gleichen Kosten für alle PIs sind
Page 21
„Greedy-Heuristik" zur Lösung von Überdeckungsproblemen
- Wende alle möglichen Reduktionsregeln an.
- Ist die Matrix
leer, ist man fertig. - Sonst wähle die Zeile
, die die meisten Spalten überdeckt. Lösche diese Zeile und alle von ihr überdeckten Spalten und gehe zu 1.
Dieser Algorithmus liefert nicht immer die optimale Lösung!
Hinweis: Bei der Ausgangs-Matrix aus unserem Beispiel überdeckt die M-Zeile die meisten Spalten. Diese ist nicht Teil der gefundenen Lösung!
Page 22
Vergleich Schaltkreise, Boolesche Polynome
Sowohl Schaltkreise als auch Boolesche Polynome stellen Boolesche Funktionen dar.
Optimale Boolesche Polynome können sehr viel größer sein als entsprechende Schaltkreise.
- exponentielle Unterschiede möglich
- Rechtfertigung für Einsatz von Schaltkreisen statt PLAs
Es gibt auch Algorithmen zur Berechnung optimaler (mehrstufiger) Schaltkreise.
- anspruchsvoller als Optimierung von Booleschen Polynomen
- meist heuristisch (Näherungsverfahren)
- nicht Gegenstand dieser Vorlesung
Hier: Schaltkreise für spezielle Funktionen, insbesondere Arithmetik.





















