4.1 KiB
title | date | author |
---|---|---|
Automaten, Sprachen und Komplexität | Wintersemester 20/21 | Robert Jeutter |
Literaturempfehlung: Theoretische Informatik - kurz gefasst, Uwe Schöning, Spektrum Akademischer Weg
Einführung
Grundfrage
Welche Probleme können mit unseren begrenzten Resourcen gelöst werden und welche nicht?
bzw
Wo ist die grenze der Problemlösung mit unseren Resourcen?
Probleme (als Abbildung)
f: Menge der mögl Eingaben \rightarrow
Menge der mögl Ausgaben
Spezialfall A={0,1} heißt Entscheidungsproblem. Sie ist gegeben durch die Menge der Eingaben.
Mengen nennt man "Sprachen"
(beschränkte) Resourcen
- Art des Speicherzugriffs
- Art der Steuereinheit (deterministisch?)
- Dauer der Berechnung
- Größe des Speichers
Grundbegriffe
Natürliche Zahlen \N = {0,1,2,3,...}
Definition: Für eine Menge X ist X* die Menge der endlichen Folgen über X.
Definition: Ein Alphabet ist eine endliche nichtleere Menge.
üblicherweise heißen Alphabete hier: $\sum, \Gamma, \Delta$
Ist \Sum
Alphabet, so nennen wir die Elemente oft Buchstaben.
Ist \Sum
ein Alphabet, so heißen die Elemente von \Sum*
auch Wörter über \Sum
(auch String/Zeichenkette)
Beispiele:
- Alphabete:{0},{0,1,2},...{A,K,S,0,1,2,3,4,5,6,7,8,9}, {groß,klein}
- keine Alphabete:
\varempty, \N, \Q
- Das Alphabet{0,1,2}hat also die drei Buchstaben 0, 1 und 2.
- Das Alphabet{groß,klein}hat die zwei Buchstabengroßundklein
- (0),()und(1,2,0,0) sind also Wörter über dem Alphabet{0,1,2}.
- (groß),(klein,groß),(klein,groß,klein)und()sind Wörter überdem Alphabet{groß,klein}.
- (1,2,0,0) wird geschrieben als 1 2 0 0
- (1) wird geschrieben als1
- () wird geschrieben als
\epsilon
(dasleere Wort) - (klein,groß,klein) wird geschrieben als klein.groß.klein
Definition: Sind
u=(a_1, a_2, ...a_n)
undv=(b_1, b_2,...,b_n)
Wörter, so istu*v
das Wort(a_1,a_2,...a_n,b_1,b_2,...,b_n)
; es wird als Verkettung/Konkatenation von u und v bezeichnet.
An Stelle von u*v
schreibt man auch uv
Beobachtung: \Sum* x \Sum* \rightarrow \Sum*
ist eine Abbildung
- Assoziativ:
u*(w*v)=(u*w)*v
- neutrales Element:
\epsilon * u = u * \epsilon = u
Kürzer: (\Sum, *, \epsilon)
ist ein Monoid
Definition: Für
\omega \in \Sum*
undn\in \N
istw^n
induktiv definiert
w^n=\epsilon \text{ falls } n=0; \omega*\omega^{n-1} \text{ falls } n>0
Definition: Seien y,w Wörter über
\Sum
. Dann heißt
- Präfix/Anfangsstück von w, wenn es
z\in\Sum*
gibt mityz=w
- Infix/Faktor von w, wenn es
x,z \in \Sum*
gibt mitxyz=w
- Suffix/Endstück von w, wenn es
x\in \Sum*
gibt mitxy=w
Definition: Sei
\Sum
ein Alphabet. Teilmengen von\Sum*
werden formale Sprachen über\Sum
genannt.
Definition: Eine Menge L ist eine formale Sprache wenn es ein Alphabet
\Sum
gibt, so dass L formale Sprache über\Sum
ist (d.h.L\subseteq \Sum*
)
Definition: Sind
L_1
undL_2
Sprachen, so heißt die SpracheL_1 L_2={w | \exists w_1 \in L_1, w_2 \in L_2: w=w_1 w_2}
die Konkatenation/Verkettung vonL_1
undL_2
.
Beispiele:
-
${0}{1}={0^i1^j | i,j>0}
-
{0}\cup {1}{0,1}*
ist die Menge der Binärzahlen -
Die Verkettung von Sprachen ist assoziativ
-
es gibt ein neutrales Element
\epsilon
-
es gibt ein auslöschendes Element
\varempty
Definition: Sei L Sprache und
n\in\N
. Dann istL^n
induktiv definiert:L^n = {\epsilon} \text{ falls } n=0; LL^{n-1} \text{ falls } n>0
Definition: Sei L eine Sprache. Dann ist
L*=\bigcup_{n\geq 0} L^n
der Kleene-Abschluss oder die Kleene-Iteration von L. Weiter istL+ = \bigcup_{n\geq 0} L^n
L+ = L* L* = L* * L
Beobachtung: Sei \Sum
Alphabet.
- Sind
L_1
undL_2
Sprachen über\Sum
, so auch die VerkettungL_1L_2
, die Kleene-IterationL_1*
, die positive IterationL_1+
, die VereinigungL_1\cup L_2
, die DifferenzL_1 \ L_2
und der SchnittL_1 \cap L_2
. \varempty, \Sum, \Sum*
sind Sprachen über\Sum
Prioritätsregeln für Operationen auf Sprachen
- Potenz/Iteration binden stärker als Konkatenation
- Konkatenation stärker als Vereinigung/Durchschnitt/Differenz Sprechweise: "Klasse" von Sprachen ( nicht "Menge")