Formale Grundlagen der Informatik I

Werbung
Inhalt
0 Einführung
Teil I: Formale Grundlagen der Informatik I
– Transitionssysteme – Wörter über endlichen Alphabeten –
– informelle Beispiele
Endliche Automaten und formale Sprachen
1 Mengen, Relationen, Funktionen, . . .
Teil II: Formale Grundlagen der Informatik II
– mathematische Grundbegriffe – elementare Mengen-Operationen
– algebraische Strukturen und Homomorphismen –
Logik in der Informatik
Martin Otto
– elementare Beweismethoden – Beweise mittels Induktion –
– Beispiele
Sommer 2010
Professor für Mathematische Logik
und Grundlagen der Informatik
TUD, Fachbereich Mathematik
FGdI I
Sommer 2010
M Otto
Inhalt: FGdI I
Literatur
2 Endliche Automaten – Reguläre Sprachen
J. Hopcroft, R. Motwani, and J. Ullman:
Introduction to Automata Theory, Languages, and Computation,
Addison-Wesley, 2nd ed., 2001.
(inzwischen auch in deutscher Ausgabe)
–
–
–
–
Automaten, Wörter, Sprachen – reguläre Sprachen –
endliche Automaten als rudimentäres Berechnungsmodell –
deterministische und nicht-deterministische Automaten
Automatentheorie – Satz von Kleene – Satz von Myhill-Nerode
U. Schöning:
Theoretische Informatik – kurzgefasst,
Spektrum, 4. Aufl., 2001.
3 Grammatiken und die Chomsky-Hierarchie
– Grammatiken und Normalformen
– Stufen der Chomsky-Hierarchie
– kontextfreie/kontextsensitive Sprachen
I. Wegener:
Theoretische Informatik – eine algorithmenorientierte Einführung,
Teubner, 1999.
4 Berechnungsmodelle
H.R. Lewis and C.H. Papadimitriou:
Elements of the Theory of Computation,
Prentice Hall, 2nd ed., 1998.
– endliche Automaten, Kellerautomaten, Turingmaschinen –
– Turingmaschinen als universelles Berechnungsmodell –
– Aufzählbarkeit, Entscheidbarkeit, Grenzen der Berechenbarkeit
FGdI I
Sommer 2010
M Otto
2/136
3/136
FGdI I
Sommer 2010
M Otto
4/136
Kap. 0: Einführung
Transitionssysteme: Beispiel
Beispiel 0.0.1
Weckzeit-Kontrolle eines Weckers

 h ∈ H = {0, . . . , 23}
m ∈ M = {0, . . . , 59}
Zustände: (h, m, q)

q ∈ {SETH, SETM, NIL, ERROR}
Kapitel 0: Einführung und Beispiele
Aktionen/Operationen: seth, setm, +, −, set, reset
Typische Transitionen z.B.:
seth
(h, m, NIL) −→ (h, m, SETH)
(in den H-Setzen Modus)
set
(h, m, SETH) −→ (h, m, NIL)
(Ende H-Setzen Modus)
seth
(h, m, SETH) −→ (h, m, ERROR) (bereits in H-Setzen Modus)
+
(h, m, NIL) −→ (h, m, ERROR) (da nicht in Setzen Modus)
+
(h, m, SETH) −→ ((h + 1)mod 24, m, SETH)
(H vorstellen)
reset
(h, m, ERROR) −→ (0, 0, NIL)
(reset)
FGdI I
Kap. 0: Einführung
Sommer 2010
M Otto
6/136
Kap. 0: Einführung
Transitionssysteme: Beispiel
Beispiel 0.0.2
Mann/Wolf/Hase/Kohl
das vollständige
Transitionssystem auf
den erlaubten Zuständen
Mann/Wolf/Hase/Kohl
Zustände:
Verteilungen von {m, w , h, k} rechts/links
symbolisiert durch Objekte [m, w , h, kk ], . . . , [m, w kh, k], . . .
/ [w , hkm, k]
2
/ [w , h, kkm]
h
[w , kkm, h]
I
2
[m, w , kkh]
{
;
w
c
k
h
I
h
h
[m, h, kkw ] i
I
h
5 [m, w , hkk]
k
)
w
[hkm, w , k]
I
2
m transportiert k
#
[w km, h, k]
[kkm, w , h]
Transitionen: Änderung der Verteilung durch Bootsfahrten, z.B.
k
I
h
2
“erlaubte” Zustände:
rechte und linke Seiten 6= [w , h], [h, k], [w , h, k]
[m, w , h, kk ]
[m, w , h, kk ]
u
2
[m, hkw , k]
[m, w , h, kk ]
h
m fährt ohne Passagier
I
h
[ km, w , h, k]
FGdI I
Sommer 2010
M Otto
7/136
FGdI I
Sommer 2010
M Otto
8/136
Kap. 0: Einführung
[m, w, h, kk ][m, w, h, kk ]
START
I
h
Alphabete/Wörter/Sprachen
h
[w , kkm, h]
2
I
Alphabet: nicht-leere, endliche Menge Σ;
a ∈ Σ: Buchstabe/Zeichen/Symbol
2
[m, w , kkh]
f
8
w
x
k
I
&
Σ-Wort: endliche Sequenz von Buchstaben aus Σ,
w = a1 . . . an mit ai ∈ Σ
[w km, h, k]
[kkm, w , h]
h
I
h
h
[m, h, kkw ] k
h
Menge aller Σ-Wörter: Σ∗
3 [m, w , hkk]
k
+
[hkm, w , k]
2
I
s
w
leeres Σ-Wort: ε ∈ Σ∗
2
Σ-Sprache: Teilmenge L ⊆ Σ∗ , eine Menge von Σ-Wörtern
[m, hkw , k]
I
h
Definition 0.0.3
h
[ km, w, h, k][ km, w, h, k]
Ziel
FGdI I
Sommer 2010
M Otto
10/136
Kap. 0: Einführung
Beispiel
Übung 0.0.4
Σ Alphabet, a ∈ Σ.
Aufgabe: finde ein möglichst einfaches System, das auf einen
(online fortlaufenden) Strom von Signalen aus Σ zu jedem
Zeitpunkt die Information bereithält, ob die Anzahl der bisher
eingetroffenen a durch 3 teilbar ist.
Kapitel 1: Mathematische Grundbegriffe
Mengen, Relationen, Funktionen, Strukturen, . . .
elementare Beweistechniken
• a-Zähler mit Teilbarkeitstest?
• Reichen endlich viele Zustände?
Wieviele mindestens?
• Wie verhält sich “Rest bzgl. Division durch 3”
unter Konkatenation?
FGdI I
Sommer 2010
M Otto
11/136
Kap 1: Grundbegriffe
Mengen
1.1.1
Kap 1: Grundbegriffe
Georg Cantor
(1845–1918)
Eine Menge ist eine Zusammenfassung von
bestimmten, wohlunterschiedenen Objekten
unserer Anschauung oder unseres Denkens,
welche Elemente der Menge genannt werden, zu einem Ganzen
Mengen
1.1.1
Mengenbegriff (Cantor)
• unstrukturierte Sammlung von Objekten (Elementen);
z.B. A = {a, b, c} = {b, a, a, c}
• die Gesamtheit ihrer Elemente legt die Menge fest
(Extensionalität)
• über naiv aufzählende Spezifikation und
die einfachsten Operationen hinausgehende Prinzipien
(v.a. für die Existenz unendlicher Mengen)
−→ axiomatische Mengenlehre
(Zermelo, Fraenkel, ZFC)
Beispiele/Standardmengen
∅={}
die leere Menge
B = {0, 1}
Menge der Booleschen (Wahrheits)werte
N = {0, 1, 2, . . .}
Menge der natürlichen Zahlen (mit 0)
Z/Q/R
Mengen der ganzen/rationalen/reellen Zahlen
FGdI I
Sommer 2010
Kap 1: Grundbegriffe
M Otto
Mengen
13/136
1.1.1
Mengen/Mengenoperationen
Kap 1: Grundbegriffe
→ Abschnitt 1.1.1
Mengen A, B, . . .
Elementbeziehung: a ∈ A
FGdI I
Sommer 2010
M Otto
Mengen
14/136
1.1.1
Boolesche Mengenoperationen
Durchschnitt: A ∩ B = {c : c ∈ A und c ∈ B}
bzw. a 6∈ A für “nicht a ∈ A”
A, B disjunkt gdw A ∩ B = ∅
Teilmengenbeziehung (Inklusion): B ⊆ A
Vereinigung: A ∪ B = {c : c ∈ A oder c ∈ B}
Mengendifferenz: A \ B = {a ∈ A : a 6∈ B}
z.B. ∅ ⊆ {0, 1} ⊆ N ⊆ Z
Komplement:
für Teilmengen einer festen Menge M, d.h. in P(M):
Potenzmenge: P(A) = {B : B ⊆ A}
die Menge aller Teilmengen von A
B := M \ B
Mengengleichheit: A = B gdw (A ⊆ B und B ⊆ A)
[genau dieselben Elemente]
Extensionalität
[Komplement bzgl. M]
Definition von Teilmengen: B := {a ∈ A : p(a)}
für eine Eigenschaft p
FGdI I
Sommer 2010
M Otto
15/136
FGdI I
Sommer 2010
M Otto
16/136
Kap 1: Grundbegriffe
Mengen
1.1.1
Kap 1: Grundbegriffe
Mengen
1.1.1
Boolesche Mengenoperationen, Bemerkungen
Tupel und Mengenprodukte
große Vereinigungen/Durchschnitte über beliebige
Familien von Mengen (Ai )i∈I :
geordnete Paare: (a, b) mit erster Komponente a,
zweiter Komponente b
•
S
•
T
n-Tupel: (a1 , . . . , an ) mit n Komponenten
A
=
a
:
a
∈
A
für
mindestens
ein
i
∈
I
i
i
i∈I
i∈I
Kreuzprodukt (kartesisches Produkt):
Ai = a : a ∈ Ai für alle i ∈ I
Beispiele:
Σ∗
=
Σ+
=
S
A × B = {(a, b) : a ∈ A, b ∈ B}
A1 × A2 × · · · × An = (a1 , . . . , an ) : ai ∈ Ai für 1 6 i 6 n
Σn
n∈N
Σ∗ \ {ε}
(n ∈ N, n > 2)
= {w ∈ Σ∗ : |w | > 1} =
S
n>1 Σ
n
An = A
| ×A×
{z· · · × A}
Menge aller n-Tupel über A.
n mal
Bemerkung:
wir identifizieren n-Tupel über Σ mit Σ-Wörtern der Länge n
und Wörter der Länge 1 mit Buchstaben, Σ1 = Σ.
FGdI I
Sommer 2010
Kap 1: Grundbegriffe
M Otto
Relationen
17/136
1.1.2
→ Abschnitt 1.1.2
R ⊆ An
Menge von n-Tupeln über A
Beispiele: Kantenrelation eines Graphen, Präfixrelation auf
Ordnungsrelationen, Äquivalenzrelationen, . . .
beschreibt E -Kante
u
E
Σ∗ ,
M Otto
1.1.2
Äquivalenzrelationen
Reflexivität:
für alle a ∈ A gilt: aRa.
Symmetrie:
für alle a, b ∈ A gilt: aRb ⇔ bRa.
Transitivität:
für alle a, b, c ∈ A gilt: (aRb und bRc) ⇒ aRc.
/ v
Äquivalenzrelation auf R ⊆ A2 :
reflexiv, symmetrisch und transitiv
Beispiele: Gleichheit (über A), Längengleichheit über Σ∗ ,
gleicher Rest bei Division durch n über N oder Z, . . .
Idee: Äquivalenzrelationen als verallgemeinerte Gleichheiten
oft auch infixe Notation: aRb statt (a, b) ∈ R
Sommer 2010
Relationen
18/136
z.B. Präfixrelation: reflexiv und transitiv, nicht symmetrisch
Präfixrelation auf Σ∗ :
u 4 v gdw. u Anfangsabschnitt (Präfix) von v
4 = (u, uw ) : u, w ∈ Σ∗ ⊆ Σ∗ × Σ∗
FGdI I
M Otto
wichtige potentielle Eigenschaften für 2-stelliges R ⊆ A2 :
Kantenrelationen in Graph/Transitionssystem:
(u, v ) ∈ E
Sommer 2010
Kap 1: Grundbegriffe
Relationen über einer Menge A
n-stellige Relation:
FGdI I
19/136
FGdI I
Sommer 2010
M Otto
20/136
Kap 1: Grundbegriffe
Relationen
1.1.2
Kap 1: Grundbegriffe
Äquivalenzklassen:
[a]R := b ∈ A : aRb
Quotient A/R : die Menge aller Äquivalenzklassen von R,
A/R := [a]R : a ∈ A
die Äquivalenzklasse von a
die natürliche Projektion
wichtig: A wird durch die Äquivalenzklassen in
disjunkte Teilmengen zerlegt (Lemma 1.1.8), sodass
(( "
(( ""
(( ""
(( """
( "
A/R
FGdI I
◦ ◦ ◦,, b
◦
,, &&&
,, &
,, &&&
,,&&
• [a]
• [b]
Sommer 2010
M Otto
Kap 1: Grundbegriffe
A
Funktionen
◦
c
◦
• [c]
A/R
21/136
1.1.3
Funktionen und Operationen
Funktion f von A nach B:
B
• YYYYYYYYxyz{
~}|
xyz{
~}|
Y
YYYY, f (a)
A
•
FGdI I
Kap 1: Grundbegriffe
→ Abschnitt 1.1.3
a◦ 0
(( ◦a
( "
(( ""
(( ""
(( ""
(( ""
(( ""
◦
◦ b ◦
,,, ◦&
,, &&
,, &&
,, && ,, && , & ◦
◦
•
[a]
Sommer 2010
•
[b]
c
◦
•
[c]
M Otto
Funktionen
22/136
1.1.3
Funktionen, Operationen, Beispiele
n-stellige Funktion auf A: Funktion f : An → B.
f : A −→ B
a 7−→ f (a)
n-stellige Operation auf A: Funktion f : An → A.
a
f (a) ist das Bild von a unter f ;
a ein Urbild von b = f (a).
Beispiele: Addition, Multiplikation auf N, Z, . . .
Beispiel Konkatenation auf Σ∗ :
· : Σ∗ × Σ∗ −→ Σ∗
(u, v ) 7−→ u · v (= uv ).
wesentlich: eindeutig definierter Funktionswert f (a) ∈ B
für jedes a ∈ A
A: Definitionsbereich
B:
πR : A −→ A/R a 7−→ [a]R = b ∈ A : aRb
ordnet jedem Element seine Äquivalenzklasse zu
aRb gdw [a]R = [b]R
A
1.1.2
Äquivalenzrelationen: Quotient, natürliche Projektion
für Äquivalenzrelation R ⊆ A2 auf A, a ∈ A:
a
◦( a0 ◦
( ◦"
Relationen
Für u = a1 . . . an ; v = b1 . . . bm
ist uv := a1 . . . an b1 . . . bm
| {z } | {z }
u
v
Zielbereich
f (a) Bild von a unter f .
f [A] := {f (a) : a ∈ A} ⊆ B Bild(menge) von f .
FGdI I
Sommer 2010
M Otto
23/136
FGdI I
Sommer 2010
M Otto
24/136
Herunterladen