Bisher:

Werbung
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
Herunterladen