Folien - IMN/HTWK

Werbung
Modellierung
Prof. Dr. Sibylle Schwarz
HTWK Leipzig, Fakultät IMN
Gustav-Freytag-Str. 42a, 04277 Leipzig
Zimmer Z 411 (Zuse-Bau)
http://www.imn.htwk-leipzig.de/~schwarz
[email protected]
Wintersemester 2014/15
1
Informatik
Informatik Lehre von der Darstellung und Verarbeitung von
Information durch Algorithmen
Teilgebiete der Informatik:
theoretisch
technisch
Sprachen zur Formulierung von Information und
Algorithmen,
I Möglichkeiten und Grenzen
der Berechenbarkeit durch Algorithmen,
I Grundlagen für technische und praktische
(und angewandte) Informatik
I
maschinelle Darstellung von Information
Mittel zur Ausführung von Algorithmen
(Rechnerarchitektur, Hardware-Entwurf, Netzwerk, . . . )
I
I
praktisch Entwurf und Implementierung von Algorithmen
(Betriebssysteme, Compilerbau, SE, . . . )
angewandt Anwendung von Algorithmen
(Text- und Bildverarbeitung, Datenbanken, KI, Medizin-,
Bio-, Wirtschafts-, Medieninformatik, . . . )
2
Syntax und Semantik
algorithmische Verarbeitung von Information erfordert
geeignete Darstellung der Information
I
Formalismus (Kalkül):
Maschinen-( und Menschen-)lesbare Sprache
I
eindeutige Zuordnung einer Bedeutung zu den Elementen des
Formalismus
Semantik (Bedeutung)
Was wird dargestellt?
Syntax (Darstellungsform)
Wie wird es dargestellt?
(meist viele verschiedene Möglichkeiten)
3
Beispiel Münzenspiel
Spielfeld:
(beidseitig unendliche) Folge von Stapeln von Münzen
...
...
1. Zu Beginn liegen 5 Münzen auf einem Stapel, alle anderen
Stapel sind leer.
2. In jedem Zug werden zwei Münzen von einem Stapel
(auf dem wenigstens zwei Münzen liegen) genommen und eine
davon auf den rechten, die andere auf den linken
Nachbarstapel gelegt.
3. Das Spiel ist zuende, wenn kein Zug mehr möglich ist.
4
Münzenspiel: Fragen
I
In welchen Zuständen sind keine Züge möglich?
I
Welche Zustände sind aus dem Startzustand erreichbar?
I
Wieviele Züge können (mindestens / höchstens) gespielt
werden, bis kein Zug mehr möglich ist?
Münzenspiel für zwei Personen:
4. Beide Spieler ziehen abwechselnd.
5. Wer am Zug ist, wenn kein Zug mehr möglich ist, verliert.
(Der andere gewinnt.)
I
Kann der Spieler, der den ersten Zug macht, gewinnen?
I
Kann der Spieler, der den zweiten Zug macht, gewinnen?
I
Gewinnt immer der Spieler, der den ersten Zug macht?
I
Gewinnt immer der Spieler, der den ersten Zug macht?
I
(Wie) Hängt das von der Anzahl der Münzen zu Beginn ab?
5
Modellierung des Münzenspiels: Zustände
...
...
Zustand (Konfiguration):
Momentaufnahme des Spielfeldes
vor oder nach einem (vollständigen) Spielzug
maschinenlesbare Modellierung eines Spielzustandes, z.B. durch
I
Folge von Stapeln (Folgen) von Münzen, z.B.
[. . . , [], [5, 2, 10, 20 , 20], [], . . .], [. . . , [], [20 ], [5, 2, 10], [20], [] . . .]
I
Folge natürlicher Zahlen (Anzahlen der Münzen je Stapel),
z.B. [. . . , 0, 5, 0, . . .], [. . . , 0, 1, 3, 1, 0, . . .],
I
endliche Folge natürlicher Zahlen (nur relevanter Bereich),
z.B. [6], [1, 3, 1] oder [0, 5, 0], [0, 1, 3, 1, 0],
Nebenwirkung Abstraktion:
ermöglicht einfache Übertragung auf ähnliche Aufgaben
(Art und Anzahl der Objekte)
6
Modellierung des Münzenspiels: Ablauf
Modellierung aller möglichen Übergänge zwischen Zuständen z.B.
als
I
formale Darstellung der Spielregeln
Startzustand : [. . . , 0, 5, 0 . . .]
Spielzug: Ersetzung einer Teilfolge des Zustandes der
Form [x, y + 2, z] durch [x + 1, y , z + 1]
Regel: [x, y + 2, z] → [x + 1, y , z + 1]
I
formale (graphische) Darstellung aller möglichen Spielzüge
(Tafel)
Modellierung eines Spieles z.B. als
I
(gültige) Folge von Positionen, an der die Regel angewendet
wurde
I
Weg im Spielgraphen
7
Modelle
Modelle sind Abstraktionen
realer Dinge, Eigenschaften, Beziehungen, Vorgänge
I Auswahl der (für den Anwendungsbereich, zur Problemlösung)
wichtigen Informationen
I Vernachlässigung unwichtiger Details
Beispiele:
I Liniennetzplan
wichtig: Stationen, Verbindungen zwischen Stationen,
Art der Verbindung (z.B. Liniennummer)
unwichtig: genaue Linienführung, aktuelle Verspätungen,
Baustellen,. . .
I Grundriss
I Stundenplan
I Ablaufplan
spezielle Form der Modelle abhängig von
I Problembereich
I geplante Verwendung
8
Prozess beim Lösen von Aufgaben (Problemen)
Analyse der (informalen) Aufgabe, Identifikation von
I Aufgabenbereich (Kontext)
I Eingabedaten (Typ, mögliche Werte)
I gewünschte Lösung
(Typ, Eigenschaften, Zusammenhang mit Eingabe)
Modellierung (Spezifikation, formale Darstellung) von
I Aufgabenbereich (Kontext)
I Eingaben
I Lösungen
Modellierung von Daten und deren Eigenschaften
Entwurf einer Lösungsstrategie für die modellierte Aufgabe
(mit vorhandenen oder neuen Methoden)
Modellierung von Abläufen und deren Eigenschaften
Realisierung der Lösungsstrategie im Modellbereich
Ausführung der Lösungsstrategie im Modellbereich
Übertragung der Lösung vom Modellbereich in die Realität
9
Logik
Beispiel:
1. Tom besucht heute das Kino oder das Konzert.
Tom ist nicht im Kino.
Also besucht Tom das Konzert.
√
2. √2 ist eine rationale oder eine irrationale Zahl.
2 6∈ .√
Also ist 2 irrational.
Q
gemeinsames Schema:
Aus (P oder Q) und (nicht P) lässt sich Q schließen.
formal: {P ∨ Q, ¬P} |= Q
oder (allgemeiner) ∀x : (((P(x) ∨ Q(x)) ∧ ¬P(x)) → Q(x))
maschinelle Verarbeitung logischer Formelmengen
z.B. durch SAT-Solver, Inferenzsysteme, Prolog-Interpreter
10
Vorteile der formalen Darstellung
Abstraktion von unwichtigen Details
(Entwicklung und Verwendung von Modellen)
Präzisierung der relevanten Aussagen
(eindeutige Semantik)
Systematisches Lösen (auch maschinell) von formal dargestellten
Problemen möglich
Struktureigenschaften formaler Beschreibungen
Schlussweisen unabhängig von Bedeutung der
Aussagen
11
Inhalt der Lehrveranstaltung Modellierung
Einführung in formale Beschreibungsverfahren in der Informatik
Modellierung von
Aussagen durch aussagenlogische Formeln
Daten durch
I Mengen
I Wörter (Folgen) und Sprachen
I Terme
I Abstrakte Datentypen
Zusammenhängen durch
I Relationen
I Graphen
I Strukturen
Abläufen durch Zustandübergangssysteme
Eigenschaften, Anforderungen (für Daten und Systeme) durch
prädikatenlogische Formeln
(Ausblick in nichtklassische Logiken)
12
Lernziele
I
Fähigkeit zur Abstraktion
I
Verständnis der grundlegenden Modellierungs-Formalismen der
Informatik:
Logik, Mengen, Relationen, Graphen, Terme, Strukturen,
Datentypen
I
anwendungsbereite Kenntnisse zur Modellbildung
I
Zusammenhänge zu anderen Gebieten der Informatik und zur
Mathematik
13
Literatur
Folien zur Vorlesung, jeweils nach der Vorlesung veröffentlicht unter
www.imn.htwk-leipzig.de/~schwarz/lehre/ws14/modellierung
empfohlene Bücher:
I
zur Modellierung:
I
I
Uwe Kastens, Hans Kleine Büning:
Modellierung - Grundlagen und formale Methoden,
Hanser 2008
zur Logik
I
I
I
Michael Huth, Mark Ryan: Logic in Computer Schience,
Cambridge University Press 2010
Uwe Schöning: Logik für Informatiker, Spektrum, 1995
Martin Kreuzer, Stefan Kühling: Logik für Informatiker,
Pearson Studium, 2006
14
Organisation der Lehrveranstaltung
Folien, Übungsserien, Termine, Änderungen, . . . unter
www.imn.htwk-leipzig.de/~schwarz/lehre/ws14/modellierung
aus der Modulbeschreibung:
90 h für Präsenzstudium + 120 für Selbststudium
Lehrveranstaltungen für jeden Studenten:
I
wöchentlich zwei Vorlesungen (60 SWS)
I
wöchentlich eine Übung (30 SWS) entsprechend Stundenplan,
Wiederholer aus JG 12 und früher: mit ÜG MIB1 (14 und 13)
Vor- und Nachbereitung: schriftliche Aufgaben (ÜS),
Literaturstudium,
praktische Aufgaben (Autotool)
Selbststudium: Vor- und Nachbereitung (90 h, also 6h wöchentlich)
Prüfungsvorbereitung (30 h)
Vollzeit-Studium ist ein Ganztagsjob.
15
Selbstudium
Vor- und Nachbereitung jeder Lehrveranstaltung
(Vorlesung, Seminar, Praktikum, ...)
Unterlagen zu den Lehrveranstaltungen (eigene Notizen, Folien,
Skript, Zusatzmaterial, Übungsaufgaben)
durcharbeiten
Übungsaufgaben regelmäßig und rechtzeitig lösen,
(Aufgaben vom Typ der) Übungsaufgaben gehören
zum Stoff der LV und werden geprüft
Bücher benutzen (Bibliothek),
enthalten oft zusätzliche Übungsaufgaben,
Informationen aus dem Internet sind oft unzuverlässig
Lerngruppen bilden und gemeinsam lernen
Nachfragen bei Dozenten (E-Mail, Sprechzeit, nach der
Lehrveranstaltung,. . . ), Mitstudenten, älteren
Studenten, Fachschaft, . . .
16
Schriftliche Hausaufgaben – Seminar
schriftliche Übungsserien zu jeder Vorlesung unter
www.imn.htwk-leipzig.de/~schwarz/lehre/ws14/modellierung
Lernziele bei der Bearbeitung der Übungsaufgaben:
I
Nachbereitung der letzten Vorlesung
anhand der Vorlesungsfolien und (der angegebenen) Literatur
I
Vorbereitung der nächsten Vorlesung
I
Vorbereitung der Seminarvorträge zu jeder Aufgabe
Seminar (Übungen):
I
Besprechung der Lösungen der schriftlichen Hausaufgaben
(Vorrechnen durch Studenten, Prüfungszulassung)
I
Fragen zum aktuellen Vorlesungsstoff und zu den neuen
schriftlichen und praktischen Hausaufgaben
I
immer mitbringen: (alles auf Papier)
alle bisherigen Folien und Übungsblätter
Ihre Lösungen und Notizen aus der Vorlesung
17
Praktische Hausaufgaben – Autotool
https://autotool.imn.htwk-leipzig.de/shib/cgi-bin/Super.cgi
einmal zu Beginn:
I
Anmeldung über Shibboleth (HRZ-Login)
I
Click Einschreibung“,
”
eigene Übungsgruppe auswählen
jedes Mal:
I
Anmeldung über Shibboleth (HRZ-Login)
I
Aufgabe ansehen (Click Solve“)
”
Aufgabe lösen (meist mit Stift, Papier, Folien, Literatur),
Lösung in Textfeld eintragen,
Click Textfeld absenden“!
”
Autotool-Antwort lesen !
I
I
Beispiel Faktor-Demo
18
Prüfung
Klausur 120 min
Aufgabentypen aus den Übungsserien
Zulassungsvoraussetzungen:
I
regelmäßige erfolgreiche Lösung der Hausaufgaben, d.h.:
I
I
I
mindestens dreimal richtiges Vorrechnen“ von
”
Übungsaufgaben in den Übungen
50 % aller Punkte für praktische Pflichtaufgaben (Autotool)
Modellierungs-Projekt (Januar 2015)
19
Aussagenlogik
20
Aussagen
Aussage = Behauptung
Beispiele:
I
Es regnet.
I
Die Straße ist naß.
I
I
9 ist eine Primzahl.
√
2∈
I
3<5
I
x < 5 (hängt von x ab, keine Aussage)
I
Ist x < 5? (keine Aussage)
I
Sei x < 5. (keine Aussage)
I
Morgen regnet es.
I
Es ist nicht alles Gold, was glänzt.
Q
21
Wahrheitswerte
Prinzipien der klassischen Logik:
Zweiwertigkeit Jede Aussage ist wahr oder falsch.
ausgeschlossener Widerspruch Keine Aussage ist sowohl wahr als
auch falsch.
Wahrheitswerte 1 (wahr) oder 0 (falsch)
Jede Aussage p hat genau einen Wahrheitswert W(p) ∈ {0, 1}.
Beispiele:
I
W(Es regnet.) = ?
I
W(Die Straße ist naß.) = ?
I
I
W(9 ist eine Primzahl.) = 0
√
W( 2 ∈ ) = 0
I
W(3 < 5) = 1
I
W(Morgen regnet es.) = ?
I
W(Es ist nicht alles Gold, was glänzt.)=1
Q
22
Zusammengesetzte Ausdrücke – Junktoren
Junktor (mit zugeordneter Stelligkeit):
Symbol (Syntax) für Verknüpfung von Aussagen
z.B. und“ (zweistellig), nicht“ (einstellig)
”
”
Gottlob Frege: Die Bedeutung des Ganzen ist eine Funktion der
Bedeutung seiner Teile.
Wahrheitswert eines zusammengesetzten Ausdruckes lässt sich aus
dem Wahrheitswert seiner Teilausdrücke berechnen.
Semantik (Bedeutung) eines n-stelligen Junktors ∗:
[∗] : {0, 1}n −→ {0, 1}
(n-stellige Funktion auf der Menge {0, 1})
Wahrheitswertkonstanten (nullstellige Junktoren):
t mit [t] = 1
f mit [f] = 0
23
Konjunktion ∧
Es regnet und 9 ist eine Primzahl.
I W(9 ist eine Primzahl.)= 0
I W(Es regnet.)=?
I W(Es regnet und 9 ist eine Primzahl.)=0
p ∧ q ist genau dann wahr,
wenn beide Aussagen p und q wahr sind.
W(p) W(q) W(p ∧ q)
0
0
0
0
1
0
1
0
0
1
1
1
W(p ∧ q) = min(W(p), W(q))
[∧] = min ist kommutativ, assoziativ
n
^
pi = p1 ∧ p2 ∧ · · · ∧ pn
i=1
24
Disjunktion ∨ (inklusiv)
Es regnet oder 3 < 5.
I W(3 < 5) = 1
I W(Es regnet)=?
I W(Es regnet oder 3 < 5.)=1
p ∨ q ist genau dann wahr,
wenn wenigstens eine der Aussagen p und q wahr ist.
W(p) W(q) W(p ∨ q)
0
0
0
0
1
1
1
0
1
1
1
1
W(p ∨ q) = max(W(p), W(q))
[∨] = max ist kommutativ, assoziativ
n
_
pi = p1 ∨ p2 ∨ · · · ∨ pn
i=1
25
Negation ¬
√
¬( 2 ∈
I
I
Q)
√
Q
(meist
√
2 6∈
Q)
W( 2 ∈ ) = 0
√
W(¬( 2 ∈ )) = 1
Q
¬p ist genau dann wahr, wenn p falsch ist.
W(p) W(¬p)
0
1
1
0
W(¬p) = 1 − W(p)
26
Implikation →
Wenn es regnet, dann ist die Straße naß.
I
W(Es regnet.)=?
I
W(Die Straße ist naß.)=?
I
W(Wenn es regnet, dann ist die Straße naß.)=1
p → q ist genau dann wahr,
wenn die Aussage p falsch oder die Aussage q wahr ist.
W(p) W(q) W(p → q)
0
0
1
0
1
1
1
0
0
1
1
1
W(p → q) =
1 falls W(p) ≤ W(q)
0 sonst
27
Äquivalenz ↔
3 < 5 gilt genau dann, wenn 0 < 5 − 3 gilt.
I
W(3 < 5) = 1
I
W(0 < 5 − 3) = 1
I
W(3 < 5 gilt genau dann, wenn 0 < 5 − 3 gilt.)=1
p ↔ q ist genau dann wahr, wenn
entweder beide Aussagen p und q gelten
oder beide nicht gelten.
W(p) W(q) W(p ↔ q)
0
0
1
0
1
0
1
0
0
1
1
1
W(p ↔ q) =
1 falls W(p) = W(q)
0 sonst
28
Was bisher geschah
(Klassische) Aussagenlogik:
I
Aussage
I
Wahrheitswerte 0 (falsch) und 1 (wahr)
I
Junktoren
wahr
falsch
Konjunktion
Disjunktion
Negation
Implikation
Äquivalenz
Stelligkeit
Syntax
Symbol
Semantik
Wahrheitswertfunktion
0
0
2
2
1
2
2
t
f
∧
∨
¬
→
↔
1
0
min
max
x 7→ 1 − x
≤
=
29
Modellierungsbeispiel Party
umgangssprachliche Beschreibung der Situation:
Anna geht zur Party, wenn Max oder Paul hingehen
und Max geht zur Party, wenn Paul nicht hingeht.
Anna geht nirgends ohne ihren Hund hin.
formale Beschreibung der Situation:
I
elementare Aussagen (Atom):
a Anna geht zur Party.
m Max geht zur Party.
p Paul geht zur Party.
h Der Hund geht zur Party.
P = {a, h, m, p}
I
zusammengesetzte Aussage (aussagenlogische Formel):
(((m ∨ p) → a) ∧ (¬p → m)) ∧ ¬(a ∧ ¬h)
30
Aussagenlogische Formeln (Syntax)
Junktoren z.B. t, f (nullstellig), ¬ (einstellig),
∧, ∨, →, ↔ (zweistellig)
Aussagenvariablen (Atome), z.B. p, q, r , s, . . . oder p1 , p2 , . . .
Definition (induktiv)
Die Menge AL(P) aller (aussagenlogischen) Formeln mit
Aussagenvariablen aus der Menge P ist definiert durch:
IA: Alle Aussagenvariablen p ∈ P sind Formeln. (P ⊆ AL(P)).
I t und f sind Formeln.
IS:
I
I
Ist ϕ eine Formel, dann ist auch ¬ϕ eine Formel.
Sind ϕ und ψ Formeln, dann sind auch
ϕ ∨ ψ, ϕ ∧ ψ, ϕ → ψ und ϕ ↔ ψ Formeln.
IS’: (Zusammenfassung aller Unterpunkte zu IS)
Sind j ein n-stelliger Junktor und ϕ1 , . . . , ϕn Formeln,
dann ist auch j(ϕ1 , . . . , ϕn ) eine Formel.
(Aus {ϕ1 , . . . , ϕn } ⊆ AL(P) folgt j(ϕ1 , . . . , ϕn ) ∈ AL(P).)
31
Aussagenlogische Formeln (Beispiele)
Junktoren der klassischen Aussagenlogik: {t, f, ¬, ∨, ∧, →, ↔}
kürzere Notation:
ohne äußere Klammern und Klammern um ¬ϕ
Beispiele:
t ∧ (¬t)
Formel ohne Aussagenvariablen
¬¬¬p
Formel mit Aussagenvariable p
∧(p ∨ q)
¬(p → q)
→q
keine Formel (syntaktisch unkorrekt)
Formel mit Aussagenvariablen p, q
keine Formel (syntaktisch unkorrekt)
Baumstruktur (analog arithmetischen Termen)
Beispiel (Tafel):
ϕ = ((p ∧ ¬q) → (¬r ∨ (p ↔ q)))
32
Menge aller Aussagenvariablen einer Formel
Definition (induktiv):
Für jede aussagenlogische Formel ϕ ∈ AL(P) ist die Menge var(ϕ)
aller in ϕ vorkommenden Aussagenvariablen definiert durch:
IA: falls ϕ = p (Atom), dann var(ϕ) = {p}
I nullstellige Junktoren (t, f):
IS:
I
I
für ϕ = t oder ϕ = f gilt var(ϕ) = ∅
einstellige Junktoren (¬):
für ϕ = ¬ϕ1 gilt var(ϕ) = var(ϕ1 )
zweistellige Junktoren (∗ ∈ {∨, ∧, →, ↔}):
für ϕ = ϕ1 ∗ ϕ2 gilt var(ϕ) = var(ϕ1 ) ∪ var(ϕ2 )
Beispiel: Für ϕ = p → ((q ↔ t) ∨ (r → q)) gilt var(ϕ) = {p, q, r }
33
Anzahl der Variablenvorkommen in einer Formel
Definition (induktiv):
Für jede aussagenlogische Formel ϕ ∈ AL(P) ist die ANzahl von
Varablenvorkommen varcount(ϕ) definiert durch:
IA: falls ϕ = p (Atom), dann varcount(ϕ) = 1
I nullstellige Junktoren (t, f):
IS:
I
I
varcount(t) = varcount(f) = 0
einstellige Junktoren (¬):
varcount(¬ϕ) = varcount(ϕ)
zweistellige Junktoren (∗ ∈ {∨, ∧, →, ↔}):
varcount(ϕ ∗ ψ) = varcount(ϕ) + varcount(ψ)
Beispiel: ϕ = p → ((q ↔ t) ∨ (r → q)) gilt varcount(ϕ) = 4
varcount(ϕ) ist die Anzahl aller mit Variablen markierten Blätter
im Formelbaum von ϕ
Allgemein gilt varcount(ϕ) ≥ |var(ϕ)|
34
Menge aller Teilformeln einer Formel
Definition (induktiv):
Für jede aussagenlogische Formel ϕ ∈ AL(P) ist die Menge TF(ϕ)
aller in ϕ vorkommenden Teilformeln definiert durch:
IA: falls ϕ = p (Atom), dann TF(ϕ) = {p}
I nullstellige Junktoren (t, f):
IS:
I
I
für ϕ = t oder ϕ = f gilt TF(ϕ) = {ϕ}
einstellige Junktoren (¬):
für ϕ = ¬ϕ1 gilt TF(ϕ) = {ϕ} ∪ TF(ϕ1 )
zweistellige Junktoren (∗ ∈ {∨, ∧, →, ↔}):
für ϕ = ϕ1 ∗ ϕ2 gilt ∗ ∈ {∨, ∧, →, ↔}
TF(ϕ) = {ϕ} ∪ TF(ϕ1 ) ∪ TF(ϕ2 )
35
Prinzip der strukturellen Induktion
Beobachtung:
Bestimmung von Variablenmenge, Größe, Menge der Teilformeln
einer aussagenlogischen Formel geschah nach demselben Schema:
Definition einer Funktion f : AL(P) → X durch
Induktion über die Struktur der Formel
Für jede aussagenlogische Formel ϕ ∈ AL(P) ist der Funktionswert
f (ϕ) definiert durch:
IA: Definition des Funktionswertes f (ϕ) für Atome ϕ = p
(Blätter im Formelbaum)
IS: Definition des Funktionswertes f (ϕ) für zusammengesetzte
Formeln ϕ durch die Funktionswerte der Teilformeln von ϕ
36
Aussagenlogische Interpretationen (Semantik)
(Belegungen der Aussagenvariablen mit Wahrheitswerten)
Interpretation (Belegung) für Formeln ϕ ∈ AL(P)
ordnet jeder Aussagenvariable einen Wahrheitswert zu
Funktion W : P −→ {0, 1}
(eine Zeile in der WW-Tabelle für ϕ)
Beispiel: P = {p, q} und W mit W (p) = 1 und W (q) = 0
37
Wahrheitswerte für Formeln
Erweiterung der Belegung W : P −→ {0, 1} zu einer Funktion
W : AL(P) −→ {0, 1}
Der Wert W (ϕ) der Formel ϕ in der Interpretation W wird induktiv mit
den Wahrheitswertfunktionen der Junktoren
aus den Werten der Teilformeln von ϕ bestimmt:
IA: falls ϕ = p (Atom), dann W (ϕ) = W (p)
IS:
I
I
I
nullstellige Junktoren t, f: W (t) = 1 , W (f) = 0
einstelliger Junktor ¬:
für ϕ = ¬ψ gilt W (¬ψ) = [¬]W (ψ) = 1 − W (ψ)
zweistellige Junktoren ∗ ∈ {∨, ∧:
W (ψ1 ∧ ψ2 ) =
W (ψ1 ∨ ψ2 ) =
W (ψ1 → ψ2 ) =
W (ψ1 ↔ ψ2 ) =
W (ψ1 )[∧]W (ψ2 ) = min (W (ψ1 ), W (ψ2 ))
W (ψ1 )[∨]W (ψ2 ) = max (W (ψ1 ), W (ψ2 ))
W (ψ1 )[→]W (ψ2 ) = 1 gdw. W (ψ1 ) ≤ W (ψ2 )
W (ψ1 )[↔]W (ψ2 ) = 1 gdw. W (ψ1 ) = W (ψ2 )
Beispiel: ϕ = ((p ∧ ¬q) → (¬r ∨ (p ↔ q)))
W (p) = 0, W (q) = 1, W (r ) = 0, W (ϕ) = . . .
38
Wahrheitswerttabellen
Untersuchung der Werte einer Formel ϕ ∈ AL(P) in allen
möglichen Interpretationen W ∈ (P)
Darstellung in einer Tabelle mit
Zeilen
– Interpretationen W : var(ϕ) :→ {0, 1}
Spalten – Teilformeln von ϕ
W
W (p1 ) · · ·
0
···
..
.
1
···
W (pn ) W (ψ) für Teilformeln ψ von ϕ W (ϕ)
0
···
..
.
1
···
Beispiel (Tafel): ϕ = p → ((q ↔ t) ∨ (r → q))
Wertetabelle einer n-stelligen Booleschen Funktion
fϕ : {0, 1}n −→ {0, 1}.
Die Semantik jeder aussagenlogischen Formel mit n
Aussagenvariablen ist eine n-stellige Boolesche Funktion.
39
Erfüllbarkeit und Allgemeingültigkeit
Eine Formel ϕ ∈ AL(P) heißt
erfüllbar , wenn eine Belegung W : P → {0, 1} mit W (ϕ) = 1
existiert.
Beispiel: ¬p → p
unerfüllbar (Widerspruch), wenn keine Belegung W : P → {0, 1}
mit W (ϕ) = 1 existiert.
(wenn also für jede Belegung W gilt W (ϕ) = 0),
Beispiel: p ∧ ¬p
allgemeingültig (Tautologie), wenn für jede Belegung
W : P → {0, 1} gilt W (ϕ) = 1
(wenn also keine Belegung W mit W (ϕ) = 0
existiert).
Beispiel: p ∨ ¬p
Fakt
Eine Formel ϕ ∈ AL(P) ist genau dann allgemeingültig, wenn die
Formel ¬ϕ unerfüllbar ist.
40
Semantische Äquivalenz aussagenlogischer Formeln
Definition
Zwei Formeln ϕ, ψ ∈ AL(P) heißen
genau dann (semantisch) äquivalent (ϕ ≡ ψ), wenn
für jede Belegung W : P → {0, 1} gilt W (ϕ) = W (ψ).
Äquivalente Formeln haben dieselbe Semantik (Wahrheitswertfunktion).
Nachweis der Äquivalenz von Formeln
z.B. durch Wahrheitswerttabellen
Beispiele:
p→q
≡
¬p ∨ q
p∨q
≡
¬p → q
p∧q
≡
¬(p → ¬q)
p↔q
≡ (p → q) ∧ (q → p)
Achtung: Das Symbol ≡ ist kein Junktor (Syntax), sondern ein
Symbol für eine Beziehung zwischen Formeln (Semantik).
41
Wichtige Äquivalenzen
Für alle aussagenlogischen Formeln ϕ, ψ, η gilt:
I
ϕ ∨ ϕ ≡ ϕ,
ϕ ∧ ϕ ≡ ϕ,
ϕ ∨ f ≡ ϕ,
ϕ∧t≡ϕ
I
ϕ ∨ ψ ≡ ψ ∨ ϕ, ϕ ∧ ψ ≡ ψ ∧ ϕ
(Kommutativität von ∧ und ∨)
I
ϕ ∨ (ψ ∨ η) ≡ (ϕ ∨ ψ) ∨ η
ϕ ∧ (ψ ∧ η) ≡ (ϕ ∧ ψ) ∧ η
(Assoziativität von ∧ und ∨)
I
ϕ ∧ (ψ ∨ η) ≡ (ϕ ∧ ψ) ∨ (ϕ ∧ η)
ϕ ∨ (ψ ∧ η) ≡ (ϕ ∨ ψ) ∧ (ϕ ∨ η)
(Distributivgesetze)
I
¬¬ϕ ≡ ϕ (Doppelnegation)
I
¬(ϕ ∨ ψ) ≡ ¬ϕ ∧ ¬ψ, ¬(ϕ ∧ ψ) ≡ ¬ϕ ∨ ¬ψ
(DeMorgansche Regeln)
I
ϕ ∨ ψ ≡ ¬(¬ϕ ∧ ¬ψ), ϕ ∧ ψ ≡ ¬(¬ϕ ∨ ¬ψ)
(Dualität von ∧ und ∨)
I
ϕ → ψ ≡ ¬ψ → ¬ϕ (Kontraposition)
I
(ϕ ∧ ψ) ∨ (¬ϕ ∧ ψ) ≡ ψ (Fallunterscheidung)
42
Was bisher geschah: klassische Aussagenlogik
Syntax Symbole und Struktur
I Junktoren: t, f (nullstellig), ¬ (einstellig), ∨, ∧, →, ↔
(zweistellig)
I aussagenlogische Formeln AL(P)
induktive Definition:
IA Atome : Aussagenvariablen (p, q, r , . . .)
IS zusammengesetzte Formeln (ϕ, ψ, η, . . .):
Verknüpfung von Formeln durch Junktoren
Prinzip der strukturellen Induktion über Baumstruktur von Formeln
Semantik (Bedeutung der Syntaxelemente)
I eines Junktors: Wahrheitswertfunktion
I einer Aussagenvariablen: Wahrheitswert
I aller Aussagenvariablen einer Menge P:
Belegung (Interpretation) W : P → {0, 1}
I einer Formel aus AL(P): Funktion
W : AL(P) → {0, 1}
Boolesche Funktion
I Erfüllbarkeit, Allgemeingültigkeit von Formeln
I Äquivalenz von Formeln, z.B. p → q ≡ ¬p ∨ q
43
Formelmengen
Formelmenge Φ ⊆ AL(P)
(Menge von Bedingungen)
Beispiele:
I
{p, p → q} ⊆ AL(P)
I
{p, p → q, ¬q} ⊆ AL(P)
I
{p → q} ⊆ AL(P)
I
∅ ⊆ AL(P)
44
Semantik von Formelmengen
Eine Belegung W : P −→ {0, 1} erfüllt eine Menge Φ ⊆ AL(P)
von Formeln genau dann, wenn W jede Formel ϕ ∈ Φ erfüllt.
Bestimmung der erfüllenden Belegungen z.B. durch
Wahrheitswerttabellen
Beispiele:
I
einzige erfüllende Belegung für {p, p → q}: [p 7→ 1, q 7→ 1],
I
{p, p → q, ¬q} hat keine erfüllende Belegung.
I
erfüllende Belegungen für {p → q}:
[p 7→ 0, q 7→ 0], [p 7→ 0, q 7→ 1], [p 7→ 1, q 7→ 1]
I
Jede Belegung ist ein Modell für die Formelmenge ∅.
Fakt
Eine Belegung W : P → {0, 1} erfüllt eine endliche Formelmenge
Φ = {ϕ1 , . . . , ϕn } genau dann, wenn sie die Formel ϕ1 ∧ · · · ∧ ϕn
erfüllt.
45
Modellierung durch aussagenlogische Formelmengen
Aussagen:
1. Es wird nicht mehr viel Eis gekauft, wenn es kalt ist.
2. Der Eisverkäufer ist traurig, wenn nicht viel Eis gekauft wird.
3. Es ist kalt.
Darstellung als Formelmenge Φ ⊆ AL({k, t, v }):
Φ = {k → ¬v , ¬v → t, k}
erfüllende Belegungen für Φ: [k 7→ 1, t 7→ 1, v 7→ 0]
neue zusätzliche Aussage:
4. Der Eisverkäufer ist nicht traurig.
Erweiterung der Formelmenge Φ zu
Φ0 = Φ ∩ {¬t} = {k → ¬v , ¬v → t, k, ¬t}
erfüllende Belegungen für Φ0 : keine
46
Modellierungsbeispiel Zuordnungen
In einem Eisenbahnabteil sitzen die Herren Lehmann und Müller.
Einer ist Sachse und einer Thüringer.
Jeder
der beiden
kommt
aus genau
1. Jede
Person Personen
kommt aus
wenigstens
einemeinem
Land.Land, also
LS ∨ LT , MS ∨ MT
2. Aus jedem Land kommt wenigstens eine Person.
LS ∨ MS, LT ∨ MT
3. Jede Person kommt aus höchstens einem Land.
LS → ¬LT , LT → ¬LS, MS → ¬MT , MT → ¬MS
oder (äquivalent) ¬LS ∨ ¬LT , ¬MS ∨ ¬MT
4. Aus jedem Land kommt höchstens eine Person. (ÜA)
Zuordnungen kommen (mit viel mehr beteiligten Individuen) in
vielen praktischen Anwendungen vor, z.B. Ressourcen-Planung
I Stundenplan
I Aufgabenverteilung
I Job-Scheduling (Betriebssystem)
47
Beschränkte Ausdrucksstärke der Aussagenlogik
I
Aussagen immer zweiwertig
(nur wahr oder falsch, keine Zwischenwerte),
z.B.: Die Rose ist rot. Das Bier ist kalt. Der Student ist fleißig.
(Erweiterung zu mehrwertigen Logiken, fuzzy logic)
I
Aussagen immer absolut
(keine Abhängigkeit vom Kontext, z.B. Ort, Zeitpunkt),
z.B.: Es regnet. x > 3
(Erweiterung zur Modal- und Temporallogiken)
I
Aussagen über alle Elemente großer“ Mengen aufwendig
”
(Erstellung, Platzbedarf), z.B. Zuordnungen
I
keine Aussagen über Elemente einer unendlichen Mengen oder
Mengen unbestimmter Mächtigkeit möglich, z.B.
I Jede durch 4 teilbare Zahl ist gerade.
I In jedem zusammenhängenden Graphen mit ≥ 2 Knoten hat
jeder Knoten einen Nachbarn.
I Es ist nicht alles Gold was glänzt.
(Erweiterung zur Prädikatenlogik)
48
Modellierungsbeispiel
1. Max ist ein Fisch.
2. Alle Fische schwimmen.
3. Also schwimmt Max.
Individuenbereich (Objekte): Lebewesen
Individuen (Konstanten) Max
Eigenschaften: istFisch, schwimmt
prädikatenlogische Formeln:
1. istFisch(Max)
2. ∀x(istFisch(x) → schwimmt(x))
3. schwimmt(Max)
49
Modellierung in Prädikatenlogik
Grundannahme:
Die zu modellierende Welt besteht aus Individuen, die
Eigenschaften haben und zueinander in Beziehungen (Relationen,
Funktionen) stehen.
Aussagen beschreiben Eigenschaften von und und Beziehungen
zwischen Individuen.
Formalisierung solcher Aussagen durch prädikatenlogische Formeln.
50
Prädikatenlogische Aussagen – Beispiele
Personen sind genau dann Geschwister, wenn sie dieselbe
Mutter oder denselben Vater haben.
I A ist genau dann Nachfahre von B, wenn B A’s Vater oder A’s
Mutter ist oder ein Elternteil von A Nachfahre von B ist.
I Nachfahren derselben Person sind verwandt.
Individuenbereich: Menge von Personen
Beziehungen: Nachfahre, verwandt, Geschwister
Funktionen: Mutter, Vater
I
Primzahlen sind genau diejenigen natürlichen Zahlen, die
genau zwei verschiedene Teiler haben.
I Gerade Zahlen sind genau diejenigen natürlichen Zahlen, die
durch 2 teilbar sind.
I Es existieren gerade Primzahlen.
I Nachfolger ungerader Primzahlen sind nicht prim.
I Das Quadrat jeder geraden Zahl ist gerade.
Individuenbereich: Menge
aller natürlichen Zahlen
Eigenschaft: prim, gerade
Beziehung: teilt
Funktion: Nachfolger, Quadrat
I
N
51
Atome (elementare Aussagen)
Aussagenlogik : Aussagenvariable,
bekommt festen Wahrheitswert durch Belegung
Prädikatenlogik : (parametrisierte) Aussage über Eigenschaften
von oder Beziehungen zwischen Individuen
Wahrheitswert abhängig von beteiligten Individuen
z.B. nebeneinander(x, y ),gerade(n) , x < 3, x < y ,
geschwister(x, mutter(y ))
52
Prädikatenlogik (der ersten Stufe) – Syntax
bekannt: aussagenlogische Junktoren t, f, ¬, ∨, ∧, →, ↔
neu: prädikatenlogische Atome, Quantoren ∀, ∃
Definition (induktiv)
Die Menge aller Formeln der Prädikatenlogik ist definiert durch:
IA: Alle Atome sind Formeln.
IS:
I
I
I
t und f sind Formeln.
Ist ϕ eine Formel und x eine Individuenvariable,
dann sind auch ¬ϕ, ∀xϕ, ∃xϕ Formeln.
Sind ϕ und ψ Formeln, dann sind auch
ϕ ∨ ψ, ϕ ∧ ψ, ϕ → ψ und ϕ ↔ ψ Formeln.
Baumstruktur der Formeln
53
Modellierung in Prädikatenlogik – Beispiel
Auf jeden Topf passt ein Deckel.
I
Individuenbereich: Kochgeschirr
I
Eigenschaften: ist-Topf T ( ), ist-Deckel D( )
I
Beziehung: passt-auf P( )
Schrittweise Entwicklung einer Formel:
1. Atome: P(x, y ) (x passt auf y ),
D(x) (x ist ein Deckel), T (y ) (y ist ein Topf)
2. Formel D(x) ∧ T (y ) ∧ P(x, y )
Der Deckel x passt auf den Topf y .
3. Formel ∃x (D(x) ∧ T (y ) ∧ P(x, y ))
Es gibt einen Deckel, welcher auf den Topf y passt.
4. Formel ∀y ∃x (D(x) ∧ T (y ) ∧ P(x, y ))
Zu jedem Topf gibt es einen Deckel, der auf diesen Topf passt.
bedeutet dasselbe wie: Auf jeden Topf passt ein Deckel.
54
Modellierung in Prädikatenlogik – Beispiele
Personen sind genau dann Geschwister, wenn sie dieselbe Mutter oder
denselben Vater haben.
I
I
Individuenbereich: Personen
Beziehungen: sind-Geschwister G ( , ),
ist-Mutter-von M( , ) , ist-Vater-von V ( , )
Zwischenschritte:
Atome: G (x, y ), M(z, x), M(z, y ), V (u, x), V (u, y )
M(z, x) ∧ M(z, y )
z ist Mutter von x und y .
I ∃z (M(z, x) ∧ M(z, y ))
x und y haben dieselbe Mutter (z).
I ∃z (M(z, x) ∧ M(z, y )) ∨ ∃u (V (u, x) ∧ V (u, y ))
x und y haben dieselbe Mutter (z) oder denselben Vater (u).
I G (x, y ) ↔ (∃z (M(z, x) ∧ M(z, y )) ∨ ∃u (V (u, x) ∧ V (u, y )))
x und y sind genau dann Geschwister, wenn Sie dieselbe Mutter
oder denselben Vater haben.
I
I
(Zwei beliebige) Personen sind genau dann Geschwister, wenn Sie
dieselbe Mutter oder denselben Vater haben.
∀x∀y (G (x, y ) ↔ (∃z (M(z, x) ∧ M(z, y )) ∨ ∃u (V (u, x) ∧ V (u, y ))))
55
Was bisher geschah
Modellierung von Aussagen
I
(klassische) Aussagenlogik
I
I
Syntax: Atome sind Aussagenvariablen
Junktoren ¬, ∨, ∧, →, ↔
induktive Definition: Baumstruktur der Formeln
Semantik: Belegungen, WW-Tabellen
I
strukturelle Induktion
I
erfüllbare, allgemeingültige Formeln
I
Äquivalenz von Formeln
(klassische) Prädikatenlogik
I
I
I
Syntax: zusammengesetzte Atome
(Eigenschaften und Beziehungen zwischen Individuen)
Quantoren ∀, ∃
Modellierungsbeispiele
56
Modellierungsbeispiel Skat
Modellierung:
(wichtig)
I
Jede Karte hat Farbe und Wert
I
deutsches oder französisches Blatt?
I
Ordnung zwischen Karten derselben Farbe
(wichtig)
z.B. 7 < 8 < 9 < 10 < B < D < K < A bei Null-Spiel
I
Bedienregeln
I
Trumpfregeln
(egal)
Formale Darstellung der Karten:
Jede Karte ist eindeutig repräsentiert durch Paar von
Farbe aus der Menge {♦, ♥, ♠, ♣} und
Wert
I
I
Zahl aus der Menge {7, 8, 9, 10} oder
Bild aus der Menge {B, D, K , A}
57
Modellierungsbeispiel Primzahlen
Primzahlen sind genau die natürlichen Zahlen, die genau zwei
verschiedene Teiler haben.
Zahl a ∈ ist genau dann Teiler von b ∈ (a|b),
wenn eine Zahl c ∈ mit a · c = b existiert.
N
N
N
∀a∀b ((a|b) ↔ ∃c (a · c = b))
Zahl n ∈
N hat genau zwei Teiler:
1. n hat (wenigstens) zwei Teiler:
∃x∃y ((x|n) ∧ (y |n) ∧ (x 6= y ))
2. x und y sind die einzigen Teiler von n:
∀z ((z|n) → ((z = x) ∨ (z = y )))
Zahl n ∈
N hat genau zwei Teiler:
∃x∃y ((x|n) ∧ (y |n) ∧ (x 6= y ) ∧ ∀z ((z|n) → ((z = x) ∨ (z = y ))))
Menge aller Primzahlen:
{n ∈
N | ∃x∃y ((x|n) ∧ (y |n) ∧ (x 6= y ) ∧ ∀z ((z|n) → ((z = x) ∨ (z = y ))))}
58
Naiver Mengenbegriff
Georg Cantor (1845-1918):
Eine Menge ist eine Zusammenfassung bestimmter,
wohlunterschiedener Dinge unserer Anschauung oder unseres
Denkens, welche Elemente der Menge genannt werden, zu einem
Ganzen.
Mengen werden dargestellt:
extensional durch Angabe aller Elemente
(nur für endliche Mengen)
Beispiel: {0, 1, 2, 3}, {{a}, {a, b}}
intensional durch Angabe der charakterisierenden Eigenschaft
aller Elemente
(oft als prädikatenlogische Formeln)
Beispiele:
{x | ∃y ∈ (x = 2y )} = {2n | n ∈ } = 2
{x | x ∈ ∧ x < 4} = {x ∈ | x < 4}
N
N
N
N
N
59
Endliche Mengen
Menge A heißt endlich gdw. eine Zahl n ∈
genau n Elemente enthält.
N existiert, so daß A
Die leere Menge ∅ ist die (eindeutig bestimmte) Menge,
die kein Element enthält.
Beispiele:
I
{x | x ∈
N ∧ x ≤ 10}
endlich
I
{x | x ist Primzahl ∧x < 1000}
endlich
I
{x | x ist Primzahl }
nicht endlich (Widerspruchsbeweis)
|A| = n heißt Mächtigkeit (Kardinalität) von A.
Beispiele:
I
|{rot, grün, blau, gelb}| = 4
I
|{x | x ∈
I
|{a, b, {a, b}, {a, a, b}, b}| = 3
I
|∅| = 0
N ∧ x ≤ 10}| = 11
60
Beziehungen zwischen Mengen
∈ Element-Relation
Notation x ∈ M für: x ist Element der Menge M
Negation kurz 6∈: a 6∈ M gdw. ¬(a ∈ M)
Beispiele: a ∈ {a, b, 2}, {a} 6∈ {a, b, 2}
⊆ Teilmengen-Relation
A ⊆ B gdw. ∀x (x ∈ A → x ∈ B)
Beispiele: {a, b} ⊆ {2, a, b, {2}}, {a} ⊆ {a},
{a} 6⊆ {{a}}, aber {a} ∈ {{a}}
= Mengengleichheit
A = B gdw. ∀x (x ∈ A ↔ x ∈ B)
6 {a, b, {2}}
Beispiele: {a, b, 2} = {2, a, b, 2}, {a, b, 2} =
⊂ echte Teilmenge
A ⊂ B gdw. (A ⊆ B) ∧ ¬(A = B)
Beispiele: {2, a} ⊂ {a, b, 2},
{2, a} 6⊂ {2, a} , {2, a, b} 6⊂ {2, a}
61
Operationen auf Mengen
Vereinigung A ∪ B = {x | (x ∈ A) ∨ (x ∈ B)}
(x ∈ (A ∪ B)) ↔ (x ∈ A) ∨ (x ∈ B)
Beispiel: {a, c, d} ∪ {b, c} = {a, b, c, d}
Schnitt A ∩ B = {x | (x ∈ A) ∧ (x ∈ B)}
(x ∈ (A ∩ B)) ↔ (x ∈ A) ∧ (x ∈ B)
Beispiel: {a, c, d} ∩ {b, c} = {c}
Differenz A \ B = {x | (x ∈ A) ∧ ¬(x ∈ B)}
(x ∈ (A \ B)) ↔ (x ∈ A) ∧ ¬(x ∈ B)
Beispiel: {a, c, d} \ {b, c} = {a, d}
symmetrische Differenz A∆B = (A \ B) ∪ (B \ A)= (A ∪ B) \ (A ∩ B)
Beispiel: {a, c, d}∆{b, c} = {a, b, d}
bei gegebenem Universum U mit A ⊆ U:
Komplement A = U \ A = {x ∈ U | ¬(x ∈ A)}
(x ∈ A) ↔ ¬(x ∈ A)
Beispiel: Für U = {a, b, c, d} gilt {a, c} = {b, d}
62
Wichtige Mengenbeziehungen
(analog Aussagenlogik)
Für alle Mengen A, B, C gilt
I A ∪ A = A, A ∩ A = A
I A∪B =B ∪A A∩B =B ∩A
(Kommutativität von ∩ und ∪)
I A ∪ (B ∪ C ) = (A ∪ B) ∪ C
A ∩ (B ∩ C ) = (A ∩ B) ∩ C
(Assoziativität von ∩ und ∪)
I A ∩ (B ∪ C ) = (A ∩ B) ∪ (A ∩ C )
A ∪ (B ∩ C ) = (A ∪ B) ∩ (A ∪ C )
(Distributivgesetze)
I
I
I
A=A
A ∪ B = A ∩ B, A ∩ B = A ∪ B
(DeMorgansche Regeln)
A ∩ B = A ∪ B, A ∪ B = A ∩ B
(Dualität von ∩ und ∪)
63
Potenzmengen
Die Potenzmenge 2A einer Menge A ist die Menge aller Teilmengen
von A
2A = {B | B ⊆ A}
Beispiele:
I Für A = {0} gilt 2A = 2{0} = {∅, {0}},
I 2{a,b,c} = {∅, {a}, {b}, {c}, {a, b}, {b, c}, {a, c}, {a, b, c}},
A
{0}
Für A = {0} gilt 22 = 22 = {∅, {∅}, {{0}}, {∅, {0}}},
I Amtssprachen in der Schweiz:
S = {Deutsch, Französisch, Italienisch, Rätoromanisch}
mögliche Sprachkenntnisse der Bewohner: 2S
Mächtigkeit der Potenzmengen endlicher Mengen:
Für jede endliche Menge A gilt
A
2 = 2|A|
I
64
(Kartesisches) Produkt von Mengen
A × B = {(x, y ) | x ∈ A ∧ y ∈ B}
Beispiele:
I
{a, b} × {1, 2, 3} = {(a, 1), (a, 2), (a, 3), (b, 1), (b, 2), (b, 3)}
I
{1, . . . , m} × {1, . . . , n}
= {(i, j) | i ∈ {1, . . . , m} ∧ j ∈ {1, . . . , n}}
häufig als Indexmenge in Matrizen, digitalen Bildern,. . .
I
Namen = Vornamen × Familiennamen
I
Telefonbuch = Namen × Vornamen × Nummer
I
Datum = Tag × Monat × Jahr
= {1, . . . , 31} × {1, . . . , 12} ×
Z
Für alle endlichen Mengen A und B gilt |A × B| = |A| · |B|
65
Modellierungsbeispiel Skatkarten
Formale Darstellung der Karten:
Jede Karte ist eindeutig repräsentiert durch
Farbe aus der Menge F = {♦, ♥, ♠, ♣} und
Wert
Zahl aus der Menge Z = {7, 8, 9, 10} oder
Bild aus der Menge B = {B, D, K , A}
Menge aller Werte W = Z ∪ B
I
I
Menge aller Karten:
K = {(x, y ) | x ∈ F ∧ y ∈ W } = F × (Z ∪ B)
Skatblatt eines Spielers nach dem Geben:
{k1 , . . . , k10 } ⊆ K
66
Was bisher geschah
Modellierung von Aussagen
in klassischer Aussagen- und Prädikaten-Logik
Modellierung von Daten durch Mengen
I
Darstellung: extensional, intensional
I
leere Menge ∅
I
Mengenbeziehungen ∈, ⊆, =, ⊂
I
Mengenoperationen ∪, ∩, , ×
I
Potenzmenge der Menge M: 2M
I
Mächtigkeit (Kardinalität) endlicher Mengen
67
Aussonderungsprinzip
Zu jeder Menge A und jeder Eigenschaft P existiert eine Menge
B = {x | x ∈ A ∧ hat die Eigenschaft x} = {x | x ∈ A ∧ P(x)}
Beispiele:
I
A = Menge aller Studenten und P(x), falls x blond
I
A = {0, . . . , 100} und P(x), falls x gerade
I
A = {2n | n ∈
N} und P(x), falls x ≤ 100
68
Russells Paradox
(Problem der naiven Mengenlehre)
I
Menge A, die alle Mengen (als Elemente) enthält
I
Mengeneigenschaft P: P(x), falls x 6∈ x
Wenn die Menge A existiert, dann existiert nach
Aussonderungsprinzip auch die Menge
B = {x ∈ A | P(x)} = {x ∈ A | x 6∈ x}
Gilt B ∈ A ? Nein
(Tafel)
Also kann keine solche Menge A existieren, die jede Menge (damit
insbesondere auch B) als Element enthält.
alternative Formulierungen: Barbier, Kreter
69
Zerlegungen
Mengen A und B mit A ∩ B = ∅ heißen disjunkt.
Beispiele:
I
I
Z und 2Z + 1 sind disjunkt
2Z und 3Z sind nicht disjunkt, denn 2Z ∩ 3Z = 6Z 6= ∅
2
Eine Familie von Mengen {Ai }i∈I heißt genau dann
disjunkte Zerlegung einer Menge B, wenn
1. ∀i∀j ((i =
6 j) → ((Ai ∩ Aj ) = ∅))
(alle Ai paarweise disjunkt) und
S
2. i∈I Ai = B
(die Mengen Ai überdecken B vollständig)
Beispiele:
Z Z
Z
I
{2 , 2 + 1} ist eine (endliche) disjunkte Zerlegung von
I
für Ai = Menge aller Personen, die höchstens i cm groß sind,
ist {Ai | i ∈ } keine disjunkte Zerlegung der Menge aller Personen
(P)
I
für Bi = Menge aller Personen, die zwischen i und i + 1 cm groß
sind, ist {Bi | i ∈ } eine disjunkte Zerlegung von P
I
{[n, n + 1) ⊆
N
N
R|n ∈ Z} ist eine (unendliche) Zerlegung von R
70
Vereinigung disjunkter Mengen
Vereinigung A ∪ B = {x | (x ∈ A) ∨ (x ∈ B)}
Beispiel: Kunden K = {a, b, d}, Lieferanten L = {b, c, d},
Geschäftspartner G = K ∪ L = {a, b, c, d}
in G keine Information darüber, ob b Kunde oder Lieferant ist
Idee:
Mengen vor Vereinigung durch Hinzufügen einer
Kennzeichen-Komponente disjunkt machen“
”
(Verwaltung von Paaren aus Kennzeichen und Element) y
(Disjunkte) Vereinigung der Mengen {Ai }i∈I :
[
A0i mit A0i = {(i, x) | x ∈ Ai }
i∈I
Beispiel: I = {K , L}, AK = {a, b, d}, AL = {b, c, d},
A0K = {(K , a), (K , b), (K , d)}, A0L = {(L, b), (L, c), (L, d)}
Geschäftspartner {(K , a), (K , b), (L, b), (L, c), (K , d), (L, d)}
Mächtigkeit der disjunkten Vereinigung der Mengen {Ai }i∈I :
P
i∈I
|Ai |
71
Wiederholung Kartesisches Produkt von Mengen
A × B = {(x, y ) | x ∈ A ∧ y ∈ B}
Beispiele:
I
{Bratwurst,Frikadelle,Knacker}× {Kartoffelsalat, Nudelsalat}
I
(1, 2) ∈ ({0, 1} × {1, 2}), aber (1, 2) 6∈ ({1, 2} × {0, 1})
({0, 1} × {1, 2}) ∩ ({1, 2} × {0, 1}) = {(1, 1)}
I
{a} ×
N = {(a, 0), (a, 1), (a, 2), . . .} = {a0, a1, a2, . . .}
Für alle endlichen Mengen A und B gilt |A × B| = |A| · |B|
Beispiele:
I
3 · 2 = 6 Möglichkeiten für Cafeteria-Essen aus
{Bratwurst,Frikadelle,Knacker}× {Kartoffelsalat, Nudelsalat}
I
12 · 15 mögliche Pärchen aus
je einem von 12 Männern und je einer von 15 Frauen
72
Eigenschaften des Produktes von Mengen
I
× ist nicht kommutativ
{a, b} × {1, 2} = {(a, 1), (a, 2), (b, 1), (b, 2)}
6= {1, 2} × {a, b} = {(1, a), (2, a), (1, b), (2, b)}
I
× ist fast“ assoziativ
”
(A × B) × C kann mit A × B × C identifiziert werden.
z.B. ({a} × {1, 2}) × {α, β} = {(a, 1), (a, 2)} × {α, β}
= {((a, 1), α), ((a, 2), α), ((a, 1), β), ((a, 2), β)}
lässt sich eineindeutig zuordnen zu
{(a, 1, α), (a, 2, α), (a, 1, β), (a, 2, β)}
I
Distributivgesetze: Für alle Mengen A, B, C gilt
(A ∪ B) × C = (A × C ) ∪ (B × C ) und
(A ∩ B) × C = (A × C ) ∩ (B × C )
I
Für jede Menge A gilt A × ∅ = ∅.
I
Für alle Mengen A, B gilt:
Aus A ⊆ B folgt A × C ⊆ B × C
(ÜA)
73
Kartesisches Produkt mehrerer Mengen
n
×A = A
i
1
× · · · × An = {(x1 , . . . , xn ) | ∀i ∈ {1, . . . , n} : xi ∈ Ai }
i=1
Für endlich viele endliche Mengen Ai gilt
n
n
Y
Ai =
|Ai |
i=1 ×
i=1
Beispiele:
I
5-Gänge-Menü: Auswahl aus
3 Vorspeisen, 2 Suppen, 5 Hauptgerichten, 3 Desserts, 2 Käse
3 · 2 · 5 · 3 · 2 = 180 mögliche Kombinationen
I
|{0, 1}| = 2n Binärwörter mit n Stellen
I
103 höchstens dreistellige Dezimalziffern
I
65 verschiedene Ergebnisse beim fünfmal aufeinanderfolgenden
Würfeln mit einem Würfel
I
65 verschiedene Ergebnisse beim Würfeln mit fünf
verschiedenfarbigen Würfeln
n
74
Iterierte Produkte einer Menge
n
An =
×A
i=1
A0 = {ε}
[
A∗ =
An
n∈
+
A
=
N[
N
mit leerem Wort ε
An = A∗ \ {ε}
n∈ \{0}
(Notation: statt ε mitunter auch (), [])
Elemente aus An , A+ , A∗ heißen
I
Folgen (Vektoren) (a1 , a2 , . . . , an ),
I
Listen [a1 , a2 , . . . , an ], [a1 , a2 , . . .] oder
I
Wörter (Strings) a1 a2 . . . an (endlich)
75
Beispiele
I
{0, 1}∗ Menge aller Binärwörter
z.B. 10, 10010, 010, ε
I
Menge aller Binärwörter der Länge 3
{0, 1}3 = {000, 001, 010, 011, 100, 101, 110, 111}
I
{0, 1, 2}∗ Menge aller Ternärwörter
z.B. 20, 1202010, ε
I
Menge aller Ternärwörter der Länge 2
{0, 1, 2}2 = {00, 01, 02, 10, 11, 12, 20, 21, 22}
I
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}+ Menge aller natürlichen Zahlen in
Dezimaldarstellung
I
{a, b}∗ alle Wörter, die höchstens die Buchstaben a und b
enthalten (z.B. aba, ababa, aaaa, bbbaaa, ε)
I
{{a, b}∗ }∗ alle Folgen solcher Wörter
(z.B. (a, aa, aaa), (ba), ε, (ε, ε, ε))
76
Folgen
Folgen (Listen, Wörter) werden definiert:
extensional durch Angabe der Elemente und ihrer Reihenfolge
Beispiele: 3210, (1, 4, 9, 16, 25), abababababa
intensional durch Angabe einer Eigenschaft, die für jeden Index i
das i-te Element eindeutig bestimmt.
Beispiele: (4 − i)1≤i≤4 , (i 2 )i∈{1,...,5} ,
(wi )0≤i≤10 mit wi =
(vi )i∈N mit vi =
a falls i ∈ 2
b sonst
a falls i ∈ 2
b sonst
Z
Z
(i 2 )i∈N = (0, 1, 4, 9, . . .), (3)k∈N = (3, 3, 3, 3, . . .)
Länge der Folge (an )n∈I :
Anzahl der Elemente (= Mächtigkeit der Indexmenge I ⊆
N)
77
Was bisher geschah
Modellierung von Aussagen durch
Aussagenlogik
I
I
Syntax: Junktoren, Aussagenvariablen, Formelbaum
Semantik: Belegungen, WW-Tabellen
Prädikatenlogik Syntax (Quantoren, Individuenvariablen)
Modellierung von Daten durch
Mengen
I
I
I
I
I
I
extensionale und intensionale Darstellung
Mächtigkeiten endlicher Mengen
Beziehungen zwischen Mengen ⊆, =, ⊂
leere Menge ∅
Potenzmenge
Mengen-Operationen ∪, ∩, , \, ∆, ×, n ,
∗
Folgen (Wörter, Listen) über einer Menge A
I
I
extensionale und intensionale Darstellung
leeres Wort ε (leere Folge)
78
Modellierung durch Folgen
Beispiel Würfeln:
I
Menge der möglichen Werte (Augenzahlen): {1, 2, . . . , 6},
z.B. 3 ∈ {1, 2, . . . , 6}
I
Menge aller Folgen von Werten bei viermaligem Würfeln
(nacheinander): {1, 2, . . . , 6}4 ,
z.B. [3, 6, 5, 3] ∈ {1, 2, . . . , 6}4
I
Menge aller Folgen von Werten beim Würfeln beliebig oft
nacheinander: {1, 2, . . . , 6}∗ ,
z.B. [3, 2, 2, 5, 1] ∈ {1, 2, . . . , 6}∗ , ε ∈ {1, 2, . . . , 6}∗
79
Modellierung durch Mengen und Folgen
Beispiel lineares Solitaire:
I
I
I
I
I
I
Wert einer Spielposition ∈ {0, 1} (frei, belegt)
Spielzustand: Folge von Werten, z.B. 01110, 010010,
Menge aller Spielzustände ⊆ {0, 1}∗
(verschiedene Längen der Folgen während eines Spieles)
Menge der Positionen im Spielzustand: pos = {1, . . . , n}
Spielregel: (geordnetes) Paar von Tripeln von Werten.
z.B. (011, 100) ∈ {0, 1}3 × {0, 1}3 in Notation 011 → 100
Menge aller möglichen Spielregeln(, die Dreiergruppen
2
ersetzen): {0, 1}3 × {0, 1}3 = {0, 1}3
Spiel als Folge von Spielzuständen, z.B. [001110, 010010],
Menge aller Spiele ⊆ ({0, 1}∗ )∗
Spiel als geordnetes Paar aus Anfangszustand und Folge von
geordneten Paaren aus Regel und Position, z.B.
(011110, [(110 → 001, 4), (011 →
100, 1)]),
∗
2
∗
Menge aller Spiele ⊆ {0, 1} × {0, 1}3 × pos
80
Wörter – Beispiele
banane
ist ein Wort (Zeichenkette) mit Symbolen aus der Menge {a, b, e, n},
neben und abbbeeeab auch,
ananas und ab + bea nicht
2009
ist ein Wort mit Symbolen aus der Menge {0, 2, 9},
90 und 09020090 auch,
−2090 nicht
(x + y ) · (z − x)
ist ein Wort mit Symbolen aus der Menge {x, y , z, (, ), +, −, ·},
()xz(xy + − auch,
x + 3 · z nicht
(¬p ∧ p) → q
ist ein Wort mit Symbolen aus der Menge {p, q, ∧, ¬, →, (, )},
q → (p → q) und ∧)(¬p∧ auch,
p ↔ q nicht
otto holt obst .
ist ein Wort mit Symbolen aus der Menge {otto, obst, holt, .},
. otto . . otto auch,
los otto nicht
81
Alphabet, Wort, Sprache
Alphabet (endliche) Menge A von Symbolen
Wort endliche Folge von Symbolen w = w1 · · · wn mit
∀i ∈ {1, . . . , n} : wi ∈ A
Länge eines Wortes |w | = Anzahl der Symbole in w
Anzahl der Vorkommen eines Symboles in einem Wort
|w |a = Anzahl der a in w (für a ∈ A)
Sprache Menge von Wörtern L ⊆ A∗
82
Beispiele für Sprachen
I
Menge aller englischen Wörter L1 ⊂ {a, . . . , z}∗
I
Menge aller deutschen Wörter L2 ⊂ {a, . . . , z, ß,ä,ö,ü}∗
I
Menge aller möglichen DNA L3 ⊆ {A, T , G , C }∗
I
Menge aller natürlichen Zahlen in Dezimaldarstellung
L4 ⊆ {0, . . . , 9}∗ (evtl. mit führenden Nullen)
I
Menge aller natürlichen Zahlen in Binärdarstellung (Bitfolgen
beliebiger Länge) L5 ⊆ {0, 1}∗
I
Menge aller aussagenlogischen Formeln in AL({p, q, r })
L6 ⊂ {p, q, r , t, f, ¬, ∨, ∧, →, ↔, (, )},
I
Menge aller arithmetischen Ausdrücke über
L7 ⊂ {0, . . . , 9, +, ·, −, /, (, )},
I
Menge aller deutschen Sätze L8 ⊂ (L2 ∪ {., , , !, ?, (, ), −})
Z (ohne Variablen)
∗
Wie lassen sich unendliche Sprachen endlich darstellen?
(Voraussetzung für maschinelle Verarbeitung)
verschiedene Darstellungen in den LV zur theoretischen Informatik
z.B. Automaten und formale Sprachen im 3.Sem.
83
Verkettung von Wörtern (Folgen)
Verkettung ◦ von Wörtern:
Für alle Wörter u = u1 · · · um ∈ A∗ , v = v1 · · · vn ∈ A∗ gilt
u ◦ v = u1 · · · um v1 · · · vn
Beispiel: anne ◦ marie = annemarie
Eigenschaften der Operation ◦:
I ◦ ist assoziativ, d.h.
∀u ∈ A∗ ∀v ∈ A∗ ∀w ∈ A∗ ((u ◦ v ) ◦ w = u ◦ (v ◦ w ))
I
Das leere Wort ε ist neutrales Element für ◦, d.h.
∀w ∈ A∗ (ε ◦ w = w ◦ ε = w )
I
◦ ist nicht kommutativ.
Gegenbeispiel: u = marie, v = anne
u ◦ v = marieanne 6= annemarie = v ◦ u
84
Beziehungen zwischen Wörtern (Folgen)
Präfix (Anfangswort) v
∀u ∈ A∗ ∀v ∈ A∗ ((u v v )
↔
(∃w ∈ A∗ (u ◦ w = v )))
(Für zwei Wörter u ∈ A∗ , v ∈ A∗ gilt u v v genau dann,
wenn ein Wort w ∈ A∗ existiert, so dass u ◦ w = v gilt.)
Beispiele:
I
an v anna (mit w = na)
I
n 6v anna
I
tom v tomate (mit w = ate)
I
oma 6v tomate
I
für jedes Wort u ∈ A∗ gilt ε v u (mit w = u)
I
für jedes Wort u ∈ A∗ gilt u v u (mit w = ε)
(analog zur Teiler-Beziehung zwischen natürlichen Zahlen)
85
Postfix- und Infix-Beziehung auf Wörtern (Folgen)
Postfix-Beziehung:
Für zwei Wörter u = u1 · · · um ∈ A∗ , v = v1 · · · vn ∈ A∗ heißt u
genau dann Postfix (Suffix) von v , wenn ein Wort w ∈ A∗ existiert,
so dass w ◦ u = v gilt.
Beispiel: enten ist Postfix von studenten (mit w = stud)
Infix-Beziehung (Teilwort, Faktor):
Für zwei Wörter u = u1 · · · um ∈ A∗ , v = v1 · · · vn ∈ A∗ heißt u
genau dann Infix von v , wenn zwei Wörter w , w 0 ∈ A∗ existieren,
so dass w ◦ u ◦ w 0 = v gilt.
Beispiel: uwe ist Infix von sauwetter (mit w = sa, w 0 = tter )
satt ist kein Infix von sauwetter
86
Sprachen als Mengen
Sprachen L ⊆ A∗ sind Mengen von Wörtern (endlichen Folgen)
Mengenbeziehungen auf Sprachen:
L ⊆ L0 gdw.
∀w ∈ A∗ ((w ∈ L) → (w ∈ L0 ))
L = L0 gdw.
∀w ∈ A∗ ((w ∈ L) ↔ (w ∈ L0 ))
Mengenoperationen auf Sprachen:
L ∪ L0 = {w | w ∈ L ∨ w ∈ L0 }
L ∩ L0 = {w | w ∈ L ∧ w ∈ L0 }
L \ L0 = {w | w ∈ L ∧ w 6∈ L0 }
Komplement einer Sprache L ⊆ A∗ : L = A∗ \ L
Beispiel:
[
[
L=
An
L=
An ∪
N
n∈3
N
n∈(3 +1)
[
N
An
n∈(3 +2)
87
Verkettung von Sprachen
Verkettung ◦ von Sprachen:
L1 ◦ L2 = {u ◦ v | (u ∈ L1 ) ∧ (v ∈ L2 )}
Beispiel:
L1 = {111, 1, 10} L2 = {00, 0}
L1 ◦ L2 = {111, 1, 10} ◦ {00, 0}
= {1110, 11100, 10, 100, 1000}
88
Iterierte Verkettung
I
für Sprachen L ⊆ A∗
L0 = {ε}
∀n ∈
N:
Ln+1 = Ln ◦ L = L
· · ◦ L}
| ◦ ·{z
n+1−mal
∗
L =
[
n∈
I
N
L
n
+
L =
[
N
n
L
n∈ \{0}
für Wörter (endliche Folgen) u ∈ A∗ :
un
u
+
∈ A∗ ,
= u
· · u}
| ·{z
u ∗ = {u}∗ = {u n | n ∈
n−mal
∗
= u \ {ε} = {u}+ = {u n | n ∈
N \ {0}}
N}
⊆ A∗
⊆ A∗
Beispiele:
(101)3
a∗
∗
(ab)
=
101101101
und
1013 = 10111
N} = {ε, a, aa, aaa, . . .}
| i ∈ N} = {ε, ab, abab, ababab, . . .}
= {ai | i ∈
i
= {(ab)
89
Mehr Beispiele für Sprachen
I
{aa, b}∗
= {u1 ◦ · · · ◦ un | n ∈
N ∧ ∀i ∈ {1, . . . , n} (ui ∈ {aa, b})}
= {ε, b, aa, bb, aab, baa, bbb, aaaa, aabb, baab, bbaa, bbbb, . . .}
I
∅ ◦ {aba, bb} = ∅
I
{ε} ◦ {aba, bb} = {aba, bb}
I
{bb}∗ = {w ∈ {b}∗ | |w | ∈ 2 } = {ε, bb, bbbb, . . .}
I
({1} ◦
{0}∗ )∗
= {w ∈
{0, 1}∗
N
| w1 = 1} ∪ {ε}
90
Reguläre Ausdrücke – Syntax
Die Menge RegExp(A) aller regulären Ausdrücke über einem
Alphabet A ist (induktiv) definiert durch:
IA: ∅ ∈ RegExp(A),
ε ∈ RegExp(A) und
für jedes Symbol a ∈ A gilt a ∈ RegExp(A)
IS: für alle E ∈ RegExp(A) und F ∈ RegExp(A) gilt
(E + F ), EF , (E )∗ ∈ RegExp(A).
Beispiele:
(∅ + b) ∈ RegExp({a, b}),
(a∅)∗ ∈ RegExp({a, b}),
(ε + ((ab)∗ a)∗ ) ∈ RegExp({a, b}),
für beliebiges A gilt ε ∈ RegExp(A), (ε + ∅) ∈ RegExp(A),
(Baumdarstellung)
91
Beispiele
(ohne überflüssige Klammern)
I
Für A = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} gilt
0+(1+2+3+4+5+6+7+8+9)(0+1+2+3+4+5+6+7+8+9)∗
∈ RegExp(A)
I
Für A = {0, 1} gilt
I
I
(1 + ε)∗ + (10)∗ ∈ RegExp(A)
(0 + 11)∗ + ((0 + (1)∗ )0)∗ ∈ RegExp(A)
Mitunter werden
A
E + = EE ∗
E n = |E ·{z
· · E}
E
n∗
n−mal
n ∗
= (E )
= (E
· · E})∗
| ·{z
n−mal
für n ∈
N als Kurzbezeichnungen verwendet.
92
Reguläre Ausdrücke – Semantik
Jeder reguläre Ausdruck E ∈ RegExp(A) repräsentiert
eine Sprache L(E ) ⊆ A∗ .
L(∅)
L(ε)
∀a ∈ A :
L(a)
∀E , F ∈ RegExp(A) : L(E + F )
∀E , F ∈ RegExp(A) :
L(EF )
∀E , F ∈ RegExp(A) :
L(E ∗ )
= ∅
= {ε}
= {a}
= L(E ) ∪ L(F )
= L(E ) ◦ L(F )
∗
= (L(E ))
Eine Sprache L ⊆ A∗ heißt genau dann regulär, wenn ein regulärer
Ausdruck E ∈ RegExp(A) existiert, so dass L = L(E ).
Beispiel: Die Menge L aller Dezimaldarstellungen natürlicher Zahlen ist
regulär wegen L = L (0 + (1 + 2 + · · · + 9)(0 + 1 + · · · + 9)∗ )
93
Beispiele
Für A = {a, b} gilt
N}
| i ∈ N}
L(ab ∗ ) = {a, ab, abb, abbb, abbbb, . . .} = {ab i | i ∈
∗
i
L((ab) ) = {ε, ab, abab, ababab, . . .} = {(ab)
L((a + b)∗ ) = {a, b}∗
L(a∗ b ∗ ) = {u ◦ v | u ∈ a∗ ∧ v ∈ b ∗ }
L((a∗ b ∗ )∗ ) = {a, b}∗
L(A∗ aba) = {u ◦ aba | u ∈ A∗ }∗
Reguläre Ausdrücke ermöglichen eine endliche Darstellung
unendlicher Sprachen.
Aber: Nicht jede unendliche Sprache ist regulär.
( mehr dazu in den LV zur theoretischen Informatik,
z.B. Automaten und Formale Sprachen im 3.Sem. )
94
Beispiele regulärer Sprachen
I
I
I
I
I
I
I
L1 = ∅,
wegen ∅ ∈ RegExp(A) und L(∅) = ∅ = L1
L2 = {a, bab},
wegen a + bab ∈ RegExp(A) und L(a + bab) = L2
L3 = {w ∈ {a, b, c}∗ | abba v w },
wegen abba(a + b + c)∗ ∈ RegExp({a, b, c}) und
L(abba(a + b + c)∗ ) = L3
L4 = {w ∈ {a, b, c}∗ | aa oder bbb sind Infix von w }, wegen
(a + b + c)∗ (aa + bbb)(a + b + c)∗ ∈ RegExp({a, b, c}) und
L((a + b + c)∗ (aa + bbb)(a + b + c)∗ ) = L4
{w ∈ {a, b}∗ | |w | ∈ 2 } = L((aa + ab + ba + bb)∗ )
{w ∈ {a, b}∗ | |w |a ∈ 2 } = L((b ∗ ab ∗ ab∗)∗ )
alle möglichen HTWK-Email-Adressen
≈ L(A∗ @htwk-leipzig.de) mit
A = {A, B, . . . , Z } ∪ {a, b, . . . , z} ∪ {0, 1, . . . , 9} ∪ {.}
(ASCII-Symbole)
N
N
95
Was bisher geschah
Modellierung von Aussagen durch Logiken
Modellierung von Daten durch
Mengen
extensionale und intensionale Darstellung
Mächtigkeiten endlicher Mengen, ∅
Beziehungen zwischen Mengen ⊆, =, ⊂
I Mengen-Operationen ∪, ∩, , \, ∆, ×, n , ∗ , 2M
I
I
I
Folgen über einer Menge A
I extensionale und intensionale Darstellung
I Länge von Folgen, leeres Wort ε (leere Folge)
I unendliche Folgen,
endliche Folgen fester Länge (Tupel, Vektoren),
endliche Folgen variabler Länge (Wörter, Listen)
I Operationen auf Wörtern: (iterierte) Verkett. ◦, ∗
I Beziehungen zwischen Wörtern: Prä-, In-, Postfix
Sprachen Mengen von Wörtern (endlichen Folgen)
I Beziehungen zwischen Sprachen: ⊆, =, ⊂
I Operationen auf Sprachen:
Mengenoperationen, (iterierte) Verkettung ◦,
I reguläre Ausdrücke (Syntax, Sematik)
∗
96
Relationen
Relationen repräsentieren Beziehungen zwischen Individuen.
Definition
Jede Menge R ⊆ A × B ist Relation zwischen den Mengen A und B.
Beispiele:
I
H ⊆ Studenten × Dozenten mit (s, d) ∈ H gdw.
s hört (wenigstens) eine Vorlesung bei d.
I
S ⊆ Skatkarten × Skatkarten mit (h, k) ∈ B gdw.
Karte h hat höheren Wert als Karte k
I
B ⊆ Spieler × Skatkarten mit (s, k) ∈ B gdw.
Spieler hat s die Karte k auf der Hand.
I
R ⊆ {a, b, c} × {1, 2, 3, 4} mit R = {(a, 2), (a, 3), (c, 2), (c, 4)}
I
I
I
N2 mit R = {(m, n) ∈ N2 | m = n + 5}
R ⊆ R2 mit R = {(x, y ) ∈ R2 | x 2 + y 2 = 1}
≤ ⊆ R2 mit ≤ = {(m, n) ∈ R2 | m ≤ n}
R⊆
Zur Definition einer Relation R ⊆ A × B gehören (sind anzugeben):
die Mengen A, B (Typ der Relation) und
I die Menge R (extensional oder intensional)
I
97
Spezielle Relationen
∅ Die leere Relation ∅ ist Relation zwischen beliebigen
Mengen A und B.
Relation R ⊆ A × B für spezielle B
B = A , also A × B = A2
R ⊆ A2 heißt binäre Relation auf A.
Beispiele: ≤ ∈ 2 mit ≤ = {(x, y ) ∈| x ≤ y },
Identität auf A: IA ⊆ A2 mit IA = {(x, x) | x ∈ A}
R
B = An , also A × B = An+1
R ⊆ An+1 heißt n + 1-stellige Relation auf a.
B = A0 , also A × B = A × {ε} = {(a, ε) | a ∈ A}
Relation entspricht einer Teilmenge R ⊆ A.
R ⊆ A heißt dann auch einstellige Relation auf A.
(Eigenschaft von Elementen aus A)
Beispiel: G ⊆ mit G = {n ∈ | 2 < n}
N
N
98
Häufige Anwendungen
I
Datenbanken: jede Tabelle repräsentiert eine Relation T , z.B.
Id
Vorname Name Studieng. Jg. Gruppe
34567 Lisa
Klein
AMB
14 1
12345 Erwin
Meier
INB
14 2
56789 Paula
Müller MIB
13 1
..
..
..
..
..
..
.
.
.
.
.
.
mit T ⊆ {0, 1, . . . , 9}5 × Vornamen × Namen
×{AMB, INB, MIB} × {0, 1, . . . , 9}2 × {1, 2}
und z.B. ( 12345, Erwin, Meier, INB, 14, 2 ) ∈ T
I
Ontologien, z.B. Komponenten eines Systems:
TeilVon (Hand, Arm), TeilVon (Finger, Hand),
IstEin (Daumen, Finger)
I
Abläufe, z.B. durch Übergangsrelation T zwischen Zuständen
Münzspiel: (0230, 1040) ∈ T , (0230, 0311) ∈ T , (0311, 1121) ∈ T ,
(1040, 1121) ∈ T , (1121, 1202) ∈ T
99
Abgeleitete Relationen
Inverse der binären Relation R ⊆ A × B:
R −1 = {(b, a) | (a, b) ∈ R} ⊆ B × A
Beispiele: {(1, a), (1, b), (2, b)}−1 = {(a, 1), (b, 1), (b, 2)},
istKindVon−1 = istElternteilVon, ≤−1 = ≥
Einschränkung von R ⊆ A × B auf M ⊆ A:
R|M = {(a, b) ∈ R | a ∈ M}
Beispiele: {(1, a), (1, b), (2, b), (3, a)}|{2,3} = {(2, b), (3, a)},
istElternteilVon|Frauen = istMutterVon, < |{0,1,4} = {(0, 1), (0, 4), (1, 4)}
Projektionen von R ⊆ A × B:
π1 (R)
= {a ∈ A | (a, b) ∈ R} ⊆ A
π2 (R)
= {b ∈ B | (a, b) ∈ R} ⊆ B
Beispiele: π1 ({(1, a), (1, b), (2, b), (3, a)}) = {1, 2, 3},
π2 (istKindVon) = Menge aller Eltern
100
Verkettung von Relationen
Verkettung R ◦ S ⊆ A × C
der Relationen R ⊆ A × B und S ⊆ B × C :
R ◦ S = {(x, y ) ∈ A × C | ∃z ∈ B((x, z) ∈ R ∧ (z, y ) ∈ S)}
Beispiele:
I
für A = {1, 2, 3}, B = {a, b, c}, C = {♦, ♥} und
R = {(1, a), (1, c), (2, b), (3, c)}, S = {(a, ♥), (a, ♦), (b, ♦)}
R ◦ S= {(1, a), (1, c), (2, b), (3, c)} ◦ {(a, ♥), (a, ♦), (b, ♦)}
= {(1, ♥), (1, ♦), (2, ♦)}
I
istKindVon ◦ istKindVon = istEnkelVon
I
≤ ◦ ≤=≤
101
Eigenschaften der Verkettung
Für alle Relationen R ⊆ A × B, S ⊆ B × C , T ⊆ C × D gilt:
I
(R ◦ S) ◦ T = R ◦ (S ◦ T )
I
i.A. R ◦ S 6= S ◦ R
(nicht kommutativ)
Gegenbeispiel: für R = {(a, b)}, S = {(b, c)} gilt
R ◦ S = {(a, c)}, aber S ◦ R = ∅
I
R ◦ IB = R = IA ◦ R
I
(R ◦
S)−1
=
S −1
◦
(assoziativ)
(IA , IB sind neutrale Elemente)
R −1
102
Modellierungsbeispiel
B
P
O
L
={
={
={
={
Blumen, Pferde, Schiffe }
Paul, Max, Ilse }
Leipzig, Berlin, Genf }
D, S }
(Bücher)
(Personen)
(Orte)
(Länder)
hatAutor ⊆ B × P mit
hatAutor = { (Blumen, Max), (Schiffe, Paul),
(Schiffe, Ilse), (Pferde, Max), (Pferde, Ilse) }
wohntIn ⊆ P × O mit
wohntIn = {(Paul, Berlin), (Ilse, Leipzig), (Max, Genf) }
liegtIn ⊆ O × L mit
liegtIn = {(Leipzig, D), (Berlin, D), (Genf, S) }
Verkettungen der Relationen:
wohntIn ◦ liegtIn ⊆ P × L mit
wohntIn ◦ liegtIn ={(Paul,D), (Ilse,D), (Max, S)}
I hatAutor ◦ wohntIn ⊆ B × O mit hatAutor ◦ wohntIn = . . .
I hatAutor ◦ wohntIn ◦ liegtIn ⊆ B × L mit . . .
I
103
Darstellung binärer Relationen
Darstellungsformen für binäre Relation R ⊆ M 2 auf
endlicher Menge M:
I
Menge geordneter Paare (intensional oder extensional)
I
n × n-Matrix (für M = {a1 , . . . , an }) mit Einträgen aus {0, 1}
(
1 falls (ai , aj ) ∈ R
mij =
0 sonst
I
(gerichteter) Graph G = (M, R) mit Eckenmenge M und
Kantenmenge R
Darstellung binärer Relationen R ⊆ M 2 auf
unendlicher Menge M i.A. nur intensional möglich
104
Eigenschaften binärer Relationen
Eine binäre Relation R ⊆ M 2 heißt
reflexiv falls für alle a ∈ M gilt (a, a) ∈ R
Beispiele: =, ≤, v, ⊆
irreflexiv falls für alle a ∈ M gilt (a, a) 6∈ R
Beispiele: <, ⊂, istGeschwisterVon, istKindVon
symmetrisch falls für alle a, b ∈ M gilt:
Aus (a, b) ∈ R folgt (b, a) ∈ R
Beispiele: =, istGeschwisterVon
asymmetrisch falls für alle a, b ∈ M gilt:
Aus (a, b) ∈ R folgt (b, a) 6∈ R
Beispiele: <, istKindVon
antisymmetrisch falls für alle a, b ∈ M gilt:
Aus (a, b) ∈ R und (b, a) ∈ R folgt a = b
Beispiele: ≤, v, ⊆
transitiv falls für alle a, b, c ∈ M gilt:
Aus (a, b) ∈ R und (b, c) ∈ R folgt (a, c) ∈ R
Beispiele: =, ≤, <, v, ⊆, istVorfahreVon
105
Was bisher geschah
Modellierung von
I Aussagen durch Logiken
I
I
I
Daten durch
I
I
I
I
klassische Aussagenlogik
klassische Prädikatenlogik
Mengen
Folgen
Sprachen
Zusammenhängen und Eigenschaften durch Relationen
I
I
I
Definition
Beispiele
Operationen auf Relationen:
I
I
I
I
inverse Relation
Verkettung von Relationen
Projektionen, Einschränkung
Eigenschaften binärer Relationen auf einer Menge
106
Hüllen binärer Relationen
R ∪ IM heißt reflexive Hülle von R ⊆ M 2
(mit Identität IM = {(x, x) | x ∈ M})
R ∪ R −1 heißt symmetrische Hülle von R ⊆ M 2
(mit inverser Relation R −1 = {(y , x) | (x, y ) ∈ R})
Wiederholung: Verkettung ◦ der Relationen R ⊆ M 2 und S ⊆ M 2
R ◦ S = {(x, z) ∈ M 2 | ∃y ∈ M : (x, y ) ∈ R ∧ (y , z) ∈ S}
Iterierte Verkettung von R ⊆ M 2 mit sich selbst:
R0
R
n+1
R+
= IM
= Rn ◦ R
[
=
Rn ⊆ M2
N
transitive Hülle
n∈ \{0}
R∗
=
[
N
Rn ⊆ M2
reflexiv-transitive Hülle
n∈
107
Beispiel
R ⊆ ({a, b, c})2
mit
R = {(a, b), (b, c)}
R −1 = {(b, a), (c, b)}
R ∪ R −1 = {(a, b), (b, c), (b, a), (c, b)}
(symmetrische Hülle)
R 0 = {(a, a), (b, b), (c, c)}
R ∪ R 0 = {(a, b), (b, c), (a, a), (b, b), (c, c)}
(reflexive Hülle)
R 2 = {(a, c)}
R3 = ∅
R
+
(= R n
2
für beliebige n ≥ 3)
3
= R ∪ R ∪ R ∪ · · · = {(a, b), (b, c), (a, c)}
(transitive Hülle)
R
∗
0
= R ∪R
+
= {(a, a), (b, b), (c, c), (a, b), (b, c), (a, c)}
(reflexiv-transitive Hülle)
108
Modellierungsbeispiel
Lineares Solitaire mit
I Menge der Spielzustände Q = {0, 1}6 ,
I Startzustand 011110 ∈ Q,
I Übergangsrelation T ∈ Q 2 mit


 (011110, 100110) , (011110, 011001) 
(100110, 100001) , (011001, 100001)
T =


(100110, 101000) , (011001, 000101)
Hüllen der Übergangsrelation enthalten
zusätzliche Möglichkeiten für Spielzüge:
I reflexive Hülle T ∪ IQ
Aussetzen
−1
I symmetrische Hülle T ∪ T
Rückwärts“-Züge
”
+
I transitive Hülle T
mehrere Züge auf einmal (aber wenigstens einen)
I reflexiv-transitive Hülle T ∗
beliebig viele Züge auf einmal (Aussetzen erlaubt)
109
Quasiordnungen
Jede reflexive und transitive Relation R ⊆ M 2 heißt Quasiordnung.
Beispiele:
I
R ⊆ {a, b, c}2 mit
R = {(a, a), (a, b), (b, b), (b, c), (a, c), (c, c)}
I
T ⊆ (Menge aller Personen)2 mit
(p, q) ∈ T gdw. p höchstens so alt ist wie q
I
S⊆
Z2 mit S = {(a, b) ∈ Z2 | |a| ≥ |b|}
110
Äquivalenzrelationen
Jede reflexive, transitive und symmetrische Relation R ⊆ M 2 heißt
Äquivalenzrelation.
Beispiele:
I
R ⊆ {a, b, c}2 mit R = {(a, a), (a, b), (b, a), (b, b), (c, c)}
I
Relation haben dieselbe Farbe“ für Skatkarten
”
R ⊆ ({♦, ♥, ♠, ♣} × ({7, 8, 9, 10} ∪ {B, D, K , A}))2 mit
R = {((f1 , w1 ), (f2 , w2 )) | f1 = f2 }
I
I
Relation sind im selben Studiengang“ für Studenten
”
R ⊆ A∗ mit R = {(u, v ) ∈ (A∗ )2 | |u| = |v |} (gleiche Länge)
I
Gleichmächtigkeit von Mengen: (A, B) ∈ R gdw. |A| = |B|
I
Ähnlichkeit von Dreiecken
I
für jede Menge M: IM ⊆ M 2 mit IM = {(x, x) | x ∈ M}
111
Äquivalenzklassen
Zu jeder Äquivalenzrelation R ⊆ M 2 heißen
I
zwei Elemente a ∈ M und b ∈ M genau dann äquivalent bzgl.
R, wenn (a, b) ∈ R
I
die Menge aller zu a ∈ M äquivalenten Elemente aus M
[a]R = {x ∈ M | (a, x) ∈ R}
Äquivalenzklasse von a bzgl. R
Beispiele:
I
Äquivalenzklassen bzgl. der Äquivalenzrelation R ⊆ {a, b, c}2
mit R = {(a, a), (a, b), (b, a), (b, b), (c, c)}:
[a]R = {a, b} = [b]R und [c]R = {c}
I
Äquivalenzklassen bzgl. der Äquivalenzrelation
haben dieselbe Farbe“ für Skatkarten:
”
K♦ , K♥ , K♠ , K♣ (siehe Übungsaufgabe 5.1.a)
[(♦, B)]R = K♦ = {(♦, w ) | w ∈ {7, 8, 9, 10, B, D, K , A}}
112
Äquivalenzrelationen und disjunkte Zerlegungen
1. Jede Äquivalenzrelation R ⊆ M 2 definiert eine disjunkte Zerlegung
von M in die Menge aller Äquivalenzklassen
{[a]R | a ∈ M}
2. Jede (disjunkte) Zerlegung P = {Mi | i ∈ I } einer Menge M
definiert eine Äquivalenzrelation
RP ⊆ M 2
mit
RP = {(a, b) | ∃i ∈ I : {a, b} ⊆ Mi }
Beispiele:
I
Relation R ⊆ {a, b, c}2 mit R = {(a, a), (a, b), (b, a), (b, b), (c, c)}
definiert Zerlegung {[a]R , [b]R , [c]R } = {{a, b}, {c}}
der Menge {a, b, c}
I
Zerlegung F = {K♦ , K♥ , K♠ , K♣ } der Menge aller Skatkarten
definiert die Relation RF (haben dieselbe Farbe)
I
Zerlegung P = {3 , 3 + 1, 3 + 2}
definiert die Relation RP = {(m, n) ∈
N N
N
N2 | 3|(m − n)}
113
Halbordnungen
Jede reflexive, transitive und antisymmetrische Relation R ⊆ M 2
heißt Halbordnung.
a ∈ M und b ∈ M heißen genau dann vergleichbar bzgl. R,
wenn (a, b) ∈ R oder (b, a) ∈ R
Beispiele:
I
R ⊆ {a, b, c, d}2 mit
R = {(a, a), (a, b), (a, c), (a, d), (b, b), (b, d), (c, c), (d, d)}
I
≤⊆
I
R ⊆ ( Menge aller AMB-Studenten )2 mit
(p, q) ∈ R gdw. (Matrikelnr. von p) ≤ (Matrikelnr. von q)
I
v ⊆ ({a, b}∗ )2
I
Teilerrelation | ⊆ 2 mit a|b gdw. ∃n ∈
(Warum ist | ⊆ 2 keine Halbordnung?)
I
Teilmengenrelation ⊆ auf 2{a,b,c}
N2 (≤ ⊆ Z2, ≤ ⊆ R2)
N
Z
Z | an = b
114
Hasse-Diagramme von Halbordnungen
(für Halbordnungen auf endlichen Mengen)
graphische Darstellung der Relation mit folgenden Konventionen:
I
Pfeilspitzen weglassen,
stattdessen optische Ausrichtung (nach oben)
I
reflexive Kanten (Schlingen) weglassen
I
transitive Kanten weglassen
Beispiele (Tafel):
I
Halbordnung ⊆ auf 2{a,b,c} ,
I
≤ auf {0, . . . , 6},
I
Teiler-Halbordnung | auf {0, . . . , 6}
115
Totale Ordnungen
Jede Halbordnung R ⊆ M 2 mit
∀(a, b) ∈ M 2 ((a, b) ∈ R ∨ (b, a) ∈ R)
heißt totale (lineare) Halbordnung.
(alle Elemente miteinander vergleichbar)
Beispiele:
I
R ⊆ ({a, b, c})2 mit
R = {(a, a), (a, b), (a, c), (c, b), (b, b), (c, c)}
I
≤⊆
I
R ⊆ ( Menge aller AMB-Studenten )2 mit
(p, q) ∈ R gdw. (Matrikelnr. von p) ≤ (Matrikelnr. von q)
I
alphabetische Ordnung der Wörter im Wörterbuch
N2 (≤ ⊆ Z2, ≤ ⊆ R2)
116
Was bisher geschah
Modellierung von
I
Aussagen durch Logiken
I
Daten durch
I
I
I
I
Mengen
Folgen
Sprachen
Zusammenhängen und Eigenschaften durch Relationen
I
I
I
I
I
Definition, Beispiele
Operationen auf Relationen:
inverse Relation, Verkettung, Projektionen, Einschränkung
Eigenschaften binärer Relationen R ⊆ M 2
reflexive, symmetrische, transitive Hüllen
spezielle binäre Relationen auf einer Menge:
I
I
Halbordungen, Hasse-Diagramm
Äquivalenzrelation, Zerlegung in Äquivalenzklassen
117
Anzahlen von Relationen
Für endliche Mengen A und B, wieviele
I
einstellige Relationen R ⊆ A?
I
zweistellige Relationen R ⊆ A × B?
I
binäre Relationen R ⊆ A2 ?
I
nullstellige Relationen R ⊆ A0 ?
I
n-stellige Relationen R ⊆ An ?
2|A|
2(|A|·|B|)
2
2(|A| )
0
2(|A| ) = 21 = 2
2(|A|
n)
118
Funktionen (Wiederholung)
Funktion: spezielle Relation mit Richtung
Relation f ⊆ A× B heißtgenau dann partielle Funktion,
wenn ∀a ∈ A : π2 f |{a} ≤ 1
Relation f ⊆ A× B heißtgenau dann (totale) Funktion,
wenn ∀a ∈ A : π2 f |{a} = 1
Beispiele:
I
Abbildung aller HTWK-Studenten auf ihren Geburtstag
ist totale Funktion
I
Abbildung von Geburtstag auf Studenten
ist keine Funktion
I
I
I
N2 mit f = {(x, x 2) | x ∈ N} ist (totale) Funktion
g ⊆ N2 mit g = {(x 2 , x) | x ∈ N} ist partielle Funktion
h ⊆ R2 mit h = {(x, sin x) | x ∈ R} ist (totale) Funktion
f ⊆
119
Definition von Funktionen
Funktion f : A → B wird definiert durch Angabe von:
Typ (Signatur):
Definitionsbereich : Menge A
Wertebereich : Menge B
Werte Zuordnung f
extensional z.B. f = {a 7→ 1, b 7→ 0}
(statt f = {(a, 1), (b, 0)})
intensional z.B. ∀x ∈ : f (x) = x 2
Syntax
Semantik
N
Graph von f : Relation f ⊆ A × B = {(x, f (x)) | x ∈ A}
120
Mehrstellige Funktionen auf einer Menge
A = B n : Funktion f : B n → B heißt auch
n-stellige Funktion auf B
Achtung: n-stellige Funktionen auf B sind
n + 1-stellige Relationen auf B.
Beispiel: f : × → mit
∀(x, y ) ∈ 2 : f (x, y ) = 2x + y
N
A=
B0
N N N
= {ε}:
Nullstellige Funktionen f : B 0 → B heißen auch
Konstanten f ∈ B.
Beispiel: c : 0 → mit c = 3
N
N
121
Abgeleitete Funktionen
Für Funktion f : A → B heißt
f (A) = π2 (f ) Bild von f ,
f (M) = π2 (f |M ) ⊆ B für M ⊆ A Bild von M unter f ,
f (a) = π2 f |{a} ∈ B für a ∈ A Bild von a unter f ,
f −1 (N) = π2 f −1 |N ⊆ A für N ⊆ B Urbild von N unter f ,
f −1 (b) = π2 f −1 |{b} ⊆ A für b ∈ B Urbild von b unter f ,
Für jede (totale) Funktion f : A → B gilt f −1 (B) = A
122
Eigenschaften von Funktionen (Wiederholung)
Funktion f : A → B heißt
injektiv , falls für alle b ∈ B gilt f −1 (b) ≤ 1,
surjektiv , falls für alle b ∈ B gilt f −1 (b) ≥ 1,
bijektiv , falls für alle b ∈ B gilt f −1 (b) = 1,
Eine Funktion ist genau dann bijektiv,
wenn sie injektiv und surjektiv ist.
Beispiele:
N → N mit ∀x ∈ N : f (x) = x 2 ist injektiv, nicht surjektiv
I f : Z → Z mit ∀x ∈ Z : f (x) = x 2 ist weder injektiv noch
I
f :
surjektiv
I
R
f : ≥0 →
surjektiv
R≥0 mit ∀x ∈ R≥0 : f (x) = x 2 ist injektiv und
123
Mengen von Funktionen
Menge aller (totalen) Funktionen von A nach B:
B A = {f : A → B} = {f ⊆ A × B | ∀a ∈ A : π2 f |{a} = 1}
Beispiel: {0, 1}{p,q,r } = {W : {p, q, r } → {0, 1}}
Für alle endlichen Mengen A, B gilt B A = |B||A| .
( Es existieren |B||A| verschiedene Funktionen von A nach B.)
Beispiele:
I
|{0, 1}||{p,q,r }| = 23 = 8 Funktionen W : {p, q, r } → {0, 1}
I
3|A| Funktionen f : A → {rot, grün, blau}
I
4|A| Funktionen f : A → {1, 2, 3, 4}
I
4|A| Funktionen f : A → {0, 1}2
124
Funktionen auf Anfangsstücken von
Funktion f : I → B mit I = {0, . . . , n} ⊂
N
N
Beispiel:
f : {0, . . . , 4} → B, wobei ∀n ∈ {0, 1, . . . , 4} : f (n) = 7n + 2
f (0) = 2, f (1) = 9, f (2) = 16, f (3) = 23, f (4) = 30
alternative Darstellung:
f0 = 2, f1 = 9, f2 = 16, f3 = 23, f4 = 30
Folge f = [2, 9, 6, 23, 30] =(7n + 2)i∈{0,...,4}
Jede Funktion f : I → B mit I = {0, . . . , n} repräsentiert
eine eindeutig definierte Folge (f (i))i∈I ∈ B ∗
Jede Folge (ai )i∈I ∈ B ∗ repräsentiert
eine eindeutig definierte Funktion a : I → B mit a(i) = ai
125
Funktionen nach {0, 1}
Für endliche Mengen A und B
I
I
(Anzahl)
0
nullstellige Funktionen f : A → {0, 1}
f0 = 0, f1 = 1 (Konstanten)
0
2|A | = 21 = 2
2|A|
einstellige Funktionen f : A → {0, 1}
Beispiel: für A = {a, b}
f00 = {a 7→ 0, b 7→ 0}
f01 = {a 7→ 0, b 7→ 1}
f10 = {a 7→ 1, b 7→ 0}
f11 = {a 7→ 1, b 7→ 1}
mögliche Urbilder der 1:
−1
−1
−1
−1
f00
(1) = ∅, f01
(1) = {b}, f10
(1) = {a}, f11
(1) = {a, b}
für
beliebige
Menge
A:
−1
f (1) ∈ A | f ∈ 2A = 2A (Potenzmenge von A)
I
zweistellige Funktionen f : A × B → {0, 1}
I
zweistellige Funktionen f : A2 → {0, 1}
I
n-stellige Funktionen f : An → {0, 1}
I
n-stellige Wahrheitswert-Funktionen f : {0, 1}n → {0, 1}
2(|A||B|)
2
2(|A| )
2(|A|
n
)
2(2
n
)
126
Was bisher geschah
Modellierung von
I
Aussagen durch Logiken
I
Daten durch
Mengen, Folgen, Sprachen
I
Zusammenhängen und Eigenschaften durch Relationen
I
I
I
I
I
I
Definition, Beispiele
Operationen auf Relationen:
inverse Relation, Verkettung, Projektionen, Einschränkung
Eigenschaften binärer Relationen R ⊆ M 2
reflexive, symmetrische, transitive Hüllen
spezielle binäre Relationen auf einer Menge:
Halbordungen, Äquivalenzrelationen
Zusammenhängen durch Funktionen (spezielle Relationen)
I
I
I
I
Definition partielle / totale Funktion
Menge B A aller (totalen) Funktionen f : A → B
Folgen als Funktionen f : {0, . . . , n} → B
Teilmengen als Funktionen f : A → {0, 1}
127
Verkettung von Funktionen
Verkettung ◦ : B A × C B → C A
der Funktionen f : A → B und g : B → C
g ◦f :A→C
∀a ∈ A : (g ◦ f )(a) = g (f (a))
Achtung: (unterschiedliche Notationen üblich)
entspricht so nicht der Verkettung der entsprechenden Relationen
Beispiel:
f : →
g: →
(g ◦ f ) :
R Z mit f (x) = x3 Z N mit g (x) = x 2
R → N mit (g ◦ f )(x) = g (f (x)) =
x 2
3
Verkettung ◦ von Funktionen ist nicht kommutativ.
128
Inverse Funktion
Urbild f −1 : B → 2A (existiert für jede Funktion)
inverse Funktion für f (bijektiv): f −1 : B → A
Funktionen f , für die f −1 eine Funktion ist,
heißen invertierbar.
Beispiele:
N N
I
n
f :−1 → , f (n) = 2
f (0) = |{0, 1}| > 1
also f −1 keine Funktion und damit f nicht invertierbar
I
f : → mit f (x) = x 2 nicht invertierbar, weil
f (x) = f (−x)
R R
R≥0 → R≥0 mit f (x) = x 2 invertierbar
I f : N+ → N \ {0} mit f (i1 , i2 , . . . , in ) = 2i 3i
I
f :
· · · pnln
ist invertierbar (eindeutige Primfaktorzerlegung)
1
2
129
Identität
für jede Menge A:
Identität 1A : A → A mit ∀a ∈ A : f (a) = a
( Graph der Identität 1A ist {(x, x) | x ∈ A} = IA )
Für jede Funktion f : A → B gilt 1B ◦ f = f ◦ 1A = f .
Für jede invertierbare Funktion f : A → B gilt
f −1 ◦ f = 1A und f ◦ f −1 = 1B .
130
Charakteristische Funktion einer Menge
Menge A definiert für jede Teilmenge B ⊆ A die
charakteristische Funktion χB : A → {0, 1} mit
(
1 falls x ∈ B
∀x ∈ A : χB (x) =
0 sonst
Beispiel: für A = {a, b, c, d} und B = {a, d} ⊆ A gilt
χB : A → {0, 1} mit χB = {a 7→ 1, b 7→ 0, c 7→ 0, d 7→ 1}
(χB ordnet jedem x ∈ A den Wahrheitswert der Aussage x ∈ B zu.)
Umgekehrt definiert jede Funktion f : A → {0, 1} eine Teilmenge
f −1 (1) ⊆ A
Für endliche Mengen A = {a1 , . . . , an } und
beliebige feste Anordnung [a1 , . . . , an ]
lässt sich jede Teilmenge B ⊆ A durch das eindeutige
Binärwort b1 . . . bn ∈ {0, 1}n mit bi = χB (ai ) repräsentieren.
131
Multimengen (Vielfachmengen, Bags)
zur Beschreibung von Elementen mit Vielfachheit
Beispiele:
I Bibliothek mit mehreren Exemplaren von Büchern
I Vorrat an Münzen
I Rommé-Blatt
Teilmenge A einer Menge U (charakteristische Funktion):
χA : U → {0, 1} mit
∀x ∈ U : χA (x) = |A ∩ {x}|
Multimenge A über Menge U: Funktion
A:U→
N
alternative Darstellungen von Multimengen:
z.B. für U = {a, b, c, d} und A : U → mit
A(a) = 3, A(b) = 3, A(c) = 0, A(d) = 1 durch
I {a, b, a, b, d, b, a} (Reihenfolge egal)
I Relation A ⊆ U × ( \ 0) mit {(a, 3), (b, 3), (d, 1)}
N
N
132
Beziehungen zwischen Multimengen
N
Zwei Multimengen A : U → und B : U →
gleich, wenn
∀x ∈ U : A(x) = B(x)
Multimenge A : U →
Multimenge B : U →
N sind genau dann
N ist genau dann Teil(multi)menge der
N, wenn
∀x ∈ U : A(x) ≤ B(x)
(Charakteristische Funktionen von) Mengen A ⊆ U sind spezielle
Multimengen mit der Eigenschaft ∀x ∈ U : A(x) ≤ 1
133
Operationen auf Multimengen
Für Multimengen A : U →
N und B : U → N
Vereinigung ∀x ∈ U : (A ∪ B)(x) = max(A(x), B(x))
Schnitt ∀x ∈ U : (A ∩ B)(x) = min(A(x), B(x))
Differenz ∀x ∈ U : (A \ B)(x) = max(0, A(x) − B(x))
(mehr dazu und weitere Operationen in den
LV zu Datenbanken)
Für den Spezialfall Mengen ergibt das genau die
Mengenoperationen
Mächtigkeit der Multimenge A : U →
N:
|A| =
P
x∈U
A(x)
134
Modellierungsbeispiel EU-Arbeitskreise
(nach Kastens, Kleine Büning: Modellierung )
Ziel: Modellierung der Situation
I
drei Arbeitskreise
I
Nationen D,F,A,S senden je 3 Delegierte
I
Jedem Arbeitskreis soll aus jeder Nation (wenigstens) ein
Delegierter angehören.
I
In jedem Arbeitskreis gibt es (wenigstens) einen gemeinsame
Sprache.
Wertebereiche:
Arbeitskreise
Länder
Sprachen
Delegierten-Nr.
Delegierte
:
:
:
:
:
A = {A1, A2, A3} = {A} × {1, 2, 3}
N = {D, F , A, S}
S = {d, f , s}
D = {1, 2, 3}
D0 = N × D
Was repräsentieren π1 (D 0 ), D 0 |{A,F } ?
135
Modellierungsbeispiel EU-Arbeitskreise
I
Zuordnung der (momentanen) Sprachkenntnisse zu Delegierten
0
I als Relation s
D ⊆ D × S, z.B.
sD = {(D1, d), (D1, f ), (D2, d), (D2, s), (D3, d), (F 1, f ),
(F 2, f ), (F 3, f ), (F 3, s), (A1, d), (A2, d), (A2, f ), (A3, s), . . .}
I als Funktion s 0 : D 0 → 2S , z.B. mit
D
sD0 (D1) = {d, f }, sD0 (D2) = {d, s}, sD0 (D2) = {d},
sD0 (F 1) = {f } = sD0 (F 2), sD0 (F 3) = {f , s},. . .
I
Sprachkenntnisse der Delegation einer Nation
I als Relation s
N ⊆ N × S,
z.B. sN = {(D, d), (D, f ), (D, s), (F , f ), (F , s), . . .}
I als Funktion s 0 : N → 2S (Mengen von Sprachen),
N
z.B. sN0 (D) = {d, f , s}, sN0 (F ) = {f , s}, . . .
s
I als Funktion s 00 : N →
(Multimengen von Sprachen), z.B.
N
00
sN (D) = {d 7→ 3, f 7→ 1, s 7→ 1}, sN00 (F ) = {f 7→ 3, s 7→ 1},
sN00 (A) = {d 7→ 2, s 7→ 1},. . .
N
Was repräsentieren
π2 (sD |{D1,A2,F 1} ), sD0 (D 0 |{A,D} ), sN0 (D) ∩ sN0 (F ), sN00 (D) ∩ sN00 (F ),
π2 (sD−1 |{d,f } ), π2 (sN−1 |{d} ) ∩ π2 (sN−1 |{f } ), (sN0 )−1 ({f , s}) ?
136
Was bisher geschah
Modellierung von
I
Aussagen durch Logiken
I
Daten durch
I Mengen, Folgen, Sprachen
I Multimengen A : U →
Darstellungsformen, Anwendungen, Beziehungen, Operationen
N
I
Zusammenhängen und Eigenschaften durch Relationen
Darstellungsformen, Anwendungen, Beziehungen, Operationen
I Eigenschaften binärer Relationen R ⊆ M 2
I reflexive, symmetrische, transitive Hüllen
I spezielle binäre Relationen auf einer Menge:
Äquivalenzrelationen, Halbordungen, totale Ordnungen
I
Zuordnungen durch Funktionen (spezielle Relationen)
Darstellungsformen, Anwendungen, Beziehungen, Operationen
I Menge B A aller (totalen) Funktionen f : A → B
I Folgen als Funktionen f : {0, . . . , n} → B
I charakteristische Funktionen
χA : U → {0, 1} von (Teil-)Mengen A ⊆ U
137
Totale Ordnungen
häufige Aufgabe: Sortieren von Elementen
z.B. Menge von Wörtern aus A∗ : {ab, ε, a, ac, abc, c}
Präfix-Relation v A∗ × A∗ mit
∀(u, v ) ∈ A∗ × A∗ ((u v v ) ↔ ∃v 0 ∈ A∗ (u ◦ v 0 = v ))
ist reflexiv,transitiv, antisymmetrisch, also eine Halbordnung
Gilt ∀(u, v ) ∈ (A∗ × A∗ ) : ((u v v ) ∨ (v v u)) ?
nein, z.B. für A = {a, b, c}, u = ab, v = ac gilt ab 6v ac und ac 6v ab
v ist also keine totale Ordnung auf A∗
Sortieren lassen sich nur Elemente aus totalen Ordnungen
aus der java.util- Dokumentation:
public interface Comparator<T>
A comparison function, which imposes a total ordering
on some collection of objects. Comparators can be
passed to a sort method (such as Collections.sort)
to allow precise control over the sort order. ...
totale Ordnungen auf A∗ ?
138
Ordnungen auf A∗
ohne Ordnung auf dem Alphabet A:
Präfix-, Postfix-, Infix-Relation auf A∗ sind
Halbordnungen, nicht total (linear)
bei gegebener totaler Ordnung < auf dem Alphabet A:
lexikographische Ordnung auf A∗ :
∀u, v ∈ A∗ : u ≤lex v gdw.
1. u v v oder
2. ∃w ∈ A∗ ∃a, b ∈ A : a < b ∧ wa v u ∧ wb v v
quasi-lexikographische Ordnung auf A∗ :
∀u, v ∈ A∗ : u ≤qlex v gdw.
1. |u| < |v | oder
2. |u| = |v | ∧ u ≤lex v
Beispiele: für A = {a, b} mit a < b
I ab v aba, ab ≤lex aba, ab ≤qlex aba
I abab 6v abba, aber abab ≤lex abba und abab ≤qlex abba,
I aaa ≤lex ab, aber aaa 6≤qlex ab
I ab 6≤lex aaba, aber ab ≤qlex aaba
139
Gleichmächtigkeit von Mengen
Zwei Mengen A und B heißen gleichmächtig, wenn eine Bijektion
von A auf B existiert.
Beispiele:
I
I
|{0, 1, 2}| = |{a, b, c}|
2
{i | i ∈ } = | |
durch Bijektion f : → {i 2 | i ∈
N
N
N
N} mit f (i) = i 2
Gleichmächtigkeit von Mengen hat die Eigenschaften:
I
reflexiv: ∀M(|M| = |M|)
I
transitiv:
∀M, N, K (((|M| = |N|) ∧ (|N| = |K |)) → (|M| = |K |))
I
symmetrisch: ∀M, N((|M| = |N|) → (|N| = |M|))
ist also eine Äquivalenzrelation
140
Abzählbare und überabzählbare Mengen
N
Jede Menge, die zu einer Teilmenge von
gleichmächtig ist, heißt
abzählbar.
(Unendliche) Mengen, die nicht abzählbar sind, heißen
überabzählbar.
Beispiele:
I alle endlichen Mengen sind abzählbar,
I alle M ⊆
sind abzählbar,
(z.B. 2 , Menge aller Primzahlen)
2 ist abzählbar,
I
(Tafel: 1. Diagonalverfahren von Cantor)
I
, sind abzählbar,
I Für jedes endliche Alphabet A ist die Menge A∗ abzählbar,
n,
∗ sind abzählbar,
I
I Menge aller unendlichen Binärwörter
{0, 1}N = {ξ : → {0, 1}} ist überabzählbar
(Tafel: 2. Diagonalverfahren von Cantor)
I [0, 1) ⊆
,
sind überabzählbar
N
ZQ
N
N
N N
N
RR
141
Was bisher geschah
Modellierung von
I
Aussagen durch Logiken
I
Daten durch
Mengen (endliche und unendliche Mächtigkeiten)
Multimengen, Folgen, Sprachen
I
Zusammenhängen und Eigenschaften durch Relationen
Spezielle binäre Relationen:
Äquivalenzrelationen, Halbordnungen, totale Ordnungen
I
Zuordnungen durch Funktionen (spezielle Relationen)
142
Wiederholung: Darstellung binärer Relationen
Darstellungsformen für binäre Relation R ⊆ M 2 auf
endlicher Menge M:
I
Menge geordneter Paare (intensional oder extensional)
I
n × n-Matrix (für M = {a1 , . . . , an }) mit Einträgen aus {0, 1}
(
1 falls (ai , aj ) ∈ R
mij =
0 sonst
(Charakteristische Funktion der Relation)
I
(gerichteter) Graph G = (M, R) mit Eckenmenge M und
Kantenmenge R
(Diagramm)
wichtige Eigenschaften binärer Relationen:
(ir)reflexiv, transitiv, (a)symmetrisch, antisymmetrisch
143
Gerichtete Graphen
gerichteter Graph G = (V , E ) (Digraph)
I Menge V von Ecken oder Knoten (vertex)
I Menge E ⊆ V 2 von Kanten (edge)
häufige Notation: ab statt (a, b)
Endpunkte von (a, b) ∈ E sind a, b ∈ V
Schlinge Kante (a, a) ∈ E mit a ∈ V
Beispiele:
I G = (V , E ) mit
V
= {0, 1, . . . , 4}
E
= {(i, j) | j = i + 1 oder j = i + 3}
Abläufe (z.B. lineares Solitaire)
gerichteter Graph:
(endliche) Menge mit einer zweistelligen Relation
I
144
Ungerichtete Graphen
ungerichteter schlingenfreier Graph (V , E ):
Menge V von Ecken
I Menge E ⊆ V von Kanten
2
häufige Notation: ab statt {a, b}
V
= {M ⊆ V | |M| = k} = {M ⊆ V | M enthält genau k Elemente}
k
I
ungerichteter Graph mit Schlingen: (V , E ) mit
V
V
E⊆
∪
= {M ⊆ V | |M| = 2 ∨ |M = 1|}
2
1
Beispiele:
I
G = (V , E ) mit V = {0, 1, . . . , 4} und E = {{i, j} ⊆ V | 2|(i − j)}
I
Liniennetz Nahverkehr
Graph (ohne Zusatz) bedeutet im Folgenden immer
endlich, ungerichtet und schlingenfrei
(Darstellung einer symmetrischen irreflexiven Relation)
145
Repräsentationen endlicher Graphen
Graph G = (V , E ) als Relation
(extensionale oder intensionale) Angabe aller Elemente von V und
E
Diagramm des Graphen
Adjazenzmatrix von G = (V , E ) mit V = {v1 , . . . , vn }:
|V | × |V |-Matrix E = (eij )1≤i≤n mit
1≤j≤n
eij =
1 wenn vi vj ∈ E
0 sonst
(charakteristische Funktion der Relation E ⊆ V 2 )
Adjazenzliste von G = (V , E ):
LG : V → 2V mit u ∈ LG (v ) gdw. (v , u) ∈ E
146
Spezielle Graphen
Ordnung des Graphen (V , E ): Anzahl |V | der Ecken
leerer Graph (V , E ) mit V = ∅ und E = ∅
Der Graph (V , E ) mit V = {v1 , . . . , vn } heißt
isoliert: In = ({v1 , . . . , vn }, ∅) (n isolierte Ecken)
vollständig: Kn = ({v1 , .. . , vn }, E )
mit E = V2 ) (n paarweise verbundene Ecken)
Pfad: Pn = ({v1 , . . . , vn }, E )
mit E = {{vi , vi+1 } | i ∈ {1, . . . n − 1}}
Kreis: Cn = ({v1 , . . . , vn }, E )
mit E = {{vi , vi+1 } | i ∈ {1, . . . n − 1}} ∪ {{vn , v1 }}
147
Graph-Isomorphie
Für Graphen G = (VG , EG ) und H = (VH , EH ) heißt eine Bijektion
f : VG −→ VH Isomorphismus gdw.
∀a, b ∈ VG ((f (a), f (b)) ∈ EH ↔ (a, b) ∈ EG )
Graphen G und H, zwischen denen ein Isomorphismus existiert,
heißen isomorph (G ' H).
Isomorphie ist Äquivalenzrelation auf Menge aller Graphen.
Kn , In , . . . bezeichnen Äquivalenzklassen von Graphen bzgl. '
148
Was bisher geschah
Graph G = (V , E )
gerichtet E ⊆ V 2
ungerichtet ohne Schlingen: E ⊆
mit Schlingen: E ⊆
V
2
V
2
∪
V
1
Graph (ohne Zusatz): ungerichtet ohne Schlingen
Repräsentation eines Graphen G = (V , E ) durch
I
extensionale Beschreibung (der Relation E auf V )
I
intensionale Beschreibung (der Relation E auf V )
I
Diagramm
I
Adjazenzmatrix
(charakteristische Funktion von E ⊆ V 2 )
I
Adjazenzliste
(Zuordnung Knoten 7→ Menge aller Nachbarn)
Spezielle Graphen: In , Kn , Pn , Cn
Isomorphie von Graphen (Äquivalenzrelation)
149
Teilgraph-Relationen
Für Graphen G = (VG , EG ) und H = (VH , EH ) heißt H
Teilgraph von G , gdw. VH ⊆ VG und EH ⊆ EG
echter Teilgraph von G , gdw. H Teilgraph von G und H 6= G
induzierter Teilgraph von G , gdw.
VH ⊆ VG und EH = {{a, b} ∈ EG | {a, b} ⊆ VH }
(Autotool: Beschränkung von G auf VH )
aufspannender Teilgraph von G , gdw.
H Teilgraph von G und VH = VG
Teilgraph-Relationen sind Halbordnungen
150
Operationen auf Graphen
Für zwei Graphen G = (VG , EG ) und H = (VH , EH ):
G ∪ H = (VG ∪ VH , EG ∪ EH )
G ∩ H = (VG ∩ VH , EG ∩ EH )
G ∗ H = (VG ∪ VH , EG ∪ EH ∪ (VG × VH ))
für VG und VH disjunkt (ggf. Knoten umbenennen)
spezielle Graphen:
Km,n = Im ∗ In (vollständige bipartite Graphen)
K1,n = I1 ∗ In (Sterne)
Kn1 ,...,nm = In1 ∗ · · · ∗ Inm für m > 1
151
Komplementärgraph
für G = (V , E ) und Eckenmenge U ⊆ V
G − U = (V \ U, E \ {{u, v } | {u, v } ∩ U 6= ∅})
Für G = (V , E ) und Kantenmenge F ⊆
V
2
G − F = (V , E \ F )
Komplementärgraph zu G = (V , E ):
V
G = V,
\ E = K|V | − E
2
G heißt selbstkomplementär gdw. G ' G
Beispiele: P4 , C5
152
Nachbarschaft
Ecken u, v ∈ V heißen im Graphen (V , E )
benachbart (adjazent) gdw. uv ∈ E
unabhängig gdw. uv 6∈ E
Nachbarschaft (Menge aller Nachbarn) einer Ecke v in G :
NG (v ) = {u ∈ V | uv ∈ E }
Ecke v ∈ V mit NG (v ) = ∅ heißt isoliert.
Graph G = (V , E ) definiert Funktion gradG : V →
N mit
∀a ∈ V : gradG (a) = |NG (a)|
gradG (a) heißt Grad der Ecke a.
(V , E ) heißt n-regulär (regulär) gdw. ∀a ∈ V : gradG (a) = n
153
Eckengrad in gerichteten Graphen
Nachbarn in gerichteten Graphen G = (V , E ):
I
∀v ∈ V : Ni,G (v ) = {u ∈ V | uv ∈ E }
(in v eingehende Kanten)
I
∀v ∈ V : No,G (v ) = {u ∈ V | vu ∈ E }
(von v ausgehende Kanten)
gerichteter Graph G = (V , E ) definiert Funktionen
I
gradi,G : V −→
N mit
∀a ∈ V : gradi,G (a) = |Ni,G (a)|
gradi,G (a) heißt Eingangs-Grad der Ecke a.
I
grado,G : V −→
N mit
∀a ∈ V : grado,G (a) = |No,G (a)|
grado,G (a) heißt Ausgangs-Grad der Ecke a.
154
Was bisher geschah
Repräsentation eines Graphen G = (V , E ) durch
I
extensionale Beschreibung (der Relation E auf V )
I
intensionale Beschreibung (der Relation E auf V )
I
Diagramm
I
Adjazenzmatrix (charakteristische Funktion von E )
I
Adjazenzliste (Zuordnung Knoten 7→ Menge aller Nachbarn)
Spezielle Graphen: In , Kn , Pn , Cn , Km,n , K1,n , Kn1 ,...,nm
Beziehungen zwischen Graphen:
I
Isomorphie (Äquivalenzrelation)
I
(induzierter, aufspannender) Teilgraph
Operationen auf Graphen: ∪, ∩, ∗,
Nachbarschaften und Eckengrade in (un)gerichteten Graphen
n-reguläre Graphen
155
Pfade in Graphen
Pfad im Graphen G :
Teilgraph P von G , der für ein n ∈
N isomorph zu Pn ist.
Pfad P = (V 0 , E 0 ) in G = (V , E ) ist eindeutig bestimmt durch
I
Menge E 0 ⊆ E der Kanten oder
I
Folge [v1 , . . . , vn ] der Ecken in V 0 ⊆ V
Länge des Pfades = Anzahl der Kanten im Pfad
z.B. Länge von P5 ist 4
Pfad von a nach b im Graphen G :
Pfad p = [v1 , . . . , vn ] in G mit v1 = a und vn = b
Maximaler Pfad in G bzgl. Teilgraph-Relation:
Pfad P = (V 0 , E 0 ) ist maximaler Pfad in G = (V , E ) gdw.
für alle Kanten ab ∈ E gilt:
(V 0 ∪ {a, b}, E 0 ∪ {ab}) ist kein Pfad in G
156
Kreise in Graphen
Kreis im Graphen G :
Teilgraph C von G , der für ein n ∈
N isomorph zu Cn ist.
echte Kreise: Cn mit n ≥ 3
Kreis C = (V 0 , E 0 ) in G = (V , E ) ist eindeutig bestimmt durch
I
Menge E 0 ⊆ E der Kanten oder
I
Folge [v1 , . . . , vn ] der Ecken in V 0 ⊆ V
Länge des Kreises = Anzahl der Kanten im Kreis
z.B. Länge von C5 ist 5
157
Wege in Graphen
Weg w im Graphen G = (V , E ):
Folge von Kanten w = [v1 v2 , . . . , vn vn+1 ] ∈ E ∗
(Kanten können mehrfach vorkommen)
durch Folge der Ecken [v1 , . . . , vn+1 ] eindeutig bestimmt
Weg von a nach b in G :
Weg [v1 , . . . , vn ] in G mit v1 = a und vn = b
Für jede Ecke v ∈ V ist [v ] ein Weg von v nach v
Wege [v1 , . . . , vn ] mit v1 = vn heißen geschlossen
158
Zusammenhang in ungerichteten Graphen
Transitive Hülle E ∗ ⊆ V 2 der Kanten-Relation E ⊆ V 2 heißt
Zusammenhangsrelation im Graphen G = (V , E )
also: (u, v ) ∈ E ∗ (u und v sind in G zusammenhängend) gdw. ein
Weg von u nach v in G existiert
Für jeden ungerichteten Graphen G = (V , E ) ist E ∗ eine
Äquivalenzrelation auf V .
(Äquivalenzklassen [u]E ∗ sind Mengen von Knoten)
Von den Äquivalenzklassen [u]E ∗ induzierte Teilgraphen von G
heißen Zusammenhangskomponenten von G
Graph G = (V , E ) heißt zusammenhängend gdw.
G aus genau einer Zusammenhangskomponente besteht.
159
Zusammenhang in gerichteten Graphen
Transitive Hülle E ∗ ⊆ V 2 der Kanten-Relation E ⊆ V 2 heißt
Zusammenhangsrelation im Graphen G = (V , E )
also:
(u, v ) ∈ E ∗ (u und v sind in G zusammenhängend)
gdw. ein (gerichteter) Weg von u nach v in G existiert
gerichteter Graph G = (V , E ) heißt
stark zusammenhängend gdw. ∀(u, v ) ∈ V 2 : (u, v ) ∈ E ∗
schwach zusammenhängend gdw. der ungerichtete Graph
G 0 = (V , E ∪ E −1 ) zusammenhängend ist
starke Zusammenhangskomponenten von G : maximale stark
zusammenhängende induzierte Teilgraphen von G
schwache Zusammenhangskomponenten von G :
Zusammenhangskomponenten von
G 0 = (V , E ∪ E −1 )
160
Eulerwege und -kreise
Eulerweg in G = (V , E ):
Weg w = [v1 v2 , . . . , vn vn+1 ] ∈ E ∗ in G , der jede Kante in E genau
einmal enthält, d.h.
I E = {e1 , . . . , en },
S
I V =
i∈{1,...,n} ei und
I ∀i 6= j ∈ {1, . . . , n} : ei 6= ej
Eulerkreis (geschlossener Eulerweg) in G = (V , E ):
Eulerweg w = [e1 , . . . , en , e1 ] in G
Satz
1. Ein Graph G = (V , E ) enthält genau dann einen
geschlossenen Eulerweg, wenn er zusammenhängend ist und
grad(v ) für jeden Knoten v ∈ V gerade ist.
2. Ein zusammenhängender Graph G = (V , E ) enthält genau
dann einen Eulerweg, wenn er genau zwei oder keine Ecke
ungeraden Grades enthält.
161
Multigraphen
Wiederholung: ungerichteter Graph G = (V , E ) mit E ⊆ V2
z.B. G = ({a, b, c, d}, E ) mit der charakteristischen Funktion
V
1 falls xy ∈ {ab, ac, bd, dc}
χE :
→ {0, 1} mit χE (xy ) =
0
sonst
2
Multigraph G = (V , E ) mit Multimenge E : V2 →
(statt Teilmenge χE : V2 → {0, 1} )
z.B. G 0 = ({a, b, c, d}, E 0 ) mit

1 falls xy = ab



2 falls xy ∈ {bd, dc}
0
E (xy ) =
4 falls xy = ac



0 sonst
N
(analog für gerichtete Graphen mit E : V 2 →
Modellierungsbeispiele:
N statt E : V 2 → {0, 1})
I
Königsberger-Brücken-Problem (Eulerweg im Multigraphen)
I
Domino, z.B. für Steinmenge [1, 3], [2, 2], [1, 2], [2, 4], [1, 3], [1, 4]
I
Prozessketten
162
Hamiltonpfade und -kreise
Hamiltonpfad in G = (V , E ):
Pfad w = (v1 , . . . , vn ) in G mit V = {v1 , . . . , vn }
Hamiltonkreis in G = (V , E ):
Kreis w = (v1 , . . . , vn ) in G mit V = {v1 , . . . , vn }
Beispiele: Cn , Kn für alle n ≥ 3
Anwendungen
I
Problem des Handlungsreisenden
(TSP: Travelling Salesman Problem)
I
Logistik
I
Robotik
I
Hardware-Entwurf
163
Was bisher geschah
I
gerichtete / ungerichtete Graphen G = (V , E )
I
Multigraphen
I
Darstellungen von Graphen
I
Spezielle Graphen: In , Kn , Pn , Cn , Km,n , K1,n , Kn1 ,...,nm
I
Beziehungen zwischen Graphen:
Isomorphie, Teilgraph-Relationen
I
Operationen auf Graphen: ∪, ∩, ∗,
I
Nachbarschaften und Eckengrade in Graphen,
n-reguläre Graphen
I
Zusammenhangs-Relation E ∗ auf G = (V , E )
(Erreichbarkeit)
Zusammenhangskomponenten: Äquivalenzklassen bzgl. E ∗
I
Pfade, Kreise, Wege in Graphen
I
Eulerwege, Eulerkreise (geschlossene Euler-Wege)
I
Hamiltonpfade, Hamiltonkreise
164
Gefärbte (markierte) Graphen
Graph G = (V , E )
Menge CV von Eckenmarkierungen,
Menge CE von Kantenmarkierungen
Eckenfärbung von G : f : V → CV
Kantenfärbung von G : f : E → CE
zur Modellierung z.B.:
I Linennetzplan mit CE = Fahrzeiten zwischen Stationen
I Straßennetz mit CE = Entfernung (Kosten)
(TSP: Hamilton-Kreis mit geringsten Kosten gesucht)
I Straßennetz mit CE = Höchstgeschwindigkeit
I Spielplan mit CV = Ereignisfeld-Beschreibung
I Spielplan mit CE = Straßen-Bebauungszustand
I Ablauf-Graphen mit CE = Options-Auswahl (z.B. Spielzug)
I Formelbaum mit CV = Junktoren und Aussagevariablen
I Multigraphen mit CE =
\ {0}
N
165
Eckenfärbung
Graph G = (V , E ), Farben {1, . . . , n}
f : V → {1, . . . , k} heißt (konfliktfreie) k-Färbung für G gdw.
∀u ∈ V ∀v ∈ V (f (u) = f (v ) → uv 6∈ E )
(für keine Kante {u, v } ∈ E gilt f (u) = f (v ))
Jede Eckenfärbung f : V → {1, . . . , n} definiert
eine Zerlegung der Eckenmenge V
{f −1 (i) | i ∈ {1, . . . , n}}
G = (V , E ) heißt k-färbbar gdw. k-Färbung für G existiert.
Beispiele:
I C5 ist 5- ,4- und 3-färbbar, aber nicht 2-färbbar
I K3,3 ist 2-färbbar,
I I2 ∗ I2 ∗ I1 ist 3-färbbar, aber nicht 2-färbbar
Anwendungen z.B. bei
I Register-Zuteilung (Übersetzerbau)
I Sudoku
166
Chromatische Zahl
chromatische Zahl des Graphen G :
χ(G ) = min{k | G ist k-färbbar }
Beispiele:
I
χ(C5 ) = 3
I
für alle n ∈
I
für alle n > 1 gilt χ(Pn ) = 2
I
für alle n > 2 gilt
N gilt χ(Kn ) = n
I für alle n ∈ N gilt χ(In ) = 1
χ(Cn ) =
I
2 falls n ≡ 0
3 falls n ≡ 1
mod 2
mod 2
für min(m, n) ≥ 1 gilt χ(Km,n ) = 2
167
Bipartite Graphen
Ein Graph G = (V , E ) heißt bipartit gdw. eine Zerlegung {V0 , V1 }
von V (d.h. V0 ∩V1 = ∅ und V0 ∪ V1 = V )
mit V20 ∪ V21 ∩ E = ∅ existiert.
Beispiele:
N
I
Pn für alle n ∈
I
Km,n für alle m, n ∈
I
kein Kn für n > 2
I
Cn für alle n ≥ 1 mit n ≡2 0
N
Ein Graph ist genau dann bipartit, wenn er 2-färbbar ist.
Ein Graph G = (V , E ) ist genau dann bipartit, wenn ein
Km,n = (V , E 0 ) existiert, so dass E ⊆ E 0 ist.
168
Anwendung bipartiter Graphen
Modellierung von Zuordnungen, z.B.
I
Sprachkenntnisse zu Personen
I
Personen zu Arbeitskreisen
I
Getränke-Angebot zu Restaurants
I
Aufgaben zu Mitarbeitern mit unterschiedlichen
Qualifikationen
I
Flugzeuge zu Piloten mit Ausbildung auf verschiedenen
Flugzeugtypen
169
Baum-Strukturen
I
Hierarchien
I
Komponenten-Strukturen
I
Familien-Stammbäume
I
Enscheidungsbäume
I
Formeln, arithmetische Ausdrücke
sind spezielle Graphen
I
zusammenhängend
I
enthalten keine Kreise
170
Ungerichtete Bäume
G = (V , E ) heißt Baum, wenn
I
G zusammenhängend ist und
I
kein Teilgraph von G ein echter Kreis ist.
G = (V , E ) heißt Wald, wenn kein Teilgraph von G ein echter
Kreis ist.
v ∈ V mit grad(v ) ≤ 1 heißt Blatt
Jeder Baum mit mindestens 2 Ecken hat mindestens 2 Blätter.
In jedem Baum G = (V , E ) gilt |V | = |E | + 1
171
Charakterisierung der Bäume
Für jeden Graphen G = (V , E ) sind folgenden Aussagen
äquivalent:
1. G ist ein Baum.
2. Zwischen je zwei Ecken u, v ∈ V existiert genau ein Pfad in G .
3. G ist minimal zusammenhängend.
(G ist zusammenhängend und für jede Kante uv ∈ E ist
(V , E \ {uv }) nicht zusammenhängend)
4. G ist maximal kreisfrei.
(G enthält
keinen echten Kreis und für jede Kante
uv ∈ V2 \ E enthält (V , E ∪ {uv }) einen echten Kreis)
172
Gerichtete Bäume
Gerichteter Baum:
gerichteter Graph G = (V , E ) mit
1. G enthält keinen Kreis als Teilgraphen
2. Es existiert genau ein v ∈ V mit gradi,G (v ) = 0
3. ∀u ∈ V u 6= v → gradi,G (u) = 1
(Wurzel)
Modellierung durch gerichtete Bäume, z.B.
I
Hierarchien, Klassifikationen
I
Verzeichnis-Strukturen
I
Abstammung
I
Entscheidungsbäume
I
Wege in Graphen
I
Ableitungsbäume für Sprachen
173
Gerüste
Teilgraph H von G heißt Gerüst (Spannbaum) von G , falls
I
H ein Baum und
I
H ein aufspannender Teilgraph von G ist.
Beispiele:
I
P5 in K5
I
K1,4 in K5
I
G für jeden Baum G
I
I3 hat kein Gerüst
I
P2 ∪ K4 hat kein Gerüst
Ein Graph G ist genau dann zusammenhängend, wenn G ein
Gerüst besitzt.
(mehr dazu in LV Algorithmen und Datenstrukturen im
2. Semester)
174
Was bisher geschah
Modellierung von
Aussagen durch logische Formeln
Daten durch Mengen, Multimengen, Folgen, Sprachen
Zusammenhängen und Eigenschaften von Elementen von Mengen
durch Relationen
(Eigenschaften von Relationen)
Spezielle binäre Relationen (QO, ÄR, HO, LO)
Darstellung binärer Relationen durch Graphen
Zuordnungen zwischen Elementen von Mengen durch Funktionen
(Eigenschaften von Funktionen)
175
Wiederholung: Modellierung in Prädikatenlogik
Grundannahme:
Die zu modellierende Welt besteht aus Individuen, die
Eigenschaften haben und zueinander in Beziehungen (Relationen,
Funktionen) stehen.
Prädikatenlogik zur Formalisierung von Aussagen über
Eigenschaften oder Beziehungen von Individuen aus
algebraischen Strukturen
175
Wiederholung: Prädikatenlogische Aussagen
Personen sind Geschwister, wenn sie dieselbe Mutter oder denselben
Vater haben.
I A ist genau dann Nachfahre von B, wenn B A’s Vater oder A’s
Mutter ist oder ein Elternteil von A Nachfahre von B ist.
I Nachfahren derselben Person sind verwandt.
I
Individuenbereich: Menge von Personen
Beziehungen: ist-Nachfahre-von, sind-verwandt, sind-Geschwister
Funktionen: Mutter-von, Vater-von
Primzahlen sind genau diejenigen natürlichen Zahlen, die genau zwei
verschiedene Teiler haben.
I Gerade Zahlen sind genau diejenigen natürlichen Zahlen, die durch
zwei teilbar sind.
I Es existieren gerade Primzahlen.
I Nachfolger ungerader Primzahlen sind nicht prim.
I Das Quadrat jeder geraden Zahl ist gerade.
Individuenbereich: Menge
aller natürlichen Zahlen
Eigenschaften: prim, gerade
Beziehung: teilt |
Funktionen: Nachfolger, Quadrat
I
N
175
Algebraische Strukturen – Beispiele
(Träger-)Mengen (Individuenbereiche) mit Relationen (Eigenschaften,
Beziehungen) und Funktionen (Operationen) auf den Elementen, z.B.
I
Menge aller Personen
Relationen: ist-älter-als, sind-Geschwister (zweistellig)
einstellige Relationen (Eigenschaften): blond
Funktion (einstellig): Mutter-von
I
Menge
aller natürlichen Zahlen
Relationen: ≥ (zweistellig), | (teilt, zweistellig)
einstellige Relationen (Eigenschaften): prim, gerade
Funktionen: Nachfolger (einstellig), + (zweistellig)
I
Menge 2 aller Punkte der Ebene
Relationen: hat-kleineren-Abstand-von-0 (zweistellig),
bilden-gleichseitiges-Dreieck (dreistellig)
Funktionen: verschieben (einstellig), Mittelpunkt (zweistellig)
I
Menge A∗ aller endlichen Wörter über Alphabet A
Relation: Anfangswort, lexikographische Ordnung (zweistellig)
Funktion: Verkettung (zweistellig)
N
R
176
Algebraische Strukturen – mehr Beispiele
Darstellung algebraischer Strukturen A = (A, f1 , . . . , fm , R1 , . . . , Rn ) mit
I
(nicht-leerer) Trägermenge A,
I
(endlicher) Menge von Funktionen f1 , . . . , fm
I
(endlicher) Menge von Relationen R1 , . . . , Rn
algebraische Strukturen (ohne Funktionen) kennen wir schon, z.B.
I
Äquivalenzrelationen,
z.B. ( , =), (AL(P), ≡), (Menge aller Graphen, ')
I
Halbordnungen,
z.B. ( , ≤),( , |), (2X , ⊆), ( , ≡ mod n),
(Menge aller Graphen, Teilgraph-Relation)
I
Graphen. z.B. V = {0, 1, 2, 3, 4},
E = {(0, 1), (1, 2), (1, 3), (2, 0), (2, 4), (3, 2), (3, 4), (4, 1)},
(V , E ) mit V = {a, b, c}, E = ∅ ,
(V , E ) mit V = {0, 1, 2, 3}, E = V 2 \ {(x, x) | x ∈ V }
N
Z
N
Z
177
Relationale Strukturen
Eine relationale Struktur A = (A, {Ri | i ∈ I }) besteht aus
I
einer nichtleeren Menge A und
I
einer Menge von Relationen Ri ⊆ Ani (je mit Stelligkeit ni )
Beispiele:
N
I
( , |, ≤)
I
({0, 1}, ≤, =)
I
(2A , ⊆)
I
(A∗ , v)
I
Menge aller endlichen Graphen mit ' und
Teilgraph-Relationen
178
Beispiel Wortstrukturen (Pfade mit Kantenfärbung)
Symbole (Buchstaben) aus Alphabet A
Wort w ∈ A∗ : endliche Folge von Symbolen aus A
Jedes Wort w ∈ A∗ definiert die Struktur
Sw = ({0, . . . , |w |}, {Rx | x ∈ A}) mit
I Trägermenge {0, . . . , |w |}
I für jedes Symbol x ∈ A die Relation
Rx = {(i − 1, i) | i ∈ {1, . . . , |w |} ∧ wi = x}
darstellbar als Graph mit
I Eckenmenge V = {0, . . . , |w |}
I Kantenmenge E = {i − 1, i) | i ∈ {1, . . . , |w |}}
I Kantenfärbung w : E → A
Beispiel: babaab ∈ {a, b}, definiert die Struktur
b
a
b
a
a
b
0
1
2
3
4
5
6
Anwendung bei endlichen Automaten
(LV Theoretische Informatik im 3. Semester)
179
Algebraische Strukturen – noch mehr Beispiele
(funktionale) algebraische Strukturen (Algebren) aus den
Mathematik-LV:
Halbgruppe , z.B. ( , +), (2 , ·), (2X , ∪)
Monoid , z.B. ( , ·, 1), ( , +, 0), (2X , ∪, ∅),
Gruppe , z.B. ( , +, 0), ( n , +, 0), ( n , ·, 1) für Primzahl n
∗
Halbring , z.B. (2 , +, ·), ({0, 1}, XOR, ·), (2(A ) , ∪, ◦)
Ring , z.B. ( , +, ·, 0, 1), ( n , +, ·, 0, 1) für Primzahl n
Körper , z.B. ( , +, ·, 0, 1), ( n , +, ·, 0, 1) für Primzahl n
Boolesche Algebra z.B. ({0, 1}, min, max, x 7→ 1 − x, 0, 1),
(2X , ∩, ∪, , ∅, X )
Vektorraum n :
Skalare , Vektoren n
Funktionen, z.B. skalare Addition, Multiplikation
Vektoraddition, Skalarprodukt
Kombinationen (allgemeine algebraische Strukturen)
z.B. halbgeordnete Gruppe ( , +, 0, ≤)
N
N
Z
Z
Z
Q
R
Z
N
Z
Z
Z
Z
R
R
Z
180
Algebren (Strukturen ohne Relationen)
Eine Algebra A = (A, {fi | i ∈ I }) besteht aus
I
einer Menge A 6= ∅ und
I
einer Menge von Funktionen fi : Ani → A
(je mit Stelligkeit ni )
wobei A unter jeder Funktion fi (algebraisch) abgeschlossen ist.
Beispiele:
N
I
( , +, ·, s, 0) mit einstelliger Nachfolgerfunktion s
I
({0, . . . , 7}, +, 0) ist keine Algebra, weil
{0, . . . , 7} nicht unter + abgeschlossen (z.B. 4 + 5 6∈ {0, . . . , 7})
I
( , −) ist keine Algebra, weil
I
({0, 1}, min, max)
I
({0, 1}, XOR, ·)
I
(2M , ∪, ∩, \, ∅)
N
N nicht unter − abgeschlossen
Menge aller (endlichen) Graphen unter ∪, ∗
I {M ∈ 2N | |M| ∈ }, ∪, ∩
(Menge aller endlichen Teilmengen von
)
aber nicht {M ∈ 2N | |M| ∈ },
, weil z.B. |{1, 4}| 6∈
I
N
N
N
N
181
Algebraische Strukturen desselben Types
A Menge {0, 1} mit
I Konstanten 0, 1
I Funktionen min, max (zweistellig)
I Eigenschaft gerade
I Relation ≤ (zweistellig)
B Menge aller Studenten im Raum mit
I Konstanten Anton, Berta
I Funktionen Älterer,
kleinere-Matrikelnummer(zweistellig)
I Eigenschaft blond
I Relation befreundet (zweistellig)
C Menge 2N mit
I Konstanten ∅,
I Funktionen ∩, ∪ (zweistellig)
I Eigenschaft endlich
I Relation ⊆ (zweistellig)
N
182
Signaturen
(syntaktische) Gemeinsamkeiten der Strukturen A, B, C:
I eine Trägermenge
I zwei Konstanten (nullstellige Funktionen)
I zwei zweistellige Funktionen
I eine Eigenschaft (einstellige Relation)
I eine zweistellige Relation
Bezeichnung der Relationen und Funktionen durch Symbole (mit
zugeordneter Stelligkeit):
Signatur Σ = (ΣF , ΣR ) mit Mengen
ΣF = {(f , n) | n ∈ } von Funktionssymbolen (mit Stelligkeit)
ΣR = {(R, n) | n ∈ } von Relationssymbolen (mit Stelligkeit)
(nullstellige Funktionssymbole heißen Konstantensymbole)
Signatur definiert einen Typ von Strukturen (Symbol-Syntax)
Strukturen mit derselben Signatur unterscheiden sich in der
Semantik der Symbole:
I Trägermengen
I Bedeutung der Funktions- und Relationssymbole
N
N
183
Beispiele für Signaturen
I
Signatur für arithmetische Ausdrücke über natürlichen,
rationalen, reellen, . . . Zahlen
ΣF = {(+, 2), (−, 2), (·, 2), (/, 2)} ∪ {(x, 0) | x ∈ }
(je ein nullstelliges Symbol (Konstante) für jede Zahl aus der
Trägermenge, hier z.B. )
ΣR = ∅
N
N
I
Signatur für Mengen mit einer zweistelligen Relation
(Äquivalenzrelation, Halbordnung, Graph)
ΣF = ∅, ΣR = {(R, 2)}
I
Signatur für aussagenlogische Formeln
ΣF = {(∨, 2), (∧, 2), (¬, 1), (f, 0), (t, 0)},
ΣR = {(=, 2), (≡, 2), (erfuellbar, 1)}
I
Signatur für alle drei Strukturen A, B, C (Folie 182)
ΣF = {(apfel, 0), (banane, 0), (kirsche, 2), (pflaume, 2)}
ΣR = {(rettich, 1), (tomate, 2)}
184
Σ-Strukturen
Für Signatur Σ = (ΣF , ΣR ) heißt eine algebraische Struktur
A = (A, J·KA ) Σ-Struktur gdw.
I
A 6= ∅ Trägermenge (Individuenbereich, Universum)
I
∀(f , n) ∈ ΣF : Jf KA : An → A
I
∀(R, n) ∈ ΣR : JRKA ⊆ An (bzw. JRKA : An → {0, 1} )
J·KA ordnet jedem Funktions- und Relationssymbol seine Bedeutung in A
(Funktion / Relation passender Stelligkeit) zu.
Beispiel: für die Signatur Σ = (ΣF , ΣR )
mit ΣR = {(R, 2)} und ΣF = {(f , 2), (c, 0)} sind z.B.
I
I
N
A = ( , J·KA ) mit
JcKA = 0, ∀(x, y ) ∈ 2 : Jf KA (x, y ) = x + y ,
JRKA = {(x, y ) ∈ 2 | x|y }
Q
N
N
B = ( , J·KB ) mit
JcKB = 31/23, ∀(x, y ) ∈ 2 : Jf KB (x, y ) = x · y ,
JRKB = {(x, y ) ∈ 2 | x ≤ y }
Q
Q
Σ-Strukturen
185
Weitere Beispiele für Σ-Strukturen
I
I
für die Signatur Σ = (ΣF , ΣR ) mit
ΣF = ∅ und ΣR = {(Q, 2)}
ist der gerichtete Graph G = (V , JQKG ) mit
V = {1, 2, 3} und JQKG = {(1, 1), (2, 3), (2, 1)}
eine Σ-Struktur
für die Signatur Σ = (ΣF , ΣR ) mit
ΣF = {(apfel, 0), (banane, 0), (kirsche, 2), (pflaume, 2)}
ΣR = {(rettich, 1), (tomate, 2)}
sind z.B. die folgenden Strukturen Σ-Strukturen:
I
I
A = ({0, 1}, J·KA ) mit JapfelKA = 0, JbananeKA = 1
∀(x, y ) ∈ {0, 1} : JkirscheKA (x, y ) = min(x, y )
∀(x, y ) ∈ {0, 1} : JpflaumeKA (x, y ) = max(x, y ),
JrettichKA = {0}, JtomateKA = {(0, 0), (0, 1), (1, 1)}
C = (2N , J·KC ) mit JapfelKC = ∅, JbananeKC =
∀(x, y ) ∈ 2N : JkirscheKC (x, y ) = x ∩ y ,
∀(x, y ) ∈ 2N : JpflaumeKC (x, y ) = x ∪ y ,
JrettichKC = {M ⊂ | M endlich},
∀(x, y ) ∈ 2N : (x, y ) ∈ JtomateKC ↔ x ⊆ y
N
N
186
Was bisher geschah
Modellierung von
Aussagen durch logische Formeln
Daten durch Mengen, Multimengen, Folgen, Sprachen
Zusammenhängen und Eigenschaften von Elementen von Mengen
durch Relationen
Zuordnungen zwischen Elementen von Mengen durch Funktionen
im Zusammenhang in (algebraischen) Strukturen
Signatur Σ = (ΣF , ΣR )
definiert Symbole und Stelligkeiten
(Syntax)
Σ-Struktur A = (A, J·KA ) mit
(Semantik)
I A 6= ∅ Trägermenge
(Individuenbereich, Universum)
I ∀(f , n) ∈ ΣF : Jf KA : An → A
(Bedeutung der Funktionssymbole)
I ∀(R, n) ∈ ΣR : JRKA ⊆ An
(Bedeutung der Relationssymbole)
187
Wiederholung Signaturen
Definition der Symbole für Individuen (Konstanten) sowie deren
Eigenschaften und Beziehungen (Relationen, Funktionen)
Signatur Σ = (ΣF , ΣR ) mit Mengen
ΣF = {(f , n) | n ∈ } von Funktionssymbolen (mit Stelligkeit)
ΣR = {(R, n) | n ∈ } von Relationssymbolen (mit Stelligkeit)
N
N
Beispiele:
I
Σ = (ΣF , ΣR ) mit
√
ΣF = {(+, 2), ( , 1), (1, 0), (7, 0)} und
ΣR = {(≤, 2), (prim, 1)}
I
Σ = (ΣF , ΣR ) mit
ΣF = {(Mutter − von, 1)} und
ΣR = {(weiblich, 1), (verheiratet, 2), (Kind − von, 2), (=, 2)}
I
Σ = (ΣF , ΣR ) mit
ΣF = {(☼, 2), ($, 2)} und ΣR = ∅
188
Wiederholung Strukturen – Beispiel Halbring
klassische Definition (Menschen-lesbar):
Eine algebraische Struktur (A, ☼, $) heißt genau dann Halbring, wenn sie
die folgenden Bedingungen erfüllt:
I
I
(A, ☼) und (A, $) sind Halbgruppen und
$ ist distributiv über ☼
formale Definition (maschinell zu verarbeiten):
Signatur Σ = (ΣF , ΣR ) mit
Axiome (Anforderungen)

(
 ∧ (
∀x∀y ∀z 
 ∧ (
∧ (
prominente Halbringe:
A = ( , J·KA )
B = (2 , J·KB )
C = ({0, 1}, J·KC )
D = (2M , J·KD )
∗
E = (2{a,b} , J·KE )
F = ( ∪ {+∞}, J·KF )
N
Z
R
mit
mit
mit
mit
mit
mit
ΣF = {(☼, 2), ($, 2)}, ΣR = {(=, 2)}

x☼(y ☼z) = (x☼y )☼z
)
x$(y $z) = (x$y )$z
) 

x$(y ☼z) = (x$y )☼(x$z) ) 
(x☼y )$z = (x$z)☼(y $z) )
J☼KA = +
J☼KB = +
J☼KC = max
J☼KD = ∪
J☼KE = ∪
J☼KF = min
und
und
und
und
und
und
J$KA = ·
J$KB = ·
J$KC = min
J$KD = ∩
J$KE = ◦
J$KF = +
189
Mehrsortige Strukturen
Modellierung von Strukturen mit verschiedenen Sorten (Trägermengen,
Typen) = {Si | i ∈ I } von Elementen
Beispiele mehrsortiger Strukturen:
S
I
Sorten: Menschen, Bücher
Relation: A ⊆ Menschen × Bücher
wobei (m, b) ∈ A gdw. m ist Autor von b
I
Sorten: Menschen, , Orte
Relation: B ⊆ Menschen ×
× Orte
wobei (m, j, o) ∈ B gdw. m wurde im Jahr j in o geboren
I
Vektorraum mit
Sorten: Skalar, Vektor
Operationen, z.B. smult: Skalar × Vektor → Vektor
Relationen, z.B. gleichlang ⊆ Vektor × Vektor
I
Stapel (von Elementen, z.B. Bücher, Teller, Zahlen, . . . ) mit
Sorten: Bool, Element, StapelhElementi
(polymorph)
Operationen, z.B.
push: StapelhElementi× Element → StapelhElementi
Relationen, z.B. ist-leer ⊆ StapelhElementi
N
N
190
Mehrsortige Signaturen
S
mehrsortige Signatur Σ = ( , ΣF , ΣR ) besteht aus
S
ΣF
ΣR
= {Si | i ∈ I }: Menge der Sorten
: Menge der Funktionssymbole
mit Argument- und Ergebnistypen (f :
: Menge der Relationssymbole
mit Argumenttypen (s ⊆ ∗ )
S∗ → S)
S
Beispiel: Bücher mit Autoren und Erscheinungsjahr
Z
Sorten B (Bücher), P (Personen), (Jahreszahlen),
2B (Mengen von Büchern), also = {B, P, , 2B }
Funktionssymbole (mit Argument-und Ergebnistypen):


:B →
 Erscheinungsjahr

erstes − Buch − von
:P
→B
ΣF =


gemeinsame − Buecher − von : P 2 → 2B
S
Z
Z
Relationen (mit Argumenttypen):
ist − Autor − von ⊆ P × B
ΣR =
sind − Coautoren ⊆ P 2
191
Mehrsortige Σ-Strukturen
S
gegeben: mehrsortige Signatur Σ = ( , ΣF , ΣR )
S
mehrsortige Σ-Struktur A = ({AS | S ∈ }, J·KA ) mit
S
I
für jede Sorte S ∈ eine nichtleere Menge AS
(Trägermenge, Universum der Sorte)
I
für jedes Funktionssymbol f : S1 . . . Sn → S
eine Funktion Jf KA : AS1 × . . . × ASn → AS
I
für jedes Relationssymbol R ⊆ S1 × . . . × Sn
eine Relation JRKA ⊆ AS1 × . . . × ASn
192
Mehrsortige Strukturen in der Informatik
Programmierung:
Datentypen (Sorten) int, float, bool, string
mit Operationen (Signatur), z.B.:
floor
duplicate
len
>
:
:
:
:
float
string × int
string
float × float
→
→
→
→
int
string
int
bool
Datenbanken:
Tabellen sind extensionale Darstellungen (meist) mehrsortiger
Relationen
193
Charakterisierung algebraischer Strukturen
Algebraische Strukturen sind eindeutig definiert durch
Trägermengen (Typen, Sorten), z.B. {0, 1}, , {a, b}∗ , 2M
Funktionen (Operationen), z.B. len : {a, b}∗ → , + : N 2 → ,
◦ : ({a, b}∗ )2 → {a, b}∗ , 0 ∈ , ε ∈ {a, b}∗ , ∅ ∈ 2M
Relationen , z.B. ≤ ⊆ 2 , prim ⊆ , v ⊆ ({a, b}∗ )2 ,
Zusammenhänge zwischen Funktionen und Relationen, z.B.
N
N
N3
∀x ∈ N
∀(x, y ) ∈ N2
∀(x, y , z) ∈
N
N
N
N
: (x + y ) + z = x + (y + z)
: x +0=x
: x +y =y +x
∀u ∈ {a, b}∗ : (len(u) = 0) ↔ (u = ε)
∀(u, v ) ∈ ({a, b}∗ )2 : len(u ◦ v ) = len(u) + len(v )
∀(u, v ) ∈ ({a, b}∗ )2 : (u v v ) → (len(u) ≤ len(v ))
194
Formale Darstellung algebraischer Strukturen
(abstrakte Algebra, abstrakter Datentyp, ADT)
I
I
I
I
I
S
Signatur Σ = ( , ΣF , ΣR ) mit
S
Menge von Sortensymbolen,
Menge ΣF von Funktionssymbolen
mit Stelligkeit / Typdeklaration
Menge ΣR von Relationssymbolen
mit Stelligkeit / Typdeklaration
Menge von Axiomen beschreibt Zusammenhänge zwischen
den Symbolen
(meist prädikatenlogische Formeln, Gleichungen)
ADT zur Definition von Software-Schnittstellen:
Festlegung der
Syntax in Sorten und Signatur (z.B. Java-Interfaces)
Semantik (Anforderungen an Implementierung) in Axiomen
195
Terme
Beispiele: für Signatur Σ = (ΣF , ΣR ) mit
ΣF = {(3, 0), (5, 0), (+, 2), (·, 2)} und ΣR = {(>, 2)} und Menge
= {x, y , z}
X
I
Ausdrücke 3 + x, 5, y , ((y + 5) · (3 · x)) + x sind korrekt aus
Symbolen aus ΣF und
zusammengesetzt
I
Ausdrücke 3x+, +5, 3(x + y ), (3x5) + z sind nicht korrekt aus
Symbolen aus ΣF und
zusammengesetzt
X
X
Definition (induktiv)
X
Die Menge Term(ΣF , ) aller Terme über der (funktionalen) Signatur
ΣF mit Variablen aus der Menge
ist definiert durch:
IA Jede Variable x ∈
X
X ist ein Term. (X ⊆ Term(ΣF , X))
IS Sind (f , n) ∈ ΣF (f ist n-stelliges Funktionssymbol) und t1 , . . . , tn
Terme aus Term(ΣF , ),
dann ist f (t1 , . . . , tn ) ein Term aus Term(ΣF , ).
X
X
verschiedene Darstellungen von Termen möglich,
z.B. Baum, Infix-, Präfix-, Postfixform
196
Grundterme
Terme ohne Variablen heißen Grundterme.
Term (ΣF , ∅) ist Menge aller Grundterme über Signatur ΣF
Beispiele:
für ΣF = {(f , 1), (g , 2), (h, 2), (c, 0)} und = {x, y , z} gilt
c ∈ Term(ΣF , ∅) ⊆ Term(ΣF , )
(Grundterm)
(kein Grundterm)
z ∈ Term(ΣF , ), aber z 6∈ Term(ΣF , ∅)
f (c) ∈ Term(ΣF , ∅) ⊆ Term(ΣF , )
h(f (x), c) ∈ Term(ΣF , ), aber h(f (x), c) 6∈ Term(ΣF , ∅)
f 6∈ Term(ΣF , ), h(c) 6∈ Term(ΣF , ), x(c) 6∈ Term(ΣF , )
X
X
X
X
X
X
X
X
Warum gilt für alle Signaturen ΣF ohne Konstantensymbole
Term (ΣF , ∅) = ∅?
(ÜA)
197
Spezialfall: aussagenlogische Formeln
Terme über der funktionalen Signatur
ΣF = {(t, 0), (f, 0), (¬, 1), (∨, 2), (∧, 2), (→, 2), (↔, 2)}
mit Aussagenvariablen aus P
sind genau alle aussagenlogischen Formeln ϕ ∈ AL(P)
Für diese Signatur ΣF gilt also AL(P) = Term(ΣF , P)
Beispiele: für P = {a, b, c, d}
I
a ∨ (c → b) ∈ AL(P) = Term(ΣF , P)
I
(b → t) ∧ (b → f) ∈ AL(P) = Term(ΣF , P)
I
(a¬b) ∧ (b → f) 6∈ AL(P) = Term(ΣF , P)
I
(f → t) ∈ AL(P) = Term(ΣF , P),
sogar (f → t) ∈ AL(∅) = Term(ΣF , ∅)
198
Mehr Beispiele
I
I
Q
für ΣF = {(+, 2), (−, 2), (·, 2), (/ 2)} ∪ {(q, 0) | q ∈ } ist
Term(ΣF , ∅) die Menge aller arithmetischen Ausdrücke
(Terme) mit rationalen Zahlen (z.B. 3/5+1/4),
Term(ΣF , {a, b, c}) die Menge aller arithmetischen Ausdrücke
(Terme) mit rationalen Zahlen und Variablen aus der Menge
{a, b, c} (z.B. (3 · a) + ((2 · b)/c)),
ΣF = {(apfel, 0), (banane, 0), (kirsche, 2), (pflaume, 2)}
I
I
I
I
apfel ∈ Term(ΣF , ∅), Grundterm
kirsche (x, pflaume(y , banane)) ∈ Term(ΣF , {x, y , z})
kein Grundterm
banane(apfel(pflaume, kirsche(pflaume))) 6∈ Term(ΣF ,
pflaume(apfel, kirsche(banane, apfel)) ∈ Term(ΣF , ∅)
X)
199
Größe von Termen
Für jeden Term t ∈ Term(ΣF ,
definiert durch:
IA falls t = x ∈
X) ist seine Größe size(t) (induktiv)
X, dann size(t) = 1
IS falls t = f (t1 , . . . , tn ), dann
size(t) = 1 +
n
X
size(ti )
i=1
Beispiele für ΣF = {(f , 1), (g , 2), (h, 2), (c, 0)} und
I
size(c) = 1
I
size(z) = 1
I
size(f (c)) = 2
I
size(h(f (x), c)) = 4
X = {x, y , z}:
200
Menge aller Variablen in einem Term
X
Für jeden Term t ∈ Term(ΣF , ) ist die Menge var(t) aller in t
vorkommenden Variablen (induktiv) definiert durch:
IA: falls t = x ∈
X (Variable), dann var(t) = {x}
IS: falls t = f (t1 , . . . , tn ) mit (f , n) ∈ ΣF , dann
var(t) = var(t1 ) ∪ · · · ∪ var(tn )
Beispiel: Für t = f (g (x, a), g (f (a, y ), x)) gilt var(t) = {x, y }
201
Wert von Grundtermen in Strukturen
gegeben: funktionale Signatur ΣF = {(f , n) | n ∈
Σ-Struktur A = (A, J·KA )
N}
Definition (induktiv)
Der Wert des ΣF -Grundtermes t = f (t1 , . . . , tn ) ∈ Term(ΣF , ∅)
in der ΣF -Struktur A = (A, J·KA ) ist
JtKA = Jf KA (Jt1 KA , . . . , Jtn KA )
Fehlt hier der Induktionsanfang?
nein, ist als Spezialfall enthalten:
Für Terme t = c mit (c, 0) ∈ ΣF (Konstante) gilt JtKA = JcKA
(Bedeutung der Konstante c in A, gegeben in Definition von A)
202
Beispiel
Signatur Σ = (ΣF , ΣR ) mit
ΣF = {(apfel, 0), (banane, 0), (kirsche, 2), (pflaume, 2)}
ΣR = {(rettich, 1), (tomate, 2)}
s = apfel t = pflaume(apfel, kirsche(banane, apfel))
Σ-Struktur A = (A, J·KA ) mit
A =
N
JapfelKA = 5
für alle (x, y ) ∈
für alle (x, y ) ∈
A2 :
A2 :
JbananeKA = 3
JkirscheKA (x, y ) = x + y
JpflaumeKA (x, y ) = x · y
JrettichKA = {0, . . . , 10}
JtomateKA = {(2n, n) | n ∈
JsKA = JapfelKA = 5 JtKA = . . .
N}
203
Weiteres Beispiel
s = apfel t = pflaume(apfel, kirsche(banane, apfel))
Σ-Struktur B = (B, J·KB ) mit
B = {0, 1}
JapfelKB = 0
für alle (x, y ) ∈
B 2:
JbananeKB = 1
JkirscheKB (x, y ) = min(x, y )
für alle (x, y ) ∈ B 2 : JpflaumeKB (x, y ) = max(x, y )
JrettichKB = {0}
JtomateKB = {(0, 0), (0, 1), (1, 1)}
JsKB = JapfelKB = 0,
JtKB = . . .
204
Weiteres Beispiel
s = apfel t = pflaume(apfel, kirsche(banane, apfel))
Σ-Struktur C = (C , J·KC ) mit
C
= Menge aller Studenten hier
JapfelKC = Student hinten rechts
für alle (x, y ) ∈
C 2:
JbananeKC = Student daneben
JkirscheKC (x, y ) = x
für alle (x, y ) ∈ C 2 : JpflaumeKC (x, y ) = y
JrettichKC = {x ∈ C | x ist blond}
JtomateKC = {(x, y ) ∈ C 2 | x hilft y }
JsKC = JapfelKC = Student hinten rechts
JtKC = . . .
205
Noch ein Beispiel
s = apfel t = pflaume(apfel, kirsche(banane, apfel))
Σ-Struktur D = (D, J·KD ) mit
D = 2N
JapfelKD = ∅
JbananeKD =
N
für alle M, N ∈ D: JkirscheKD (M, N) = M ∩ N
für alle M, N ∈ D: JpflaumeKD (M, N) = M ∪ N
JrettichKD = {M ⊆
N | |M| ∈ N}
JtomateKD = {(M, N) ∈ D 2 | M ⊆ N}
JsKD = JapfelKD = ∅,
JtKD = . . .
206
Äquivalenz von Grundtermen in einer Struktur
ΣF -Grundterme s, t ∈ Term(ΣF , ∅) mit JsKA = JtKA heißen
äquivalent in A (s ≡A t).
In den Beispielen oben gilt
s 6≡A t
s
≡B
t
s
6≡C
t
s ≡D t
schon bekannter Spezialfall:
semantische Äquivalenz aussagenlogischer Formeln
(ohne Aussagenvariablen) ist Äquivalenz in der Struktur
S = ({0, 1}, max, min, x 7→ 1 − x, 0, 1) (Wahrheitswertstruktur)
207
Was bisher geschah
zusammenhängende Modellierung von
Mengen von Individuen (evtl. verschiedener Typen)
Funktionen auf Individuen dieser Mengen
Relationen zwischen Individuen dieser Mengen
in (algebraischen) Strukturen
klare Unterscheidung zwischen
Syntax: Symbole zur formalen (maschinell zu verarbeitenden)
Darstellung von Sorten (Typen, Mengen),
Individuen, Funktionen und Relationen
Signatur Σ = (ΣF , ΣR )
Terme über der Signatur ΣF : Term(ΣF , )
Spezialfall Grundterme (ohne Variablen)
strukturelle Induktion über Terme
(Definition von Funktionen,
Nachweis von Eigenschaften)
X
Semantik: Σ-Strukturen definieren Bedeutung der Symbole aus Σ
Wert von Grundtermen in Σ-Strukturen
(induktiv)
Äquivalenz von Grundtermen in Σ-Strukturen
208
Interpretation von Terme mit Variablen
gegeben:
I
Signatur Σ = (ΣF , ΣR ),
I
Variablenmenge
I
Σ-Struktur A = (A, J·KA )
I
t ∈ Term(ΣF ,
X
X)
Welchen Wert (Individuum) in A haben Variablen x ∈
X
X?
Belegung β : → A der Individuenvariablen
(ordnet jeder Variablen einen Wert aus dem Träger von A zu)
Eine Interpretation für einen Term t ∈ Term(ΣF ,
(A, β) aus
I
I
X) ist ein Paar
einer Σ-Struktur A = (A, J·KA ) und
einer Belegung β :
X → A.
209
Beispiele
Term s = f (g (x, a), g (f (a, y ), x)) über der Signatur Σ = . . .
I
N
Interpretation (A, α) mit Σ-Struktur A = ( , J·KA ), wobei
JaKA = 1
Jf KA (x, y ) = x + y
Jg KA (x, y ) = x · y
N
I
und Variablenbelegung α : {x, y } → , wobei
α(x) = 2 und α(y ) = 1
Interpretation (B, β) mit Σ-Struktur B = (2{a,b,c} , J·KB ):
JaKB = {b, c}
Jf KB (x, y ) = x \ y
Jg KB (x, y ) = x ∪ y
und Variablenbelegung β : {x, y } → 2{a,b,c} , wobei
β(x) = ∅ und β(y ) = {b}
210
Werte von Termen mit Variablen
X
Der Wert des Termes t ∈ Term(ΣF , ) in der ΣF -Struktur
A = (A, J·KA ) ist (induktiv) definiert durch
IA für t = x ∈
X gilt JtKA = β(x)
IS für t = f (t1 , . . . , tn ) gilt
JtKA = Jf KA (Jt1 KA , . . . , Jtn KA )
Der Wert eines Termes in einer Interpretation ((A, J·KA ), α) ist ein
Element aus A.
(Man bemerke die Analogie zur Berechnung des Wahrheitswertes
einer aussagenlogischen Formel
mit Aussagenvariablen.)
Der Wert von Grundtermen aus Term(ΣF , ∅) in einer Interpretation
(A, α) hängt nicht von der Belegung α ab.
211
Beispiele
Signatur Σ = (ΣF , ΣR ) mit
ΣF = {(a, 0), (b, 0), (f , 1), (g , 2), (h, 2)} und ΣR = ∅
Variablenmenge = {x, y }
Σ-Struktur S = (S, J·KS ) mit
X
S
JaKS
JbKS
=
N
= 5
= 3
Jf KS (a) = 1 + a
Jg KS (a, b) = a + b
JhKS (a, b) = a · b
N
N
β : {x, y } → mit β(x) = 0, β(y ) = 1
γ : {x, y } → mit γ(x) = 2, γ(y ) = 0
Terme s = g (h(f (a), x), h(x, y )) und t = h(f (x), g (y , a))
JsK(S,β) = . . . , JtK(S,β) = . . . , JsK(S,γ) = . . . , JtK(S,γ) = . . . (Tafel)
Variablenbelegungen
212
Atome (elementare Aussagen)
Wiederholung: Atome in
Aussagenlogik : Aussagenvariable,
bekommt festen Wahrheitswert durch
Belegung (der Aussagenvariablen)
Prädikatenlogik : (parametrisierte) Aussage über Eigenschaften
von oder Beziehungen zwischen Individuen
Wahrheitswert abhängig von beteiligten Individuen
z.B. nebeneinander(x, y ), gerade(n), x < 3, x < y ,
Geschwister(x, Mutter(y ))
213
Atome – Syntax
Atom elementare Formel,
repräsentiert Eigenschaft von oder Beziehung
zwischen Individuen
Signatur Σ = (ΣF , ΣR ) mit
I
Menge ΣF von Funktionssymbolen mit Stelligkeit (f , n)
I
Menge ΣR von Relationssymbolen mit Stelligkeit (R, n)
Definition
Menge aller Σ-Atome mit Variablen aus der Menge
Atom(Σ,
X:
X) = {R(t1, . . . , tn ) | (R, n) ∈ ΣR und t1, . . . , tn ∈ Term(ΣF , X)}
Atome ohne Individuenvariablen heißen Grundatome.
Menge aller Grundatome: Atom(Σ, ∅)
214
Atome – Beispiele
I
Signatur Σ = (ΣF , ΣR√) mit
ΣF = {(1, 0), (2, 0), ( , 1), (+, 2)}
ΣR = {(=, 2), (≤, 2)}
Variablenmenge = {x, y , z}
X
I
I
I
I
X
X
√
√
√x = 2 ∈ Atom(Σ, )
) (aber x + 2 ∈ Term(ΣF ,
px + 2√ 6∈ Atom(Σ,
p√
1+ 2≤
2 ∈ Atom(Σ, ∅)
X))
Signatur Σ = (ΣF , ΣR ) mit
ΣF = {(a, 0), (b, 0), (k, 2), (d, 2)}
ΣR = {(P, 1), (Q, 2)}
Variablenmenge = {x, y }
X
I
I
I
I
I
X
y 6∈ Atom(Σ, )
P(x) ∈ Atom(Σ, )
P(a) ∈ Atom(Σ, ∅)
P(Q(P(a), k(x, y ))) 6∈ Atom(Σ, )
Q(k(a, d(y , a)), x) ∈ Atom(Σ, )
X
X
X
215
Atome – Semantik
Signatur Σ = (ΣF , ΣR ), Variablenmenge
Σ-Interpretation (A, α) mit
I
X
Σ-Struktur A = (A, J·KA )
X→A
Wert des Atomes a = P(t1 , . . . , tn ) ∈ Atom(Σ, X)
I
Belegung der Individuenvariablen α :
in der Interpretation (A, α):
JaK(A,α)
= JP(t1 , . . . , tn )K(A,α)
= JPKA Jt1 K(A,α) , . . . , Jtn K(A,α)
1 falls Jt1 K(A,α) , . . . , Jtn K(A,α) ∈ JPKA
=
0 sonst
(Spezialfall Atom a mit (a, 0) ∈ ΣR : JaK(A,α) = JaKA )
Der Wert eines Atomes in einer Interpretation (A, α) ist ein
Wahrheitswert.
Der Wert von Grundatomen aus Atom(Σ, ∅) in einer Interpretation
(A, α) hängt nicht von der Belegung α ab.
216
Semantik von Atomen – Beispiele
Signatur Σ = (ΣF , ΣR ) mit
ΣF = {(a, 0), (f , 1)} und ΣR = {(P, 1), (R, 2)},
Variablenmenge = {x, y }
Σ-Struktur S = (S, J·KS ) mit
X
S
= {0, 1, 2}
JaKS
= 1
JPKS
= {0, 2}
∀d ∈ S : Jf KS (d) = 2 − d
JRKS
= {(1, 0), (1, 2), (2, 2)}
Belegung β : {x, y } → {0, 1, 2}: β(x) = 0, β(y ) = 1
Wert der folgenden Atome aus Atom(Σ, )
in der Interpretation (S, β) (Tafel):
JP(x)K(S,β) = . . . , JP(a)K(S,β) = . . .,
JP(f (a))K(S,β) = . . . , JP(f (f (x)))K(S,β) = . . .,
JR(x, a)K(S,β) = . . ., JR(f (y ), x)K(S,β) = . . .
X
217
Prädikatenlogik (der ersten Stufe) – Syntax
I
I
I
aussagenlogische Junktoren t, f, ¬, ∨, ∧, →, ↔
Σ-Atome
Quantoren ∀, ∃
Wiederholung:
Die Menge FOL(Σ, ) aller Formeln der Prädikatenlogik (der
ersten Stufe, first order logic) über der Signatur Σ mit
(Individuen-)Variablen aus der Menge
ist (induktiv) definiert
durch:
IA: Atom(Σ, ) ⊆ FOL(Σ, )
(alle Atome sind Formeln)
IS: I Aus {ϕ1 , . . . , ϕn } ⊆ FOL(Σ, ) folgt für jeden
n-stelligen Junktor ∗:
∗(ϕ1 , . . . , ϕn ) ∈ FOL(Σ, )
I Aus ϕ ∈ FOL(Σ, ) und x ∈
folgt
{∀xϕ, ∃xϕ} ⊆ FOL(Σ, )
(Baumstruktur, analog zur Definition von Termen)
X
X
X
X
X
X
X
X
X
218
Beispiele
I
Signatur Σ = (ΣF , ΣR ) mit
ΣF = {(a, 0), (f , 1)} und ΣR = {(P, 1), (R, 2)}
Variablenmenge = {x, y }
Formeln aus FOL(Σ, ):
X
I
X
ϕ1
= P(f (x))
ϕ2
ϕ3
= (P(x) ↔ (¬P(f (x)) ∧ (∀x∃y ((P(x) ↔ P(y )) ∧ R(x, y )))))
= ∀x∀y ϕ2
Σ = (∅, ΣR ) mit ΣR = {(p, 0), (q, 0)},
X=∅
Formeln aus FOL(Σ, ∅):
ψ1
= p∨q
ψ2
= ¬p ∨ ¬(q ∨ p)
(Syntax der Aussagenlogik ist Spezialfall der FOL-Syntax)
219
Variablen in Formeln
Eine Individuenvariable x ∈
X kommt vor in
Term t, falls t = x oder
t = f (t1 , . . . , tn ) und x in einem ti vorkommt,
Atom a = p(t1 , . . . , tn ), falls x in einem ti vorkommt,
Formel ϕ, falls x in einem Atom in ϕ
(Teilformel von ϕ, die ein Atom ist) vorkommt.
var(ϕ): Menge aller in ϕ vorkommenden Indiviuenvariablen
Beispiele (Tafel: Formelbäume):
I
für ϕ1 = R(x, a) gilt var(ϕ1 ) = {x}
I
für ϕ2 = ∃xR(x, f (y , x)) gilt var(ϕ2 ) = {x, y }
I
für ϕ3 =
(P(x) ↔ (¬P(f (x)) ∧ (∀x∃y ((P(x) ↔ P(y )) ∧ R(x, y )))))
gilt var(ϕ3 ) = {x, y }
220
Freie und gebundene Vorkommen von Variablen
Ein Vorkommen der Indiviuenvariablen x in ϕ heißt
gebunden , falls x in einer Teilformel von ϕ der Form ∃xψ oder
∀xψ vorkommt,
bvar(ϕ): Menge aller in ϕ gebundenen
vorkommenden Variablen
frei , sonst
fvar(ϕ): Menge aller in ϕ frei vorkommenden
Variablen
var(ϕ) = fvar(ϕ) ∪ bvar(ϕ) gilt immer.
fvar(ϕ) ∩ bvar(ϕ) 6= ∅ ist möglich, aber nicht notwendig.
221
Beispiele
ϕ1 = R(x, a)
ϕ2 = ∃xR(x, f (y , x))
bvar(ϕ1 ) = ∅, fvar(ϕ1 ) = {x}
bvar(ϕ2 ) = {x}, fvar(ϕ2 ) = {y }
ϕ3 = (P(x) ↔ (¬P(f (x)) ∧ (∀x∃y ((P(x) ↔ P(y )) ∧ R(x, y )))))
bvar(ϕ3 ) = {x, y }, fvar(ϕ3 ) = {x}
ϕ4 = ∀x∀y ϕ3
bvar(ϕ4 ) = {x, y }, fvar(ϕ4 ) = ∅
222
Sätze
Jede Formel ϕ ∈ FOL(Σ,
X) mit fvar(ϕ) = ∅ heißt Satz.
Beispiele:
I
∀x∀y (R(x, y ) → R(y , x)) ist ein Satz.
I
R(x, y ) → R(y , x),
∀x(R(x, y ) → R(y , x)),
∃y (R(x, y ) → R(y , x)),
∀x(R(x, y ) → ∃yR(y , x)) sind keine Sätze.
für ϕ ∈ FOL(Σ,
X) mit fvar(ϕ) = {x1, . . . , xn }:
universeller Abschluß ∀ϕ := ∀x1 · · · ∀xn ϕ
existentieller Abschluß ∃ϕ := ∃x1 · · · ∃xn ϕ
Für jede Formel ϕ ∈ FOL(Σ,
X) sind ∀ϕ und ∃ϕ Sätze.
223
Modifizierte Interpretationen
gegeben:
I
Signatur Σ,
I
Variablenmenge
I
Σ-Struktur A = (A, J·KA ),
X,
X → A der Variablen aus X in A
modifizierte Belegung β[x 7→ d] : X → A mit
I
Belegung β :
β[x 7→ d](y ) =
d
für y = x
β(y ) sonst
Σ-Interpretation (A, β) mit
I
I
Σ-Struktur A = (A, J·KA )
Variablenbelegung β :
X→A
modifizierte Interpretation (A, β[x 7→ d])
224
Wert in Interpretationen
Wert in Σ-Interpretation (S, β) mit S = (S, J·KS )
X: JxK(S,β) = β(x) ∈ S
I eines Termes t = f (t1 , . . . , tn ) ∈ Term(ΣF , X):
I
I
I
einer Individuenvariable x ∈
JtK(S,β) = Jf KS Jt1 K(S,β) , . . . , Jtn K(S,β) ∈ S
X
eines Atomes a = p(t1 , . . . , tn ) ∈ Atom(Σ, ):
JaK(S,β) = JpKS (Jt1 K(S,β) , . . . , Jtn K(S,β) ) ∈ {0, 1}
einer Formel ϕ ∈ FOL(Σ,
X): JϕK(S,β) ∈ {0, 1}
J¬ϕK(S,β) = 1 − JϕK(S,β)
Jϕ ∨ ψK(S,β) = max(JϕK(S,β) , JψK(S,β) )
Jϕ ∧ ψK(S,β) = min(JϕK(S,β) , JψK(S,β) )
J∃xϕK(S,β) = max{JϕK(S,β[x7→a]) | a ∈ S}
J∀xϕK(S,β) = min{JϕK(S,β[x7→a]) | a ∈ S}
http://spikedmath.com/445.html
225
Beispiele
Σ = (ΣR , ΣF ) mit ΣF = {(f , 1)},ΣR = {(R, 2)},
ϕ = ¬R(x, y ) ∧ ∃zR(z, z)
I
I
X = {x, y , z}
ψ = ∀x∃yR(x, f (y ))
Σ-Struktur A = (A, J·KA ) mit A = {a, b, c}
Jf KA (a) = Jf KA (b) = c, Jf KA (c) = a
JRKA = {(a, a), (b, a), (a, c)}
Belegung α(x) = b, α(y ) = a , α(z) = b
JϕK(A,α) = . . .
JψK(A,α) = . . .
Z
Σ-Struktur B = (B, J·KB ) mit B =
Jf KB (d) = −d, JRKB =≤
Belegung β(x) = 5, β(y ) = 3, β(z) = −1,
JϕK(B,β) = . . .
JψK(B,β) = . . .
226
Was bisher geschah
Klassische Prädikatenlogik der ersten Stufe FOL(Σ,
X):
X
Syntax : Signatur Σ = (ΣF , ΣR ), Individuenvariablen
Terme Term(Σ, ) (aus Σ nur ΣF relevant),
Grundterme Term(Σ, ∅)
Atome Atom(Σ, ), Grundatome Atom(Σ, ∅)
Formeln FOL(Σ, )
Variablen in Formeln (frei, gebunden)
Sätze (Formeln ohne freie Variblen)
X
X
X
Semantik : in Σ-Strukturen A = (A, J·KA ) Wert von
Grundtermen t ∈ Term(Σ, ∅): JtKA ∈ A
Äquivalenz ≡A in Struktur A
Grundatomen a ∈ Atom(Σ, ∅): JaKA ∈ {0, 1}
Sätzen ϕ ∈ FOL(Σ, ): JϕKA ∈ {0, 1}
in Σ-Interpretationen (A, α) mit
Belegung der Individuenvariablen α : → A
Wert von
Termen t ∈ Term(Σ, ): JtK(A,α) ∈ A
Atomen A ∈ Atom(Σ, ): JaK(A,α) ∈ {0, 1}
Formeln ϕ ∈ FOL(Σ, ): JϕK(A,α) ∈ {0, 1}
X
X
X
X
X
227
Beispiele (Wiederholung)
Σ = (ΣR , ΣF ) mit ΣF = {(f , 1)},ΣR = {(R, 2)},
ϕ = ¬R(x, y ) ∧ ∃zR(z, z)
I
I
X = {x, y , z}
ψ = ∀x∃yR(x, f (y ))
Σ-Struktur A = (A, J·KA ) mit A = {a, b, c}
Jf KA (a) = Jf KA (b) = c, Jf KA (c) = a
JRKA = {(a, a), (b, a), (a, c)}
Belegung α(x) = b, α(y ) = a , α(z) = b
JϕK(A,α) = . . .
JψK(A,α) = . . .
Z
Σ-Struktur B = (B, J·KB ) mit B =
Jf KB (d) = −d, JRKB =≤
Belegung β(x) = 5, β(y ) = 3, β(z) = −1,
JϕK(B,β) = . . .
JψK(B,β) = . . .
227
Modelle für Formeln
Σ-Interpretation (S, β) erfüllt (ist Modell für) die Formel ϕ ∈ FOL(Σ,
genau dann, wenn JϕK(S,β) = 1.
X
Menge aller Modelle der Formel ϕ ∈ FOL(Σ, )
S = (S, J·KS ) ist Σ-Struktur und β :
Mod(ϕ) = (S, β) und JϕK(S,β) = 1
Formel ϕ ∈ FOL(Σ,
X→S
X)
X) heißt
erfüllbar gdw. Mod(ϕ) 6= ∅
(z.B. ∀x (P(x) ∨ Q(x)))
unerfüllbar gdw. Mod(ϕ) = ∅
(z.B. ∀xP(x) ∧ ∃x¬P(x) )
allgemeingültig gdw.
Mod(ϕ) = {(S, β) | S = (S, J·KS ) ist Σ-Struktur und β :
X → S}
(Menge aller Σ-Interpretationen)
228
Beispiele
ϕ = R(x) ∧ ∃y ((¬R(y )) ∧ E (y , x))
I
Struktur G = ({1, . . . , 4}, J·KG ) mit
JRKG = {1, 2, 4},
JE KG = {(1, 2), (3, 2)} und
Belegung α : {x, y } → {1, . . . , 4} mit α(x) = 2, α(y ) = 2
(G, α) ∈ Mod(ϕ)
I
Struktur H = ({a, b}, J·KH ) mit
JRKH = {a},
JE KH = {(a, a), (b, b)},
Belegung β : {x, y } → {a, b} mit β(x) = a, β(y ) = a
(H, β) 6∈ Mod(ϕ)
I
Struktur J = ( , J·KJ ) mit
JRKJ = 2 (Menge aller geraden Zahlen),
JE KJ = {(i, i + 1) | i ∈ } und
Belegung γ : {x, y } → mit γ(x) = γ(y ) = 0
(J , γ) ∈ Mod(ϕ)
Z
Z
Z
Z
229
Semantische Äquivalenz von Formeln
(analog Aussagenlogik)
Für ϕ, ψ ∈ FOL(Σ, X ) gilt
ϕ≡ψ
gdw.
Mod(ϕ) = Mod(ψ)
Beispiele:
I
¬∀xP(x) ≡ ∃x¬P(x)
I
∀x∃yR(x, y ) 6≡ ∀x∃yR(y , x)
I
∀x∃yR(x, y ) 6≡ ∃x∀yR(x, y )
230
Wichtige Äquivalenzen mit Quantoren
¬∀xϕ ≡ ∃x¬ϕ
¬∃xϕ ≡ ∀x¬ϕ
∀xϕ ∧ ∀xψ ≡ ∀x(ϕ ∧ ψ)
∃xϕ ∨ ∃xψ ≡ ∃x(ϕ ∨ ψ)
∀x∀y ϕ = ∀y ∀xϕ
∃x∃y ϕ = ∃y ∃xϕ
für x 6∈ fvar(ψ) und ∗ ∈ {∨, ∧} gilt außerdem
∀xϕ ∗ ψ ≡ ∀x(ϕ ∗ ψ)
∃xϕ ∗ ψ ≡ ∃x(ϕ ∗ ψ)
∃y ϕ ≡ ∃xϕ[y 7→x]
∀y ϕ ≡ ∀xϕ[y 7→x]
(gebundene Umbenennung)
231
Modelle von Formelmengen
Menge aller Modelle der Formelmenge Φ ⊆ FOL(Σ,
\
Mod(Φ) =
Mod(ϕ)
X):
ϕ∈Φ
Beispiel:
Signatur Σ = (∅, ΣR ) mit ΣR = {(P, 1), (E , 2)}
∀x (P(x) ∨ P(y )) ,
Φ=
∀x∀y ((P(x) ∧ E (x, y )) → ¬P(y ))
I
I
(A, α) mit A = ({0, . . . , 5}, J·KA ), wobei JPKA = {0, 2} und
JE KA = {(i, i + 1) | i ∈ {0, . . . , 4}}
und α(x) = 1, α(y ) = 2 ∈ Mod(Φ)
(B, β) mit B = ( , J·KB ), wobei JPKB = 2 und
JE KB = {(i, i + 1) | i ∈ }
und α(x) = α(y ) = 0 ∈ Mod(Φ)
Z
Z
Z
232
Modelle von Sätzen
X
Auf den Wert eines Satzes ϕ ∈ FOL(Σ, ) (Formel ohne freie
Variablen) in einer Interpretation I = (S, β) hat die Belegung β
keinen Einfluß, d.h. für beliebige Belegungen α, β : → S gilt
X
JϕK(S,α) = JϕK(S,β)
Beispiel: ϕ = ∀x∃y (P(x) ∧ E (x, y ) → ¬P(y ))
X
Für Sätze ϕ ∈ FOL(Σ, ) genügt es also, den Wert in Strukturen
(statt in Interpretationen) zu betrachten:
JϕKS = JϕK(S,β)
für jede beliebige Belegung β :
Menge aller Modelle des Satzes ϕ ∈ FOL(Σ,
X→S
X):
Mod(ϕ) = {S | S = (S, J·KS ) ist Σ-Struktur und JϕKS = 1}
233
Modelle prädikatenlogischer Sätze – Beispiel
ϕ = ∀x(¬G (x) → G (f (x))
I
A = (A, J·KA ) mit A = Menge aller Menschen,
Jf KA (x) = Vater von x, JG KA (x) gdw. x männlich
A ∈ Mod(ϕ)
I
B = (B, J·KB ) mit B = Menge aller Orte 51◦ nördlicher Breite
Jf KB (x) = Ort 50 km westlich von x, JG KB (x) gdw. x in Sachsen
B 6∈ Mod(ϕ)
I
C = ( , J·KC ) mit
Jf KC (x) = x + 1, JG KC (x) gdw. x Primzahl
I
I
N
Z
D = ( , J·KD ) mit Jf KD (x) = x + 1,
JG KD = 2
Z
R
C 6∈ Mod(ϕ)
D ∈ Mod(ϕ)
2
E = (E , J·KE ) mit E =
(Menge aller Punkte der Ebene),
E 6∈ Mod(ϕ)
Jf KE (x, y ) = (−x, −y ), JG KE (x, y ) gdw. x < y
234
Modelle von Satzmengen – Beispiele
Signatur Σ = (∅, ΣR ) mit ΣR = {(R, 2)}
∀x R(x, x), ∀x∀y (R(x, y ) → R(y , x)) ,
Φ=
∀x∀y ∀z ((R(x, y ) ∧ R(y , z)) → R(x, z))
Für Σ-Struktur A = ({a, b, c}, J·KA ) mit
JRKA = {(a, a), (a, c), (b, b), (c, a), (c, c)} gilt A ∈ Mod(Φ)
I Für Σ-Struktur B = ( , J·KB ) mit JRKB = ≤ gilt B 6∈ Mod(Φ)
I Mod(Φ) = Menge aller Σ-Strukturen S = (S, J·KS ), für die
JRKS eine Äquivalenzrelation ist
I
N
Signatur Σ0 = (Σ0F , Σ0R ) mit Σ0F = {(f , 2), (e, 0)}, Σ0R {(=, 2)}
Φ0 = {∀x∀y (f (f (x, y ), z) = f (x, f (y , z))), ∀x(f (x, e) = x)}
N
Für Σ0 -Struktur A = ( , J·KA ) mit
∀(m, n) ∈ 2 : Jf KA (m, n) = m · n, JeKA = 1 gilt A ∈ Mod(Φ0 )
I Für Σ0 -Struktur B = ({0, 1}, J·KB ) mit
Jf KB = max, JeKB = 1 gilt B 6∈ Mod(Φ0 )
I Mod(Φ0 ) = Menge aller Σ-Strukturen S = (S, J·KS ), für die
S mit Jf KS ein Monoid mit neutralem Element JeKS bildet
I
N
235
Charakterisierung von Strukturen durch Satzmengen
Beispiel: Graphen mit Eckenfärbung
Signatur Σ = (∅, ΣR ) mit ΣR = {(R, 1), (G , 1), (B, 1), (E , 2)}


∀x¬E
(x,
x),








∀x∀y
(E
(x,
y
)
→
E
(y
,
x)),






∀x(R(x) ∨ G (x) ∨ B(x)),
Φ=
∀x(R(x) → ¬(G (x) ∨ B(x)), 









∀x(G
(x)
→
¬(R(x)
∨
B(x)),




∀x(B(x) → ¬(G (x) ∨ R(x))
(jede Ecke mit genau einer Farbe aus {R, G , B} gefärbt)
Mod(Φ) = Menge aller ungerichteten schlingenfreien Graphen mit
Eckenfärbung mit Farben aus {R, G , B}
236
Aussagenlogik als FOL-Spezialfall
Syntax (Wiederholung): für Signatur ΣP = (ΣF , ΣR ) mit
ΣF = ∅ und ΣR = {(p, 0) | p ∈ P} gilt
AL(P) = FOL(ΣP , ∅)
(Formeln aus FOL(ΣP , ) enthalten keine Terme, keine
Individuenvariablen und keine Quantoren)
X
Semantik : Jede ΣP -Interpretation (S, β) mit S = (S, J·KS ) und
β : → S definiert für jedes p ∈ P einen Wahrheitswert
JpKS ∈ {0, 1} (S und β irrelevant)
also eine Funktion WS : P → {0, 1} mit
∀p ∈ P : WS (p) = JpKB
(Belegung der Aussagenvariablen in P mit
Wahrheitswerten)
X
Damit gilt auch für alle Formeln ϕ ∈ FOL(ΣP , ∅): WS (ϕ) = JϕK(S,β)
Beispiel: Σ{a,b,c} = (∅, ΣR ) mit ΣR = {(a, 0), (b, 0), (c, 0)}
ϕ = a ∧ (¬c ∨ b) ∈ FOL(Σ{a,b,c} , ∅) = AL({a, b, c})
Σ{a,b,c} -Struktur S = (S, J·KS ) mit JaKS = JcKS = 1 und JbKS = 0
entspricht der Belegung WS = {a 7→ 1, b 7→ 0, c 7→ 1}
Wert von ϕ in S: JϕKS = 0 = WS (ϕ)
237
Modellmengen aussagenlogischer Formeln
zur Erinnerung:
Menge aller Interpretationen (Belegungen) für Formeln aus AL(P)
{0, 1}P = {W : P → {0, 1}} = 2P
Modellmenge einer Formel ϕ ∈ AL(P):
Mod(ϕ) = {W : P → {0, 1} | W (ϕ) = 1}
(Menge aller erfüllenden Belegungen für ϕ)
Beispiele:
Mod(p ∨ (q ∧ ¬p)) = {{p 7→ 1, q →
7 0}, {p 7→ 0, q 7→ 1}, {p 7→ 1, q 7→ 1}}
Mod(p → p)
= {{p 7→ 0}, {p 7→ 1}} = {0, 1}{p}
Mod(p ∧ ¬p)
= ∅
T
Modellmenge der Formelmenge Φ ⊆ AL(P): Mod(Φ) = ϕ∈Φ Mod(ϕ)
Beispiele:
Mod({p, p → q}) = {{p 7→ 1, q 7→ 1}}
Mod(∅)
= {0, 1}P
238
Erfüllbarkeits-Problem CNF-SAT
Problem (Aufgabe) CNF-SAT:
gegeben: CNF V
(Formel
Wkiin konjunktiver Normalform)
ϕ= m
i=1 j=1 li,j
Frage: Ist ϕ erfüllbar?
mögliche Antworten:
ja und evtl. erfüllende Belegung (Modell)
nein
Instanz des CNF-SAT-Problems:
Formel ϕ ∈ AL(P) in CNF
z.B. (¬a ∨ ¬b) ∧ (b ∨ ¬c) ∧ a
239
Lösungsansätze für CNF-SAT
Lösungsverfahren:
Algorithmus, welcher für jede Instanz ϕ ∈ AL(P) die korrekte
Antwort zurückgibt
I
Test aller möglichen Belegungen (aufwendig)
für große Anzahl an Aussagenvariablen ineffizient
I
Umformung in eine zu ϕ äquivalente DNF ψ (aufwendig)
Test von ψ auf Erfüllbarkeit (einfach)
für große Anzahl an Aussagenvariablen ineffizient
Konstruktion einer Formel ψ mit
I
1. ψ und ϕ erfüllbarkeitsäquivalent
(also ψ erfüllbar gdw. ϕ erfüllbar) und
2. Erfüllbarkeit für ψ einfach zu testen
Problem CNF-SAT ist schwierig (zeitaufwendig) zu lösen.
240
SAT-Solver
SAT-Solver: Werkzeug zum Lösen von CNF-SAT-Instanzen
Problem CNF-SAT schwierig (in ungünstigen Fällen)
SAT-Solver
I
benutzen heuristische Verfahren,
I
finden für praktische Probleme oft schnell eine Lösung,
I
meist Ausgabe einer erfüllenden Belegung möglich
(falls eine solche existiert)
aktive Forschung auf diesem Gebiet:
jährlich Wettbewerbe (www.satcompetition.org)
typische Anwendung von SAT-Solvern:
1. Modellierung des ursprünglichen Problems P als
CNF-SAT-Instanz P 0 (Darstellung als CNF ϕ)
2. Lösung von P 0 mit SAT-Solver
3. Übersetzung erfüllender Belegung für ϕ in Lösung für P
241
Beispiel Bahnfahrer (Übungsaufgabe 1.3)
In einem Eisenbahnabteil sitzen
...

LB → MT



(¬MB) → RT
Φ=
LS ∨ LT ∨ LB



LS → ¬LT
die Herren Lehmann, Müller und Richter

,
LT → MS
,



,
RS → LT
,
, MS ∨ MT ∨ MB , . . . 


,
LS → ¬LB
, ...
Darstellung als CNF
ϕ=
∧
∧
∧
(¬LB ∨ MT )
(MB ∨ RT )
(LS ∨ LT ∨ LB)
(¬LS ∨ ¬LT )
∧
∧
∧
∧
(¬LT ∨ MS)
(¬RS ∨ LT )
(MS ∨ MT ∨ MB) ∧
(¬LS ∨ ¬LB)
∧
···
···
Was für ein Landsmann ist jeder?
gesucht ist also ein Modell (erfüllende Belegung) für ϕ
(repräsentiert Bijektion: {L, M, R} → {S, T , B})
242
Lösung mit SAT-Solver
Eingabe im DIMACS-Format für CNF (ASCII):
erste Zeile enthält Typ (cnf), Anzahl der Aussagenvariablen und
Disjunktionen (z.B. p cnf 9 25)
I Aussagenvariablen {1, . . . , n}
I jede Disjunktion (Klausel) eine Zeile,
- statt ¬, Literale durch Leerzeichen getrennt,
0 markiert Ende der Klausel
I
Darstellung der Bahnfahrer-Aufgabe als CNF in DIMACS-Format
p cnf 9 25
c 1:LS, 2:LT, 3:LB, 4:MS, 5:MT, 6:MB, 7:RS, 8:RT, 9:RB
-3 5 0
-2 4 0
...
Lösung mit SAT-Solver, z.B. MiniSat, Lingeling
SATISFIABLE
1 -2 -3 -4 -5 6 -7 8 -9 0
Ausgabe: erfüllende Belegung {1 7→ 1, 6 7→ 1, 8 7→ 1} (sonst 0)
wahr sind also 1 : LS, 6 : MB und 8 : RT
243
Einsatz von SAT-Solvern
typische Anwendungen für SAT-Solver z.B.
I
Schaltkreisentwurf und -verifikation
I
Konfiguration
I
Model-Checking
I
Planen
I
Constraint-Lösen
I
kombinatorische Suchprobleme, z.B.
Graph-Färbungen (Register-Zuordnung, Sudoku)
244
Was bisher geschah
Modellierung von
Daten durch
Mengen (Individuenbereiche), häufig
zusammengesetzt durch
Mengenoperationen,
Folgen (Listen, Vektoren, Wörter)
Zusammenhängen zwischen Individuen durch
Relationen: Eigenschaften, Operationen, spezielle
binäre, Darstellungsformen (Menge,
Matrix, Graph)
Funktionen: Eigenschaften, Operationen,
Multimengen
Eigenschaften (Anforderungen) an Individuen und Beziehungen in
Logiken (klassische):
Prädikatenlogik FOL(Σ, ) mit
Spezialfall Aussagenlogik AL(P)
X
245
Maschinelle Lösung von Aufgaben (Wiederholung)
Modellierung Übertragung aller relevanten Informationen von Realität in
einen Modellbereich (geeignet gewählt) durch Analyse und
Formalisierung von
Aufgabenbereich (Kontext): (strukturierte) Daten,
Eigenschaften, Zusammenhänge
Modellierung: abstrakter / konkreter DT
Eingabedaten: Typ, mögliche Werte, Einschränkungen
Modellierung: Sorten, Logik
Lösung Typ und Anforderungen (Requirements):
Eigenschaften, Einschränkungen,
Zusammenhänge mit den Eingabedaten
Modellierung: Sorten, Logik
Lösung der Aufgabe im Modellbereich mit
speziellen (eigens entwickelten) Algorithmen
vorhandenen Methoden, z.B.
SAT-Solver, SW-Bibliotheken
häufig Kombination davon
Übertragung der Lösung aus Modellbereich in Realität
246
Modellierungsbeispiel Bahnfahrer (Wiederholung)
Kontext:
Realität (umgangssprachliche) Beschreibung der
Situation:
In einem Eisenbahnabteil sitzen die Herren
Lehmann, Müller und Richter . . .
Modellbereich formale Darstellung als Formelmenge:


,
LT → MS
,


 LB → MT



(¬MB) → RT ,
RS → LT
,
Φ=
LS ∨ LT ∨ LB , MS ∨ MT ∨ MB , . . . 





LS → ¬LT
,
LS → ¬LB
, ...
Frage (Aufgabe):
Realität: Was für ein Landsmann ist jeder?
Modellbereich: 1. Finde ein Modell (erfüllende
Belegung) für Φ und
2. zeige, dass dieses das Einzige ist.
Antwort (Lösung, evtl. mit Begründung):
Modellbereich: Modell für Φ (wahre Aussagevariablen)
Realität: Zuordnung (Bijektion) Person - Land
Lösungs-Verfahren (im Modellbereich): WW-Tabellen, SAT-Solver, . . .
247
Modellierungsbeispiel Party
Kontext:
Realität (umgangssprachliche Beschreibung):
Anna geht zur Party, wenn Max oder Paul hingehen.
I Max geht zur Party, wenn Paul nicht hingeht.
I Anna geht nirgends ohne ihren Hund hin.
I
Modellbereich formale Darstellung als Formelmenge:
ΦP = {(m ∨ p) → a, ¬p → m, ¬(a ∧ ¬h)}
Frage (Aufgabe):
Realität: Wird Annas Hund auf der Party sein?
genauer: Wird der Hund in jeder Situation,
die die Kontext-Bedingungen erfüllt, auf
der Party sein?
Modellbereich: Gilt h in jeder Situation, die ΦP erfüllt?
kurz: Folgt h aus ΦP ? (Gilt ΦP |= h ?)
Antwort (Lösung, evtl. mit Begründung): ja / nein
Lösungs-Verfahren (im Modellbereich): ?
248
Weitere Modellierungsbeispiele
I
Lieblingsgetränke: Kontext siehe ÜA 6.5
Fragen:
I
I
I
I
Haben Anna und Paul (wenigstens) ein gemeinsames
Lieblingsgetränk?
Welche?
Welche Restaurants bieten dieses an?
Familienbeziehungen: Kontext
I
I
allgemein:
Zwei Personen sind Geschwister gdw. . . .
(Großeltern, verwandt,. . . )
Aufgaben-spezifisch:
Paul ist Vater von Anna und Tom. . . .
Fragen:
I
I
I
Sind Paul und Tina verwandt?
Wer sind Annas Großeltern, Nichten, . . . ?
Erreichbarkeit:
Kontext: existierende Straßen, Verbindungen
Fragen: (Wie) Ist B von A erreichbar?
249
Weitere praktische Folgerungsprobleme
Verifikation (Nachweis der Korrektheit) bzgl. gegebener Spezifikation
digitale Schaltungen
gegeben: Schaltung (Kontext): Ausgabe-Verhalten
als boolesche Funktion, Formel ϕ
Spezifikation (logische Formel ψ)
Frage: Erfüllt die Schaltung die Spezifikation?
(Folgt ψ aus {ϕ} ? Gilt {ϕ} |= ψ ?)
evtl. Gegenbeispiel (unkorrekter Zustand)
Programme
gegeben: Programm (Kontext): Ausgabe-Verhalten
als Formelmenge Φ,
Spezifikation (logische Formel ψ)
Frage: Erfüllt das Programm die Spezifikation?
(Folgt ψ aus Φ ? Gilt Φ |= ψ ?)
evtl. Gegenbeispiel (Eingabe mit falschem Verlauf)
250
Wiederholung: Modellmengen
Semantik (Wert) in der Interpretation I = (S, β) mit S = (S, J·KS ) von
X
X
X
Termen t ∈ Term(Σ, ): JtKI ∈ S
Atomen A ∈ Atom(Σ, ): JaKI ∈ {0, 1}
Formeln ϕ ∈ FOL(Σ, ): JϕKI ∈ {0, 1}
Spezialfall Aussagenlogik AL(P) ⊆ FOL(Σ, ∅) mit ΣR = {(p, 0) | p ∈ P}:
Interpretation I = (S, β) definiert (nur) Belegung der Relationssymbole
(Aussagenvariablen) aus P mit Wahrheitswerten
Menge aller Modelle einer Formel ϕ ∈ FOL(Σ,
X):
Mod(ϕ) = {I | JϕKI = 1}
Menge aller Modelle einer Formelmenge Φ ⊆ FOL(Σ,
\
Mod(ϕ)
Mod(Φ) =
X):
ϕ∈Φ
Beispiel (Party):

 

 {a 7→ 1, h 7→ 1, m 7→ 1, p 7→ 0},   {a, h, m}, 
{a 7→ 1, h 7→ 1, m 7→ 0, p 7→ 1},
{a, h, p},
Mod(ΦP ) =
=

 

{a 7→ 1, h 7→ 1, m 7→ 1, p 7→ 1}
{a, h, m, p}
251
Semantisches Folgern
Für Φ ⊆ FOL(Σ,
X) und ψ ∈ FOL(Σ, X) gilt
Φ |= ψ
gdw.
Mod(Φ) ⊆ Mod(ψ)
(ψ ist semantische Folgerung aus Φ.)
Folgerungsrelation
|= ⊆ 2FOL(Σ,X) × FOL(Σ,
X)
Beispiele:
I
{p, p → q} |= q
I
{p, ¬(q ∧ p)} |= ¬q
I
{p} |= q → p
I
∅ |= p ∨ ¬p
I
{∀x(P(x) ∨ Q(x)), ¬P(y )} |= Q(y )
I
{∀x(P(x) ∨ Q(x)), ¬P(x)} |= Q(x)
Notation für Spezialfälle
für Φ = {ϕ} : ϕ |=
für Φ = ∅
:
|=
ψ
ψ
(statt
(statt
{ϕ}
∅
|=
|=
ψ)
ψ)
252
Semantisches Folgern – Beispiele
I
Party: ΦP |= h, weil ∀I ∈ Mod(ΦP ) : JhKI = 1
und damit Mod(ΦP ) =⊆ Mod({h}),
I
für Φ = {∀x(P(x) ∨ Q(x)), ¬P(x)} und ψ = Q(y ) gilt
Φ 6|= ψ, weil
für (S, β) mit S = ({a, b}, J·KS ) mit
JPKS = {b}, JQKS = {a} und β = {x 7→ a, y 7→ b} gilt:
(S, β) ∈ Mod(Φ), aber (S, β) 6∈ Mod(ψ)
I
{∀x (P(x) ∨ Q(x)), ∀x ¬P(x)} |= ∀x Q(x)
I
für Φ = {∀x (P(x) ∨ Q(x)), ∃x ¬P(x)} und ψ = (∀x Q(x))
gilt Φ 6|= ψ, weil
für S = ({a, b}, J·KS ) mit JPKS = {b} und JQKS = {a}
gilt S ∈ Mod(Φ), aber S 6∈ Mod(ψ)
I
Für jede Formel ϕ ∈ FOL(Σ,
I
Aus Φ |= ϕ → ψ und Φ |= ϕ folgt Φ |= ψ
X) gilt ∀xϕ |= ϕ
253
Modellierungsbeispiel: Taxi
Sachverhalt (Kontext) informal:
I
Wenn der Zug zu spät kommt und kein Taxi am Bahnhof
steht, ist Tom nicht pünktlich.
I
Der Zug kam zu spät und Tom ist pünktlich.
Modellierung als (aussagenlogische) Formelmenge:
ΦT = {(z ∧ ¬t) → ¬p, z ∧ p}
Frage:
Realität: Stand ein Taxi am Bahnhof ?
Modellbereich: Gilt ΦT |= t ?
Lösung:. . .
254
Eigenschaften der Folgerungsrelation
Für jede endliche Formelmenge Φ = {ϕ1 , . . . , ϕn } gilt
Φ |= ψ
genau dann, wenn
n
^
ϕi |= ψ
i=1
Für jede Formelmenge Φ ⊆ FOL(Σ,
gilt
(ψ ∈ Φ)
→
Φ |= ψ
gdw.
X) und jede Formel ψ ∈ FOL(Σ, X)
(Φ |= ψ)
Mod(Φ) = Mod(Φ ∪ {ψ})
gdw.
Mod(Φ ∪ {¬ψ}) = ∅
gdw.
Φ ∪ {¬ψ} unerfüllbar
gdw.
Φ ∪ {¬ψ} |= f
Für alle Formeln ϕ, ψ ∈ FOL(Σ,
X) gilt
|= ψ
gdw.
ψ allgemeingültig
ϕ≡ψ
gdw.
(ϕ |= ψ) ∧ (ψ |= ϕ)
ϕ |= ψ
gdw.
|= (ϕ → ψ)
ϕ≡ψ
gdw.
|= (ϕ ↔ ψ)
255
Modellierungsbeispiel: Winterbekleidung
I
Wenn es kalt ist, trägt Paul immer eine Mütze, einen Schal oder
Handschuhe.
I
Ohne Handschuhe oder Schal trägt er keine Mütze.
I
Mütze und Handschuhe trägt er nie zusammen.
I
Handschuhe und Schal trägt er immer zugleich.
Modellierung als (aussagenlogische) Formelmenge
Φ = {m ∨ s ∨ h, ¬(h ∨ s) → ¬m, ¬(m ∧ h), h ↔ s}
Welche der Aussagen sind semantische Folgerungen daraus:
I
Bei Kälte trägt er immer seinen Schal.
I
Bei Kälte trägt er immer Handschuhe oder Mütze.
I
Er trägt nie Handschuhe.
ψ1 = s
ψ2 = h ∨ m
ψ3 = ¬h
256
Was bisher geschah
Modellierung von
Daten durch Mengen (Individuenbereiche),
häufig zusammengesetzt durch Mengenoperationen,
Zusammenhängen zwischen Individuen durch
Relationen (auch Eigenschaften)
Funktionen (Operationen)
gemeinsam in algebraischen Strukturen
Modellierung von
Bedingungen (Anforderungen) an Individuen und Beziehungen
durch Formel(mengen)n in (klassischen) Logiken:
FOL(Σ, ) Prädikatenlogik mit
AL(P) Aussagenlogik als Spezialfall
(Fragment)
X
Charakterisierung algebraischer Strukturen durch Formeln
257
Beispiel: Formale Beschreibung und Folgern
Beispiel: Jeder (ungerichtete, schlingenfreie) Graph mit (wenigstens)
einer Kante hat (wenigstens) zwei Knoten.
Kontext
informal: (ungerichteter, schlingenfreier) Graph (V , E )
(Menge V mit zweistelliger Kantenrelation E )
mit (wenigstens) einer Kante
Signatur Σ = (ΣF , ΣR ) mit ΣF = ∅ und ΣR = {(E , 2), (=, 2)}
Axiome (Formelmenge, die genau alle Graphen mit wenigstens
einer Kante erfüllen):
Φ = {∀x∀y (E (x, y ) → E (y , x)∀x¬E (x, x), ∃x∃yE (x, y )}
Behauptung
informal : Der Graph hat (wenigstens) zwei Knoten.
Formel ψ = ∃x∃y ¬(x = y )
?
Frage: Φ |= ψ (Folgt ψ aus Φ ?)
(wird oft gezeigt durch die äquivalente Aussage: Φ ∪ {¬ψ} unerfüllbar)
keine allgemeine (maschinelle) Lösung in FOL möglich
Idee: syntaktisches Schließen in Kalkülen (in späteren LV)
258
Kombination von Strukturen
einfache (einsortige) Datentypen, z.B. int, bool, float, ...
zusammengesetzte Datentypen
Konstruktion durch Operationen auf den Trägermengen:
Vereinigung ∪ von Datentypen
Beispiel Skat: W = Z ∪ B
Produkt (kartesisches) × von Datentypen:
Beispiel Skat: K = F × W
mehrfaches Produkt desselben Typs, z.B.
Tupel
Beispiel Skat:
Blatt in der Hand nach dem Geben ∈ K 10
Rekursion : rekursive Datentypen, z.B. Listen, Bäume
Abbildung zwischen Datentypen (Funktionen)
z.B. Multimengen, Maps
259
Relationen als mehrsortige Funktionen (Beispiel)
Idee:
Ersetzen der Relation R ⊆ S 2 durch ihre
charakteristische Funktion χR : S 2 → {0, 1}
(und entsprechende Änderung der Signatur)
Vorgehen:
1. Einführung der Sorten
S (für Trägermenge) und
B (für Wahrheitswerte {0, 1})
2. Ersetzung des Relationssymbols (R, 2)
durch (zweisortiges) Funktionssymbol (f : S 2 → B) (repräsentiert
χR )
Ersetzung der Signatur Σ = (ΣF , ΣR ) mit ΣF = ∅, ΣR = {(R, 2)}
durch Σ0 = (Σ0F , Σ0R ) mit mit Σ0F = {f : S 2 → B}, Σ0R = ∅
3. Jede Σ-Struktur A = (A, J·KA ) entspricht einer
Σ0 -Struktur C = (A, J·KC ) mit derselben Trägermenge A und
Jf KC = χJRKA
dasselbe ausführlicher:
1 falls(x, y ) ∈ JRKA
2
∀(x, y ) ∈ (C ) : Jf KC (x, y ) =
0 sonst
260
Relationen als mehrsortige Funktionen (allgemein)
1. Erweiterung der Menge
S
S der Sorten zu S0 = S ∪ {B}
2. Übersetzung -sortiger Signaturen Σ = (ΣF , ΣR ) mit ΣR 6= ∅
in 0 -sortige Signaturen Σ0 = (Σ0F , ∅) ohne Relationssymbole
S
durch Ersetzung jedes
Relationssymbols (P ⊆ S1 × S2 × · · · × Sn ) ∈ ΣR
durch ein Funktionssymbol (fP : S1 × S2 × · · · × Sn → B) ∈ Σ0F
3. entsprechende Übersetzung jeder
( -sortigen) Σ-Struktur A = (A, J·KA ) in eine
( 0 -sortige) Σ0 -Struktur C = (A, J·KC ) mit JfR KC = χJRKA , d.h.
1 falls(x1 , . . . , xn ) ∈ JRKA
n
∀(x1 , . . . , xn ) ∈
: JfR KC (x, y ) =
0 sonst
S
S
S
Es genügt also, mehrsortige Strukturen ohne Relationen (Algebren) zu
betrachten.
261
Wiederholung: Abstrakte und konkrete Datentypen
abstrakter Datentyp (ADT, Spezifikation, Interface) aus
Signatur definiert Syntax: Symbole für
Sorten (Typen) von Individuen
Funktionen, Relationen je mit Typdeklaration
Axiome (Anforderungen) beschreiben Semantik:
Eigenschaften von und Zusammenhänge zwischen
Individuen, Funktionen und Relationen
in (klassischen) Logiken:
Prädikatenlogik FOL(Σ, ) mit Spezialfall Aussagenlogik
AL(P)
X
konkreter Datentyp (algebraische Struktur) definiert
Trägermengen zur Realisierung der Sorten des ADT,
Funktionen, Relationen passenden Typs zur Realisierung der Funktionsund Relationssymbole des ADT
realisiert ADT gdw. erfüllt alle Axiome des ADT
ADT = Menge aller konkreten Datentypen (Implementierungen), die ihn
realisieren, d.h. seine Spezifikation (Signatur, Axiome) erfüllen
262
Modellierungsbeispiel ID-Nummern
Aufgabe:
Verwaltung einer Menge ganzer Zahlen (z.B. ID-Nummern), so dass
festgestellt werden kann, ob eine Zahl darin enthalten ist und Zahlen zur
Menge hinzugefügt und daraus entfernt werden können.
Sorten (Wertebereiche): , 2N , {t, f } (Wahrheitswerte)
Signatur: Funktionen zum Finden, Hinzufügen, Entfernen, . . .


contains :
2N × → {t, f } 





add, remove : 2N × → 2N
ΣF =
isempty :
2N → {t, f } 





∅:
2N
N
N
N
Axiome (definieren die Semantik der Operationen):








∀n ∈
∀s ∈ 2N ∀n ∈
Φ=
∀s ∈ 2N ∀n ∈




∀s ∈ 2N ∀m, n ∈



∀s ∈ 2N ∀n ∈
N
N
N
N
N
:
:
:
:
:
isempty((∅) = t,
contains(∅, n) = f ,
contains(add(s, n), n) = t,
contains(remove(s, n), n) = f ,
add(add(s, n), m) = add(add(s, m), n),
add(add(s, n), n) = add(s, n), . . .















263
Konkrete Datentypen (Implementierung) – Beispiele
verschiedene Möglichkeiten zur Repräsentation der Sorten:
I
Wahrheitswerte z.B. als {0, 1} oder {−1, 1}
I
Zahlen in verschiedenen Zahlendarstellungen, z.B.
dezimal, binär, zu anderer Basis, Maschinenzahlen (eingeschränkter
Bereich)
I
Mengen als (sortierte) Folgen (mit / ohne Wiederholungen) von
Zahlen
I
Mengen als Zuordnung Zahl → {0, 1} mit 1, falls Zahl in der
Menge, 0 sonst
(charakteristische Funktion der Menge)
I
Mengen als {0, 1}-Folgen variabler Länge
(z.B. nur relevanter Teil der charakteristischen Funktion)
abstrakter Datentyp: Signatur Σ und Axiome Φ,
exakte Formulierung der Aufgabe, Spezifikation
konkreter Datentyp: Σ-Struktur, welche Φ erfüllt (Modell für Φ)
Umsetzung, Implementierung
264
Modellierungsbeispiel Navigation
ADT für (Blickrichtung in) Himmelsrichtungen Norden, Osten,
Süden, Westen
mit Operationen für Rechts- und Linksabbiegen und Umlenken
ADT Himmelsrichtungen (Spezifikation):
Sorten: eine Sorte (Himmelsrichtung) HR = {N, O, S, W}
Signatur:
N, O, S, W :
HR
rechts, links, um : HR → HR
Axiome:

rechts(N) = O, links(N) = W, . . .




um(N)
= S, um(O) = W, . . .

∀h ∈ HR : rechts(links(h)) = h,


∀h ∈ HR : links(rechts(h)) = h,



∀h ∈ HR : rechts(rechts(h)) = um(h), . . .











265
Konkreter Datentyp (Beispiele)
Implementierung des ADT Himmelsrichtungen, z.B.:
cos ϕ − sin ϕ
I als Punkte im 2 mit Drehmatrizen
sin ϕ cos ϕ
0 1
0 −1
ϕ = −π/2 : R =
ϕ = π/2 : L =
−1 0
1 0
R
A = ({(0, 1), (1, 0), (0, −1), (−1, 0)}, J·KA ) mit
JNKA = (0, 1), JOKA = (1, 0), JSKA = (0, −1), JWKA = (−1, 0),
x
x
∀(x, y ) : JrechtsKA (x, y ) = R
∧ JlinksKA (x, y ) = L
y
y
∀(x, y ) : JumKA (x, y ) = (−x, −y )
Ist diese Implementierung korrekt (d.h. Modell aller Axiome)?
I
B = ({0, 1, 2, 3}, J·KB ) mit
JNKB = 0, JOKB = 1, JSKB = 2, JWKB = 3,
∀x : JrechtsKB (x) = (x + 1) mod 4
∀x : JlinksKB (x) = (x − 1) mod 4,
∀x : JumKB (x) = (x + 2) mod 4
Ist diese Implementierung korrekt?
266
Modellierungsbeispiel Papierstapel
I
Individuenmengen:
I
I
I
I
Blätter (oben einseitig bedruckt)
Stapel (von Blättern)
Eigenschaft: (Stapel) ist leer“
”
Funktionen:
top : Stapel → Blatt
oberes Blatt auf dem Stapel
pop : Stapel → Stapel
oberes Blatt vom Stapel entfernen
push : Blatt × Stapel → Stapel
Blatt oben auf den Stapel legen
267
Eigenschaften der Stapel-Operationen
Operationen:
top : Stapel → Blatt
pop : Stapel → Stapel
push : Blatt × Stapel → Stapel
einige Zusammenhänge zwischen den Stapel-Operationen:
für alle Blätter (Stapelelemente) e und alle Stapel s gilt:
I Wird zuerst ein Blatt e auf einen Stapel s gelegt und dann
von diesem Stapel das obere Blatt weggenommen, enthält
man den ursprünglichen Stapel s
pop(push(e, s)) = s
I top(push(e, s)) = e
I push(top(s), pop(s)) = s
Beobachtung:
Dieselben Eigenschaften gelten auch für Bücher-, Teller- und
andere Stapel,
sind also unabhängig vom Typ der Stapelelemente
268
ADT Stack (Stapel, Keller)
Abstraktion von der Realisierung
(Trägermengen, Implementierung der Operationen)
Sorten E : Elementtyp,
S: Stapel von Elementen vom Typ E ,
B = {t, f } (Wahrheitswerte)
Signatur Σ: top
pop
push
new
isEmpty
:
:
:
:
:
S
S
E ×S
S
→E
→S
→S
S
→B
Axiome , z.B.
∀s
∀s
∀s
∀s
∈S
∈S
∈S
∈S
∀e
∀e
∀e
∀e
∈E
∈E
∈E
∈E
:
:
:
:
isEmpty(new) =
isEmpty(push(e, s)) =
top(push(e, s)) =
pop(push(e, s)) =
push(top(s), pop(s)) =
t
f
e
s
s
konkrete Datentypen (Implementierungen) dazu in
LV Algorithmen und Datenstrukturen
269
Spezifikation und Verifikation
Jeder ADT spezifiziert eine Menge konkreter Datentypen:
genau alle Implementierungen (Σ-Strukturen), die alle Axiome des
ADT erfüllen
Menge aller korrekten Implementierungen des ADT
= Modellmenge der Menge Φ der Axiome des ADT
Verifikation:
formaler Nachweis der Korrektheit von Implementierungen bzgl.
der Spezifikation (ADT)
oft durch Ableitungen in geeigneten Kalkülen
maschinelle Unterstützung durch Werkzeuge wie
z.B. Coq, pvs, Isabelle, KIV, KeY
(mehr dazu in LV im Master-Studium)
270
Maschinelle Lösung von Aufgaben (Wiederholung)
Modellierung Übertragung aller relevanten Informationen von der
Realität in einen Modellbereich (geeignet gewählt) durch
Analyse und Formalisierung der Eigenschaften von
Aufgabenbereich (Kontext): (strukturierte) Daten,
Eigenschaften, Zusammenhänge
Eingabedaten: Typ, mögliche Werte, Einschränkungen
Ausgabedaten (Lösung): Typ und Anforderungen:
Einschränkungen
Zusammenhänge mit den Eingabedaten
Formalisierung in ADT
Lösung der Aufgabe im Modellbereich mit
vorhandenen Methoden, z.B.
SAT-Solver, SW-Bibliotheken
speziellen (eigens entwickelte) Algorithmen
(Realisierung in konkreten Datentypen, Implementierung)
Übertragung der Lösung aus Modellbereich in Realität
271
Wiederholung: ADT Stack (Stapel, Keller)
Sorten E : Elementtyp,
S: Stapel von Elementen vom Typ E ,
B = {t, f } (Wahrheitswerte)
Signatur Σ: top
pop
push
new
isEmpty
:
:
:
:
:
S
S
E ×S
S
→E
→S
→S
S
→B
Axiome , z.B.
∀s
∀s
∀s
∀s
∈S
∈S
∈S
∈S
∀e
∀e
∀e
∀e
∈E
∈E
∈E
∈E
:
:
:
:
isEmpty(new) =
isEmpty(push(e, s)) =
top(push(e, s)) =
pop(push(e, s)) =
push(top(s), pop(s)) =
t
f
e
s
s
Aus den Axiomen lassen sich durch syntaktische Umformungen (ohne
Wissen über die Realisierung, konkreten Datentyp) weitere Eigenschaften
ableiten, welche in jeder Realisierung gelten, z.B.
top(pop(push(a, push(b, s)))) = top(push(b, new))
272
Algorithmen
(Wiederholung aus LV zu Programmierung)
Algorithmus: in Schritte geordnete Arbeitsvorschrift
I
in einer formalen Beschreibungssprache
I
endlich beschriebene
I
schrittweise ausgeführte
Arbeitsvorschrift
zur Lösung einer (Berechnungs-)Aufgabe,
d.h. zur Transformation einer Eingabe in eine Ausgabe
zur Ausführung eines Algorithmus ist nötig:
Akteur / Maschine, welche die Beschreibungssprache interpretieren
kann
273
Beispiel: Summe der ersten n natürlichen Zahlen
informale Aufgabenstellung:
Addiere alle natürlichen Zahlen von 1 bis n.
Spezifikation (formale Aufgabenbeschreibung, Anforderungen):
N
P
Nachbedingung: Ausgabe s ∈ N mit s = ni=1 i
Vorbedingung: Eingabe n ∈
verschiedene Algorithmen, welche diese Spezifikation erfüllen:
Algorithmus : Summe1
Eingabe : n ∈
Ausgabe : s ∈
N
N
s←0
für jedes i ← 1, . . . , n :
s ←s +i
Algorithmus : Summe2
Eingabe : n ∈
Ausgabe : s ∈
s←
N
N
n(n+1)
2
274
Beispiel: größter gemeinsamer Teiler
Aufgabe: Zu zwei natürlichen Zahlen soll ihr größter gemeinsamer
Teiler (ggT) berechnet werden.
Kontextwissen (Definitionen):
N:t ·k =x
Menge aller gemeinsamen Teiler von x ∈ N und y ∈ N:
T (x, y ) = {t ∈ N | (t|x) ∧ (t|y )}
I größter gemeinsamer Teiler von x ∈ N und y ∈ N
I
t ist Teiler von x:
t | x gdw. ∃k ∈
I
ggT(x, y ) = t
gdw.
((t ∈ T (x, y )) ∧ (∀s ∈ T (x, y )(s|t)))
Spezifikation (Anforderungen):
N, y ∈ N
Nachbedingungen (an Ausgaben): z ∈ N mit z = ggT(x, y )
Vorbedingungen (an Eingaben): x ∈
275
Beispiel: Algorithmus für ggT
(bekannte) Eigenschaften des ggT:
N:
N22 :
N :
∀x ∈
∀(x, y ) ∈
∀(x, y ) ∈
((x > y ) →
ggT(x, x) = x
ggT(x, y ) = ggT(y , x)
(ggT(x − y , y ) = ggT(y , x)))
führen zur Idee des ( einfachen ) Euklidischen Algorithmus:
Algorithmus : Größter gemeinsamer Teiler
N
Eingabe : x ∈ , y ∈
Ausgabe : ggT(x, x)
N
solange x 6= y :
wenn x > y dann
x ←x −y
sonst
y ←y −x
Rückgabe x
276
Struktur von Algorithmen
Konstruktion komplexer Berechnungsvorschriften aus
Grundbausteinen: elementare Algorithmen (Schritte), z.B.
I Zuweisung,
I Aufruf eines Unterprogrammes,
I Ein- oder Ausgabe (Interaktion)
Verknüpfungen von Algorithmen durch
sequentielle Ausführung (nacheinander)
parallelle Ausführung (gleichzeitig, benötigt
mehrere Ausführende, z.B. Prozessoren)
bedingte Ausführung, Alternative (Verzweigung)
wiederholte Ausführung (Schleifen)
rekursive Ausführung
Blöcke , Unterprogramme
(Notation in Struktogramm, Pseudocode, . . . )
277
Algorithmen-Entwicklung
1. Analyse der informalen Aufgabenstellung
2. (formale) Spezifikation:
Was (welche Berechnungsaufgabe) soll gelöst werden?
exakte (formale) Beschreibung der Aufgabe:
I Anforderungen an Eingaben des Algorithmus
I Anforderungen an Ausgaben des Algorithmus
I Zusammenhang zwischen Ein- und Ausgabe
3. Entwurf des Algorithmus:
Wie soll es gelöst werden?
I formale Darstellung der Arbeitsschritte
I zu jedem Schritt:
I
I
I
Was wird getan? (Aktionen, Anweisungen)
Womit wird es getan? (Daten)
Wie geht es weiter? (nächster Schritt)
4. Verifikation:
Nachweis der Korrektheit des Algorithmenentwurfes bzgl. der
Spezifikation
5. Realisierung (Implementierung)
278
Algorithmen – Analyse der Aufgabe
Was soll gelöst werden?
I
ist zu Beginn des Software-Entwicklungsprozesses oft noch
nicht klar,
I
zunächst grober Ansatz,
I
wird schrittweise verfeinert,
formale Darstellung fördert
I
I
I
I
I
Problemverständnis,
Abstraktion (Auswahl relevanter Eigenschaften),
Dokumentation während des Entwicklungsprozesses,
Ideen für Lösungsansätze
279
Algorithmen – Spezifikation
Ausgangspunkt:
Ergebnis:
umgangssprachlich formulierte und oft
ungenaue Aufgabenbeschreibung
exakte und vollständige Definition des
Problemes
Spezifikation einer Berechnungaufgabe:
korrekte formale Beschreibung des Zusammenhanges zwischen
Eingaben und Ausgaben
Spezifikation einer Berechnungsaufgabe enthält
Vorbedingung: Forderung an die Eingaben
Nachbedingung: Forderung an die Ausgaben
280
Beispiel: Minimum-Suche
informale Aufgabenstellung:
Entwurf eines Verfahrens, welches in jeder Folge natürlicher Zahlen das
Minimum findet
formale Spezifikation:
Vorbedingung: Eingabe (x1 , x2 , . . . , xn ) ∈
Nachbedingung: Ausgabe m ∈
I
I
N mit
N∗
∀i ∈ {1, . . . , n} : m ≤ xi und
∃i ∈ {1, . . . , n} : m = xi
aus Spezifikation lässt sich folgender Algorithmus ablesen“:
”
Algorithmus : Minimum
Eingabe : x = (x1 , . . . , xn ) ∈
Ausgabe : m ∈
N
N∗
m ← x1
für jedes i ← 2, . . . , n :
wenn xi < m dann
m ← xi
281
Beispiel: Sortieren
informale Aufgabenstellung:
Gesucht ist ein Verfahren, welches jede (endliche) Folge sortiert
Kontext (wird mitunter erst auf Nachfrage klar):
(z.B.
N)
I
Trägermenge (Elemente der Folge)
I
totale Ordnung auf der Trägermenge, bzgl. welcher sortiert werden
soll,
(z.B. ≤ auf )
I
auf- oder absteigend sortiert?
N
(z.B. aufsteigend)
formale Spezifikation dieser Sortier-Aufgabe:
N∗
Ausgabe (y1 , y2 , . . . , yn ) ∈ N∗ mit
Vorbedingung: Eingabe (x1 , x2 , . . . , xn ) ∈
Nachbedingung:
1. y1 ≤ y2 ≤ · · · ≤ yn+1 (aufsteigend geordnet) und
2. (y1 , y2 , . . . , yn ) ist Permutation (Umordnung) der
Eingabe (x1 , x2 , . . . , xn ),
d.h. ∃ Bijektion auf Indices der Folge
p : {1, . . . , n} → {1, . . . , n}, so dass
∀i ∈ {1, . . . , n} : xi = yp(i)
( verschiedene Algorithmen dazu in
LV Algorithmen und Datenstrukturen im 2. Semester)
282
Algorithmen – Korrektheit
“ . . . there are two ways of constructing a software design: One way
is to make it so simple that there are obviously no deficiencies and
the other way is to make it so complicated that there are no
obvious deficiencies. The first method is far more difficult.”
Tony Hoare, 1980 ACM Turing Award Lecture
Ist der entworfene Algorithmus korrekt?
Erfüllt der entworfene Algorithmus die Spezifikation?
Verifikation: Nachweis, dass Entwurf die Spezifikation erfüllt
sicherer (aber mitunter aufwendiger) als Testen
Es gibt Verfahren / Werkzeuge, die Verifikation automatisch
ausführen oder unterstützen.
( mehr dazu in LV Verifikation im Master-Studium )
283
Korrektheitsnachweise im Entwicklungsprozess
Anforderungen analysieren
Spezifikation (formale): Vor- und Nachbedingungen
(Voraussetzung für Korrektheitsnachweise und Tests)
Entwurf eines Algorithmus (Lösungsverfahrens)
zur Abbildung von Eingabe- auf Ausgabedaten
als Struktogramm, Pseudocode, . . .
Korrektheitsnachweis (Verifikation) des Entwurfs
(Algorithmus):
Nachweis, dass der Entwurf die Spezifikation
(Vorbedingungen, Nachbedingungen) erfüllt
Realisierung (Implementierung) des Algorithmus
Korrektheitsnachweis (Verifikation) der Implementierung:
formaler Nachweis, dass die Implementierung (Programm)
die Spezifikation für jede korrekte Eingabe (Vorbedingung)
erfüllt
Ausführung der Implementierung des Algorithmus (Programmes)
Tests: Überprüfung, ob die Implementierung (Programm) die
Spezifikation für einige spezielle Eingaben erfüllt
284
Was bisher geschah
Modellierung von
Daten durch Mengen
Beziehungen (Zusammenhänge und Eigenschaften) durch Relationen,
Graphen und Funktionen
Anforderungen durch Logiken
Modellierung als
algebraische Strukturen (konkrete Datentypen)
zur Modellierung zusammenhängender Datenbereiche
Trägermengen, Funktionen (, Relationen)
abstrakte Datentypen (ADT) zur Modellierung zusammenhängender
Datenbereiche und derer Eigenschaften:
Sorten, Signatur, Axiome
Algorithmen zur Modellierung von Anleitungen (Folgen von
Anweisungen) zu schrittweisen Abläufen:
Spezifikation (Anforderungen)
Aufbau aus Grundbausteinen und Verknüpfungen
(Baumstruktur)
285
Himmelsrichtungen (Wiederholung)
(Blickrichtung in) Himmelsrichtungen
Norden, Osten, Süden, Westen
mit Operationen für Rechts- und Linksabbiegen und Umlenken
Himmelsrichtungen (Zustände) {N, O, S, W }
Norden, Osten, Süden, Westen
Operationen (Aktionen) {R, L, U}
rechts drehen, links drehen, umdrehen
Ausführung einer Aktion bewirkt
Übergang (Relation) zwischen zwei Zuständen
d.h. jede Aktion a ∈ A definiert eine zweistellige Relation δ(a) auf
der Menge der Zustände,
im Beispiel:
δ(R) ⊆ {N, O, S, W }2
δ(R) = {(N, W ), (O, N), (S, O), (W , S)}
δ(L) ⊆ {N, O, S, W }
2
δ(L) = {(N, O), (O, S), (S, W ), (W , N)}
δ(U) ⊆ {N, O, S, W }
2
δ(U) = {(N, S), (O, W ), (S, N), (W , O)}
286
Übergänge zwischen Himmelsrichtungen
gemeinsame Darstellung dieser Relationen als Graph (V , E ) mit
Kantenfärbung
V = {N, O, S, W } Menge der Zustände
E = δ(R) ∪ δ(L) ∪ δ(U) Kantenrelation
A = {R, L, U} Menge der Aktionen als Kantenfarben
N
R
R
L
L
U
W
O
U
U
U
L
L
R
R
S
287
Zustandsübergangssysteme
Zustandsübergangssystem (Q, X , δ)
Q (endliche) Menge von Zuständen
X endliche Menge von Aktionen
δ : X → (Q × Q) Übergangsrelationen
δ ordnet jeder Aktion a ∈ X eine Relation
δ(a) ⊆ Q × Q zu
(Graph mit Kantenfärbung, Farben: Aktionen)
Spezifikation (formale Beschreibung von Anforderungen) von
Zustandsübergangssystemen
Darstellung der Eigenschaften von
I
Zuständen
I
(zulässigen) Aktionen
I
Wirkung der Aktionen (Zustandsübergänge)
als (prädikatenlogische) Formelmengen.
288
Modellierung mit Zustandsübergangssystemen
Anwendungsbeispiele:
I
reale Automaten,
z.B. Getränke-, Fahrschein, Bankautomaten
I
Verkehrssysteme,
z.B. Stellwerk, Ampelschaltungen
I
Steuerung von Industrieanlagen
I
Bedien-Oberflächen,
z.B. Folgen von Bedienoperationen
I
Digitaltechnik, Schaltwerke
I
Zeit- und Ablaufplanung
I
Geschäftsprozesse
I
Spiel-Abläufe
289
Beispiel: Münzschließfach
Aktionen: A aufschließen
Eigenschaften: g bezahlt
Z zuschließen
o offen
O Tür öffnen
b belegt
S Tür schließen
G Geld einwerfen
Anforderungen (Spezifikation), z.B.
Am Münzschließfach sollen nur Abläufe (Wort w ∈ {A, Z , O, S, G }∗ )
möglich sein, die folgende Anforderungen (Eigenschaften) erfüllen:
I
Offene Fächer können nicht zugeschlossen werden.
∀x(o(x) → ¬∃yZ (x, y ))
I
In belegte Fächer kann kein Geld eingeworfen werden.
∀x(b(x) → ¬∃yG (x, y ))
I
Kein nicht bezahltes Fach kann zugeschlossen werden.
¬∃x(¬g (x) ∧ ∃yZ (x, y ))
Dazu werden auch häufig nichtklassische Logiken verwendet,
z.B. Temporallogiken: (entscheidbare) FOL-Fragmente
(mehr dazu in späteren LV zu Verifikation)
290
Beispiel Münzschließfach
Entwurf des Systems:
{b}
∅
S
A
O
{o}
G
S
{g , o}
Z
{g }
O
Beispiele für mögliche Abläufe (während eines Tages)
w ∈ {A, Z , O, S, G }∗ :
OGSZAGSZA: zwei vollständige Belegungszyklen
OSOSOS: Tür wiederholt öffnen und schließen
I ε
I OSOGSOSZASOSOGSZASO
I
I
Jeder mögliche Ablauf erfüllt die Spezifikation (Anforderungen):
∀x(o(x) → ¬∃yZ (x, y )), ∀x(b(x) → ¬∃yG (x, y )),
Φ=
¬∃x(¬g (x) ∧ ∃yZ (x, y ))
Menge aller möglichen Abläufe ist reguläre Sprache
(Alphabet: Aktionen)
mehr dazu in den LV zur Theoretischen Informatik
291
Endliche Automaten – Definition
NFA (nondeterministic finite automaton) A = (X , Q, δ, I , F ) mit
X endliches Alphabet,
Q endliche Menge von Zuständen,
δ Übergangsrelationen δ : X → (Q × Q),
I ⊆ Q Startzustände,
F ⊆ Q akzeptierende Zustände.
Beispiel:
A = (X , Q, δ, {0, 3}, {2, 3, 4}) mit
X
=
{a, b, c}
Q
=
{0, 1, 2, 3, 4}
δ(a) =
{(0, 0), (0, 1), (1, 3)}
δ(b)
=
{(0, 0), (1, 2)}
δ(c)
=
{(0, 3), (3, 3), (4, 1)}
a,b
a
0
c
3
b
1
a
2
c
c
4
292
Anwendung endlicher Automaten
Endliche Automaten können z.B.
I
reguläre Sprachen akzeptieren,
d.h. bei Eingabe mit ja / nein antworten
Anwendungen z.B.
I
Zulässigkeit von Email-Adressen
I
Suchen von (auch mehreren) Zeichenketten in Texten
I
Programmtransformation (z.B. im Compiler):
Syntax-Überprüfungen: Bezeichner, Zahl-Darstellungen,
korrekte Schlüsselwörter
Endliche Automaten können z.B. nicht
I
Werte ausgeben
I
Zeichenvorkommen zählen
I
beliebig lange Zeichenketten speichern
I
korrekte Klammerung erkennen
I
rechnen, z.B. addieren
293
Beispiel Kaffee-Automat
(einfacher) Kaffee-Automat:
I
liefert nach Einwurf von 2 e und Bedienung der Kaffee-Taste einen
Becher Kaffee
I
erlaubt Einwurf von Münzen zu 1 e und 2 e
I
Rückgabe der gezahlten Münzen nach Bedienung der Rückgabetaste
formale Beschreibung als Mealy-Automat (Ausgabe bei Übergängen):
Zustände Q = {0, 1, 2} (Anzahl der bisher gezahlten e)
Aktionen A = {1E, 2E, KT, RT}
Ausgaben O = {K , 1 e, 2 e}
2E
1E
0
1
1E
2
RT / 1 e
KT / K , RT / 2 e
294
Beispiel Schieberegister
Pseudozufallszahlen (als Bitfolgen, z.B. für Verschlüsselung) lassen sich
durch Schieberegister erzeugen
Beispiel: 3 Register mit Inhalten r1 , r2 , r3 , in jedem Schritt:
I
Ausgabe r3 und
I
Übergang r1 r2 r3 → (r1 XOR r3 )r1 r2
formale Beschreibung als Moore-Automat (Ausgabe bei Zuständen):
Zustände Q = {001, 010, 011, 100, 101, 110, 111}
Aktionen A = {w } (nur eine Aktion, wird nicht markiert)
Ausgaben O = {0, 1}
100/0
110/0
111/1
011/1
101/1
010/0
001/1
erzeugte (pseudo-zufällige) Ausgabefolge: 0011101 . . .
295
Palindrome
Palindrom: Wort w mit w = w R
Beispiele: anna, neben, ε, jedes Wort der Länge 1
Die Menge aller Palindrome über dem Alphabet A ist
Lpal = {w ∈ A∗ | w = w R }
= {w ◦ w R | w ∈ A∗ } ∪ {w ◦ a ◦ w R | w ∈ A∗ ∧ a ∈ A}
|
{z
} |
{z
}
Lpal0
Lpal1
Beispiele für Wörter aus Lpal :
I
otto = ot ◦ to = ot ◦ (ot)R für w = ot ∈ A∗ = {a, . . . , z}∗
I
reliefpfeiler = relief ◦ p ◦ feiler = relief ◦ p ◦ (relief )R
für w = relief ∈ A∗ = {a, . . . , z}∗
I
1 = ε ◦ 1 ◦ ε = ε ◦ 1 ◦ εR
I
ε=ε◦ε=ε◦
für A = {0, 1}
εR
296
Kellerautomaten
Es gibt keinen endliche Automaten (NFA), welcher genau alle
Palindrome akzeptiert.
Ziel: (möglichst einfache) Erweiterung endlicher Automaten, womit
die Sprache aller Palindrome akzeptiert werden kann
benötigt Speicher für Folge von Symbolen, um auf diese in
umgekehrter Reihenfolge zugreifen zu können
passender ADT für den internen Speicher mit dieser Eigenschaft:
Stack (Keller) mit seinen Operationen
push Hinzufügen eines Symbols oben“
”
top Lesen des oberen “ Symbols
”
pop Entfernen des oberen “ Symbols
”
297
Kellerautomaten – Definition
Erweiterung endlicher Automaten um einen Stack (Keller) als
internem Speicher:
nichtdeterministischer Kellerautomat (PDA)
A = (X , Q, Γ, δ, q0 , F , ⊥) mit
X Alphabet (endlich, nichtleer)
Q Menge von Zuständen (endlich, nichtleer)
Γ Kelleralphabet (endlich, nichtleer)
q0 ∈ Q Startzustand
F ⊆ Q Menge der akzeptierenden Zustände
δ : (X ∪ {ε}) → (Q × Q × Γ × Γ∗ )
Übergangsrelationen mit Änderung des Kellerinhaltes
⊥ ∈ Γ Kellerboden-Symbol
Operationen auf dem Stack sind Nebenwirkungen der
Zustandsübergänge
298
PDA – Beispiel
PDA A = ({a, b, c}, {q0 , p, q}, {⊥, A, B}, δ, q0 , {q}, ⊥) mit
δ(a) = {(q0 , q0 , K , AK ), (p, p, A, ε)} mit K ∈ {⊥, A, B}
δ(b) = {(q0 , q0 , K , BK ), (p, p, B, ε)} mit K ∈ {⊥, A, B}
δ(c) = {(q0 , p, K , K )} mit K ∈ {⊥, A, B}
δ(ε) = {(p, q, ⊥, ⊥)}
a:
b:
K | AK
K | BK
q0
a:
b:
c :K |K
A|ε
B|ε
p
ε:⊥|⊥
q
mit K ∈ {⊥, A, B}
A akzeptiert genau
die Menge (Sprache) aller Palindrome über {a, b}.
299
Kellerautomaten – Anwendungen
Kellerautomaten können z.B.
I neben regulären weitere Sprachen akzeptieren,
d.h. bei Eingabe mit ja / nein antworten
I Zeichenvorkommen zählen
I beliebig lange Zeichenketten speichern
I korrekte Klammerung erkennen
Anwendungen z.B.
I Programmtransformation (z.B. im Compiler):
Erkennen korrekter Schachtelung, Klammerung
in Programmstrukturen, arithmetischen, logischen, regulären,
. . . Ausdrücken
I Parsen und Auswerten von Baumstrukturen, z.B.
arithmetischer, logischer, regulärer, . . . Ausdrücke
Kellerautomaten können z.B. nicht
I rechnen, z.B. addieren
I z.B. die Sprache {ww | w ∈ {a, b}∗ } akzeptieren
300
Turing-Maschinen
Idee: interner Speicher mit weiteren Zugriffsmöglichkeiten
Speicher (Arbeitsband):
I
beidseitig unendliches Band aus Zellen,
I
I
jede Zelle enthält genau ein Zeichen aus Alphabet oder das
leere-Zelle-Symbol 2,
I
(ist häufig zugleich auch Ein- und Ausgabeband)
nur endlicher zusammenhängender Bandabschnitt enthält
Zeichen aus dem Alphabet
Zugriff auf den Speicher durch Lese-/Schreibkopf
I
Lesen und Schreiben des Symbols der Zelle, auf der sich der
Kopf befindet
I
Bewegung auf rechte oder linke Nachbarzelle
Änderungen des Bandinhaltes und Bewegungen des
Lese-/Schreibkopfes sind Nebenwirkungen der Zustandsübergänge
301
Turing-Maschine – Definition
Turing-Maschine (TM) M = (X , Q, Γ, δ, q0 , F , 2) mit
X endliches Eingabealphabet
Q endliche Menge von Zuständen
Γ ⊃ X endliches Arbeitsalphabet
δ ⊆ (Γ × Q × Γ × Q × {L, R, N})
Übergangsrelation
q0 Startzustand
F akzeptierende Zustände
2 ∈ Γ \ X Leere-Zelle-Symbol
Turing-Maschinen können
I Sprachen akzeptieren
I Eingaben in Ausgaben transformieren
(auf dem Arbeitsband)
I Funktionen berechnen
I Algorithmen ausführen
302
Turing-Maschine – Beispiel
M = ({0, 1}, {q0 , q1 , q2 , q3 , f }, {0, 1, 2}, δ, q0 , {f }, 2) mit
δ
= {(0, q0 , 0, q0 , R), (1, q0 , 1, q0 , R), (2, q0 , 2, q1 , L)}
∪{(0, q1 , 1, q3 , L), (1, q1 , 0, q2 , L), (2, q1 , 1, f , N)}
∪{(0, q2 , 1, q3 , L), (1, q2 , 0, q2 , L), (2, q2 , 1, f , R)}
∪{(0, q3 , 0, q3 , L), (1, q3 , 1, q3 , L), (2, q3 , 2, f , R)}
21N
00R, 11R
q0
10L
22L
q1
10L
01L
q2
01L
q3
21R
f
22R
11L, 00L
berechnet die Funktion fM (x) = x + 1 in Binärcodierung
(ohne führende 0)
303
Lineares Solitaire (Wiederholung)
informale Beschreibung des Spieles:
Spielbeginn: n Spielsteine, je einer auf n benachbarten Spielfeldern
in einer Reihe.
Spielzüge:
L Springe mit einem Stein über den linken
Nachbarn auf das dahinterliegende freie
Feld und entferne den übersprungenen
Stein.
R Springe mit einem Stein über den
rechten Nachbarn auf das
dahinterliegende freie Feld und entferne
den übersprungenen Stein.
Spielende: Das Spiel endet, wenn kein Spielzug möglich ist.
304
Lineares Solitaire als Zustandsübergangssystem
Q = (21) ◦ v ◦ (12) ∈ {0, 1, 2}2 | v ∈ {0, 1}∗
(unendliche) Menge der Spielzustände
s = 21n 2 ∈ Q Startzustand
T : A → Q 2 Übergangsrelation zu jeder Aktion aus
der Menge A der korrekten Spielzüge (Aktionen):
nach rechts (R) bzw. links (L) springen,
jeweils mit Spezialfällen am Rand
T (R) =
u110v → u001v | u|u| 6= 2
∪ {2112 → 212}
∪
v 112 → v 0012 | v|v | 6= 2
∪ {2110v → 21v | v1 6= 2}
T (L)
=
{u011v → u100v | v1 6= 2}
∪ {2112 → 212}
∪ {211v → 2100v | v1 6= 2}
∪
v 0112 → v 12 | v|v | 6= 2
Das Spiel (Zustandsübergangssystem) lässt sich durch eine (geeignet
definierte) Turing-Maschine simulieren (jeder Spielzug durch mehrere
Übergänge der Turing-Maschine).
305
Berechnungen als Zustandsübergangssysteme
imperative Programmierung (von-Neumann-Modell):
Programm (imperativ): Folge von Anweisungen
Ausführungsmodell: abstrakte Maschine
Zustand der abstrakten Maschine besteht aus
I Belegung der Variablen im Speicher und
I nächste Anweisung (Programmzähler)
Startzustand für Programm p und Eingabe i:
I Variablen im Speicher mit Werten aus i belegt,
I erste Anweisung von p (Programmzähler)
Berechnung (Ausführung) des Programmes p:
sequentielle Ausführung der Anweisungen in p
Modellierung durch (endliche oder unendliche) Folge von
Zustandsübergängen (Rechenschritten)
Ausgabe: Speicherbelegung nach Ende der Berechnung
Semantik (Wirkung) eines imperativen Programmes p:
Abbildung (partielle Funktion) von Eingaben auf Ausgaben
und Nebenwirkungen (z.B. Änderung der Speicherbelegung)
306
Beispiel: Vertauschen mit Hilfsvariable
Aufgabe (informal): Vertauschen der Werte zweier Variablen
Spezifikation: Vorbedingung: Eingabe a = A ∈ , b = B ∈
Nachbedingung: Ausgabe a = B ∈ , b = A ∈
Zustände (A, B, C ) ∈ 3 (unendlich viele), wobei
A Wert der Variable (Speicherplatz) a (B, C analog)
Übergänge definiert durch Anweisungen des Programmes
N
N
N
N
N
Beispiel: Zustandsübergangssystem
der Berechnung für Eingabe a = 3, b = 5:
Programm z.B.
c
← a
a
← b
b
← c
(3, 5, ?)
(c ← a)
(3, 5, 3)
(a ← b)
(5, 5, 3)
(b ← c)
(5, 3, 3)
Verifikation des Programmes (Nachweis der Korrektheit bzgl.
Spezifikation) durch Ausführung mit symbolischen Werten (A, B, C )
manuell oder maschinell möglich
(mehr dazu in Master-LV zu SW-Verifikation)
307
Was bisher geschah
Modellierung von
Daten durch Mengen (einfach, zusammengesetzt)
Beziehungen (Zusammenhänge und Eigenschaften)
durch Relationen, Graphen und Funktionen
Abläufen durch Zustandsübergangssysteme
sequentiell (ein Akteur):
endliche Automaten mit Erweiterungen
Anleitungen durch Algorithmen
(strukturierte Anweisungsfolgen, Programme)
Anforderungen (Spezifikation) an Daten, Eigenschaften,
Zusammenhänge, Abläufe, Algorithmen, . . .
durch Logiken
308
Modellierung von Abläufen
bisher: Modellierung von Systemen mit
I
sequentielle Ausführung
I
durch einen Akteur
Modellierung des Verhaltens
I
nebenläufiger Systeme
I
mit mehreren Akteuren / Komponenten
I
abhängig von mehreren Ressourcen
I
reagiert auf Ereignisse
(Vorliegen von Ressourcen)
Beispiele (Tafel):
I
Kerze anzünden (mehrere Ressourcen)
I
PC – Drucker (lose Kopplung von Komponenten)
309
Petri-Netz: Definition
nebenläufiges Automaten-Modell
eingeführt von Carl Adam Petri, 1962
Stellen/Transitions-Petri-Netz N = (S, T , F ) mit
S Menge von Stellen
(Bedigungen, Ressourcen)
T Menge von Transitionen (Aktionen)
wobei S ∩ T = ∅
F ⊆ (S × T ) ∪ (T × S) Menge von Kanten (Relation)
gerichteter bipartiter Graph (S ∪ T , F )
Beispiel (Tafel): N = (S, T , F ) mit
S = {A, B, C , D, E , F , G }
T = {a, b, c, d}
F
=
(A, a), (a, B), (B, b), (b, C ), (a, D),
(E , c), (c, F ), (F , d), (d, G ), (D, d)
310
Petri-Netz: Zustände
jede Transition t ∈ T im Netz N = (S, T , F ) hat
Vorbereich (Eingänge): VBN (t) = {s ∈ S | (s, t) ∈ F }
Nachbereich (Ausgänge): NBN (t) = {s ∈ S | (t, s) ∈ F }
Zustand eines Petri-Netzes N = (S, T , F ):
Abbildung z : S →
(ordnet jeder Stelle s ∈ S eine Anzahl von Marken zu)
Marken repräsentieren z.B.
I erfüllte Bedingungen
I vorhandene Ressourcen
Transition t ∈ T ist im Zustand z aktiviert gdw.
N
∀s ∈ VBN (t) : z(s) ≥ 1
Beispiel (Tafel): N = (S, T , F ) mit
S = {1, 2, 3}
T = {a, b, c}
F = {(1, a), (1, b), (a, 1), (a, 2), (2, c), (c, 3), (b, 3), (3, c)}
und Anfangszustand z = {1 7→ 1, 2 7→ 0, 3 7→ 0}
311
Zustandsübergänge
Schalten einer aktivierten Transition t ∈ T
I
verbraucht je eine Marke an jeder Stelle im Vorbereich
I
erzeugt je eine Marke an jeder Stelle im Nachbereich
t
Jede Transition t definiert eine Relation → auf

 z2 (s) − 1
t
z2 (s) + 1
z1 → z2 gdw. ∀s ∈ S : z2 (s) =

z2 (s)
Zuständen mit
falls s ∈ VBN (t)
falls s ∈ NBN (t)
sonst
I
In jedem Schritt schaltet genau eine aktive Transition
I
Falls mehrere Aktionen aktiv sind, wird eine davon beliebig
ausgewählt (nichtdeterministisch)
Darstellung als Diagramm (Zustandsübergangssystem)
meist für gegebenen Anfangszustand z0
312
Petri-Netze: Konflikte
I
I
I
Schalten einer aktiven Transition verbraucht Marken
Transitionen mit gemeinsamen Stellen im Vorbereich
konkurrieren um Marken
ermöglicht Synchronisation nebenläufiger Abläufe
(Transitionsfolgen)
Transitionen t1 ∈ T und t2 ∈ T stehen zueinander im Konflikt
gdw.
VB(t1 ) ∩ VB(t2 ) 6= ∅
Beispiel (Tafel):
N = (S, T , F ) mit S = {1, 2, 3, 4, 5}, T = {a, b, c, d} und
(1, a), (a, 2), (2, b), (b, 1), (b, 3), (3, a),
F =
(5, c), (c, 4), (4, d), (d, 5), (d, 3), (3, c)
enthält Konflikt zwischen den Transitionen a und c,
weil Stelle 3 ∈ VBN (a) ∩ VBN (c)
313
Kapazitäten und -Schranken
Erweiterung:
I
jede Kante bekommt eine Gewicht (eine positive Zahl),
beschreibt die Anzahl der Marken, die bei jedem Schalten
durch die Kante fließen sollen.
Einschränkung:
I
Stellen können einer Kapazität bekommen (eine positive
Zahl), beschreibt die maximal erlaubte Anzahl von Marken in
dieser Stelle
falls alle Kapazitäten beschränkt ⇒ Zustandsmenge endlich (aber
evtl. groß) ⇒ vollständige Analyse des Zustandsübergangsgraphen
(prinzipiell) möglich
Spezialfall Bedingung/Ereignis-Netze:
I
jede Kante hat Gewicht 1
I
jede Kapazität ist 1
314
Beispiel Ampelschaltung
eine Ampel
I
schaltet zwischen rot und grün
Fußgänger-Überweg
I
Ampel (Paar) für Fahrzeuge
I
Ampel (Paar) für Fußgänger
I
nicht beide gleichzeitig grün
I
schaltet streng abwechselnd für Fahrzeuge und Fußgänger
grün
Fußgänger-Überweg mit Bedarfsschaltung
(Sensoren für Fußgänger und Fahrzeuge)
I
Ampel (Paar) für Fahrzeuge
I
Ampel (Paar) für Fußgänger
I
nicht beide gleichzeitig grün
I
schaltet bei Bedarf
315
Modellierung mit Petri-Netzen
I
sequentielle Ausführung
I
Auswahl (ein Zweig von mehreren)
I
nebenläufige Verzweigung (mehrere Zweige)
I
Synchronisation
I
Konflikte (gegenseitiger Ausschluss)
I
Verbindung von Erzeuger-Verbraucher-Kreisläufen
Anwendungen zur Modellierung z.B. von
I
realen oder abstrakten Automaten und Maschinen,
I
kommunizierenden Prozessen (z.B. in Rechnern),
I
Verhalten von Software- oder Hardware-Komponenten,
I
verteilten Systemen
I
Geschäftsabläufen in einer Firma,
I
Spielen (bzw. Spielregeln),
I
biologischen Prozessen (Bioinformatik).
316
Beispiel Autowerkstatt
(nach Kastens, Kleine Büning: Modellierung)
Repräsentation der Informationen zur
Auftragsabwicklung in einer Autowerkstatt
Modellierung
I
der (Mengen der) beteiligten Individuen (Objekte, Entities)
I
derer Eigenschaften
I
der Beziehungen zwischen Individuen
I
der Abläufe bei der Auftragsabwicklung
317
Individuen(-Mengen), Eigenschaften, Beziehungen
Kunde hat Namen, besitzt KFZ, erteilt Aufträge
Auftrag hat Eingangsdatum, betrifft KFZ,
wird von Mechanikern bearbeitet,
benötigt Ersatzteile
Fahrzeug ist PKW (mit einer Farbe)
oder Motorrad (mit / ohnen Tuning)
hat Typ, Baujahr und Fahrgestellnummer
KFZ-Typ hat Typ-Namen
Ersatzteil ist geeignet für KFZ-Typ
Mechaniker hat Namen,
ist ausgebildet für KFZ-Typ
bearbeitet Aufträge
318
Ausprägungen
I
Kunde Meier (Kunden-Nr. 12)
bringt am 27.7.2004
seinen blauen Golf (Bj. 2001, Fahrgestell-Nr. 435793) . . .
I
Kunde Schmidt (Kunden-Nr. 17)
bringt am 28.7.2004
seinen roten Audi (Bj. 2002, Fahrgestell-Nr. 578349) . . .
319
Semantisches Netz
Modellierung in zwei Abstraktionsebenen:
I
obere Ebene (Terminologie):
Begriffe (Klassen, Entity-Mengen)
z.B. Kunde, Auftrag, Fahrzeug, Mechaniker
und deren
Attribute (Eigenschafts-Namen),
z.B. Name, Nummer, Farbe
Rollen (Relations-Namen)
z.B. ist-ein, besitzt, bearbeitet
I
untere Ebene (Ausprägungen):
Individuen (Objekte, Entities, Instanzen)
Werte der Attribute
Beziehungen (Relationen) zwischen Individuen
320
Übliche Darstellungformen
Entity-Relationship-Diagramme (ERD):
Knoten: I entities (Typ-Namen) als Rechteck
I relationships (Relations-Namen)
als Raute
I Attribute als Ellipse
Kanten (beschriftet mit Rolle) zwischen
I zwei entities
I entity und Attribut
I entity und relationship
evtl. Kardinalitäten an Kanten
(mehr dazu in LV zu Datenbanken)
Klassendiagramme in Unified Modeling Language (UML):
Knoten (Klassen): Typ-Namen mit Attributen
Kanten (Assoziationen): Relations-Namen
evtl. Kardinalitäten, verschiedenen Pfeilarten an
Kanten
(mehr dazu in LV zu Softwaretechnik)
321
Modellierung von Bedingungen
I
Jeder Auftrag soll (von wenigstens einem Mechaniker)
bearbeitet werden:
∀a ∈ A∃m ∈ M : bearbeitet(m, a)
I
Jeder Auftrag soll von höchstens drei Mechanikern bearbeitet
werden:
∀a ∈ A : |{m ∈ M | bearbeitet(m, a)}| ≤ 3
I
Aufträge für Fahrzeuge werden nur dann angenommen, wenn
es in der Werkstatt für deren Typ ausgebildete Mechaniker
gibt:
(betrifft(a, f ) ∧ hatTyp(f , t))
∀a ∈ A ∀f ∈ F ∀t ∈ T :
→ (∃m ∈ M : kann(m, t))
322
Modellierung von Abläufen
Bearbeitung eines einzelnen Auftrages
1. Erteilung des Auftrags
2. Bestellung und Entgegennahme der fehlenden Ersatzteile
3. Bereitstellung der vorhandenen Ersatzteile
4. Bearbeitung des Auftrages
5. Auslieferung
Modellierung (Tafel)
sequentiell als Zustandsübergangssystem
nebenläufig als Petri-Netz
323
Herunterladen