15.09.2014 Aufrufe

2x2 - Theoretische Informatik - Universität Duisburg-Essen

2x2 - Theoretische Informatik - Universität Duisburg-Essen

2x2 - Theoretische Informatik - Universität Duisburg-Essen

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!