2x2 - Theoretische Informatik - Universität Duisburg-Essen
2x2 - Theoretische Informatik - Universität Duisburg-Essen
2x2 - Theoretische Informatik - Universität Duisburg-Essen
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Kontextsensitive und Typ-0-Sprachen<br />
Berechenbarkeitstheorie<br />
Komplexitätstheorie<br />
Komplexitätsklassen<br />
NP-Vollständigkeit<br />
Kontextsensitive und Typ-0-Sprachen<br />
Berechenbarkeitstheorie<br />
Komplexitätstheorie<br />
Komplexitätsklassen<br />
NP-Vollständigkeit<br />
Komplexitätsklassen<br />
Komplexitätsklassen<br />
Wir definieren zunächst die Klasse aller Sprachen, die von einer<br />
deterministischen Turingmaschine mit Zeitbeschränkung akzeptiert<br />
werden können.<br />
Zeitbeschränkte det. TM und akz. Sprachen (Definition)<br />
Sei f : N 0 → N 0 eine (totale) Funktion. Die Klasse TIME(f (n))<br />
besteht aus allen Sprachen A, für die es eine deterministische<br />
Mehrband-Turingmaschine M gibt mit A = T (M) und<br />
time M (x) ≤ f (|x|) für alle Wörter x.<br />
Dabei gibt time M (x) die Anzahl der Rechenschritte von M bei<br />
Eingabe x an.<br />
Das heißt, die Anzahl der Schritte der Turingmaschine ist<br />
beschränkt und die Beschränkung ist abhängig von der Länge der<br />
Eingabe.<br />
Kontextsensitive und Typ-0-Sprachen<br />
Berechenbarkeitstheorie<br />
Komplexitätstheorie<br />
Komplexitätsklassen<br />
Barbara König BeKo/TI 232<br />
Komplexitätsklassen<br />
NP-Vollständigkeit<br />
Um polynomial beschränkte Laufzeitklassen definieren zu können,<br />
wiederholen wir zunächst die Definition eines Polynoms (in einer<br />
Variablen).<br />
Polynom (Definition)<br />
Ein Polynom ist eine Funktion p : N 0 → N 0 mit der<br />
Abbildungsvorschrift<br />
p(n) = a k n k + a k−1 n k−1 + · · · + a 1 n + a 0<br />
für Konstanten k, a k , . . . , a 0 ∈ N 0 .<br />
Bemerkung:<br />
Um die Anzahl der Rechenschritte time M (x) einer Turingmaschine<br />
M zu ermitteln, müssen wir noch festlegen, wann die Berechnung<br />
von M beendet ist: dies ist der Fall, wenn eine Konfiguration gleich<br />
ihrer Folgekonfiguration ist. (Bei deterministischen<br />
Turingmaschinen hat jede Konfiguration genau eine<br />
Folgekonfiguration.)<br />
Das Erreichen eines Endzustandes bedeutet damit auch das Ende<br />
einer Berechnung. Die Berechnung kann jedoch auch dann beendet<br />
sein, wenn kein Endzustand erreicht wurde.<br />
Kontextsensitive und Typ-0-Sprachen<br />
Berechenbarkeitstheorie<br />
Komplexitätstheorie<br />
Komplexitätsklassen<br />
Barbara König BeKo/TI 233<br />
Komplexitätsklassen<br />
NP-Vollständigkeit<br />
Damit ist es nun auch möglich, die Klasse aller Sprachen zu<br />
definieren, die von deterministischen Turingmaschinen mit<br />
polynomialer Laufzeitbeschränkung erkannt werden.<br />
Komplexitätsklasse P (Definition)<br />
P = {A | es gibt eine det. Turingmaschine M und ein<br />
=<br />
Polynom p mit T (M) = A und time M (x) ≤ p(|x|)}<br />
⋃<br />
TIME(p(n))<br />
p Polynom<br />
Intuitiv umfasst P alle Probleme, für die effiziente Algorithmen<br />
existieren.<br />
Barbara König BeKo/TI 234<br />
Barbara König BeKo/TI 235