Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
140 KAPITEL 6. KOMPLEXITÄT VON ALGORITHMEN<br />
hat.<br />
Bemerkung 2. Wir können für die Sprache aller Pal<strong>in</strong>drome e<strong>in</strong>e fast doppelt<br />
so schnelle TM konstruieren, <strong>in</strong>dem wir die beiden ersten Buchstaben speichern<br />
(und löschen) und sie mit den beiden letzten vergleichen (und diese dann auch<br />
löschen). E<strong>in</strong>e noch schnellere TM würde drei (oder vier usw.) Buchstaben auf<br />
e<strong>in</strong>mal vergleichen. Wir können also e<strong>in</strong>e fast k-mal schnellere TM für e<strong>in</strong> beliebig<br />
großes k konstruieren. Wir beobachten, dass jede dieser TM e<strong>in</strong>e Zeitkomplexität<br />
hat, die von e<strong>in</strong>em quadratischen Polynom repräsentiert wird.<br />
Den gleichen Beschleunigungsprozess können wir mit jeder TM machen, <strong>in</strong>dem wir<br />
stets <strong>in</strong> e<strong>in</strong>em Schritt k Felder gleichzeitig lesen und bearbeiten. Aus diesem Grund<br />
ist nicht die Funktion t(n) selbst <strong>in</strong>teressant, nur die ” Geschw<strong>in</strong>digkeit des Wachstums“<br />
von t(n), also die Klasse O(t(n)).<br />
Def<strong>in</strong>ition. Wir bezeichnen mit<br />
P<br />
die Klasse aller formalen Sprachen, die von e<strong>in</strong>er TM mit polynomialer Zeitkomplexität<br />
akzeptiert werden können. Genauer: e<strong>in</strong>e Sprache L gehört zur Klasse P, falls<br />
es e<strong>in</strong>e Tur<strong>in</strong>gmasch<strong>in</strong>e M und e<strong>in</strong> Polynom p(n) gibt, so dass<br />
L = L(M)<br />
und M hält auf E<strong>in</strong>gaben der Länge n <strong>in</strong> höchstens p(n) Schritten.<br />
Bemerkung 3. Er<strong>in</strong>nern wir uns daran, dass<br />
Entscheidungsproblem ≡ formale Sprache.<br />
Genau genommen müssen wir e<strong>in</strong> Entscheidungsproblem erst codieren (z.B. b<strong>in</strong>är,<br />
mit Symbolen 0 und 1). Dann bezeichnet L ⊆ {0, 1} ∗ die Sprache aller Codierungen<br />
der E<strong>in</strong>gaben, auf die die Entscheidung JA ist. Weiter nehmen wir immer an, dass<br />
die Codierung von Problemen ” vernünftig“ ist.<br />
Wenn nämlich jemand freiwillig e<strong>in</strong>e extrem lange Codierung der E<strong>in</strong>gabe benutzt,<br />
kann er auch e<strong>in</strong> kompliziertes Problem <strong>in</strong> l<strong>in</strong>earer Zeit p(n) = n, wobei n die<br />
” unvernünftige“ Codelänge ist, lösen. Die folgenden Regeln s<strong>in</strong>d als ” vernünftig“<br />
anzusehen:<br />
1. Zahlen werden b<strong>in</strong>är oder dezimal repräsentiert. (Nicht unär!)<br />
2. Graphen werden durch Adjazenzmatrizen oder Adjazenzlisten dargestellt (siehe<br />
Abschnitt 6.1).<br />
3. Mengentheoretische Operationen (Insert, Delete, Vere<strong>in</strong>igung, Durchschnitt)<br />
werden so implementiert, dass ihre Ausführung e<strong>in</strong>e konstante Zahl von Zeite<strong>in</strong>heiten<br />
dauert.<br />
Beispiel 3 (PALINDROM). Die Entscheidung, ob e<strong>in</strong> Wort e<strong>in</strong> Pal<strong>in</strong>drom ist, ist<br />
e<strong>in</strong> Problem der Klasse P, denn die TM aus Beispiel 2 hat die Zeitkomplexität<br />
O(n 2 ).<br />
Beispiel 4 (2-FÄRBUNG). Das Problem, ob e<strong>in</strong> Graph mit zwei Farben gefärbt<br />
werden kann, gehört zur Klasse P. In Abschnitt 6.1 haben wir dafür e<strong>in</strong>en Algorithmus<br />
mit l<strong>in</strong>earer Zeitkomplexität beschrieben. Es ist nicht kompliziert, den<br />
Algorithmus mit e<strong>in</strong>er TM zu implementieren und zu beweisen, dass diese TM polynomiale<br />
Zeitkomplexität hat.