Formale Grundlagen von Schaltnetzen L5 1 L 5: Boolesche Algebra: Einführung und Motivation Boolesche Algebra hat viele Anwendungsbereiche in der Informatik Einführung in mehreren Vorlesungen aber mit unterschiedlichen Darstellungsformen und Zielen Hier: Darstellungsform: Terme Ziel: Analyse und Synthese von Schaltnetzen Formale Grundlagen von Schaltnetzen L5 2 L 5: Syntax und Semantik Beispiel: Autofernlicht nur an, wenn Zündung und Lichtschalter an! Zeichenkette nur Syntax: Menge der zulässigen Namen: D Lichtschalter, Zündung D Lichtschalter Zündung Menge der zulässigen Funktionszeichen , , Menge der zulässigen Konstanten {true, false} Formale Grundlagen von Schaltnetzen L5 3 L 5: Syntax und Semantik Lichtschalter Zündung Erlaubt im Prinzip unterschiedliche Interpretationen Zunächst Boolesche Algebra der Wahrheitswerte: Einer Schalterstellung kann ein Wert aus B O, L zugewiesen werden Belegung : D B Lichtschalter O Licht aus Lichtschalter L Licht an Formale Grundlagen von Schaltnetzen L5 4 L 5: Syntax und Semantik Problem: Die Darstellung wird leicht unübersichtlich! Lösung: Wir geben Namen einen anderen Namen Beispiel: Zündung def Z Fernlichtschalter def FS mit Z, FS B Formale Grundlagen von Schaltnetzen L5 5 L 5-1: Termdarstellung Hoffnung: Kompaktere und verständlichere Darstellung Boolescher Funktionen als durch Wertetabelle Formale Grundlagen von Schaltnetzen L5 6 L 5-2: Implementierung (=Interpretation) von Termelementen Menge der Termelemente: D ttrue, false, , , Elemente der Booleschen Algebra der Wahrheitswerte O, L, AND, OR, NOT I: D ttrue, false, , , O, L, AND, OR, NOT Termelement: Konstante Interpretation I true I true L false I false O Formale Grundlagen von Schaltnetzen L5 7 L 5-3: Implementierung (=Interpretation) von Termelementen Menge der Termelemente: D ttrue, false, , , Elemente der Booleschen Algebra der Wahrheitswerte O, L, AND, OR, NOT I: D ttrue, false, , , O, L, AND, OR, NOT Termelement: Operation Interpretation I I OR I NOT I AND Formale Grundlagen von Schaltnetzen L5 8 L 5-3: Implementierung (=Interpretation) von Termelementen Beispiel: true false AND(L, O) = O Termelement: Operation Interpretation I I OR I NOT I AND Formale Grundlagen von Schaltnetzen L5 9 L 5-4: Implementierung (=Interpretation) von Termelementen D Zündung, Fernlichtschalter Beispiel für Namensmenge: Mit der Abbildung: Zündung def Z Fernlichtschalter def FS mit Z, FS B Interpretation I mit der Abbildung führt zu: I Zündung Fernlichtschalter AND Zündung , Fernlichtschalter AND Z,FS Formale Grundlagen von Schaltnetzen L5 10 L 5-5: Was sind gültige Boolesche Terme? Definition: Boolescher Term Sei D = {xn, xn-1, ……, x1} endliche Menge von freien Namen Die Menge der Booleschen Terme definiert sich induktiv als die kleinste Menge, die folgende Eigenschaften erfüllt: (1) true und false sind Boolesche Terme Wir definieren auch einfacher O und L sind Boolesche Terme Formale Grundlagen von Schaltnetzen L5 11 L 5-5: Was sind gültige Boolesche Terme? Definition: Boolescher Term Sei D = {xn, xn-1, ……, x1} endliche Menge von freien Namen Die Menge der Booleschen Terme definiert sich induktiv als die kleinste Menge, die folgende Eigenschaften erfüllt: (1) true und false sind Boolesche Terme (2) alle Namen aus D sind Boolesche Terme Formale Grundlagen von Schaltnetzen L5 12 L 5-5: Was sind gültige Boolesche Terme? Definition: Boolescher Term Sei D = {xn, xn-1, ……, x1} endliche Menge von freien Namen Die Menge der Booleschen Terme definiert sich induktiv als die kleinste Menge, die folgende Eigenschaften erfüllt: (1) true und false sind Boolesche Terme (2) alle Namen aus D sind Boolesche Terme (3) ist term ein Boolescher Term, dann ist auch (term) ein Boolescher Term Formale Grundlagen von Schaltnetzen L5 13 L 5-5: Was sind gültige Boolesche Terme? Definition: Boolescher Term Sei D = {xn, xn-1, ……, x1} endliche Menge von freien Namen Die Menge der Booleschen Terme definiert sich induktiv als die kleinste Menge, die folgende Eigenschaften erfüllt: (1) true und false sind Boolesche Terme (2) alle Namen aus D sind Boolesche Terme (3) ist term ein Boolescher Term, dann ist auch (term) ein Boolescher Term (4) sind term1 und term2 Boolesche Terme, dann sind (term1 term2) sowie (term1 term2) ebenfalls Boolesche Terme. Formale Grundlagen von Schaltnetzen L5 14 L 5-6: Darstellung der Regelanwendungen in einem "Ausdrucksbaum" Baum: spezieller Graph aus Knoten und Kanten oben liegender Wurzelknoten Verzweigung durch Kanten und Knotenabschluss Ende: Blattknoten Beispiel: D= x, y, z, w Ist term x y x z ein Boolescher Term? Formale Grundlagen von Schaltnetzen L5 15 L 5-7: Ausdrucksbaum term x y x z term1 Wurzelknoten term2 term1 x y term2 x z term 21 Verzweigung term ist Boolescher Term, falls term1 und term2 Boolesche Terme sind: "Sind term1 und term2 Boolesche Terme, dann sind (term1 term2) sowie (term1 term2) ebenfalls Boolesche Terme" Formale Grundlagen von Schaltnetzen L5 L 5-7 16 term x y x z term1 term2 term1 x y term2 x z term 21 term21 x z D term2 ist Boolescher Term, falls term21 und z Boolesche Terme sind: "Sind term1 und term2 Boolesche Terme, dann sind (term1 term2) sowie (term1 term2) ebenfalls Boolesche Terme" Formale Grundlagen von Schaltnetzen L5 17 term x y x z L 5-7 term1 term2 Ist term ein Boolescher Term, dann ist auch (term) ein Boolescher Term term1 x y x D xy y D term2 x z term 21 term21 x x D z D Alle Namen aus D sind Boolesche Terme Formale Grundlagen von Schaltnetzen L5 L 5-7: Ergebnis der Termuntersuchung term x y x z ist ein Boolescher Term 18 Formale Grundlagen von Schaltnetzen L5 L 5-8: Regeln für eine übersichtlichere Termrepräsentation Vollständige Klammerung ist nicht lesbar, daher: Vorrangregeln (a) ""bindet stärker als "" und "" (x1 x2)) x1) x3) x4) x2) x1 x2) x1 x3) x4) x2) (b) ""bindet stärker als "" x1 x2) x1 x3) x4) x2 19 Formale Grundlagen von Schaltnetzen L5 20 L 5-8: Regeln für eine übersichtlichere Termrepräsentation x1 x2) x1 x3) x4) x2 (c) ungeklammerte Teilterme von Booleschen Termen, die jeweils durch Operatoren gleicher Bindungsstärke getrennt sind, werden von links nach rechts geklammert. x1 x2) x1 x3 x4) x2 Formale Grundlagen von Schaltnetzen L5 21 L 5-9: Regeln für eine übersichtlichere Termrepräsentation x1 x2) x1 x3 x4) x2 (d) Technische Informatik: Weglassen des - Operators x1x2) x1 x3 x4)x2 Überstreichen für Negation: x1x 2 x1 x3 x4)x2 Formale Grundlagen von Schaltnetzen L5 22 L 5-10: Alternative Darstellung Boolescher Funktionen 1. Wertetabellen 2. Boolesche Terme Frage: Lässt sich jeder Boolesche Term in eine Wertetabelle und jede Wertetabelle in einen Booleschen Term wandeln? Formale Grundlagen von Schaltnetzen L5 23 L 5-11: Konstruktion von Wertetabellen für Boolesche Terme z.B.: term x 2 ,x1 x 2 x1 Gegeben: Boolescher Term term mit den Namen xn ,xn1, ,x1 vom Typ bool. term definiert eine Abbildung: f : Bn B z.B.: f b2 ,b1 Anstelle der Namen xn ,xn1, ,x1 Boolesche Werte bn ,bn1, ,b1 mit bi B für alle i mit 1 i n einsetzen. Formale Grundlagen von Schaltnetzen L5 24 Wir spielen mit Substitutionen Beispiel: x 2 x1 b1 für x1 x 2 b1 Wie bei einem Editor, was immer das Ergebnis bedeutet Formale Grundlagen von Schaltnetzen L5 25 L 5-11: Einsetzen eines Booleschen Wertes bi anstelle eines Namens xi [bi für xi] term mit den Namen xn ,xn1, ,x1 Dann gilt: f bn ,...,b1 term bn für xn , ..., b1 für x1 bnbn1 b1 heißt Belegung der Namen xn ,xn1, ,x1 mit xi bi für alle i mit 1 i n Formale Grundlagen von Schaltnetzen L5 26 Erzeugen einer Wertetabelle aus einem Booleschen Term Setze alle 2n möglichen Belegungen in term bn für x n , ..., b1 für x1 ein und bestimme f bn ,...,b1 z.B. term = x 2 x1 term O für x 2 , O für x1 = O O OR(O, O) = O term O für x 2 , L für x1 = O L OR(O, L) = L term L für x 2 , O für x1 = L O OR(L, O) = L term L für x 2 , L für x1 = L L OR(L, L) = L Formale Grundlagen von Schaltnetzen L5 27 Bemerkenswert Wertetabelle einer Funktion ist bis auf Umordnung eindeutig Aber: Syntaktisch unterschiedliche Terme können auf dieselbe Wertetabelle führen. b2 b1 x 2 x1 x 2 x1 O O L L O L O O L O O O L L O O Formale Grundlagen von Schaltnetzen L5 28 L 5-12: Funktionenraum Für gegebene Stelligkeit n ist die Anzahl der Funktionen des 2 Funktionsraumes endlich ( 2 Boolesche Funktionen) n Beispiel: n = 2 2n = 4 Belegungen der freien Namen: 4 Zeilen der Tabelle Formale Grundlagen von Schaltnetzen L5 29 L 5-12: Wie viele Boolesche Funktionen mit unterschiedlichen Wertetabellen kann man bilden? x1 x2 f O O ? O L ? L O ? L L ? 2 unterschiedliche Boolesche Funktionen mit Stelligkeit n Es gibt 2 n Formale Grundlagen von Schaltnetzen L5 30 L 5-12: Funktionenraum für n=2 2 Beispiel: Für n = 2 gibt es 2 24 16 verschiedene Funktionen 2 b2 O O L L b1 O L O L f16 O O O O f15 O O O L f14 O O L O f13 O O L L f12 O L O O f11 O L O L f10 O L L O f9 O L L L f8 L O O O f7 L O O L f6 L O L O f5 L O L L f4 L L O O f3 L L O L f2 L L L O f1 L L L L Formale Grundlagen von Schaltnetzen L5 31 L 5-13: Boolesche Terme über Funktionen Die Menge der n-stelligen Funktionen über einer Booleschen Algebra bildet selbst wieder eine Boolesche Algebra. Aha! Diesmal setzen wir anstelle von Namen aus D Boolesche Funktionen und nicht Boolesche Werte ein. Formale Grundlagen von Schaltnetzen L5 32 L 5-13: Boolesche Terme über Funktionen Gegeben sei: Boolescher Term term mit den Namen xm ,xm1, ,x1 vom Typ bool Setze anstelle der Namen xm ,xm1, ,x1 n-stellige Boolesche Funktionen ein fi bn ,bn1, ,b1 mit b j L,O für 1 i m 1 j n: f bn,...,b1 term xm,xm1,...,x1 fm bn ,...,b1 für xm, ..., f1 bn,...,b1 für x1 term: Boolescher Term mit den Namen xm, xm-1, ... x1 Formale Grundlagen von Schaltnetzen L5 33 L 5-14: Beispiel Was bedeutet: y1 = x 2 x1 y2 = x 2 x1 y1 y 2 Hängt von der Interpretation ab! Formale Grundlagen von Schaltnetzen L5 34 L 5-14: Beispiel: Boolesche Algebra auf Booleschen Werten Seien: f15(b2, b1) = x 2 x1 [b2 für x2, b1 für x1], Wertetabelle: Seien: b2 = L und b1 = O f15(L,O) = x 2 x1 [L für x2, O für x1] = L O = O Formale Grundlagen von Schaltnetzen L5 35 L 5-14: Beispiel: Boolesche Algebra auf Booleschen Werten Seien: f14(b2, b1) = x 2 x1 [b2 für x2, b1 für x1], Wertetabelle: Seien: b2 = L und b1 = O f14(L,O) = x 2 x1 [L für x2, O für x1] = L L = L Formale Grundlagen von Schaltnetzen L5 36 L 5-14: Beispiel: Boolesche Algebra auf Booleschen Funktionen Seien: f15(b2, b1) = x 2 x1 [b2 für x2, b1 für x1], f14(b2, b1) = x 2 x1 [b2 für x2, b1 für x1], f13(b2, b1) = y1 y 2 [ f15(b2, b1) für y2, f14(b2, b1) für y1] Wertetabelle: Seien: b2 = L und b1 = O f15(L,O) = x 2 x1 [L für x2, O für x1] = LO = O f14(L,O) = x 2 x1 [L für x2, O für x1] = LL = L f13(L,O) = y1 y 2 [ f15(L,O) für y2, f14(L,O) für y1] Formale Grundlagen von Schaltnetzen L5 37 L 5-14: Beispiel: Vollständige Wertetabelle b2 O O L L b1 O L O L f15 f14 O O O O O L L O f13= f15 f14 O O L L bedeutet: punktweise Verknüpfung Formale Grundlagen von Schaltnetzen L5 38 L5-15: Ergebnis Verknüpfungen auf Funktionen ergeben sich durch punktweise Verknüpfung der Funktionswerte: f2 f1 bn ,bn1, b1 ,b1 f2 bn ,bn1, ,b1 f1 bn ,bn1, ,b1 & f1(b 2,b 1) & b1 & f2(b 2,b 1) f2f1(b 2,b 1) Formale Grundlagen von Schaltnetzen L5 39 Verknüpfung Boolescher Funktionen Entsprechend gilt auch: f2 f1 bn ,bn1, ,b1 f2 bn ,bn1, ,b1 f1 bn ,bn1, ,b1 f bn ,bn1, ,b1 f bn ,bn1, ,b1 Formale Grundlagen von Schaltnetzen L5 40 L 5-17: Partielle Ordnung auf der Menge der n-stelligen Funktionen Die charakteristischen Verknüpfungen induzieren eine partielle Ordnung auf der Menge der n-stelligen Funktionen partielle Ordnung: nicht für jedes Paar von n-stelligen Funktionen fi und fk kann man sagen: fi fk oder fk fi falls doch: totale Ordnung (Beispiel natürliche Zahlen, Alphabete) Formale Grundlagen von Schaltnetzen L5 41 L 5-17: Partielle Ordnung auf der Menge der n-stelligen Funktionen Definition: f g, f f g sprich: Beispiel: f11 f3: f11 f3 f11 b2 O O L L falls (f,g) ist Element der Relation b1 O L O L f11 O L O L f3 L L O L f11 f3 f11 OL=O LL=L OO=O LL=L Formale Grundlagen von Schaltnetzen L5 42 L 5-17: Anschaulich Sei f bn ,bn1, ,b1 L , dann muss unter der Annahme f g auch g bn ,bn1, ,b1 L sein. f11 f3: b2 O O L L b1 O L O L f11 O L O L f3 L L O L Formale Grundlagen von Schaltnetzen L5 43 L 5-18: Ordnungsrelation und Menge der einschlägigen Indizes Menge einschlägiger Indizes: Seien I g , I f die Mengen der einschlägigen Indizes der Booleschen Funktionen g bzw. f If Ig dann ist f g. Formale Grundlagen von Schaltnetzen L5 44 L 5-18: Ordnungsrelation und Menge der einschlägigen Indizes Beispiel: 0 1 2 3 I f11 1,3 , I f3 0,1,3 b2 O O L L b1 O L O L f11 O L O L f3 L L O L I ff11 I ff3 daraus folgt: f11 f3 Formale Grundlagen von Schaltnetzen L5 45 L 5-18: Folgerungen Mit f f g gilt auch g f g b2 O O L L b1 O L O L f11 O L O L f3 L L O L f11 f3 f11 f11 f3 f3 OL=O LL=L OO=O LL=L OL=L LL=L OO=O LL=L Formale Grundlagen von Schaltnetzen L5 46 L 5-20: Folgerungen Satz: Die beschriebene Relation ist: reflexiv: ff transitiv: gilt f1 f2 antisymmetrisch: aus f g und g f folgt g f und f2 f3 , dann gilt auch f1 f3 Beispiel transitiv: f12 f11 f3 b2 O O L L b1 O L O L f12 O L O O f11 O L O L f3 L L O L Formale Grundlagen von Schaltnetzen L5 Zum Nachweis benötigt man Gesetze der Booleschen Algebra 47