Gesucht: Menge der syntaktisch richtigen Folgen von runden, eckigen, geschwungenen Klammern. wie zb
[{()}]
.
Induktive Definition
K
ist die kleinste Menge der Klammerfolgen für die gilt:
{(), [], {}}⊆K
Wenn
x∈K
, dann auch
(x)∈K
Wenn
x∈K
, dann auch
[x]∈K
Wenn
x∈K
, dann auch
{x}∈K
Um zu beweisen dass
[{()}]∈K
()∈K Da ()∈K, gilt auch {()}∈K. wegen (k4) Da {()}∈K, gilt auch [{()}]∈K.wegen(k3) Da [{()}]∈K, gilt auch [[{()}]]∈K. wegen (k3) Da [[{()}]]∈K, gilt auch ([[{()}]])∈K. wegen (k2)
Induktive Definition der Syntax in der Aussagenlogik
U
Menge aller Zeichenketten (aus Variablen, Operatoren, Klammern)
V:={A,B,C,...A0,A1,...,⊤,⊥}
Aussagenlogische Variablen als Grundelemente
Wahrheits-Wert einer Formel mit der Belegung / Interpretation
I
festgelegt durch die Funktion:
val: I×A↦B
val(I,A)=valI(A)
Für jede Operation auf der syntaktischen Ebene gibt es auch eine auf der semantischen Ebene (Metaebene):
val
I
(A)=I(A) fu¨r A∈Vval
I
(⊤)=1 und val
I
(⊥)=0 ; val
I
(¬F)=notval
I
(F)val
I
((F∗G))=val
I
(F)⊛val
I
(G)
wobei
⊛
die logische Funktion zum Operator
∗
ist.
Beispiele
Beispiele für
⊛
: Ausdrücken von Semantik in der Aussagenlogik. (Alles darunter bezieht sich nur auf Aussagenlogik).
Semantische Äquivalenz
Semantik
=
ist durch
≡
ausdrückbar.
F=G
sind semantisch äquivalent wenn
valI(F)=valI(G)
gültig ist.
Logische Konsequenz
Die Semantik
⊨
ist durch
⊃
ausdrückbar
F1,…,Fn⊨,G
genau dann wenn
F1⊃(F2⊃⋯(Fn⊃G)⋯)
Und weil
A⊃(B⊃C)=(A∧B)⊃C
folgt daraus die äquivalenz mit
(F1∧...∧Fn)⊃G
.
Anwendungen:
"Falls in der Wahrheitsbelegung
I
alle Prämissen wahr sind, dann ist auch die Konklusion wahr in
I
."
(Kriterium für die Gültigkeit von Inferenzregeln)
"Die Formel
G
ist eine logische Konsequenz der Formeln
F1,...,Fn
"
⊨F
ist eine Abkürzug dafür, dass
F
gültig ist.
Man muss es quasi alstrue⊨Flesen.
Eigenschaften von Formeln
gültig
wenn für alle Wahrheitsb. immer
valI(F)=1
Immer wahr
erfüllbar
wenn für mindestens eine Wahrheitsb.
valI(F)=1
Mind. bei 1 Fall wahr
widerlegbar
wenn für mindestens eine Wahrheitsb.
valI(F)=0
Mind. bei 1 Fall falsch
unerfüllbar
wenn für alle Wahrheitsb. immer
valI(F)=0
Immer falsch
Bool'sche Algebra
In der boolschen Algebra gelten die Eigenschaften: Assoziativität, Kommutativität, Idempotenz,...
Beispiele für boolsche Algebra:
⟨B, and, or, not, 0,1⟩
⟨2M,∩,∪,−,∅,M⟩(2Msteht für alle möglichen Mengen)
DNF / KNF
Manche meinen mit DNF / KNF die maximale Form bei der alle Variablen von der Funktion vorkommen müssen - in dieser LVA ist nicht diese
gemeint.
Anwendung
Von der Funktion
f
zur dazugehörigen Formel.
Defintion
b=(b1,…,bn)∈Bn
sind Tupel mit bool'schen Werten.
Wir haben eine Funktion
f:Bn↦B
mit Argumenten
Ai
die durch Interpretation
Ib(Ai)=bi
belegt werden.
Alsof(Ai)=b∈B
Konjunkte / Disjunkte einer Menge von Variablen:
⋀{F,G,H,…}=F∧G∧H∧⋯
⋁{F,G,H,…}=F∨G∨H∨⋯
Wobei⋀{}=⊤und⋁{}=⊥
DNF: Disjunktionen von Konjunktionen von Literalen (= Variablen oder ihre negierte Form)
Charakteristisches Konjunkt für
b=(b1,…,bn)∈Bn
:
Kb=⋀{Ai∣bi=1,i=1..n}∧⋀{¬Ai∣bi=0,i=1..n}
WobeiAidie Variablen sind die als Argumente der Funktion dienen.
Beispiel:
Ib:A1↦1,A2↦0,A3↦1,A4↦1⟹valI
b
ˉ
(Kb)=1
b=(1,0,1,1)⟹Kb=A1∧¬A2∧A3∧A4
Für Wahrheitsbelegung
Ib
hat
Kb
den Wert
1
und sonst
0
.
Die Konjunkte werden disjunktiv verbunden.
DNFf=⋁{Kb∣f(b)=1,b∈Bn}
Dadurch repräsentiert die DNF die Funktion f.
∀b∈Bn:valb(DNFf)=f(b)
DNF: Konjunktionen von Disjunktionen von Literalen
Charakteristisches Disjunkt für
b=(b1,…,bn)∈Bn
:
Db=⋁{Ai∣bi=0,i=1..n}∨⋁{¬Ai∣bi=1,i=1..n}
WobeiAidie Variablen sind die als Argumente der Funktion dienen.
Beispiel:
Ib:A1↦1,A2↦0,A3↦1,A4↦1⟹valI
b
ˉ
(Db)=0
b=(1,0,1,1)⟹Db=¬A1∨A2∨¬A3∨¬A4
Für Wahrheitsbelegung
Ib
hat
Db
den Wert
0
und sonst
1
.
Die Konjunkte werden disjunktiv verbunden.
KNFf=⋀{Db∣f(b)=0,b∈Bn}
Dadurch repräsentiert die DNF die Funktion f.
∀b∈Bn:valb(KNFf)=f(b)
Laufzeiten
von einer beliebigen Formel zu DNF / KNF kommen:
Beide exponentielle obere Schranke für Laufzeit
Semantische Methode (Siehe oben)
-übersichtlicher, einfacher, aberimmerexponentielle Laufzeit2An
z
.Va
r
iab
l
enweil für jedes element vonbein Konj. / Disjunkt gebildet werden muss.
Algebraische Methode (Algebraisch umformen / kürzen bis man erwünschte Form erreicht)
- durchschnittlich effizienter, aber obere Schranke wie semantische Methode
Normalformen
Formeln unter gewissen Einschränkungen. - An der Semantik ändert sich nichts.
Normalformen sind meistens nicht eindeutig.
Beispiele
Disjunktive Normalform DNF
Konjunktive Normalform KNF
Negations Normalform NNF
(DNF, KNF sind auch gültige NNF)
kleinstmögliche Menge für die gilt:
1.
(F∨G)
und
(F∧G)
sind in der Menge wenn
{F,G}∈
NNF.
2.
Literale
(= negierte / nicht negierte Variablen) sowie
⊤
,
⊥
sind NNF
Andere Einschränkungen auch möglich für Normalformen, zb nur Nand-Operator
↑
erlaubt. (Operator muss funktional vollständig sein)
SAT-Problem
P Problemklasse, die sich polynomiell lösen lässt.
NP Problemklasse, die sich polynomiell verifizieren lässt.
NP-vollständig Problemklasse, auf die sich alle NP-Probleme reduzieren lassen.
Erfüllbarkeitsproblem / Satisfiability / SAT (NP-vollständig)
Wir haben eine Formel
F
und wollen wissen ob sie erfüllbar ist.
Wir wollen wissen ob
∃I∈I:valI(F)=1
Aussagenlogische Frage übersetzt zu (Un)Erfüllbarkeitsproblem:
SAT lösen:
Wahrheitstafel
(ineffizient)
DNF
(ineffizient, Probleme meistens fast in KNF Form)
SAT-Solver
SAT-Solver
Mögliche Resultate:
a) "SAT"
∃I∈I:valI(F)=1
(Formel ist erfüllbar)
b) "UNSAT"
∃I∈I:valI(F)=1
(Formel ist unerfüllbar)
Dualität
Dualität ≠ Negation
Duale Funktionen
Zwei n-stellige Funktionen
f
und
g
heißen dual zueinander, wenn gilt:
notf(x1,…,xn)=g(notx1,…,notxn)
Beispiel:
and
und
or
bei gespiegelten Wahrheitsbelegungen
DeMorgan Gesetz:
not(x and y) = (not x) or (not y)
x1100
y
1010x and
y
1000x or
y
1110
x0011
y
0101x or
y
0111x and
y
0001
Duale Operatoren
Operatoren (semantisch) sind dual wenn ihre Funktionen dual sind.
Duale Formeln
Formel
F[A1,…,An]
und
G[A1,…,An]
sind dual zu einander wenn gilt:
¬F[A1,…,An]=G[¬A1,…,¬An]
Quasi wenn überall in der Formel die Operatoren mit ihrem Dual ausgetauscht werden - aber eine Formel kann zu mehreren anderen dual
sein.
Beispiel:
¬(((A∧B)≡¬(B↑C))⊃((A∧⊤)∨B))
ist dual zu
¬(((A∨B)≡¬(B↓C))⊂((A∨⊥)∧B))
Aussagenlogische Modellierung
deklarativ-statisch, nicht prozedural-dynamisch
+
deklarativ (man sagt welchen Zustand man sich unter welchen Bedingungen wünscht)
+
modular
−
Erraten von Parametern oft notwendig (siehe Simpsons bsp)
−
Große Zahl an Variablen und Formeln
−
Frame Problem: Bei jeder Aktion muss auch definiert werden, was sich nicht ändert.
−
unintuitiv - menschen denken bei Modellieren nicht an statischen Bedingungen