Bisher: I klassische Aussagenlogik: Syntax, Semantik I Äquivalenz zwischen Formeln ϕ≡ψ gdw. Mod(ϕ) = Mod(ψ) I wichtige Äquivalenzen, z.B. Doppelnegation-Eliminierung, DeMorgan-Gesetze, Distributivgesetze I Junktorbasen, z.B. {¬, ∨, ∧}, {¬, ∨}, {¬, ∧}, {¬, →}, {↑} I Normalformen: NNF, CNF, DNF I Kanonische Normalformen I Zusammenhang Wahrheitswerttabelle – kanonische Normalformen Boolesche Funktionen und Schaltungen Ziel: technische Realisierung Boolescher Funktionen gegeben: Boolesche Funktion f : {0, 1}n → {0, 1} Jede Boolesche Funktion ist die Semantik unendlich vieler aussagenlogischer Formeln. Entwurf einer aussagenlogischen Formel ϕ mit Semantik f . Entwurf und Optimierung von Schaltungen finden auf logischer Ebene statt. Logische Gatter Operation Junktor Negation ¬ Konjunktion ∧ Disjunktion ∨ NAND ↑ NOR ↓ Antivalenz XOR Gatter 1 & ≥1 & ≥1 =1 Logik Schaltungstechnik Junktoren Atome aussagenlogische Formeln logische Gatter Eingänge Schaltungen Beispiel: (¬p ∨ q) ∧ (¬r ∨ ¬q) Übersetzung Formelbaum – Schaltung (Tafel) Realisierung Boolescher Funktionen gegeben: Boolesche Funktion f : {0, 1}n → {0, 1} gesucht: Realisierung von f als Schaltung Schritte zum Schaltungsentwuf: 1. Suche aussagenlogische Formel ϕ mit Semantik f 2. Übersetze ϕ in Schaltung Beispiel: x1 x2 x3 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 f (x1 , x2 , x3 ) 0 0 1 Formel ϕ = (x2 ∧ ¬x3 ) ∨ (x1 ∧ ¬x2 ) 0 1 1 1 0 Optimierungsmöglichkeiten Schaltungen mit I möglichst wenigen Gattern (kleine Formeln) I möglichst wenigen verschiedenen Gattertypen (Junktorbasen mit wenigen Elementen, z.B. ↑-Gatter) I fester Struktur, z.B. Tiefe (Normalformen) technische Realisierung und Anwendungen in der Vorlesung Computerarchitektur und -peripherie Schaltungsentwurf gegeben: Boolesche Funktion f : {0, 1}n → {0, 1} Zu jeder Booleschen Funktion f : {0, 1}n → {0, 1} exisitieren unendlich viele Formeln ϕ ∈ AL({x1 , . . . , xn }) mit Semantik f . Normalformen DNF, CNF entsprechen zweistufigen Schaltnetzen. Umwandlung DNF in NAND-Form: 1. doppelte Negation der DNF, 2. Anwendung der deMorgan-Regel (CNF in NOR-Form analog) Vorteile der Normalformen: DNF und CNF: geringe Tiefe der Schaltung, daher kurze Signalwege NAND-Form: nur Gatter eines Typs Minimale CNF und DNF Wiederholung: varcount(ϕ) = Anzahl aller Variablenvorkommen in der Formel ϕ Eine DNF (oder CNF) ϕ heißt genau dann minimal, wenn für jede zu ϕ äquivalente DNF (oder CNF) ψ gilt: varcount(ϕ) ≤ varcount(ψ) Zu einer Formel können verschiedene äquivalente minimale DNF existieren. Beispiel: (a ∧ ¬b) ∨ (¬a ∧ (b ∨ c)) = (a ∧ ¬b) ∨ (¬a ∧ b) ∨ (¬b ∧ c) = (a ∧ ¬b) ∨ (¬a ∧ b) ∨ (¬a ∧ c) Verfahren zum Finden minimaler DNF gegeben: kanonische DNF einer Booleschen Funktion f : {0, 1}n → {0, 1} I naives Verfahren: alle DNF mit weniger Variablenvorkommen testen theoretisch möglich, aber unpraktikabel (Zeitaufwand) Idee: Umformung der DNF durch Anwendung der Äquivalenz (a ∧ b) ∨ (¬a ∧ b) ≡ b Beispiel: (a ∧ ¬b ∧ ¬c) ∨ (a ∧ ¬b ∧ c) ∨ (¬a ∧ b ∧ c) ∨ (¬a ∧ ¬b ∧ c) Primimplikanten DNF-Minimierungsproblem: gegeben: Boolesche Funktion f : {0, 1}n → {0, 1} (kanonische DNF ϕ) gesucht: minimale DNF ψ mit Semantik f (ϕ ≡ ψ) Implikant für ϕ: Formel ψ mit ψ → ϕ (also Mod(ψ) ⊆ Mod(ϕ)) V Primimplikant für DNF ϕ: Konjunktion ψ = ni=1 li von Literalen, wobei I ψ Implikant für ϕ und I für jedes Literal lk die Konjunktion ψj k = k^ −1 li ∧ i=1 kein Implikant von ϕ ist. n ^ i=k +1 li DNF-Minimierung Idee: Minimale DNF sind Disjunktionen von Primimplikanten. allgemeines Verfahren zur DNF-Minimierung: 1. Bestimmung aller Primimplikanten von ϕ (durch Anwendung der Äquivalenz (a ∧ b) ∨ (¬a ∧ b) ≡ b) 2. ψ ist Disjunktion einer geeigneten Auswahl von Primimplikanten Verfahren zur Bestimmung der Primimplikanten: 1. graphisches Verfahren mit KV-Diagrammen manuelles Minimierungsverfahren nur für Formeln mit ≤ 5 Aussagenvariablen sinnvoll 2. Verfahren nach Quine-McCluskey: automatisierbar, für Formeln mit beliebig vielen Aussagenvariablen