Beispiel

Werbung
Theoretische Informatik A, SS06
Prof. Dr. Wolfram Conen
[email protected]
Raum: P -1.08
Version 0.7, 28. März 2006
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
„Meine Gedankenwelt, d.h. die Gesamtheit S aller Dinge, welche Gegenstand meines Denkens sein können, ist unendlich“ (Richard Dedekind in Was sind und was sollen die Zahlen?, 1888, Vieweg)
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 2
Inhalte
• Mengen und das Unendliche
• Sprachen, Grammatiken und Automaten: Von regulären Sprachen über XML zu
Turing
• Die Komplexität von Problemen: P, NP, Approximation
• Algorithmische Komplexität und Zufall
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 3
Literatur...
• Oliver Deiser: Einführung in die Mengenlehre, Springer 2002 (demnächst in neuer Auflage – tut auch Not, denn es haben sich einige Tipp-Fehler in die 1. Auflage
eingeschlichen – aber ein schönes Buch!)
• Martin Davis: Engines of Logic, Norton, 2000 bzw. 2001 (Taschenbuch) – ein
schönes, kluges Buch für einen Überblick zur Geschichte und zu den frühen,
aber zentralen Resultaten der (theoretischen) Informatik.
Das deutsche Buch, das wir zu formalen Sprachen, Grammatiken und Automaten
verwenden werden ist:
• Hedtstück, Einführung in die theoretische Informatik, Oldenbourg, 2004 (2. Auflage)
Wir werden das ergänzen mit Material aus Sipser, Introduction to the Theory of
Computation, PWS, 2005, 2. Aufl. – (der Klassiker) und eventuell Hromkovic, Algorithmische Konzepte der Informatik, Teubner, 2001.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 4
Unterlagen...
Für Skriptversionen, Übungsblätter, aktuelle Nachrichten usw. schauen Sie bitte unter
http://www.informatik.fh-gelsenkirchen.de/conen/index.htm
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 5
Mengen und das Unendliche
Was ist Mengenlehre?
„Die Mengenlehre ist die Untersuchung von Ordnung und Größe in der Mathematik.“ (Oliver Deiser in Einführung in die Mengenlehre, 2002, Springer)
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 6
Mengen und das Unendliche
Fragen zur Mengenlehre
•
•
•
•
Was ist eine Menge, was ist ein Element?
Wie definiert man Mengen?
Wie mißt man die Größe einer Menge? Wie vergleicht man Mengen?
Was kann man mit der Mengenlehre tun?
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 7
Mengen und das Unendliche
Historischer Überblick
Die Mengenlehre wurde im letzten Viertel des 19. Jahrhunderts von G EORG C AN TOR entwickelt - zunächst galt das (nicht unproblematische) „naive Kompressionsprinzip“:
„Zu jeder Eigenschaft existiert die Menge aller Objekte, auf die diese
Eigenschaft zutrifft“
E RNESTO Z ERMELO und andere (u.a. auch J OHN VON N EUMANN !) haben die Mengenlehre axiomatisch präzisiert und formalisiert.
Die axiomatische Mengenlehre kann alle Objekte der Mathematik zur Verfügung
stellen, z.B. Zahlen aller Art, Funktionen, geometrische Gebilde etc. - d.h. es existieren auf dem Mengenbegriff basierende Definitionen dieser Begriffe, die alle erwünschten und in der Mathematik benötigten Eigenschaften der Objekte bereitstellt.
Die Mengenlehre eignet sich damit als Grundlagendisziplin für die Mathematik selbst
(und auch die Informatik)!
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 8
Mengen und das Unendliche
Bedeutung der Mengenlehre
Deiser schreibt: „Heute ist die Mengenlehre nicht nur Rahmen für die Mathematik,
sondern selbst eine schillernde mathematische Theorie. Sie fasziniert ... durch die
stille Schönheit ihrer ersten Konzepte und durch deren erstaunliche und anscheinend noch bei weitem nicht ausgelotete Reichweite und Tragfähigkeit.“
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 9
Mengen und das Unendliche
Menge und Element
Im weiteren schreiben wir für „a ist Element von X “ a ∈ X .
C ANTOR 1895 im Original: „Unter einer Menge verstehen wir jede Zusammenfassung M von bestimmten wohlunterschiedenen Objekten m unserer Anschauung
oder unseres Denkens (welche die Elemente von M genannt werden) zu einem
Ganzen.“
„Zwei Mengen sind genau dann gleich, wenn sie dieselben Elemente haben“ (Extensionalitätsprinzip)
Den Begriff Menge hat übrigens B ERNARD B OLZANO eingeführt. Neben Menge wurden auch Mannigfaltigkeit, Gesamtheit, Inbegriff, Varietät, und Klasse verwendet (die
Liste ist sicher nicht komplett).
Heute gilt Menge als ein nicht weiter definierter Grundbegriff - irgendwo muss man
anfangen!
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 10
Mengen und das Unendliche
Mengen sind Ideen . . .
Nochmals C ANTOR: „Unter einer ... Menge verstehe ich nämlich allgemein jedes
Viele, welches sich als Eines denken läßt, d.h. jeden Inbegriff bestimmter Elemente,
welcher durch ein Gesetz zu einem Ganzen verbunden werden kann, und ich glaube
hiermit etwas zu definieren, was verwandt ist dem Platonischen ... iδα.“
Mengen existieren als Ideen unabhängig von uns! (Und dies gilt allgemein für die
Objekte der Mathematik)
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 11
Mengen und das Unendliche
Zahlen
Wir setzen:
•
•
•
•
N = „die Menge der natürlichen Zahlen“
Z = „die Menge der ganzen Zahlen“
Q = „die Menge der rationalen Zahlen“
R = „die Menge der reellen Zahlen“
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 12
Mengen und das Unendliche
Natürliche und ganze Zahlen
• Die natürlichen Zahlen, N, enthalten die 0 als Element.
• Natürliche Zahlen schreiben wir in Dezimalschreibweise: 0,1,2,3,. . . ,10,11,. . . .1
• Eine ganze Zahl schreiben wir in der Form +n oder −n, wobei n eine natürliche
Zahl ist. Also +0,-0,+1,-1,+2,-2 . . . . Es gilt +0 = −0.
• Jede nichtleere Menge von natürlichen Zahlen hat ein kleinstes Element. Ist A
eine nichtleere Menge von natürlichen Zahlen, so sei min(A) = „das (eindeutig
bestimmte) kleinste Element von A (Minimum von A)“
Beispiel: min({7, 9, 15, 4, 6}) = 4.
1 Regelmäßig finden sie auch Autoren, die N mit {1, 2, 3, . . . } gleichsetzen und bei Hinzunahme der 0 dann N
0
schreiben. Das wollen wir nicht tun, denn 0 ist ja keine un-natürliche Zahl, sondern eine ganz „normale“ natürliche Zahl,
die in N gehört. Es kann Sinn machen, für {1, 2, 3, . . . } N+ zu verwenden.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 13
Mengen und das Unendliche
Rationale Zahlen
Schreibweisen:
• Bruch: +n/m bzw. −n/m, mit n, m ∈ N, m 6= 0
• Endlicher Dezimalbruch: ±n, a1 . . . ak
• Periodisch endender, unendlicher Dezimalbruch: ±n, b1 . . . bma1 . . . ak a1 . . . ak . . .
(wobei n, m, k ∈ N und 0 ≤ ai, bj < 10 für alle 1 ≤ i ≤ k bzw. 1 ≤ j ≤ m
gilt.)
Beispiele:
−17/8 = −2, 125,
1/7 = 0, 142857142857142857 . . . ,
1/700 = 0, 00142857142857142857 . . . ,
1/3 = 0, 333 . . .
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 14
Mengen und das Unendliche
Reelle Zahlen
• Dezimalbruch: ±n, a1a2a3 . . . , n ∈ N, 0 ≤ ai < 10 für alle i ≥ 1.
• Sei x eine reelle Zahl. Ist eine Dezimaldarstellung von x in der Form
±n, a1 . . . ak 000 . . . , so sagen wir, dass diese Dezimaldarstellung von x trivial
endet.
• Jede reelle, von 0 verschiedene Zahl x hat eine eindeutige nicht trivial endende Dezimaldarstellung! Es gilt beispielsweise:
1,000
1,1245000. . .
-1,01000
=
=
=
0,999. . .
1,1244999. . .
-1,009999. . .
Diese nicht-triviale Dezimaldarstellung nennen wir die kanonische (unendliche)
Dezimaldarstellung von x.
Beachte: 0,000. . . ist die kanonische, unendliche Dezimaldarstellung der 0.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 15
Mengen und das Unendliche
Mathematische Objekte
Wir setzten im Weiteren N, Q, Z, R, die üblichen Rechenoperationen und die natürlichen Ordnungsbeziehungen < und ≤ als gegeben voraus.
Die mathematischen Grundobjekte (Urelemente) sind die natürlichen,
ganzen, rationalen und reellen Zahlen.
Jede Menge ist ein mathematisches Objekt.
Beachten Sie: Ist b eine Menge und a ∈ b, so ist a ein Grundobjekt oder eine
Menge.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 16
Mengen und das Unendliche
Einige Konvention
• Wir identifizieren n ∈ N mit +n ∈ Z
• +n bzw. −n ∈ Z mit +n/1 bzw. −n/1 ∈ Q
• ±n, a1 . . . ak ∈ Q mit ±n, a1 . . . ak 000 · · · ∈ R, d.h., jede natürliche Zahl ist
eine ganze Zahl, jede ganze Zahl eine rationale Zahl und jede rationale Zahl
eine reelle Zahl.
• Der Betrag |x| einer reellen Zahl x ist definiert durch
(
|x| =
x,
falls x ≥ 0,
−x,
sonst.
Später führen wir die Mächtigkeit einer Menge M ein, diese wird mit |M | bezeichnet, der Bezug wird Verwechselungen verhindern.
• Sind x1, . . . , xn reelle Zahlen, so bezeichnet min(x1, . . . , xn) die Kleinste und
max(x1, . . . , xn) die Größte der Zahlen x1, . . . , xn.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 17
Mengen und das Unendliche
Einfache Mengenbildungen
• a ∈ b: „a ist Element von b“, „a Element b“, „a in b“
• a∈
6 b (oder auch non(a ∈ b)): „a ist nicht Element von b“
Definition 1. [Direkte Angabe der Elemente, Einermengen, Paarmengen]
Seien n ∈ N, n ≥ 1 und a1, . . . , an Objekte. Wir setzen:
{a1, . . . , an} = „die Menge, die genau a1, . . . , an als Elemente enthält“.
Speziell heißen für Objekte a, b die Menge {a} die Einermenge von a und {a, b}
die (ungeordnete) Paarmenge von a, b.
Es gilt also für alle x x ∈ {a1, . . . , an} gdw. x = ai für ein i ∈ N mit 1 ≤ i ≤ n.
Hier steht gdw. für genau dann, wenn bzw. dann und nur dann, wenn.
Beachte: Für die Bildung von Paarmengen ist a 6= b nicht vorausgesetzt! Nach dem
Extensionalitätsprinzip gilt:
{a} = {a, a} = {a, a, . . . , a}
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 18
Mengen und das Unendliche
{a, b} = {b, a}
{a, b} = {a} gdw. a = b
Definition 2. [Leere Menge]
Wir setzen:
∅ = „die Menge, die keine Elemente enthält“.
∅ heißt die leere Menge oder die Nullmenge. Sie wird auch mit {} bezeichnet.
Merke: Die leere Menge kann Element einer anderen Menge sein! M = {∅} =
{{}} hat ein Element (die leere Menge). M = {∅, {∅}} hat zwei (verschiedene!)
Elemente.
Jetzt können wir Mengen durch Aufzählung definieren (in dem wir ihre Extension,
also ihre Elemente, angeben). „Einfacher“ ist es häufig, Mengen über eine Eigenschaft, die ihren Elementen gemeinsam ist, zu definieren.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 19
Mengen und das Unendliche
Mengenbildung über Eigenschaften
Definition 3.
Sei E(x) eine Eigenschaft. Wir setzen:
{x|E(x)} = „die Menge aller Objekte x, auf die E(x) zutrifft“.
Wir sagen auch: {x|E(x)} ist die „Menge aller x mit E(x)“.
Es gilt z.B. z ∈ {x|E(x)} gdw. E(z) (die Eigenschaft also für z gilt).
Eine genaue Definition von Eigenschaften ist hier (noch) nicht nötig. Intuitiv ist eine
Eigenschaft E eine mathematische Aussage über mathematische Objekte. Es gilt
für jedes Objekt z und jede Eigenschaft E entweder E(z) oder non(E(z)) (d.h., z
hat die Eigenschaft E oder es hat die Eigenschaft E nicht).
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 20
Mengen und das Unendliche
Auswahl von Elementen
Man bezieht sich häufig auf eine bereits definierte Menge und wählt Elemente daraus aus, z.B. U = {x ∈ N|x ist ungerade} (alle ungeraden natürlichen Zahlen).
Definition 4. [Aussonderung]
Sei M eine Menge und E(x) eine Eigenschaft. Wir setzen:
{x ∈ M |E(x)} = {x|x ∈ M und E(x)}
Definition 5. [Parameter einer Eigenschaft]
Sei E eine Eigenschaft. Die Parameter von E sind die in E vorkommenden mathematischen Objekte.
In M = {x|x < 11 und x ∈ N} sind 11 und N die Parameter (und x eine Variable).
Jede „aufgezählte“ Menge der Form {a1, . . . , an} können wir auch über eine Eigenschaft definieren („intensional“): {a1, . . . , an} = {x|x = a1 oder . . . oder x = an}
(hier sind a1, . . . , an dann die Parameter).
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 21
Mengen und das Unendliche
Das naive Komprehensionsprinzip
(Komprehension: lat. Zusammenfassung)
Naives Komprehensionsprinzip für Eigenschaften: Ist E eine Eigenschaft über
mathematische Objekte, so existiert die Menge {x|E(x)} aller Objekte x, für die
E(x) erfüllt ist.
Dieses Prinzip führt zu Problemen! Warum? Erinnern Sie sich an den ersten
Übungszettel! Wir kommen darauf zurück.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 22
Mengen und das Unendliche
Teilmengen
Definition 6. [Teilmenge und Obermenge]
Seien a und b Mengen.
1. a ist Teilmenge von b, in Zeichen a ⊆ b, falls für alle x ∈ a gilt x ∈ b.
2. a ist echte Teilmenge von b, in Zeichen a ⊂ b, falls a ⊆ b und a 6= b.
3. Ist a ⊆ b, so heißt b Obermenge von a, in Zeichen b ⊇ a.
4. Ist a ⊂ b, so heißt b echte Obermenge von a, in Zeichen b ⊃ a.
Wenn Sie nach einer Definition für = suchen, dann erinnern Sie sich an das Extensionalitätsprinzip: zwei Mengen sind genau dann gleich, wenn Sie die gleichen
Elemente haben, mit anderen Worten: Seien a und b Mengen. Dann schreiben wir
a = b, falls für alle x ∈ a gilt x ∈ b und für alle x ∈ b gilt x ∈ a, oder, kürzer:
Definition 7. [Gleichheitskriterium]
Für alle Mengen a, b gilt: a = b gdw. a ⊆ b und b ⊆ a.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 23
Mengen und das Unendliche
Beachten sie: Die leere Menge ist Teilmenge jeder Menge (mit folgender Begründung: es ist für eine Menge M zu überprüfen, ob jedes x ∈ ∅ auch in M ist. Es gibt
aber gar keine x in ∅, also ist jedes x ∈ ∅ in M ! q.e.d)
Die Teilmengen-„Relation“ ⊆ ist transitiv: seien Mengen a, b, c mit a ⊆ b und
b ⊆ c, dann gilt auch a ⊆ c!
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 24
Mengen und das Unendliche
Einfache Operationen mit Mengen (1)
Definition 8. [Vereinigung; Schnitt; Subtraktion; Disjunktheit]
Seien a, b Mengen. Die Vereinigung a ∪ b (sprich: a vereinigt b), der Schnitt a ∩ b
(a geschnitten b) und die Subtraktion a − b (oft auch: a\b, sprich a minus b bzw. a
ohne b) sind definiert durch:
a ∪ b = {x|x ∈ a oder x ∈ b}
a ∩ b = {x|x ∈ a und x ∈ b}
a − b = {x|x ∈ a und x 6∈ b} = {x ∈ a|x 6∈ b}
a und b heißen disjunkt, falls a ∩ b = ∅ (d.h., ihre Schnittmenge ist leer).
Assoziativgesetze für Vereinigung und Durchschnitt:
Seien a, b, c Mengen. Dann gilt:
(i)
(a ∪ b) ∪ c = a ∪ (b ∪ c)
(ii) (a ∩ b) ∩ c = a ∩ (b ∩ c)
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 25
Mengen und das Unendliche
Einfache Operationen mit Mengen (2)
Definition 9. [Relative Komplemente]
Seien a, b Mengen und a ⊆ b. Dann heißt b − a das relative Komplement von
a in b. Ist b fixiert, so nennen wir b − a kurz das Komplement von a, und setzen
ac = b − a.
Satz 10. [Eigenschaften der relativen Komplemente] Sei d eine Menge. Weiter
seien a, b ⊆ d. Dann gilt für die relativen Komplemente in d:
(i)
a ∪ ac = d
(ii)
a ∩ ac = ∅
(iii) (a ∩ b)c = ac ∪ bc
(iv) (a ∪ b)c = ac ∩ bc.
Die beiden letzen Aussagen werden auch als de Morgansche Regeln bezeichnet.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 26
Mengen und das Unendliche
Beweise der letzten Aussagen
Zu (iii): Wir zeigen zunächst (a ∩ b)c ⊆ ac ∪ bc: Sei x ∈ (a ∩ b)c, so gilt
(1) x ∈ d und
(2) x 6∈ a oder x 6∈ b.2
Für x 6∈ a ist wg. 1. x ∈ d − a = ac.
Für x 6∈ b ist wg. 1. x ∈ d − b = bc.
Also gilt immer: x ∈ ac oder x ∈ bc, also x ∈ ac ∪ bc.
Nun zu (a ∩ b)c ⊇ ac ∪ bc: Sei x ∈ ac ∪ bc, dann gilt: x ∈ d − a oder x ∈ d − b.
Im ersten Fall ist x ∈ d − (a ∩ b) wg. d − a ⊆ d − (a ∩ b).
Im zweiten Fall ist x ∈ d − (a ∩ b) wg. d − b ⊆ d − (a ∩ b).
Also gilt in beiden Fällen:
x ∈ d − (a ∩ b) = (a ∩ b)c.
Aus dem Gleichheitskriterium folgt die behauptete Aussage (a ∩ b)c = ac ∪ bc.
(iv) läßt sich analog zeigen.
2 Warum? x ist im Komplement von (a ∩ b), d.h. x ∈ (d − (a ∩ b)), also gilt x ∈ d und x 6∈ a ∩ b. Das Zweite ist
gleichbedeutend (äquivalent) mit x 6∈ a oder x 6∈ b.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 27
Mengen und das Unendliche
Weitere einfache Eigenschaften
Distributivgesetz: Für alle Mengen a, b, c gilt:
(i)
(a ∪ b) ∩ c = (a ∩ c) ∪ (b ∩ c)
(ii) (a ∩ b) ∪ c = (a ∪ c) ∩ (b ∪ c)
Beweis in den Übungen.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 28
Mengen und das Unendliche
Mengensysteme
Definition 11. [Mengensysteme]
Ein Mengensystem M ist eine Menge, deren Elemente alle Mengen sind, d.h. M
enthält keine Grundobjekte als Elemente.
Sei nun M ein Mengensystem. Dann setzen wir:
Durchschnitt von M :
M = {x| Für alle a ∈ M ist x ∈ a}
Vereinigung von M :
M = {x| es existiert ein a ∈ M mit x ∈ a}
T
S
S
T
T
Erläuterung: Streng nach Definition (so sagt Deiser) gilt: ∅ = ∅ und ∅ = {x| ist
ein Objekt }. Deiser erklärt: Sei x beliebig. Wir zeigen x ∈ ∅. Hierzu ist zu zeigen:
Für alle a ∈ ∅ gilt x ∈ a. Es gibt aber gar keine a ∈ ∅, also ist die Aussage sicher
richtig. So ganz streng nach der Definition ist das Zweite aber im Grunde nur unter
Berücksichtigung einer Setzung, die auf einer Konvention in der (mathematischen)
Logik beruht, zu der wir später noch kommen werden: eine Eigenschaft ist für alle
x ∈ M genau dann erfüllt, wenn es kein x ∈ M gibt, für dass sie nicht erfüllt ist
– und dies ist insbesondere immer dann erfüllt, wenn es gar kein x in M gibt – das
letztere ist die Konvention, deren Sinn man philosophisch hinterfragen könnte.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 29
Mengen und das Unendliche
Potenzmenge
Definition 12. [Potenzmenge]
Sei M eine Menge. Dann ist die Potenzmenge von M , in Zeichen P(M ), die
Menge aller Teilmengen von M : P(M ) = {a|a ⊆ M }
• Für alle Mengen M gilt: ∅ ∈ P(M ), M ∈ P(M ).
• Weiter gilt für alle Mengen a: mit a ∈ P(M ) folgt M − a ∈ P(M ).
Beispiel:
M = {1, 2, 3}
P(M ) = { ∅, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3} }
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 30
Mengen und das Unendliche
Grundlegende Fragen
(A) Was ist eigentlich ein mathematisches Objekt?
– Alle mathematischen Objekte (Zahlen, Funktionen, usw.) können als Mengen
interpretiert werden.
(B) Welche mathematischen Objekte (=Mengen) existieren?
– Axiome bestimmen grundlegende Mengen. Axiome und darin verwendete Eigenschaften von Mengen/Objekten werden als logische Formeln formuliert. Mit ihrer
Hilfe kann man die Existenz von Mengen folgern und Zusammenhänge zwischen
Mengen beweisen.
Beispiel Potenzmengenaxiom: Zu jeder Menge M existiert die Potenzmenge von
M , d.h.: Für alle M gibt es ein P mit der Eigenschaft: Für alle x gilt x ∈ P gdw.
x ⊆ M.
Als logische Formel: ∀M ∃P ∀x(x ∈ P ↔ ∀y(y ∈ x → y ∈ M )), zu lesen als:
Für alle M existiert ein P , so dass für alle x gilt: x ist in P genau dann, wenn für
alle y gilt: aus y in x folgt y in M .
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 31
Mengen und das Unendliche
Mit der Abkürzung a ⊆ b für ∀c(c ∈ a → c ∈ b): ∀M ∃P ∀x(x ∈ P ↔ x ⊆ M )
Verwendete Symbole:
∀ entspricht „für alle“
∃ entspricht „es existiert ein“ (mindestens eins, nicht genau eins!)
→ entspricht „(es) folgt“ (bzw. „aus . . . folgt . . . “)
↔ entspricht „gdw.“
(C) Was genau ist ein mathematischer Beweis einer Aussage?
– Eine schrittweise Umformung von Formeln mit Hilfe eines Kalküls, der Regeln
angibt, wie bestimmte Zeichenketten in andere verwandelt werden dürfen.
Mit den Axiomen und einem präzisen Beweisbegriff kann man metamathematische
Fragen stellen, z.B. Was ist beweisbar?. Wesentlich sind folgende Fragen:
(L1) Ist das Axiomensystem widerspruchsfrei? (Zu bejahen, wenn die Aussagen
0 = 1 oder ∃x x 6= x sich formal nicht aus den Axiomen ableiten lassen)
(L2) Ist das Axiomensystem vollständig? (Zu bejahen, wenn für jede Aussage φ ein
Beweis von φ oder ein Beweis der Negation von φ, in Zeichen ¬φ, existiert – jede
Aussage läßt sich also entweder beweisen oder widerlegen)
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 32
Mengen und das Unendliche
Glauben Sie, dass sich ein solches Axiomensystem für die Mengenlehre (und, darauf aufbauend, für die anderen Zweige der Mathematik) finden läßt?
K URT G ÖDEL beantwortete in den 30er Jahren des 20. Jahrhunderts die Fragen wie
folgt (aufbauend auf F REGE , H ILBERT, RUSSELL):
(zu L1): Wir können es nicht sicher wissen: die Widerspruchsfreiheit der axiomatischen Mengenlehre ist unbeweisbar!
(zu L2): Nein! Ist das zugrunde gelegte Axiomensystem der Mengenlehre widerspruchsfrei, so gibt es stets Aussagen, die weder beweisbar noch widerlegbar sind!
(Ist es widerspruchsvoll, dann verliert die Frage ihren Sinn, denn dann ist jede Aussage beweisbar)
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 33
Mengen und das Unendliche
Abbildungen zwischen Mengen
• Sehr nützlich ist der Begriff des geordneten Paares P von zwei Objekten a,b, in
Zeichen: P = (a, b). Aber in der Mengenlehre gilt immer: {a, b} = {b, a} für
zwei beliebige Objekte a,b.
• Geordnete Paare müssen die folgende Eigenschaft erfüllen: (a, b) = (c, d) gdw.
a = c und b = d.
Definition 13. [Geordnetes Paar] 3
Seien a, b Objekte. Dann ist das geordnete Paar von a und b, in Zeichen (a, b),
definiert durch: (a, b) = {{a}, {a, b}}
3 Andere Definitionen sind möglich, z.B. von Hausdorff die Obige ist von Kuratowski): (a, b) = {{a, 1}, {b, 2}}. Die
ist aber nicht so schön, weil wir neue, von a und b unterscheidbare Objekte einführen müssen, und für ein Paar aus
diesen Objekten 1 und 2 brauchen wir dann neue „Indikatorobjekte“ usw.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 34
Mengen und das Unendliche
Kreuzprodukt
Definition 14. [Kreuzprodukt oder kartesisches Produkt]
Seien A, B Mengen. Dann ist das Kreuzprodukt von A, B , in Zeichen A × B
(sprich: A kreuz B ), definiert durch: A × B = {(a, b)|a ∈ A, b ∈ B} = {x|x =
(a, b) für ein a ∈ A und ein b ∈ B}.
Beispiel: Für A = {1, 2} und B = {a, b, c} ist
A × B = {(1, a), (1, b), (1, c), (2, a), (2, b), (2, c)}.
Das Kreuzprodukt sammelt also alle Möglichkeiten ein, die Objekte der beiden beteiligten Mengen miteinander zu paaren. Man kann das Kreuzprodukt natürlich auch
für 3 oder mehr Mengen definieren:
Das n-fache kartesische Produkt über einer Menge A ist die Menge aller n-Tupel
von Elementen aus A: An = A×· · ·×A = {(a1, . . . , an)|ai ∈ A, i = 1, . . . , n}.
Es ist A1 = A.
Analoges kann man mit n verschiedenen Mengen A1, . . . , An definieren, nur gibt
es dann natürlich die abkürzende Schreibweise An nicht.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 35
Mengen und das Unendliche
Relation
Mit Hilfe der geordneten Paare können wir nun den Begriff der Relation definieren
(wir kennen bereits die Beziehungen/Relationen =,⊆,∈ usw.):
Eine Relation ist eine Menge von geordneten Paaren.
D.h., jede Menge R von geordneten Paaren liefert eine Relation (genannt R). Zwei
Objekte a, b stehen in der Relation R zueinander genau dann, wenn (a, b) ∈ R.
Definition 15. [Relation]
Eine Menge R heißt (zweistellige) Relation, falls jedes x ∈ R ein geordnetes Paar
ist. Ist A eine Menge und gilt R ⊆ A × A, so heißt R Relation auf A.
Sind a, b Objekte und gilt (a, b) ∈ R, so schreiben wir hierfür auch aRb (InfixNotation).
Beispiel: Für A = {1, 2} und B = {a, b, c} (s. Kreuzproduktbeispiel) bestimmt
jede Teilmenge von A × B eine Relation, z.B. R1 = {(1, a), (2, b)} oder auch
R2 = {(1, a), (1, b), (2, b), (2, c)}.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 36
Mengen und das Unendliche
Definitions- und Wertebereich
Definition 16. [Definitionsbereich, Wertebereich]
Sei R eine Relation. Wir setzen:
dom(R) = {a| es existiert ein b mit (a, b) ∈ R}
rng(R)
= {b| es existiert ein a mit (a, b) ∈ R}.
dom(R) heißt der Definitionsbereich von R (dom für engl. domain).
rng(R) heißt der Wertebereich von R (rng für engl. range).
Beispiel: Der Definitionsbereich dom(R1) von R1 aus dem letzten Beispiel ist
{1, 2}, der Wertebereich rng(R1) ist {a, b}.
• Die Ordnungsbeziehungen „kleiner“ und „kleinergleich“ auf den Zahlmengen
N, Z, Q, R sind Relationen:
<N= {(n, m) ∈ N × N|n ist kleiner als m}
≤Q= {(p, q) ∈ Q × Q | p ist kleiner als q oder p ist gleich q}.
• Man kann nun z.B. ≤R als <R ∪{(x, x)|x ∈ R} definieren.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 37
Mengen und das Unendliche
• Es gilt <N ⊆ <Z ⊆ <Q ⊆ <R (den Index lassen wir i.d.R. weg).
• Zur Schreibweise: Normalerweise schreiben wir (a, b) ∈<N als a <N b, beide
Schreibweisen sind austauschbar.
Definition 17. [reflexiv, symmetrisch, transitiv]
Sei R eine Relation auf einer Menge A.
1. R heißt reflexiv, falls für alle x ∈ A gilt xRx.
2. R heißt symmetrisch, falls für alle x, y ∈ A gilt: aus xRy folgt yRx.
3. R heißt transitiv, falls für alle x, y, z ∈ A gilt: aus xRy und yRz folgt xRz .
Anmerkung: Diese Definition läßt sich auch auf Relationen zwischen zwei Mengen
B, C anwenden, indem man B ∪ C = A setzt.
Definition Umkehrrelation:
Sei R eine Relation. Dann ist R−1 = {(b, a)|(a, b) ∈ R} die Umkehrrelation zu R.
Anmerkungen: R−1
−1
= R, R ist die Umkehrrelation zu R−1.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 38
Mengen und das Unendliche
Äquivalenzrelation
Definition 18. [Äquivalenzrelation]
Sei R eine Relation auf einer Menge A. R heißt Äquivalenzrelation auf A, falls R
reflexiv, symmetrisch und transitiv ist.
Für jedes x ∈ A ist dann die Äquivalenzklasse von x bzgl. der Äquivalenzrelation
R, in Zeichen x/R (sprich: x modulo R), definiert durch x/R = {y ∈ A|xRy}.
Weiter ist A/R (Sprich: A modulo R) definiert durch A/R = {x/R|x ∈ A}.
x/R ist also die Menge aller Elemente aus A, die mit x in Relation R stehen. A/R ist die Menge all dieser Klassen.
Beispiel: für ein festes m ∈ N, m ≥ 1, sei die Relation %m auf N definiert durch:
%m = {(a, b) ∈ N × N| a und b haben den gleichen Rest bei Division durch m }.
Dann ist %m eine Äquivalenzrelation auf N (prüfen sie: %m ist reflexiv, symmetrisch
und transitiv). Für m = 3 gilt z.B. 2 %3 5 (denn beide lassen sich mit Rest 1 durch 3
teilen) und es gibt genau drei Äquivalenzklassen (welche? Natürlich die natürlichen
Zahlen, die sich mit Rest 0, 1 oder 2 durch 3 teilen lassen) – übrigens bilden diese
drei Klassen eine Zerlegung von N (vgl. Übungsaufgabe 26 auf Blatt 6).
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 39
Mengen und das Unendliche
Der Funktionsbegriff
Intuition: eine Funktion kann man als eine „Vorschrift“ ansehen, die Objekten andere
Objekte eindeutig zuordnet. Aber zunächst definieren wir den Begriff „extensional“:
Definition 19. [Funktion]
Sei f eine Menge von geordneten Paaren. f heißt Funktion, falls für alle a, b1, b2
gilt: aus (a, b1) ∈ f und (a, b2) ∈ f folgt b1 = b2. (Rechtseindeutigkeit)
Funktionen sind rechtseindeutige Relationen!
Wir schreiben auch f (a) = b für (a, b) ∈ f .
Definition 20. [Bild unter einer Funktion]
Ist f eine Funktion und f (a) = b, so heißt b das Bild von a unter f .
Definition 21. [Funktion von A nach B ]
Sei f eine Funktion und seien A, B Mengen. f heißt Funktion von A nach B , in
Zeichen f : A → B , falls gilt: dom(f ) = A und rng(f ) ⊆ B . Die Menge B
werden wir auch Zielbereich nennen.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 40
Mengen und das Unendliche
Beispiel: Bei f (n) = 0 für alle n ∈ N schreibt man z.B. f : N → N.
Definition 22. [injektiv,surjektiv,bijektiv]
Sei f eine Funktion.
1. f heißt injektiv, falls für alle a1, a2, b gilt: aus f (a1) = b und f (a2) = b folgt
a1 = a2. (Linkseindeutigkeit: es werden nur verschiedene b „getroffen“!)
2. f heißt surjektiv nach B , falls gilt rng(f ) = B , d.h. für alle b ∈ B existiert ein
a ∈ dom(f ) mit f (a) = b. (Alle b aus B werden getroffen!)
3. f heißt bijektiv von A nach B , falls gilt: f ist injektiv und surjektiv von A nach
B . (Jedes b aus B wird genau einmal getroffen!)
Beachten Sie: die Eigenschaft injektiv benötigt keinen Zielbereich, um gelten zu
können (also können alle Funktionen nach Def. 19 diese Eigenschaft haben). Surjektivität und Bijektivität machen hingegen nur Sinn, wenn man sich für einen bestimmten Zielbereich interessiert (also können nur Funktionen, für die ein solcher
Bezug nach Def. 21 angegeben wurde, auf Surjektivität und Bijektivität untersucht
werden).
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 41
Mengen und das Unendliche
Einige einfache Folgerungen (s. auch Übung):
1. Ist f : A → B , so ist f : A → rng(f ) surjektiv.
2. Ist f : A → B injektiv, so ist f : A → rng(f ) bijektiv.
3. Ist f : A → B bijektiv, so existiert ein bijektives g : B → A.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 42
Mengen und das Unendliche
Einfache Operationen auf Funktionen (I)
Definition 23. [Einschränkung und Fortsetzung einer Funktion]
Seien f : A → B und C ⊆ A. Dann setzen wir f |C = {(a, b) ∈ f |a ∈ C}. f |C
heißt die Einschränkung von f auf C .
Sind f, g Funktionen mit f ⊆ g , so heißt g eine Fortsetzung von f .
Definition 24. [Umkehrfunktion]
Sei f eine injektive Funktion. Dann ist die Umkehrfunktion von f , in Zeichen f −1,
definiert durch f −1 = {(b, a)|(a, b) ∈ f }.
−1
Es gilt: f −1 ist injektiv, dom(f −1) = rng(f ), rng(f −1) = dom(f ), f −1
= f.
Beachten Sie: Injektivität und Umkehrbarkeit bauen auf dem allgemeinen Funktionsbegriff aus Def. 19 auf, sie benötigen also keinen Zielbereich, um zu „funktionieren“.
Definition 25. [Verkettung/Verknüpfung von Funktion]
Seien f : A → B und g : B → C . Dann ist die Verkettung g ◦ f der Funktionen
f und g (sprich: g nach f), definiert durch: g ◦ f = {(a, c)|a ∈ A, (f (a), c) ∈ g}.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 43
Mengen und das Unendliche
Einfache Operationen auf Funktionen (II)
Definition 26. [Identität]
Sei A eine Menge. Dann ist die Identität auf A, in Zeichen idA, definiert durch
idA = {(a, a)|a ∈ A}.
Es gilt idA : A → A. idA ist natürlich eine Bijektion von A nach A.
Satz 27. [Verkettung zur Identität]
(a) Die folgenden Aussagen sind äquivalent:
(i) f : A → B ist injektiv
(ii) Es existiert eine Funktion g : B → A mit g ◦ f = idA
(b) Die folgenden Aussagen sind äquivalent:
(i) f : A → B ist surjektiv
(ii) Es existiert eine Funktion g : B → A mit f ◦ g = idB
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 44
Mengen und das Unendliche
Beweis zur ersten Äquivalenz
Beweis: Beachten Sie zunächst, dass zwei Aussagen (i) und (ii) äquivalent sind,
in Zeichen (i) ⇔ (ii), wenn die eine jeweils aus der anderen folgt, also (i) ⇒ (ii) und
(ii) ⇒ (i). Äquivalenzen von drei oder mehr Aussagen kann man zeigen, indem man
Ringe von Schlüssen bildet. Bei drei Aussagen (i),(ii),(iii) zeigt man dann z.B. (i)
⇒ (ii), (ii) ⇒ (iii) und (iii) ⇒ (i). Aus der Transitivität der logischen Implikation folgt
dann auch (i) ⇒ (iii), (iii) ⇒ (ii) und (ii) ⇒ (i), und damit folgen die gewünschten
Äquivalenzen.
Hier ist aber nur die Äquivalenz von zwei Aussagen zu zeigen. Nun zu (a): Wir
zeigen zunächst (i) ⇒ (ii), d.h. wir zeigen, dass aus der Injektivität einer Funktion
f : A → B folgt, dass eine Funktion g : B → A existiert mit g ◦ f = idA.4
Seien B 0 = rng(f ) und a ∈ A beliebig. Definiere nun g : B → A durch g|B 0 =
f −1 (das sind also die Fälle, in denen b aus dem Range von f stammt) und g(b) = a
4 Unsere Aufgabe ist es, eine Funktion g tatsächlich anzugeben, die die gewünschte Eigenschaft hat. Intuitiv ist klar,
dass die Umkehrfunktion von f eine wichtige Rolle spielen wird. Allerdings trifft f nicht notwendigerweise alle Elemente
von B , deshalb müssen wir die Umkehrfunktion noch sinnvoll erweitern für die Fälle, in denen ein b ∈ B nicht im Range
von f liegt.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 45
Mengen und das Unendliche
für b 6∈ B 0. Dann ist natürlich g ◦ f = idA.
Nun zur Richtung (ii) ⇒ (i): Sei f (a1) = b = f (a2) für a1, a2 ∈ A. Dann ist
g(b) = g(f (a1)) = idA(a1) = a1 und g(b) = g(f (a2)) = idA(a2) = a2, also
a1 = a2. Also ist f injektiv.5
Ganz ähnlich gehen wir beim Beweis von (b) vor:
(i) ⇒ (ii): Definiere g : B → A durch g(b) = „ein a ∈ A mit f (a) = b“. Beachte:
Ein a ∈ A mit f (a) = b existiert wg. rng(f ) = B nach Voraussetzung. Dann
gilt g : B → A und nach Definition von g ist f (g(b)) = b für alle b ∈ B . Also
f ◦ g = idB .
(ii) ⇒ (i): Sei b ∈ B . Wg. f ◦ g = idB ist f (g(b)) = b. Also ist b ∈ rng(f ), denn
f (a) = b für a = g(b). Also ist f : A → B surjektiv.
5 Hier wird also die Injektivitätbedingung geprüft – eine Funktion ist injektiv, wenn es kein Objekt in ihrem Range gibt,
das von zwei Objekten des Domains getroffen wird – mit anderen Worten: wenn für zwei beliebig ausgewählte Objekte
aus dem Domain die Bilder gleich sind, dann müssen die Objekte selbst identisch sein.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 46
Mengen und das Unendliche
Forts. zu Funktionen
Definition 28. [Bild, Urbild]
Sei f eine Funktion. Weiter seien A ⊆ dom(f ) und B eine beliebige Menge. Wir
00
00
setzen f A = {f (a)|a ∈ A} und f −1 B = {a ∈ dom(f )|f (a) ∈ B}.
00
00
f heißt das Bild von A unter f (sprich: f zwei Strich von A). f −1 B heißt das
Urbild von B unter f .
00
00
Es gilt f A ⊆ rng(f ) für alle A ⊆ dom(f ) und f −1 B ⊆ dom(f ) für alle Mengen
B . (Warum?)
Manche sprechen anstelle von Funktion auch von Abbildung, Transformation, Zuordnung oder auch Operator. Das suggeriert irgendeine „Tätigkeit“ – wir nehmen
hier anstelle einer etwas vagen, leicht geheimnisvoll scheinenden Position, die einer
Funktion etwas Dynamisches zuschreibt, eine Position ein, in der die Funktion nichts
tut, sondern (im statischen Sinne) nur ist. [In Anlehnung an P.R.Halmos, 1982, in „Naive Mengenlehre“]
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 47
Mengen und das Unendliche
Größenvergleiche
Wie vergleichen Neandertaler zwei große Haufen Nüsse? Große Zahlen kennen Sie
nicht! Wiegen können Sie nicht!
Der Algorithmus des Abtragens:
Nimm je eine Nuss von Haufen H1 und eine von Haufen H2 weg und lege sie
beiseite.
Wiederhole diese Paarbildung, bis einer der beiden Haufen aufgebraucht ist.
Mögliche Resultate:
(I) H1 ist am Ende aufgebraucht.
(II) H2 ist am Ende aufgebraucht.
(III) H1 und H2 sind am Ende aufgebraucht.
Das entspricht den drei Fällen:
(I) H1 hat weniger oder ebensoviele Nüsse wie H2.
(II) H2 hat weniger oder ebensoviele Nüsse wie H1.
(III) H1 und H2 haben gleichviele Nüsse.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 48
Mengen und das Unendliche
Diese Entsprechung bezeichnen wir als Korrektheit der Algorithmus, von der wir
intuitiv überzeugt sind (hoffentlich ;)
Übersetzen wir das bisher gesehene in unsere Sprache der Mengenlehre: Der Algorithmus erzeugt eine Funktion: Sei f die Menge aller Paare (a, b) ∈ H1 × H2,
die während des Abtragens entstehen.
Im Fall (I) ist f : H1 → H2 injektiv.
Im Fall (II) ist g = f −1 = {(b, a)|(a, b) ∈ f }. Dann ist g : H2 → H1 injektiv.
Im Fall (III) ist f : H1 → H2 bijektiv.
Aus der Korrektheit des Algorithmus folgt, dass das Ergebnis nicht vom Verlauf der
Paarbildung abhängt, d.h. jede mögliche Durchführung bzw. Funktion f , liefert das
gleiche Resultat.
Wir setzen:
|H1| ≤ |H2|, falls (I) eintritt.
|H2| ≤ |H1|, falls (II) eintritt.
|H1| = |H2|, falls (III) eintritt.
Beachte: Die Begriffe mehr, weniger, gleichviel beruhen nicht auf dem Zahlbegriff!
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 49
Mengen und das Unendliche
Definition 29. [Größenvergleich] Seien A und B Mengen. Dann ist die Mächtigkeit von A kleinergleich der Mächtigkeit von B , in Zeichen |A| ≤ |B|, falls gilt:
Es existiert ein injektives f : A → B .
Definition 30. [Gleichmächtig] Seien A und B Mengen. Dann ist A gleichmächtig zu B , in Zeichen |A| = |B|, falls gilt: Es existiert ein bijektives f : A → B .
Wir kommen jetzt zu einem wichtigen Satz, den C ANTOR 1883 formulierte und den
der 19-jährige F ELIX B ERNSTEIN 1897 bewies, den Satz von Cantor-Bernstein.
Der Satz selbst besagt etwas scheinbar triviales: Aus |M | ≤ |N | und |N | ≤ |M |
folgt |N | = |M |, d.h., wenn es zwei Injektionen f : M → N und g : N → M gibt,
so gibt es auch eine Bijektion h : M → N . Dies ist allerdings keineswegs klar!
B ERNSTEIN benötigte zunächst einen vorbereitenden Satz:
Satz 31. [Inklusionssatz(**)] 6 Seien M, N Mengen mit N ⊆ M und |N | = |M |.
Weiter sei N 0 eine Menge mit N ⊆ N 0 ⊆ M . Dann gilt |N 0| = |M | = |N |.
6 (**)Gibt es solche Mengen N, M, N 0 überhaupt? Nehmen wir mal an, dass alle Mengen paarweise verschieden
sind. Dann folgt aus N ⊆ M , dass jedes Element von N auch in M ist. Wir können also in jedem Fall eine Injektion
von N nach M finden, nämlich die Identität, die jedem Element aus dem Definitionsbereich sich selbst zuordnet. Aus
|N | = |M | folgt, dass es sogar eine Bijektion zwischen M und N gibt. Im Endlichen folgt hier unmittelbar N = M !
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 50
Mengen und das Unendliche
Satz 32. [Inklusionssatz, alternative Formulierung**]
Seien A, B, C paarweise disjunkte Mengen mit |A ∪ B ∪ C| = |A|. Dann gilt auch
|A ∪ B ∪ C| = |A ∪ B|.
Satz 33. [Äquivalenzsatz von C ANTOR -B ERNSTEIN]
Seien M, Q Mengen mit |M | ≤ |Q| und |Q| ≤ |M |. Dann gilt |M | = |Q|.
Definition 34. [Echt kleinere Mächtigkeit]
Seien A, B Mengen. A ist von echt kleinerer Mächtigkeit als B , in Zeichen |A| <
|B|, falls |A| ≤ |B| und |A| 6= |B|.
Folgerung: Aus |A| < |B| und |B| < |C| folgt |A| < |C|.
Satz 35. [Vergleichbarkeitssatz]
Seien M, N Mengen. Dann gilt |M | ≤ |N | oder |N | ≤ |M |.
Und damit ergibt sich der Rest von selbst (denn aus N ⊆ N 0 ⊆ M und N = M folgt unmittelbar N 0 = M – und
der Inklusionssatz ist ziemlich inhaltsleer). Allerdings können wir das noch gar nicht so genau zeigen, denn der Begriff
der Endlichkeit ist noch nicht definiert. Aber im Unendlichen wird der Inklusionssatz wieder interessant (fragen sie sich
einmal, ob es mehr natürliche Zahlen gibt, als gerade natürliche Zahlen!)
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 51
Mengen und das Unendliche
Unendliche Mengen (I)
Seien N = {0, 1, 2, 3, . . . } und G = {0, 2, 4, 6, . . . } die Menge der geraden
Zahlen. Definiere f : N → G durch
f (n) = 2n für n ∈ N.
Dann ist f : N → G bijektiv! Es gilt also: |N| = |G|. Zudem ist G ⊂ N.
Beachten Sie, dass beide „Größenbegriffe“ (Mächtigkeit und Inklusion) durchaus
sinnvoll sind. Bedenken Sie aber auch, dass manche Mengen hinsichtlich der Inklusion gar nicht in eine Ordnung gebracht werden können – die Teilmengenbeziehung
ist weniger „universell“ als der Mächtigkeitsbegriff (wenn es um „Größe“ geht), z.B.
können Sie mit der Teilmengenrelation nicht eine Menge von Äpfeln und eine Menge
von Birnen vergleichen.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 52
Mengen und das Unendliche
Unendliche Mengen (II)
Definition 36. [Unendlichkeit nach Dedekind]
Sei M eine Menge. M heißt unendlich, falls es eine echte Teilmenge N von M
gibt, die sich bijektiv auf M abbilden läßt, d.h. es gibt ein N ⊂ M mit |N | = |M |.
Hilbert’sche Hotel: Dieses sehr spezielle Hotel hat für jede natürliche Zahl ein Zimmer – allerdings sind alle Zimmer belegt! Dennoch schafft es der Portier immer
wieder, neue Gäste unterzubringen:
(i) Jeder alte Gast zieht von Zimmer n nach Zimmer n + 1.
(ii) Der neue Gast wird in Zimmer 0 einquartiert.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 53
Mengen und das Unendliche
Einige Sätze über unendliche Mengen
Satz 37. [Übertragung der Unendlichkeit auf Obermengen]
Seien A, B Mengen und es gelte A ⊆ B . Dann gilt: Ist A unendlich, so ist auch B
unendlich.
Beweis: Sei A unendlich. Dann existieren A0 ⊂ A und f : A → A0 bijektiv.
Definiere g : B → B durch:
(
g(b) =
f (b), falls b ∈ A
b,
falls b 6∈ A.
Also g = f ∪ idB−A. Wg. f : A → A injektiv ist g injektiv. Weiter ist rng(g) =
rng(f ) ∪ (B − A) = A0 ∪ (B − A) ⊂ B wegen A0 ⊂ A, A ⊆ B . Also ist g eine
Bijektion von B auf die echte Teilmenge rng(g) von B , und damit ist B unendlich.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 54
Mengen und das Unendliche
Satz 38. [Übertragung der Unendlichkeit auf gleichmächtige u. größere Mengen]
Seien A, B Mengen und es gelte |A| ≤ |B|. Dann gilt: Ist A unendlich, so ist
auch B unendlich.
Satz 39. [Entfernen eines Elementes]
Sei A eine unendliche Menge. Weiter seien a ∈ A und B = A − {a}. Dann ist
auch B unendlich.
Korollar 40. [Hinzufügen eines Elementes]
Sei B eine endliche Menge, a ein beliebiges Objekt, a 6∈ B . Weiter sei A = B ∪
{a}. Dann ist auch A endlich.
Der Apparat, der uns zur Verfügung steht, ist bisher ein wenig schwerfällig. Wir verknüpfen jetzt die Endlichkeit enger mit den natürlichen Zahlen:
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 55
Mengen und das Unendliche
Endlichkeit und natürliche Zahlen
Definition 41. [Die Mengen n̄ für n ∈ N]
Für n ∈ N sei n̄ = {0, 1, . . . , n − 1} = {m ∈ N|m < n}.
Übrigens: Funktioniert der Algorithmus des Abtragens eigentlich, wenn beide Mengen unendlich sind?
Satz 42. [Endlichkeit von n̄]
Jede Menge n̄ ⊂ N ist endlich.
Korollar 43.
Seien n, m ∈ N und sei f : n̄ → m̄ bijektiv. Dann gilt n = m.
Satz 44. [Einbettbarkeit der natürlichen Zahlen in unendliche Mengen]
Sei M eine Menge. Dann sind äquivalent:
(i) M ist unendlich
(ii) |N| ≤ |M |.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 56
Mengen und das Unendliche
Satz 45. [Charakterisierung der endlichen Mengen mit Hilfe der natürlichen Zahlen]
Sei M eine Menge. Dann sind äquivalent:
(i) M ist endlich
(ii) Es existiert ein n ∈ N mit |M | = |n̄|.
Die Vereinigung zweier endlicher Mengen ist endlich.
Die Vereinigung endlich vieler endlicher Mengen ist endlich.
Alternative Definition von Endlichkeit/Unendlichkeit:
Eine Menge M ist endlich, falls es ein n ∈ N gibt mit |M | = |n̄|. Eine Menge ist
unendlich, falls sie nicht endlich ist.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 57
Mengen und das Unendliche
Anmerkungen zur Unendlichkeit
DAVID H ILBERT, 1925: „Durch diese Bemerkung wollte ich nur dartun, daß die endgültige Aufklärung über das Wesen des Unendlichen weit über den Bereich spezieller fachwissenschaftlicher Interessen vielmehr zur Ehre des menschlichen Verstandes selbst notwendig geworden ist . . . “
„Die Endlichkeit des Wirklichen haben wir nun in zwei Richtungen festgestellt: nach
dem Unendlichkleinen und dem Unendlichgroßen. Dennoch könnte es sehr wohl
zutreffen, daß das Unendliche in unserem Denken einen wohlberechtigten Platz hat
und die Rolle eines unentbehrlichen Begriffs einnimmt . . . “
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 58
Mengen und das Unendliche
Abzählbare Mengen
Definition 46. [Abzählbare Mengen] Eine Menge M heißt abzählbar, falls gilt:
(i) M ist endlich, oder
(ii) es existiert ein f : N → M bijektiv.
Satz 47. Sei M eine Menge. Dann sind äquivalent:
M ist abzählbar,
|M | ≤ |N|.
Beweis: (i) ⇒ (ii): Sei M abzählbar. Ist M endlich, so existiert ein n̄ mit |M | = |n̄|,
und dann gilt offenbar |M | ≤ |N|. Ist |M | = |N|, so ist trivialerweise |M | ≤ |N|
(ii) ⇒ (i): Sei |M | ≤ |N| und f : M → N injektiv. Definiere, solange möglich,
x0 = min(rng(f )), xn+1 = min(rng(f ) − {x0, . . . , xn}).
Ist n minimal mit xn nicht definiert, so ist |M | = |n̄|. Ist xn definiert für alle n ∈ N,
so gilt |M | = |N|, denn g : N → N mit g(n) = xn für n ∈ N ist bijektiv. Also ist M
abzählbar.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 59
Mengen und das Unendliche
Satz 48. Sei M eine unendliche Menge. Dann existiert eine abzählbar unendliche
Teilmenge von M .
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 60
Mengen und das Unendliche
Forts. Abzählbarkeit
Die „entscheidende“ Frage: Ist jede Menge abzählbar?
Es folgen einige Beispiel: Sind die ganzen Zahlen abzählbar?
Z = {. . . , −1, 0, 1, . . . }
f : Z → N definiert durch
f (x) =
(
2x,
falls x ≥ 0,
−2x − 1 falls x < 0
(1)
Dann ist f bijektiv!
Also ist Z abzählbar!
Satz 49. Seien A und B abzählbar, dann ist auch A ∪ B abzählbar!
Beweis: Übung!
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 61
Mengen und das Unendliche
Forts. Abzählbarkeit
Ist N × N abzählbar?
Satz 50. N × N ist abzählbar.
Beweis: Hier hilft die berühmte Cantor’sche Paarungsfunktion: definiere π : N ×
N → N bijektiv durch
π(a, b) = 1/2(a + b)(a + b + 1) + a.
Beispiel: π(1, 2) = 1/2(1 + 2)(1 + 2 + 1) + 1 = 7
Übrigens: Es gibt nur dieses eine Polynom zweiten Grades, das N × N aufzählen
kann (und natürlich seine symmetrische Form).
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 62
Mengen und das Unendliche
Forts. Abzählbarkeit
Das Ergebnis kann man auf höhere Dimensionen verallgemeinern: ein πn : Nn → N
existiert für alle n ≥ 2! (und ist dann ein Polynom n-ten Grades).
Satz 51. Eine Vereinigung abzählbar vieler abzählbarer Mengen ist abzählbar!
Beweis: Seien An, n ∈ N, abzählbare Mengen. Für jedes n ∈ N fixieren wir ein
fn : An → N injektiv.
Sei A =
funktion).
S
n∈N
An. Sei π : N × N → N bijektiv (etwa die Cantor’sche Paarungs-
Wir definieren g : A → N durch:
g(x) = π(n, fn(x)),
wobei n = „das kleinste n ∈ N mit x ∈ An“ ist. Dann ist g injektiv, also |A| ≤ |N|.
Erläuterungen: Wie kommt man auf die Idee, ein solches g anzugeben – und wieso
ist es injektiv? Versuchen wir mal, den Gedankengang mit einem Beispiel nachzuvollziehen. Zunächst sollten wir aber festhalten, was wir tun müssen: wir suchen
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 63
Mengen und das Unendliche
eine injektive Abbildung von A (das steht für die Vereinigung der abzählbar vielen
abzählbaren Mengen) in die natürlichen Zahlen, denn wir wissen nach Satz 47, dass
A dann abzählbar ist. Wie finden wir eine solche Abbildung?
Zunächst schauen wir mal ein Beispiel für die Mengen An an, z.B. so: A0 =
{1, 5, 7}, A1 = {2, 3, 4, 5}, A2 = {2, 4, 6, . . . }, A3 = {1, 3, 5, 7, . . . }, . . . .
Weil jede Menge An abzählbar ist, muß es für jede eine Funktion fn geben, die injektiv von An nach N zeigt, also jedem Element aus An eine Nummer zuordnet. Geben wir mal solche Funktionen für unsere Mengen von oben
an: f0 = {(1, 1), (5, 2), (7, 4)}, f1 = {(2, 1), (3, 2), (4, 3), (5, 4)}, f2 =
{(2, 2), (4, 4), (6, 6), . . . }, f3 = {(1, 1), (3, 2), (5, 3), (7, 4), (9, 5), (11, 6), . . . },
....
S
Eine erste Idee auf der Suche nach g könnte es sein, alle fn in
einen Topf zu werfen, also g =
=
n∈N fn zu bilden, d.h. hier g
{(1, 1), (5, 2), (7, 4), (2, 1), (3, 2), (4, 3), (5, 4), (2, 2), . . . }. Das ist aus zwei
Gründen problematisch. Schauen wir zunächst auf das erste Problem: g geht zwar
von A aus, aber es ist keine Funktion mehr! So wird z.B. die 5 auf die 2, die 4,
die 3 und eventuell auf weitere Zahlen abgebildet. Dieses Problem können wir wie
folgt heilen: wir suchen für jedes Element x aus A nach den Mengen, in denen es
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 64
Mengen und das Unendliche
vorkommt und bestimmen dann den kleinsten Index n dieser Mengen. Im Beispiel
wäre das die 0 für 1, 5, 7, die 1 für 2, 3, 4 (nicht die 5!), die 2 für 6, 8, . . . , die 3 für
9, 11, . . . usw.
Jetzt wollen wir mit dieser Regel in unser g nur alle Paare (x, fn(x))
aufnehmen. Beachten sie: für jedes x ∈ A gibt es jetzt genau ein
solches Paar, also ist das neue g eine Funktion. Es bleibt aber noch
das zweite Problem – schauen wir zunächst das neue g an: g
=
{(1, 1), (5, 2), (7, 4), (2, 1), (3, 2), (4, 3), (6, 6), (8, 8), . . . , (9, 5), (11, 6), . . . }.
Offensichtlich ist dieses g nicht injektiv, z.B. wird die 1 zweimal getroffen (von der
1 und der 2).
Wir können wir dieses Problem beseitigen? Wir können jedem x nicht nur den Funktionswert zuordnen, den er unter „seiner“ Funktion fn erhält, sondern auch noch
den Index der Funktion fn, wir ordnen jedem x also ein Paar (n, fn(x)) zu, d.h. wir
bilden eine Funktion g 0 = { (1, (0, 1)),(5, (0, 2)),(7, (0, 4)),(2, (1, 1)),(3, (1, 2)),
. . . }. Jetzt werden die getroffenen „Werte“, die jetzt geordnete Paare sind, nur genau einmal getroffen! So werden die beiden Zahlen 1 und 2, die oben noch beide
die 1 trafen, jetzt auf die Paare (0, 1) bzw. (1, 1) abgebildet – und das gilt natürlich immer: seien a1, a2 ∈ A mit a1 6= a2 und g 0(a1) = (n1, fn1 (a1)) und
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 65
Mengen und das Unendliche
g 0(a2) = (n2, fn2 (a2)). Dann gilt entweder n1 6= n2 (und damit sind die Paare
unterschiedlich) oder es gilt n1 = n2. Dann werden a1 und a2 aber von derselben
Funktion fn1 mit einem Funktionswert versehen. Weil aber jedes fn injektiv ist, muß
dann mit a1 6= a2 auch fn1 (a1) 6= fn1 (a2) gelten – also ist g 0 injektiv.
Jetzt haben wir also eine injektive Abbildung gefunden, die jedes x ∈ A mit einem
Paar aus N × N versorgt – wir wollen aber eine Funktion, die A nach N abbildet! Das
ist aber kein wirkliches Problem: wir wissen schon, dass N × N sich bijekttiv (also
auch injektiv!) nach N abbilden lässt, nämlich mit der Cantor’schen Paarungsfunktion π ! Die im Beweis angegebene Funktion g ist nichts anderes, als die Hintereinanderausführung von unserem gerade entwickelten g 0 und π , d.h. g = π ◦ g 0 d.d.
g(x) = π(g 0(x)) = π(n, fn(x))7, wobei n eben der kleinste Index der Mengen ist,
in denen x vorkommt. Das war’s – eigentlich ganz clever, oder?
7 Wir sind hier, wie auch bei er Einführung der Cantorschen Paarungsfunktion etwas lax in der Schreibweise, den wir
machen aus einem geordneten Paar (a, b) einfach zwei Parameter a und b, aber das ist als vereinfachende Schreibweise
völlig ok, solange keine Mißverständnisse entstehen können.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 66
Mengen und das Unendliche
Forts. Abzählbarkeit
Sind die rationalen Zahlen abzählbar?
Satz 52. Q ist abzählbar.
Beweis: Idee: Wir zerlegen Q in abzählbar viele abzählbare Teilmengen (und dann
wenden wir einfach Satzes 51!) an!). Ausführung: Für q ∈ Q seien N (q) bzw. Z(q)
Nenner bzw. Zähler des gekürzten Bruches |q|, wobei |q| = q für q ≥ 0 bzw.
|q| = −q für q < 0. Wir setzen für n ∈ N An = {q ∈ Q|N (q) + Z(q) = n}.
Dann ist jedes An abzählbar (sogar endlich!), und Q = n∈N An. Also ist Q abzählbar.
S
Veranschaulichung: Wie sehen die An aus? Z.B. ist A0 = {0}, A1 = {}, A2 = {1, −1}, A3 = {1/2, −1/2, 2, −2}
usw. 8
0
Anmerkung: Hinter diesem Beweis steht die folgende Spiral-Aufzählung des Z2 -Gitters. Für n ∈ N setzen wir An
0
= {(a, b) ∈ R2 | |a| + |b| = n und |a|, |b| ≤ n}. Die Mengen An sind Quadrate im Raum R2 mit den Ecken
(n, 0), (0, n), (−n, 0), (0, −n).
8A
1 ist leer, weil wir nur gekürzte Brüche betrachten und definieren wollen, dass 0 die gekürzte Variante für alle
Brüche der Form 0/m steht. Wenn wir das nicht wollen, könnten wir auch 0 in jede Menge aufnehmen.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 67
Mengen und das Unendliche
Forts. Abzählbarkeit
Sind die reellen Zahlen abzählbar? Zunächst ein wenig Vorbereitung:
Definition 53. [Überabzählbare Mengen] Sei M eine Menge. M heißt überabzählbar, falls M nicht abzählbar ist.
Anmerkungen – offenbar sind die folgenden Aussagen äquivalent:
(i) M ist überabzählbar.
(ii) non(|M | ≤ |N|), d.h. es existiert kein injektives f : M → N.
(iii) Es existiert kein surjektives f : N → M
(iv) |N| < |M |.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 68
Mengen und das Unendliche
Forts. Abzählbarkeit der reellen Zahlen?
Satz 54. [Satz von C ANTOR über die Überabzählbarkeit der reellen Zahlen]
Die Menge R der reellen Zahlen ist überabzählbar.
Beweis: Es genügt zu zeigen: Es existiert kein surjektives f : N → R. Sei hierzu
f : N → R beliebig. Wir finden ein x ∈ R mit x 6∈ rng(f ) wie folgt.
Für n ∈ N schreiben wir f (n) in kanonischer unendlicher Dezimaldarstellung (mit
0 = 0, 0000 . . . ). Sei also
f (0) = z0, a0,0a0,1a0,2 . . .
f (1) = z1, a1,0a1,1a1,2 . . .
f (2) = z2, a2,0a2,1a2,2 . . .
f (3) = z3, a3,0a3,1a3,2 . . .
...
f (n) = zn, an,0an,1an,2 . . .
...
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 69
Mengen und das Unendliche
Wir definieren x = 0, b0b1b2 · · · ∈ R durch
(
bn =
1,
falls an,n = 2,
2,
falls an,n 6= 2.
Dann ist x in kanonischer Dezimaldarstellung (also eine reele Zahl), die sich aber
von jeder Zahl im Range von f an mindestens einer Stelle unterscheidet, denn für
jedes f (n) gilt, an,n 6= bn – also wird nicht jedes Element von R getroffen, d.h., f ist
nicht surjektiv, da x 6∈ rng(f )! Diese Beweismethode heißt Diagonalisierung, weil
wir eine Zahl konstruiert haben, die von Ziffern auf der Diagonale der angenommenen Tabelle abweicht. Merken sie sich: es geht darum, eine Zahl (oder später auch
etwas anderes) zu konstruieren, die nicht im Range einer vermeintlich surjektiven
Funktion liegen kann.
Korollar 55. [Jedes reelle Intervall ist überabzählbar]
Seien x, y ∈ R, x < y . Dann ist ]x, y[= {z ∈ R|x < z < y} überabzählbar.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 70
Mengen und das Unendliche
Weitere Resultate zur Überabzählbarkeit
Satz 56. [Subtraktion abzählbarer Mengen] Sei M eine überabzählbare Menge.
Weiter sei A ⊆ M abzählbar. Dann gilt |M − A| = |M |.
Satz 57. Es gilt |R| = |P(N)|.
Satz 58. [Satz von C ANTOR über die Potenzmengen] Sei M eine Menge und
P(M ) = {X|X ⊆ M } die Potenzmenge von M . Dann gilt |M | < |P(M )|.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 71
Mengen und das Unendliche
Exkurs: Das Kontinuumsproblem
Cantors Kontinuumsproblem: Folgen die reellen Zahlen in der Hierarchie der Mächtigkeiten unmittelbar nach den natürlichen Zahlen oder gibt es eine Menge M , für
die gilt |N| < |M | < |R|?
H ILBERT (ein berühmter Mathematiker, der lange in Göttingen lebte und lehrte und
1900 auf einem Mathematiker-Kongress in Paris eine berühmte Rede hielt, in der er
eine Liste mit den 23 seiner Ansicht nach wichtigsten Problemen, die die Mathematik
im nächsten Jahrhundert lösen sollte, formulierte) stellte das Kontinuumsproblem an
den Anfang seiner Liste!
Es wurde erst 1938 (K URT G ÖDEL) bzw. 1963 (PAUL C OHEN) gelöst - und zwar
durch den Beweis seiner Unlösbarkeit! (trotzdem beschäftigen sich Mathematiker
auch heute noch intensiv mit verwandten Fragestellungen - wir aber in dieser Veranstaltung nicht)
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 72
Mengen und das Unendliche
Ordnungen
Definition 59. [Lineare Ordnung] Sei M eine Menge und sei < ⊆ M × M eine
zweistellige Relation auf M . < heißt lineare Ordnung auf M , falls für alle a, b, c ∈
M gilt:
(i) non(a < a) (Irreflexivität)
(ii) aus a < b und b < c folgt a < c (Transitivität)
(ii) a < b oder a = b oder b < a (Linearität)
Beispiele: (N, <) etc.
Anmerkung: Relationen, die irreflexiv und transitiv sind, heißen auch partielle Ordnungen (d.h., alle linearen Ordnungen sind auch partiell, aber nicht umgekehrt).
Beispiele s. Übungen.
Zur Sprechweise: Ist X ⊆ M und s ∈ M , so bedeutet X < s, dass x < s für
alle x ∈ X . Analog sind X ≤ s, s < X und s ≤ X definiert. s heißt <-kleinstes
Element der Ordnung, falls s ≤ M . Analog ist das <-größte Element definiert.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 73
Mengen und das Unendliche
Wohlordnungen
Definition 60. [Wohlordnung] Sei (M, <) eine lineare Ordnung. (M, <) heißt
Wohlordnung auf M , falls jede nichtleere Teilmenge M 0 von M ein <-kleinstes
Element hat, d.h. es gibt ein m ∈ M mit m ∈ M 0 und m ≤ x für alle x ∈ M 0.
(R, <) ist keine Wohlordnung, z.B. ist 0 die kleinste untere Schranke für die Menge
M 0 = {1/n|n ∈ N, n > 1} ⊆ R, aber 0 6∈ M 0.
Bemerkung: Es gilt der folgende Wohlordnungssatz von Z ERMELO:
Sei M eine Menge, dann existiert eine Wohlordnung < auf M .
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 74
Mengen und das Unendliche
Beweis des Induktionsprinzips
Induktionsprinzip: Sei E(n) eine Aussage. Es gelte:
(1) E(0)
(2) Für alle n ∈ N gilt: aus E(n) folgt E(n + 1)
Dann gilt E(n) für alle n ∈ N.
Beweisbar in der Mengenlehre (hier durch Widerspruch): Angenommen, es gibt
l ∈ N mit non E(l), d.h. die Eigenschaft gilt nicht für dieses l. Dann ist A = {l ∈
N| non E(l)} 6= ∅.
Da (N, <) wohlgeordnet ist, hat A ein kleinstes Element k, d.h. die Wohlordnungseigenschaft garantiert uns, dass wir ein konkretes Element aus der Menge A „in die
Hand“ nehmen können.
Nach (1) ist k 6= 0, denn sonst wäre die Eigenschaft ja erfüllt. Sei also k = m + 1
– ein solches m aus N existiert immer, denn k ist ja größer als 0 und zu jedem
Element n aus N − {0} gibt es einen Nachfolger n + 1.
Nach Definition von A und k gilt E(m), denn m muss ausserhalb von A liegen,
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 75
Mengen und das Unendliche
sonst könnte k nicht das kleinste Element aus N sein, für das die Aussage nicht
erfüllt ist.
Nach (2) folgt aus E(m) aber E(m + 1), also E(k) wg. m + 1 = k im Widerspruch
zur Annahme, dass k ∈ A, es gibt also keine kleineste Element in A und damit gar
kein Element, also kann es auch kein l ∈ N geben, für das die Aussage nicht gilt!
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 76
Mengen und das Unendliche
Ein Paradox droht!
Erinnern Sie sich an unseren Barbier! Hier eine Variante – das RUSSELL Z ERMELO ’ SCHE PARADOX:
Sei R = {x ist eine Menge und x 6∈ x} die Menge aller Mengen, die nicht Element
von sich selbst sind. Dann gilt für alle Mengen y : y ∈ R gdw. y 6∈ y . Insbesondere
gilt dies auch für y = R. Dies ergibt aber R ∈ R gdw. R 6∈ R. Widerspruch!
Eine „Lösung“ ist, solche selbst-referentiellen Konstrukte nicht zuzulassen in der
Formulierung von Eigenschaften – man kann dann R nicht mehr als „Ganzes“ im
Sinne der Mengenlehre betrachten (dies passt zu der Definition C ANTORS, die wir
zu Beginn gesehen haben: Eine Menge ist jede Vielheit, die als Ganzes aufgefasst
werden kann, sie sagt nicht etwa, dass jede Vielheit als Ganzes aufgefasst werden
kann. Wir werden im folgenden sehr knapp eine Axiomatisierung („gesetzte“ Regeln)
der Mengenlehre betrachten, die die Paradoxien vermeidet – und zwar nicht durch
Verbote, sondern durch Konstruktionsvorschriften „von unten“, die sicher stellen, das
selbst-referentielle Paradoxien nicht auftreten können).
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 77
Mengen und das Unendliche
Axiomatische Mengenlehre
Alle Objekte sind Mengen und die einzigen Grundrelationen zwischen
Mengen sind die Gleichheit „a = b“ und die Elementbeziehung „a ∈ b“.
F RAENKEL (1928): „Dieser Aufbau der Mengenlehre verläuft nach der sog. axiomatischen Methode, die vom historischen Bestand einer Wissenschaft (hier der
Mengenlehre) ausgeht, um durch logische Analyse der darin enthaltenen Begriffe, Methoden und Beweise die zu ihrer Begründung erforderlichen Prinzipien – die
Axiome – aufzusuchen und aus ihnen die Wissenschaft deduktiv herzuleiten. . . . “
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 78
Mengen und das Unendliche
Axiome der Mengenlehre – die ZFC-Axiome
Extensionalitätsaxiom (EXT): Zwei Mengen sind genau dann gleich, wenn sie die
gleichen Elemente haben.
Existenz der leeren Menge (LM): Es existiert eine Menge, welche keine Elemente
hat.
Paarmengenaxiom (PA): Zu je zwei Mengen x, y existiert eine Menge z , die genau
x und y als Elemente hat.
Vereinigungsmengenaxiom (VER): Zu jeder Menge x existiert eine Menge y , deren Elemente genau die Elemente der Elemente von x sind.9
Aussonderungsschema (AUS): Zu jeder Eigenschaft E und jeder Menge x gibt es
eine Menge y , die genau die Elemente von x enthält, auf die E zutrifft.10
9 Bedenken Sie, dass unsere Objekte alle Mengen sind. Hier geht es also um eine Menge y , die die Elemente der
Mengen, die in x enthalten sind – wie bei einer Vereinigung über die Mengen eines Mengensystems, s. Def. 11.
10 Beachten Sie: Dieses Schema „generiert“ unendlich viele Axiome, eines pro Eigenschaft, deshalb ist ein sog. Axiomenschema!
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 79
Mengen und das Unendliche
Unendlichkeitsaxiom (UN: Es existiert eine Menge x, die die leere Menge als Element enthält und die mit jedem ihrer Elemente y auf {y} als Element enthält. (Also
sind z.B. ∅, {∅}, {{∅}}, . . . Elemente von x).
Natürliche Zahlen: Sei E(u) die Eigenschaft „∅ ∈ u und mit jedem y ∈ u ist auch
{y} ∈ u.“. Wir setzen U = {u ∈ P(x)|E(u) (das ist das x aus dem Axiom). U existiert nach POT und AUS und besteht aus allen Teilmengen von x, die ∅, {∅}, . . .
enthalten. Insbesondere ist x ∈ U . Wir definierten nun: Z0 =
U . Dann besteht
Z0 genau aus den Mengen ∅, {∅}, . . . und jede Menge x0 aus dem Unendlichkeitsaxiom enthält Z0 als Teilmenge (Z0 ist die kleinste unendliche Menge).
T
Z0 kann man als Menge der natürlichen Zahlen auffassen:
0 = ∅, 1 = {∅}, 2 = {{∅}}, 3 = {{{∅}}} . . . , also
0 = ∅, 1 = {0}, 2 = {1}, 3 = {2}, . . .
Aus der Definition der Ordinalzahlen nach von N EUMANN und Z ERMELO folgt eine
andere Definition der natürlichen Zahlen (beides geht!):
0 = ∅, 1 = {0}, 2 = {0, 1}, 3 = {0, 1, 2}, . . .
Hier hat jedes n genau n Elemente und die ∈-Relation ordnet die natürlichen Zahlen linear (jede Zahl ist hier eine Menge, die in allen größeren Zahlen als Element
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 80
Mengen und das Unendliche
vorkommt).
Potenzmengenaxiom (POT): Zu jeder Menge x existiert eine Menge y , die genau
die Teilmengen von x als Elemente besitzt.
Ersetzungsschema (ERS): Zu jeder funktionalen Eigenschaft E und jeder Menge
M existiert eine Menge N , die genau diejenigen y als Elemente enthält, für welche
ein x ∈ M existiert mit E(x, y). [Funktionale Eigenschaft: Ist E(x, y) eine Eigenschaft in zwei Variablen x und y , so heißt E(x, y) funktional, falls es für jedes x
genau ein y gibt mit E(x, y).]
Fundierungsaxiom (FUN): Jede nichtleere Menge x hat ein Element y , das mit x
kein Element gemeinsam hat.
Auswahlaxiom (AC): Ist x eine Menge, deren Elemente nichtleer und paarweise
disjunkt sind, so existiert eine Menge y , die mit jedem Element von x genau ein
Element gemeinsam hat.
Diese Axiome bilden die sogenannten ZFC-Axiome (Zermelo-Fraenkel-Choice).
Verschiedene Auswahlen aus diesen Axiomen wurden auch benannt: Z = ZFC ohne
ERS, FUN, AC; ZF = ZFC ohne AC; ZFC− = ZFC ohne POT; ZF− = ZF ohne POT.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 81
Mengen und das Unendliche
ZFC und die Antinomien
In ZFC lösen sich die Antinomien auf: Für alle x existiert ein y ⊆ x mit y 6∈ x
(Satz nach Z ERMELO, 1908).
Beweis: Sei x beliebig. Nach dem Aussonderungsschema existiert y = {z ∈
x|z 6∈ z}. Dann gilt y 6∈ x, denn anderenfalls hätten wir y ∈ y gdw. y 6∈ y –
ein Widerspruch wie bei der RUSSELL -Z ERMELO-Paradoxie!
Daraus folgt z.B. unmittelbar, dass es kein x gibt mit der Eigenschaft: Für alle y ist
y ∈ x (denn ein solches x würde alle seine Teilmengen als Elemente enthalten, im
Widerspruch zum eben gezeigten Satz).
Ende des Mengenlehre-Kapitels!
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 82
Von Sprachen und Automaten
Sprachen, Grammatiken und Automaten: Von regulären
Sprachen über XML zu Turing
[ACHTUNG: Dieser Teil hat noch reichlich Lücken, manches, vor allem zeichnungsintensives, werden wir direkt auf Folien schreiben und nicht in diesem Foliensatz
erfassen]
Literatur:
• U. Hedtstück, FH Konstanz: Einführung in die Theoretische Informatik, Oldenbourg, 2. Auflage, 2004
• Wo uns der Tiefgang nicht ausreicht, werden wir z.B. auf Michael Sipser zurückgreifen.
• Wir werden auch einige Aspekte durch Bezug zu weiterer Literatur erläutern, z.B.
zu den XML-Schema-Standards des W3C.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 83
Von Sprachen und Automaten
Überblick
•
•
•
•
•
•
Formale Sprachen
Grammatiken
Endliche Automaten und reguläre Sprachen
Kellerautomaten und kontextfreie Sprachen
Exkurs: XML und Konsorten
Turingmaschinen/Komplexitätsklassen
In THI B werden wir uns dann, aufbauend auf dem Abschnitt über Turingmaschinen,
mit NP-vollständigen Problemen, Approximationen, Heuristiken und Randomisierung beschäftigen (ein super-spannendes, aktuelles und sehr anwendungsrelevantes Thema, wenn man harten Problemen zu Leibe rücken möchte).
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 84
Von Sprachen und Automaten
Warum?
„Mit Ergebnissen der Theoretischen Informatik sollen neue Wege erschlossen
und qualitative Fortschritte in der praktischen Informatik erzielt werden, die
einen grundlegenden Schritt nach vorn bedeuten.“ Ulrich Hedtstück
Zu formalen Sprachen und Automaten sagt er folgendes:
• Sollte zum Standardwissen jedes Informatikers (und jeder Informatikerin) gehören
• Grundlage des Compilerbaus, der Verarbeitung natürlicher Sprache und aller
Softwaretechniken, die das automatische Verarbeiten von formalen Objekten
zum Inhalt haben
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 85
Von Sprachen und Automaten
Warum?
Vor allem ist das Gebiet aber eine schöne Denkschule:
• die Begriffe sind klar definiert,
• die Resultate logisch,
• die Beweise der Resultate oft elegant
– so zu denken und von präzise zu fassenden Modellen mittels logischer Schlußweisen zu klaren Ergebnissen zu kommen, hilft bei jedem Problemlösen! (auch
wenn es mit der Präzision, z.B. der Spezifikation, oft ein wenig hapert, die Aufgabe bleibt: machen sie auf überzeugende Weise das Beste draus – und dabei kann
ihnen die skizzierte Vorgehensweise sehr helfen)
Zudem bildet die Automatentheorie, insbesondere die Turingmaschinen, die Grundlage für die Einordnung von Problemen in Schwierigkeitsklassen (Komplexitätsklassen) – und die daraus folgenden Bemühungen um Heuristiken, Approximationen
und die Identifikation von Klassen effizient lösbarer Probleminstanzen – ein wichtiges aktuelles Forschungsgebiet der Algorithmik (s. THIB)!
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 86
Von Sprachen und Automaten
Relation zum Compilerbau
Quellprogramm
⇓
Folge von Token
⇓
Ableitungsbaum
⇓
Zielprogramm
⇓
Optimiertes Zielprogramm
SCANNER:
PARSER:
lexikalische Analyse
SCANNER
syntaktische Analyse
PARSER
semantische Analyse, Codegenerierung
Codeoptimierung
Formalismus: reguläre Sprachen
Algorithmus: endliche Automaten
Formalismus: kontextfreie Sprachen
Algorithmus: Kellerautomaten
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 87
Von Sprachen und Automaten: Formale Sprachen
Formale Sprachen: Überblick
• Buchstaben, Wörter, Sprachen
• Klassen von unendlichen Sprachen
– Abzählbare Sprachen
– Aufzählbare Sprachen
– Entscheidbare Sprachen
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 88
Von Sprachen und Automaten: Formale Sprachen
Formale Sprachen
• Problem (?) natürlicher Sprache: Mehrdeutigkeit!
• Es gibt zwar gute Regelwerke für die grammatikalische Korrektheit (Syntax) von
einzelnen Sätzen
• . . . aber die Bedeutung (Semantik) eines Satzes bzw. Textes lässt sich nur ansatzweise mit formalen Methoden erfassen (sagt Hedtstück)
Öffne die Datei mit dem Editor – Attribut oder adverbiale Bestimmung?
Formale Sprachen, wie z.B. Programmiersprachen: mit einer relativ kleinen Menge
von syntaktischen Regeln können “Programme” erzeugt werden, die eine Semantik
aufweisen, die von Rechnern (weitgehend) verstanden wird.
Wir werden uns nun mit den Grundlagen der automatischen Verarbeitung von
formalen Sprachen beschäftigen und hauptsächlich syntaktische Aspekte berücksichtigen.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 89
Von Sprachen und Automaten: Formale Sprachen
Buchstaben, Wörter, Sprachen
Definition 1. [Alphabet, Wort, Sprache]
Ein Alphabet ist eine endliche, nichtleere Menge von Zeichen (auch Symbole oder
Buchstaben genannt), abgekürzt mit V (für vocabulary).
Beispiel: V = {0, 1}.
Sei V ein Alphabet und k ∈ N = {0, 1, . . . }. Eine endliche Folge (x1, . . . , xk )
von Zeichen, also xi ∈ V für 1 ≤ i ≤ k, heißt Wort über V der Länge k. Es gibt
genau ein Wort der Länge 0, das Leerwort, das wir mit bezeichnen. Die Länge
eines Wortes x wird mit |x| bezeichnet.
Beispiel: x = (0, 0, 1, 1, 0), |x| = 5.
Wir verwenden, wann immer es das Alphabet erlaubt, die Kurzschreibweise
x1x2x3 . . . xk .
Beispiel: x = 00110 (geht z.B. nicht bei V = {0, 1, 01}!)
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 90
Von Sprachen und Automaten: Formale Sprachen
V ∗ bezeichnet die Menge aller Wörter über V .
Beispiel: V ∗ = {, 0, 1, 00, 01, 10, 11, 000, . . . }.
Die Menge der nicht-leeren Wörter über V ist V + = V ∗\{}.
Beispiel: V + = {0, 1, 00, 01, 10, 11, 000, . . . }.
Jede (beliebige) Teilmenge L ⊆ V ∗ wird als Sprache oder formale Sprache bezeichnet.
WICHTIG: es gibt nur endlich viele Zeichen, aber unendlich viele
Worte, und also auch unendlich viele Sprachen (schon über einem
Alphabet)!
Frage: Ist die Menge der Worte über einem Alphabet abzählbar?
Frage: Ist die Menge der Sprachen zu einem Alphabet abzählbar?
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 91
Von Sprachen und Automaten: Formale Sprachen
Formale Sprachen: Verkettung
Die wichtigste Operation für Wörter ist das Hintereinanderhängen von Wörtern, also
die Verkettung:
Definition 61. [Verkettung]
Sei V ein Alphabet. Die Verkettung oder Konkatenation von Wörtern x, y ∈ V ∗
ergbit ein neues Wort xy , wobei gilt:
| {z } | {z }
xi, yj ∈ V
xy = x1 . . . xk y1 . . . yk
x
y
| {z }
Wir verwenden die Abkürzung wn = w . . . w
w ∈ V∗
n−mal
Dabei gilt:
• w0 = c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 92
Von Sprachen und Automaten: Formale Sprachen
• w = w = w für alle w ∈ V ∗ (insbesondere also = ).
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 93
Von Sprachen und Automaten: Formale Sprachen
Formale Sprachen: Beispiele
1. V = {0, 1}, L sei die Menge aller vorzeichenlosen Binärzahlen ohne führende
Nullen, also L = {0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, . . . }.
2. V = {0, 1, . . . , 9}, geeignet für natürliche Zahlen in Dezimaldarstellung.
3. V = {a, b, c, . . . , z}.
4. V = Menge der Worteinträge eines Lexikons. Z.B. bildet die Menge der Einträge
im Duden ein Alphabet (jetzt paßt auch das V für vocabulary endlich mal . . . ).
Aus diesem Alphabet kann man Sätze bauen, über die Korrektheit von Sätzen
kann dann mit Hilfe von Grammatiken entschieden werden.
5. V = ASCII oder UNICODE zur Formulierung von Programmen. Man unterscheidet zwei Betrachtungsebenen: Eingabesymbole (in C: Schlüsselwörter, Bezeichner, Literale, Operatoren und Begrenzer) – und diese darf man dann gemäß einer
Grammatik arrangieren:
6. V = Menge der Eingabesymbole einer Programmiersprache. Vorsicht: diese
Menge ist nur endlich, weil es Längenbegrenzungen für die Eingabesymbole gibt!
Auf dieser zweiten Stufe sind Programme nun Wörter von Eingabesymbolen. Als
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 94
Von Sprachen und Automaten: Formale Sprachen
Programmiersprache kann man die Menge aller endlichen Folgen von Eingabesymbolen, die ein korrektes Programm darstellen (Grammatiken bestimmen die
Korrektheit, s. weiter hinten) ansehen.
Beispiel:
while (x3 < 100) x3 += 1;
ist ein Teilwort eines Programms bestehend aus den Eingabesymbolen while
(Schlüsselwort), ( (Begrenzer), x3 (Bezeichner), < (Operator), 100 (Literal) usw.
(die White-Spaces ignorieren wir für den Moment).
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 95
Von Sprachen und Automaten: Formale Sprachen
Klassen von unendlichen Sprachen
Die Menge aller Wörter V ∗ über einem Alphabet V ist immer unendlich.
• V ∗ ist selbst eine (unendliche) Sprache.
• Wir wissen schon aus dem Mengenlehreteil, dass es auch im Unendlichen noch
(Größen-)Unterschiede gibt.
• Zu abzählbar und überabzählbar kommen jetzt noch weitere Begriffe, nämlich
aufzählbar und entscheidbar hinzu, die uns die Verbindung zu algorithmischen
Fragestellungen erlauben.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 96
Von Sprachen und Automaten: Formale Sprachen
Abzählbarkeit von Sprachen?
Siehe Definition 46!
Zur Erinnerung: eine Menge M ist abzählbar, wenn sie entweder endlich ist, oder
wir eine Bijektion f von M in die natürlichen Zahlen finden können (oder von N nach
M , wie sie wollen), d.h. man kann die Elemente von M mit den natürlichen Zahlen
durchnummerieren.
Sprachen sind natürlich auch bloß Mengen!
Übrigens kann man das obige auch ausdrücken, indem man sagt, dass M abzählbar ist, wenn es eine Surjektion von N in M gibt oder wenn M = ∅.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 97
Von Sprachen und Automaten: Formale Sprachen
Überabzählbarkeit
Wie wir schon wissen, ist eine Menge überabzählbar, wenn sie nicht abzählbar ist,
z.B. die Menge der reellen Zahlen.
Anstelle des Diagonalbeweises, den wir schon gesehen haben, wollen wir als Lockerungsübung die Überabzählbarkeit des Intervalls [0, 1] ⊂ R indirekt beweisen:
Beweis:
• Angenommen, wir könnten die reellen Zahlen im Einheitsintervall abzählen, also
von r1, r2 usw. sprechen (wir zählen aus Anschaulichkeitsgründen von 1 an).
• Dann ordnen wir jedem rk ein Intervall ik von reellen Zahlen mit der Breite 1k zu,
10
und zwar so, dass es vollständig im Einheitsintervall liegt (das geht klarerweise
immer) und rk in ihm enthalten ist.
• Da das Einheitsintervall die Breite 1 hat und die rellen Zahlen das Einheitsintervall lückenlos überdecken und jedes zugeordnete Intervall nicht-leer und im
Einheitsintervall ist, müsste die Summe S der Breiten der Intervalle mindesten 1
ergeben.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 98
Von Sprachen und Automaten: Formale Sprachen
• Es gilt aber natürlich:
S=
1
1
1
1
+ 2 + + 3 + · · · = 0, 1 + 0, 01 + 0, 001 + · · · = 0, 111 · · · =
10 10
10
9
(der Beweis macht ein paar Voraussetzungen, z.B. die Lückenlosigkeit der reellen
Zahlen, die man für den Diagonalbeweis nicht braucht, deshalb ist der ein wenig
schöner)
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 99
Von Sprachen und Automaten: Formale Sprachen
Abzählbarkeit von Sprachen
Satz 62. Die Menge V ∗ aller Wörter über einem Alphabet V ist abzählbar.
Beweis: Sei V = {x1, . . . , xn}.
• Wir definieren auf V eine Ordnungsrelation und nehmen ohne Beschränkung
der Allgemeinheit an, dass x1 x2 · · · xn gelte.
• Wir ordnen die Menge V ∗ der Wörter über V zunächst der Länge nach, beginnend beim kürzesten Wort .
• Bei gleicher Länge ordnen wir die Wörter lexikographisch, d.h. zunächst bestimmt das erste Zeichen des Wortes die Reihenfolge, bei gleichem ersten Zeichen kommt es auf das zweite Zeichen an usw. (wie im Telefonbuch).
• Damit haben wir aber schon eine Reihenfolge (=Abzählung) aller Wörter in V ∗
festgelegt, also eine Bijektion gefunden!
(Beispiel für V = {a, b} in ihrem Mitschrieb)
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 100
Von Sprachen und Automaten: Formale Sprachen
Abzählbarkeit von Sprachen
Satz 63. Jede Teilmenge einer abzählbaren Menge ist abzählbar.
Beweis: Übung.
Insgesamt ist also jede Sprache L ⊆ V ∗ über einem Alphabet V abzählbar!
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 101
Von Sprachen und Automaten: Formale Sprachen
Aufzählbare Sprachen
Eine noch etwas grobe Definition: Ein algorithmisches Verfahren oder ein Algorithmus ist eine Vorschrift, gegeben durch eine endliche Menge von Regeln, die ein
bestimmtes Problem löst: abhängig von Eingaben aus einer vorgegebenen Menge
soll schrittweise eine Ausgabe in einer bestimmten Form geliefert werden.
Wir dürfen uns hier unter Algorithmus ein Computerprogramm (z.B. in C oder Java) vorstellen. Gemäß der Church’schen These (die auch manchmal Church-TuringThese genannt wird) sind alle im intuitiven Sinne algorithmischen Verfahren durch
Computerprogramme modellierbar (wir untersuchen das später noch genauer). In
Kurzform:
Was machbar ist, können sie auch mit ihrer Lieblingsprogrammiersprache formulieren!
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 102
Von Sprachen und Automaten: Formale Sprachen
Aufzählbare Sprachen
Im Rechner kann man diejenigen abzählbaren Sprachen verarbeiten, deren Elemente durch ein Konstruktionsverfahren erzeugt werden können!11
Definition 64. [Aufzählbarkeit]
Eine Menge M ist aufzählbar (auch rekursiv aufzählbar oder semientscheidbar), falls es eine surjektive Funktion f : N → M und einen Algorithmus
gibt, der es gestattet, für jedes n ∈ N den Funktionswert f (n) zu berechnen (oder,
falls M = ∅).
Die Folge f (0), f (1), f (2), . . . heißt Aufzählung von M .
11 Nun, wenn man das “Nachdenken” über die Konzepte Abzählbarkeit usw. in geigneter Form im Computer abbildet,
dann ist das natürlich auch eine Form des (Meta-)Verarbeitens, das ist aber hier nicht gemeint, es geht unmittelbarer um
die Wörter der Sprache usw.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 103
Von Sprachen und Automaten: Formale Sprachen
Aufzählbare Sprachen
Da Sprachen Mengen sind, spricht man entsprechend von aufzählbaren Sprachen.
Satz 65. Jede endliche Menge ist aufzählbar.
Beweis: Sei M = {m0, . . . , mn} eine endliche Menge. Ein Programm zur Aufzählung von M kann nach dem folgenden Prinzip realisiert werden:
• Abhängig vom Eingabeparameter n ∈ N wird mit Hilfe geeigneter Fallunterscheidungen für n < k das Ergebnis f (n) = mn zurückgegeben.
• Für n ≥ k wird generell mk als Ergebnis gewählt.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 104
Von Sprachen und Automaten: Formale Sprachen
Aufzählbare Sprachen
Satz 66. Sei V ein Alphabet. Dann ist die Menge V ∗ aller Wörter über V aufzählbar.
Beweis:
• Erzeuge , dann die Wörter der Länge 1, dann die Wörter der Länge 2 usw., bei
gleicher Länge in lexikographischer Reihenfolge.
• Für beliebiges n ∈ N ergibt sich f (n) aus dem n-ten Schritt dieses Verfahrens,
das leicht als Programm realisiert werden kann (aber nie endet . . . )
Jede aufzählbare Menge ist natürlich auch abzählbar.
Es gibt abzählbare Sprachen, die nicht aufzählbar sind! (Wir werden uns aber meist
nur für aufzählbare Sprachen interessieren)
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 105
Von Sprachen und Automaten: Formale Sprachen
Entscheidbare Sprachen
Seien eine Sprache L über einem Alphabet V und ein Aufzählverfahren AL für
diese Sprache gegeben.
• Für ein Wort w ∈ L kann man immer in endlich vielen Schritten nachweisen,
dass es tatsächlich zur Sprache gehört (wir erzeugen einfach mit AL solange,
beginnend mit n = 1, die Worte f (n), bis w gefunden wurde).
• Aber das ist natürlich reichlich unspannend! Wir wollen nämlich meistens für ein
Wort w aus V ∗ wissen, ob es zur Sprache gehört.
• Das geht aber mit AL nur noch dann erfolgreich, wenn w tatsächlich zu L gehört
(oder L endlich ist): denn für ein w 6∈ L gibt es kein passendes n ∈ N, also
rechnet unser Verfahren unendlich lang ohne Resultat.
• Besonders schlimm: wenn wir schon sehr lange gerechnet haben, wissen wir
nicht, ob das Wort doch noch vorkommt, oder ob es eben nicht in L ist.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 106
Von Sprachen und Automaten: Formale Sprachen
Endscheidbare Sprachen
• Wir hätten nun gern ein Verfahren, dass nach endlich vielen Schritten sagt, ob
ein Wort w ∈ V ∗ Element der Sprache L ist oder nicht.
• Ein solches Verfahren antwortet auf die Frage “w ∈ L?” immer mit JA oder
NEIN – es heißt deshalb auch Entscheidungsverfahren.
• Z.B. will man beim Übersetzen eines Programmes zunächst einmal wissen, ob
die Eingabe überhaupt ein zulässiges (also syntaktisch korrektes) Programm ist.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 107
Von Sprachen und Automaten: Formale Sprachen
Endscheidbare Sprachen
Definition 67. [Entscheidbarkeit]
Gegeben sei ein Alphabet V . Eine Sprache L ⊆ V ∗ heißt entscheidbar, falls es
einen abbrechenden Algorithmus, Entscheidungsverfahren genannt, gibt, der für
jedes w ∈ V ∗ feststellt, ob w ∈ L oder w 6∈ L.
Beispiel: V = {a}. Sei L ⊆ V ∗ gegeben durch L = {a2n|n ∈ N}. L besteht aus
allen a-Folgen mit gerader Länge. Ein Entscheidungsverfahren für L kann wie folgt
entwickelt werden:
Sei w ∈ V ∗ beliebig gegeben. Streiche in w immer zwei a heraus, solange dies
geht. Bleibt kein a übrig, gilt w ∈ L, anderenfalls gilt w 6∈ L.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 108
Von Sprachen und Automaten: Formale Sprachen
Endscheidbare Sprachen
Natürlich ist jede endliche Sprache entscheidbar (Lege eine Liste der Worte der
Sprache an und suche darin nach w).
Satz 68. Jede entscheidbare Sprache ist aufzählbar.
Beweis: Sei V ein Alphabet und L ⊆ V ∗ entscheidbar.
• Zähle V ∗ auf und entscheide mit dem nach Voraussetzung gegebenen Entscheidungsverfahren für jedes bei der Aufzählung erzeugte w ∈ V ∗, ob w ∈ L oder
w 6∈ L.
• Übergeht man alle w mit w 6∈ L, so erhält man eine Aufzählung für L.
Die Umkehrung gilt nicht generell! Die Schwierigkeit machen die Wörter, die nicht
in der Sprache liegen.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 109
Von Sprachen und Automaten: Formale Sprachen
Endscheidbare Sprachen
Ein Beispiel für eine aufzählbare, aber nicht entscheidbare Sprache haben wir schon
gesehen, nämlich in der ersten Veranstaltung: das Halteproblem!
L = {xy | x ist ein Programm, y ist eine Eingabe, und x stoppt bei der Eingabe y
nach endlich vielen Schritten }
Es gibt also keinen allgemein verwendbaren Algorithmus, der für ein beliebiges Programm und eine beliebige Eingabe entscheidet, ob das Programm für die Eingabe
stoppt oder nicht!
Warum nicht? Übung!
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 110
Von Sprachen und Automaten: Formale Sprachen
Zusammenfassung
Entscheidbare Sprachen ⊂ aufzählbare Sprachen ⊂ abzählbare Sprachen
Noch einige Überlegungen zu den Fähigkeiten der Computer:
• Computerprogramme sind endliche Folgen von (endlichen) Zeichen.
• Sie können als Wörter über einem Alphabet aufgefasst werden.
• Sprachen sind immer abzählbar, es gibt also nur abzählbar viele Computerprogramme
• Jedes Programm löst in einem gewissen Sinn ein Problem.
• Es können also nur abzählbar viele Probleme durch Programme (und überhaupt?!) gelöst werden
• dies ist ein verschwindend geringer Anteil, denn es gibt überabzählbar viele Probleme!
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 111
Von Sprachen und Automaten: Formale Sprachen
Zusammenfassung
Formal kann man sich z.B. überlegen, Probleme mit Funktionen zu identifizieren.
• Beschränken wir uns für eine Sekunde auf Funktionen von N nach N (also auf
abzählbaren Mengen).
• Wieviel verschiedene Funktionen gibt es? Vereinfachen wir die Fragestellung
noch ein wenig: wieviele mögliche Ranges für Funktionen gibt es?
• Das sind natürlich alle Teilmengen von N (ohne die leere Menge), also |2N| − 1.
Das entspricht der Mächtigkeit von R! (das sind also schon überabzählbar viele).
• Und jetzt kommen noch die Permutationen bei der Abbildung “von links” hinzu,
d.h. mal wird a von 1 aus getroffen, mal von 2 usw., es wird also noch mal deutlich
mehr . . .
• Nur einen Bruchteil hiervon können wir realisieren!
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 112
Von Sprachen und Automaten: Formale Sprachen
Zusammenfassung
Um eine Vorstellung von diesem Bruchteil zu bekommen, betrachten wir die rationalen und die reellen Zahlen im Einheitsintervall:
• Es gibt abzählbar viele rationale Zahlen, insbesondere im Einheitsintervall
[0, 1] ⊂ R.
• Wir nummerieren die rationalen Zahlen und ordnen jeder rationale Zahl qk ein
Intervall der Breite k (wir zählen wieder beginnend mit 1).
10
1
• S = 10
+ 102 + · · · + = ( 10
+ 1012 + . . . ) = 9 .
• Für gegen 0 geht der Grenzwert dieser (existierenden!) Folge auch gegen 0!
• Die reellen Zahlen im Einheitsintervall überdecken den Zahlenstrahl aber auf der
Länge 1!
• ... also ist der Anteil der rationalen Zahlen am Zahlenstrahl (also an den reellen
Zahlen) ganz schön klein!
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 113
Von Sprachen und Automaten: Formale Sprachen
Zusammenfassung
Problem: Wir wollen eine Testsoftware entwickeln, die für jedes Computerprogramm
die Korrektheit prüft.
Hier ist nicht die syntaktsiche Korrektheit gemeint, sondern Korrektheit in dem Sinne,
dass das Programm für jede Eingabe die gewünschte Ausgabe liefert.
Eine solche Überprüfung wird auch Programmverifikation genannt.
Natürlich müssten hier auch ev. vorhandene Endlos-Schleifen bzw. EndlosRekursionen entdeckt werden ... das wir das nicht im allgemeinen Fall können, wissen wir aber bereits: wir hätten das Halteproblem gelöst!
Also kann es einen solchen allgemeinen Verifizierer, so schön er wäre, nicht geben!
(Aber für bestimmte Spezialklassen von Problemen und zugehörigen Formalismen
geht das schon ...)
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 114
Grammatiken
Grammatiken
“Typische” Programmiersprache: Kleine (natürlich endliche) Anzahl von Schlüsselwörtern.
• Verarbeitung/Erkennen der Schlüsselwörter leicht durch eine Liste (die Sprache
“Schlüsselwörter” wird also explizit durch ihre Elemente angegeben, d.h. ihre
Extension wird aufgeschrieben, vgl. Mengenlehre).
Endliche Menge von Bezeichnern (weil nur z.B. die ersten 31 Stellen relevant sind).
• Bei 31 Stellen, 26 Buchstaben groß und klein, und den zehn Dezimalziffern:
53 ∗ 6330 Bezeichner (hier in C) möglich – Erkennen gültiger Bezeichner per
Liste nicht wirklich praktisch ;-)
• Aber wie statt dessen?
Zunächst schauen wir uns die Darstellung von Sprachen mit Hilfe von Grammatiken
an (“intensionale” Regeln).
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 115
Grammatiken
Grammatiken
Beispiel im Deutschen: Ein Satz kann aus einem Subjekt bestehen, dem sich ein
Prädikat und ein Objekt anschließen.
•
•
•
•
•
Kurzform in der Linguistik: Satz → Subjekt Prädikat Objekt
Der Junge wirft den Ball – entspricht er der Struktur?
Struktur der Bestandteile: Subjekt → Artikel Substantiv
Was ist ein Artikel? Artikel → Der
Was ist ein Substantiv? Substantiv → Junge
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 116
Grammatiken
Grammatikalische Struktur als Baum
[s. Mitschrieb]
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 117
Grammatiken
Grammatiken
• Grammatiken beschreiben im Wesentlichen den “nur” den syntaktischen Aufbau
von Sätzen.
• Ob der Satz sinnvoll (für sich genommen bzw. im Zusammenhang) ist, ist eine
andere Frage . . . Der Ball wirft den Jungen.
• Die Behandlung semantischer/pragmatischer Aspekte lassen wir (leider) außer
acht (es ist aber natürlich ein relevantes Thema, im Zusammenhang mit natürlicher Sprache, aber gerade auch z.B. im Software Engineering, wo es immer
problematische Übergänge von nicht-formalen zu formalen Sprachen gibt oder
die Semantik von “formalen” Sprachen nicht hinreichend geklärt ist . . . )
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 118
Grammatiken
Grammatiken: Grundlegende Definitionen
Definition 2. [Grammatik]
Eine Grammatik ist ein Quadrupel G = (VN , VT , P, S) mit
1. VN , VT sind endliche, nichtleere Mengen mit VN ∩ VT = ∅.
VN ist die Menge der nichtterminalen Symbole (Variablen).
VT ist die Menge der terminalen Symbole (Terminale).
Beispiel: VT = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, +, −, =}, VN = { Operant, Operator, Term, Gleichung }
2. P ist eine endliche Menge von Regeln der Form α → β mit α ∈ (VN ∪ VT )+,
β = (VN ∪ VT )∗.
Die Elemente von P werden Produktionsregeln, Produktionen oder Grammatikregeln genannt.
Beispiel: Term → Operant Operator Operant, Operator → 0 | 1 | 2 | 3 | 4 | 5 | 6
| 7 | 8 | 9 (als Abkürzung für Operator → 0, Operator → 1, Operator → 2, usw.)
3. S ∈ VN ist das Startsymbol.
Beispiel: S = Gleichung.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 119
Grammatiken
Noch ein Beispiel
VN = { Bezeichner, BezRest, Buchstabe, Ziffer}
VT = { A,B,. . . ,Z,a,b,. . . ,z, ,0,1,2,. . . ,9}
S = Bezeichner
Bezeichner
BezRest
→
→
Buchstabe
Ziffer
→
→
P=
Buchstabe | | Buchstabe BezRest | BezRest
Buchstabe BezRest | BezRest
| Ziffer BezRest | Buchstabe | | Ziffer
A|B| . . . |Z|a|b| . . . |z
0|1|. . . |9
Grammatik für Bezeichner in der Programmiersprache C. Wie sehen diese aus?
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 120
Grammatiken
Erzeugen von Wörtern
Definition 3. [Ableitung]
Seien G = (VN , VT , P, S), V = VN ∪ VT und x, y ∈ V ∗.
(1) Anwendung einer Grammatikregel:
x wird unmittelbar überführt in y , x ⇒ y , gdw. x = γαδ , y = γβδ , a → β ∈ P ,
α ∈ V +, β, γ, δ ∈ V ∗.
Andere Redewendungen: x führt unmittelbar zu y , y ist (direkt) ableitbar aus x.
(2) Anwendung mehrerer Grammatikregeln nacheinander:
x wird überführt in y , x ⇒∗ y , gdw. es existiert eine endliche Folge (w0, . . . , w),
so dass x = w0, wn = y und wi−1 ⇒ wi für 1 ≤ i ≤ n.
Diese Folge heißt Ableitung von y aus x. Man kann die Schritte auch explizit angeben: x ⇒ w1 ⇒ · · · ⇒ wn. Übrigens gilt generell x ⇒∗ x (das ist eine Ableitung
der Länge 0).
Andere Redewendungen: x führt zu y , y ist ableitbar aus x.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 121
Grammatiken
Erzeugt Sprache
Die von einer Grammatik erzeugte Sprache ist die Menge aller Terminalwörter, die man aus dem Startsymbol ableiten kann (Terminalwörter
sind Wörter, die nur aus terminalen Symbolen bestehen).
Definition 69. [Erzeugte Sprache]
Die von einer Grammatik G = (VN , VT , P, S) erzeugte (auch: dargestellte Sprache ist
∗
∗
L(G) = {x ∈ VT |S ⇒ x}
Die Wörter der von der Grammatik erzeugten Sprache werden auch als die grammatikalisch korrekten Wörter bezeichnet.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 122
Grammatiken
Äquivalente Grammatiken
Eine Sprache kann durch verschiedene Grammatiken dargestellt werden. Solche
Grammatiken heißen äquivalent.
Definition 70. [Äquivalenz von Grammatiken]
Zwei Grammatiken G1 und G2 heißen äquivalent, falls gilt L(G1) = L(G2).
[Beispiele für Grammatiken: s. Mitschrieb]
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 123
Grammatiken
Die Chomsky-Hierarchie
Noam Chomsky (geb. 1928) ist einer der herausragenden Linguisten,
der 1956 eine Hierarchie von Grammatik-Typen bzw. Sprachklassen
veröffentlichte, die heute noch verwendet wird.
Definition 71. Sei G = (VN , VT , P, S)eine Grammatik, V = VN ∪ VT . G ist vom
Typ 0, falls die Regeln von der allgemeinen Form sind (also keine weiteren Einschränkungen gelten)
Typ 1, oder kontextsensitiv, falls jede Produktion die Form α1Aα2 → α1βα2 hat
mit A ∈ VN , α1, α2 ∈ V ∗, β ∈ V +. Zusätzlich erlaubt ist die Regel S → ,
dann darf aber S nicht auf der rechten Seite einer Produktion auftauchen.
Typ 2, oder kontextfrei, falls jede Produktion die Form A → β hat mit A ∈ VN ,
β ∈ V +. Es gilt zudem dieselbe Ausnahmeregelung, wie für Typ 1.
Typ 3, oder regulär, falls jede Produktion die Form A → aB oder A → a hat mit
A, B ∈ VN , a ∈ VT . Zudem gilt die Ausnahmeregelung für Typ 1 bzw. 2.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 124
Grammatiken
Bemerkungen:
1. Man könnte für Typ 2 und Typ 3 auch Produktionen der Form A → zulassen,
dies erhöht aber nicht die Ausdrucksmächtigkeit des Grammatiktyps (es können
nicht mehr Sprachen definitiert werden).
2. Reguläre Grammatiken der vorgestellten Art werden auch rechtslinear genannt.
Bei linkslinearen regulären Grammatiken hat man für die erste Regel die Form
A → Ba, beide Untertypen beschreiben die gleiche Klasse von Sprachen.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 125
Grammatiken
Sprachtypen
Definition 72. [Typ einer Sprache]
Eine Sprache L vom ist vom Typ i, i ∈ {0, 1, 2, 3}, falls eine Grammatik vom Typ i
existiert mit L(G) = L.
Satz 73. Gilt 0 ≤ i < j ≤ 3 und ist die Grammatik G (bzw. die Sprache L) vom
Typ j , so ist sie auch vom Typ i.
D.h. jede reguläre Grammatik ist auch kontextfrei, kontextsensitiv und vom Typ 0
usw.
Normalerweise will man natürlich immer den speziellsten Typ einer Sprache L finden, d.h. eine möglichst spezielle Grammatik, die diese Sprache erzeugt. Oder man
möchte zu einer Grammatik G den speziellsten Typ einer äquivalenten Grammatik
G0 finden (Bemerkung: größere Typnummer ⇒ speziellerer Typ).
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 126
Grammatiken
Sprachtypen
•
•
•
•
•
Welchen Typ hat die Grammatik für Bezeichner?
Geht das auch “spezieller”?
Welchen Typ hat die Grammatik mit P = {S → 0S, S → 0}?
Welchen Typ hat die Grammatik mit P = {S → 0S1, S → 01}?
Geht das auch “spezieller”?
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 127
Grammatiken
Bedeutung von Sei G eine Grammatik, die nicht erzeugt. Dann können wir eine Grammatik G0
desselben Typs finden, die L(G0) = L(G) ∪ {} erzeugt:
Typ 0: S → hinzufügen.
Typ 1 und 2: Neues Startsymbol S 0 hinzufügen und die Regelmenge um S 0 → S
und S 0 → erweitern.
Typ 3: G0 = (VN , VT , P 0, S 0) entsteht aus G = (VN , VT , P, S)durch folgende
Vorschriften:
1. Definiere neues Startsymbol S 0 6∈ VN
0
2. VN := VN ∪ {S 0}
3. P 0 = P ∪ {S 0 → α|S → α ∈ P } ∪ {S 0 → }
[Beispiel s. Mitschrieb]
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 128
Grammatiken
Die komplette Sprachhierarchie
Reguläre Sprachen
⊂
⊂
⊂
⊂
⊂
Kontextfreie Sprachen
Kontextsensitive Sprachen
Entscheidbare Sprachen
Aufzählbare Sprachen = Typ 0-Sprachen
Abzählbare Sprachen
Dazu kann man natürlich auch ein schönes Venn-Diagramm malen!
Alle Teilmengenbeziehungen sind echt!
• Für die Beschreibung von Programmiersprachen reichen i.A. kontextfreie Grammatiken aus.
• Es gibt Darstellungsformen für solche Grammatiken, die speziell für die maschinelle Verarbeitung geeignet sind
• Ein Beispiel hierzu ist die B ACKUS-N AUR-Form (BNF).
• Sie wurde 1959 von J OHN W. B ACKUS und P ETER N AUR bei IBM entwickelt, um
ALGOL 60 zu beschreiben (d.h. die Syntax zu definieren).
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 129
Grammatiken
B ACKUS-N AUR-Form (BNF)
• Variablen (also Nicht-Terminale) werden mit spitzen Klammern <...> umschlossen
• Terminale Symbole werden ohne spezielle Kennzeichnung aufgeschrieben
• Statt → wird das Symbol ::= verwendet
• Das | trennt Alternativen
[Weiteres Beispiel s. Mitschrieb]
<Namensaufzaehlung>
<Namensliste>
<Name>
::= <Name> | <Namensliste> und <Name>
::= <Name> | <Name> , <Namensliste>
::= Hans | Susi | Otto | Maria | Paul
Welche Wörter sind Elemente der durch diese Grammatik erzeugten Sprache?
Wieviele Wörter gibt es in der Sprache?
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 130
Grammatiken
Extended-B ACKUS-N AUR-Form (EBNF)
• Zur BNF hinzu kommen Abkürzungsmöglichkeiten für Optionalitäten und Wiederholungen.
• Kontextfreie Grammatiken können so in kompakter, maschinenlesbarer Form
dargestellt werden
• Die Erweiterungen im Einzelnen:
1. Optionalität wird durch eckige Klammern [...] dargestellt. Für einen
EBNF-Term x beschreibt [x] das null- oder einmalige Vorkommen eines Wortes nach dem Muster von x,
z.B. <Bezeichner> ::= <Buchstabe>[<BezRest>]|_[BezRest]
2. Wiederholungen werden durch geschweifte Klammern {. . . } dargestellt.
Für einen EBNF-Term x beschreibt {x} das nullmalige, einmalige oder mehrmalige Vorkommen eines Wortes nach dem Muster von x,
z.B. <BezRest> ::= {<Buchstabe>|_|<Ziffer>}
3. Runde Klammern (...) werden als Strukturierungshilfe verwendet,
z.B. <Bezeichner> ::= (<Buchstabe>|_)\{<Buchstabe>|_|<Ziffer>}
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 131
Grammatiken
Vermeidung von Rekursionen in EBNF
Rekursive Regeln können in EBNF oft durch iterative Regeln ersetzt werden.
Beispiel:
Bisherige, theorie-orientierte Form:
Liste → Element, Liste
Liste → Element
EBNF:
Liste ::= <Element>{, <Element>}
Es kann aber nicht jede rekursive Grammatikregel auf diese Art beschrieben werden – probieren sie es für die erste Regel der Regelmenge {S → 0S1, S → 01}
.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 132
Grammatiken
Das Problem der Mehrfachverwendung
• Die speziellen Symbole {,},[,],(,),<,>,| kommen in den Programmiersprachen selbst vor
• Es gibt daher Konventionen, die eine Verwechselung ausschließen
• Man kann z.B. terminale Symbole, bei denen es zu Bedeutungsunklarheiten
kommen kann, durch Hochkommata einschließen oder einen Backslash voranstellen:
z.B. beschreibt <Liste> ::= \[a{,a}\] Listen der Form [a], [a,a], ...
• Denn Backslash selbst kann man durch einen doppelten Backslash erhalten
(usw.)
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 133
Grammatiken
Syntaxdiagramme
Syntaxdiagramme sind eine graphische Darstellung von EBNF-Grammatiken.
Mögliche Ableitungen der Grammatik können durch das Verfolgen von Pfaden in den
zugehörigen Syntaxdiagrammen gefunden werden.
[Beispiel s. Mitschrieb]
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 134
Grammatiken
Aufbau von Syntaxdiagrammen
• Fasse alle Regeln, die dieselbe Variable als linke Seite aufweisen, zusammen,
indem verschiedene rechte Seiten als Alternativen dargestellt werden.
• Zeichne für jede Variable X einen gerichteten Graphen mit je einer Eingangsund einer Ausgangskante und benenne den Graphen mit X
• Repräsentiere die Variablen und terminalen Symbole der rechten Seite als Knoten und verwende dazu
– Rechtecke (Quadrate) für Variablen
– Ellipsen (Kreise) für terminale Symbole
• Konkatenationen werden durch Aneinanderreihungen, Alternativen durch Verzweigungen dargestellt
• Die den Graphen bezeichnende Variable darf selbst als Knoten vorkommen
[Beispiele s. Mitschrieb]
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 135
Grammatiken
Üben (1)
Gegeben seien zwei Grammatiken mit den Regelmengen P1 und P2 in EBNF:
• P1: <S> ::= a[<S>]a|b
• P1: <S> ::= a{<S>}a|b
1. Geben Sie ein Wort an, das von der zweiten, nicht aber von der ersten Grammatik erzeugt wird
2. Stellen sie die EBNF-Regeln als Grammatikregeln in “theorie-orientierter” Form
dar
3. Stellen Sie die EBNF-Regeln als Syntaxdiagramme dar
[s. Mitschrieb]
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 136
Grammatiken
Üben (2)
In der Programmiersprache C sind Gleitpunktkonstanten in der folgenden Weise
definiert:
• Eine Gleitpunktkonstante besteht aus einem ganzzahligen Teil, einem Dezimalpunkt, einem Dezimalbruch, dem Zeichen e oder E , einem ganzzahligen Exponenten mit optionalem Vorzeichen und einem optionalen Typ-Suffix, nämlich
einem Buchstaben f ,F ,l oder L.
• Ganzzahliger Teil und Dezimalbruch sind Ziffernfolgen.
• Entweder der ganzzahlige Teil oder der Dezimalbruch kann fehlen (aber nicht
beide!)
• Entweder der Dezimalpunkt oder der Exponent beginnend mit dem e bzw. E
kann fehlen (aber nicht beide!)
Beschreiben sie die Sprache der zulässigen Gleitpunktkonstanten mit Hilfe (a) einer
Grammatik in EBNF und (b) mit Syntaxdiagrammen.
[s. Mitschrieb]
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 137
Grammatiken
Üben (3)
Gegeben sei die Grammatik G = ({S, A, B}, {0}, P, S) mit
S
S
P: AB
0A
A
→
→
→
→
→
ABA
00
000A
0
1. Von welchem Typ ist diese Grammatik?
2. Geben Sie eine Ableitung für das Wort 00000 in G an.
3. Beschreiben Sie die Sprache L(G), die von G erzeugt wird.
4. Geben Sie eine zu G äquivalente reguläre Grammatik G0 an.
[s. Übungen]
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 138
Endliche Automaten
Endliche Automaten und reguläre Sprachen
“Die Automatentheorie hat die Aufgabe, mit Hilfe abstrakter Automatenkonzepte die verschiedenen Verarbeitungstechniken von mechanischen oder
elektronischen Geräten systematisch zu erfassen”, U. Hedtstück
Zentraler Aspekt für uns: Techniken, mit deren Hilfe man überprüfen
kann, ob ein formalsprachlicher Ausdruck syntaktisch korrekt ist.
Anwendungen z.B.
• Parser/Compiler
• Adresserkennung
• Strukturelle Analyse von Webseiten
Hierbei muß ein Algorithmus (bzw. ein Automat) alle Wörter einer vorgegebenen
Sprache erkennen.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 139
Endliche Automaten
Arbeitsweise endlicher Automaten
• Grammatiken erzeugen formale Sprachen
• Bei (rechtslinearen) regulären Grammatiken werden die Wörter Zeichen für Zeichen von links nach rechts erzeugt
Mit Hilfe der regulären Grammatikregeln
Bezeichner
BezRest
BezRest
BezRest
→
→
→
→
x BezRest
y BezRest
u BezRest
3
kann man z.B. den Bezeichner xyu3 erzeugen (ableiten) [s. Mitschrieb]
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 140
Endliche Automaten
Ableitung vs. Erkennung
• Bei jedem Ableitungsschritt fügt man ein terminales Symbol hinzu
• Außer beim letzten Schritt wird außerdem eine Variable hinzugefügt
• Man kann z.B. die zweite Regel so beschreiben:
Ein Bezeichnerrest wird erzeugt, indem das Zeichen y erzeugt wird und daran
anschließend ein Bezeichnerrest.
Ein Scanner hingegen muß ein Eingabewort als “zulässig” erkennen. Trotzdem
kann jeder Schritt des Scanners als Anwendung einer Grammatikregel aufgefaßt
werden (hier am Beispiel der zweiten Regel von oben):
Ein Restwort wird als Bezeichnerrest erkannt, falls es mit y beginnt und anschließend ein Bezeichnerrest folgt.
[s. Mitschrieb]
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 141
Endliche Automaten
Endliche Automaten
Das Grundprinzip von Scannern kann als endliche Automaten abstrakt beschrieben
werden.
Ein endlicher Automat
• bekommt als Eingabe ein Wort, das zeichenweise auf ein einseitig unendliches
Eingabeband geschrieben ist
• liest das Wort mit einem Lesekopf Zeichen für Zeichen bis zum Ende (des Wortes? des Ablauf des Automaten?, s. unten)
• hat eine Steuereinheit mit einem Zustand; dieser Zustand kann sich abhängig
vom Zeichen unter dem Lesekopf ändern, der Lesekopf bewegt sich anschließend nach rechts
[Bild s. Mitschrieb]
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 142
Endliche Automaten
Abarbeitung eines Eingabeworts
• Zu Beginn ist die Steuereinheit im Anfangszustand
• Der Lesevorgang beginnt auf dem ersten Zeichen des Wortes (von links gesehen)
• Die Steuereinheit kann in jedem Schritt ihren Zustand, abhängig vom momentanen Zustand und dem Eingabezeichen, ändern
• Der Lesekopf bewegt sich schrittweise nach rechts und liest die Zeichen auf den
einzelnen Feldern des Eingabebandes
• Das Wort wird von dem endlichen Automaten erkannt, wenn der Automat sich
nach dem vollständigen Lesen des Wortes in einem Endzustand befindet
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 143
Endliche Automaten
Formalisierung
Definition 74. [Endlicher Automat]
Ein deterministischer endlicher Automat ist ein 5-Tupel M = (Z, V, δ, qM , F )
mit
1. Z, V sind endliche, nichtleere, disjunkte Menge.
Z heißt Zustandsmenge, V ist das Eingabealphabet
2. δ : Z × V −→ Z ist die Überführungsfunktion
3. qM ∈ Z ist der Anfangszustand
4. F ⊆ Z ist die Menge der Endzustände
• δ(q, a) = q 0 bedeutet: Liest der endliche Automat im Zustand q das Zeichen a,
so geht er in den Zustand q 0 über und rückt den Lesekopf ein Feld nach rechts
• q(·) ist meist partiell, d.h. es muß nicht jedes Paar (q, x) auf der linken Seite
auch vorkommen (dies weicht den Domain-Begriff so auf, wie der Zielbereich
den Rangebegriff aufweicht). Ist für jedes Paar (q, x) ein Folgezustand definiert,
so ist δ total (das entspricht unserem “normalen” Funktionsbegriff)
• deterministisch meint, dass immer eindeutig bestimmt ist, welche Regel wir anwenden müssen (wenn es überhaupt eine anwendbare Regel gibt).
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 144
Endliche Automaten
Erkennen von Sprachen
Definition 75. [Von endlichen Automaten erkannte Sprachen]
Sei der endliche Automat M = (Z, VT , δ, qM , F )gegeben. Das Wort x ∈ V ∗
sei auf das Eingabeband geschrieben, beginnend auf dem ersten Feld links. M
startet im Anfangszustand qM , der Lesekopf steht auf dem ersten linken Feld des
Eingabebandes.
x wird von M erkannt bzw. akzeptiert, falls M sich nach dem vollständigen Lesen
von x in einem Endzustand befindet.
Stoppt M bevor x vollständig gelesen wurde (wir sagen auch: M stoppt vorzeitig),
so wird das Wort nicht erkannt. Das Leerwort wird genau dann erkannt, wenn
qM ∈ F .
Die von M erkannte (akzeptierte, dargestellte) Sprache ist die Menge
∗
T (M ) = {x ∈ V |x wird von M erkannt}
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 145
Endliche Automaten
Beispiele und Darstellungsweisen
Beispiel: Gegeben M = (Z, VT , δ, qM , F )mit Z = {q0, q1, q2}, V = {0, 1},
qM = q0, F = {q2}. Überführungsfunktion δ (“Arbeitsanweisungen”):
Momentaner Zustand
q
q0
q0
q1
q1
q2
q2
Zeichen unter Lesekopf
a
0
1
0
1
0
1
Folgezustand
δ(q, a)
q0
q1
q1
q2
q2
q1
[Beispiele für Abarbeitungen s. Mitschrieb]
Welche Sprache erkennt M ?
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 146
Endliche Automaten
Darstellung von endlichen Automaten als Zustandsdiagramme
[s. Mitschrieb inkl. Beispielen (Stichwort: Fehlerzustände)]
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 147
Endliche Automaten
Nichtdeterministische endliche Automaten
Definition 76. [Nichtdeterministischer endlicher Automat]
Ein nichtdeterministischer endlicher Automat ist ein 5-Tupel M
(Z, V, δ, qM , F ) mit
=
1. Z, V sind endliche, nichtleere, disjunkte Menge.
Z heißt Zustandsmenge, V ist das Eingabealphabet
2. δ ⊆ Z × V × Z ist die Überführungsrelation
3. qM ∈ Z ist der Anfangszustand
4. F ⊆ Z ist die Menge der Endzustände
Ein Wort x ∈ V ∗ wird von M erkannt und ist damit Element der von M erkannten
(akzeptierten, dargestellten) Sprache T (M ), falls M , beginnend im Startzustand
mit dem Lesekopf auf dem ersten linken Zeichen von x, mindestens eine Möglichkeit hat, das Wort x vollständig zu lesen, und zwar so, dass M anschließend in
einem Endzustand ist.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 148
Endliche Automaten
• Für ein Paar (q, a) kann es nun mehrere Folgezustände geben.
• Für das Erkennen eines Wortes genügt ein erfolgreicher Lesevorgang, obwohl
es für ein Wort noch andere Abarbeitungsnöglichkeiten geben könnte, die nicht
in einen Endzustand führen.
• Jeder deterministische Automat ist natürlich auch ein nicht-deterministischer (nur
ohne Nichtdeterminismus . . . ), denn die Überführungsfunktion ist natürlich “erst
recht” auch eine Überführungsrelation.
[Beispiele und Ergänzendes s. Mitschrieb]
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 149
Endliche Automaten
Reguläre Sprachen ⇔ endliche Automaten
Satz 77. Sei L ⊆ V ∗. Dann sind die folgenden Aussagen äquivalent:
1. L ist regulär.
2. Es gibt einen nichtdeterministischen endlichen Automaten, der L erkennt.
3. Es gibt einen deterministischen endlichen Automaten, der L erkennt.
[Konstruktiver Beweis durch Ringschluss s. Mitschrieb bzw. Seite 66–70 im Buch,
auf Seite 67 ist ein kleiner Fehler: A, B sind Elemente von VN , nicht von VT . Der
Beweis ist wichtig, vollziehen sie ihn nach – er gibt ein oft verwendentes Verfahren
zur Erzeugung deterministischer endlicher Automaten aus nicht-deterministischen
Automaten an!]
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 150
Endliche Automaten
Eine nicht-reguläre kontextfreie Sprache
L = {0n1n|n ≥ 1} ist kontextfrei, sie wird von den Produktionen: P = {S →
0S1, S → 01} erzeugt.
Satz 78. Die Sprache L = {0n1n|n ≥ 1} ist nicht regulär.
Beweis (indirekt): Angenommen, L wäre regulär.
1. Dann gibt es einen endlichen Automaten M mit T (M ) = L.
2. Sei k die Anzahl der Zustände von M .
3. Wir betrachten das Wort x = 0k 1k ∈ L.
(a) M nimmt bei der Abarbeitung von x nacheinander 2k + 1 Zustände an.
(b) M hat aber nur k voneinander verschiedene Zustände.
(c) Es wird also mindestens ein Zustand, z.B. q , mehr als einmal angenommen.
(d) Von ersten zum nächsten Auftreten des Zustandes q wird ein nicht-leeres Teilwort, z.B. v , abgearbeitet.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 151
Endliche Automaten
(e) Insgesamt liest M also den ersten Teil u von x, dann ab dem Zustand q das
Teilwort v und nach dem zweiten Auftreten von q den Rest w (und endet dann)
[s. Mitschrieb]
4. Alle Wörter der Form uv nw, bei denen die obige q -Schleife n-mal durchlaufen
wird (n ≥ 0) führen zu demselben Endzustand und sind demnach in T (M )!
5. Dies gilt insbesondere für uv 2w. Für die Lage des Teilwortes v in x = uvw =
0k 1k gibt es drei Möglichkeiten:
(a) Fall 1: v = 0j (j ≤ k, j > 0)
(b) Fall 2: v = 1j (j ≤ k, j > 0)
(c) Fall 3: v = 0j 1l (j, l ≤ k, j, l > 0)
6. Alle drei Fälle führen für x0 = uv 2w zu einem Wort, dass nicht im ursprünglichen
L ist, also kann es einen EA, der L erkennt, nicht geben, also ist L nicht regulär.
Anmerkung: Die eben verwendete Sprache L ist eine Abstraktion des “Klammernzählens” für geschachtelte Ausdrücke. Dies ist eine Aufgabe, die reguläre Sprachen
nicht erledigen können (es sei den, die Zahl der erlaubten Klammern ist beschränkt)
— deshalb erledigt der Parser und nicht der Scanner diese Aufgabe!
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 152
Reguläre Ausdrücke
Reguläre Ausdrücke
Definition 79. [Regulärer Ausdruck]
Sei V ein Alphabet.
1.
2.
3.
4.
∅ ist ein regulärer Ausdruck für die Sprache L(∅) = ∅.
ist ein regulärer Ausdruck für die Sprache L() = {}.
Für jedes a ∈ V ist a ein regulärer Ausdruck für die Sprache L(a) = {a}.
Seien α und β regulärer Ausdrücke für die Sprachen L(α) und L(β). Dann sind
auch die folgenden Ausdrücke reguläre Ausdrücke:
(α|β) für die Vereinigung L(α) ∪ L(β) = {x|x ∈ L(α) oder x ∈ L(β)}.
Der |-Operator heißt Alternative, man liest α oder β (man sieht auch + anstelle von |).
(αβ) für das Produkt L(α)L(β) = {xy|x ∈ L(α) und y ∈ L(β)}.
Dieser Operator heißt Konkatenation (oder Verkettung), man liest α gefolgt
von β .
(a∗) für die Verkettungshülle L(α)∗ = {x1 . . . xn|xi ∈ L(α), 1 ≤ i ≤ n ∈
N}, Achtung: n kann hier auch 0 sein (dann gibt es auch kein xi).
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 153
Reguläre Ausdrücke
Der ∗-Operator heißt Kleene-Star (Kleen’scher Stern oder Kleen-Abschluss),
man liest α Stern.
Anmerkung: Die ist eine typische induktive Definition, wie wir sie schon für Syntax
und Semantik der Aussagenlogik kennengelernt haben. Es werden also zunächst
die elementaren Ausdrücke definiert und dann das Aufbauprinzip für zusammengesetzte Ausdrücke.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 154
Reguläre Ausdrücke
Reguläre Ausdrücke
Sparen von Klammern:
1. Außenklammern können weggelassen werden.
2. Der Kleene-Star bindet stärker, als die Konkatenation.
3. Die Konkatenation bindet stärker, als die Alternative.
Wie kann man nach diesen Regeln (((a(b∗))∗)|(ab)) vereinfachen? [s. Mitschrieb]
[Beispiele für reguläre Ausdrücke und zugehörige Sprachen, s. Mitschrieb]
Natürlich ist die Zuordnung von regulären Ausdrücken zu Sprachen nicht injektiv,
d.h. i.a. kann eine Sprache durch mehrere verschiedene reguläre Ausdrücke beschrieben werden.
Man kann auch nach möglichst kompakten regulären Ausdrücken für eine vorgegebene Sprache suchen (oder nach eine Verkürzung eines gegebenen reg. Ausdrucks). Das vernachlässigen wir hier.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 155
Reguläre Ausdrücke
Reguläre Ausdrücke und reguläre Sprachen
Unsere “freihändige” mengentheoretische Beschreibung von Sprachen ist nicht formal bzw. präzise genug, um eine maschinelle Verarbeitung zur erlauben. Jetzt haben wir aber für die regulären Sprachen ein präzises Instrument, denn es gilt der
folgende Satz:
Satz 80. Jede reguläre Sprache lässt sich durch einen regulären Ausdruck darstellen und jeder reguläre Ausdruck definiert eine reguläre Sprache.
Beweisskizze:
• Jede endliche Sprache ist offensichtlich regulär (man kann leicht einen nichtdeterministischen EA angeben, der die Sprache erkennt: jedes Wort wird ein
“Zweig”).
• Man kann nun zeigen, dass die Anwendung der Opertoren Vereinigung, Produkt und Verkettungshülle auf reguläre Sprachen wieder zu einer regulären
Sprache führt – und, dass so alle regulären Sprachen erzeugt werden können.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 156
Reguläre Ausdrücke
• Die regulären Ausdrücke sind aber nun genau und einfach nur eine Repräsentation für diese Operatoren und ihre Anwendung auf reguläre Teilsprachen, so
dass folglich genau die regulären Sprachen mit Hilfe von regulären Ausdrücken
beschrieben werden können.
Übrigens: Manchmal spricht man auch von regulären Mengen statt von regulären
Ausdrücken.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 157
Reguläre Ausdrücke
Reguläre Ausdrücke und endliche Automaten
Den zweiten Teil des obigen Satzes kann man auch konstruktiv mittels nichtdeterministischer EAs nachweisen:
Satz 81. Zu jedem regulären Ausdruck gibt es einen nicht-deterministischen EA,
der genau die durch den regulären Ausdruck dargestellte Sprache akzeptiert.
Beweisskizze: Wir beschränken uns auf die Konstruktion, die Schlussfolgerung
folgt direkt.
[s. Mitschrieb]
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 158
Reguläre Ausdrücke
Scanner und Scanner-Generatoren (1)
• Der Scanner ist der Teil des Compilers, der die einzelnen Zeichen der Eingabe
zu Token (das sind Symbole für Wörter der Eingabe) wie z.B. Schlüsselwörter,
Bezeichner, Literale, Operatoren oder Begrenzer zusammenfasst.
• Gelingt dies dem Scanner nicht, so ist die Eingabe nicht syntaktisch korrekt.
• Jede Klasse von Token einer Programmiersprache kann als reguläre Sprache
aufgefasst werden. Also kann für jede Klasse auch ein EA gefunden werden.
• EAs können leicht als Computerprogramm realisiert werden:
– Der momentane Zustand wird in einer Variable gespeichert.
– In einer Schleife wird pro Durchgang jeweils das nächste Zeichen der Eingabefolge gelesen . . .
– . . . und abhängig vom augenblicklichen Zustand und dem gelesenen Zeichen
wird der Zustand in entsprechenden Fallunterscheidungen neu gesetzt.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 159
Reguläre Ausdrücke
Scanner und Scanner-Generatoren (2)
• Wären alle Token eindeutig voneinander getrennt, etwa durch sogenannte Whitespaces (Leerzeichen, Tabulatoren, Zeilenvorschübe und Kommentare), könnten die einzelnen Token von den verschiedenen endlichen Automaten geprüft
werden, bis ein Match (=das Wort wurde durch einen EA akzeptiert) gefunden
wurde.
• Oft ist aber das “direkte” Aneinanderfügen von Token erlaubt, z.B. id2+1. Das
Wort besteht aus 3 Token: id2 (Bezeichner), + (Operator), 1 (Literal = ein “buchstäblich” zu nehmender Wert).
• Scanner fassen üblicherweise möglichst lange Zeichenfolgen zu Token zusammen (also wird nicht schon id als Bezeichner erkannt).
• Allerdings soll +1 im obigen Wort nicht als vorzeichenbehaftete Zahl (eine spezielle Unterklasse der Literale) erkannt werden. Das wäre hier falsch und das
Folgen einer Zahl auf einen Bezeichner ist generell nur möglich, wenn ein Whitespace beide trennen würde.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 160
Reguläre Ausdrücke
Scanner und Scanner-Generatoren (3)
• Diese Problematik zwingt uns, weitere Mechanimsmen (über die lineare Abfolge
von EAs hinaus) zur Verfügung zu stellen, um zusammenhängende Folgen von
Token in “sinnvolle Portionen” (=maximal als Token zu identifizierende Zeichenketten) zu zerlegen.
• Details hierzu finden sie z.B. in Büchern von Wegener (zur theoretischen Informatik) oder im Klassiker von Aho, Sethi und Ullman zu Compilerbau.
• Nichtsdestotrotz bestehen Scanner im wesentlichen aus endlichen Automaten
für die Tokenklassen. Scanner können leicht mittels Scanner-Generatoren (z.B.
LEX, FLEX für C) erzeugt werden:
1. Eine Tokenklasse wird mittels eine regulären Ausdrucks angegeben.
2. Daraus kann zunächst ein nicht-deterministischer EA und dann ein deterministischer EA konstruiert werden (die konstruktiven Verfahren hierzu haben wir bereits
kennengelernt).
• Das gleiche Prinzip wie bei einzelnen Tokenklassen kann natürlich auch zur Suche in “normalen” Texten verwendet werden: man kann mit Hilfe von regulären
Ausdrücken z.B. in VI oder XEMACS nach regulären Sprachen suchen! (Man
kann den konstruierten EA einfach mehrfach weiterlaufen lassen, wenn man
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 161
Reguläre Ausdrücke
mehr als ein Vorkommen eines Wortes der angegebenen regulären Sprache finden möchte)
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 162
Reguläre Ausdrücke
Weitere Schreibweisen für reguläre Ausdrücke
Definition 82. [Abkürzungen für reguläre Ausdrücke] Sei V ein Alphabet und
sei r ein regulärer Ausdruck über V . In r dürfen die nachfolgend definierten Abkürzungen enthalten sein. L(r) bezeichnet die durch r dargestellte (reguläre) Sprache.
r + bezeichnet die Sprache L(r)+ = {x1 . . . xn|xi ∈ L(r), 1 ≤ i ≤ n ∈ N, n ≥
1} (Ein- oder mehrmaliges Auftreten von r ).
r? bezeichnet die Sprache L(r) ∪ (Optionalität: Null- oder einmaliges Auftreten
von r ).
[Liste] Liste hat die Form a1a2 . . . an oder b − c, wobei alle ai, b, c ∈ V
und b < c bzgl. einer auf V definierten linearen Ordnung (z.B. die Position
der Buchstaben im “normalen” Alphabet). Der Ausdruck bezeichnet die Sprache
{a1, a2, . . . , an} bzw. {a|a ∈ V, b ≤ a ≤ c} (Auflistung einzelner Zeichen
oder Bereichsangabe).
. Der Punkt steht für ein beliebiges Zeichen aus V , er bezeichnet die Sprache
{a|a ∈ V }.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 163
Reguläre Ausdrücke
[Beispiele s. Mitschrieb]
Für den praktischen Einsatz (z.B. in LEX) gelten weitere Konventionen:
1. Die Zeichen ∗ und + werden nicht hochgesetzt.
2. Ein Backslash \ wird vor Zeichen des Alphabets gesetzt, die auch als Konstrukte
der Sprache für die regulären Ausdrücke verwendet werden, so steht z.B. \. nicht
für ein beliebiges Zeichen, sondern für den Punkt selbst (“literally”).
Beispiel: Eine LEX-Spezifikation für Zahlen ist
[0-9]+(\.[0-9]+)?((e|E)[+-]?[0-9]+)?
Das entspricht nicht ganz unsere früheren Gleitkommazahl-Definition, passen sie
den Ausdruck zur Übung an unsere Definition aus der Aufgabe an! Beachten sie im
Beispiel auch, das LEX aus der Umgebung von + und − jeweils aus ihre Bedeutung schliesst (wir also in [+-] die Zeichen nicht mit einem Backslash “escapen”
müssen).
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 164
Reguläre Ausdrücke
Wildcards
• Kommandosprachenbefehle: del *.* (DOS) oder ls .* (UNIX)
• Der ∗ wird auch Wildcard genannt.
• Ähnliche Möglichkeiten gibt es häufig in Suchmaschinen.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 165
Reguläre Ausdrücke
Wildcards in alten DOS-Versionen
Dateibezeichner bestehen aus einem Dateinamen, einem Punkt und einer Dateierweiterung, z.b. thia.pdf
1. ? steht im Namen oder in der Erweiterung für ein einzelnes Zeichen (das auch
nicht fehlen darf)
2. * gibt im Namen oder in der Erweiterung an, dass beliebige (auch gar keines!)
Zeichen diese und alle übrigen Positionen des Namens bzw. der Erweiterung
belegen können
Achtung: in regulären Ausdrücken würde man das Fragezeichen durch einen Punkt
ausdrücken und den Stern durch .*
Übrigens darf der Stern (in den alten DOS-Versionen, z.B. 4.0) nur am Ende des
Namens oder der Erweiterung stehen, so war z.B. der Ausdruck del *a.doc nicht
zulässig. Er wurde allerdings auch nicht angemeckert, sondern unter Missachtung
des as als del *.doc interpretiert, aua!
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 166
Reguläre Ausdrücke
Wildcards in UNIX
Dateinamen können einen (nahezu) beliebigen Aufbau haben.
1. ? gibt an, dass an dieser Stelle ein beliebiges Zeichen stehen muß (also nicht
fehlen darf)
2. * gibt an, dass eine eventuell leere Folge von Zeichen folgt. Nach dem Stern
dürfen weitere Zeichen folgen, auch Wildcards.
3. [Liste] gibt an, dass an dieser Position des Namens genau ein Zeichen der
Liste, die aus einzelnen Zeichen besteht, stehen muß.
4. [^Liste] gibt an, dass an dieser Position des Namens genau ein Zeichen stehen muß, das nicht aus der Liste stammt.
[Beispiele s. Mitschrieb]
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 167
Reguläre Ausdrücke
Verarbeitung von Wildcards durch den Interpreter
• Wildcards beschreiben offensichtlich eine Untermenge der regulären Sprachen.
• Man kann also, wie gehabt, über einen nicht-deterministischen EA einen deterministischen EA erzeugen, der dann alle Dateibezeichner liest und die jeweils
akzeptierten ausgibt.
• Für die alte DOS-Variante kann man unmittelbar einen deterministischen Automaten angeben (weil der Stern nur am Ende von Namen bzw. Erweiterung
auftauchen “darf”)
• Wenn er, wie in UNIX, an einer beliebigen Stelle auftauchen darf, dann geht das
nicht (jedenfalls nicht ohne weiteres).
[Beispiele s. Mitschrieb]
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 168
Reguläre Ausdrücke
Grenzen von Wildcards
Reguläre Ausdrücke sind (natürlich) ausdrucksmächtiger als Widcard-Ausdrücke
(ausdrucksmächtiger heißt formal, dass die Menge der Sprachen, die durch Wildcardausdrücke beschrieben wird, eine echte Teilmenge der regulären Sprachen ist.
Beispiele:
• (abc)*.txt
• a(b|cd).txt
[Ende des Kapitels zu regulären Automaten und regulären Sprachen]
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 169
Kontextfreie Sprachen
Kontextfreie Sprachen und Kellerautomaten
• Kontextfreie Grammatiken: auf der linken Seite steht immer ein einzelnes NichtTerminal.
• Bis auf einige Ausnahmen reicht dies aus für die Darstellung von Programmiersprachen
• Eine Ausnahme ist z.B. das Überprüfen der Übereinstimmung Anzahl von Parametern in Methodenaufruf und Methodendefinition.
• Der Parser überprüft weiterhin die syntaktische Korrektheit einer Eingabe.
• Er kontrolliert z.B., ob sich aus der vom Scanner erzeugten Symbolfolge (Token)
in korrekter Weise Schleifen, Klammerausdrücke usw. ergeben.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 170
Kontextfreie Sprachen
Parser und Ableitungsbaum
•
•
•
•
Der Parser versucht, aus einer Eingabe einen Ableitungsbaum zu konstruieren.
Ohne diesen konstruktiven Aspekt ist ein Parser ein Erkennungsalgorithmus.
Das Automatenmodell hierfür sind nicht-deterministische Kellerautomaten.
Nicht-deterministische Kellerautomaten (KA) sind, anders als bei EAs, ausdrucksmächtiger als deterministische KA.
• Nicht-deterministische KA lassen sich also nicht immer in deterministische KAs
überführen.
• Das kann die Implementierung schwierig machen, es geht natürlich immer, einfach alle Alternativen durchzuspielen – aber das ist i.A. sehr ineffizient!
• Man kann sich auch auf die Klasse von Sprachen beschränken, die durch deterministische KAs erkannt werden können, aber das schränkt uns natürlich in der
Sprachgestaltung ein! (Wir werden das noch kurz aufgreifen)
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 171
Kontextfreie Sprachen
Ableitungsbäume
• Ableitungsbäume visualisieren die Ableitung eines Wortes ausgehend von einem
Startsymbol.
• Bei jedem Ableitungsschritt wird genau eine Variable durch eine Symbolfolge
ersetzt. Für jedes Symbol kann man eine Verzweigung nach unten zeichnen.
• Das führt zu einer Baumstruktur mit dem Startsymbol als Wurzel und den Terminalen als Blätter.
Beispiel: Gegeben G = (VN , VT , P, S) mit VN = {S}, VT = {∗, +, (, ), a} und
P = {S → S + S, S → S ∗ S, ; § → (S) S → a}.
Gesucht: Ableitung und Ableitungsbaum für a + (a + a) ∗ a [s. Mitschrieb].
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 172
Kontextfreie Sprachen
Ableitungsbaum
Definition 83. [Ableitungsbaum]
Sei G = (VN , VT , P, S) eine kontextfreie Grammatik. Ein Ableitungsbaum (auch:
Parsebaum, Strukturbaum oder Syntaxbaum) für G ist ein gerichteter, geordneter
Baum mit Markierungen mit folgenden Bedingungen:
1. Die Blätter sind mit terminalen Symbolen markiert.
2. Die inneren Knoten sind mit Variablen markiert.
3. Ist A eine die Markierung eines inneren Knoten und sind X1, . . . , Xn die Markierungen der direkten Nachfolger, so ist A → X1, . . . , Xn ∈ P .
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 173
Kontextfreie Sprachen
Das Problem der Mehrdeutigkeit
• Der Parser versucht nachzuweisen, dass eine Eingabe aus der Grammatik ableitbar ist.
• Im Grunde baut er hierzu einen Ableitungsbaum.
• In einer kontextfreien Grammatik kann es für ein Wort der erzeugten Sprache
i.A. mehrere verschiedene Ableitungsbäume geben, z.B. für a + a ∗ a in der
letzten Grammatik [s. Mitschrieb].
• Da letztlich die erkannte Bedeutung einer Eingabe (die Semantik) von dem erzeugten Ableitungsbaum anhängt, können so leicht Mehrdeutigkeiten entstehen!
• Im Beispiel kann der Parser nicht allein mit Hilfe der Grammatik entscheiden, ob
zunächst addiert oder multipliziert werden soll (eine verbesserte Grammatik folgt
bald).
• Noch ein Beispiel: G = ({S}, {a, b}, {S → SS, S → a, S → b}, S}, Ableitung für aba [s. Mitschrieb].
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 174
Kontextfreie Sprachen
Mehrdeutigkeit
Die Mehrdeutigkeit aus dem Beispiel kann man vermeiden, indem man per Konvention festlegt, in welcher Reihenfolge Ersetzungen vorgenommen werden, z.B. die
Variable am weitesten links (oder rechts).
Definition 84. [Linksbaleitung, Rechsableitung]
Eine Ableitung in einer kontextfreien Grammatik heißt Linksableitung (bzw. Rechtsableitung), falls immer das am weitestens links (bzw. rechts) stehende Nichtterminal
ersetzt wird.
Satz 85. Jeder Linksableitung wird durch genau einen Ableitungsbaum repräsentiert, und jedem Ableitungsbaum entspricht in eindeutiger Weise ein Linksableitung.
Leider behebt eine solche Konvention zwar einige, aber nicht alle Mehrdeutigkeitsprobleme!
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 175
Kontextfreie Sprachen
Mehrdeutigkeit
Beispiel: G = ({S}, {a, b}, {S → SS|a|b}, S}, Wort aba. Es gibt zwei Linksableitungen! [s. Mitschrieb]
Definition 86. [Mehrdeutigkeit]
Eine kontextfreie Grammatik G heißt mehrdeutig, falls es ein Wort in L(G) gibt, das
mindestens zwei verschiedene Ableitungsbäume (bzw. Links- oder Rechtsableitungen) gibt. Anderenfalls heißt G eindeutig.
Eine kontextfreie Sprache L heißt (inhärent) mehrdeutig, falls alle Grammatiken,
die L erzeugen können, mehrdeutig sind, anderenfalls heißt L eindeutig.
Um die Eindeutigkeit einer Sprache zu zeigen, reicht es, eine eindeutige Grammatik
zu ihrer Erzeugung anzugeben. Will man Mehrdeutigkeit zeigen, so kann es schwierig werden!
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 176
Kontextfreie Sprachen
Mehrdeutigkeit
Beispiel 1: Zur mehrdeutigen Grammatik von oben gibt es eine eindeutige Alternative, die dieselbe Sprache L = {a, b}+ erzeugt: G0 = ({S}, {a, b}, P 0, S) mit
P 0 = {S → aS|bS|a|b} [allgemeine Form des Ableitungsbaums, s. Mitschrieb].
Beispiel 2: Eine inhärent mehrdeutige Sprache ist
L = {aibj ck |i, j, k ≥ 1, i = j oder j = k}
L kann man z.B. mit der folgenden Grammatik erzeugen:
G = ({S, A, C, X, Y }, {a, b, c}, P, S} mit P = S → XC|AY
X → aXb|ab
C → cC|c
Y → bY c|bc
A → aA|a
Man kann zeigen, dass jede kontextfreie Grammatik, die diese Sprache erzeugt,
mehrdeutig ist: alle Wörter der Form anbncn haben immer mindestens zwei verschiedene Ableitungsbäume [s. z.B. aabbcc im Mitschrieb].
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 177
Kontextfreie Sprachen
Mehrdeutigkeiten in Programmiersprachen
Natürlich gilt folgendes: Die Frage, ob eine gegebene kontextfreie Grammatik mehrdeutig ist, ist unentscheidbar (man muss also jede Grammatik individuell untersuchen, ein allgemein einsetzbares Entscheidungsverfahren gibt es nicht).
Es folgen zwei Beispiele für mögliche/typische Mehrdeutigkeitsprobleme in Programmiersprachen.
Beispiel 1: Arithmetische Ausdrücke [s. Mitschrieb]
Beispiel 2: if-else-Mehrdeutigkeit [s. Mitschrieb]
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 178
Kontextfreie Sprachen
Top-Down-Analyse
• Es gibt verschiedene “Strategien” für den Aufbau eines Ableitungsbaumes.
• Beispiel Top-Down-Anaylse:
1. Der Baum wird beginnend mit der Wurzel von oben nach unten konstruiert.
2. Die Eingabe wird von links nach rechts gelesen.
3. Angewendet wird die sogenannte Syntaxanalyse durch rekursiven Abstieg.
4. Achtung: es gibt schnellere Parsingtechniken (aber die sind nicht unbedingt
verständlicher).
Beispiel: Analyse des Ausdrucks a + a ∗ a
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 179
Kontextfreie Sprachen
Top-Down-Analyse
Gegeben war G = ({Ausdruck, T erm, F aktor}, {+, ∗, (, ), a}, P 0, Ausdruck}.
Hier sind die eindeutigen Grammatikregeln des obigen (Mitschrieb-)Beispiels noch
einmal:
(1) P 0 = Ausdruck → Ausdruck + T erm
(2)
Ausdruck → T erm
(3)
T erm → T erm ∗ F aktor
(4)
T erm → F aktor
(5)
F aktor → (Ausdruck)
(6)
F aktor → a
Leider haben die Regeln (1) und (3) eine unangenehme Eigenschaft: sie sind linksrekursiv (und damit ungeeignet für die Top-Dowon-Strategie)!
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 180
Kontextfreie Sprachen
Top-Down-Analyse
Definition 87. [Linksrekursion]
Eine kontextfreie Grammatikregel heißt linksrekursiv, wenn die Variable der linken
Seite als erstes Symbol auf der rechten Seite vorkommt (kommt sie als letztes Symbol vor, dann heißt die Regel rechtsrekursiv).
Merke: Man kann generell jede linksrekurive Regel durch eine rechtsrekursive Regel(n) ersetzen, ohne die Sprache zu verändern!
Zur Abkürzung ersetzen wir die Symbole in den Beispielregeln durch Buchstaben.
[s. Mitschrieb zur Top-Down-Analyse]
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 181
Kellerautomaten
Kellerautomaten
[s. Mitschrieb zur Erkennung von Wörtern mittels Stack-basierter Ableitung]
Definition 88. [Kellerautomat]
Ein nicht-deterministischer Kellerautomat mit Endzuständen ist ein 7-Tupel M =
(Z, V, U, δ, qM , KM , F ) mit
1. Z, V, U sind endliche, nichtleere Mengen. Z heißt Zustandsmenge, V ist das
Eingabealphabet, U das Kelleralphabet.
2. δ ⊆ Z × (V ∪ {}) × U × Z × U ∗ ist die Überführungsrelation, die Elemente
von δ heißen Anweisungen.
3. qM ∈ Z ist der Anfangszustand.
4. KM ∈ U ist das Anfangskellerzeichen.
5. F ⊆ Z ist die Menge der Endzustände.
Abkürzende Schreibweise: Für Anweisungen (q, a, A, p, α) ∈ δ mit p, q ∈ Z ,
a ∈ (V ∪ {}), A ∈ U , α ∈ U ∗ verwendet man die Schreibweise qaA 7→ pα.
Links steht der Bedingungsteil, rechte der Aktionsteil.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 182
Kellerautomaten
Kellerautomaten
Eine Anweisung qaA 7→ pα hat die folgende Bedeutung:
1. Falls a ∈ V und a ist das momentane Eingabezeichen, A das oberste Zeichen
im Keller und q der Zustand von M , dann kann M in den Zustand p übergehen
und das Wort α in den Keller schreiben (von rechts nach links, d.h. das erste Zeichen von α steht im Keller anschließend oben). Abschließend wird der Lesekopf
auf dem Eingabeband eine Position nach rechts gerückt.
2. Falls a = , M im Zustand q und A das oberste Kellerzeichen ist, dann kann
ein spontaner Übergang (auch -Übergang genannt) in den Zustand p erfolgen.
Es wird wiederum α in den Keller geschrieben, allerdings wird kein Zeichen vom
Eingabeband gelesen und der Eingabelesekopf wird nicht bewegt.
Wenn keine Anweisung für das Tripel aus Zustand, Eingabe- und Kellerzeichen vorliegt, dann stoppt der Kellerautomat.
Kellerautomaten können für endliche Eingaben unendlich laufen (z.B. mit qA 7→
qA).
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 183
Kellerautomaten
Kellerautomaten
Definition 89. [Vom Kellerautomaten erkannte Sprache]
Sei M ein Kellerautomat wie oben definiert. Ein Wort x ∈ V ∗ stehe auf dem Eingabeband, beginnend auf dem ersten Feld links. Der Lesekopf des Automats steht
zu Beginn auf dem ersten linken Zeichen von x. Im Keller befindet sich nur das
Anfangskellerzeichen.
Das Wort x wird von M erkannt (auch: akzeptiert), falls M eine Möglichkeit hat, x
so vollständig zu lesen, dass sich M anschließend in einem Endzustand befindet.
Die von M erkannte (akzeptierte, dargestellte) Sprache ist die Menge
∗
T (M ) = {x ∈ V |x wird von M erkannt}
Beispiel: Ein deterministischer Kellerautomat für die Sprache L = {0n1n|n ≥ 1}
[s. Mitschrieb]
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 184
Kellerautomaten
Kellerautomaten
Beispiel: L = {ww̄|w ∈ V ∗, w̄ ist Spiegelbild von w}
Wörter dieser Sprache z.B. aabaabaa, aaaaaa, nicht aber aaaaa oder aabaa.
Kann diese Sprache von einem deterministischen Kellerautomaten erkannt werden?
[s. Mitschrieb]
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 185
Kellerautomaten
Kellerautomaten und kontextfreie Sprachen
Satz 90. Sei L eine Sprache. Dann sind die folgenden Aussagen äquivalent:
1. L ist kontextfrei.
2. Es gibt einen nichtdeterministischen Kellerautomaten, der L erkennt.
[Beweis der Richtung 1. zu 2. und Beispielkonstruktion für L = {0n1n|n ≥ 1} s.
Mitschrieb]
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 186
Kellerautomaten
Kellerautomaten und Parsen
• KF-Grammatiken lassen sich nicht immer in deterministische KAs übersetzen
• Stehen mehrere Regeln in einer KF-Grammatik zur Auswahl, kann es zu aufwändigem Backtracking kommen
• Man versucht deshalb, sich auf LR(k)-Grammatiken zu beschränken: man kann
bei der Konstruktion eines Ableitungsbaumes die nächste anzuwendende Regeln eindeutig bestimmen, wenn man die k nächsten Zeichen kennt. L steht hier
für das Lesen der Eingabe von Links nach Rechts und R für Rechtsableitungen.
Der Baum wird bottom-up konstruiert (YACC generiert solche Parser). Die
LR(k)-Grammatiken erzeugen genau die Sprachen, die von deterministischen
KAs erkannt werden.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 187
Kellerautomaten
Kontextfreie Grammatiken
Wir wollen Kettenregeln der Form X → Y vermeiden (sie führen zu Ineffizienzen!)
Definition 91. Eine Grammatik G = (VN , VT , P, S) ist ein ChomskyNormalform, falls jede Produktion von der Form X → Y Z oder X → a mit
X, Y, Z ∈ VN und a ∈ VT ist.
Satz 92. Zu jeder kontextfreien Grammatik, die das Leerwort nicht erzeugt, läßt
sich eine äquivalente Grammatik in Chomsky-Normalform angeben.
[Beweis s. Buch]
Dies ist eine Vorform zur Greibach-Normalform: X → aY1 . . . Yn. (sieht regulären
Grammatiken sehr ähnlich!)
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 188
Kellerautomaten
Nicht kontextfreie Sprachen und das Pumping-Lemma
Satz 93. Die Sprache L = {0n1n2n|n ≥ 1} ist nicht kontextfrei.
[Beweisskizze s. Mitschrieb]
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 189
Kellerautomaten
XML
• ist eine sogenannte Auszeichnungssprache (markup-language) und basiert auf
SGML
• gibt Dokumenten und Daten Struktur
• wurde vom W3C (http://www.w3c.org/XML) definiert und wird dort weiterentwickelt
• verwendet TAGS zur Strukturierung, diese können hierarchisch geschachtelt
werden und bestehen immer aus Angangs- und Endtag, z.B. <Name>Wolfram
Conen</Name> oder auch
<Name>
<Vorname>Wolfram</Vorname>
<Nachname>Conen</Nachname>
</Name>
• die Namen können selbst gewählt werden.
• Element(namen) können auch Attribute haben, z.B. <Name leer="JA"/>.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 190
Kellerautomaten
• es gibt auch noch Namespaces: <THIA:Name>Bassam</THIA:Name>, und
einges andere ;-)
• wenn die Tags alle korrekt geschlossen bzw. verschachtel sind, dann ist das
Dokument well-formed
• wenn sie auch noch den Vorgaben einer Grammatik G genügen, dann sind sie
valid (relativ zur vorzugebenden Grammatik).
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 191
Kellerautomaten
Grammatiken für XML: DTD
Document Type Definition (DTD):
• eine Liste von Element-Definitionen: <!DOCTYPE DTD-Name [ Liste von Elementdefinitionen ]>
• Elementdefinition erlauben Sequnzierung (mit ,), Alternativen (|), Verkettung (*
für null- oder mehrmals, + für ein- oder mehrmals, ? für null- oder einmal), und
Klammerung z.B. <!ELEMENT bib (bibelement*)>
• rechts ist neben Elementnamen auch der Term #PCDATA erlaubt, der für beliebige unstrukturierte Strings steht (parsed character data)
• kann man unmittelbar in EBNF bringen
• ist selbst kein XML (oops...)
• kann per Link referenziert werden
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 192
Kellerautomaten
Grammatiken für XML: XML-Schema
• DTD-Probleme: kein XML, also zwei Grammatik-Formalismen; nur ein (elementarer) Datentyp: PCDATA
• XML-Schema ist XML; kann, was DTDs können [s. Mitschrieb] und mehr s.
http://www.w3.org/XML/Schema
• Elementdefinitionen bestehen aus Elementname und Typangabe. Mit ref kann
zudem auf Elementdefinitionen verwiesen werden.
• mit minoccurs und maxoccurs können bel. Anzahlen für das Vorkommen eines Elementes spezifiziert werden
• Sequenzen “klammert” man durch <sequenz>...</sequenz>, Wahlmöglichkeit durch <choice>...</choice>.
• . . . und vor allem gibt es reichlich vordefinierte “einfache” Datentypen, z.B.
<xsd:integer>
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 193
Kellerautomaten
XML und Mehrdeutigkeit
Viele Quellen für Mehrdeutigkeiten werden durch die vorgegebene Struktur des Parsebaums bereits vermieden.
Aber: <!ELEMENT x (a*,b | b,c*)> angewendet auf <x><b>b-Text</b></x>.
Ist der b-Text der Abschluß einer leeren Folge von a’s oder der Beginn einer leeren
c-Folge?
Für DTDs bzw. XML-Schemata wird gefordert, dass sie immer in eindeutiger Weise
beim Lesen eines gültigen XML-Dokuments von links nach rechts (und oben nach
unten) pro gelesenem öffnendem Tag vorgeben, wie beim Abarbeiten der rechten
Seite zu verfahren ist, d.h. sie sollen die LL(1)-Eigenschaft aufweisen, d.h. aus
einem X ∈ VN folgt ein Nichtterminal a bei einer Linksableitung der Form X ⇒∗
aβ eindeutig (man braucht dann für Top-down-Parser kein Backtracking!)
Diese Eigenschaft muss der Grammatik-Designer selbst einhalten – aber er kann
dies automatisch kontrollieren, denn die Eigenschaft ist entscheidbar.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 194
Turingmaschinen
Turing-Maschinen
Definition 94. [Einfache Turing-Maschine]
Eine deterministische Turingmaschine ist ein 5-Tupel M = (Z, V, δ, qA, qE ) mit
1. Z, V sind endliche, nichtleere Menge. Z ist die Zustandsmenge, V das Maschinenalphabet.
2. δ : (Z\{qE }) × (V ∪ { }) → Z × (V ∪ { } ∪ {L, R}), L, R 6∈ V , ist
die Überführungsfunktion. Das Zeichen steht für ein Blank (Leerzeichen). M
kann lesen und schreiben. L steht für eine “Links”, R steht für “Rechts”. δ muss
keine totale Funktion sein.
3. qA ∈ Z , qE ∈ Z , qA 6= qE . qA ist der Anfangszustand, qE ist der Endzustand.
Abkürzende Schreibweise: δ definiert eine endliche Menge von Anweisungen,
δ(q, a) = (q 0, x), die wir auch als qa → q 0x schreiben werden: Liest M im Zustand q das Zeichen a, so geht M in den Zustand q 0 über und führt die Aktion x
aus.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 195
Turingmaschinen
Eine Turingmaschine stoppt, falls sie im Zustand q mit dem Lese-/Schreibkopf auf
dem Zeichen a steht und falls für das Paar (q, a) keine Anweisung existiert. Eine
Turingmaschine muss natürlich nicht stoppen.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 196
Turingmaschinen
Turingmaschine
Definition 95. [Von Turingmaschinen erkannte Sprache]
Sie M = (Z, V, δ, qA, qE ) eine Turingmaschine. Das Wort x ∈ V ∗ steht auf
dem sonst leeren (d.h. durch Blanks gefüllten) Eingabeband. M starte mit dem
Lese/Schreibkopf auf dem ersten Zeichen des Eingabewortes im Anfangszustands,
zbw. auf einem beliebigen Feld, falls x = . Diese Anordnung wird auch Anfangskonfiguration genannt.
Das Wort x wird von M erkannt (akzeptiert), falls M ausgehend von der Anfangskonfiguration nach endlich vielen Schritten im Endzustand stoppt.
Die von M erkannte (akzeptierte, dargestellte) Sprache ist die Menge
T (M ) = {x ∈ V ∗|x wird von M erkannt }.
Beispiel: L = {0n1n2n|n ≥ 1} [s. Mitschrieb].
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 197
Turingmaschinen
Turing-Berechenbarkeit
Definition 96. [Turing-berechenbar]
Eine n-stellige Funktion f : (V +)n → V ∗, n ≥ 0, heißt Turing-berechenbar,
wenn es eine Turingmaschine M gibt, für die folgendes gilt:
Schreibt man auf das sonst leere Band die Argumente w1, . . . , wn jeweils getrennt
durch mindestens ein Blank und setzt man M auf das erste linke Zeichen von w1
an, so stoppt M nach endlich vielen Schritten im Endzustand, und auf dem Band
steht dann ausschließlich der Funktionswert f (w1, . . . , wn).
f kann partiell oder total sein: partiell bedeutet, dass f nicht für jedes n-Tupel von
nichtleeren Wörtern über V definiert sein muss, was bei totalem f der Fall ist.
Falls f für ein Tupel nicht definiert ist, soll M entweder unendlich weiterlaufen oder
in einem Nicht-Endzustabd halten.
Beispiel: Berechnung der Nachfolgerfunktion für natürliche Zahlen [s. Mitschrieb]
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 198
Turingmaschinen
Turing-Maschinen
Definition 97. [Einfache nichtdeterministische Turing-Maschine]
Eine deterministische Turingmaschine ist ein 5-Tupel M = (Z, V, δ, qA, qE ) mit
1. Z, V sind endliche, nichtleere Menge. Z ist die Zustandsmenge, V das Maschinenalphabet.
2. δ : (Z\{qE }) ⊆ (V ∪ { }) → Z × (V ∪ { } ∪ {L, R}), L, R 6∈ V , ist
die Überführungsrelation. Das Zeichen steht für ein Blank (Leerzeichen). M
kann lesen und schreiben. L steht für eine “Links”, R steht für “Rechts”. δ muss
keine totale Funktion sein.
3. qA ∈ Z , qE ∈ Z , qA 6= qE . qA ist der Anfangszustand, qE ist der Endzustand.
Erkannt werden alle Wörter, für die es mindestens einen akzeptierenden Ablauf gibt
(analog zu nichtdeterministischen endlichen Automaten).
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 199
Turingmaschinen
P und NP
Definition 98. Eine Turingmaschine TM erkennt eine Sprache L in polynomialer
Zeit, wenn es ein Polynom p(n) gibt, so dass jedes Wort w ∈ L der Länge n
in einer Zeit t mit t ≤ p(n) erkannt wird (Abarbeitung einer Anweisung = eine
Zeiteinheit).
P besteht aus allen Sprachen, die von einer deterministischen Turingmaschine in
polynomialer Zeit erkannt werden.
N P besteht aus allen Sprachen, die von einer nichtdeterministischen Turingmaschine in polynomialer Zeit erkannt werden.
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 200
Turingmaschinen
Letzte Seite
(Vorläufiges) Ende des Skripts
c 2004-2006, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen
THIA, Version 0.7, 28. März 2006, Seite 201
Herunterladen