Darstellung Boolescher Funktionen

Werbung
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Darstellung Boolescher Funktionen
Einführung in die Technische Informatik
Univ.-Prof. Dr. Paul Molitor
Lehrstuhl für Technische Informatik
Institut für Informatik
Martin-Luther-Universität Halle-Wittenberg
April 2007
1 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Darstellungen und gewünschte Eigenschaften
Shannon Effekt light
Modellierung Boolescher Funktionen
Wenn wir Schaltfunktionen realisieren oder analysieren, dann arbeiten wir stets auf Darstellungen, d.h. auf
Datenstrukturen, die rein syntaktisch strukturiert sind, und als Schaltfunktionen interpretiert werden können.
Definition (Darstellungen und ihre Interpretation)
Sei n ∈ N, M(n) eine Menge und Φ : M(n) → Bn eine Abbildung. Dann heisst
M(n) eine Darstellung n-stelliger Schaltfunktionen und
Φ Interpretation dieser Darstellung
2 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Darstellungen und gewünschte Eigenschaften
Shannon Effekt light
Wünschenswerte Eigenschaften
Vollständigkeit
(M(n), Φ) heißt vollständig gdw. Φ surjektiv ist.
Eindeutigkeit
(M(n), Φ) heißt eindeutig gdw. Φ injektiv ist.
Kanonizität
(M(n), Φ) heißt kanonisch gdw. Φ bijektiv ist.
Abgeschlossenheit
(M(n), Φ) heißt operationell abgeschlossen gdw. es für alle f , g ∈ M(n)
Darstellungen u, v , w ∈ M(n) gibt mit
Φ(u) = Φ(f ) · Φ(g )
Φ(v ) = Φ(f ) + Φ(g )
Φ(w ) = Φ(f )0
3 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Darstellungen und gewünschte Eigenschaften
Shannon Effekt light
Komplexität von Darstellungen
Platzkomplexität
Wie viel Bit werden benötigt, um eine Darstellung aus Φ−1 (f ) für eine Boolesche Funktion f ∈ Bn im
Rechner abzuspeichern?
Operationelle Komplexität
Verschiedene Operationen sollten (effizient) durch die Darstellung unterstützt werden:
AND, OR und NOT
Der Vergleich
Gegeben seien m1 , m2 ∈ M(n),
berechne e1 , e2 , e3 ∈ M(n) mit
Φ(e1 ) = Φ(m1 ) · Φ(m2 ),
Φ(e2 ) = Φ(m1 ) + Φ(m2 )
Φ(e3 ) = Φ(m1 )0
Gegeben seien m1 , m2 ∈ M(n),
berechne Φ(m1 ) = Φ(m2 )
Kofaktorbildung nach xj und xj 0
Gegeben sei m ∈ M(n),
berechne e0 , e1 ∈ M(n) mit
Φ(e1 ) = Φ(m)x =1 , Φ(e0 ) = Φ(m)x =0
j
j
Test auf Tautologie bzw. Erfüllbarkeit
Gegeben sei m ∈ M(n),
berechne Φ(m) = 1 bzw. Φ(m) 6= 0
Satisfy Count
Gegeben sei m ∈ M(n),
berechne | (Φ(m))−1 (1) |
4 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Darstellungen und gewünschte Eigenschaften
Shannon Effekt light
Komplexität von Darstellungen
Was kann man von Darstellungen erwarten?
Gibt es (M(n), Φ) mit traktabler Platzkomplexität, die alle obigen Operationen
effizient, d. h. in Polynomialzeit, unterstützt.
Dieser Traum kann leider nicht wahr werden!
5 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Darstellungen und gewünschte Eigenschaften
Shannon Effekt light
Komplexität von Darstellungen
Theorem (Shannon Effekt light)
Sei (M(n), Φ) eine vollständige Darstellung von Bn und p < 2n . Dann besitzen
mindestens
n
n
22 · (1 − 2p−2 )
Funktionen aus Bn keine Darstellung m ∈ M(n), die echt weniger als p Bits Platz
belegt.
Beweis:
Es ist |{ m; m ∈ M(n) und cspace (m) < p }| < 2p ,
da es nur 2p − 1 Bitfolgen der Länge kleiner als p gibt.
n
n
n
Damit bleiben aber mindestens 22 − 2p = 22 (1 − 2p−2 ) Funktionen aus Bn übrig,
die alle nur Darstellungen mit mehr als p − 1 Bits besitzen.
6 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Übersicht bekannter Darstellungen Boolescher Funktionen
1
Funktionstafeln
2
Allgemeine Boolesche Ausdrücke
3
Disjunktive Formen
4
Konjunktive Formen
5
Logische Netzwerke
6
Binäre Entscheidungsgraphen (Binary Decision Diagrams, BDD)
7 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Funktionstafeln
Ein Bitstring b[0 : 2n − 1] kann als die
durch
000
(∀α ∈ {0, 1}n )
Φ(b)(α) = b
001
"n−1
X
#
αi 2
i
i=0
definierte Boolesche Funktion
Φ(b) ∈ Bn interpretiert werden.
010
011
100
101
110
111
→
→
→
→
→
→
→
→
0
1
2
3
4
5
6
7
0
0
0
1
0
1
1
0
Definition
Der Bitstring b[0 : 2n − 1] heisst Funktionstafel der Booleschen Funktion Φ(b).
8 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Eigenschaften von Funktionstafeln
Lemma (Funktionstafeln als kanonische Darstellung Boolescher Funktionen)
Bitstrings der Länge 2n zusammen mit der obigen Interpretation Φ von Bitstrings als
Boolesche Funktionen sind eine kanonische Darstellung von Bn
Operationelle Komplexitäten
Boolesche Operatoren:
Laufzeit ist proportional zu 2n ,
d. h. linear in der Größe der Funktionstafeln
Kofaktorbildung:
ebenso
Erfüllbarkeit:
ebenso
Anzahl erfüllender Belegungen:
ebenso
Vergleich:
ebenso
Tautologie:
ebenso
9 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Funktionstafeln
Alle wichtigen Operationen auf Funktionstafeln laufen in Linearzeit bzgl. der Größe der Darstellung der Operanden.
Funktionstafeln sind in gewissen Sinne eine effiziente Datenstruktur
Solange die Platzkomplexität sich in Grenzen hält, also für kleine n,
sind Funktionstafeln in Bezug auf die operationelle Komplexität fast unschlagbar!!!
10 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Boolesche Ausdrücke
Definition (Boolesche Ausdrücke)
Sei V = {x1 , . . . , xn } eine Menge von n Variablen und BA(V ) die Menge der
(syntaktischen) Ausdrücke, die nach folgender kontextfreier Grammatik gebildet
werden kann:
< Expr > → < Expr > + < Term > | < Term >
< Term > → < Term > · < Faktor > | < Faktor >
< Faktor > → < Faktor >
0
| ( < Expr > ) | 0 | 1 | x1 | . . . | xn
BA(V ) nennt man Menge der Booleschen Ausdrücke über V .
Jedem Booleschen Ausdruck kann somit ein Operatorbaum zugeordnet werden,
der aus dem Ableitungsbaum heraus konstruiert werden kann und
der als Grundlage zur Darstellung im Rechner benutzt werden kann.
11 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Operatorbäume
Der Operatorbaum zu einem Ausdruck gibt an, wie dieser Ausdruck korrekt ausgewertet werden kann.
Er lässt sich aus dem so genannten Syntaxbaum leicht ableiten.
[ Operatorbaum für (x1 · x20 ) + (x10 · x2 ) ]
12 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Boolesche Ausdrücke
Definition (Boolesche Ausdrücke)
Sei V = {x1 , . . . , xn } eine Menge von n Variablen und BA(V ) die Menge der
(syntaktischen) Ausdrücke, die nach folgender kontextfreier Grammatik gebildet
werden kann:
< Expr > → < Expr > + < Term > | < Term >
< Term > → < Term > · < Faktor > | < Faktor >
< Faktor > → < Faktor >
0
| ( < Expr > ) | 0 | 1 | x1 | . . . | xn
BA(V ) nennt man Menge der Booleschen Ausdrücke über V .
Der 00 +00 -Operator nennt man Disjunktion, den 00 ·00 -Operator Konjunktion und den
unären Operator Komplement.
Boolesche Ausdrücke der Form xk bzw. xk0 nennt man Literale, im besonderen spricht
man bei ersteren von positiven und bei letzteren von negativen Literalen.
Unter einem Monom bzw. Produkt versteht man eine Konjunktion von Literalen
unterschiedlicher Variablen. Das Monom heißt vollständig oder Minterm, wenn jede
Variable genau einmal im Monom, sei es als positives oder als negatives Literal,
enthalten ist.
13 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Interpretation der Operatorbäume
Definition (Interpretation Boolescher Ausdrücke)
Jedem Booleschen Ausdruck w ∈ BA(V ) wird wie folgt eine Boolesche Funktion
Φ(w ) ∈ Bn zugeordnet:
(∀α ∈ {0, 1}n )
8
0
>
>
>
< 1
αi
Φ(w )(α) =
>
>
>
: (Φ(w1 )(α))0◦ (Φ(w2 )(α))
(Φ(w1 )(α))
,
,
,
,
,
falls
falls
falls
falls
falls
w
w
w
w
w
=0
=1
= xi
= w1 ◦ w2
= w10
14 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Eigenschaften Boolescher Ausdrücke
Lemma (Boolesche Ausdrücke als Darstellung Boolescher Funktionen)
(BA(V ), Φ) ist
eine vollständige Darstellung von Bn ,
aber keine eindeutige Darstellung von Bn .
Beweis zur Vollständigkeit:
Jede Boolesche Funktion f ∈ Bn lässt sich als
Logisches Oder seiner Atome darstellen.
Schreibweisen:
(∀ ∈ {0, 1}) (∀xi ) :
Es gilt
g ∈ Atome(Bn ) ⇐⇒ |g
−1
f = Φ(
(1)| = 1
xi ,
xi0 ,
falls = 1
falls = 0
∀α = (α1 , . . . , αn ) ∈ Bn :
Daraus folgt
X
xi =
mintermα )
α
α
α
mintermα = x1 1 · x2 2 · . . . · xn n
α∈f −1 (1)
15 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Eigenschaften Boolescher Ausdrücke
Hilfslemma
0
f = Φ@
X
1
mintermα A
α∈f −1 (1)
Beweis:
Für αi , βi ∈ {0, 1}:
α
Φ(xi i )(βi ) = 1 ⇐⇒ αi = βi .
Daraus folgt für alle α, β ∈ Bn :
Daraus folgt für alle β ∈ Bn :
f (β) = 1
−1
⇐⇒
β ∈f
⇐⇒
∃α ∈ f
(1)
−1
(1) :
Φ(mintermα )(β) = 1
Φ(mintermα )(β) = 1 ⇐⇒ α = β
⇐⇒
Φ(
X
mintermα )(β) ) = 1
α∈f −1 (1)
Hieraus folgt die Aussage des Hilfslemma.
16 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Eigenschaften Boolescher Funktionen
Lemma (Boolesche Ausdrücke als Darstellung Boolescher Funktionen)
(BA(V ), Φ) ist
eine vollständige Darstellung von Bn ,
aber keine eindeutige Darstellung von Bn .
Operationelle Komplexitäten
Boolesche Operatoren:
Kopiere die beiden Operatorbäume und verknüpfe
sie über einen neuen Wurzelknoten.
Kofaktorbildung:
Kopiere den Operatorbaum, ersetze die mit der
Variablen markierten Blätter durch die
entsprechende Konstante und reduziere den Baum
bottom-up.
Tautologie:
Kein effizientes Verfahren bekannt.
Erfüllbarkeit:
Kein effizientes Verfahren bekannt.
Anzahl erfüllender Belegungen:
Kein effizientes Verfahren bekannt.
Vergleich:
Kein effizientes Verfahren bekannt.
17 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Disjunktive Form
Definition (disjunktive Form)
Hat ein Boolescher Ausdruck w ∈ BA(V ) die Form p1 + p2 + . . . + pq , wobei jedes pi
ein Monom ist, dann heißt w disjunktive Form (DF) bzw. AND/OR-Polynom oder
einfach nur Polynom.
Da das logische ODER kommutativ und assoziativ ist, wird eine disjunktive Form
gerne als Menge von Produkten abgespeichert; ein Monom als Menge von Literalen.
18 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Konjunktive Form
Definition (konjunktive Form)
Sei c = l1 + l2 + . . . + lk , wobei die lj ’s Literale unterschiedlicher Variablen sind. Dann
heißt c Klausel bzw. Summe.
Hat ein Boolescher Ausdruck w ∈ BA(V ) die Form c1 · c2 · . . . · cq , wobei jedes ci eine
Klausel ist, dann heißt w konjunktive Form (KF), OR/AND-Polynom bzw. Produkt
von Summen.
Da das logische UND kommutativ und assoziativ ist, wird eine konjunktive Form gerne
als Menge von Klauseln abgespeichert; eine Klausel als Menge von Literalen.
19 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Eigenschaften disjunktiver Formen
Lemma (Disjunktive Formen als Darstellung Boolescher Funktionen)
Disjunktive Formen über V sind
vollständige Darstellungen von Bn ,
aber keine eindeutigen Darstellungen von Bn .
Operationelle Komplexitäten
Boolesche Operatoren:
OR erfolgt durch Hintereinanderhängen der
disjunktiven Formen,
AND durch Ausmultiplizieren der disjunktiven
Formen (teuer!), und
NOT durch Anwenden der Regel von de Morgan
und anschließendem Ausmultiplizieren der Klauseln
(teuer!)
Kofaktorbildung:
Ersetzung der entsprechenden Literale und
anschließender Reduzierung der disjunktiven Form
Vergleich:
Kein effizientes Verfahren bekannt.
Tautologie:
Kein effizientes Verfahren bekannt.
Erfüllbarkeit:
Eine disjunktive Form ist genau dann erfüllbar,
wenn es mindestens ein Monom enthält.
Anzahl erfüllender Belegungen:
Kein effizientes Verfahren bekannt.
20 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Eigenschaften konjunktiver Formen
Lemma (Konjunktive Formen als Darstellung Boolescher Funktionen)
Konjunktive Formen über V sind
vollständige Darstellungen von Bn ,
aber keine eindeutigen Darstellungen von Bn .
Operationelle Komplexitäten
Boolesche Operatoren:
OR durch Ausmultiplizieren der konjunktiven
Formen (teuer!),
AND erfolgt durch Hintereinanderhängen der
konjunktiven Formen, und
NOT durch Anwenden der Regel von de Morgan
und anschließendem Ausmultiplizieren der Monome
(teuer!)
Kofaktorbildung:
Ersetzung der entsprechenden Literale und
anschließender Reduzierung der konjunktiven Form
Vergleich:
Kein effizientes Verfahren bekannt.
Tautologie:
Eine konjunktive Form ist genau dann nicht
erfüllbar, wenn sie mindestens eine Klausel enthält.
Erfüllbarkeit:
Kein effizientes Verfahren bekannt.
Anzahl erfüllender Belegungen:
Kein effizientes Verfahren bekannt.
21 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Logische Netzwerke
22 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Logische Netzwerke
Definition (Logische Netzwerke)
Ein Logisches Netzwerk ist Sechstupel Graph G = (V , Vin , Vout , E , label, φ), wobei
G = (V , E ) ein azyklischer gerichteter Graph ist,
Vin ⊆ V die Menge der primären Eingänge ist,
Vout ⊆ V die Menge der primären Ausgänge ist,
label eine Markierung ist, die jedem Knoten v ∈ V einen eindeutigen Namen
zuordnet,
φ jedem Knoten v ∈ V \ Vin einen Booleschen Ausdruck Φ(v ) zuordnet, der in
der Regel als AND/OR-Polynom dargestellt wird,
es genau dann eine gerichtete Kante (v , w ) ∈ E gibt, wenn label(v ) im
syntaktischen Support von φ(w ) liegt.
23 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Eigenschaften logischer Netzwerke
Lemma (Logische Netzwerke als Darstellung Boolescher Funktionen)
Die Darstellung über logische Netzwerke ist
vollständig,
aber nicht eindeutig
Die operationelle Komplexitäten sind gleich derer bei Booleschen Ausdrücken.
24 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Decision Diagrams
Eine Alternative zu den bisher vorgestellten klassischen“ Datenstrukturen
”
der Wahrheitstabellen und der Polynome sind Entscheidungsdiagramme, so
genannte Decision Diagrams (DDs) zur
Darstellung Boolescher Funktionen benutzt werden.
25 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Decision Diagrams
Definition (Entscheidungsdiagramme)
Ein Einscheidungsdiagramm (engl.: Decision Diagram) (DD) über einer
Variablenmenge Xn := {x1 , x2 , . . . , xn } ist ein gewurzelter, azyklischer und gerichteter
Graph G = (V , E ) mit Knotenmenge V und Kantenmenge E .
V zerfällt in zwei Teilmengen, die Menge der terminalen und die der nichtterminalen
Knoten, mit folgenden Eigenschaften:
Für nichtterminale Knoten v gilt:
1
v ist mit einer Variablen aus Xn markiert, der Entscheidungsvariablen des
Knotens v .
2
v hat genau zwei ausgehende Kanten, die zu den Knoten führen, die mit
low(v ) bzw. mit high(v ) bezeichnet werden.
Terminale Knoten werden mit 0 oder mit 1 markiert und haben keine
ausgehenden Kanten.
26 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Interpretation von Decision Diagrams
Eine mögliche Interpretation für drei sehr einfache DDs wäre
Eins-Funktion: f (x) = 1
∀x ∈ Bn
Null-Funktion: f (x) = 0
∀x ∈ Bn
∀(x1 , . . . , xn ) ∈ Bn f (x1 , . . . , xn ) =
0
1
:
:
xi = 0
xi = 1
27 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Interpretation von Decision Diagrams
Wir wollen dies ein wenig formaler fassen:
Definition (Kofaktoren einer Booleschen Funktion)
Seien f ∈ Bn eine über den Variablen x1 , . . . , xn definierte Boolesche Funktion und xi
eine dieser n Variablen.
1
Die Funktion fxi =0 mit
fxi =0 (a1 , . . . , an ) := f (a1 , . . . , ai−1 , 0, ai+1 , . . . , an )
∀a ∈ Bn
heißt Kofaktor von f nach xi = 0 oder negativer Kofaktor von f nach xi .
2
Die Funktion fxi =1 mit
fxi =1 (a1 , . . . , an ) := f (a1 , . . . , ai−1 , 1, ai+1 , . . . , an )
∀a ∈ Bn
heißt Kofaktor von f nach xi = 1 oder positiver Kofaktor von f nach xi ..
28 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Interpretation von Decision Diagrams
Theorem (Shannon-Dekomposition)
Für alle f ∈ Bn und jede Variable xi , über der f definiert ist, gilt
f = (xi0 · fxi =0 ) + (xi · fxi =1 ).
Beweis
Sei a fest. Für den Fall ai = 0, d. h. a = (a1 , . . . , ai−1 , 0, ai+1 , . . . , an ), folgt:
((x i · fxi =0 ) + (xi · fxi =1 ))(a)
=
(x i (a) · fxi =0 (a)) + (xi (a) · fxi =1 (a))
=
(1 · fxi =0 (a1 , . . . , ai−1 , 0, ai+1 , . . . , an )) + (0 · fxi =1 (a))
=
fxi =0 (a1 , . . . , ai−1 , 0, ai+1 , . . . , an ) + 0
=
fxi =0 (a1 , . . . , ai−1 , 0, ai+1 , . . . , an )
=
f (a1 , . . . , ai−1 , 0, ai+1 , . . . , an )
=
f (a)
29 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Interpretation von Decision Diagrams
Definition (Binary Decision Diagrams)
Ein binärer Entscheidungsdiagramm (engl.: Binary Decision Diagram) (BDD) über
Xn ist ein DD, in dem an jedem Knoten die jeweils dargestellte Boolesche Funktion
gemäß der Shannon-Dekomposition zerlegt wird.
Für ein BDD G = (V , E ) gilt:
Falls G nur aus einem Terminalknoten v , der mit 0 bzw. 1 markiert ist,
besteht, ist Φ(G ) = Φ(v ) = 0 ∈ Bn bzw. Φ(G ) = Φ(v ) = 1 ∈ Bn
Ist die Wurzel v von G mit xi markiert, so stellt G die Boolesche Funktion
Φ(G ) = Φ(v ) = (xi0 · Φ(low (v ))) + (xi · Φ(high(v ))) ∈ Bn
dar.
30 / 52
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Binary Decision Diagrams — ein Beispiel
f5
=
x30 · 1 + x3 · 0
=
x30
31 / 52
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Binary Decision Diagrams — ein Beispiel
f4
f5
=
x30 · 0 + x3 · 1
=
x3
=
x30 · 1 + x3 · 0
=
x30
32 / 52
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Binary Decision Diagrams — ein Beispiel
=
x20 · f5 + x2 · f4
=
x20 · x30 + x2 · x3
f4
=
x30 · 0 + x3 · 1
=
x3
f5
=
x30 · 1 + x3 · 0
=
x30
f3
33 / 52
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Binary Decision Diagrams — ein Beispiel
=
x20 · f4 + x2 · f5
=
x20 · x3 + x2 · x30
=
x20 · f5 + x2 · f4
=
x20 · x30 + x2 · x3
f4
=
x30 · 0 + x3 · 1
=
x3
f5
=
x30 · 1 + x3 · 0
=
x30
f2
f3
34 / 52
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Binary Decision Diagrams — ein Beispiel
=
x10 · f2 + x1 · f3
=
x10 · (x20 · x3 + x2 · x30 ) + x1 · (x20 · x30 + x2 · x3 )
=
x10 x20 x3 + x1 0 x2 x30 + x1 x20 x30 + x1 x2 x3
=
x1 ⊕ x2 ⊕ x3
=
x20 · f4 + x2 · f5
=
x20 · x3 + x2 · x30
=
x20 · f5 + x2 · f4
=
x20 · x30 + x2 · x3
f4
=
x30 · 0 + x3 · 1
=
x3
f5
=
x30 · 1 + x3 · 0
=
x30
f1
f2
f3
35 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Geordnete und reduzierte BDDs
Um
eine kanonische Darstellung Boolescher Funktionen zu erhalten und
effizient mit Booleschen Funktionen rechnen zu können,
müssen reduzierte geordnete BDDs betrachtet werden.
Definition (ordered Binary Decision Diagrams)
Ein BDD heißt frei oder FBDD, wenn auf allen Wegen von der Wurzel zu einem
Terminal alle Variablen höchstens einmal abgefragt werden.
Ein BDD heißt geordnet oder OBDD, wenn der BDD frei und die Variablen auf allen
Wegen von der Wurzel zu einem Terminal in der gleichen Reihenfolge abgefragt
werden. Hierbei dürfen auf den einzelnen Wegen Variablen auch ”übersprungen”
werden.
Definition (reduced Binary Decision Diagrams)
Ein BDD heißt reduziert oder ROBDD, wenn je zwei Knoten im BDD
unterschiedliche Boolesche Funktionen darstellen.
36 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Reduktionsregeln
Entferne isomorphe Knoten
Entferne redundante Knoten
37 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Geordnete und reduzierte BDDs
Um
eine kanonische Darstellung Boolescher Funktionen zu erhalten und
effizient mit Booleschen Funktionen rechnen zu können,
müssen reduzierte geordnete BDDs betrachtet werden.
Theorem (Satz von Randy Bryant (1985))
Sei eine beliebige Ordnung auf den Variablen in Xn gegeben. Dann gibt es zu jeder
Booleschen Funktion f aus Bn genau ein reduzierter geordneter BDD mit dieser
Variablenordnung, der f darstellt.
Beweis
Ausführliche Beweise der Eindeutigkeit der Darstellung findet man in der
Originalarbeit von Randy Bryant (1985) oder dem Lehrbuch Molitor/Scholl:
Datenstrukturen und effiziente Algorithmen für die Logiksynthese ... (1999).
38 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Beweis der Kanonizität von reduzierten geordneten BDDs
Beweis durch Induktion nach n:
Zeige zuerst, dass der ROBDD der konstanten Funktion 0 ∈ Bn (bzw. 1) eindeutig ist.
Sei G = (V , E ) ein ROBDD der Booleschen Funktion 0.
G besitzt eine Wurzel rG und besteht aus k ≥ 0 nichtterminalen Knoten.
Da G die Boolesche Funktion 0 darstellt, führt jeder Pfad der in rG startet in dem mit
0 markierten Blatt. G enthält also nur ein Blatt und dieses ist mit 0 markiert!
Nimmt man nun an, dass k ≥ 1 gelten würde, so gibt es wenigstens einen
nichtterminalen Knoten, dessen beiden Söhne Blätter sind. Da es aber nur ein Blatt in
G gibt, wäre G somit nicht reduziert.
G enthält nach keinen nichtterminalen Knoten und ist somit eindeutig!
39 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Beweis der Kanonizität von reduzierten geordneten BDDs
Induktionsschritt:
Wir gehen nun davon aus,
dass wir eine Boolesche Funktion f ∈ Bn mit n ≥ 1 darstellen wollen, die von
wenigstens einer Variablen abhängt, und
dass wir zwei ROBDD G1 = (V1 , E1 ) und G2 = (V2 , E2 ) von f haben, die über
die gleiche Variablenordnung definiert sind.
Nehmen wir mal an, dass
die Wurzel r1 von G1 mit der Variablen xi und
die Wurzel r2 von G2 mit der Variablen xj markiert ist;
r1 6= r2
O.B.d.A. stehe xi vor xj in der betrachteten Variablenordnung
Da G1 reduziert ist, hängt die Boolesche Funktion Φ(G1 ) von xi ab,
die Boolesche Funktion Φ(G2 ) aber nicht, da G2 geordnet ist.
Dies ist aber ein Widerspruch zu Φ(G1 ) = f = Φ(G2 ) und damit gilt xi = xj
40 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Beweis der Kanonizität von reduzierten geordneten BDDs
Induktionsschritt (con’t):
Es gilt also
f
=
xi 0 · Φ(low (r1 )) + xi · Φ(high(r1 ))
f
=
xi 0 · Φ(low (r2 )) + xi · Φ(high(r2 ))
Dies kann aber nur dann sein, wenn
Φ(low (r1 )) = Φ(low (r2 )) und Φ(high(r1 )) = Φ(high(r2 ))
gilt.
Nach Induktion sind die Teil-ROBDDs mit den Wurzeln low (r1 ) und low (r2 ) sowie die
mit den Wurzeln high(r1 ) und high(r2 ) jeweils isomorph zueinander und es gibt
strukturerhaltende bijektive Abbildungen σlow und σhigh , die die Knoten des
low -Sohnes von r1 auf die Knoten des low -Sohnes von r2 bzw. die Knoten des
high-Sohnes von r1 auf die Knoten des high-Sohnes von r2 abbilden.
41 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Beweis der Kanonizität von reduzierten geordneten BDDs
Induktionsschritt (con’t):
Definiere
8
< r2
σ (v )
σ(v ) =
: low
σhigh (v )
, falls v = r1
, falls v ein Knoten aus low (r1 ) ist
, falls v ein Knoten aus high(r1 ) ist
Die Abbildung σ ist wohldefiniert und bijektiv.
Somit sind G1 und G2 isomorph zueinander.
42 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Synthese von BDDs
Binäre logische Operationen auf Booleschen Funktionen, und demnach auch auf
BDDs, können über den so genannten if-then-else-Operator realisiert werden.
Definition (if-then-else-Operator)
Seien f , g und h zwei Boolesche Funktionen aus Bn . Dann ist der ITE-Operator auf
f , g , h durch
ITE (f , g , h) = f · g + f 0 · h
definiert.
Lemma
Es gilt
f · g = ITE (f , g , 0), f + g = ITE (f , 1, g ) und f 0 = ITE (f , 0, 1)
44 / 52
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Synthese von BDDs
Rekursive Berechnung des ITE-Operators über die Kofaktoren der Operanden!
ITE (f , g , h)
=
f ·g +f0 ·h
=
x · f ·g +f0 ·h
=
+ x 0 · f · g + f 0 · h x=0
0
x · fx=1 · gx=1 +
· hx=1 + x 0 · fx=0 · gx=0 + fx=0
· hx=0
x · fx=1 · gx=1 + fx=1 0 · hx=1 + x 0 · fx=0 · gx=0 + fx=0 0 · hx=0
=
x · ITE (fx=1 , gx=1 , hx=1 ) + x 0 · ITE (fx=0 , gx=0 , hx=0 )
=
x=1
0
fx=1
45 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Synthese von BDDs
ITE(F ,G ,H)
// Basisalgorithmus
// ”leider” mit einer exponentiellen Laufzeit
begin
(ergebnis,abbruch) = Terminalfall(F ,G ,H);
if (abbruch) then return ergebnis fi;
//Sei x die kleinste Variable, die in F , G oder H vorkommt
high = ITE(Fx=1 ,Gx=1 ,Hx=1 );
low = ITE(Fx=0 ,Gx=0 ,Hx=0 );
if (high==low) then return high fi;
ergebnis = finde oder generiere(x,low,high);
return ergebnis;
end
46 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Synthese von BDDs
ITE(F ,G ,H)
// ”more sophisticated”
// mit einer Laufzeit in O(|F | · |G | · |H|
begin
(ergebnis,abbruch) = Terminalfall(F ,G ,H);
if (abbruch) then return ergebnis fi;
(ergebnis,abbruch) = schon berechnet(F ,G ,H);
if (abbruch) then return ergebnis fi;
//Sei x die kleinste Variable, die in F , G oder H vorkommt
high = ITE(Fx=1 ,Gx=1 ,Hx=1 );
low = ITE(Fx=0 ,Gx=0 ,Hx=0 );
if (high==low) then return high fi;
ergebnis = finde oder generiere und speichere ab(x,low,high);
return ergebnis;
end
47 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Eigenschaften von BDDs
Lemma (ROBDDs als Darstellung Boolescher Funktionen)
Für eine feste Variablenordnung sind reduzierte geordnete BDDs eine kanonische
Darstellung von Bn .
Operationelle Komplexitäten
Boolesche Operatoren:
Laufzeit linear im Produkt der Größen der drei
BDDs von ITE
Kofaktorbildung:
Laufzeit linear in der Größe des BDDs
Vergleich:
konstante Laufzeit
Tautologie:
konstante Laufzeit.
Erfüllbarkeit:
konstante Laufzeit
Anzahl erfüllender Belegungen:
Laufzeit linear in der Größe des BDDs
48 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Synthese von Multiplexer-basierten Realisierungen
Wie Polynome 1-zu-1 durch PLAs realisiert werden können, können BDDs 1-zu-1
durch Schaltungen realisiert werden, die nur aus Multiplexern bestehen.
Vorgehen
Ersetze alle Knoten des BDDs wie folgt durch einen Multiplexer:
49 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Synthese von Multiplexer-basierten Realisierungen
Zu lösendes Minimierungsproblem
Gegeben sei eine Boolesche Funktion f ∈ Bn .
Finde eine Variablenordnung, sodass der dazugehörige BDD von f minimal ist.
In der Tat, der Satz von Randy Bryant sagt nur aus, dass bei fester Variablenordnung
BDDs eine kanonische Darstellung Boolescher Funktionen ist.
In Abhängigkeit der gewählten Variablenordnung kann die Größe des BDDs der
gegebenen Booleschen Funktionen sehr unterschiedlich sein!
50 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Übersicht
Funktionstafeln
Boolesche Ausdrücke
Disjunktive und konjunktive Formen
Logische Netzwerke
Entscheidungsgraphen
Optimale Variablenordnung
Beide BDDs stellen die Funktion x1 · x2 + x3 · x4 + x5 · x6 dar!
51 / 52
Motivation
Spezielle Darstellungen Boolescher Funktionen
Question Time
Lycée des Garcons de Luxembourg
52 / 52
Herunterladen