Was ist Logik? Aussagenlogik Logische Konnektoren

Werbung
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Was ist Logik?
Was ist Logik?
• Geschichte der Logik ist eng verknüpft mit (Sprach-)
Philosophie
• Logik stellt Sprachen zur Darstellung von Wissen,
Problemen, Lösungen zur Verfügung
• Begriff Logik wird im Alltag vielseitig verwendet
• Logik erlaubt, nach festen Regeln aus wahren
Aussagen andere wahre Aussagen abzuleiten
• Logik untersucht, wie aus wahren Aussagen andere
wahre Aussagen folgen
• Beschränkung auf "Aussage folgt notwendigerweise"
• Logik als Grundlage für andere Gebiete: Mathematik,
Informatik, künstliche Intelligenz
• Beispiele
Wenn es regnet, dann wird die Strasse nass.
Es regnet.
----------------------------Die Strasse wird nass.
• Logik zur Darstellung der Semantik natürlicher und
künstlicher Sprachen
• Logik als Modell für menschliches Denken?
Vögel können fliegen.
Tweetie ist ein Vogel.
----------------------------Tweetie kann fliegen.
• verallgemeinert zur universellen Schlussregel "modus
ponens"
Wenn A gilt, dann gilt B.
A ist wahr.
---------------------------B ist wahr.
• es gibt andere Logiken
Einführung in die Logik: Aussagenlogik 1
Einführung in die Logik: Aussagenlogik 2
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Aussagenlogik
Logische Konnektoren
• atomare Aussagen sind einfache deklarative Sätze
• mit Hilfe von Konnektoren können aus Aussagen
zusammengesetzte Aussagen konstruiert werden
Die Sonne scheint.
• Wahrheitwert zusammengesetzter Aussagen wird
eindeutig durch die Wahrheitwerte der beteiligten
Teilaussagen bestimmt
Es regnet.
die wahr oder falsch sind
• in natürlichen Sprachen gibt es auch Satzarten, denen
kein Wahrheitwert zugeschrieben werden kann, z.B.
• in der Aussagenlogik gibt es unter anderen die
folgenden Konnektoren
Scheint die Sonne ?
Negation ("nicht")
¬
Öffnen Sie bitte das Fenster.
Konjunktion ("und")
∧
Disjunktion ("oder")
∨
Implikation ("wenn ... dann ...")
→
• zusammengesetzte Aussagen
Die Sonne scheint oder es regnet.
• formal mit logischen Konnektoren
Die Sonne scheint. ∨ Es regnet.
• Wahrheitwert zusammengesetzter Aussagen wird aus
den Wahrheitwerten der beteiligten Teilaussagen
bestimmt, z.B. ist
Die Sonne scheint. ∨ Es regnet.
wahr, wenn mindestens eine der beiden Teilaussagen
wahr ist.
Einführung in die Logik: Aussagenlogik 3
• die logische Bedeutung dieser Konnektoren wird durch
Wahrheitstabellen definiert
• die logische Bedeutung entspricht nicht in jedem Fall
der Bedeutung des entsprechenden natürlichsprachlichen Ausdrucks
• Aussagen werden durch Grossbuchstaben dargestellt
• Wahrheitswerte: wahr (W), falsch (F)
Einführung in die Logik: Aussagenlogik 4
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Wahrheitstabellen: Negation
Wahrheitstabellen: Konjunktion
• Negation
• Konjunktion
P
(¬P)
P
Q
(P ∧ Q)
W
F
W
W
W
F
W
W
F
F
F
W
F
F
F
F
Der Konnektor Negation wirkt auf eine einzelne
Aussage und kehrt deren Wahrheitswert um.
Die logische Konjunktion ist wahr, wenn beide
Teilaussagen wahr sind.
Während für die logische Konjunktion das
kommutative Gesetz
(P ∧ Q) ≡ (Q ∧ P)
gilt, hat das natürlichsprachliche "und" oft eine
zusätzliche zeitliche Bedeutung.
Die Sätze
Ich werde schläfrig und gehe ins Bett.
und
Ich gehe ins Bett und werde schläfrig.
drücken zwei verschiedene Sachverhalte aus.
Einführung in die Logik: Aussagenlogik 5
Einführung in die Logik: Aussagenlogik 6
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Wahrheitstabellen: Disjunktion
Wahrheitstabellen: Implikation
• Disjunktion
• Implikation
P
Q
(P ∨ Q)
P
Q
(P → Q)
W
W
W
W
W
W
W
F
W
W
F
F
F
W
W
F
W
W
F
F
F
F
F
W
Die logische Disjunktion ist inklusiv, d.h. sie ist wahr,
wenn eine der beiden Aussagen oder beide Aussagen
gelten.
Die logische Implikation ist nur dann falsch, wenn
die Voraussetzung P wahr und die Konsequenz Q
falsch ist. In allen anderen Fällen, insbesondere wenn
die Voraussetzung P falsch ist, ist die Implikation
wahr.
In der natürlichen Sprache hat "oder" oft auch die
exklusive Bedeutung; so wird
Der Fall F → Q wird als "ex falso quodlibet"
bezeichnet.
Er kommt heute oder morgen.
Diese "materiell" genannte Implikation hat eine
vollkommen logische Bedeutung, die allein durch die
Wahrheitstabelle gegeben ist. Die Implikation hat
keinerlei kausale Bedeutung, d.h. die Aussage
als
Er kommt entweder heute oder morgen.
d.h. als
Er kommt (heute und nicht morgen) oder (morgen und
nicht heute).
verstanden. Die letzte Formulierung zeigt, wie das
exklusive "oder" in Logik ausgedrückt werden kann.
Einführung in die Logik: Aussagenlogik 7
Wenn der Mond aus grünem Käse ist, dann ist vier eine
Primzahl.
ist logisch wahr, obwohl beide Aussagen falsch sind
und zwischen ihnen kein kausaler Zusammenhang
besteht.
Einführung in die Logik: Aussagenlogik 8
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Implikation
Formale Syntax der Aussagenlogik
• (P → Q) sei wahr
• Sprache der Aussagenlogik besteht aus den – oft
wohlgeformt genannten – Aussagen (Formeln)
wenn P wahr ist, dann muss auch Q wahr sein
wenn P falsch ist, dann kann Q wahr oder falsch sein
• P wird als stärker, Q als schwächer bezeichnet
• W ist die schwächste Aussage, F die stärkste
(F → W)
• atomare Aussagen – dargestellt durch Buchstaben p, q,
... (möglicherweise mit Indizes) – sind wohlgeformt
• ⊥ (Widerspruch) ist eine wohlgeformte atomare
Aussage; ihr Wahrheitswert ist F
• wenn P und Q wohlgeformt sind, dann sind auch
• falls (P → Q), wird P hinreichend für Q genannt, Q
notwendig für P
(¬ P )
• falls (P → Q) ∧ (Q → P), wird P hinreichend und
notwendig für Q genannt
(P ∨ Q)
(P ∧ Q)
(P → Q)
wohlgeformt.
(P und Q sind Platzhaltervariablen, die für Aussagen
stehen)
• es gibt keine weiteren wohlgeformten Aussagen
Einführung in die Logik: Aussagenlogik 9
Einführung in die Logik: Aussagenlogik 10
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Vorrangsregeln
Formale Syntax der Aussagenlogik
• zusammengesetzte Ausdrücke mit mehreren Konnektoren, z.B.
• Syntaxregeln der Aussagenlogik erzwingen, dass für
einen wohlgeformten Ausdruck, z.B.
((p ∧ (q → r)) → ((p ∧ (¬ q)) → ((¬ q) ∨ (¬ r))))
• A∧¬B∨C→D
sind möglicherweise unklar
• Klärung schaffen Vorrangsregeln oder Klammern
• Vorrangsregeln
alle Klammern gepaart sein müssen – für jede linke
Klammer muss es eine entsprechende rechte geben
und
jeder geklammerte Ausdruck vollständig in dem
umgebenden Ausdruck enthalten sein muss
Negation
• wie wir später sehen werden, wird die Grammatik
einer solchen Sprache kontextfrei genannt
vor
Konjunktion
• in der Praxis werden wir oft Klammern weglassen,
wenn keine Unklarheiten bestehen
vor
Disjunktion
vor
Implikation
• Vorrang kann durch Klammerung angedeutet werden
A ∧ ¬ B ∨ C → D ≡ (((A ∧ (¬ B)) ∨ C) → D)
• im Zweifelsfall sollte man Klammern setzen; deswegen
tauchen diese Klammern in der Definition der Sprache
auf
Einführung in die Logik: Aussagenlogik 11
Einführung in die Logik: Aussagenlogik 12
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Formale Syntax der Aussagenlogik
Semantik der Aussagenlogik
• geschachtelte Klammerung führt
Baumstruktur von Ausdrücken, z.B.
zu
einer
• atomaren Ausdrücken werden durch eine Funktion v
Wahrheitswerte {W, F} zugewiesen, z.B.
(1 (2 p ∧ (3 q → r)4 )5 →
v(p) = W
(6 (7 p ∧ (8¬ q)9 )10 → (11 (12¬ q)13∨ (14¬ r)15 )16 )17 )18
v(q) = F
mit dem Gesamtausdruck als Wurzel des Baumes, den
Teilausdrücken als Knoten und den atomaren
Ausdrücken als Blättern
((p ∧ (q → r)) → ((p ∧ (¬ q)) → ((¬ q) (¬ r))))
1
18
(p ∧ (q → r))
2
((p ∧ (¬ q)) → ((¬ q) ∨ (¬ r)))
5
6
(q → r)
p
3
q
4
7
r
p
17
((¬ q) ∨ (¬ r))
10
16
(¬ q)
(¬ q) (¬ r)
8 9 12 13 14 15
q
q
• nachdem den atomaren Ausdrücken Wahrheitswerte
zugewiesen wurden, kann man mit Hilfe der
elementaren Wahrheittabellen den Wahrheitswert jedes
Ausdrucks bestimmen
• Beispiel
(p ∧ (q → r))
(p ∧ (¬ q))
11
(Man spricht auch von einer Interpretation oder einer
Belegung mit Wahrheitswerten.)
r
• Knoten sind auch mit den entsprechenden Klammerpaaren bezeichnet; die jeweiligen Hauptkonnektoren
sind hervorgehoben
p
∧
q
→
r
W
W
W
W
W
W
F
W
F
F
W
W
F
W
W
W
W
F
W
F
F
F
W
W
W
F
F
W
F
F
F
F
F
W
W
F
F
F
W
F
Einführung in die Logik: Aussagenlogik 13
Einführung in die Logik: Aussagenlogik 14
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Semantik
Semantik: Tautologie, Kontradiktion
• im Prinzip kann man jedem aussagenlogischen
Ausdruck einen Wahrheitswert zuweisen
• Tautologien sind Aussagen, die immer wahr sind, z. B.
• in der Praxis jedoch nicht, da Wahrheitstabellen
exponentiell wachsen: für Ausdrücke, die n atomare
Ausdrücke enthalten, entstehen Wahrheitstabellen mit
2n Zeilen
(P ∨ ¬ P)
P
∨
¬
P
W
W
F
W
F
W
W
F
(Man spricht auch von gültigen Aussagen. )
• Wenn eine Aussage P eine Tautologie ist, schreibt man
|= P
• Kontradiktionen sind Aussagen, die immer falsch sind,
z.B.
(P ∧ ¬ P)
P
∧
¬
P
W
F
F
F
W
F
W
F
Die atomare Aussage ⊥ ist eine Kontradiktion.
• Eine Aussage ist genau dann eine Kontradiktion, wenn
ihre Negation eine Tautologie ist.
Einführung in die Logik: Aussagenlogik 15
Einführung in die Logik: Aussagenlogik 16
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Semantik: Erfüllbarkeit, Widerlegbarkeit
Semantik: logische Konsequenz
• Aussagen sind erfüllbar, wenn sie durch eine Belegung
mit Wahrheitwerten wahr gemacht werden können
• eine Aussage P ist die logische Konsequenz einer
Menge von Aussagen M, wenn jede Zuordnung von
Wahrheitswerten, die M wahr macht, auch P wahr
macht
Beispiel
(P ∨ Q)
M |= P
ist erfüllbar, z.B. durch v(P) = W und v(Q) = F
• Aussagen sind widerlegbar, wenn sie durch eine
Belegung mit Wahrheitwerten falsch gemacht werden
können
• Beispiel 1:
M={p → q, q → ¬ r, r → (p ∨ s)}
P=q→s
Gilt M |= P ?
Beispiel
(P ∨ Q)
ist durch v(P) = F und v(Q) = F widerlegbar
direkter Beweis (es gibt eine Zuordnung von
Wahrheitswerten, die M wahr und P falsch macht):
aus v(q → s) = F folgt v(q) = W, v(s) = F
aus v(q → ¬ r) = W und v(q) = W folgt v(r) = F
aus v(q) = W folgt v(p → q) = W
aus v(r) = F folgt v(r → (p ∨ s)) = W
mit v(p) beliebig, v(q) = W, v(r) = v(s) = F erhalten
wir v(M) = W und v(P) = F
P ist keine logische Konsequenz von M
Einführung in die Logik: Aussagenlogik 17
Einführung in die Logik: Aussagenlogik 18
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Semantik: logische Konsequenz
Logische Äquivalenz: Umformungen
• Beispiel 2:
• zwei Aussagen P und Q sind logisch äquivalent
M={p → q, q → ¬ r, r → (p ∨ s)}
P = ¬ p ∨ (q ∧ ¬ r)
P≡ Q
wenn sie die gleiche Wahrheitstabelle haben
• ≡ ist kein Element der Sprache der Aussagenlogik,
sondern ein metasprachliches Zeichen
Gilt M |= P ?
Beweis durch Widerspruch (wenn wir eine
Zuordnung finden, die M wahr und P falsch macht,
dann kann P nicht die logische Konsequenz von M
sein):
Annahme: v(p → q) = v(q → ¬ r) = v(r → (p ∨ s)) = W
und v(¬ p ∨(q ∧ ¬ r)) = F
daraus folgt v(p) = W, v(q) = W, v(q ∧ ¬ r) = F,
weiterhin v(r) = F
daraus folgt v(q ∧ ¬ r) = W und somit ein Widerspruch, d.h. es gibt die obige Zuordnung nicht
P ist logische Konsequenz von M
• zwei Aussagen sind logisch äquivalent, wenn jede die
logische Konsequenz der anderen ist
• Idempotenz
(P ∨ P) ≡ P
(P ∧ P) ≡ P
• Kommutativität
(P ∧ Q) ≡ (Q ∧ P)
(P ∨ Q) ≡ (Q ∨ P)
• Assoziativität
(P ∨ (Q ∨ R)) ≡ ((P ∨ Q) ∨ R) ≡ (P ∨ Q ∨ R)
(P ∧ (Q ∧ R)) ≡ ((P ∧ Q) ∧ R) ≡ (P ∧ Q ∧ R)
• Distributivität
(P ∨ (Q ∧ R)) ≡ ((P ∨ Q) ∧ (P ∨ R))
(P ∧ (Q ∨ R)) ≡ ((P ∧ Q) ∨ (P ∧ R))
Einführung in die Logik: Aussagenlogik 19
Einführung in die Logik: Aussagenlogik 20
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Logische Äquivalenz: Umformungen
Adäquate Mengen von Konnektoren
• doppelte Negation
• Wieviele verschiedene Konnektoren gibt es überhaupt?
(¬ (¬ (P)) ≡ P
Konnektoren werden durch Wahrheitstabellen
definiert
• de Morgan Regeln
Wahrheitstabelle für n Aussagen hat 2n Einträge
(¬ (P ∨ Q)) ≡ (¬ P) ∧ (¬ Q)
jeder Eintrag kann wahr oder falsch sein
(¬ (P ∧ Q)) ≡ (¬ P) ∨ (¬ Q)
n
• Implikation kann durch Negation und Disjunktion
ausgedrückt werden
(P → Q) ≡ (¬ P) ∨ Q
also gibt es für n Aussagen 22 verschiedene
n
Wahrheitstabellen, d.h. 22 verschiedene Konnektoren
2
für zwei Aussagen gibt es also 22 =16 verschiedene
Konnektoren
• Konnektoren ¬ , ∧ , ∨, → sind offensichtlich nicht
unabhängig
• Sind diese 16 Konnektoren unabhängig? Wieviele
braucht man mindestens?
• man kann sich leicht überzeugen, dass man mindestens
die Negation braucht und einen Konnektor, der zwei
Aussagen miteinander verknüpft
• adäquate Mengen von Konnektoren sind z.B.
{ ¬, ∨}
{ ¬, ∧}
• andere Konnektoren erhält man mit Hilfe der
eingeführten Identitäten, z.B.
∧ aus { ¬, ∨}
(P ∧ Q) ≡ (¬ ((¬ P) ∨ (¬ Q)))
Einführung in die Logik: Aussagenlogik 21
Einführung in die Logik: Aussagenlogik 22
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Adäquate Mengen von Konnektoren
Adäquate Mengen von Konnektoren
• adäquate Mengen von Konnektoren können aus einem
einzigen der 16 Konnektoren bestehen z.B.
• andere Konnektoren erhält man mit Hilfe von
Identitäten, z.B.
(P nand Q) ≡(¬ (P ∧ Q))
{nand}
(¬ P) ≡ (P nand P) ≡ (P nor P)
(P ∧ Q) ≡ (P nand Q) nand (P nand Q)
mit der Wahrheitstabelle
(P ∨ Q) ≡ (P nand P) nand (Q nand Q)
P
Q
(P nand Q)
W
W
F
W
F
W
F
W
W
F
F
W
• adäquate Mengen von Konnektoren sind für die
Entwicklung logischer Schaltkreise von grosser
Bedeutung: wie viele verschiedene Komponenten
braucht man mindestens, um alle logischen
Konnektoren darzustellen?
• und
(P nor Q) ≡ (¬ (P ∨ Q))
{nor}
mit der Wahrheitstabelle
P
Q
(P nor Q)
W
W
F
W
F
F
F
W
F
F
F
W
Einführung in die Logik: Aussagenlogik 23
Einführung in die Logik: Aussagenlogik 24
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Normalformen
Umwandlung in Normalform
• unterschiedliche Formen der gleichen Aussage, z.B.
• systematische Umwandlung in konjunktive Normalform in drei Schritten
P ≡(¬ (¬ P))
Beispiel
¬ ((P ∨ Q)) ≡ (¬ P ) ∧ (¬ Q)
erschweren die Lesbarkeit und führen zum Wunsch
nach Standardformen
• Konjunktion (Disjunktion) von Aussagen P1, P2, ... , Pn
ist die Aussage P1 ∧ P2 ∧ ... ∧ Pn (bzw. P1 ∨ P2 ∨ ... ∨ Pn).
(Wegen der Kommutativität sind Klammern unnötig.)
• Literale sind atomare Aussagen oder negierte atomare
Aussagen
• konjunktive Normalform: Konjunktion von Disjunktionen von Literalen
(A → ¬(B → C))
(1)
1. Schritt: Elimination von →
(A → ¬ (B → C)) ≡
[Regel: P → Q ≡ ¬ P ∨ Q]
(¬ A ∨ ¬ (¬ B ∨ C))
(2)
2. Schritt: Verteilung von ¬ auf atomare Ausdrücke
(¬ A ∨ ¬ (¬ B ∨ C)) ≡
[Regel: ¬ (P ∨ Q) ≡ ¬ P ∧ ¬ Q)]
(¬ A ∨ (¬ ¬ B∧ ¬ C)) ≡
[Regel: ¬ ¬ P ≡ P]
(¬ A ∨ (B ∧ ¬ C))
(3)
D1 ∧ D2 ∧ ... ∧ Dn
3. Schritt: Umwandlung in eine Konjunktion von
Disjunktionen durch distributive Regel
Di = Li1 ∨ Li2 ∨ ... ∨ Lim
(¬ A ∨ (B ∧ ¬ C)) ≡
Lij (negierte) atomare Aussage
((¬ A ∨ B) ∧ (¬ A ∨ ¬ C)) (4)
• disjunktive Normalform: Disjunktion von Konjunktionen von Literalen
K1 ∨ K2 ∨ ... ∨ Kn
Ki = Li1 ∧ Li2 ∧ ... ∧ Lim
Lij (negierte) atomare Aussage
[Regel: P ∨ (Q ∧ R) ≡ (P ∨ Q) ∧ (P ∨ R)]
• alternativ: Umwandlung in disjunktive Normalform Disjunktion von Konjunktionen - durch distributive
Regel
(¬ A ∨ (B ∧ ¬ C))
[3 ist schon disjunktive Normalform]
Einführung in die Logik: Aussagenlogik 26
Einführung in die Logik: Aussagenlogik 25
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Normalformen
Karnaugh Diagramme
• Theorem: zu jeder aussagenlogischen Formel gibt es
(mindestens) eine logisch äquivalente disjunktive
Normalform und (mindestens) eine logisch äquivalente
konjunktive Normalform.
• Karnaugh Diagrammen erzeugen systematisch
minimale disjunktive Normalformen für Formeln mit
bis zu 4 atomaren Ausdrücken
• nicht jede Umwandlung ergibt die kürzeste
Normalform
Beispiel
Umwandlung der konjunktiven Normalform (4) in
disjunktive Normalform durch Distribution ergibt
((¬ A ∨ B) ∧ (¬ A∨ ¬ C)) ≡
[Regel: P ∧ (Q ∨ R) ≡ (P ∧ Q) ∨ (P ∧ R)]
(¬ A ∨ (¬ A ∧ ¬ C) ∨ (B ∧ ¬ A) ∨ (B∧ ¬ C))
während die logisch äquivalente disjunktive Normalform (3)
(¬ A ∨(B ∧ ¬ C))
erheblich kürzer ist
• Beispiel 1
Wahrheitstabelle für einen Ausdruck A mit 3
Ausdrücken P, Q, R
P
Q
R
A
W
W
W
W
W
W
F
W
W
F
W
F
W
F
F
F
F
W
W
W
F
W
F
W
F
F
W
F
F
F
F
W
• (kurze) Normalformen erleichtern nicht nur die
Lesbarkeit, sondern sind auch für die Entwicklung
logischer Schaltkreise wichtig: wieviele Komponenten
braucht man höchstens, um eine logische Funktion zu
erzeugen?
• konjunktive Normalformen spielen auch in der
logischen Programmierung eine Rolle
Einführung in die Logik: Aussagenlogik 27
Einführung in die Logik: Aussagenlogik 28
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Karnaugh Diagramme
Karnaugh Diagramme
• dazugehöriges Karnaugh Diagram
• Beispiel 2
Q
W
W
F
F
R
W
F
F
W
W
W
W
F
F
• Wahrheitstabelle für einen Ausdruck A mit 3
Ausdrücken P, Q, R
P
F
W
W
W
F
• Wahrheitwerte für Q und R sind so angeordnet, dass
sich immer nur ein Wahrheitswert ändert
• gesucht wird die minimale Anzahl von Rechtecken mit
der Kantenlänge 1, 2 oder 4, die nur den Wert W
enthalten
Q
W
W
F
F
R
W
F
F
W
W
W
W
F
F
F
W
W
W
F
P
Q
R
A
W
W
W
W
W
W
F
F
W
F
W
W
W
F
F
F
F
W
W
W
F
W
F
W
F
F
W
W
F
F
F
F
• dazugehöriges Karnaugh Diagram
P
• minimale disjunktive Normalform für A
Q
W
W
F
F
R
W
F
F
W
W
W
F
F
W
F
W
W
F
W
P
A ≡ (P ∧ Q ∧ R) ∨ (¬P ∧ Q ∧ R) ∨ (P ∧ Q ∧ ¬ R) ∨
(¬ P ∧ Q ∧ ¬ R) ∨ (¬ P ∧ Q ∧ ¬ R) ∨ (¬ P ∧ ¬ Q ∧ ¬ R)
≡ (Q ∧ R) ∨ ( Q ∧ ¬ R) ∨ (¬ P ∧ ¬ R)
≡ Q ∨ (¬ P ∧ ¬ R)
[Regel: (P ∧ Q) ∨ (P ∧ ¬ Q) ≡ P ∧ (Q ∨ ¬ Q)] ≡ P]
(Die leichtgrauen Felder gehören zusammen.)
Einführung in die Logik: Aussagenlogik 29
Einführung in die Logik: Aussagenlogik 30
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Karnaugh Diagramme
Anwendung: Schaltkreise
• minimale disjunktive Normalform für A
• Schaltkreise haben n Eingänge und m Ausgänge
A ≡ (P ∧ Q ∧ R) ∨ (¬ P ∧ Q ∧ R) ∨ (P ∧ ¬ Q ∧ R) ∨ (¬ P
∧ ¬ Q ∧ R) ∨ (¬ P ∧ Q ∧ R) ∨ (¬ P ∧ Q ∧ ¬ R)
jeder Eingang (Ausgang) ist entweder wahr oder
falsch
≡ (Q ∧ R) ∨ ( ¬ Q ∧ R) ∨ (¬ P ∧ Q)
Ausgänge hängen logisch von den Eingängen ab
≡ R ∨ (¬ P ∧ Q)
[Regel: (P ∧ Q) ∨ (P ∧ ¬ Q) ≡ P ∧ (Q ∨ ¬ Q)] ≡ P]
• Schaltkreise werden aus logischen Komponenten
zusammengesetzt, z.B.
• Beispiel
Eingänge A und B, Ausgänge C und D
Schaltkreis verwendet ¬, ∧, ∨, und nor
Einführung in die Logik: Aussagenlogik 31
Einführung in die Logik: Aussagenlogik 32
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Anwendung: Schaltkreise
Anwendung: Schaltkreise
• Beispiel (Forts.)
• welche Optimierung – Reduzierung der Zahl der
Komponenten oder Reduzierung der Zahl der
verschiedenen Komponenten – gewählt wird, hängt
von der Situation ab
aus dem Schema folgt
C ≡ (A ∨ B) ∧ (A nor (A nor B))
D ≡ ¬ (A ∨ B)
• Reduzierung der Zahl der Komponenten von 5 auf 4
durch Umwandlung in konjunktive Normalform
• Reduktion der Zahl der verschiedenen Komponenten
erhöht allerdings die Zahl Komponenten und die Zahl
der Verbindungen
C≡¬A∧B
D≡¬ A∧¬B
• Reduzierung der Zahl der Komponenten auf 3 durch
Verwendung von nor
C≡¬A∧B
D ≡ A nor B
• Reduzierung der Zahl der verschiedenen Komponenten auf 1 durch alleinige Verwendung von nand
C ≡ ((A nand A) nand B) nand ((A nand A) nand B)
D ≡ ((A nand A) nand (B nand B)) nand ((A nand A)
nand (B nand B))
Einführung in die Logik: Aussagenlogik 34
Einführung in die Logik: Aussagenlogik 33
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Anwendung: Analyse natürlichsprachlicher Sätze
Anwendung: Analyse
natürlichsprachlicher Sätze
• (Aussagen-) Logik kann helfen, Fragen zu beantworten,
die in natürlicher Sprache formuliert sind
• Probleme bei der logischen Analyse von Sätzen
Identifizierung der Konnektoren, die die logische
Struktur des Satzes bestimmen
Identifizierung der Satzteile, die als atomare
Aussagen dargestellt werden sollen
korrekte Schachtelung der Teilaussagen
Ambiguitäten
• Beispiel
Die Versammlung findet statt, wenn alle Teilnehmer
rechtzeitig informiert wurden und die Versammlung
beschlussfähig ist. Die Versammlung ist beschlussfähig,
wenn mindestens 15 Teilnehmer anwesend sind. Die
Teilnehmer sind rechtzeitig informiert worden, wenn es
keinen Streik der Postbeamten gab.
Wenn die Versammlung nicht stattfand, dann waren
weniger als 15 Teilnehmer anwesend oder es gab einen
Streik der Postbeamten.
Wir führen die atomaren Aussagen
s
die Versammlung findet statt
t
alle Teilnehmer wurden rechtzeitig informiert
f
mindestens 15 Teilnehmer sind anwesend
b
die Versammlung ist beschlussfähig
p
es gab einen Streik der Postbeamten
ein und übersetzen Satz für Satz.
1. Die Versammlung findet statt, wenn alle Teilnehmer
rechtzeitig informiert wurden und die Versammlung
beschlussfähig ist.
P1 ≡ (t ∧ b) → s
2. Die Versammlung ist beschlussfähig, wenn mindestens
15 Teilnehmer anwesend sind.
P2 ≡ f → b
Einführung in die Logik: Aussagenlogik 35
Einführung in die Logik: Aussagenlogik 36
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Anwendung: Analyse natürlichsprachlicher Sätze
Anwendung: Analyse natürlichsprachlicher Sätze
3. Die Teilnehmer sind rechtzeitig informiert worden,
wenn es keinen Streik der Postbeamten gab.
• Beispiel mag wie ein Spiel wirken
P3 ≡ ¬ p → t
• Realität: wichtiges Problem "natürlichsprachliche
Schnittstellen" zu formalen Systemen
4. Wenn die Versammlung nicht stattfand, dann waren
weniger als 15 Teilnehmer anwesend oder es gab einen
Streik der Postbeamten.
Datenbanken
P4 ≡ ¬ s → (¬ f ∨ p)
Handbücher, Hilfefunktionen
Informationssysteme
Automaten
Gilt { P1, P2, P3} |= P4_?
Spezifikationen
Beweis durch Widerspruch: Annahme P1, P2, P3 wahr
und P4 falsch
...
aus v(P4) = v(¬ s → (¬ f ∨ p)) = F folgt v(s) = F, v(f) =
W, v(p) = F
• Computerlinguistik automatisiert die Übersetzung von
natürlicher Sprache in Logik, meistens in Prädikatenlogik
aus v(P2) = v(f → b) = W und v(f) = W folgt v(b) = W
aus v(P3) = v(¬ p → t) = W und v(p) = F folgt v(t) = W
damit ist v(P1) = v((t ∧ b) → s) = F
Widerspruch zur Annahme v(P1) = W
also gibt es keine derartige Zuordnung und der
Schluss { P1, P2, P3} |= P4 ist gültig
Einführung in die Logik: Aussagenlogik 37
Einführung in die Logik: Aussagenlogik 38
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Prädikatenlogik
Quantoren
• Aussagen wie
• Quantoren erlauben Aussagen über Mengen von
Objekten, für die ein Prädikat gilt
Die Sonne scheint.
die in der Aussagenlogik atomar sind, werden in der
Prädikatenlogik in Terme (sonne) und Prädikate
(scheint) aufgelöst
scheint(sonne)
• Terme
Alle Menschen sind sterblich.
Es gibt sterbliche Menschen.
• universelle Quantifizierung macht eine Aussage über
alle Elemente einer Menge; sie ist genau dann wahr,
wenn die quantifizierte Aussage für jedes Element der
Menge gilt
Namen von Objekten des Diskursbereichs
Alle Menschen sind sterblich.
(Subjekte, Objekte des natürlichsprachlichen Satzes)
∀X (mensch(X) → sterblich(X))
• Prädikate
Namen von Eigenschaften, Relationen, Klassen
(Verben, Attribute des natürlichsprachlichen Satzes)
• Prädikatenlogik führt Variablen ein, die für (noch)
nicht bekannte Objekte des Diskursbereichs stehen
• existentielle Quantifizierung macht eine Aussage über
einzelne Elemente einer Menge; sie ist genau dann
wahr, wenn die quantifizierte Aussage für mindestens
ein Element der Menge gilt
Es gibt sterbliche Menschen.
∃X (mensch(X) ∧ sterblich(X))
scheint(X)
Diese Variablen ähneln den aus der Mathematik
bekannten. Sie sind nicht zu verwechseln mit Variablen
in prozeduralen Programmiersprachen, die für
Speicherstellen stehen.
(Prädikatenlogik 2. Ordnung kennt auch Variablen für
Prädikate)
Einführung in die Logik: Prädikatenlogik 1
Einführung in die Logik: Prädikatenlogik 2
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Quantoren
Quantoren
• man kann Quantoren auch mit expliziten Bereichsangaben versehen
• Skopus
sei M die Menge aller Menschen
∀X (mensch(X) → sterblich(X))
∀X ∈M (sterblich(X))
In den Ausdrücken ∀X (P) oder ∃X (P) heisst P der
Skopus (Gültigkeitsbereich) der Variablen X.
Eine Variable im Skopus eines Quantors heisst
gebunden.
Eine nicht gebundene Variable heisst frei.
Ein Ausdruck ohne freie Variable heisst geschlossen.
analog
∃X (mensch(X) ∧ sterblich(X))
∃X∈M (sterblich(X))
• Beispiel
∃X (gerade(X)) ∨ null(X)
• bei einem endlichen Bereich M = {m1, m2, ...., mn} sieht
man
∀X∈M (p(X)) ≡ (p(m1) ∧ p(m2) ∧ ... ∧ p(mn))
∃X∈M (p(X)) ≡ (p(m1) ∨ p(m2) ∨ ... ∨ p(mn))
Erstes Vorkommen von X ist gebunden, zweites frei.
(Besser: Variablen eindeutig benennen.)
• Beispiel
∀X (mensch(X) → ∃Y (mensch(Y) ∧ liebt(X,Y) ) )
---------------------- Skopus X ------------------------------- Skopus Y ------Ausdruck ist geschlossen
Einführung in die Logik: Prädikatenlogik 3
Einführung in die Logik: Prädikatenlogik 4
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Quantoren
Umformungen quantifizierter Ausdrücke
• Schachtelung von Quantoren
• Negation von Quantoren
∀X (∀Y (p(X,Y)))
¬ (∀X (p(X))) ≡ ∃X (¬ (p(X)))
∀X (∃Y (p(X,Y)))
¬ (∃X (p(X))) ≡ ∀X (¬ (p(X)))
• geschachtelte universelle (existentielle) Quantoren
können vertauscht werden
∀X (∀Y (p(X,Y))) ≡ ∀Y (∀X (p(X,Y)))
∃X (∃Y (p(X,Y))) ≡ ∃Y (∃X (p(X,Y)))
• universelle und existentielle Quantoren dürfen im
allgemeinen nicht vertauscht werden
Alle Menschen lieben einen Menschen.
(M Menge aller Menschen)
• Skopusveränderungen (X taucht in P auf, nicht in Q)
∀X (P) ∧ Q ≡ ∀X (P ∧ Q)
∀X (P) ∨ Q ≡ ∀X (P ∨ Q)
∃X (P) ∧ Q ≡ ∃X (P ∧ Q)
∃X (P) ∨ Q ≡ ∃X (P ∨ Q)
∀X (P) → Q ≡ ∃X (P → Q)
∃X (P) → Q ≡ ∀X (P → Q)
Q → ∀X (P) ≡ ∀X (Q → P)
∀X∈M (∃Y∈M (liebt(X,Y)))
Bedeutung: Für jeden Menschen gibt es einen – nicht
notwendigerweise denselben – Menschen, den er liebt.
Q → ∃X (P) ≡ ∃X (Q → P)
• Name der quantifizierten Variablen ist belanglos
∃Y∈M (∀X∈M (liebt(X,Y)))
∀X (p(X)) ≡ ∀Z23 (p(Z23))
Bedeutung: Es gibt (mindestens) einen Menschen, der
von allen Menschen geliebt wird.
∃Y (p(Y)) ≡ ∃XYZ (p(XYZ))
(N Menge aller natürlichen Zahlen)
∀X∈N (∃Y∈N (Y > X))
[wahr]
∃Y∈N (∀X∈N (Y > X))
[falsch]
Einführung in die Logik: Prädikatenlogik 5
Einführung in die Logik: Prädikatenlogik 6
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Syntax der Prädikatenlogik
Syntax der Prädikatenlogik
• zwei Alphabete
• Sprache der Prädikatenlogik besteht aus Termen und
wohlgeformten Ausdrücken (Formeln)
logische Zeichen
Theoriezeichen (abhängig vom Diskursbereich)
• Terme
Jede Variable ist ein Term.
• logische Zeichen
Menge von Variablen: X, X23, ...
X
(Variablen stehen für (noch) nicht bekannte Objekte
des Diskursbereiches.)
Konnektoren: ¬, ∧, ∨, →
logisches Atom: ⊥
Quantoren: ∀, ∃
Jede Konstante ist ein Term.
Trennzeichen: "," "(" ")"
a, sokrates
• Theoriezeichen
(Konstante stehen für bekannte Objekte des
Diskursbereiches.)
Menge von Konstanten
Menge von Funktionszeichen mit Arität (f/N)
Menge von Relationszeichen mit Arität (p/N)
Wenn t1 , ..., tn Terme sind und f ein n-stelliges
Funktionszeichen – meistens geschrieben als f/n –
dann ist f(t1, ..., tn) ein zusammengesetzter Term.
vater_von(sokrates)
vater_von(vater_von(sokrates))
(Zusammengesetzte Terme stehen für aus anderen
Objekten "konstruierte" Objekte des Diskursbereiches.)
Es gibt keine weiteren Terme.
Einführung in die Logik: Prädikatenlogik 7
Einführung in die Logik: Prädikatenlogik 8
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Syntax der Prädikatenlogik
Bemerkungen zur Syntax
• (wohlgeformte) Ausdrücke
• Syntax der Prädikatenlogik ist nicht standardisiert:
jedes Textbuch verwendet eine (leicht) andere Notation
⊥ ist ein atomarer Ausdruck.
• Meine Notation:
Wenn t1, ..., tn Terme sind und r ein n-stelliges
Relationszeichen – meistens geschrieben als p/n
– dann ist r(t1, ..., tn) ein atomarer Ausdruck.
Klammern geben jeweils den Skopus an
¬ (P)
∀X (P)
rot(X)
oder fassen zusammengehörende Ausdrücke
zusammen
liebt(anton, maria)
¬ (P ∧ Q)
(Relationszeichen werden auch Prädikate genannt.)
Wenn P und Q Ausdrücke sind, dann auch
¬ (P)
P∧Q
P∨Q
P→Q
(P und Q sind Platzhaltervariable, die für Aussagen
stehen.)
Ist P ein Ausdruck und X eine Variable, dann sind
auch
∀X (P)
• Klammern sollten immer gesetzt werden, wenn der
Ausdruck sonst unklar ist
• Klammern können weggelassen werden, wenn der
Ausdruck eindeutig ist, z.B.
¬ (∀X (P)) ≡ ¬ ∀X (P)
∀X (p(x)) ≡ ∀X p(x)
¬ (p(x)) ≡ ¬ p(x)
∃ X (P)
Ausdrücke.
Es gibt keine weiteren Ausdrücke.
Einführung in die Logik: Prädikatenlogik 9
Einführung in die Logik: Prädikatenlogik 10
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Beispiel: Peano Arithmetik
Baumstruktur
• Theoriezeichen
• Terme haben eine Baumstruktur, z.B.
Konstante:
+(X, s(0))
0
+
Funktionszeichen:
s/1
(= Nachfolgerfunktion)
+/2
(= Addition)
*/2
(= Multiplikation)
X
s
0
Relationszeichen:
=/2
(= Gleichheitsrelation)
• Formeln haben eine Baumstruktur, z.B.
∃X (mensch(X) ∧ sterblich(X))
• Beispiele
Terme:
0
s(0)
∃X
s(s(0))
+(X, s(0))
(Präfixnotation)
≡ X + s(0)
(Infixnotation)
*(s(s(0)), X)
(Präfixnotation)
≡ s(s(0)) * X
(Infixnotation)
∧
mensch(X)
sterblich(X)
Ausdrücke:
=(X + s(Y), s(X + Y))
(Präfixnotation)
≡ X + s(Y) = s(X + Y)
(Infixnotation)
Einführung in die Logik: Prädikatenlogik 11
Einführung in die Logik: Prädikatenlogik 12
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Substitutionen
Normalformen
• Substitutionen
• prädikatenlogische Ausdrücke können in äquivalente
Ausdrücke umgeformt werden
Ersetzen einer Variablen in einem Ausdruck durch
einen Term.
• Beispiel
Seien X eine Variable, T ein Term und P ein
Ausdruck.
∀X (mensch(X) → sterblich(X))
(P){X/T} ist der Ausdruck, den man erhält, wenn
man jedes freie Auftreten von X in P durch T ersetzt.
∀X (¬ mensch(X) ∨ sterblich(X))
(P){X/T} wird Instanz von P genannt.
≡
≡
∀X (¬ (mensch(X) ∧ ¬ sterblich(X)))
• Beispiele
(∀X (gerade(X)) ∨ null(X)) {X/0}
≡
≡ ∀X (gerade(X)) ∨ null(0)
¬ ∃ X (mensch(X) ∧ ¬ sterblich(X)))
(vater(X)) {X/vater(anton)}
• gesucht: Normalformen für prädikatenlogische Ausdrücke
≡ vater(vater(anton))
Einführung in die Logik: Prädikatenlogik 14
Einführung in die Logik: Prädikatenlogik 13
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Normalformen: Pränexform
Anwendung: Analyse natürlichsprachlicher Sätze
• Pränexform
• natürlichsprachliche Sätze können auch in Prädikatenlogik übersetzt werden
Ein prädikatenlogischer Ausdruck ist in Pränexform,
wenn er die Form
Q1X1 (Q2X2 .... (QnXn (A) ...)
Jeder im Raum spricht Französisch oder Deutsch.
hat, wobei Qi Quantoren sind, Xi Variable und A
keine Quantoren enthält.
• Beispiel
¬ ∀X (p(X,Y)) ∧ q(U) ∧ ¬ (∀Z (r(Z)) ∨ s(W))
≡
• Beispiel 1
Umformulierung in halbformale Darstellung
Für alle X gilt, wenn X eine Person im Raum ist, dann
spricht X Französisch oder spricht X Deutsch.
[Regel: ¬ ∀X (p(X)) ≡ ∃X (¬ p(X))]
[Regel: ¬ (P ∧ Q) ≡ (¬ P ∨ ¬ Q)]
Einführung von Prädikaten
∃X (¬ p(X,Y)) ∧ q(U) ∧ ¬ ∀Z (r(Z)) ∧ ¬ s(W)
r/1
"ist eine Person im Raum"
≡
f/1
"spricht Französisch"
d/1
"spricht Deutsch"
[Regel: ¬ (∀X (p(X))) ≡ ∃X (¬ p(X))]
∃X (¬ p(X,Y)) ∧ q(U) ∧ ∃Z (¬ r(Z)) ∧ ¬ s(W)
≡
[Regel: (∃X P) ∧ Q ≡ ∃X (P ∧ Q)]
[Regel: Assoziativität von ∧]
∃X ∃Z (¬ p(X,Y) ∧ q(U) ∧ ¬ r(Z) ∧ ¬ s(W))
prädikatenlogische Formel
∀X (r(X) → (f(X) ∨ d(X)))
• Zu jeder prädikatenlogischen Formel gibt es
(mindestens) eine logisch äquivalente Pränexform.
Einführung in die Logik: Prädikatenlogik 15
Einführung in die Logik: Prädikatenlogik 16
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Anwendung: Analyse natürlichsprachlicher Sätze
Semantik der Prädikatenlogik
• Beispiel 2
• Wann sind Ausdrücke wie
Einige Personen sagen einige Zeit die Wahrheit, andere
lügen nie.
Umformulierung
liebt(anton, maria)
X>2
wahr?
Es gibt eine Person P1 und es gibt einen Zeitpunkt T1, an
dem P1 die Wahrheit sagt. Es gibt eine Person P2, die
verschieden von P1 ist und zu allen Zeitpunkten T2 nicht
lügt.
Einführung von Prädikaten
p/1
"ist eine Person "
z/1
"ist ein Zeitpunkt"
w/2
• Ausdrücke erhalten ihren Wahrheitswert durch eine
Interpretation I und eine Variablenabbildung
(Variablenzuordnung) V in einem Wertebereich
(Diskursbereich) D
• Interpretation I
Konstante c
I(c) ∈ D
"sagt die Wahrheit zu einem Zeitpunkt"
Funktionszeichen f mit Arität n
I(f): Dn → D
l/2
"lügt zu einem Zeitpunkt"
Relationszeichen r mit Arität n
I(r) ⊆ Dn
v/2
"sind verschieden"
prädikatenlogische Formel
∃P1 (∃T1 (p(P1) ∧ z(T1) ∧ w(P1,T1))
∧
∃P2 (p(P2) ∧ v(P1,P2) ∧ ∀T2 (z(T2) → ¬ l(P2,T2))))
Die Information, dass sich w/2 und l/2 gegenseitig
ausschliessen, ist nicht explizit bekannt, und kann
deshalb nicht zur Vereinfachung verwendet werden.
• Variablenbelegung V
V(X) ∈ D
Variable X
• Abbildung eines Terms t
Konstante c
I(t) = I(c) ∈ D
Variable X
I(t) = V(X) ∈ D
f(t1, ..., tn)
I(t) = I(f)(I(t1), ..., I(tn)) ∈ D
Einführung in die Logik: Prädikatenlogik 18
Einführung in die Logik: Prädikatenlogik 17
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Semantik der Prädikatenlogik
Semantik der Prädikatenlogik
• Beispiel
• Wahrheitswerte prädikatenlogischer Ausdrücke
Term p(X, q(a))
D sei die Menge der Peano Zahlen mit den
Funktionen s/1 und +/2
In der Interpretation I und der Variablenbelegung V
kann jedem prädikatenlogischen Ausdruck P ein
Wahrheitswert I(P) ∈ {W, F} zugeordnet werden.
• atomare Ausdrücke
Ausdruck ist r(t1 , ..., tn) mit dem Relationszeichen
r/n und den Termen t1, ..., tn. I(r(t1 , ..., tn)) = W
genau dann, wenn Tupel <I(t1), ..., I(tn)> ∈ I(r)
Wir wählen
I(a) = s(0)
I(p/2) = +/2
I(⊥) = F
I(q/1) = s/1
• komplexe Ausdrücke
V(X) = s(s(s(0)))
I(P ∧ Q) = I(P) ∧ I(Q)
I(P ∨ Q) = I(P) ∨ I(Q)
Damit gilt
I(p(X, q(a))) = +(s(s(s(0))), s(s(0))) = s(s(s(s(s(0))))) ∈ D
I(P →Q) = I(P) →I(Q)
I(¬(P)) = ¬I(P)
I(∀X (P)) = W genau dann, wenn I(P) = W und das
auch für alle anderen Variablenbelegung gilt, die
man erhält, wenn man V an der Stelle X beliebig
abändert.
I(∃X (P)) = W genau dann, wenn I(P) = W oder das
für mindestens eine andere Variablenbelegung gilt,
die man erhält, wenn man V an der Stelle X beliebig
abändert.
Einführung in die Logik: Prädikatenlogik 19
Einführung in die Logik: Prädikatenlogik 20
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Semantik der Prädikatenlogik
Modelle
• Beispiel
• Modelle
Ausdruck even(p(X, q(a)))
D sei ein Wertebereich, I eine Interpretation
D sei die Menge der Peano Zahlen mit den
Funktionen s/1 und +/2
Ein Ausdruck P wird in der Interpretation I wahr
genannt und I heisst ein Modell dieses Ausdrucks,
wenn P für alle Variablenbelegungen wahr ist.
Ist ein geschlossener Ausdruck für eine Variablenbelegung wahr, dann gilt das für alle Variablenbelegungen.
Wir wählen
I(a) = s(0)
I(p/2) = +/2
• Es kann mehr als ein Modell geben.
I(q/1) = s/1
• Eine Interpretation I, die eine Menge von Ausdrücken
M für alle Variablenzuordnungen wahr macht, heisst
ein Modell von M.
V(X) = s(s(s(0)))
I(even) = {0, s(s(0)), s(s(s(s(0)))), ...} ⊆ D
p(X, q(a)) --> +(s(s(s(0))), s(s(0))) = s(s(s(s(s(0))))) ∈ D
• Menge von prädikatenlogischen Ausdrücken heisst
erfüllbar, wenn sie mindestens ein Modell hat
widerlegbar, wenn es mindestens eine Interpretation
gibt, die kein Modell ist
Damit gilt
I(even(p(X, q(a)))) = F
denn s(s(s(s(s(0))))) ∉ I(even)
tautologisch oder gültig, wenn jede Interpretation ein
Modell ist
inkonsistent, wenn sie kein Modell hat
Einführung in die Logik: Prädikatenlogik 22
Einführung in die Logik: Prädikatenlogik 21
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Modelle: Beispiel
Folgerungsrelation
• gegeben sei die Menge von Ausdrücken
• Folgerungsrelation, logische Konsequenz
{p(a), ∀X (p(X) →q(X))}
M und N sind Mengen prädikatenlogischer
Ausdrücke
• Modell 1
I1(a) = Sokrates
I1(p) = menschlich: {Sokrates, Platon, Meier, ...}
I1(q) = sterblich: {Sokrates, Platon, Meier, ...}
• Modell 2
Es gilt die logische Konsequenz M |= N, wenn jedes
Modell der Menge M auch ein Modell der Menge N
ist, d.h.
• Beispiel
{p(a), ∀X (p(X) →q(X))} |= q(a)
I2(a) = 8
wenn jedes Modell der linken Seite auch Modell der
rechten Seite ist
I2(p) = durch_4_teilbar: {0, 4, 8, ...}
Problem: es gibt unendlich viele Modelle
I2(q) = gerade: {0, 2, 4, ...}
• es gibt unendlich viele Modelle
• man interessiert sich jedoch meistens nur für das
i n t e n d i e r t e Modell und wählt die Namen von
Konstanten, Funktionen und Prädikaten entsprechend
• Lösung durch Beweis, z.B. mit Modus Ponens
Wenn A gilt, dann gilt B.
A ist wahr.
---------------------------B ist wahr.
{menschlich(sokrates), ∀X (menschlich(X) →sterblich(X))}
• Wahl der Namen erhöht nur die Lesbarkeit; Namen
sind jedoch beliebig; es gibt nach wie vor unendlich
viele Modelle
• Schluss: logische Aussagen legen den Diskursbereich
nicht eindeutig fest
Einführung in die Logik: Prädikatenlogik 23
Einführung in die Logik: Prädikatenlogik 24
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Formale Grundlagen der Informatik
Gliederung
Mengen
• Mengen und –operationen
• Definition (Naive Mengenlehre)
Knorr/Fuchs SS 2000
„Eine Menge ist die Zusammenfassung von Elementen unserer
Anschauung zu einem wohldefinierten Ganzen.“ (Georg
Cantor)
• Relationen
• Funktionen
• Grundprinzipien
• Kardinalität von Mengen
Axiom der Extensionalität: Zwei Mengen sind genau dann
gleich, wenn sie die gleichen Elemente enthalten.
A = B O ( [x : x § A O x § B )
Beispiel: { 1 , 2 , 3 } = { n | n § Á ‚ n < 4 }
Axiom der Komprehension: Für jede Eigenschaft können wir
eine Menge bilden, die genau die Elemente enthält, die diese
Eigenschaft haben.
• Notation
1. Aufzählung aller Elemente: { 1 , { 2 } , { 3 , 4 } , { 5 } }
2. Beschreibung der Eigenschaften der Elemente:
{ x | x mod 2 = 0 }
Informell wird auch geschrieben: { 2, 4, 6, 8, … }
Mengen, Relationen, Funktionen 1
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Mengen, Relationen, Funktionen 2
Formale Grundlagen der Informatik
Eigenschaften
Prominente Mengen
• Mengenzugehörigkeit
• Á = Menge der natürlichen Zahlen
Die Mengenzugehörigkeit eines Elements zu einer Menge
wird durch das Zeichen § ausgedrückt.
[x : ( x § { a1, … an } O x = a1 ƒ … ƒ x = an )
[x : ( x § { y | P(y) } O P(x) )
Knorr/Fuchs SS 2000
Á = { 1 , 2 , 3 ,…}
• Í = Menge der ganzen Zahlen (eng. integers)
Í = { 0 , 1 , -1 , 2 , -2 , 3 , -3 ,…}
• Ä = Menge der rationalen Zahlen
• Teilmengen
Die Menge T heisst eine (unechte) Teilmenge der Menge A,
wenn jedes Element, das in der Teilmenge T liegt, auch in der
Menge A liegt:
T 5 A O ( [x : x § T L x § A )
Ä = { a / b |a § Í ‚ b § Á }
• Å = Menge der reellen Zahlen
• ¶ = Menge der komplexen Zahlen
Die Menge T heisst eine echte Teilmenge der Menge A, wenn
T eine Teilmenge von A ist, aber nicht gleich A ist:
T = A O ( [x : x § T L x § A ) ‚ T ¬ A
• Obermenge
Falls A 5 B schreibt man auch B 6 A. B ist dann eine
Obermenge von A. Die echte Obermenge wird analog
definiert.
Mengen, Relationen, Funktionen 3
Mengen, Relationen, Funktionen 4
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Formale Grundlagen der Informatik
Spezielle Mengen (1)
Spezielle Mengen (2)
• Durchschnittsmenge
• Potenzmenge
Der Durchschnitt zweier Mengen A und B ist die Menge aller
Elemente, die sowohl in A als auch in B enthalten sind.
Knorr/Fuchs SS 2000
Sei A eine Menge. Die Potenzmenge einer beliebigen Menge A
ist die Menge s(A) aller Teilmengen von A.
A€B={x|x§A‚x§B}
s(A) = { U | U 5 A }
Beispiel: s( { 1 , 2 } ) = { ^ , { 1 } , { 2 } , { 1 , 2 } }
• Vereinigungsmenge
Die Vereinigung zweier Mengen A und B ist die Menge aller
Elemente, die in A und/oder B enthalten sind.
A~B={x|x§Aƒx§B}
• Leere Menge
• Differenzmenge
Seien A und B beliebige Mengen. Die Differenz A – B,
gesprochen A minus B, ist die Menge aller Elemente, die in A
aber nicht in B liegen.
A-B={x|x§A‚xèB}
Die leere Menge ist die Menge, die kein Element enthält. Sie
wird ^ oder {} geschrieben:
^ = { x | x ≠ x } oder[x : x è ^
• Komplementärmenge
Ist eine Grundmenge G und eine Menge A mit A 5 G gegeben,
so ist die Komplementärmenge Ac definiert durch:
Ac = { x | x è A ‚ x § G }
Beispiel: { 1 , 2 , 3 } - { 3 , 4 } = { 1 , 2 }
• Symmetrische Differenzmenge
Die symmetrische Differenz zweier Mengen A und B ist die
Menge A + B aller Elemente, die genau in einer der beiden
Mengen liegen.
A+B=(A~B)–(A€B)
Beispiel: { 1 , 2 , 3 } + { 3 , 4 } = { 1 , 2 , 4 }
Mengen, Relationen, Funktionen 5
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Mengen, Relationen, Funktionen 6
Formale Grundlagen der Informatik
Weitere Eigenschaften
„Mengen-Gesetze“
• Kardinalität einer Menge
Idempotenz
Kommutativität
Assoziativität
Sei A eine Menge mit endlich vielen Elementen. Die Anzahl
| A | nennt man die Mächtigkeit oder Kardinalität der
Menge.
Zwei endliche Mengen haben dieselbe Kardinalität, wenn
die Anzahl Elemente in beiden Mengen gleich ist.
Die Kardinalität von unendlichen Mengen wird später
definiert.
• Disjunktheit
Zwei Mengen A und B heissen disjunkt, wenn ihr
Durchschnitt leer ist.
A€B=^
• Paarweise Disjunktheit
Eine Menge X von Mengen heisst paarweise disjunkt, wenn der
Durchschnitt von jedem Paar von Mengen leer ist.
[A, B § X : A ≠ B L A € B = ^
Mengen, Relationen, Funktionen 7
Distributivität
Absorption
Reflexivität
Kontraktion
Monotonie
Knorr/Fuchs SS 2000
A€A=A
A€B=B€A
(A € B) € C =
A € (B € C)
A € (B ~ C) =
(A € B) ~ (A € C)
A € (A ~ B) = A
A5A
(A € B) 5 A
A5BL
A€C5B€C
A~A=A
A~B=B~A
(A ~ B) ~ C =
A ~ (B ~ C)
A ~ (B € C) =
(A ~ B) € (A ~ C)
A ~ (A € B) = A
A6A
(A ~ B) 6 A
A6BL
A~C6B~C
Existiert eine Grundmenge G mit A,B 5 G, so gelten ferner:
Neutrale Elemente
Invariable Elemente
Extremalität
De Morgansche
Regeln
Komplement
A€G=A
A€^=^
^5A
(A€ B)c = Ac ~ Bc
A~^=A
A~G=G
G6A
(A~ B)c = Ac€ Bc
Ac ~ A = G
A c€ A = ^
Mengen, Relationen, Funktionen 8
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Beweise in der Mengenlehre
• Venn Diagramme: graphische Veranschaulichung
• Direkter Beweis durch Anwendung von Definitionen,
Axiomen und Gesetzen.
• Indirekter Beweis durch Negation der Aussage und
Angabe eines Gegenbeispiels.
• Tableau Methode: Tabelle von Fallunterscheidungen
• Transfer Methode: Eine mengentheoretische Formel wird
in eine äquivalente aussagenlogische Formel
umgewandelt, die dann bewiesen wird. Diese Methode
beruht auf der Verwandtschaft zwischen Aussagenlogik
und Mengenlehre, die damit zu tun hat, dass beide
Systeme boolesche Algebren sind.
Mengenlehre
~
Aussagenlogik
ƒ
5
L
€
‚
6
K
Formale Grundlagen der Informatik
Direkter Beweis: ^ ist Teilmenge jeder
Menge
• Gegeben:
1. T 5 A O [x : x § T L x § A
2. [x : x è ^
• Zu beweisen:
^5A
• Beweis:
^ 5 A O [x : x § ^ L x § A
(1)
^ 5 A O [x : ⊥ L x § A
(2)
(1) Definition von 5, (2) Axiom für ^
[x : ⊥ L x § A ist eine Tautologie.
Mengen, Relationen, Funktionen 9
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Knorr/Fuchs SS 2000
Indirekter Beweis: ^ ist nicht echte
Teilmenge jeder Menge
• Gegeben:
Mengen, Relationen, Funktionen 10
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Direkter Beweis:
(A~B)–(A€B)=(A–B)~(B–A)
• Gegeben: Die Definitionen von €, ~, –, è, §
1. T ⊂ A O ( [x : x § T L x § A ) ‚ T ¬ A
2. [x : x è ^
• Zu beweisen:
¬(^⊂A)
• Beweis:
Annahme des Gegenteils: ^ ⊂ A
• Beweis:
{x|xUAƒxUB}–{x|xUA‚xUB}=
(A–B)~(B–A)
(1)
{x|(xUAƒxUB)‚¬(xUA‚xUB)}=
(A–B)~(B–A)
(2)
{x|(xUAƒxUB)‚(xèAƒxèB)}=
(A–B)~(B–A)
(3)
Gegenbeispiel: A = ^
{x|(xUA‚xèA)ƒ(xUA‚xèB)ƒ
Einsetzen in der Definition:
(xUB‚xèA)ƒ(xUB‚xèB)}=
(A–B)~(B–A)
(4)
{x|(xUA‚xèB)ƒ(xUB‚xèA)}=
(A–B)~(B–A)
(5)
^ ⊂ ^ O ( [x : x § ^ L x § ^ ) ‚ ^ ¬ ^
( [x : x § ^ L x § ^ ) ‚ ^ ¬ ^ ist ein Widerspruch.
(1) Definition € und ~, (2) Definition –, (3) Definition è und U, de
Morgan, (4) Distributivität, (5) Vereinfachung, Definitionen € und
~, –.
Mengen, Relationen, Funktionen 11
Mengen, Relationen, Funktionen 12
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Formale Grundlagen der Informatik
Geordnete Paare und n-Tupel
Relationen
• Geordnete Paare
• Kartesisches Produkt
( a , b ) heisst das geordnete Paar der Elemente a und b.
• Gleichheit von Paaren
Die Paare ( a1 , b1 ) und ( a2 , b2 ) sind genau dann gleich, wenn
a1 = a2 ‚ b1 = b2.
Knorr/Fuchs SS 2000
Das kartesische Produkt der beiden Mengen A und B ist die
Menge A % B aller geordneten Paare (a , b) mit a § A, b § B.
A%B={(a,b)|a§A‚b§B}
Man schreibt A2 = A % A, A3 = A % A % A, usw.
• Binäre Relationen
• n-Tupel
( a1 , …, an ) heisst das geordnete n-Tupel der Elemente a1 bis an.
• Gleichheit von n-Tupel
Die n-Tupel ( a1 , …, an ) und ( b1 , … , bn ) sind genau dann
gleich, wenn a1 = b1 ‚ … ‚ an = bn.
Sei A eine Menge. Eine binäre Relation R auf A ist eine
Teilmenge des kartesischen Produkts der Menge A mit sich
selbst.
R5A%A
Seien A1 und A2 Mengen. Eine binäre Relation R auf A1 % A2
ist eine Teilmenge des kartesischen Produkts A1 % A2.
R 5 A1 % A2
• n-stellige Relationen
Seien A1, A2, …, An Mengen. Eine n-stellige Relation R auf
A1, A2, …, An ist eine Teilmenge des kartesischen Produkts der
Mengen A1, A2, …, An.
R 5 A1 % A2 % … % An
Mengen, Relationen, Funktionen 13
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Die 16 binären Relationen auf A = {1,2}
Mengen, Relationen, Funktionen 14
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Spezielle Relationen
R1
^
R9
{(1,2),(2,1)}
R2
{(1,1)}
R10
{(1,2),(2,2)}
R3
{(1,2)}
R11
{(2,1),(2,2)}
R4
{(2,1)}
R12
{(1,1),(1,2),(2,1)}
R5
{(2,2)}
R13
{(1,1),(1,2),(2,2)}
R6
{(1,1),(1,2)}
R14
{(1,1),(2,1),(2,2)}
R7
{(1,1),(2,1)}
R15
{(1,2),(2,1),(2,2)}
[ a § A, c § C :
R8
{(1,1),(2,2)}
R16
{(1,1),(1,2),(2,1),(2,2)}
( a , c ) § R1 1 R2 O \ b § B : ( a , b ) § R1 ‚ ( b , c ) § R2
Mengen, Relationen, Funktionen 15
• Umkehrrelation
Sei R 5 A % B eine Relation. Die Umkehrrelation zur
Relation R ist die Relation R-1 5 B % A mit
R-1 = { ( b , a ) | ( a , b ) § R }
• Komposition von Relationen
Seien R1 5 A % B und R2 5 B % C Relationen. Die
Komposition R1 1 R2 5 A % C von R1 und R2 wird definiert
durch
Mengen, Relationen, Funktionen 16
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Eigenschaften von Relationen
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Beispiel: Ein/Ausgabe Relation von
Programmen
Eine Relation R 5 A % B ist
• Linkstotal: Jedes Element a § A tritt in mindestens einem
Paar ( a , b ) § R links auf.
[a § A : \ b § B : ( a , b ) § R
• Rechtstotal: Jedes Element b § B tritt in mindestens einem
Paar ( a , b ) § R rechts auf.
[b§B:\a§A:(a,b)§R
• Linkseindeutig: Für ein b § B zu dem es ein a § A gibt mit
( a , b ) § R ist dieses linke a eindeutig.
[a1, a2 § A : ( \ b § B : ( a1 , b ) § R ‚ ( a2 , b ) § R ) L
INTEGER A
READ (A)
WHILE (A <> 0) DO A := A - 2 OD
WRITE (A)
• Datentyp INTEGER: beliebig grosse ganze Zahlen
• Ein/Ausgabe Relation: R 5 Í % Í mit ( x , y ) § R genau
dann, wenn das Programm auf die Eingabe von x mit der
Ausgabe von y reagiert.
Ist das Programm linkstotal, rechtstotal, linkseindeutig,
rechtseindeutig?
a1 = a2
• Rechtseindeutig: Für ein a § A zu dem es ein b § B gibt
mit ( a , b ) § R ist dieses rechte b eindeutig.
[b1, b2 § B : ( \ a § A : ( a , b1 ) § R ‚ ( a , b2 ) § R ) L
b1 = b2
Mengen, Relationen, Funktionen 17
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Mengen, Relationen, Funktionen 18
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Eigenschaften von binären Relationen
Äquivalenzrelationen
Eine binäre Relation R 5 X % X ist
• Eine Äquivalenzrelation auf einer Menge M ist eine
binäre Relation ;5 M % M die reflexiv, symmetrisch und
transitiv ist.
• Reflexiv: Jedes Element x steht zu sich selber in Relation.
[x § X : ( x , x ) § R
• Irreflexiv: Kein Element steht zu sich selber in Relation.
[x § X : ( x , x ) è R
• Symmetrisch: Zu jedem Paar in der Relation ist auch das
gespiegelte Paar in der Relation.
[x, y § X : ( x , y ) § R L ( y , x ) § R
• Antisymmetrisch (identitiv): Zu jedem Paar in der
Relation ist das gespiegelte Paar nur dann in der Relation,
wenn die Elemente gleich sind.
[x, y § X : ( x , y ) § R ‚ ( y , x ) § R L x = y
• Asymmetrisch: Zu jedem Paar in der Relation ist das
gespiegelte Paar nicht in der Relation.
[x, y § X : ( x , y ) § R L ( y , x ) è R
• Transitiv:
[x, y, z § X : ( x , y ) § R ‚ ( y , z ) § R L ( x , z ) § R
Mengen, Relationen, Funktionen 19
• Partition: Sei M eine Menge. Eine Partition von M ist eine
Menge P von Teilmengen von M, also P 5 s (M), für die
die folgenden Eigenschaften gelten:
1. Keine Teilmenge der Partition ist leer.
2. Die Teilmengen der Partition sind paarweise disjunkt.
3. Die Vereinigung aller Teilmengen der Partition ist die
Menge M.
Eine Teilmenge einer Partition heisst Zelle.
• Äquivalenzklassen: Sei ; 5 M % M eine
Äquivalenzrelation. Zu jedem Element m § M heisst die
Menge
(m); = { x § M | x ; m }
die von m erzeugte Äquivalenzklasse.
• Für jede Äquivalenzrelation ; auf einer Menge X bildet
die Menge der Äquivalenzklassen von ; eine Partition P;
von X.
Mengen, Relationen, Funktionen 20
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Beispiele von Äquivalenzrelationen
Hüllen
1. Sei X die Menge aller syntaktisch korrekten Pascal
Programme, die einen Eingabewert lesen und entweder in
eine Endlosschleife gehen oder einen Wert ausgeben.
Welche der folgenden Relationen sind Äquivalenzrelationen?
Sei M eine Menge und R 5 M % M eine Relation.
• ;1 5 X % X mit P ;1 Q genau dann, wenn P und Q für
dieselben Eingabewerte terminieren.
• ;2 5 X % X mit P ;2 Q genau dann, wenn P und Q für
jene Eingabewerte, für die beide Programme
terminieren, dieselben Ausgabewerte ergeben.
2. Geben sei die Menge aller Menschen. Welche der
folgenden Relationen sind Äquivalenzrelationen?
1. Die transitive Hülle von R ist die Relation
<R>t 5 M % M definiert durch:
( x , y ) § <R>t O ( x , y ) § R ƒ \ n § Á :
\ t1, t2, …, tn : ( x , t1 ), ( t1 , t2 ), …, ( tn-1 , tn ), ( tn , y ) § R
2. Die symmetrische Hülle von R ist die Relation
<R>s 5 M % M definiert durch:
( x , y ) § <R>s O ( x , y ) § R ƒ ( y , x ) § R
3. Die reflexiv-transitive Hülle von R ist die Relation
<R>rt 5 M % M definiert durch:
• x steht zu y in Relation, falls x und y die gleiche Sprache
sprechen.
• x steht zu y in Relation, falls x älter oder genauso alt wie
y ist.
• x steht zu y in Relation, falls x und y sich gegenseitig
kennen.
( x , y ) § <R>rt O ( x , y ) § <R>t ƒ x = y
4. Die reflexiv-symmetrisch-transitive Hülle von R ist die
Relation <R>rst 5 M % M definiert durch:
<R>rst = <<R> s > rt
<R>rst ist die „kleinste“ Erweiterung von R zu einer
Äquivalenzrelation.
Mengen, Relationen, Funktionen 21
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Mengen, Relationen, Funktionen 22
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Funktionen
Spezielle Funktionen
• Eine Funktion f ist eine binäre Relation f 5 A % B, die
linkstotal und rechtseindeutig ist: Zu jedem a § A gibt es
genau ein b § B mit (a , b) § f.
Bei Funktionen schreibt man f : A D B anstatt f 5 A % B
und f(a) = b anstatt (a , b) § f.
• Identität
• Terminologie
1. A heisst der Definitionsbereich von f.
Die Funktion idA : A D A, die durch idA(a) = a definiert ist,
heisst die Identität.
• Konstante Funktion
Eine Funktion c : A D B, die für alle Werte des Arguments
denselben Wert hat, heisst konstant.
• Umkehrfunktion
2. B heisst der Wertebereich von f.
3. Die Menge f(A) = { f(a) | a § A } heisst das Bild von f.
Eine Funktion g : B D A heisst eine Umkehrfunktion einer
Funktion f : A D B, wenn
g 1 f : A D A gleich idA ist, und
• Eigenschaften von Funktionen
1. Eine Funktion ist surjektiv, wenn sie rechtstotal ist.
2. Eine Funktion ist injektiv, wenn sie linkseindeutig ist.
3. Eine Funktionen ist bijektiv, wenn sie surjektiv und
injektiv ist.
• Sind f : A D B und g : B D C Funktionen, so bezeichnet
g 1 f : A D C die Komposition von f und g, die durch
(g 1 f)(a) = g(f(a)) definiert ist.
Mengen, Relationen, Funktionen 23
f 1 g : B D B gleich idB ist.
Eine Funktion hat genau dann eine Umkehrfunktion, wenn sie
bijektiv ist. Diese Umkehrfunktion ist eindeutig.
• Charakteristische Funktion
Gegen sei eine Menge A und ein Element a§ A. Die Funktion
›a: A D {0,1}
ist definiert als ›a(a) = 1 und ›a(b) = 0 für b ¬ a und heisst die
charakterische Funktion von a.
Mengen, Relationen, Funktionen 24
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Funktionenräume
Funktionen mit mehreren Variablen
Ein Funktionenraum ist eine Menge von Funktionen.
Eine Funktion kann von mehreren Variablen abhängen, und
der Wertebereich kann mehrdimensional sein. Formal:
Der Funktionenraum AB ist definiert als
f: A1 % … % An D B1 % … % Bm .
AB = {f | f : B D A }.
Man schreibt dann für die Funktionswerte
Er beinhaltet alle Funktionen, die die Menge B auf die
Menge A abbilden.
f(a1 , … , an ) = ( b1 , … , bm)
= ( f1 (a1 , … , an ) , … , fm (a1 , … , an ) ) .
Wie viele Elemente hat AB ?
Die Funktionen f1 ,…, fm heissen Koordinatenfunktionen.
Beispiele:
• Additionsfunktion: +: Í % Í D Í mit +(a,b)= a + b .
• Multiplikationsfunktion:
k:
Í % Í D Í mit k(a,b)= a • b .
• „Spiralfunktion“:
sp: Å D Å % Å % Å mit sp(t)=( sin(t) , cos(t) , t ).
Mengen, Relationen, Funktionen 25
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Mengen, Relationen, Funktionen 26
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Kardinalität von Mengen
Kardinalität von Mengen (2)
• Anzahl von Elementen (informell)
• Formaler:
Sei A eine Menge mit endlich vielen Elementen. Die Anzahl
| A | nennt man die Mächtigkeit oder Kardinalität der Menge.
• Zwei endliche Mengen haben dieselbe Kardinalität, wenn
die Anzahl der Elemente in beiden Mengen gleich ist.
Nimmt man je ein Element aus beiden Mengen heraus,
bleiben am Ende zwei leere Mengen.
• Cantor hat diese Idee für unendliche Mengen weiterentwickelt: Zwei unendliche Mengen haben dieselbe
Kardinalität, wenn sich die Elemente beider Mengen zu
Pärchen zusammenfassen lassen:
1

2
2

4
3

6
4

8
5

10
6

12
7

14
8

16
9

18
10
 …
20
| X | = | Y | O es gibt eine Bijektion zwischen X und Y
| X | 7 | Y | O es gibt eine injektive Funktion von X nach Y
• Die Relation ; definiert durch
X ; Y O es gibt eine Bijektion zwischen X und Y
ist eine Äquivalenzrelation.
• Wir definieren nun | X | als die Äquivalenzklasse ( X );
• Die Kardinalität von Á ist c0 (Aleph null). c0 ist die
kleinste unendliche Kardinalzahl. Mengen mit der
Kardinalzahl c0 werden abzählbar unendlich genannt.
• Eine weitere Kardinalzahl ist c. Dies ist die Kardinalität
von s(Á) und Å. Mengen mit der Kardinalzahl c werden
überabzählbar genannt.
• Cantors Diagonalisierungsargument beweist c <> c0.
Mengen, Relationen, Funktionen 27
Mengen, Relationen, Funktionen 28
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Cantors Diagonalisierungsargument für
|s
s(Á
Á)| > |Á
Á|
Russelsches Paradox in der naiven
Mengenlehre
Beweis durch Widerspruch. Wir nehmen an, das
|s(Á)| 7 |Á|. D.h., man kann jeder Teilmenge von Á eine
Zahl aus Á so zuordnen, dass jede Zahl aus Á höchstens
einmal benutzt wird.
• Axiom der Komprehension: Für jede Eigenschaft können
wir eine Menge bilden, die genau die Elemente enthält,
die diese Eigenschaft haben.
Uns interessieren die Paare, bei denen die Teilmenge von Á
die Zahl aus Á nicht enthält, mit der sie gepaart wird. Beim
Paar (1 , { 2 }) z.B. enthält die Teilmenge die Zahl nicht, beim
Paar (2 , { 2 , 3 }) enthält sie sie.
• Der Begriff der Eigenschaft muss eingeschränkt werden,
sonst entsteht ein Widerspruch.
• Beispiel: Man definiere M als die Mengen aller Mengen,
die sich selbst nicht enthalten:
Wir definieren eine Teilmenge M 5 Á so, dass M die Zahlen
enthält, die entweder nicht gepaart sind oder mit einer
Teilmenge von Á gepaart sind, die die Zahl nicht enthalten.
M ist eine Teilmenge von Á. Also muss es ein Paar (z , M)
geben. Ist z ein Element von M?
Frage: Enthält M sich selber?
Ja: Dann ist z gepaart mit einer Menge, die z enthält. Das ist
eine Widerspruch zur Definition von M.
Nein. Wenn M sich selbst nicht enthält, dann muss M sich
selbst enthalten
Nein: Dann ist z gepaart mit einer Menge aus |s(Á)|
(nämlich M), die z nicht enthält. Nach der Definition von M
muss z dann aber ein Element von M sein. Widerspruch.
Wir wissen aber aus der Logik, dass aus einem
Widerspruch alles abgeleitet werden kann.
M={X|XèX}
Ja. Wenn M sich selbst enthält, dann darf M sich selbst
nicht enthalten
Also muss |s(Á)| > |Á| gelten.
Mengen, Relationen, Funktionen 29
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Rechnen mit Kardinalitäten
Für endliche Mengen gilt:
• |A~B|=|A|+|B|–|A€B|
• |A~B~C|=|A|+|B|+|C|
– | A € B |– | A € C |– | B € C | + | A € B € C |
• | A - B | = | A | - | B |, falls A 5 B
• |A%B|=|A|2|B|
Für abzählbar unendliche Mengen gilt:
• c0 + c0 = c0
• c0 2 c 0 = c0
• Was ist mit c0 - c0 ?
Mengen, Relationen, Funktionen 31
Mengen, Relationen, Funktionen 30
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Gliederung
Ordnungsrelationen auf Mengen
• Ordnungsrelationen
• Eine Ordnungsrelation oder kurz Ordnung O auf einer
Menge M ist eine Relation, die reflexiv, antisymmetrisch
und transitiv ist.
• Bäume
Beispiel: M = { 1 , 2 , 3 },
O={(1,1),(2,2),(3,3),(1,2),(1,3)}
• Boolesche Algebren
• Verbände
• Eine Ordnungsrelation O auf einer Menge M ist total,
wenn zusätzlich gilt:
[ x, y § M : ( x , y ) § O ƒ ( y , x ) § O
Beispiel: M = { 1 , 2 }, O = { ( 1 , 1 ) , ( 2 , 2 ) , ( 1 , 2 ) }
• Bekannte Beispiele von Ordnungsrelationen:
1. 5 auf Mengen
2. 7 auf ganze Zahlen.
• (X, 7) ist eine partiell geordnete Menge wenn 7 eine
Ordnungsrelation auf X ist.
Ordnungen 1
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Ordnungen 2
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Beispiel einer Ordnungsrelation
Spezielle Elemente von Ordnungen
Sei X die Menge aller syntaktisch korrekten Pascal
Programme, die einen Eingabewert lesen und entweder in
eine Endlosschleife gehen oder einen Wert ausgeben. Die
Relation š 5 X % X definieren wir als:
Spezielle Elemente von Ordnungen:
1. s § M heisst kleinstes Element. wenn s kleiner als alle
anderen Elemente ist.
[x§M:(s,x)§O
P š Q genau dann, wenn das Programm Q für alle
Eingabewerte terminiert, für die das Programm P auch
terminiert, und in diesem Fall auch dasselbe Ergebnis
ausgibt wie P.
2. s § M heisst grösstes Element, wenn s grösser als alle
anderen Elemente ist.
Ist š eine Ordnungsrelation?
3. s § M heisst minimales Element, wenn es kein Element
gibt, das kleiner als s ist.
[x§M:(x,s)§O
[x§M:(x,s)§OLx=s
4. s § M heisst maximales Element, wenn es kein Element
gibt, das grösser als s ist.
[x§M:(s,x)§OLx=s
Ordnungen 3
Ordnungen 4
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Strikte und reflexive partielle Ordnungen
Weitere spezielle Elemente von Ordnungen
• Eine strikte Ordnungsrelation O auf einer Menge M ist
eine Relation, die asymmetrisch und transitiv ist.
• Seien x und y Elemente einer partiell geordneten Menge
M. Falls es ein Element z aus M gibt, so dass
1. z 7 x
Beispiel: M = { 1 , 2 , 3 },
O = { (2 , 1) , (2 , 3) , (1 , 3) }
2. z 7 y
• Wenn 7 eine partielle Ordnung auf der Menge M ist, dann
ist < definiert durch
3. [ t § M : t 7 x ‚ t 7 y L t 7 z
dann heisst z die grösste untere Schranke (Infimum) von
x und y.
x<yOx7y‚x¬y
z=xRy
eine strikte partielle Ordnung auf M.
• Wenn < eine strikte partielle Ordnung auf der Menge M
ist, dann ist 7 definiert durch
• Seien x und y Elemente einer partiell geordneten Menge
M. Falls es ein Element z aus M gibt, so dass
x7yOx<yƒx=y
1. x 7 z
eine (reflexive) partielle Ordnung auf M.
2. y 7 z
3. [ t § M : x 7 t ‚ y 7 t L z 7 t
dann heisst z die kleinste obere Schranke (Supremum)
von x und y.
z=xSy
Ordnungen 5
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Ordnungen 6
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Bäume als partielle Ordnungen
Endliche, geordnete, binäre Bäume
Ein Baum ist eine partiell geordnete Menge T mit einem
grössten Element, so dass für jedes x § T die Menge
{ y § T | x 7 y } eine endliche, total geordnete Teilmenge
von T ist.
• Binäre Bäume sind solche, bei denen kein Knoten mehr
als zwei Kinder hat.
Das grösste Element heisst Wurzel, die minimalen Elemente
heissen Blätter.
Ordnungen 7
• Geordnete Bäume sind solche, bei denen die Knoten auf
gleicher Ebene ebenfalls geordnet sind.
• Endliche Bäume haben eine endliche Anzahl Knoten.
Ordnungen 8
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Beispiel für einen Baum
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Anwendungen
• Filesystem, allgemeiner Datenspeicherung
• Suchbäume
• Wahrscheinlichkeitsbäume
• Sportturniere mit K.O.-System
• Stammbaum
• Flussdiagramme
Ordnungen 9
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Rekursive Definition von Bäumen
• Ein einziger Knoten x ist ein binärer Baum geordnet durch
x 7 x.
• Wenn T1 und T2 binäre Bäume sind und x ∉ T1 ~ T2 , dann
ist die partielle Ordnung auf { x } ~ T1 ~ T2 , gegeben
durch y 7 x für alle y und y 7 z wenn y 7 z in T1 oder T2 ,
ebenfalls ein binärer Baum.
Ordnungen 10
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Traversierung von endlichen, geordneten,
binären Bäumen
Eine Traversierung eines Baumes ist eine endliche Folge
aller Knoten des Baums, die mit der Wurzel beginnt.
• Inorder
Zuerst den linken Teilbaum traversieren, dann die Wurzel
in die Folge schreiben, und zum Schluss den rechten
Teilbaum traversieren
• Preorder
Zuerst die Wurzel in die Folge schreiben, dann den linken
Teilbaum traversieren und zuletzt den rechten Teilbaum
traversieren.
• Postorder
Zuerst den linken Teilbaum traversieren, dann den
rechten Teilbaum traversieren und zuletzt die Wurzel in
die Folge schreiben.
Ordnungen 11
Ordnungen 12
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Traversierung von endlichen, geordneten
Bäumen: Tiefensuche
Traversierung von endlichen, geordneten
Bäumen: Breitensuche
1. Beginne mit der Wurzel als aktuellen Knoten. Schreibe die
Wurzel in die Traversierung.
1. Beginne mit der Wurzel als einzigem Knoten in einer
Arbeitsliste. Schreibe die Wurzel in die Traversierung.
2. Wähle von den noch nicht in die Traversierung
geschriebenen Kindern des aktuellen Knotens das kleinste
als neuen aktuellen Knoten. Schreibe den neuen aktuellen
Knoten in die Traversierung.
2. Ersetze der Reihe nach jeden Knoten der Arbeitsliste
durch seine Kinder in der durch die Ordnung
vorgegebenen Reihenfolge und schreibe diese gleichzeitig
in die Traversierung.
3. Hat ein aktueller Knoten keine noch nicht in die
Traversierung geschriebenen Kinder, dann wähle seinen
Vater zum aktuellen Knoten.
3. Hat ein Knoten keine Kinder, so verschwindet er aus der
Arbeitsliste.
4. Verfahre gemäss Regel 2 und 3, bis die Arbeitsliste leer ist.
4. Verfahre gemäss 2 und 3, bis alle Knoten des Baums
aktuelle Knoten waren.
Ordnungen 13
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Boolesche Algebren
1. Kommutativität:
xRy=yRx
xSy=ySx
2. Assoziativität:
x R (y R z) = (x R y) R z
x S (y S z) = (x S y) S z
3. Distributivität:
x R (y S z) = (x R y) S (x R z)
x S (y R z) = (x S y) R (x S z)
4. Idempotenz
xRx=xSx=x
– (x S y) = – x R – y
– (x R y) = – x S – y
6. Doppelte Negation
––x=x
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Boolesche Algebren als partielle
Ordnungen
Eine boolesche Algebra besteht aus einer Menge µ mit zwei
ausgezeichneten Elementen  (Nullelement) und ¼, zwei
binären Operationen R und S und einer unären Operation –.
Für x, y, z 0 µ wird vorausgesetzt:
5. De Morgan
Ordnungen 14
• Wir definieren a 7 b, wenn a ‚ b = a ist.
• Dann gilt:
1. 7 ist eine partielle Ordnung auf µ
2. a 7 b genau dann, wenn a S b = b
3. a 7 b genau dann, wenn – b 7 – a
4. Unter der partiellen Ordnung 7 sind a R b bzw. a S b
die grösste untere Schranke bzw. die kleinste obere
Schranke von a und b
7. Invariable Elemente x R Â = Â
xS¼=¼
8. Neutrale Elemente
xR¼=x
xSÂ=x
9. Komplementarität
xR–x=Â
xS–x=¼
10.
 ≠ ¼,  = – ¼
Ordnungen 15
Ordnungen 16
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Beispiele boolescher Algebren 1
Beispiele boolescher Algebren 2
• Aussagenlogik:
Die Menge aller Wahrheitsfunktionen auf einer Menge
p = { p1, p2, … , pn } von aussagelogischen Variablen, mit
S = ƒ, R = ‚, – = ] bildet ebenfalls eine boolesche Algebra.
 ist die Wahrheitsfunktion, die immer b zurückgibt, ¼ die
Wahrheitsfunktion, die immer a zurückgibt.
µ = { a, b } ,  = b, ¼ = a, S = ƒ, R = ‚, – = ]
• Mengenlehre:
Sei X eine nichtleere Menge.
µ = s(X) ,  = ^, ¼ = X, S = ~, R = €, – = c (c steht dabei
für das Komplement)
Für P = { p, q } z.B. gibt es 16 mögliche
Wahrheitsfunktionen:
p
q
Â
p nor q
]p ‚ q
p ‚]q
p ‚q
]p
a
a
b
b
a
b
a
b
b
b
b
b
b
b
b
a
b
b
a
b
b
a
b
b
a
b
b
b
b
b
a
a
p
q
pOq
q
p
p nand q
]p ƒ q
p ƒ ]q
pƒq
¼
a
a
b
b
a
b
a
b
a
b
b
a
a
b
a
b
a
a
b
b
b
a
a
a
a
b
a
a
a
a
b
a
a
a
a
b
a
a
a
a
Ordnungen 17
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
]q p O ]q
b
a
b
a
b
a
a
b
Ordnungen 18
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Beispiele boolescher Algebren 3
Verbände
Die Menger aller Teiler von 105 (genannt T105) bildet mit den
folgenden Vereinbarungen ebenfalls eine boolesche Algebra:
• Gegeben sei eine partielle Ordnung 7 auf einer Menge X.
Falls für beliebige x und y eine grösste untere Schranke
x R y und eine kleinste obere Schranke x S y existiert,
dann ist ( X , 7 ) ein Verband.
µ = T105
Â=1
• Jede boolesche Algebra ist ein Verband, aber nicht jeder
Verband ist eine boolesche Algebra.
¼ = 105
Beispiel:
S =kgV
X = Á \ { 0 } mit
R =ggT
x S y = kleinstes gemeinsames Vielfaches von x und y
x R y = grösster gemeinsamer Faktor von x und y
x 7 y wenn y mod x = 0
–x = 105/x
ist keine boolesche Algebra, weil es kein grösstes Element
gibt.
Ordnungen 19
Ordnungen 20
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Distributive Verbände
• Bei distributiven Verbänden gelten die Distributivgesetze:
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Schranken für beliebige Teilmengen
geordneter Mengen
• Verallgemeinerung der Begriffe grösste untere Schranke
und kleinste obere Schranke.
xR(ySz)=(xRy)S(xRz)
xS(yRz)=(xSy)R(xSz)
• Gegeben seien eine partiell geordnete Menge ( X, 7 ) und
eine Menge A mit A 5 X und A ≠ ∅.
Dann ist x §X die kleinste obere Schranke von A, x = NA,
wenn
1. y § A : y 7 x (d.h. x ist eine obere Schranke)
2. [ t § X : ( [ y § A : y 7 t ) L x 7 t (d.h. x ist kleiner als
alle anderen oberen Schranken)
und z §X die grösste untere Schranke von A, z = MA,
wenn
1. [ y § A : z 7 y
2. [ t § X : ( [ y § A : t 7 y ) L t 7 z
Ordnungen 21
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Ausblick: CPOs
• Eine Teilmenge D einer partiell geordneten Menge ( X, 7 )
ist gerichtet, wenn es für alle x, y § D ein z § D gibt, so
dass x, y 7 z.
• ( X, 7 ) ist eine complete partial order (cpo), wenn
1. X ein kleinstes Element hat
2. Jede gerichtete Teilmenge von X eine kleinste obere
Schranke hat.
• Beispiel: X sei die Menge aller Funktionen von einer
Teilmenge von Á nach Á, und f 7 g wenn
1. dom f 5 dom g
2. für ein beliebiges n § dom f, f(n) = g(n)
• CPOs sind das Grundwerkzeug der denotationellen
Semantik
Ordnungen 23
Ordnungen 22
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Deduktion
Semantische Folgerungsbeziehung
• Menge von Ausdrücken der Aussagenlogik oder der
Prädikatenlogik beschreibt einen bestimmten Sachverhalt, quasi eine "Theorie" des Anwendungsbereiches. Was folgt logisch aus dieser Theorie?
• Wenn in einer bestimmten Situation Aussagen A wahr
sind, sind dann notwendigerweise auch andere
Aussagen T wahr?
• Deduktion: aus wahren Aussagen andere notwendigerweise wahre Aussagen ableiten
• Beispiele
• Folgerung sollte für alle Fälle gelten, in denen A und T
wahr sind
• Aussagenlogik
A und T sind Mengen aussagenlogischer Ausdrücke
Wenn es regnet, dann wird die Strasse nass.
Es regnet.
----------------------------------------------------Die Strasse wird nass.
Vögel können fliegen.
Tweetie ist ein Vogel.
-------------------------Tweetie kann fliegen.
Es gilt die logische Konsequenz A |= T, wenn jede
Zuordnung von Wahrheitswerten, die A wahr macht,
auch T wahr macht.
• Prädikatenlogik
A und T sind Mengen prädikatenlogischer
Ausdrücke
• verallgemeinert zur universellen Schlussregel "modus
ponens"
Es gilt die logische Konsequenz A |= T, wenn jedes
Modell der Menge A auch ein Modell der Menge T
ist.
Wenn A gilt, dann gilt B.
A gilt.
-----------------------------B gilt.
• Wie kann man diese und andere Schlussregeln
formalisieren?
Weitere Logik: Resolution 1
Weitere Logik: Resolution 2
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Syntaktische Folgerungsbeziehung
Zusammenhang zwischen semantischer
und syntaktischer Folgerung
• nach festen syntaktischen Regeln – Deduktionsregeln
oder Inferenzregeln – werden rein mechanisch aus
Aussagen andere Aussagen hergeleitet
• Aussagen T sind aus einer Menge von Aussagen A
herleitbar, wenn man T nach endlichen vielen
Anwendungen der Regeln auf A erhält
A |− T
Ausgangsaussagen A werden Axiome genannt,
hergeleitete Aussagen T Theoreme
Ableitung wird auch Beweis genannt
• Beweis ist endliche Folge von Aussagen
P1, P2, ..., Pn
• Deduktionssystem muss korrekt sein, d.h. jedes
hergeleitete Theorem muss logische Konsequenz der
Axiome sein
M |− P → M |= P
• Deduktionssystem sollte vollständig sein, d.h. jede
logische Konsequenz der Axiome sollte auch
hergeleitet werden können
M |= P → M |− P
• wenn ein Deduktionssystem korrekt und vollständig
ist, dann kann man die logische Konsequenz durch
einen Beweis ersetzen
wobei jedes Pi ein Axiom oder eine nach den Regeln
hergeleitete Aussage ist
Beweis gelingt, wenn die letzte Aussage Pn das zu
beweisende Theorem ist
• Beweisstrategie
effizient – möglichst kurze Beweise
zielgerichtet – möglichst wenig fehlschlagende
Beweisversuche
Weitere Logik: Resolution 3
Weitere Logik: Resolution 4
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Deduktionssysteme
Resolution
• Deduktionssystem besteht aus Axiomen, Deduktionsregeln und – was oft vergessen wird – einer Beweisstrategie
• Resolution ist ein Deduktionssystem mit einer einzigen
Deduktionsregel
• axiomatische Deduktionssysteme
enthalten meistens mehrere Deduktionsregeln
zusätzlich zu den Axiomen, die den Diskursbereich
beschreiben, werden sogenannte logische Axiome
verwendet, d.h. Tautologien zur Umformung von
Ausdrücken
axiomatische Systeme eignen sich in erster Linie für
theoretische Untersuchungen
sie sind für praktische und speziell für automatische
Beweise schlecht geeignet
• natürliche Deduktionsysteme
enthalten Deduktionsregeln, die das menschliche
Beweisen widerspiegeln sollen
gut für das Arbeiten mit Papier und Bleistift
basieren auf menschlicher Intuition, sind daher
schlecht zu automatisieren
• Resolution entstand beim Versuch, Deduktion zu
automatisieren, d.h. Beweise durch den Computer
automatisch ausführen zu lassen
• Grundidee der Resolution: aus den beiden wahren
Aussagen
P∨Q
¬P∨R
kann man die wahre Aussage
Q∨R
schliessen, denn entweder ist P wahr, dann muss R
wahr sein, oder P ist falsch, dann muss Q wahr sein; in
jedem Fall ist dann Q ∨ R wahr
• Resolution setzt voraus, dass Aussagen in der
Klauselform, d.h. als konjunktive Normalform, dargestellt werden
• Resolutionssysteme
Grundlage für automatisches Beweisen und für
logische Programmiersprachen
• Tableaux-Systeme
können manuell wie automatisch verwendet werden
Weitere Logik: Resolution 6
Weitere Logik: Resolution 5
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Klauselform der Aussagenlogik
Klauselform der Aussagenlogik
• konjunktive Normalform einer aussagenlogischen
Formel: Konjunktion von Disjunktionen von atomaren
und negierten atomaren Aussagen
• Klausel ist Aussage der Form
D1 ∧ D2 ∧ ... ∧ Dn
(Di heissen Klauseln)
Di = Li1 ∨ Li2 ∨ ... ∨ Lim
(Lij heissen Literale)
• systematische Umwandlung in Klauselform
• äquivalente Formen
≡ P1 ∨ P2 ∨ ... ∨ Pn ∨ ¬ (N1 ∧ N2 ∧ ... ∧ Nm)
≡ (N1 ∧ N2 ∧ ... ∧ Nm) → (P1 ∨ P2 ∨ ... ∨ Pn)
• Notation der logischen Programmierung
Beispiel
≡ P1 , P2 , ... , Pn ← N1 , N2 , ... , Nm
A → ¬(B → C)
1. Schritt: Elimination von →
A → ¬ (B → C) ≡
P1 ∨ P2 ∨ ... ∨ Pn ∨ ¬ N1 ∨ ¬ N2 ∨ ... ∨ ¬ Nm
[Regel: P → Q ≡ ¬ P ∨ Q]
(Kommata auf der linken Seite bedeuten Disjunktion,
auf der rechten Seite Konjunktion)
¬ A ∨ ¬ (¬ B ∨ C)
2. Schritt: Verteilung von ¬ auf atomare Ausdrücke
¬ A ∨ ¬ (¬ B ∨ C) ≡
¬ A ∨ (¬ ¬ B∧ ¬ C) ≡
[Regel: ¬ (P ∨ Q) ≡ ¬ P ∧ ¬ Q]
[Regel: ¬ ¬ P ≡ P]
¬ A ∨ (B ∧ ¬ C)
3. Schritt: Umwandlung in eine Konjunktion von
Disjunktionen
¬ A ∨ (B ∧ ¬ C) ≡
[Regel: P ∨ (Q ∧ R) ≡ (P ∨ Q) ∧ (P ∨ R)]
(¬ A ∨ B) ∧ (¬ A ∨ ¬ C)
4. Schritt: Darstellung als Menge von Klauseln
{(¬ A ∨ B) , (¬ A ∨ ¬ C)}
Weitere Logik: Resolution 7
Weitere Logik: Resolution 8
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Schlussregel Resolution
Andere Schlussregeln als Resolution
• Resolutionsregel (Robinson)
• Resolution ist eine mächtige Schlussregel, die andere
Schlussregeln als Spezialfälle enthält
Klausel K1 mit dem positiven Literal L
Klausel K2 mit dem negativen Literal ¬ L
Aus den Klauseln K1 und K2 leitet man die Resolvente,
d.h. die Klausel {K1 - {L}} ∪ { K2 - {¬ L}} ab.
K1
K2
-----------------------------------{K1 - {L}} ∪ { K2 - {¬ L}}
• modus ponens
P→Q
P
--------------------Q
als Resolution
¬P∨Q
P
--------------------Q
• Beispiel
p∨q∨¬r
s∨¬p
-----------------------------------q∨¬r∨s
• modus tollens
P→Q
¬Q
--------------------¬P
als Resolution
¬P∨Q
¬Q
--------------------¬P
Weitere Logik: Resolution 9
Weitere Logik: Resolution 10
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Leere Klausel
Leere Klausel
• leere Klausel {}, d.h. Klausel ohne positive und negative
Literale, steht für die widersprüchliche Aussage ⊥, d.h.
für Inkonsistenz
• Beispiel
Klauselmenge M = {¬p ∨ q, p, ¬ q}
Resolutionen
• Wie kann man das verstehen?
¬p ∨ q
p
----------------q
¬q
------------------{}
Es gilt
A∨⊥≡A
A∧¬⊥≡A
Dann
(N1 ∧ N2 ∧ ... ∧ Nm) → (P1 ∨ P2 ∨ ... ∨ Pn)
≡ (N1 ∧ N2 ∧ ... ∧ Nm ∧ ¬ ⊥) → (P1 ∨ P2 ∨ ... ∨ Pn ∨ ⊥)
leere Klausel enthält keine N und keine P
≡¬⊥→⊥
≡¬¬⊥∨⊥
≡⊥∨⊥
d.h. die Klauselmenge M ist inkonsistent
andere Ableitung der leeren Klausel
¬p ∨ q ¬q
----------------¬p
p
------------------{}
• Eine Klauselmenge ist inkonsistent, wenn man durch
Resolution auf irgendeine Weise die leere Klausel {}
ableiten kann.
≡⊥
Weitere Logik: Resolution 11
Weitere Logik: Resolution 12
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Deduktionstheorem
Deduktion mit Resolution
• Deduktionstheorem
• Deduktion mit Resolution verwendet Beweise durch
Widerspruch (Refutation)
M ∪ {A} |− B genau dann, wenn M |− (A → B)
• Vorgehensweise
• M |− P genau dann, wenn M ∪ {¬P} inkonsistent ist
Spezialfall des Deduktionstheorems
M ∪ {A} |− B genau dann, wenn M |− (A → B)
setze A = ¬P und B = ⊥
M ∪ {¬P} |− ⊥ genau dann, wenn M |− (¬P → ⊥), d.h.
wenn M |− P
M |− P genau dann, wenn M ∪ {¬P} inkonsistent ist
Um nachzuweisen, dass M ∪ {¬P} inkonsistent ist,
transformiert man M ∪ {¬P} in Klauselform.
Dabei verwendet man den Satz: Eine Menge M von
aussagenlogischen Formeln kann in eine Menge von
Klauseln transformiert werden, die genau dann
konsistent ist, wenn M konsistent ist.
Wenn man aus den aus M ∪ {¬P} entstandenen
Klauseln durch Resolution die leere Klausel ableiten
kann, dann ist diese Klauselmenge inkonsistent. Damit
ist auch M ∪ {¬P} inkonsistent, und somit gilt M |− P.
Falls man die leere Klausel nicht ableiten kann, dann ist
M ∪ {¬P} konsistent und somit kann P nicht aus M
abgeleitet werden.
Weitere Logik: Resolution 13
Weitere Logik: Resolution 14
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Deduktion mit Resolution: Beispiele
Deduktion mit Resolution: Beispiele
• Beispiel
• Beispiel (Umkehrung der Aussagen)
Beweis von (p → q) → r |− p → (q → r)
Beweis von p → (q → r) |− (p → q) → r
Ist
Ist
{(p → q) → r, ¬ (p → (q → r))}
{ p → (q → r), ¬ ((p → q) → r)}
inkonsistent?
inkonsistent?
Umwandlung in Klauselform
Umwandlung in Klauselform
≡ {¬ (¬ p ∨ q) ∨ r, ¬ (¬p ∨ (¬ q ∨ r))}
≡ {¬ p ∨ (¬ q ∨ r), ¬ (¬ (¬p ∨ q) ∨ r)}
≡ {(p ∧ ¬ q) ∨ r, p ∧ q ∧ ¬ r}
≡ {¬ p ∨ ¬ q ∨ r, (¬p ∨ q) ∧ ¬ r }
≡ {(p ∨ r) ∧ (¬ q ∨ r), p ∧ q ∧ ¬ r}
≡ {¬ p ∨ ¬ q ∨ r, ¬p ∨ q, ¬ r}
≡ { p ∨ r, ¬ q ∨ r, p, q, ¬ r}
Resolution führt in diesem Fall nicht zur leeren
Klausel; man kann sich leicht überzeugen, dass
immer eine Resolvente ¬p übrigbleibt
Resolution
¬q∨r ¬r
-----------------¬q
q
------------------------------{}
D.h. die obige Ableitung gilt nicht.
Beweis wurde erbracht
Weitere Logik: Resolution 15
Weitere Logik: Resolution 16
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Korrektheit und Vollständigkeit der
Resolution in der Aussagenlogik
Klauselform der Prädikatenlogik
• Korrektheit der Resolution in der Aussagenlogik
Wenn eine Klausel K aus einer Menge M von Klauseln
durch Resolution abgeleitet werden kann, dann ist K
eine logische Konsequenz von M.
• Pränexform
Ein prädikatenlogischer Ausdruck ist in Pränexform,
wenn er die Form Q1 X1 (Q2X2 ....QnXn A) ...) hat,
wobei Qi Quantoren sind, Xi Variable und A keine
Quantoren enthält.
• Klauselform
• Korollar
Wenn die leere Klausel aus einer Menge M von
Klauseln durch Resolution abgeleitet werden kann,
dann ist die leere Klausel eine logische Konsequenz
von M, d.h. M inkonsistent.
• Vollständigkeit der Resolution bezüglich Refutation in
der Aussagenlogik
Wenn eine Menge von Klauseln inkonsistent ist, dann
kann man aus ihr durch Resolution die leere Klausel
ableiten.
Ein geschlossener prädikatenlogischer Ausdruck ist
in Klauselform, wenn er die Form ∀X1 (∀X2 ....∀Xn
A) ...) hat, wobei Xi alle Variablen sind, die in A
auftauchen, A keine Quantoren enthält und die Form
einer Disjunktion von atomaren Ausdrücken oder
deren Negation hat.
• Beispiel
Ausdruck
∀X (mensch(X) → sterblich(X))
Pränexform
wie gegeben
Klauselform
∀X (¬ mensch(X) ∨ sterblich(X))
Weitere Logik: Resolution 17
Weitere Logik: Resolution 18
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Umwandlung in Klauselform
Umwandlung in Klauselform
• Eine Menge von prädikatenlogischen Ausdrücken kann
in eine Menge von Klauseln transformiert werden, die
genau dann konsistent ist, wenn die Ausgangsmenge
konsistent ist.
• Die Umwandlung eines Ausdrucks in Klauselform
geschieht in 8 Schritten
4. Wir eliminieren alle existentiellen Quantoren.
Wenn ein existentieller Quantor nicht im
Gültigkeitsbereich eines universellen Quantors
vorkommt, ersetzen wir jedes Auftauchen der
quantifizierten Variablen durch eine bisher nicht
verwendete Konstante.
∃ X p(X) → p(a)
• Beispiel
∀ X (∀ Y p(X, Y) → ¬ (∀ Y (q(X, Y) → r(X, Y))))
1. Wir eliminieren → und erhalten
∀ X (¬ ∀ Y p(X, Y) ∨ ¬ (∀ Y (¬ q(X, Y) ∨ r(X, Y))))
2. Wir verteilen die Negationen, sodass jede Negation
nur auf ein Atom wirkt, und erhalten
∀ X (∃ Y ¬ p(X, Y) ∨ ∃ Y (q(X, Y) ∧ ¬ r(X, Y)))
Wenn ein existentieller Quantor im Gültigkeitsbereich universeller Quantoren vorkommt, dann ist
es möglich, dass die existentiell quantifizierte
Variable von den universell quantifizierten abhängt.
Wir ersetzen sie daher durch eine bisher nicht
verwendete Funktion der universell quantifizierten
Variablen.
∀ X (∃ Y p(X, Y)) → ∀ X p(X, f(X))
Ergebnis für das Beispiel:
3. Wir benennen die Variablen um, sodass jede
Variable nur einmal quantifiziert wird, und erhalten
∀ X (¬ p(X, f1(X)) ∨ (q(X, f2(X)) ∧ ¬ r(X, f2(X))))
∀ X (∃ Y ¬ p(X, Y) ∨ ∃ Z (q(X, Z) ∧ ¬ r(X, Z)))
5. Alle verbleibenden Variablen sind nun universell
quantifiziert. Wir können die universellen Quantoren
daher auch fortlassen. Alle Variablen werden implizit
als universell quantifiziert betrachtet.
¬ p(X, f1(X)) ∨ (q(X, f2(X)) ∧ ¬ r(X, f2(X)))
Weitere Logik: Resolution 19
Weitere Logik: Resolution 20
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Umwandlung in Klauselform
Klauselform der Prädikatenlogik
6. Wir bringen den Satz in konjunktive Normalform
d.h. eine Konjunktion von Disjunktionen.
(¬ p(X, f1(X)) ∨ q(X, f2(X))) ∧ (¬ p(X, f1(X)) ∨ ¬ r(X,
f2(X)))
7. Wir eliminieren alle konjunktiven Konnektoren
und schreiben die Konjunktion als eine Menge von
Klauseln.
{¬ p(X, f1(X)) ∨ q(X, f2(X)), ¬ p(X, f1(X)) ∨ ¬ r(X,
f2(X))}
8. Zum Schluss benennen wir die Variablen noch
einmal um, sodass keine Variable in mehr als einer
Klausel auftaucht.
• Klausel ist Aussage der Form
P1 ∨ P2 ∨ ... ∨ Pn ∨ ¬ N1 ∨ ¬ N2 ∨ ... ∨ ¬ Nm
alle Variablen sind implizit vor der Klausel universell
quantifiziert
• äquivalente Formen
≡ P1 ∨ P2 ∨ ... ∨ Pn ∨ ¬ (N1 ∧ N2 ∧ ... ∧ Nm)
≡ N1 ∧ N2 ∧ ... ∧ Nm → P1 ∨ P2 ∨ ... ∨ Pn
• Notation der logischen Programmierung
≡ P1 , P2 , ... , Pn ← N1 , N2 , ... , Nm
{¬ p(X, f1(X)) ∨ q(X, f2(X)), ¬ p(Y, f1(Y)) ∨ ¬ r(Y,
f2(Y))}
(Kommata auf der linken Seite bedeuten Disjunktion,
auf der rechten Seite Konjunktion)
Weitere Logik: Resolution 21
Weitere Logik: Resolution 22
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Resolution mit Variablen
Substitutionen, Unifikatoren
• gegeben zwei Klauseln
• Begriffe
p(X1) ∨ q(X1)
[L] s bedeutet Anwendung der Substitution s auf das
Literal L
¬ p(a) ∨ r(X2, Y2)
Literal [L] s = L' ist eine Instanz von L
• Resolvente?
Literal L subsumiert seine Instanz L'
• Da alle Variablen universell quantifiziert sind, kann
man jede Variable durch einen Term aus dem
Wertebereich der Variablen substituieren.
• Im Beispiel ergibt die Substitution {X1/a} die
Klauselinstanzen
p(a) ∨ q(a)
• Unifikator
Wenn es für zwei Literale L1 und L2 eine
Substitution s gibt, sodass
[L1] s = [L2] s
dann nennen wir s einen Unifikator von L1 und L2.
¬ p(a) ∨ r(X2, Y2)
• allgemeinster Unifikator (most general unificator, mgu)
• Resolvente
Der Unifikator s ist genau dann der allgemeinste
Unifikator für L1 und L2 ist, wenn für jeden anderen
Unifikator s' gilt, dass das Literal [L1] s das Literal
[L1] s' subsumiert.
q(a) ∨ r(X2, Y2)
Der allgemeinste Unifikator ist bis auf Variablenumbenennungen eindeutig.
Weitere Logik: Resolution 23
Weitere Logik: Resolution 24
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Beispiel für allgemeinsten Unifikator
Wann unifizieren zwei Literale?
• Literale
• Relationszeichen (Prädikatsname) und Arität müssen
übereinstimmen
p(a, Y, Z)
• alle Argumente müssen unifiziert werden können
p(X, b, Z)
Unifikation gelingt, wenn ein oder beide Argumente
Variable sind
werden durch die Substitution s
{X/a, Y/b, Z/c}
Unifikation gelingt, wenn beide Argumente die
gleiche Konstante sind
unifiziert
[p(a, Y, Z)] {X/a, Y/b, Z/c} ≡
[p(X, b, Z)] {X/a, Y/b, Z/c} ≡
p(a, b, c)
Aber s ist nicht der allgemeinste Unifikator. Der
allgemeinste Unifikator ist in diesem Fall
Unifikation gelingt, wenn beide Argumente
zusammengesetzte Terme mit dem gleichen
Funktionszeichen (Funktionsnamen, Funktor) und
der gleichen Arität sind und alle Argumente
unifizieren
{X/a, Y/b}
mit der Instanz
[p(a, Y, Z)] {X/a, Y/b} ≡
[p(X, b, Z)] {X/a, Y/b} ≡
p(a, b, Z)
Weitere Logik: Resolution 25
Weitere Logik: Resolution 26
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Resolution mit Unifikation
Beispiel (Truss p. 313)
• Gegeben
• Beweis der Addition 2 + 2 = 4 in Peano Arithmetik
durch Resolution
Literal L1 in einer Klausel K1
Axiome
Literal ¬ L2 in einer Klausel K2
L1 und L2 haben allgemeinsten Unifikator u
• Resolvente besteht aus der Vereinigungsmenge aller
Literale von K1 und K2 abzüglich L1 und ¬ L2, auf die
u angewandt wurde
K1
K2
------------------------------------[{K1 - {L1}} ∪ {K2 - {¬L2}}] u
X+0=X
X + s(Y) = s(X + Y)
Theorem
s(s(0)) + s(s(0)) = s(s(s(s(0))))
• Mit den Abkürzungen
sX für s(X)
• Beispiel
p(X,f(2)) ∨ q(X) ∨ ¬ r(X,Y)
s(V) ∨ ¬ p(4,V)
-----------------------------------------------------------------q(4) ∨ ¬ r(4,Y) ∨ s(f(2))
allgemeinster Unifikator ist {X/4, V/f(2)} denn es gilt
p(X,f(2)) {X/4, V/f(2)} = p(4,V) {X/4, V/f(2)}
add(X, Y, Z) für X+Y=Z
lauten die Axiome
add(X, 0, X)
add(X, Y, Z) → add(X, sY, sZ)
und das Theorem
add(ss0, ss0, ssss0)
• Umwandlung in Klauselform
(1) add(X, 0, X)
(2) ¬ add(X, Y, Z) ∨ add(X, sY, sZ)
(3) ¬ add(ss0, ss0, ssss0)}
Weitere Logik: Resolution 27
(negiertes Theorem)
Weitere Logik: Resolution 28
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Beispiel (Truss p. 313)
Beispiel (Truss p. 313)
• Für den ersten Resolutionsschritt verwenden wir das
negierte Theorem (3) und die einzige passende Klausel
(2). (Das Literal der Klausel (3) unifiziert mit dem
Literal der Klausel (1) nicht.)
• Für den dritten Resolutionsschritt verwenden wir die
Resolvente (5) und Klausel (1).
(2) ¬ add(X, Y, Z) ∨ add(X, sY, sZ)
(5) ¬ add(ss0, 0, ss0)
(1) add(X, 0, X)
Mit dem mgu = {X/ss0} erhalten wir die Resolvente
(3) ¬ add(ss0, ss0, ssss0)
mit dem mgu = {X/ss0, Y/s0, Z/sss0} erhalten wir die
Resolvente
(4) ¬ add(ss0, s0, sss0)
• Für den zweiten Resolutionsschritt verwenden wir die
Resolvente (4) und Klausel (2). Klausel (1) kommt
wieder nicht in Frage.
(4) ¬ add(ss0, s0, sss0)
(2) ¬ add(X, Y, Z) ∨ add(X, sY, sZ)
Mit dem mgu = {X/ss0, Y/0, Z/ss0} erhalten wir die
Resolvente
(6) {}
• Die leere Resolvente bedeutet, dass die Klauselmenge
{(1), (2), (3)} inkonsistent ist und dass das Theorem aus
den Axiomen folgt, d.h. dass 2 + 2 = 4 in der Peano
Arithmetik gilt.
• Der Resolutionsbeweis hat eine Kombination von zwei
Beweisstrategien benutzt, um effizient und effektiv zur
leeren Klausel zu gelangen:
set-of-support
man benutzt das negierte Theorem als eine der
beiden Klauseln beim ersten Resolutionsschritt
lineare Resolution
man verwendet ab dem zweiten Resolutionsschritt
immer die Resolvente des vorherigen Schrittes als
eine der beiden Klauseln; die andere Klausel ist eines
der Axiome oder eine vorherige Resolvente
(5) ¬ add(ss0, 0, ss0)
Weitere Logik: Resolution 29
Weitere Logik: Resolution 30
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Berechnung als Beweis
Berechnung als Beweis
• Im Beispiel wurde die Addition 2+2=4 überprüft. Nun
wollen wir den Resolutionsbeweis konstruktiv verwenden, d.h. einen Wert "durch Beweis berechnen".
• Dritter Resolutionsschritt:
Welchen Wert muss W haben, damit W + 2 = 4?
(5) ¬ add(W, 0, ss0)
mgu = {X/W, X/ss0}
• Klauselform
(6) {}
(1) add(X, 0, X)
(2) ¬ add(X, Y, Z) ∨ add(X, sY, sZ)
(3) ¬ add(W, ss0, ssss0)}
(1) add(X, 0, X)
(negiertes Theorem)
X wurde an ss0 gebunden, W an X, d.h. W an ss0.
Damit haben wir W de facto als ss0 berechnet.
• Erster Resolutionsschritt:
(2) ¬ add(X, Y, Z) ∨ add(X, sY, sZ)
(3) ¬ add(W, ss0, ssss0)
mgu = {X/W, Y/s0, Z/sss0}
(4) ¬ add(W, s0, sss0)
• Zweiter Resolutionsschritt:
(2) ¬ add(X, Y, Z) ∨ add(X, sY, sZ)
(4) ¬ add(W, s0, sss0)
mgu = {X/W, Y/0, Z/ss0}
(5) ¬ add(W, 0, ss0)
Weitere Logik: Resolution 31
Weitere Logik: Resolution 32
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Korrektheit und Vollständigkeit der
Resolution in der Prädikatenlogik
Implementierung der Resolution in Prolog
• Korrektheit der Resolution in der Prädikatenlogik
Wenn eine Klausel K aus einer Menge M von Klauseln
durch Resolution abgeleitet werden kann, dann ist K
eine logische Konsequenz von M.
• Korollar
Wenn die leere Klausel aus einer Menge M von
Klauseln durch Resolution abgeleitet werden kann,
dann ist M inkonsistent.
• Programmiersprache Prolog: Versuch, Resolution
effizient und effektiv zu machen
• Einschränkungen der Sprache auf Hornklauseln
• Verwendung der SLD Resolutionsstrategie
• Gewinn in Effizienz und Effektivität wird durch
Unvollständigkeit erkauft, d.h. es können nicht mehr
alle Lösungen durch Resolution gefunden werden
• Vollständigkeit der Resolution bezüglich Refutation in
der Prädikatenlogik
Wenn eine Menge von Klauseln inkonsistent ist, dann
kann man aus ihr durch Resolution die leere Klausel
ableiten.
Weitere Logik: Resolution 33
Weitere Logik: Resolution 34
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Definite Klauseln
Definite Programme
• definite Klauseln enthalten genau ein positives Literal
• definites Programm: endliche Menge von definiten
Klauseln
∀(H∨ ¬B1∨ ¬B2 ∨ ... ∨ ¬Bn)
werden meistens als nach links gerichtete
Implikation geschrieben
H ‹– B1, B2, ... , Bn. (n≥0)
(Prolog: :- statt ‹– )
pfad(X, Y) ‹– verbunden(X, Y).
pfad(X, Y) ‹– verbunden(X, Z), pfad(Z, Y).
verbunden(a, b).
verbunden(b, c).
Atom H heisst Kopf
• Prolog-Programme sind definite Programme
Konjunktion B1, B2, ... , Bn Körper
Kommata stehen für die logische Konjunktion
alle Variablen sind implizit vor der Klausel universell
quantifiziert
Klausel heisst Regel, wenn n>0
Klausel heisst Fakt, wenn n=0 (‹– wird dann oft
fortgelassen)
Fakt kann als Regel mit dem Körper true betrachtet
werden
Weitere Logik: Resolution 35
Weitere Logik: Resolution 36
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Zielklauseln, Anfragen
SLD Resolution
• Klauseln, die nur negative Literale enthalten
• gegeben sei das Prolog Programm
∀ X1 ... Xk (¬G1 ∨ ¬G2 ∨ ... ∨ ¬Gm)
pfad(X, Y) ‹– verbunden(X, Y).
pfad(X, Y) ‹– verbunden(X, Z), pfad(Z, Y).
können zu
¬∃ X1 ... Xk (G1∧ G2 ∧ ... ∧ Gm)
verbunden(a, b).
umgeformt werden, wobei X1 ... Xk die Variablen der
Klausel sind
• Bedeutung: es gibt keine Instanzen der Variablen X1 ...
Xk, sodass die Konjunktion der Ziele Gi wahr ist
• ∀(¬G1 ∨ ¬G2 ∨ ... ∨ ¬G m ) wird definite Zielklausel
genannt und als Anfrage verstanden, die durch Widerspruch beantwortet werden kann
• meistens geschrieben
‹– G1, G2, ... , Gn
(Prolog: ?- G1, G2, ... , Gn.)
verbunden(b, c).
und die Anfrage
‹– pfad(a, Wohin).
• Anfrage ‹– pfad(a, Wohin) wird durch Resolution
beantwortet und die Variable Wohin wird während des
Resolutionsbeweises an die Konstante b gebunden –
der Wert von Wohin wird als b berechnet
• Prolog verwendet eine Kombination von set-of-support
Resolution mit linearer Resolution
• wenn eine Resolvente aus mehr als einem Literal
besteht, wird immer das am weitesten links stehende
Literal für den nächsten Resolutionsschritt verwendet
• Beispiel
‹– pfad(a, b).
• definite Klauseln und definite Zielklauseln werden
zusammen Horn-Klauseln genannt
• Resolventen bilden den SLD Baum; Wurzel des Baumes
ist die ursprüngliche Anfrage, Blätter des Baumes sind
entweder leere Resolventen – Refutationsbeweis ist
gelungen – oder nichtleeere Resolventen, für die kein
weiterer Resolutionsschritt möglich ist
Weitere Logik: Resolution 37
Weitere Logik: Resolution 38
Formale Grundlagen der Informatik
SLD Resolution
• Prolog verwendet Tiefensuche, um den SLD Baum
abzusuchen, bzw. zu generieren
• wenn ein Blatt eine nichtleere Resolvente ist, dann wird
automatisch Backtracking ausgelöst, d.h. der Beweis
wird am nächsten vorangehenden Knoten des Baumes
vorgesetzt, der alternative Zweige hat; gibt es keine
alternativen Zweige, dann ist der Refutationsbeweis
misslungen
• Prolog ist nichtdeterministisch, d.h. Anfragen können
mehr als eine Lösung generieren; konkret hat die
Anfrage
‹– pfad(a, Wohin).
die Lösungen
Wohin = b
Wohin = c
• wenn im SLD Baum unendliche Zweige auftauchen,
dann verhindert die Tiefensuche, dass Zweige
abgesucht werden, die rechts vom unendlichen Zweig
sind; d.h. mögliche Lösungen werden nicht gefunden;
Prolog ist also potentiell unvollständig
Weitere Logik: Resolution 39
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Tableaux-Beweise in der Aussagenlogik
Einführung
• Wie kann man auf syntaktische Weise eine Belegung
mit Wahrheitswerten finden, die einen gegebenen
Ausdruck wahr oder falsch macht?
• Wie können wir zeigen, dass der aussagenlogische
Ausdruck
• Die Frage schliesst Beweise durch Widerspruch – keine
Belegung existiert – mit ein, ist aber allgemeiner.
• Frage kann mit Hilfe von (analytischen/semantischen)
Tableaux beantwortet werden
p∨¬p
eine Tautologie ist?
• Wahrheitstabellen sind unpraktikabel, da sie
exponentiell wachsen
• stattdessen versuchen wir, die Aussage mit Hilfe von
Tableaux syntaktisch zu falsifizieren
• Notation:
signierter Ausdruck F P bedeutet, dass wir versuchen, den (unsignierten) Ausdruck P als falsch
nachzuweisen
signierter Ausdruck T P bedeutet, dass wir versuchen, den (unsignierten) Ausdruck P als wahr
nachzuweisen
Weitere Logik: Tableaux 1
Weitere Logik: Tableaux 2
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Beispiel 1
Beispiel 1
• wir beginnen ein Tableau
• weitere Expansion ist nicht möglich, da alle signierten
Aussagen atomar sind
1
F (p ∨ ¬ p)
das wir im Folgenden durch Expansionsregeln
erweitern
• Expansionsregel F∨ : eine Disjunktion ist falsch, wenn
beide Disjunkte falsch sind
1
F (p ∨ ¬ p)
√
2
Fp
1, F∨
3
F (¬ p)
1, F∨
• Tableau enthält die signierten Audrücke F p und T p,
die verlangen, dass wir p gleichzeitig wahr und falsch
machen, d.h. einen Widerspruch; ein solches Tableau
wird geschlossen genannt
• F (p ∨ ¬ p) schlägt daher fehl, d.h. p ∨ ¬ p ist eine
Tautologie
• Notation
√ bedeutet, dass die entsprechende Zeile expandiert
wurde
1, F∨ bedeutet, dass die entsprechende Zeile aus der
Zeile 1 unter Anwendung der Expansionsregel F∨
entstand
• Expansionsregel F¬: eine Negation ist falsch, wenn die
negierte Aussage wahr ist
1
F (p ∨ ¬ p)
√
2
Fp
1, F∨
3
F (¬ p)
1, F∨
4
Tp
3, F¬
√
Weitere Logik: Tableaux 3
Weitere Logik: Tableaux 4
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Beispiel 2
Beispiel 2
• Ist der aussagenlogische Ausdruck
• weitere Expansion mit F¬
¬ (q ∧ r) → (¬ q ∨ ¬ r)
eine Tautologie?
• Tableau
1
F ¬ (q ∧ r) → (¬ q ∨ ¬ r)
• Expansionsregel F→ : eine Implikation ist falsch, wenn
die Vorbedingung wahr und die Konsequenz falsch ist
1
F ¬ (q ∧ r) → (¬ q ∨ ¬ r)
2
T ¬ (q ∧ r)
1, F→
3
F (¬ q ∨ ¬ r)
1, F→
√
1
F ¬ (q ∧ r) → (¬ q ∨ ¬ r)
2
T ¬ (q ∧ r)
1, F→
3
F (¬ q ∨ ¬ r)
1, F→
√
4
F¬q
3, F∨
√
5
F¬r
3, F∨
√
6
Tq
4, F¬
7
Tr
5, F¬
• Expansionsregel T¬: eine Negation ist wahr, wenn die
negierte Aussage falsch ist
• weitere Expansion von Zeile 3 mit F∨
√
1
F ¬ (q ∧ r) → (¬ q ∨ ¬ r)
√
2
T ¬ (q ∧ r)
1, F→
√
3
F (¬ q ∨ ¬ r)
1, F→
√
4
F¬q
3, F∨
√
√
1
F ¬ (q ∧ r) → (¬ q ∨ ¬ r)
2
T ¬ (q ∧ r)
1, F→
3
F (¬ q ∨ ¬ r)
1, F→
4
F¬q
3, F∨
5
F¬r
3, F∨
5
F¬r
3, F∨
6
Tq
4, F¬
(Zeilen müssen nicht notwendigerweise in der
textuellen Reihenfolge expandiert werden.)
7
Tr
5, F¬
8
F (q ∧ r)
2, T¬
√
Weitere Logik: Tableaux 6
Weitere Logik: Tableaux 5
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Beispiel 2
Beispiel 3
• Zeile 8 enthält F (q ∧ r); eine Konjunktion ist falsch,
wenn mindestens ein Konjunkt falsch ist, d.h. wir
müssen beide Fälle untersuchen und erhalten damit
zwei Zweige im Tableau
• Der aussagenlogische Ausdruck
• Expansionsregel F∧: eine Konjunktion ist falsch, wenn
mindestens ein Konjunkt falsch ist
• Tableau
9 Fq
1
F ¬ (q ∧ r) → (¬ q ∨ ¬ r)
√
2
T ¬ (q ∧ r)
1, F→
√
3
F (¬ q ∨ ¬ r)
1, F→
√
4
F¬q
3, F∨
√
5
F¬r
3, F∨
√
6
Tq
7
8
(p ∧ q) → (r ∨ s)
ist keine Tautologie. Was liefert der Tableau-Beweis?
1
F (p ∧ q) → (r ∨ s)
√
2
T (p ∧ q)
1, F→
3
F (r ∨ s)
1, F→
• Expansionsregel T∧: eine Konjunktion ist wahr, wenn
beide Konjunkte wahr sind
1
F (p ∧ q) → (r ∨ s)
4, F¬
2
T (p ∧ q)
1, F→
Tr
5, F¬
3
F (r ∨ s)
1, F→
F (q ∧ r)
2, T¬
√
4
Tp
2, T∧
8, F∧
5
Tq
2, T∧
8, F∧
√
10
Fr
√
√
• weitere Expansion ist nicht möglich
• Tableau ist geschlossen, denn beide Zweige enthalten
einen Widerspruch (T q/Fq, bzw. T r/F r)
• Ausdruck ¬ (q ∧ r) → (¬ q ∨ ¬ r) kann nicht falsifiziert
werden und ist somit eine Tautologie
Weitere Logik: Tableaux 7
Weitere Logik: Tableaux 8
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Beispiel 3
Tableau Expansionsregeln
• weitere Expansion mit F∨
• unäre Regeln (P ist ein aussagenlogischer Ausdruck)
1
F (p ∧ q) → (r ∨ s)
√
2
T (p ∧ q)
1, F→
√
3
F (r ∨ s)
1, F→
√
4
Tp
2, T∧
5
Tq
2, T∧
6
Fr
3, F∨
7
Fs
3, F∨
T¬P
------FP
F¬P
------TP
(Der signierte Ausdruck über dem Strich wird bei
Anwendung der Expansionsregel durch den signierten
Ausdruck unter dem Strich ersetzt.)
• binäre konjunktive Regeln verlängern Zweige (P und Q
sind aussagenlogische Ausdrücke)
• weitere Expansion ist nicht möglich
• wir erhalten kein geschlossenenes Tableau
• stattdessen erhalten wir die Instruktionen (= Wahrheitsbelegungen) T p, T q, F r und F s, um den
Ausdruck (p ∧ q) → (r ∨ s) zu falsifizieren
T (P ∧ Q)
-----------TP
TQ
F (P ∨ Q)
-----------FP
FQ
F (P → Q)
-----------TP
FQ
Weitere Logik: Tableaux 9
Weitere Logik: Tableaux 10
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Tableau Expansionsregeln
Tableaux
• binäre disjunktive Regeln ergeben Verzweigungen (P
und Q sind aussagenlogische Ausdrücke)
• Ein Tableau ist ein Baum, dessen Knoten signierte
Ausdrücke sind. Ein Zweig des Tableau ist der
entsprechende Zweig des Baumes.
F (P ∧ Q)
-----------FP|FQ
• Das Tableau wird durch Anwendungen von
Expansionsregeln auf noch nicht expandierte Knoten
aufgebaut. Für jeden nichtexpandierten, nichtatomaren
Knoten gibt es genau eine Expansionsregel.
T (P ∨ Q)
-----------TP|TQ
• Konjunktive Expansionsregeln verlängern den
entsprechenden Zweig, disjunktive Expansionsregeln
führen eine Verzweigung jedes Zweiges ein, der den
expandierten Knoten enthält.
T (P → Q)
-----------FP|TQ
• Jedes Tableau ist nach endlich vielen Schritten
vollständig expandiert.
• Ein Tableau heisst geschlossen, wenn jeder Zweig
geschlossen ist, d.h. eine atomare Aussage enthält, die
gleichzeitig wahr und falsch sein soll.
• Eine Aussage P ist durch ein Tableau beweisbar, wenn
die signierte Aussage F P zu einem geschlossenen
Tableau führt.
• Tableaux-Beweise sind korrekt und vollständig.
Weitere Logik: Tableaux 11
Weitere Logik: Tableaux 12
Formale Grundlagen der Informatik
Formale Grundlagen der Informatik
Erweiterungen
Erweiterungen
• Um zu beweisen, dass ein Ausdruck P aus einer Menge
{M1, …, Mn} von Ausdrücken folgt, verwenden wir das
Deduktionstheorem
• Tableau können auch Wahrheitsbelegungen generieren
{M1, …, Mn} |− P genau dann, wenn |− {M1, …, Mn} → P
Wenn wir |− {M1, …, Mn} → P durch ein Tableau
beweisen können, dann folgt daraus {M1, …, Mn} |− P
• Wie wird der Ausdruck
¬ p ∧ (r ∨ q)
wahr?
• Tableau
• Direkter Beweis: um zu zeigen, dass ein Ausdruck P
aus einer Menge {M1, …, Mn} von Ausdrücken folgt,
beginnen wir mit dem Tableau
T M1
…
5Tr
T Mn
FP
Wenn dieser Beweis durch Widerspruch misslingt,
dann gilt {M1, …, Mn} |− P.
Weitere Logik: Tableaux 13
Formale Grundlagen der Informatik
Schlussbemerkungen
• Tableaux können durch Expansionregeln für Quantoren auch für die Prädikatenlogik verwendet werden;
alle Ergebnisse gelten entsprechend
• Expansionsregeln für Quantoren führen zu praktischen
Schwierigkeiten, die auf verschiedene Weise gelöst
werden und Varianten des Verfahrens ergeben
• Tableaux können manuell verwendet und auch
effizient auf dem Computer implementiert werden
• heuristische Regeln: immer zuerst konjunktive
Expansionsregeln verwenden und dann erst die
disjunktiven, die zu Verzweigungen des Baumes
führen
• Tableaux können auch mit unsignierten Ausdrücken
arbeiten
Anstelle von T P schreibt man P.
Anstelle von F P schreibt man ¬ P.
Weitere Logik: Tableaux 15
1
T ¬ p ∧ (r ∨ q)
2
T¬p
1, T∧
√
3
T (r ∨ q)
1, T∧
√
4
Fp
2, T¬
3, T∨
√
6Tq
3, T∨
• Ausdruck ¬ p ∧ (r ∨ q) ist wahr, wenn p falsch und r
wahr sind, oder aber wenn p falsch und q wahr sind.
Weitere Logik: Tableaux 14
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Gliederung
Elementare Definitionen
• Graphen und Digraphen
• Ein Graph besteht anschaulich aus Knoten und Kanten,
die die Knoten verbinden.
• Färben von Graphen
• Adjanzenzmatrizen und Hüllen
• Eulersche und Hamiltonsche Graphen
• Petri Netze
• Kanten können
• Anhang: Induktionsbeweis
1. Gerichtet oder ungerichtet sein
2. Mehrfach oder einfach sein
3. Einen Knoten mit sich selbst verbinden oder nicht
(Schlaufen)
• Arten von Graphen (jeweils mit oder ohne Schlaufen)
1. Einfache Graphen (ungerichtete Einfachkanten)
2. Digraphen (gerichtete Einfachkanten)
3. Multigraphen (ungerichtete Mehrfachkanten)
4. Dimultigraphen (gerichtete Mehrfachkanten)
Version 3, 26.05.2000, 14:30 Uhr
Graphen 1
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Graphen 2
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Anwendungen
Formalisierung von Graphen
• Hasse Diagramme
Ein einfacher Graph G = ( V , E ) ohne Schlaufen kann
formalisiert werden als ein Paar aus einer endlichen Menge
V (vertex, Knoten) und einer Menge E (edge, Kante) von
Mengen von zwei Elementen aus V.
• Versorgungsnetze
• Computernetzwerke
• Petri-Netze
• Entity-Relationship Diagramme
• elektrische Schaltpläne
• Automaten
G = ({A, B, C, D, E, F},
{{A, E}, {B, E}, {A, C}, {A, F}, {F, D}, {D, C}})
• Syntaxbäume für Programmiersprachen
Alternative Formalisierung: Ein einfacher Graph (ohne
Schlaufen) ist ein Paar G = ( V , ! ) aus einer endlichen
Menge V und einer symmetrischen (und irreflexiven)
Relation ! 5 V % V.
• Entscheidungsbäume
• Strassen- und Verkehrsnetze
G = ({A, B, C, D, E, F},
{(A, E), (B, E), (A, C), (A, F), (F, D), (D, C),
(E, A), (E, B), (C, A), (F, A), (D, F), (C, D)})
Graphen 3
Graphen 4
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Formalisierung von Digraphen
Formalisierung von Multigraphen
Ein Digraph G = ( V , ! ) (ohne Schlaufen) ist ein Paar aus
einer endlichen Menge V und einer (irreflexiven) Relation
! 5 V % V.
• Ein ungerichteter Multigraph ohne Schlaufen
G = ( V , E , , ) ist ein Tupel aus den endlichen Mengen V
(Knoten) und E (Kanten) mit V € E = ^ und einer
Funktion , : E D { P 5 V | | P | = 2 }, die für jede Kante e
die Endpunkte ,(e) angibt.
G = ({A, B, C, D, E, F},
{a, b, c, d, e, f, g, h, i},
{(a, {F, A}), (b, {F, A}), (c, {F, A}),
(d, {A, B}), (e, {E, B}), (f, {E, D}),
(g, {E, D}), (h, {D, C}), (i, {D, C})})
G = ({A, B, C, D, E, F},
{(A, E), (B, E), (C, A), (A, F), (F, D), (C, D)})
• Ein gerichteter Multigraph mit Schlaufen
G = ( V , E , i , f ) ist ein Tupel aus den endlichen Mengen E
und V mit E € V = ^ und den Funktionen i , f : E D V. Für
eine Kante e gibt i(e) den Anfangs- und f(e) den Endpunkt.
G = ({A, B, C, D, E, F},
{a, b, c, d, e, f, g, h, i},
{(a, A), (b, F), (c, F), (d, B), (e, B), (f, D),
(g, D), (h, C), (i, C)},
{(a, F), (b, A), (c, A), (d, A), (e, E), (f, E),
(g, E), (h, D), (i, C)})
Graphen 5
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Graphen 6
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Verbindungen in (Di-)Graphen
Zusammenhang in (Di-)Graphen
• In einem (Di-)Graph sei e eine Kante von x nach y. Dann
sind x und y inzident zu e, e ist inzident zu x und y, und
x und y sind adjazent.
• Die Relation G 5 V % V, für die x G y genau dann gilt,
wenn x und y zusammenhängend sind, heisst die
Zusammenhangsrelation eines (Di-)Graphs.
• Ein Weg in einem (Di-)Graph ist ein n-Tupel
( x1 , x2 , … xn )§ Vn mit n > 1 von Knoten xi § V, bei dem
alle ( xI , xi+1 ) Kanten sind. Die Länge des Wegs ist n-1, der
Anfangspunkt ist x1 und der Endpunkt ist xn.
• Die Zusammenhangsrelation ist eine Äquivalenzrelation.
• Ein Zyklus ist ein Weg, dessen Anfangs- und Endpunkt
gleich sind, der mindestens die Länge drei hat, und in
dem eine Kante höchstens einmal vorkommt.
• Eine Zusammenhangskomponente eines (Di-)Graphs ist
eine Äquivalenzklasse der Zusammenhangsrelation auf
dem (Di-)Graph.
• Ein Knoten y ist in einem (Di-)Graph von einem Knoten x
erreichbar, wenn es einen Weg mit Anfangspunkt x und
Endpunkt y gibt. Ein Punkt ist immer von sich selbst aus
erreichbar.
• Zwei Knoten x und y in einem (Di-)Graph sind
zusammenhängend, wenn x von y und y von x erreichbar
sind.
• Ein (Di-)Graph heisst zusammenhängend, wenn je zwei
seiner Knoten zusammenhängend sind.
Graphen 7
Graphen 8
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Grad und Planariät
Teilgraphen
• Der Grad eines Knotens in einem (Di-)Graph ist die
Anzahl der Kanten, die inzident zu diesem Knoten sind.
• Ein (Di-)Graph ( F , " ) heisst genau dann ein Teilgraph
eines (Di-)Graphs ( E , ! ), wenn F 5 E und " 5 !.
• Ein (Di-)Graph heisst planar, wenn er so in der Ebene
gezeichnet werden kann, dass die Schnittpunkte der
Kanten genau die Knoten des (Di-)Graphs sind.
• Ein (Di-)Graph ( F , " ) heisst genau dann ein induzierter
Teilgraph eines (Di-)Graphs ( E , ! ), wenn F ein Teilgraph
von E ist und wenn es zwischen jedem Paar von Punkten
aus F genau dann eine Kante gibt wenn es auch in ( E , ! )
eine Kante gibt.
Graphen 9
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Beispiel: Phasing Traffic Lights
Graphen 10
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Beispielgraphen
Graphen 11
Graphen 12
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Formale Grundlagen der Informatik
Bäume und Wälder als Graphen
Eigenschaften von Bäumen
• Ein Baum ist ein zusammenhängender Graph ohne
Zyklen.
• Ein Graph ist genau dann ein Baum, wenn
• Ein Wald ist ein Graph ohne Zyklen, dessen Zusammenhangskomponenten Bäume sind.
• Sei ( P , ! ) ein zusammenhängender Graph. Ein
spannender Baum ist ein Teilgraph von ( P , ! ), der ein
Baum ist und alle Knoten des Graphs enthält, also ein
Baum der Form ( P , " ) mit " 5 !.
Knorr/Fuchs SS 2000
1. Er zusammenhängend ist.
2. Wenn er unzusammenhängend wird, sobald eine Kante
entfernt wird.
• Sei T ein endlicher Baum mit mindestens einem Knoten.
Dann gilt:
1. T hat einen Knoten mehr als Kanten.
2. T hat mindestens einen Knoten mit Grad < 2.
3. T ist planar.
Graphen 13
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Graphen 14
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Bipartite Graphen
Matching
Ein bipartiter Graph ( A ~ B , E ) ist ein Graph, bei dem die
Menge der Knoten so in zwei nicht leere, disjunkte Mengen
A und B zerlegt werden kann, dass jede Kante einen Knoten
in A mit einem Knoten in B verbindet, d.h., kein Paar von
Knoten aus A und kein Paar von Knoten aus B ist adjazent.
• Ein Matching in einem bipartiten Graph ist eine Menge
von Kanten, die keine gemeinsamen Knoten haben.
• Ein Matching ist vollständig, wenn alle Knoten aus A in
einer Kante vorkommen.
• Ein Matching ist perfekt, wenn alle Knoten in einer Kante
vorkommen.
• In einem bipartiten Graph ( A ~ B , E ) gibt es genau dann
ein vollständiges Matching, wenn es für jede Menge
C 5 A mindestens |C| Knoten in B gibt, die adjazent zu
Knoten in C sind.
• In einem bipartiten Graph ( A ~ B , E ) gibt es genau dann
ein perfektes Matching, wenn es ein vollständiges
Matching gibt, und wenn | A | = | B |.
Graphen 15
Graphen 16
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Attributierte Graphen
Isomorphie
• Graph mit attributierten Kanten: Jeder Kante wird ein
Attribut zugeordnet
• Strukturelle Unterschiede zwischen Graphen, nicht
Unterschiede in der Benennung interessieren uns.
Graphen, die sich nur in der Benennung unterscheiden,
nennt man isomorph.
• Graph mit attributierten Knoten: Jedem Knoten wird ein
Attribut zugeordnet
• Anwendungen attributierter Graphen: Graphen mit
Kosten (Wegoptimierung, z.B. traveling salesman,
Schneeräumen in Zürich), Färbung, neuronale Netze
• Zwei (Di-)Graphen G = (E, !) und H = (F, ") sind
isomorph, wenn es eine bijektive Funktion f : G D H gibt
mit
[ u, v § E : (u, v) § ! O (f(u), f(v)) § "
Graphen 17
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Graphen 18
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Spezielle Graphen 1
Spezielle Graphen 2
• Kn ist der vollständige Graph ohne Schlaufen mit n
Knoten, d.h., mit Kanten zwischen allen Knoten
• Ein Nullgraph ist ein Graph, der keine Kanten enthält.
Der Nullgraph mit n Knoten wird mit Nn bezeichnet.
• Ein Zyklusgraph ist ein Graph nur einen einzigen Zyklus
enthält. Der Zyklusgraph mit n Knoten wird mit Cn
bezeichnet.
K5
• Km, n ist der vollständige bipartite Graph mit einer
Partition der Menge der Knoten in eine Menge M mit m
und eine Menge N mit n Knoten. Jeder Knoten aus M ist
zu allen Knoten aus N adjazent.
• Ein Weggraph ist ein Graph, der nur aus einem einzelnen
Weg besteht. Der Weggraph mit n Knoten heisst Pn.
K3,3
Graphen 19
Graphen 20
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Formale Grundlagen der Informatik
Theorem von Euler
Tests auf Planarität
• Eine Fläche eines Graphs ist eine endlich grosse, durch
den Graph abgegrenzte Region der Zeichenebene.
• Planare Zeichnung
• Sei G ein endlicher, planarer Graph mit einer Menge V
von Knoten, einer Menge E von Kanten und einer Menge
F von Flächen. Sei | V | > 0. Dann gilt
|V|+|F|=|E|+1
Knorr/Fuchs SS 2000
• 1. Eulerkriterium: Ist die dreifache Knotenzahl kleiner als
die Kantenzahl + 6, dann ist der Graph nicht planar.
• 2. Eulerkriterium: Ist die zweifache Knotenzahl kleiner als
die Kantenzahl + 4 und enthält der Graph keine Dreiecke,
dann ist der Graph nicht planar.
• 3. Eulerkriterium: Hat der Graph nur Knoten vom Grad 6
und grösser, dann ist der Graph nicht planar.
• Kuratowski Kriterium: Eine Graph ist genau dann planar,
wenn er weder K3,3 noch K5 noch einen Unterteilungsgraphen dieser zwei Graphen als Teilgraph enthält.
Unterteilungsgraph: Seien F und G zwei Graphen. F heisst
ein Unterteilungsgraph von G, wenn F aus G
ausschliesslich durch Hinzufügen von Knoten vom Grad 2
entsteht, die eine bereits bestehende Kanten zweiteilen.
Graphen 21
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Graphen 22
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Färbung von Graphen
Färbung von planaren Graphen
• Sei C eine Menge (von Farben). Eine Färbung eines
Graphs G = ( V , E ) ist eine Zuweisung von Elementen aus
V zu den Elementen von C so, dass adjazenten Knoten
unterschiedliche Elemente von C zugewiesen werden.
• Es ist relativ einfach zu zeigen, dass 5 Farben genügen, um
einen planaren Graph zu färben.
• Die chromatische Zahl eines Graphs G = ( V , E ) ist die
kleinste Zahl von Farben, mit der er gefärbt werden kann.
• Die Färbung von Karten ist äquivalent zur Färbung von
Graphen.
• Es gelang nicht, einen planaren Graph zu finden, der fünf
Farben brauchte.
• 1976 bewiesen Appel und Haken mit
Computerunterstützung, dass vier Farben genügen.
• Scheduling kann ebenfalls als Färbungsproblem
formuliert werden.
Graphen 23
Graphen 24
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Das Fünf Farben Theorem (1)
Das Fünf Farben Theorem (2)
• Behauptung: Jeder endliche, planare Graph G = ( V , E )
kann mit fünf (oder weniger) Farben gefärbt werden.
2. Es gibt genau eine Zusammenhangskomponente.
• Beweis: Induktion über die Anzahl der Knoten | V |.
Verankerung:
Für | V | 7 5 kann jeder Knoten mit einer
unterschiedlichen Farbe gefärbt werde. QED
Induktionsschritt:
Unter der Annahme, dass alle Graphen mit weniger
Knoten als G mit fünf Farben gefärbt werden können
(Induktionshypothese), müssen wir zeigen, dass auch G
mit fünf Farben gefärbt werden kann.
Man teile G in seine Zusammenhangskomponenten auf.
Wir unterscheiden zwischen Graphen mit mehr als einer
und mit genau einer Zusammenhangskomponente.
1. Falls es mehr als eine Zusammenhangskomponente
gibt, hat jede Zusammenhangskomponente weniger
Knoten als G. Gemäss Induktionshypothese können
diese mit fünf Farben gefärbt werden. Da es keine
Kanten zwischen den Zusammenhangskomponenten
gibt, haben wir damit bereits eine Färbung von G mit
fünf Farben.
Es gilt das Theorem von Euler| V | + | F | = | E | + 1. (a)
Wir betrachten nun die Zahl N von Paaren ( e , f ), wobei e
eine Kante einer Fläche f ist.
Jede Kante kann höchstens zwei Flächen begrenzen. Somit
gilt N 7 2 * | E |.
Jede Fläche wird von mindestens 3 Kanten begrenzt. Somit
gilt N 8 3 * | F | und damit 3 *| F | 7 2 * | E |.
(b)
Für jedes n sei Vn die Anzahl Knoten mit Grad n. Wenn k
der maximale Grad eines Knotens von G ist, so ist
| V | = | V1 | + | V2 | + … + | Vk |.
(c)
Es gilt: In einem endlichen Graph ist die Summe der
Grade der Knoten zweimal die Zahl der Kanten:
2 * | E | = | V1 | + 2 * | V2 | + … + k * | Vk |.
Nun folgt
072*|E|-3*|F|
| E | 7 3 * (| E | - | F |)
| E | 7 3 * (| V | - 1)
2 * | E | 7 6 * (| V | - 1)
Knorr/Fuchs SS 2000
Das Fünf Farben Theorem (3)
| V1 | + 2 * | V2 | + … + k * | Vk | 7
6 * | V1 | + 6 *| V2 | + … + 6 *| Vk | - 6
aus (b)
arithm.
aus (a)
arithm.
| V1 | + 2 * | V2 | + … + k * | Vk | 7 6 * (| V | - 1) aus (d)
Graphen 25
Formale Grundlagen der Informatik
(d)
Graphen 26
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Das Fünf Farben Theorem (4)
aus (c)
7 * | V7 | + … + k * | Vk | 7
5 * | V1 | + 4 *| V2 | + 3 *| V3 | + 2 * | V4 | + | V5 |
+ 6 *| V7 | + … + 6 *| Vk | - 6
arithm.
| V7 | + 2 * | V8 | … + (k – 6) * | Vk | + 6 7
5 * | V1 | + 4 *| V2 | + 3 *| V3 | + 2 * | V4 | + | V5 |
arithm.
6 7 5 * | V1 | + 4 *| V2 | + 3 *| V3 | + 2 * | V4 | + | V5 |
arithm.
| V1 | … | V5 | können somit nicht alle gleich 0 sein.
Damit muss es einen Knoten mit Grad 7 5 geben.
Sei P ein Knoten mit Grad 7 5. Sei G’ = ( V’ , E’ ) der
induzierte Teilgraph von G mit V’ = V \ { P }. G’ ist planar
und hat weniger Knoten als G. Somit kann dieser Graph
gemäss Induktionshypothese mit fünf Farben gefärbt
werden.
Der schwierigere Fall: Die zu P adjazenten Knoten sind mit
fünf unterschiedlichen Farben gefärbt. Wir nennen sie
willkürlich rot, orange, grün, jade und blau, wenn wir die
die Nachbarn von P im Uhrzeigersinn mit Pr , Po , Pg , Pj und
Pb bezeichnen.
Wir definieren einen rot-grün Weg als einen Weg von Pr
nach Pg, der nur Knoten verwendet, die rot und grün gefärbt
sind. Wir definieren ebenso einen orange-jade Pfad.
Diese müssen sich kreuzen, so dass es nicht beide Pfade
geben kann. Nehmen wir an, dass es keinen rot-grünen Weg
gibt. Wir färben dann P grün. Schliesslich färben wir jeden
roten bzw. grünen Knoten, der nur über rote und grüne
Knoten von P aus erreichbar ist, mit grün bzw. rot. Damit
haben wir eine Färbung von G mit fünf Farben.
Man nehme ein solche Färbung. Damit sind die zu P
adjazenten Knoten gefärbt.
Falls diese Knoten mit weniger als fünf unterschiedlichen
Farben gefärbt sind, steht für P noch eine neue Farbe zur
Verfügung.
Graphen 27
Graphen 28
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Färbung nicht planarer Graphen
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Charakteristische Funktion einer Relation
• Die charakteristische Funktion einer Relation R auf einer
Menge X ist eine Funktion von X % X auf { 0 , 1 }, mit dem
Wert 1, wenn das entsprechende Paar in der Relation ist, 0,
wenn nicht.
• Wenn n Elemente in der Menge X enthalten sind,
entspricht dies einer n % n Matrix A, deren ( r , s )-tes
Element 1 oder 0 ist, je nach dem, ob das Paar ( xr , xs ) in R
enthalten ist oder nicht.
K5
• Beispiel: X = { a , b , c }, R = { ( a , a ) , ( b , a ) , ( c , b ) }
 1 0 0


A =  1 0 0
 0 1 0


K3,3
Graphen 29
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Graphen 30
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Repräsentation von (Di-)Graphen als
Adjazenzmatrix
Repräsentation von Multigraphen als
Adjazenzmatrix
• Die Adjazenzmatrix eines (Di-)Graphs ist die
charakteristische Funktion der Kantenrelation.
• Der Eintrag in die Adjazenzmatrix ist die Anzahl Kanten
zwischen den Knoten.
0

0
1

0

0 1 0

0 0 1
0 0 1

1 1 0 
0

0
0

1

Graphen 31
2 1 0

0 1 1
0 0 1

0 0 1 
Graphen 32
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Matrix mit Wegen der Länge n
Konsolidierung der Kanten
• Sei G ein Graph und n U Á. Der Graph Gn enthält eine
Kante von x nach y genau dann, wenn es einen Weg der
Länge n von x nach y gibt.
Wenn uns nur interessiert, ob ein Weg existiert, und nicht
wie viele, lautet die Adjazenzmatrix An von Gn
• Für n = 2 und G =
0

1
1

1

0 1 1

0 0 1
0 0 1

1 1 1
lautet die Adjazenzmatrix An von Gn
0

0
0

1

2 1 0  0
 
0 1 1  0
×
0 0 1  0
 
0 0 1   1
2 1 0  0
 
0 1 1 1
=
0 0 1 1
 
0 0 1   1
0 2 3

0 0 2
0 0 1

2 1 1 
Graphen 33
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Transitive und reflexiv transitive Hülle
eines Graphs
• Sei A die Adjazenzmatrix einer binären Relation R auf
einer Menge X mit n Elementen.
• Wir definieren + auf der Menge { 0 , 1 } wie folgt:
0+0=0
0+1=1
1+0=1
1+1=1
Graphen 34
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Algorithmus von Warshall
• Die Berechnung der transitiven Hülle kann effizienter
gemacht werden, z.B. mit dem Algorithmus von Warshall.
• Sei Am eine n %n Matrix, deren ( r , s )-tes Element am( r , s
) 1 oder 0 ist, je nach dem ob es einen Weg von r nach s
gibt nur über Knoten aus { 1 , 2 , … m }. An ist die Matrix
der transitiven Hülle.
• Wir berechnen nacheinander A0, A1, …, An.
1. A0 = A, Hauptdiagonale von A0 auf 1 setzen
• Die Adjazenzmatrix der transitiven Hülle von R lautet
A + A 2 + … + An
2. Die Elemente von Am mit m > 0 werden wie folgt
berechnet:
am(r,s) = am-1(r,s) + am-1(r,m) * am-1 (m,s)
• Die Adjazenzmatrix der reflexiv transitiven Hülle von R
lautet
I + A + A2 + … + An-1
Graphen 35
Graphen 36
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Minimale Distanzen in gewichteten
Graphen
Gewichte der minimalen Wege einer
bestimmten Länge
• Verallgemeinerung der Berechnung der Erreichbarkeit
und des Zusammenhangs durch Attributierung der
Kanten mit einem Zahl.
• Sei A die Matrix der Gewichte der Kanten eines Digraphs.
Die Matrix der Gewichte der Kanten des Digraphs Gn ist
An, wobei das Minimum anstatt +, sowie + anstatt *
verwendet wird:
• Zur Vereinfachung geht man von vollständigen Graphen
aus, wobei Kanten, die nicht zum ursprünglichen Graph
gehören, das Gewicht T bekommen.
∞ 1 3 3 


 2 ∞ 2 ∞
4 ∞ ∞ 2


∞ 3 ∞ ∞


an(r,s) = min(a(r,1) + a(1,s), a(r,2) + a(2,s), …, a(r,n) +
a(n,r))
∞ 1 3 3   3 6

 
 2 ∞ 2 ∞  6 3
 4 ∞ ∞ 2  = ∞ 5

 
∞ 3 ∞ ∞  5 ∞

 
2
5

5 4
7 7

5 ∞ 
3
∞ 1 3 3  7 4 6

 
 2 ∞ 2 ∞ 5 7 5
 4 ∞ ∞ 2  =  7 10 7

 
∞ 3 ∞ ∞ 9 6 8

 
3
5

7
9

7 
Graphen 37
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Gewichte der minimalen Wege beliebiger
Länge
• Um die Gewichte der minimalen Wege beliebiger Länge
zwischen zwei Knoten zu bestimmen, nehmen wir das
Minimum der Wege aller Längen von 1 bis n-1,
min( J , A , A2 , … , An-1 ) mit
Graphen 38
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Algorithmus von Floyd
• Berechnung der minimalen Wege zwischen allen Knoten
• Wie der Algorithmus von Warshall für die Berechnung
der transitiven Hülle. Wir berechnen nacheinander
A0, A1, …, An.
1. A0 = A, Hauptdiagonale von A0 auf 1 setzen
2. Die Elemente von Am mit m > 0 werden wie folgt
berechnet:
 0 ∞ ∞ ∞


∞ 0 ∞ ∞
J =
∞ ∞ 0 ∞


∞ ∞ ∞ 0 


am(r,s) = min(am-1(r,s), am-1(r,m) + am-1 (m,s))
• Laufzeitverhalten O(n3)
• Für das Beispiel ergibt dies
0

2
4

5

1 3 3

0 2 4
5 0 2

3 5 0 
Graphen 39
Graphen 40
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Algorithmus von Dijkstra
Algorithmus von Prim
• Berechnung der minimalen Wege von einem Startknoten
zu allen anderen Knoten
• Berechnung eines minimalen Spannbaums eines Graphs
• Ein „greedy“ Algorithmus mit Laufzeitverhalten
O(n2)
• Bei jedem Schritt haben wir eine Menge S von Knoten, für
die der minimale Weg bekannt ist und zu der wir einen
weiteren Knoten hinzufügen. Nach n Schritten enthält S
alle Knoten. Die Länge der Wege wird in einem Array d
der Länge n gespeichert.
1. Man nummeriere die Knoten des Graphs von 1 bis n,
wobei der Startknoten die Nummer 1 bekommt. Man
initialisiere S = { 1 }, d1 = 0, und di = a1,i für i ≠ 1.
2. Falls | S | < n, füge man den Knoten i aus {1, 2,…n} \ S
hinzu, für den di minimal ist. Falls es mehr als einen
solchen Knoten gibt, wähle man willkürlich einen aus.
Für alle Knoten j, die nicht in S sind, setze man
dj = min( dj, di + ai,j )
• Ein „greedy“ Algorithmus mit Laufzeitverhalten O(n2)
• Bei jedem Schritt haben wir eine Menge S von Knoten und
einen minimalen Spannbaum T auf S, und fügen einen
Knoten zu S und eine Kante zu T. Nach n Schritten enthält
S alle Knoten und T einen minimalen Spannbaum.
1. Man nummeriere die Knoten des Graphs von 1 bis n.
Man initialisiere S = { 1 } und T = {} .
2. Falls | S | < n, suche Knoten i aus S und j aus
{1, 2,…n} \ S mit minimalem ai,j. Falls es mehr als ein
solches Paar gibt, wähle man willkürlich eines aus. Man
füge j zu S und die Kante ( i , j ) zu T.
Falls | S | = n, fertig.
Falls | S | = n, fertig.
• Der Algorithmus kann so erweitert werden, dass nicht nur
die Länge des minimalen Wegs, sondern auch der Weg
selbst berechnet wird. Die minimalen Wege bilden
zusammen einen Spannbaum des Graphs.
Graphen 41
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Graphen 42
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Übersicht Matrixoperationen
Eulersche Graphen
• Sei A eine n % n Matrix, die zu einem Graph gehört
• Ein Eulerscher Weg ist ein Weg, in dem jede
Verbindungskante des Graphen genau einmal auftaucht.
Berechnung
Elemente von A
Anzahl Wege Anzahl Kanten
der Länge 2
Operation A→ A'
x'ij = xi1*x1j + xi2*x2j +…+ xin*xnj
• Ein Eulerscher Graph ist ein Graph, in dem es einen
geschlossenen Eulerschen Weg gibt, d.h., Anfangs- und
Endpunkt sind gleich.
• Theoreme:
Existenz eines 1 wenn mind. Eine x'ij = max(xi1*x1j, xi2*x2j, …,
Wegs der
Kante, 0 wenn
xin*xnj)
Länge 2
keine Kante
1. Ein Graph ist genau dann ein Eulerscher Graph, wenn
er zusammenhängend ist und jeder Knoten einen
geradzahligen Grad hat.
Minimaler
Weg der
Länge 2
2. Ein Graph enthält genau dann einen offenen Eulerschen
Weg, wenn er zusammenhängend ist und höchstens
zwei Knoten mit ungeradzahligem Grad besitzt.
Kosten jeder
Kante, ∞ wenn
keine Kante
x'ij = min(xi1+x1j, xi2+x2j, …,
xin+xnj)
3. In jedem Graphen ist die Anzahl der Knoten mit
ungeradzahligem Grad gerade.
Graphen 43
Graphen 44
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Hamiltonsche Graphen
• Ein Hamiltonscher Weg ist ein Weg, in dem jeder Knoten
des Graphen genau einmal auftaucht.
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Beziehung zwischen Eulerschen und
Hamiltonschen Graphen
• Ein Hamiltonscher Graph ist ein Graph, in dem es einen
geschlossenen Hamiltonschen Weg gibt.
• Theoreme:
1. Ist in einem Graph mit mindestens drei Knoten der
Grad jedes Knotens grösser gleich der halben Anzahl
von Knoten, dann ist der Graph Hamiltonsch.
2. Ist in einem Graph mit mindestens drei Knoten für jedes
Paar nicht adjazenter Knoten die Summe der Grade
grösser oder gleich der Anzahl seiner Knoten, dann ist
der Graph Hamiltonsch.
Graphen 45
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Graphen 46
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Das Traveling Salesman Problem
Petri Netze
• Ein Handelsreisender soll von seinem Wohnort alle Städte
auf einer Landkarte je einmal besuchen, und zwar so, dass
die Anzahl zurückgelegter Kilometer minimal ist.
• Petri Netze sind eine Technik zur Darstellung paralleler
und verteilter Prozesse.
• Dies entspricht der Suche nach einem minimalen
Hamiltonschen Zyklus.
• Diese Problem ist NP-vollständig, d.h., obwohl es nicht
bewiesen ist, dass es nicht in polynomialer Zeit berechnet
werden kann, sind alle bekannten Algorithmen von
exponentieller Komplexität.
• Sogar die Suche nach irgendeinem Hamiltonschen Zyklus
ist ein NP-vollständiges Problem.
• Bei beiden Problemen müssen im schlimmsten Fall alle
Wege durch den Graph aufgezählt und getestet werden.
Graphen 47
• Eine Aktion bedeutet, dass das System in einen neuen
Zustand übergeführt wird. Eine Aktion wird durch eine
Transition modelliert und als dicken Strich gezeichnet.
• Aktionen können nur eintreten, wenn gewisse
Bedingungen erfüllt sind. Eine Bedingung wird durch
eine Stelle modelliert und als Kreis gezeichnet.
• Gültige Bedingungen werden durch Markierung der
Stellen modelliert. Markierungen werden als Token
(=fette Punkte) dargestellt. Stellen können mehrere
Marken tragen.
Graphen 48
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Formale Grundlagen der Informatik
Struktur der Petri Netze
Bezeichnungen in Petri Netzen
Ein Petri Netz ist ein Tripel (S, T, !) bestehend aus
• Eingangsstellen der Transition t
1. einer nichtleeren, endlichen Menge S von Stellen (auch
Plätze genannt).
2. einer nichtleeren, endlichen Menge T von Transitionen
mit S € T = ^.
Knorr/Fuchs SS 2000
2t = { s § S | (s , t) § !}
• Ausgangstellen der Transition t
t2 = { s § S | (t , s) § !}
3. einer Relation ! 5 (S % T) ~ (T % S ) von den Stellen auf
die Transitionen und den Transitionen auf die Stellen.
! heisst Flussrelation.
• Eingangstransitionen der Stelle s
Ein Petri Netz ist ein bipartiter Digraph. Die beiden
Mengen der Bipartition sind die Stellen und Transitionen.
• Ausgangstransitionen der Stelle s
2s = { t § T | (t , s) § ! }
s2 = { t § T | (s , t) § !}
Graphen 49
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Graphen 50
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Statik der Petri Netze
Dynamik der Petri Netze
• Eine Funktion M : S DÁ0 von den Stellen in die
natürlichen Zahlen heisst eine Markierung eines Petri
Netzes. M gibt zu jeder Stelle die Anzahl Marken an, die
auf der Stelle liegen.
• Ein Petri Netz trage eine Markierung. Wenn es eine
Transition gibt, die durch die Markierung aktiviert ist,
dann kann das Petri Netz schalten (auch feuern genannt).
• Eine Stelle s § S heisst markiert unter der Markierung M,
wenn s mit mindestens einer Marke belegt ist: M(s) > 0.
• Eine Transition t § T heisst aktiviert durch die
Markierung M, wenn jede Eingangsstelle von t markiert
ist.
• Sind mehrere Transitionen durch eine Markierung
aktiviert, gibt es zwei Möglichkeiten:
1. Sind die Mengen der Eingangs- und Ausgangsstellen
der Transitionen paarweise disjunkt, dann sind die
Transitionen unabhängig und können alle schalten.
2. Sonst wählt das Petri Netz nichtdeterministisch eine
unabhängige Menge von Transitionen und schaltet sie.
• Schalten:
Sei M eine Markierung und s eine aktivierte Transition.
Schaltet s, ergibt sich eine neue Markierung M':
M'(s) = M(s) – 1 O s § 2t, s è t2
M'(s) = M(s) + 1 O s § t2, s è 2t
M'(s) = M(s) sonst.
Graphen 51
Graphen 52
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Beispiel eines Petri Netzes
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Anhang: Induktionsbeweis
Es gibt drei „Beweisarten“:
1. direkter Beweis
2. indirekter Beweis (Widerspruchsbeweis)
3. Induktionsbeweis
Die Induktion liefert ein Beweisverfahren für Aussagen A(n)
mit n§Á. Formal lautet das Prinzip der Induktion:
A(1) ∧ (∀n§Á:A(n) LA(n+1)) L (∀n§Á: A(n))
Ein Induktionsbeweis hat folgende Teile:
• Induktionsbehauptung
• Induktionsverankerung: Man zeigt die Induktionsbehauptung für eine feste natürliche Zahl, etwa A(1).
• Induktionsannahme: Die Aussage sei richtig für A(n).
• Induktionsschluss: Beweise A(n+1) aus A(n). Formal,
A(n) L A(n+1)
Graphen 53
Formale Grundlagen der Informatik
Knorr/Fuchs SS 2000
Anhang: Beispiel für einen
Induktionsbeweis
• Induktionsbehauptung:
A(n) = 1 + 2 + … + n = n (n+1) /2
• Induktionsverankerung:
A(1): 1 = 1 (1 + 1) / 2 ☺
• Induktionsannahme: Die Behauptung sei richtig für n.
• Induktionsschluss: A(n) L A(n+1)
1 + 2 + … + n + (n+1) = n (n + 1) / 2 + (n+1)
= (n + 1) (n/2 + 1) = (n + 1) 2/2 (n/2 + 1)
= (n + 1) (n + 2) / 2
☺
Graphen 55
Graphen 54
Sprachen & Automaten
Grundlagen
• formale Sprachen zur Formulierung von Wissen
Programmiersprachen
Logik
Teilmengen natürlicher Sprachen
...
• Alphabet A
endliche, nichtleere Menge von Buchstaben
• Beschreibung formaler Sprachen durch Grammatiken
• leeres Wort
ε
• Wort
endliche Aneinanderreihung (Konkatenation) von
Elementen aus A
• Beschreibung und Verarbeitung formaler Sprachen durch
Automaten, d.h. abstrakte Maschinen
• Klassifizierung formaler Sprachen
Typen von Sprachen ↔
Typen von Grammatiken ↔
Typen von Automaten
• Menge aller Wörter A*
Menge aller endlichen Folgen von Elementen aus A
A* = {a a ... a |a ∈ A} ∪ {ε}
n
1 2
i
A+ = A* - {ε}
• Beispiel
A ={a,b}
A* = {ε, a, b, aa, ab, bb, aaa, aab, abb, ...}
• wichtige Typen formaler Sprachen und Automaten
reguläre Sprachen ↔ endliche Automaten
kontextfreie Sprachen ↔ Kellerautomaten
• Konkatenation
zweistellige Operation · : A* x A* → A*
u, v ∈ A*, u · v wird uv geschrieben
• algebraische Struktur (A*, ·) ist Halbgruppe (Monoid)
u, v ∈ A* ⇒ u · v = uv ∈ A*
(Abgeschlossenheit)
(u · v) · w = u · (v · w) = uvw
ε·u=u·ε=u
(Assoziativität)
(neutrales Element)
2
1
Grundlagen
Sprachen
• Abkürzung
• Sprachen L über einem Alphabet A
L ⊆ A*
n
u = uu...u
(n-mal)
u =ε
0
• L1 und L2 Sprachen über A
Beispiele: a = aaa, (ab) = ababab, (abc) = ε
3
3
0
• Länge eines Wortes w
|w|
|ε| = 0, |a1a2 ... an|= n für ai ∈ A
L1 ∪ L2 = {u|u ∈ L1 oder u ∈ L2}
(Vereinigung)
L1 ∩ L2 = {u|u ∈ L1 und u ∈ L2}
(Durchschnitt)
C
n
|uv| =|u| + |v|, |u |= n · |u|
Beispiel: |abc| = 3
L1 = A * - L 1
(Komplement)
L1 L2 = {uv|u ∈ L1 und v ∈ L2}
(Produkt)
• Sprache L
0
L = {ε}
1
L =L
L
n+1
n
n
= LL
m
L L =L
n m
n+m
(L ) = L
nm
Kleene-Sternoperation
L* = ∪n≥0 L = {u1u2 ... | ui ∈ L} ∪ {ε}
n
L+ = ∪n≥1 L
3
n
4
Sprachen
Grammatiken
• Beispiel
A = {(, ), +, -, *, /, X}
• Beispielgrammatik für ARIM
E→T
(Expression ist Term)
E→E+T
(Expression ist Expression + Term)
T→F
(Term ist Faktor)
T → T*F
(Term ist Term * Faktor)
F→X
(Faktor ist Konstante oder Variable)
F → (E)
(Faktor ist Expression in Klammern)
(X steht für irgendeine Konstante oder Variable)
Sprache ARIM ⊆ A* der arithmetischen Ausdrücke
∈ ARIM
∈ ARIM
∉ ARIM
X
X/(X+X) +X*X
X+*X
• Grammatiken sind Regeln der Form
linke Seite → rechte Seite, die die linke Seite ersetzt
(Abkürzungen: LHS für linke Seite, RHS für rechte Seite)
• Probleme
Sprachen sind i. A. unendliche Objekte; um damit
umgehen zu können, brauchen wir endliche
Beschreibungen.
Welche Worte gehören zur Sprache, welche nicht?
Diese beiden Fragen werden durch Grammatiken oder
(abstrakte) Automaten beantwortet.
• Regeln enthalten Nichtterminalsymbole (z.B. E, T, F) und
Terminalsymbole (z.B. X)
• Regeln werden solange angewendet, bis das abgeleitete
Wort nur noch aus Terminalsymbolen besteht
• jedes so abgeleitete Wort gehört zu der von der
Grammatik definierten (erzeugten) Sprache
• Beispiel
E ⇒ E + T ⇒ T + T ⇒ T*F +T ⇒ F*F +T ⇒ X*F +T ⇒ X*X
+T ⇒ X*X +F ⇒ X*X +X
5
6
Grammatiken
Grammatiken
• Ableitung kann als Syntaxbaum dargestellt werden
• (Phrasenstruktur-) Grammatik G ist ein Quadrupel
G = (N, T, S, R)
N endliche Menge von Nichtterminalsymbolen
T endliche Menge von Terminalsymbolen
N∩T=∅
S ∈ N ist das Startsymbol
R ist eine endliche Menge von Regeln (Produktionen)
R ⊆ (N ∪ T)+ x (N ∪ T)*
E
T
E
T
F
T
F
F
X
*
X +
X
• bei der Ableitung wurde immer das am weitesten links
stehende Nichtterminal ersetzt (Linksableitung)
• seien u= xyz, v=xy'z mit x, z ∈ (N ∪ T)*
Relation u → G v (u geht unter G unmittelbar in v über)
falls
y → y' eine Regel in R ist
• G erzeugt (definiert) die Sprache
L(G) = {w ∈ T*|S → * w}
G
→G* ist die reflexiv transitive Hülle von →G
• Grammatiken heissen äquivalent, wenn sie die gleiche
Sprache erzeugen
7
8
Grammatiken
Chomsky Hierarchie
• Folge von Wörtern (w0, w1, ... , wn) mit w0 = S und wn∈ T*
und w0 ⇒ w1⇒... ⇒ wn heisst (maximale) Ableitung von
wn
• Noam Chomsky hat Grammatiken – und die damit
assoziierten Sprachen – in 4 Typen eingeteilt und es gilt
Typ 3 ⊂ Typ 2 ⊂ Typ 1 ⊂ Typ 0
• Anwendung einer Regel y → y', die aus dem Wort xyz
das Wort xy'z macht, heisst linksmaximal
(rechtsmaximal), wenn es keine Regel gibt, in der y weiter
links (rechts) auftritt, als in der Zerlegung xyz
• Typ 0: Phrasenstrukturgrammatiken
es gibt bezüglich der Regeln keine Einschränkungen
• Linksableitung (Rechtsableitung) ist eine maximale
Ableitung, deren Regelanwendungen alle linksmaximal
(rechtsmaximal) sind
• Beispiel einer Grammatik G = (N, T, S, R)
N = {S, B, C}
T = {a, b, c}
R = {S → aSBC, S → aBC, CB → BC, aB → ab, bB → bb,
bC → bc, cC → cc}
S ⇒ aSBC ⇒ aaBCBC ⇒ aabCBC ⇒ aabBCC ⇒ aabbCC
2 2 2
⇒ aabbcC ⇒ aabbcc = a b c
L(G) = {a b c | n ≥ 1}
n n n
• Typ 1: kontextsensitive Grammatiken
für alle Regeln LHS → RHS gilt |LHS| ≤ |RHS|
kontextsensitive Regel uNv → uRHSv: Nichtterminal N
kann nur im Kontext u, v durch RHS ersetzt werden
Sprache {a b c | n ≥ 1} ist kontextsensitiv
n n n
• Typ 2: kontextfreie Grammatiken
für alle Regeln LHS → RHS gilt zusätzlich LHS ∈ N
kontextfreie Regel N → RHS: Nichtterminal N kann
bedingungslos – in jedem Kontext – durch RHS ersetzt
werden
L = {a b | n ≥ 1} ist kontextfrei
Sprache ARIM der arithmetischen Ausdrücke ist
kontextfrei
n n
• Typ 3: reguläre Grammatiken
für alle Regeln LHS → RHS gilt zusätzlich RHS ∈ T
∪ TN, d.h. die rechten Seiten sind entweder einzelne
Terminalzeichen oder ein Terminalzeichen gefolgt von
einem Nichtterminalzeichen
Wieso?
9
Chomsky Hierarchie
10
Chomsky Hierarchie
• Sprache L ⊆ T* heisst vom Typ X, wenn eine Grammatik
vom Typ X – aber keine vom Typ X+1 – die Sprache L
erzeugen kann
(Eine Sprache vom Typ X kann aber auch durch
Grammatiken vom Typ X-1 erzeugt werden.)
• alle Sprachen vom Typ 1, 2, 3 sind entscheidbar, d.h. es
gibt einen Algorithmus, der bei der Eingabe einer
Grammatik G und eines Wortes w nach endlicher Zeit
feststellt, ob w ∈ L(G) oder nicht
Typ
Sprache
Grammatik
Maschine
Sprachzugehörigkeit
3
regulär
linkslinear
rechtslinear
endlicher
Automat
entscheidbar
Kellerautomat
entscheidbar
linear
beschränkte
TuringMaschine
entscheidbar
TuringMaschine
semientscheidbar
linksregulär
rechtsregulär
2
kontextfrei
• Sprachen vom Typ 0 werden auch rekursiv aufzählbar
genannt; sie sind semi-entscheidbar
• Typ 0 Grammatiken sind endliche Objekte, d.h. die
Menge aller Typ 0 Grammatiken ist abzählbar, d.h. hat
die Kardinalität von N ; da jeder Typ 0 Sprache
mindestens eine Typ 0 Grammatik zugeordnet werden
kann, ist die Menge aller Typ 0 Sprachen ebenfalls
abzählbar
• Menge aller Sprachen ist überabzählbar, hat die
Kardinalität von R – schon Potenzmenge von {0, 1}* ist
überabzählbar
• es gibt also Sprachen, die nicht durch Grammatiken
beschrieben werden können
11
kontextfrei
Chomsky
Greibach
reduziert
1
kontextsensitiv
Kontextsensitiv
Kuroda
0
rekursiv
aufzählbar
allgemein
separiert
normal
12
Chomsky Hierarchie
Reguläre Sprachen (Typ 3)
• in der praktischen Informatik spielen vor allem die
regulären und die kontextfreien Sprachen eine Rolle
• reguläre Sprachen werden durch lineare und reguläre
Grammatiken beschrieben
• viele Probleme sind allerdings kontextsensitiv; man
versucht dann, mit kontextfreien Grammatiken zu
arbeiten und die Kontextbedingungen durch nichtgrammatische Zusatzbedingungen zu behandeln
Beispiele:
Für Sprachen wie Pascal oder Modula werden
kontextfreie Grammatiken verwendet, obwohl Typprüfungen, Kontrolle von Parametern in Prozeduraufrufen, Verwendung von vorher deklarierten
Objekten etc. eigentlich kontextsensitiv sind; diese
Kontrollen werden durch zusätzliche Algorithmen
erledigt.
Bei der Verarbeitung natürlicher Sprache durch den
Computer führt die Numerusunterscheidung – Singular
oder Plural – zu Kontextsensitivität; man verwendet
trotzdem kontextfreie Regeln, z. B. je einen Satz von
Regeln für Singular und einen für Plural. Sogenannte
Definite Clause Grammatiken erlauben eine kompaktere
Darstellung.
• linkslineare Grammatik
Jede Regel hat links genau ein Nichtterminal und rechts
entweder genau ein Terminal oder genau ein
Nichtterminal gefolgt von genau einem Terminal.
N→T
N → NT
• rechtslineare Grammatik
Jede Regel hat links genau ein Nichtterminal und rechts
entweder genau ein Terminal oder genau ein Terminal
gefolgt von genau einem Nichtterminal.
N→T
N → TN
• linksreguläre Grammatik
Jede Regel hat links genau ein Nichtterminal und rechts
entweder genau ein Terminal oder genau ein
Nichtterminal gefolgt von genau einem Terminal oder
das leere Wort ε.
N→T
N → NT
N→ε
• rechtsreguläre Grammatik
Jede Regel hat links genau ein Nichtterminal und rechts
entweder genau ein Terminal oder genau ein Terminal
gefolgt von genau einem Nichtterminal oder das leere
Wort ε.
N→T
N → TN
N→ε
13
14
Reguläre Sprachen (Typ 3)
Automaten
• für eine reguläre oder Typ 3 Sprache L ⊆ T* sind die
folgenden Aussagen äquivalent
L\{ε} wird durch eine linkslineare Grammatik beschrieben.
L\{ε} wird durch eine rechtslineare Grammatik beschrieben.
L wird durch eine linksreguläre Grammatik beschrieben.
L wird durch eine rechtsreguläre Grammatik beschrieben.
• Automaten sind abstrakte Maschinen
• Pumping Lemma
Eine Version des sogenannten Pumping Lemma wird
verwendet, um nachzuweisen, dass Sprachen – z.B.
n n
L={a b | n≥ 1} – nicht regulär sind.
• reguläre Sprachen sind unter Vereinigung, Durchschnitt,
Konkatenation, Sternbildung, Komplement und Spiegelung abgeschlossen
• konkrete Maschinen in Hardware und Software – z.B.
Billetautomaten, Computer, Menusteuerung eines
Computers, Compiler – sind oft Realisierungen von
Automaten
• Automaten haben endlich viele Zustände; es gibt
ausgezeichnete Anfangs- und Endzustände
• zwischen Zuständen kann es Übergänge geben, die durch
Eingaben – z.B. das Einlesen eines Buchstaben oder eines
Wortes – ausgelöst werden
• liest der Automat ein Wort, dann geht er in einen neuen
Zustand über, der vom vorherigen Zustand und vom
eingelesenen Wort abhängt
• deterministischer Automat: Folgezustand ist eindeutig
bestimmt
• nichtdeterministischer Automat: es gibt mehrere Folgezustände
• ausserdem kann ein Automat einen Speicher haben
• Automaten werden in Klassen eingeteilt, die die
Chomsky Hierarchie der Sprachen widerspiegelt
• jedem Sprachtyp kann eindeutig eine Automatenklasse
zugeordnet werden und umgekehrt
15
16
Endliche Automaten
Endliche Automaten
• endlicher Automat M ist ein Quadrupel M = (Z, A, z0, t)
• Darstellung als Automatentafel
Z
A
z0 ∈ Z
endliche Menge von Zuständen
endliches Eingabealphabet
Anfangszustand
t
Zustandsübergangsfunktion Z x A → P(Z)
• t(z,a) ist die Menge aller Zustände, die der Automat M
einnehmen kann, wenn er im Zustand z ∈ Z den Buchstaben a ∈ A liest
• deterministischer endlicher Automat: t(z,a) enthält für
jedes Paar (z,a) genau ein Element
a
b
z0
z1
z3
z1
z2
z0
z2
z3
z1
z3
z0
z2
• nichtdeterministischer endlicher Automat: t(z,a) enthält
für mindestens ein Paar (z,a) mehr als ein Element
• graphische Darstellung
• Beispiel:
Z = {z0, z1, z2, z3}
a
A = {a,b}
t(z0,a) = z1
t(z2,a) = z3
t(z0,b) = z3
t(z2,b) = z1
t(z1,a) = z2
t(z3,a) = z0
t(z1,b) = z0
t(z3,b) = z2
z3
z2
b
a
b
b
a
b
z0
z1
a
17
18
Endliche Automaten
Endliche Automaten
• akzeptierender endlicher Automat M ist ein Quintupel M
= (Z, A, z0, t, E)
• Beispiel:
Z = {z0, z1, z2, z3}
(Z, A, z0, t)
endlicher Automat
E⊆Z
endliche Menge von Endzuständen
A = {a,b}
E = z3
• nichtleeres Wort aus Eingabebuchstaben wird vom
Automaten akzeptiert, wenn es zu diesem Wort eine
Folge von Zustandsübergängen gibt, die in einem
Endzustand endet
• zu jedem akzeptierenden Automaten M gibt es eine
Sprache L(M) ⊆ A*, die M akzeptiert
t(z0,a) = z1
t(z2,a) = z3
t(z0,b) = z3
t(z2,b) = z1
t(z1,a) = z2
t(z3,a) = z0
t(z1,b) = z0
t(z3,b) = z2
• graphische Darstellung
• sei t* als Funktion Z x A* → Z definiert durch
t*(z,ε) = z
z∈Z
a
z3
z2
b
t*(z,ax) = t*(t(z,a),x)
a ∈ A, x ∈ A*
dann akzeptiert M die Sprache
L(M) = {x ∈ A*|t*(z , x) ∈ E}
a
b
b
a
b
0
z0
z1
• Jede durch einen (nicht-) deterministischen endlichen
Automaten akzeptierte Sprache ist regulär (Typ 3); jede
reguläre Sprache wird durch einen (nicht-)
deterministischen endlichen Automaten akzeptiert.
• Beispielautomat landet nach den Worten b, bab, aaa, abb,
bbbbb, ... im Endzustand z3, er "akzeptiert" diese Worte
19
20
a
Reguläre Sprachen
Minimale endliche Automaten
• Konstruktion eines deterministischen endlichen
Automaten M = (Z, A, SM, t, E), der die durch eine rechtslineare Grammatik G = (N, T, SG , R) erzeugte reguläre
Sprache L(G) akzeptiert
Z = N ∪ {accepted} ∪ {not accepted}
A=T
SM = SG
• zwei endliche Automaten heissen äquivalent, wenn sie
dieselbe Sprache akzeptieren
E = accepted
Grammatikregel von der Art N1 → TN2 definiert den
Übergang t(N1, T) = N2
Grammatikregel von der Art N1 → T definiert den
Übergang t(N1, T) = accepted
für alle anderen Paare gilt t(N, T) = not accepted
• Konstruktion des einfachsten äquivalenten Automaten,
der eine gegebene Sprache akzeptiert
Determinierung:
nichtdeterministischer endlicher Automat wird durch
einen äquivalenten deterministischen ersetzt
Vereinfachung:
Elimination unerreichbarer Zustände
Reduzierung:
Elimination von funktionsgleichen Teilautomaten
• Determinierung: zu jedem nichtdeterministischen
endlichen Automaten M = (Z, A, z0, t, E) gibt es einen
äquivalenten deterministischen M' = (Z', A', z0', t', E'), der
Potenzautomat genannt wird.
Z' = P(Z)\{∅}
A' = A
z0' = {z0}
• Beispiel:
Grammatik S → aS|aA, A → bA|b über Alphabet {a,b}
Z = {S, A, accepted, not accepted}
S→aS
definiert
t(S,a)=S
S→aA
definiert
t(S,a)=A
A→bA definiert
t(A,b) =A
A→b
definiert
t(A,b) =accepted
t(S,b) = t(A,a) = not accepted
t'(X) = ∪z∈X t(z) mit X ⊆ Z
E' = {X ⊆ Z| X ∩ E ≠ ∅}
• analog konstruiert man eine reguläre Grammatik der von
einem endlichen Automaten akzeptierten Sprache
22
21
Minimale endliche Automaten
Minimale endliche Automaten
• Beispiel für Determinierung
• Vereinfachung: zu jedem endlichen Automaten gibt es
einen äquivalenten, aus dem die nicht erreichbaren
Zustände entfernt wurden
z1
a
b
c
z1, z3
z1, z2
z3
z2
z1, z2
z3
z1
z3
z2, z3
z2
z2, z3
a
b
c
{z1}
{z1, z3}
{z1, z2}
{z3}
{z2}
{z1, z2}
{z3}
{z1}
{z3}
{z2, z3}
{z2}
{z2, z3}
{z1, z2}
{z1, z2, z3}
{z1, z2, z3}
{z1, z3}
{z1, z3}
{z1, z2, z3}
{z1, z2}
{z2, z3}
{z2, z3}
{z1, z2, z3}
{z2, z3}
{z1, z2, z3}
{z1, z2, z3}
{z1, z2, z3}
{z1, z2, z3}
{z1, z2, z3}
• Beispiel:
a
b
c
z1
z2
z2
z3
z2
z3
z3
z3
z3
z1
z1
z1
z4
z2
z3
z4
• Zustand z4 ist nicht erreichbar, d.h. es gibt keinen
Übergang von einem der anderen Zustände z1, z2, z3
• Streichen der letzten Zeile führt wieder zu einem
sinnvollen Automaten
23
a
b
c
z1
z2
z2
z3
z2
z3
z3
z3
z3
z1
z1
z1
24
Minimale endliche Automaten
Minimale endliche Automaten
• zwei Zustände z1, z2 ∈ Z eines endlichen Automaten (Z,
A, z0, t, E) heissen äquivalent, wenn die Automaten (Z, A,
z1, t, E) und (Z, A, z2 , t, E) äquivalent sind, d.h. die
Teilautomaten, die in z1 bzw. z2 starten, akzeptieren die
gleiche Sprache
• Beispiel für Reduzierung
• ein endlicher Automat heisst reduziert, wenn er keine
äquivalenten Zustände enthält
• Zu jedem deterministischen endlichen Automaten gibt es
einen äquivalenten, der reduziert ist und
Quotientenautomat genannt wird. Die Konstruktion des
Quotientenautomaten geschieht über die rekursive
Definition von Äquivalenzklassen von Zuständen (Details
in Cap).
a
b
z1
z2
z3
z2
z2
z4
z3
z3
z5
z4
z2
z7
z5
z6
z3
z6
z6
z6
z7
z7
z4
• man erhält folgende Äquivalenzklassen
K1 = {z1}, K2 = {z2, z4, z7}, K3 = {z3, z5, z6}
und den reduzierten Automaten
a
b
K1
K2
K3
K2
K2
K2
K3
K3
K3
26
25
Minimale endliche Automaten
Endliche Automaten mit Ausgabefunktionen
• Minimalautomaten: bis auf Isomorphie – d.h.
Umbenennung der Zustände – gibt es zu jedem endlichen
Automaten genau einen äquivalenten deterministischen
Automaten, der einfach und reduziert ist. Der
Minimalautomat kann durch Determinierung,
Vereinfachung und Reduzierung bestimmt werden.
Dieses Verfahren kann automatisiert werden.
• endliche Automaten können um Ausgabefunktionen zur
Berechnung von Werten erweitert werden
• Moore Automaten M = (Z, E, z0, t, A, w) haben eine
Ausgabefunktion, die vom Zustand abhängt
Z
endliche Menge von Zuständen
E
endliches Eingabealphabet
Anfangszustand
z0 ∈ Z
t
A
w
Zustandsübergangsfunktion Z x E → Z
endliches Ausgabealphabet
Ausgabefunktion: Z → A
• Mealy Automaten M = (Z, E, z0 , t, A, w) haben eine
Ausgabefunktion, die vom Zustand und vom zuletzt
gelesenen Eingabewert abhängt
Z
endliche Menge von Zuständen
E
endliches Eingabealphabet
Anfangszustand
z0 ∈ Z
t
A
w
Zustandsübergangsfunktion Z x E → Z
endliches Ausgabealphabet
Ausgabefunktion: Z x E → A
• Moore und Mealy Automaten wandeln eine Eingabe in
eine gleich lange Ausgabe um
• beide Automaten sind gleichwertig
27
28
Kontextfreie Sprachen (Typ 2)
Kontextfreie Sprachen (Typ 2)
• kontextfreie Sprachen werden durch kontextfreie,
Chomsky Normalform, Greibach Normalform und
reduzierte Grammatiken beschrieben
• für eine kontextfreie oder Typ 2 Sprache L ⊆ T* sind die
folgenden Aussagen äquivalent
L wird durch eine kontextfreie Grammatik beschrieben.
L\{ε} wird durch eine Grammatik in Chomsky
Normalform beschrieben.
L\{ε} wird durch eine Grammatik in Greibach
Normalform beschrieben.
L wird durch eine reduzierte Grammatik beschrieben.
• kontextfreie Grammatik
Jede Regel hat links genau ein Nichtterminal.
N→R
• Chomsky Normalform
Jede Regel hat links genau ein Nichtterminal und rechts
entweder genau ein Terminal oder genau zwei
Nichtterminale.
N→T
N → NN
• Greibach Normalform
Jede Regel hat links genau ein Nichtterminal und rechts
entweder genau ein Terminal oder genau ein Terminal
gefolgt von einem oder mehr Nichtterminalen.
N→T
N → TN
N → TNN ...
• Pumping Lemma
Eine Version des Pumping Lemma wird verwendet, um
n n n
nachzuweisen, dass Sprachen – z.B. L={a b c | n≥ 1} –
nicht kontextfrei sind.
• kontextfreie Sprachen sind unter Vereinigung,
Konkatenation und Sternbildung abgeschlossen
• reduzierte Grammatik
Jede Regel hat links genau ein Nichtterminal; wenn es
sich nicht um das Startsymbol handelt, stehen rechts nur
Terminale; jedes Nichtterminal taucht rechts in einer
Regel auf, in der links das Startsymbol steht.
29
30
Kellerautomaten
Kellerautomaten
• Kellerspeicher (stack): abstrakter Datentyp über
endlichem Kelleralphabet K.
Keller wird durch Worte K* ∪ {ε} repräsentiert.
• Anfang: Zustand z0, Keller enthält nur #
Operationen
push:
K* x K* → K*
pop:
top:
K* \ {ε} → K*
K* \ {ε} → K
push(w,k) = wk
pop(k0 k1 ... kn) = k1 ... kn
top(k0 k1 ... kn) = k0
• Kellerautomat M = (Z, A, K, z0, #, E, t) ist ein endlicher
Automat mit einem Kellerspeicher.
Z
endliche Menge von Zuständen
A
endliches Eingabealphabet
K
endliches Kelleralphabet
Anfangszustand
z0 ∈ Z
#∈K
E⊆Z
t
Anfangskellerzeichen
endliche Menge von Endzuständen
Zustandsübergangsfunktion
Z x (A ∪ {ε}) x K → P(Z x K*)
31
• später: Zustand z, oberstes Kellerzeichen k, nächstes
Eingabezeichen a
Übergang mit Lesen eines Eingabezeichens:
Menge t(z,a,k) ist nicht leer: Kellerautomat wählt ein
Element (z', k') aus dieser Menge, geht in Zustand z',
entfernt k durch pop vom Keller, schreibt mit push k'
auf den Keller
spontaner Übergang ohne Lesen eines Eingabezeichens:
Menge t(z,ε,k) ist nicht leer: Kellerautomat wählt ein
Element (z', k') aus dieser Menge, geht in Zustand z',
entfernt k durch pop vom Keller, schreibt mit push k'
auf den Keller
• deterministischer Kellerautomat: in jeder Situation gibt es
nur genau einen Übergang
entweder Übergang mit Lesen oder Übergang ohne
Lesen
Menge der möglichen Übergänge enthält nur ein
Element
32
Kellerautomaten
Kellerautomaten
• Kellererautomat hält an, wenn
ein Endzustand erreicht oder
der Keller leer oder
das ganze Eingabewort gelesen worden ist
• Beispiel: Palindrom, geschachtelte Ausdrücke
Kellerautomat für L={a1a2...an$an...a2a1|ai ∈{a,b}}
• nichtleeres Wort aus Eingabebuchstaben wird vom
Kellerautomaten akzeptiert, wenn er das ganze Wort liest
und dann hält; es gibt drei gleichwertige Formen der
Akzeptanz:
akzeptiert: Endzustand erreicht und Keller leer
zustandsakzeptiert: Endzustand erreicht
kellerakzeptiert: Keller leer (am praktischsten)
• sei k ∈ Z x A* x K* eine Konfiguration eines
Kellerautomaten M, dann bewirkt eine Anwendung der
Zustandsübergangsfunktion t einen Übergang von k zu
k', ausgedrückt als Relation k ⇒ k'. Sei ⇒ * die reflexiv
transitive Hülle von ⇒.
M = ({z0, z1}, {a,b,$}, {#, A, B}, z0 , #, t)
(Endzustand wird nicht gebraucht)
Zustandsübergangsfunktion t als Übergänge zwischen
Tupeln (Z, A, K) → (Z', K') geschrieben
z0a# → z0A#
z0b# → z0B#
z0$# → z1#
z1aA → z1ε
z0aA → z0AA
z0bA → z0BA
z0$A → z1A
z1bB → z1ε
z0aB → z0AB
z0bB → z0BB
z0$B → z1B
z1ε# → z1 ε
Wort ba$ab ∈L(M), denn
(z0, ba$ab, #) ⇒ (z0, a$ab, B#) ⇒ (z0, $ab, AB#) ⇒
(z1, ab, AB#) ⇒ (z1, b, B#) ⇒ (z1, ε, #) ⇒ (z1, ε, ε)
• Kellerautomat M akzeptiert dann die Sprache
L(M) = {x ∈ A*|(z0, x,#) ⇒*(z, ε, ε) für z ∈Z}
• Jede durch einen nichtdeterministischen Kellerautomaten
akzeptierte Sprache ist kontextfrei (Typ 2); jede
kontextfreie Sprache wird durch einen nichtdeterministischen Kellerautomaten akzeptiert.
33
34
Kellerautomaten
Kellerautomaten
• Sprache der Palindrome über dem Alphabet {a,b, $} wird
durch die folgende kontextfreie Grammatik erzeugt
• Wird w durch die obige Grammatik erzeugt, dann ist es
ein Palindrom.
A(n) sei "jede Ableitung der Länge n oder kürzer enthält
nur Palindrome"
A(1) gilt
Zu zeigen: ∀ n∈ N (A(n) ⇒ Α(n+1))
Sei S ⇒ S1... ⇒ S n⇒ Sn+1 eine Ableitung der Länge n+1.
Laut Induktionsvoraussetzung A(n) enthält die Ableitung der Länge n S ⇒ S1... ⇒ Sn nur Palindrome. Da
auf Sn eine Grammatikregel anwendbar ist, muss es ein S
enthalten. Dieses S muss in der Mitte stehen, da Sn ein
Palindrom ist. Die Grammatikregeln ersetzen S durch
aSa, bSb oder $. D.h. Sn+1 ist wieder ein Palindrom.
D.h. jedes durch die Grammatik erzeugte Wort der
Länge n≥ 1 ist ein Palindrom.
S → aSa | bSb | $
Beweis durch vollständige Induktion
• Wiederholung: Vollständige Induktion
A: N0 → {W, F} eine Eigenschaft natürlicher Zahlen
A(n0) gilt (Induktionsverankerung)
Für beliebiges n gilt: falls A(n) gilt, dann gilt auch
A(n+k) (Induktionsschritt)
dann gilt ∀ n∈ N0 (A(n0 + n*k))
• Ist w ein Palindrom, dann kann es durch die obige
Grammatik erzeugt werden.
A(n) sei "jedes Palindrom der Länge n kann durch die
Grammatik erzeugt werden"
A(1) gilt
Zu zeigen: ∀ n∈N (A(n) ⇒ A(n+2))
Sei w Palindrom der Länge n+2, dann muss es die Form
ara oder brb haben, wobei r ein Palindrom der Länge n
sein muss. Das kann aber laut Induktionsvoraussetzung
A(n) erzeugt werden, also kann auch mit Hilfe der
ersten beiden Grammatikregeln ein Palindrom der
Länge n+2 erzeugt werden.
Also kann jedes Palindrom der Länge ≥ 1 erzeugt
werden.
35
36
Kellerautomaten
Syntaxbäume
• Kellerautomat M heisst deterministisch, wenn für alle
z∈Z, a∈A und k∈K gilt |t(z,a,k)|+ |t(z,ε,k)| ≤ 1 und der
Kellerautomat zustandsakzeptiert
• einer Ableitung eines Wortes w in einer Typ 2 oder 3
Grammatik G kann ein Syntaxbaum (Ableitungsbaum)
zugeordnet werden
sei w ∈ L(G) und S = w0 ⇒ w1⇒ ... ⇒ wn = w eine
Ableitung von w
S bildet die Wurzel des Syntaxbaums
falls im i-ten Ableitungsschritt wi-1 ⇒ w i das
Nichtterminal N durch ein Wort x ersetzt wird, dann
erhält der Knoten N des Syntaxbaums |x| Töchter, die
mit den einzelnen Zeichen von x beschriftet werden
Blätter des Baumes sind die Symbole von w
• deterministische Kellerautomaten definieren die
deterministisch kontextfreien Sprachen, eine echte
Teilmenge der kontextfreien Sprachen
• Sprache L={a1...an$an...a1|ai∈A*} ist deterministisch kontextfrei
• Sprache L={a1...anan...a1| ai∈A*} ist kontextfrei, aber nicht
deterministisch kontextfrei
• deterministisch kontextfreie Sprachen werden auch LR(k)
Sprachen genannt und spielen im Compilerbau eine
grosse Rolle
37
38
Beispiel
Syntaxbäume
• Beispielgrammatik für ARIM
E→T
(Expression ist Term)
E→E+T
(Expression ist Expression + Term)
T→F
(Term ist Faktor)
T → T*F
(Term ist Term * Faktor)
F→X
(Faktor ist Konstante oder Variable)
F → (E)
(Faktor ist Expression in Klammern)
• verschiedenen Ableitungen kann der gleiche Syntaxbaum
zugeordnet werden, der dann verschieden traversiert
wird
• es gilt: w ∈ L(G)
⇔ es gibt eine Ableitung von w
⇔ es gibt einen Syntaxbaum mit w
an den Blättern
• Beispielableitungen
E ⇒ E + T ⇒ T + T ⇒ T*F +T ⇒ F*F +T ⇒ X*F +T ⇒ X*X
+T ⇒ X*X +F ⇒ X*X +X
⇔ es gibt eine Linksableitung von
w
⇔ es gibt eine Rechtsableitung von
w
E ⇒ E + T ⇒ E + F ⇒ E +X ⇒ T +X ⇒ T*F +X ⇒ T*X +X
⇒ F*X +X ⇒ X*X +X
haben den gleichen Syntaxbaum
E
T
E
T
F
T
F
F
X
*
X +
X
einmal links und einmal rechts abgeleitet
39
40
Mehrdeutige Grammatiken
(Extended) Backus Naur Form
• eine Grammatik heisst mehrdeutig, wenn es für dasselbe
Wort w verschieden strukturierte Syntaxbäume gibt;
andernfalls heisst die Grammatik eindeutig
• Backus und Naur entwickelten die Extended Backus Naur
Form EBNF zur kompakten Darstellung von Typ 2
Grammatiken. (Eine einfachere Version ist als BNF
bekannt.)
• Beispiel
S → aB
S → Ac
A → ab
B → bc
• Zusammenfassung von Regeln mit gleicher linker Seite
A → R1
A → R2
...
A → Rn
für das Wort abc gibt es zwei verschiedene Ableitungen
mit verschiedenen Syntaxbäumen
S ⇒ Ac ⇒ abc
S ⇒ aB ⇒ abc
zu
A → R1 | R2| ... |Rn
Mehrdeutigkeit kann in diesem Fall beseitigt werden, da
eine eindeutige Grammatik existiert, die dieselbe
Sprache generiert
S → abc
• Sprache L heisst inhärent mehrdeutig, wenn jede
Grammatik G mit L = L(G) mehrdeutig ist
• Zusammenfassung von Regeln mit optionalen Elementen
(ein Wort O kann, aber muss nicht, auftauchen)
A → R1R2
A → R1OR2
zu
i j k
Beispiel L = {a b c | i=j oder j=k}
A → R1[O]R2
41
42
(Extended) Backus Naur Form
Kontextsensitive Sprachen (Typ 1)
• Zusammenfassung von Regeln mit wiederholten
Elementen (ein Wort W kann beliebig oft, auch 0 Mal,
auftauchen)
A → R1R2
• kontextsensitive Sprachen werden durch kontextsensitive
Grammatiken oder durch Kuroda Normalform
Grammatiken beschrieben
A → R1WRR2
WR→ W
WR→ WWR
• kontextsensitive Grammatik
keine Regel ist verkürzend, d.h. für jede Regel
LHS → RHS gilt |LHS| ≤ |RHS|
RHS ≠ ε
• Kuroda Normalform
jede Regel hat eine der vier Formen
N→T
N → N N → NN
NN → NN
zu
A → R1{W}R2
• (E)BNF und kontextfreie Grammatiken sind gleichwertig,
d.h. durch (E)BNF werden genau die kontextfreien
Sprachen dargestellt
43
• kontextsensitive Sprachen sind unter Vereinigung,
Durchschnitt, Konkatenation, Komplement und Sternbildung abgeschlossen
44
Rekursiv aufzählbare Sprachen (Typ 0)
Turingmaschinen
• rekursiv aufzählbare Sprachen werden durch allgemeine,
separierte oder normale Grammatiken beschrieben
• Turingmaschinen sind endliche Automaten mit einem
beliebig grossen, sequentiell zugreifbaren Speicher
• allgemeine Grammatik
beliebige Regeln
• Turings Vorstellung: endlicher Automat mit einem
unendlichen Speicherband, das aus einzelnen Feldern
besteht, und einem Lese- und Schreibkopf, der sich auf
dem Band bewegen kann. Die Felder enthalten
Buchstaben des Bandalphabets. Zeichen, die sich unter
dem Kopf befinden, können gelesen und verändert
werden. Der Kopf kann sich um ein Feld nach rechts oder
links bewegen oder an der gleichen Stelle bleiben.
• separierte Grammatik
jede Regel hat eine der Formen
N→T
N→ε
N1N2 ...Nn → ε
• Turingmaschine M wird formal durch ein 7-Tupel
beschrieben M=(Z, A, B, t, z0, #, E)
Z
endliche Menge von Zuständen
A
endliches Eingabealphabet
B
endliches Bandalphabet, A⊆B
z0 ∈ Z
Anfangszustand
# ∈ B-A
Leerzeichen
E⊆Z
endliche Menge von Endzuständen
t
Zustandsübergangsfunktion
Z x B → P(Z x B x (L, R, N))
L=Bewegung nach links, R=Bewegung
nach rechts, N=keine Bewegung
N1N2 ...Nn → Nn+1 Nn+2 ... Nn+m
• normale Grammatik
jede Regel hat eine der Formen
Reduktionsregel:
N→ε
Terminierungsregel: N → T
Expansionsregel:
N → NN
Doppelsubstitution:
NN → NN
46
45
Turingmaschinen
Turingmaschinen
• Befindet sich M im Zustand z und ist unter dem Kopf der
Buchstabe a, dann geht M im nächsten Schritt in einen
Zustand z' über, schreibt anstelle von a einen Buchstaben
b auf das Band und führt dann eine Bewegung x ∈ (L, R,
N) aus, formal
t(z,a) ist ein Element der Menge (z',b,x)
• Spezialfälle
• Konfiguration der Turingmaschine ist k ∈ B*x Z x B*
k=b1zb2
b1 schon besuchter Teil des Bandes
z aktueller Zustand
b2 Rest des Bandes, Kopf steht auf erstem Zeichen von b2
• Anfangskonfiguration z0x: auf dem Band steht die
Eingabe x ∈ A und die Turingmaschine ist im Zustand z0
• später: Konfiguration a1...amzb1...bn
Übergang ohne Bewegung des Kopfes:
t(z,b1)= (z',c,N), neue Konfiguration a1...amz'cb2...bn
Übergang mit Bewegung nach rechts:
t(z,b1)= (z',c,R), neue Konfiguration a1...amcz'b2...bn
n=1 und Übergang mit Bewegung nach rechts:
t(z,b1)= (z',c,R), neue Konfiguration a1...amcz'#
m=0 und Übergang mit Bewegung nach links:
t(z,b1)=(z',c,L), neue Konfiguration z'# cb2 ...bn
• Beispiel: Turingmaschine, die Eingabe x∈{0,1} als binäre
Zahl interpretiert und eine 1 dazu addiert.
M=({z0, z1, z2, z3}, {0,1}, {0, 1, #}, t, z 0, #, {z 3})
t(z0, 0) = (z0, 0, R)
t(z0, 1) = (z0, 1, R)
t(z0, #) = (z 1, #, L)
t(z1, 0) = (z2, 1, L)
t(z1, 1) = (z1, 0, L)
t(z1, #) = (z 3, 1, N)
t(z2, 0) = (z2, 0, L)
t(z2, 1) = (z2, 1, L)
t(z2, #) = (z 3, #, R)
startet M mit 101 auf dem Band, dann hält sie mit 110
auf dem Band und dem Kopf auf dem ersten Zeichen
z0101 ⇒ z1001 ⇒ 10
z01 ⇒ 101z0# ⇒ 10z11# ⇒ 1z100#
⇒ z2110# ⇒ z2#110# ⇒ #z 3110#
Übergang mit Bewegung nach links:
t(z,b1)=(z',c,L), neue Konfiguration a1...am-1 z'amcb2 ...bn
47
48
Turingmaschinen
Linear beschränkte Turingmaschinen
• Anwendung der Zustandsübergangsfunktion t bewirkt
einen Übergang von Konfiguration k zu Konfiguration k',
ausgedrückt als Relation k ⇒ k'. Sei ⇒* die reflexive und
transitive Hülle von ⇒.
• Linear beschränkte Turingmaschinen verlassen nie den
Teil des Bandes, auf dem die Eingabe steht.
• Turingmaschine M akzeptiert Sprache
L(M) = {x ∈ A*|z0x ⇒*b1zb2 für b1,b2∈B und z ∈E}
• Eine nichtdeterministische Turingmaschine heisst linear
beschränkt, wenn für alle a1...an-1an∈A *, die rechts durch
ein Kontrollzeichen c begrenzt sind und alle Konfigurationen b1zb2 mit z0a1...an-1anc ⇒*b1zb2 gilt |b1b2|=n.
• Linear beschränkte Turingmaschine M akzeptiert Sprache
• Die durch nichtdeterministische Turingmaschinen
akzeptierten Sprachen sind genau die rekursiv
aufzählbaren Sprachen (Typ 0).
L(M) = {a1...an-1an∈A*|z0a1...an-1anc⇒*b1zb2 für b1,b2∈B und
z ∈E}
• Die durch linear beschränkte, nichtdeterministische
Turingmaschinen akzeptierten Sprachen sind genau die
kontextsensitiven Sprachen (Typ 1).
49
50
Typen von Programmiersprachen
Elementare Funktionen
• Berechenbarkeitstheorie: Formalisierung des intuitiven
Berechenbarkeitsbegriffs
• Nullfunktion
• man kann vier Typen von Programmiersprachen zum
Berechnen von Zahlenfunktionen unterscheiden:
Programmiersprache LOOP: enthält als wesentliches
Element Schleifen mit fester Durchlaufzahl
Programmiersprache WHILE: enthält als wesentliches
Element Schleifen mit bedingungsabhängiger Durchlaufzahl
Programmiersprache GOTO: enthält als wesentliches
Element bedingte Sprungbefehle
Programmiersprache RECUR: enthält als wesentliches
Element rekursive Funktionsdefinitionen
• offensichtlich
mächtig
sind diese
Sprachen
Z: N 0 → N 0
mit ∀n∈N0 (Z(n) := 0)
• Nachfolgerfunktion
S: N 0 → N 0
mit ∀n∈N0 (S(n) := n'=n+1)
• Projektionsfunktion
∀m,k∈N, k≤m (Pk : N0 → N0)
m
m
mit ∀x1,...,xm∈N0 (Pk (x1,...,xm) := xk)
m
unterschiedlich
• Mächtigkeit der Sprachen drückt sich durch die
Funktionen aus, die man mit ihnen berechnen kann
• Welche Funktionen sind das?
1
2
Primitiv rekursive Funktionen
Primitiv rekursive Funktionen
• primitiv rekursive Funktionen sind eine induktiv definierte
n
Teilmenge aller Funktionen N0 → N0 mit n∈N
• Fall n=0:
elementare Funktionen sind primitiv rekursiv
Nullfunktion, Nachfolgerfunktion, Projektion
• Beispiel
g=0, h(x,y) =x
m
g: N0 → N0
n
2
r(0) = g
r(y+1) = h(y, r(y))
Komposition
sind für m, n∈N die Funktionen
fi: N0 → N0
g∈N 0 eine Konstante, h: N 0 → N 0 primitiv rekursiv,
dann ist r: N0 → N0 primitiv rekursiv
i=1, ..., m
r(0) = g = 0
r(y+1) = h(y, r(y)) = y
d.h. r(y) = y-1 (Vorgängerfunktion für y>0)
primitiv rekursiv, dann ist auch die Funktion
m
r: N0 → N0
r(x1,..., xn) := g(f1(x1,..., xn), ...., fm(x1,..., xn))
• folgende weitere Funktionen sind primitiv rekursiv
Addition
Subtraktion
Multiplikation
Exponentialfunktion
Signumfunktion
Fakultät
primitiv rekursiv
primitive Rekursion
sind für n∈N0 die Funktionen
n
g: N0 → N0
n+2
h: N0
→ N0
primitiv rekursiv, dann ist auch die Funktion
n+1
r: N0
→ N0
• Funktionen sind genau dann primitiv rekursiv, wenn sie
durch ein LOOP Programm berechnet werden können
r(x1,..., xn, 0) := g(x1,..., xn)
r(x1,..., xn, y+1) := h(x1,..., xn, y, r(x1,..., xn, y))
• Sind alle Funktionen primitiv rekursiv?
primitiv rekursiv
3
4
Ackermann Funktion
Partiell rekursive Funktionen
• Ackermann Funktion A: N0 → N0
• partiell rekursive Funktionen sind eine induktiv
n
definierte Teilmenge aller partiellen Funktionen N 0 →
N 0 mit n∈N
2
A(0, 0) = 1
A(0, 1) = 2
A(0, y+2) = y+4
elementare Funktionen sind partiell rekursiv
Nullfunktion, Nachfolgerfunktion, Projektion
A(x+1, 0) = A(x, 1)
A(x+1, y+1) = A(x, A(x+1, y))
• verschiedene Autoren definieren leicht abweichende
Versionen der Ackermann Funktion
• Ackermann Funktion ist – anders als die primitiv
rekursiven Funktionen – rein rekursiv definiert
• Ackermann Funktion ist nicht primitiv rekursiv, sondern
gehört in die Klasse der partiell rekursiven Funktionen
Komposition
Komposition partiell rekursiver Funktionen ist partiell
rekursiv
primitive Rekursion
primitive Rekursion partiell rekursiver Funktionen
liefert wieder partiell rekursive Funktionen
Minimierung
ist für n∈N die Funktion f: N 0
dann auch die Funktion
n+1
→ N 0 partiell rekursiv,
µ(f) : N0 → N0
n
Dabei gilt:
[µ(f)](x1,..., xn) = x
wobei x die kleinste Lösung von f(x1,..., xn, x) = 0 ist;
sonst ist [µ(f)](x1,..., xn) undefiniert
5
6
Church These
Programmiersprachen
• Funktionen sind genau dann partiell rekursiv, wenn sie
durch ein WHILE oder durch ein GOTO oder durch ein
RECUR Programm berechnet werden können.
• WHILE, GOTO und RECUR Programmiersprachen
sind gleich mächtig
• in keiner Programmiersprache kann man mehr
Funktionen berechnen als die partiell rekursiven
• These von Church
Eine Funktion kann genau dann "nach vorgegebenen
Regeln" berechnet werden, wenn sie partiell rekursiv
ist, d.h. es gibt keine weiteren berechenbaren
Funktionen.
These von Church verbindet den intuitiven Begriff der
Berechenbarkeit mit einer formalen Definition.
• Grundlage für strukturierte Programmierung
Substituierung von (bedingten) Sprüngen durch
strukturierte Konstrukte für Sequenz, Iteration und
Selektion
• Grundlage für die Substituierung von Rekursion durch
Iteration
Speicherplatz wird eingespart: Rekursion braucht für
jeden Schritt zusätzlichen Speicherplatz, während
Iteration Speicherplatz wieder verwenden kann
• neben der Mächtigkeit gibt es aber noch weitere
Kriterien für die Wahl einer Programmiersprache, z.B.
Ausdrucksfähigkeit: wie direkt kann man die
Konzepte des Anwendungsbereiches in Konstrukten
der Programmiersprache ausdrücken, wie lesbar ist
das Programm?
Strukturierungsmöglichkeiten, Wiederverwendung
effiziente Implementierung
7
8
Turingmaschinen
Berechenbarkeit und formale Sprachen
• Beispiel zeigte, dass Turingmaschinen zur Berechnung
verwendet werden können
• Theorie der Berechenbarkeit kann von natürlichen
Zahlen auf formale Sprachen ausgedehnt werden
• partielle Funktion f: (A ) → (A ) heisst Turingberechenbar, wenn es eine Turingmaschine mit dem
Eingabealphabet A ∪ {%,#} gibt, die mit dem Bandinhalt
w1% w2% ...%wn startet, genau dann hält, wenn (w1, w2, ...,
wn) im Definitionsbereich von f liegt und den
Bandinhalt u1%u2%...%um schreibt.
• Gödelisierung: Wörter einer formalen Sprache werden
als natürliche Zahlen kodiert
A endliches Alphabet
Gödelisierung über A ist eine linkseindeutige
*
(injektive) Turing-berechenbare Funktion G: A → N0
* n
* m
• Standard-Gödelisierung:
A endliches Alphabet
Es gilt dann f(w1,w2, ...,wn) = (u1,u2,...,um)
• Funktionen sind genau dann Turing-berechenbar, wenn
sie partiell rekursiv sind
α: A → {1, 2, ... , #A} eine linkseindeutige Funktion
pn sei die n-te Primzahl (p1 = 2, p2=3, p3=5, ...)
Gödelisierung : A → N0 mit
*
G(ε) :=0
G(a1a2..ak) := p1α(a1)p2α(a2)... pkα(ak)
5
14
4
Beispiel: G(ende) = 2 * 3 * 5 * 7
9
5
10
Halteproblem
Halteproblem
• Programme können in eine unendliche Schleife oder in
eine unendliche Rekursion geraten
• P ist die Menge aller W HILE Programme und G: P → N 0
eine bijektive Gödelisierung, d.h.
• Wie kann man überhaupt feststellen, ob ein Programm
terminiert?
zu jedem Programm p ∈ P gibt es genau eine
natürliche Zahl G(p) ∈ N0
• Testen: man prüft für bestimmte Eingabewerte, ob das
Programm nach endlicher Zeit terminiert
Resultat ja: OK
Resultat nein: keine Aussage möglich
• Frage: gibt es einen Algorithmus, der für ein gegebenes
Programm und gegebene Eingabewerte nach endlicher
Zeit feststellt, ob das Programm terminiert oder nicht?
• Antwort: nein, es gibt keinen solchen Algorithmus: das
Halteproblem ist nicht entscheidbar, aber semientscheidbar
• Testen ist – zusätzlich zu seiner Bedeutung bei der
Validierung
von Programmen
gegenüber
den
Anforderungen – das mächtigste Verfahren, um die
Terminierung eines Programms festzustellen
jede natürliche Zahl n kann als das WHILE Programm
-1
G (n) ∈ P interpretiert werden
• Gegeben ein WHILE Programm p ∈ P und eine
natürliche Zahl x. Terminiert p für x?
• Angenommen, es gibt ein WHILE Programm T, das
diese Frage für beliebige WHILE Programme p und
Engabewerte x entscheidet.
• T bekommt 2 Eingabewerte: x1=G(p) und x2=x
• T terminiert mit x0=1, wenn p für x terminiert
• T terminiert mit x0=0, wenn p für x nicht terminiert
• T' ist das Programm
x2 := x1;
T;
WHILE x0 ≠ 0 DO x0 := x0 OD
• wir starten T' mit der Eingabe G(T')
• T' terminiert für diese Eingabe genau dann, wenn T
terminiert, d.h. wenn T für x1= G(T') und x2= G(T') mit
x0=1 terminiert
• aber genau für diesen Fall terminiert T' nicht
• Widerspruch ⇒ Programm T kann nicht existieren
1
Äquivalenzproblem & Korrektheitsproblem
• Äquivalenz: zwei Programme heissen äquivalent, wenn
sie für dieselben Eingaben terminieren und dabei die
gleichen Ausgaben erzeugen
• Äquivalenzproblem ist nicht entscheidbar
• Korrektheit: ein Programm berechnet eine gegebene
Funktion
• Korrektheitsproblem ist nicht entscheidbar
3
2
Herunterladen