Inhalte der Vorlesung
§
HW-Entwurf mit VHDL
§
Darstellung von Information
§
Boolesche Algebra
§
Gatter und Schaltnetze
§
Logikoptimierung
§
Automaten
§
Schaltwerke
§
Entwurf auf RT Ebene
§
Fehlerkorrigierende Codes
Digitaltechnik - SS 2025
Optimierung
1
Motivation
§ Bisher
• Wertetabelle für Boolesche Funktion liefert DNF
• Optimierung der DNF hängt von der gewünschten
technischen Realisierung ab
§ In diesem Kapitel
• Optimierung für PLA Implementierung als Beispiel
Digitaltechnik - SS 2025
Optimierung
2
PLA-Kosten für f: {0,1}n ® {0,1}m
Hauptkosten
§ Gesamtanzahl der
Produktterme bestimmt
Anzahl der Zeilen im UND
Feld
§ Anzahl der Produktterme für
fi bestimmt Hardwarekosten
für Spalte im ODER Feld
§ Anzahl der Literale in einem
Produktterm bestimmt
Hardwarekosten für die Zeile
Digitaltechnik - SS 2025
a0 a0’
an-1 an-1’
…
…
f0
UND Feld
fm-1
ODER Feld
Optimierung
3
Optimierungsziele
§ Gegeben
• Boolesche Funktion f: {0,1}n ® {0,1}
§ Gesucht
• Disjunktive Form mit minimalen Kosten,
d.h. mit minimaler Zahl von Produkttermen.
• Bei gleicher Zahl von Produkttermen wird die disjunktive
Form mit minimaler Gesamtzahl von Literalen bevorzugt.
Digitaltechnik - SS 2025
Optimierung
4
Grundlage: Minimierungstheorem*
§ Minterme in der Einsstellenmenge, die sich nur in
einem Literal unterscheiden, können
zusammengefasst werden
§ Beispiel: f(a,b,c) = abc + abc‘ = ab(c + c‘) = ab
§ Gilt auch allgemein für Produktterme, die eine
Teilmenge der Einstellenmenge beschreiben
(„Implikanten“)
* wird auch als Vereinigungstheorem bezeichnet
Digitaltechnik - SS 2025
Optimierung
5
Geometrische Veranschaulichung
Betrachte f: {0,1} 3 ® {0,1}, f(a,b,c) = abc + abc’ = ab(c+c’)
@ abc
Einsstelle
Minterme @ Ecken
c
@ abc’
b
a
@ ab Produktterm
Für benachbarte Ecken im Würfel gilt das Minimierungstheorem
Zusammenfassen von Einsstellen zu Kanten, Flächen des Würfels @ Ausklammern
Digitaltechnik - SS 2025
Optimierung
6
Allgemein
§ Jede Boolesche Funktion in n Variablen lässt
sich durch Markieren der Einsstellen in einem
n-dimensionalen Würfel darstellen
§ Produktterme mit k Literalen entsprechen
(n-k)-dimensionalen Teilwürfeln
§ Minterme entsprechen den Eckpunkten
(0-dim. Teilwürfel)
Digitaltechnik - SS 2025
Optimierung
7
Definitionen (1)
§ £-Relation für Boolesche Funktionen und Terme:
• Seien f: {0,1} n ® {0,1} und g: {0,1} n ® {0,1} Boolesche
Funktionen mit Einsstellenmengen E(f) und E(g).
Wenn E(f) Ì E(g) gilt, sagt man auch
“f ist kleiner oder gleich g” (f £ g).
• Seien F und G Boolesche Terme mit zugehörigen
Funktionen f und g. Man sagt F £ G, wenn f £ g gilt.
Digitaltechnik - SS 2025
Optimierung
8
Definitionen (2)
§ Implikant
• Sei T ein Boolescher Ausdruck. Ein Produktterm P heisst
Implikant von T, wenn P £ T gilt.
Digitaltechnik - SS 2025
Optimierung
9
Beispiel 1:
Einsstelle
Implikant
c
b
a
Implikanten: a’b’c’, ab’c’, a’bc’, abc’, a’bc, b’c’, bc’, a’c’, ac’, a’b, …
Digitaltechnik - SS 2025
Optimierung
10
Optimierung
§ Geometrische Formulierung des
Optimierungsproblems
• Suche eine möglichst kleine Menge von Implikanten, welche
die Einsstellenmenge “überdeckt”.
• Bei Mengen gleicher Größe wird die Lösung mit der
kleineren Gesamtzahl an Literalen bevorzugt.
Digitaltechnik - SS 2025
Optimierung
11
Beispiel 2: f(a,b,c) = a’b’c’ + ab’c’ + a’bc’+ a’bc
Einsstelle
c
Minimale
b
a
Überdeckung der
Einsstellenmenge
mit
Kanten/Flächen
Disjunktive Form nach der Optimierung: b’c’ + a’b
Digitaltechnik - SS 2025
Optimierung
12
Nochmal Beispiel 1:
Einsstelle
Implikant
c
b
a
Für Lösung mit minimaler Zahl von Implikanten, genügt es solche
Implikanten zu betrachten, die in keinen anderen enthalten sind.
Digitaltechnik - SS 2025
Optimierung
13
Definitionen (3)
§ Primimplikant
• Sei T ein Boolescher Ausdruck und P ein Implikant von T.
P heisst Primimplikant, wenn P ein maximaler Implikant ist,
d.h. es gibt keinen Implikanten Q mit P < Q £ T .
Digitaltechnik - SS 2025
Optimierung
14
Nochmal Beispiel 1:
Einsstelle
Primimplikant
c
b
a
Implikanten: a’b’c’, ab’c’, a’bc’, abc’, a’bc, b’c’, bc’, a’c’, ac’, a’b, …
Primimplikanten: c’, a’b
Digitaltechnik - SS 2025
Optimierung
15
Beobachtung
§ Für Produktterme P und Q mit P £ Q gilt:
• Anzahl der Literale in P ³ Anzahl der Literale in Q
§ Bei Primimplikanten kann man keine Literale mehr
weglassen.
Digitaltechnik - SS 2025
Optimierung
16
Quine’s Primimplikanten Satz
§ Satz
• Sei f: {0,1} n ® {0,1} eine Boolesche Funktion. Eine
disjunktive Form D mit minimalen Kosten besteht nur aus
Primimplikanten.
§ Beweis
• Wenn D einen Implikanten P enthält, der kein Primimplikant
ist, dann gibt es einen Primimplikanten P* mit P < P*. P
kann durch P* ersetzt werden. Weil P* weniger Literale
enthält sinken auf jeden Fall die Kosten.
• Widerspruch!
Digitaltechnik - SS 2025
Optimierung
17
Ansatz zur Optimierung
§ 1. Schritt
• Bestimme Kanten, Flächen aus Einsstellen, die nicht mehr
vergrößert werden können (“maximale” Implikanten,
“Primimplikanten”)
§ 2. Schritt:
• Wähle daraus eine minimale Überdeckung der Einsstellen
(das Überdeckungsproblem gehört zu den NP-vollständigen
Problemen)
Digitaltechnik - SS 2025
Optimierung
18
Optimierung nach Karnaugh-Veitch (1952/53)
Abbildung des n-dim. Würfels auf zweidimensionales Diagramm, so
dass für benachbarte Punkte weiterhin das Minimierungstheorem gilt
111
011
c
✄ 101
001
✄
b
010
110
010
111
110
011
a
000
100
000
100
101
001
Auftrennen und Abrollen
Digitaltechnik - SS 2025
Optimierung
19
KV Diagramm für n-stellige Funktion
§ Diagramm für n-stellige Funktion wird schrittweise
erzeugt.
• Starte mit Rechteck für n=0.
• Vergrößere Diagramme schrittweise durch abwechselndes
Spiegeln am rechten und unteren Rand. Neuer Teil des
Diagramms repräsentiert neue Variable, Rest repräsentiert
neue Variable in invertierter Form.
Digitaltechnik - SS 2025
Optimierung
20
Variablenzuordnung für n = 0, …,5
a
n=0
n=1
a a
a
n=2
n=3
b
b
c c
a a
n=4
a a
n=5
b
b
d
d
c c
Digitaltechnik - SS 2025
a a
b
b
d
d
c c c c
e e e e
Optimierung
21
Beispiele für KV-Diagramme
x0
1 0
x0
0 0
x1 0 1
x0
0 1
x1 1 1
Inverter
x0
1
y
UND
x0
x1
&
y
ODER
x0
x1
³1
y
Übung: KV-Diagramme für NAND, NOR, EXOR
Digitaltechnik - SS 2025
Optimierung
22
Welche Terme werden jeweils dargestellt?
n=2
n=3
a
b
a a
b
c c
n=4
a a
b
b
d
c c
d
n=5
a a
a a
Einsstellen von Term 1
b
b
d
d
Einsstellen von Term 2
Einsstellen von Term 3
c c c c
e e e e
Digitaltechnik - SS 2025
Optimierung
23
Optimierung
§ Aufstellen des KV-Diagramms
a b c d
y
0
...
0
0
...
1
...
1
1
1
0
1
1
0
1
0
1
1
0 0 0
1 1 0
1 1 1
0 0 0
1 1 0
1 1 1
Digitaltechnik - SS 2025
a
1
a
1
b
1
1
b
1
1
d
d
c
c
Optimierung
24
Optimierung (2)
§ Ermittlung aller Primimplikanten
a
1
a
1
b
1
1
b
1
1 d
d
• Primimplikanten: b·c, b’·c’·d’
c
c
§ Auswahl einer minimalen Überdeckung
• Disjunktive Form mit minimalen Kosten: b·c + b’·c’·d’
Digitaltechnik - SS 2025
Optimierung
25
Optimierung (3)
§ Schaltnetz
d
c
1
b
1
1
&
³1
y
&
Digitaltechnik - SS 2025
Optimierung
26
Problem
§ Graphische Lösung nur für kleine n sinnvoll
• Beispiel: Addierer für 16-bit Zahlen: 33 Eingänge
– Wertetabelle oder KV-Diagramm benötigt 233 Einträge,
– bei ¼ cm2 pro Eintrag à Fläche: 4,6 km2
§ Notwendig: Effiziente Algorithmen
• zur Bestimmung von Primimplikanten und
• zur Lösung des Überdeckungsproblems
Digitaltechnik - SS 2025
Optimierung
27
Eigenschaften von Implikanten (1)
§ Lemma 1:
• Sei f: {0,1} n ® {0,1} eine Boolesche Funktion und T ein
Implikant von f. Ausserdem enthalte T weder das Literal x
noch x’. Dann sind auch Tx und Tx’ Implikanten von f.
§ Lemma 2:
• Sei f: {0,1} n ® {0,1} eine Boolesche Funktion und Tx, Tx’
Implikanten von f. Dann ist auch T ein Implikant von f.
Digitaltechnik - SS 2025
Optimierung
28
Eigenschaften von Implikanten (2)
§ Satz
Sei f: {0,1} n ® {0,1} eine Boolesche Funktion. Ein
Produktterm T ist genau dann ein Implikant von f,
wenn gilt:
• T ist ein Minterm von f oder
• Tx und Tx’ sind Implikanten von f und die Literale x und x’
kommen in T nicht vor.
Digitaltechnik - SS 2025
Optimierung
29
Damit
§ Schrittweise Konstruktion von Implikanten aus
Mintermen möglich
§ Primimplikanten erhält man als maximale Elemente
(keine weitere Zusammenfassung mehr möglich)
§ Bezeichnungen:
• Min(f) Menge aller Minterme einer booleschen Funktion f
• Im(f) Menge aller Implikanten
• Prim(f) Menge aller Primimplikanten
Digitaltechnik - SS 2025
Optimierung
30
Berechnung von Prim(f) nach Quine
§ Starte mit Min(f)
§ Suche Paare von Mintermen, die sich nur in einer
Variable unterscheiden (Hammingabstand 1)
§ Für “Partner” Minterme Mx und Mx’ ist M in Im(f)
§ Wiederhole das Verfahren solange, bis keine Partner
mehr gefunden werden können
Digitaltechnik - SS 2025
Optimierung
31
Pseudocode
Quine(f) {
// f boolesche Funktion mit n Variablen
// L[i] enthaelt Implikanten der Laenge n-i
L[0] = Min(f);
Prim(f) = {};
i = 1;
while (L[i-1] != {} && i<n) {
L[i] = {m|mx Î L[i-1] und mx’ Î L[i-1] für ein Literal x};
P[i] = {m|m Î L[i-1] und m hat keinen Partner in L[i-1]}
Prim(f) = Prim(f) È P[i];
i = i+1;
}
return Prim(f) È L[i-1];
}
Digitaltechnik - SS 2025
Optimierung
32
Beispiel
x1 x2 x3 x4
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Digitaltechnik - SS 2025
f(x1,x2,x3,x4)
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
Optimierung
33
L0 = {x1’x2’x3’x4’,
x1’x2’x3’x4,
x1’x2’x3x4’,
x1’x2’x3x4,
x1’x2x3x4,
x1x2x3x4}
L1 = {x1’x2’x3’,
x1’x2’x4’,
x1’x2’x3,
x1’x3x4,
x1’x2’x4,
x2x3x4}
L2 = {x1’x2’}
L3 = {}
P2 = {x1’x3x4,
x2x3x4}
P3 = {x1’x2’}
Prim(f) = {x1’x3x4, x2x3x4 , x1’x2’}
Digitaltechnik - SS 2025
Optimierung
34
Alternative Darstellung
L0 = {0000,
0001,
0010,
0011,
0111,
1111}
L1 = {000-,
00-0,
001-,
0-11,
00-1
-111}
Prim(f) = {0-11, -111, 00--}
Digitaltechnik - SS 2025
L2 = {00--}
L3 = {}
P2 = {0-11,
-111}
P3 = {00--}
0: Variable kommt negiert vor
1: Variable kommt positiv vor
-: Variable kommt nicht vor (“don’t care”)
Optimierung
35
Verbesserung von McCluskey*
§ Vergleiche nur Implikanten,
• welche die gleichen Variablen enthalten und
• bei denen sich die Zahl der positiven Literale um 1
unterscheidet
§ Vorgehen
• Bilde Klassen von Termen mit gleichen Variablen
• Ordne Terme nach Zahl der positiven Literale, bilde
entsprechende Blöcke
* E. J. McCluskey: Minimization of Boolean Functions, Bell Syst. Tech. J., Vol. 35, No. 5, pp. 1417-1444, 1956
siehe
auch: https://legacy.cs.stanford.edu/memoriam/professor-edward-j-mccluskey
Digitaltechnik
- SS 2025
Optimierung
36
Beispiel
0111
1111
1101
0101
0110
1110
0100
1100
0010
1010
0011
0000
0001
1011
1000
1001
x2
L0{x1,x2,x3,x4}:
0000
0001
0100
1000
0011
0101
1001
1010
1100
0111
1101
1110
x3
x4
Digitaltechnik - SS 2025
x1
Optimierung
37
Beispiel
0111
1111
1101
0101
0110
1110
0100
1100
0010
1010
0011
0000
0001
1011
1000
1001
x2
L0{x1,x2,x3,x4}:
0000
0001
0100
1000
0011
0101
1001
1010
1100
0111
1101
1110
L1{x1,x2,x3}:
000–
...
x3
x4
Digitaltechnik - SS 2025
x1
Optimierung
38
Beispiel
0111
1111
1101
0101
0110
1110
0100
1100
0010
1010
0011
0000
0001
1011
1000
1001
x2
L0{x1,x2,x3,x4}:
0000
0001
0100
1000
0011
0101
1001
1010
1100
0111
1101
1 1 1 0·
L1{x1,x2,x3}:
000–
...
L1{x1,x3,x4}:
0-00
...
x3
x4
Digitaltechnik - SS 2025
x1
Optimierung
39
Beispiel
0111
L1{x1,x2,x3}:
000010100110-
L1{x1,x2,x4}:
00-1
10-0
01-1
11-0
L1{x1,x3,x4}:
0-00
0-01
1011
1-00
0-11
x2
1-01
x3
1-10
x1
L1{x2,x3,x4}:
-000
-001
-100
-101
1111
1101
0101
0110
1110
0100
1100
0010
1010
0011
0000
0001
1000
1001
x4
Digitaltechnik - SS 2025
Optimierung
40
L2{x1,x4}:
0--1
1--0
Beispiel
0111
L1{x1,x2,x3}:
000010100110-
L1{x1,x2,x4}:
00-1
10-0
01-1
11-0
L1{x1,x3,x4}:
0-00
0-01
1011
1-00
0-11
x2
1-01
x3
1-10
x1
L1{x2,x3,x4}:
-000
-001
-100
-101
1111
1101
0101
0110
1110
0100
1100
0010
1010
0011
0000
0001
1000
1001
x4
Digitaltechnik - SS 2025
Optimierung
41
Beispiel
0111
L2{x1,x2}:
L2{x1,x3}:
0-01-0-
L2{x1,x4}:
0--1
1--0
L2{x2,x3}:
-00–
-10-
L2{x2,x4}:
L2{x3,x4}:
--00
--01
1111
1101
0101
0110
prim
1110
0100
1100
0010
1010
0011
0000
0001
1011
1000
1001
x2
x3
x4
Digitaltechnik - SS 2025
x1
Optimierung
42
Beispiel
0111
L2{x1,x2}:
L2{x1,x3}:
0-01-0-
L2{x1,x4}:
0--1
1--0
L2{x2,x3}:
-00-10-
L2{x2,x4}:
L2{x3,x4}:
--00
--01
1111
1101
0101
0110
prim
1110
0100
1100
0010
1010
0011
0000
0001
1011
1000
1001
x2
x3
x4
Digitaltechnik - SS 2025
prim
L3{x3}:
--0-
x1
Optimierung
43
Ausblick - „Don’t Cares“ (1)
§ Don‘t Cares im bisherigen Sinne („-“) vereinfachen die
Schreibweise
§ Beispiel: Zu den Primimplikanten
0--1, 1--0 und --0- gehören folgende Einstellen:
0--1: 0001, 0011, 0101, 0111
1--0: 1000, 1010, 1100, 1110
--0-: 0000, 0001, 0100, 0101, 1000, 1001, 1100, 1100
Digitaltechnik - SS 2025
Optimierung
44
Ausblick - „Don’t Cares“ (2)
Don‘t Cares in der Ausgabe (für Entwerfer egal, ob Wert 0 oder 1
angenommen wird) verbessern die Optimierungsmöglichkeiten
abc
000
001
010
011
100
101
110
111
f(a,b,c)
0
0
0
0
1
01
1
Einsstelle
Don‘t Care
c
b
a
Primimplikanten: 1-0, 11Primimplikanten mit Don‘t Cares: 1-Digitaltechnik - SS 2025
Optimierung
45
Komplexität des Verfahrens (1)
§ Lemma 1
• Es gibt 3n verschiedene Produktterme in n Variablen
§ Beweis
Für Produktterm T und Variable x gibt es folgende Möglichkeiten:
• T enthält weder das positive noch das negative Literal von x
• T enthält das positive Literal x
• T enthält das negative Literal x‘
Digitaltechnik - SS 2025
Optimierung
46
Komplexität des Verfahrens (2)
§ Lemma 2
• Das Verfahren von Quine-McCluskey macht höchstens O(n!·3n)
viele Vergleiche.
§ Beweis
• Es gibt höchstens n Implikanten mit k positiven Literalen.
k
• Die maximale Größe eines Blocks ist also
n
n/2 ≤ n!
• Jeder Produkterm wird nur mit Implikanten aus den benachbarten
Blöcken verglichen. Anzahl der Vergleiche pro Produktterm ist also
O(n!).
• Mit Lemma 1 folgt damit die Behauptung.
Digitaltechnik - SS 2025
Optimierung
47
Komplexität des Verfahrens (3)
§ Folgerung
• Das Verfahren von Quine-McCluskey benötigt eine Laufzeit
von O(n! ·3n·n).
§ Beweis
• Jeder Vergleich kostet O(n) Zeit.
Digitaltechnik - SS 2025
Optimierung
48
Lösung des Überdeckungsproblems
§ Gesucht: Kostenminimale Überdeckung der
Einsstellen mit Primimplikanten.
§ Problem: Überdeckungsproblem ist NP-vollständig
(nach derzeitigem Wissen optimale Lösung im Worst
Case nur mit exponentiellem Aufwand möglich)
§ Vorgehen:
• Reduktion der Problemgröße
• Arbeiten mit Heuristiken
Digitaltechnik - SS 2025
Optimierung
49
Digitaltechnik - SS 2025
Optimierung
50
Geeignete Darstellung??
0111
1111
1101
0101
0110
1110
0100
1100
Prim(f) = {0-11, -111, 00--}
0010
1010
0011
0000
0001
1011
1000
1001
x2
x3
x4
Digitaltechnik - SS 2025
L0 = {0000,
0001,
0010,
0011,
0111,
1111}
Darstellung muss angeben,
wie Einsstellen/Minterme
von Primimplikanten
überdeckt werden
x1
Optimierung
51
Matrixdarstellung
1: Primimplikant
überdeckt
Einsstelle/Minterm
Einsstellen/
Minterme
0000
Primimplikanten
0001 0010
0011
0111
1111
0-11
0
0
0
1
1
0
-111
0
0
0
0
1
1
00--
1
1
1
1
0
0
“Primimplikantentafel”
Digitaltechnik - SS 2025
Optimierung
52
Überdeckungsproblem
§ Gegeben:
• Primimplikantentafel für boolesche Funktion f
§ Gesucht:
• Minimale Zahl von Zeilen, die alle Minterme mit Einsen
abdecken
• Bei mehreren Lösungen wird die Lösung mit weniger
Literalen bevorzugt.
Digitaltechnik - SS 2025
Optimierung
53
Problemreduktion
§ Wesentliche Implikanten (Kernprimimplikanten)
• Ein Primimplikant P heisst wesentlich (essential), wenn er
einen Minterm überdeckt, der von keinem anderen
Primimplikanten überdeckt wird
• Wesentliche Primimplikanten brauchen bei der Lösung des
Überdeckungsdeckungsproblems nicht berücksichtigt zu
werden (gehören sowieso zur Lösung)
• Reduktionsregel 1: Streiche aus der Primimplikantentafel
alle wesentlichen Primimplikanten und alle Minterme, die
davon überdeckt werden.
Digitaltechnik - SS 2025
Optimierung
54
Beispiel 1
0111
L0 = {0000,
0001,
0010,
0011,
0111,
1111}
1111
1101
0101
0110
1110
0100
1100
Prim(f) = {0-11, -111, 00--}
0010
1010
0011
0000
0001
1011
1000
wesentlich
1001
x2
x3
x4
Digitaltechnik - SS 2025
x1
Optimierung
55
Matrixdarstellung
Einsstellen/
Minterme
0000
Primimplikanten
0001 0010
0011
0111
1111
0-11
0
0
0
1
1
0
-111
0
0
0
0
1
1
00--
1
1
1
1
0
0
Optimale Lösung: {-111,00--}
Digitaltechnik - SS 2025
Optimierung
56
Beispiel 2
Einsstellen/
Minterme
Primimplikanten
0-00
-000
10-0
0-11
-011
10101--
0000
1
1
0
0
0
0
0
0011 0100
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0101
0110
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0111 1000
0
0
0
1
0
0
1
1010
1011
0
0
1
0
0
1
0
0
0
0
0
1
1
0
Optimierung
57
0
1
1
0
0
0
0
Lösung enthält auf jeden Fall: 01-Digitaltechnik - SS 2025
Weitere Problemreduktion
§ Zeilendominanz
• Ein Primimplikant P dominiert einen Primimplikanten Q,
wenn alle von Q überdeckten Minterme auch von P
überdeckt werden
• Wenn P nicht mehr Literale hat als Q, braucht nur noch P als
Lösungskandidat betrachtet zu werden. Q kann gestrichen
werden.
• Kann erst nach vorangehenden Reduktionen auftreten
(warum?)
• Reduktionsregel 2: Streiche alle Primimplikanten, die von
anderen, nicht teueren dominiert werden
Digitaltechnik - SS 2025
Optimierung
58
Beispiel 2
Einsstellen/
Minterme
Primimplikanten
0-00
-000
10-0
0-11
-011
10101--
0000
1
1
0
0
0
0
0
0011 0100
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0101
0110
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0111 1000
0
0
0
1
0
0
1
1010
1011
0
0
1
0
0
1
0
0
0
0
0
1
1
0
Optimierung
59
0
1
1
0
0
0
0
Lösung enthält auf jeden Fall: 01-Digitaltechnik - SS 2025
Beispiel 2 - reduziert
Einsstellen/
Minterme
Primimplikanten
-000
10-0
-011
101-
0000
1
0
0
0
0011 1000
0
0
1
0
Lösung enthält auf jeden Fall: 01-Weitere Reduzierung durch Streichen
wesentlicher Primimplikanten: -000 und
-011 kommen zur Lösung hinzu.
Digitaltechnik - SS 2025
1
1
0
0
1010
1011
0
1
0
1
0
0
1
1
Lösung 1: {01--,-000,-011,10-0}
Lösung 2: {01--,-000,-011,101-}
Optimierung
60
Weitere Problemreduktion
§ Spaltendominanz
• Ein Minterm M dominiert einen Minterm N, wenn alle
Primimplikanten, die N überdecken, auch M überdecken
• Minterme, die andere dominieren, können aus der
Primimplikantentafel entfernt werden
• Reduktionsregel 3: Entferne alle Minterme, die einen
anderen Minterm dominieren
Digitaltechnik - SS 2025
Optimierung
61
Beispiel 1
Einsstellen/
Minterme
0000
Primimplikanten
0001 0010
0011
0111
1111
0-11
0
0
0
1
1
0
-111
0
0
0
0
1
1
00--
1
1
1
1
0
0
Optimale Lösung: {-111,00--}
Digitaltechnik - SS 2025
Optimierung
62
Insgesamt
§ Wende die drei Reduktionsregeln solange an, bis
keine Reduktion mehr möglich ist
§ Löse Restproblem
• Heuristiken (z.B. ESPRESSO, Berkeley)
• Suchbaum, Verzweigungsmethode, “Branch-and-Bound”
Digitaltechnik - SS 2025
Optimierung
63
Einfache Heuristik
§ Schritt 1: Wähle Primimplikanten P, der die meisten
Minterme überdeckt und füge ihn zur Lösung hinzu
§ Schritt 2: Streiche P und die überdeckten Minterme
aus der Primimplikantentafel
§ Schritt 3: Wenn die Primimplikantentafel noch nicht
leer ist, führe evt. mögliche Reduktionen durch
§ Wenn die Primimplikantentafel noch nicht leer ist,
gehe zurück zu Schritt 1
Digitaltechnik - SS 2025
Optimierung
64
Branch-and-Bound, Divide and Conquer,
Verzweigungsmethode
p2 = 1, Lösung enthält 10-0
Idee:
§ Teile Überdeckungsproblem
schrittweise in Teilprobleme
p1
p2
p3
p4
-000
10-0
-011
101-
0000 0011 1000 1010 1011
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
auf und untersuche
Teilprobleme getrennt weiter
§ Aufteilungskriterium:
• pi = 1
• pi = 0
Digitaltechnik - SS 2025
p2 = 0, Lösungsmenge noch leer
p1
p2
p3
p4
-000
10-0
-011
101-
0000 0011 1000 1010 1011
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
Optimierung
65
Ergebnis: Binärer Suchbaum
start
1
p1
p2
1
0
0
...
...
p3
1
0
...
p4
1
0
...
Digitaltechnik - SS 2025
Optimierung
66
Lösung mit Hilfe des Suchbaums
§ Wenn der Suchbaum komplett durchlaufen wird,
werden alle Lösungsmöglichkeiten untersucht. Die
optimale Lösung wird gefunden.
§ Die Suche kann abgebrochen werden, wenn klar ist,
dass auf dem Pfad
• keine Lösung gefunden werden kann (z. B. pi = 0 macht bei
wesentlichen Primimplikanten keinen Sinn)
• die bisher beste Lösung nicht mehr verbessert werden kann
Digitaltechnik - SS 2025
Optimierung
67
Im Beispiel
start
1
p1
p2
1
0
p1 -000
p2 10-0
p3 -011
p4 101-
0000
1
0
0
0
0
wesentlicher
Primimplikant
p3
1
0
1
0
2. Lösung
p4 1
Lösung
schlechter als
bisher beste
1
wesentlich
für Restproblem
0
wesentlich
für Restproblem
Lösung mit
3 Primimplikanten gefunden
0011 1000 1010 1011
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
Suchstrategie
§ Versuche möglichst schnell zu einer ersten Lösung
zu kommen
• z. B. Verzweige immer zuerst nach links
§ Reihenfolge der pi’s im Suchbaum ist beliebig.
Versuche Reihenfolge so zu definieren, dass gute
Lösungen zuerst gefunden werden
• z. B. Untersuche erst Primimplikanten, die möglichst viele
Minterme überdecken
Digitaltechnik - SS 2025
Optimierung
69
Beispiel
§ Funktion f: {0,1}4 ® {0,1} gegeben durch folgende
Einsstellen
• 0001, 0010, 0011, 0110, 0111, 1000, 1001, 1100, 1110
§ Primimplikanten
• 00-1, -001, 100- 1-00, -110, 11-0, 0-1-
Digitaltechnik - SS 2025
Optimierung
70
Primimplikantentafel
0001 0010
0011
0110
0111 1000 1001
1100 1110
p1 00-1
1
0
1
0
0
0
0
0
0
p2 -001
1
0
0
0
0
0
1
0
0
p3 100-
0
0
0
0
0
1
1
0
0
3
p4 1-00
0
0
0
0
0
1
0
1
0
4
p5 -110
0
0
0
1
0
0
0
0
1
p6 11-0
0
0
0
0
0
0
0
1
1
p7 0-1-
0
1
1
1
1
0
0
0
0
2
1
Digitaltechnik - SS 2025
Optimierung
71
Suchbaum
start
1
p7 (0-1-)
0
...
p2 (-001)
1
0
...
p4 (1-00)
1
0
...
p5 (-110)
1
0
...
Erste Lösung mit 4 Primimplikanten
Digitaltechnik - SS 2025
Optimierung
72
KV-Diagramme - Primimplikanten
a a
1 1
1 1
1 1
b
b
1
1
b
b
1 d
c c
a a
1 1
1 1
1 1
b
b
d
d
1 d
c c
Digitaltechnik - SS 2025
a a
1 1
1 1
1 1
1
1 d
c c
a a
1 1
1 1
1 1
b
b
1
d
d
a a
1 1
1 1
1 1
b
b
1
d
1 d
c c
Welche Beispiele zeigen
Primimplikanten?
1 d
c c
Optimierung
73
Quine - McCluskey
x1 x2 x3
000
001
010
011
100
101
110
111
f(x1,x2,x3)
1
1
1
1
0
0
0
1
Starte mit …
◻ Maxtermen?
◻ Mintermen?
Gruppierung nach …
◻ Zahl der Einsen?
◻ Erste Variable mit Eins?
Suche Partner, vergleiche …
◻ Alle möglichen Kombinationen?
◻ Mit benachbarter Gruppe?
◻ Nur innnerhalb einer Gruppe?
Was ist im nächsten Schritt zu beachten …
◻ Variablen passen zusammen?
◻ Striche an der gleichen Stelle?
Digitaltechnik - SS 2025
Optimierung
74
Wesentliche Primimplikanten?
◻ möglichst viele Einsen?
◻ notwendig für Lösung?
Überdeckungsproblem
Spaltendominanz, behalte 0110? 0111?
Einsstellen/
Minterme
Primimplikanten
0-00
-000
10-0
0-11
-011
10101--
Digitaltechnik - SS 2025
0000
1
1
0
0
0
0
0
0011 0100
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0101
0110
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0111 1000
0
0
0
1
0
0
1
1010
1011
0
0
1
0
0
1
0
0
0
0
0
1
1
0
Optimierung
75
0
1
1
0
0
0
0
Überdeckungsproblem
Zeilendominanz, behalte 0-11? -011?
Einsstellen/
Minterme
Primimplikanten
0-00
-000
10-0
0-11
-011
101-
Digitaltechnik - SS 2025
0000
1
1
0
0
0
0
0011 0100
0
0
0
1
1
0
1
0
0
0
0
0
1000
1010
1011
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
Optimierung
76
0
You can add this document to your study collection(s)
Sign in Available only to authorized usersYou can add this document to your saved list
Sign in Available only to authorized users(For complaints, use another form )