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