18.09.2013 Aufrufe

Skript in PDF - Theoretische Informatik - Technische Universität ...

Skript in PDF - Theoretische Informatik - Technische Universität ...

Skript in PDF - Theoretische Informatik - Technische Universität ...

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.

150 KAPITEL 6. KOMPLEXITÄT VON ALGORITHMEN<br />

simuliert und diese wird wiederum von e<strong>in</strong>er Tur<strong>in</strong>gmasch<strong>in</strong>e M mit der Zeitkomplexität<br />

O(n 2 + (t(n)) 4 ) simuliert. Dann berechnet M dieselbe Funktion wie die<br />

RAM, und da n 2 + t(n) 4 e<strong>in</strong> Polynom ist, folgt daraus, dass die Funktion zu FP<br />

gehört.<br />

Schlußbemerkung: Die Klasse P ist unabhängig von unserer Wahl des Berechnungsmodells:<br />

wir konnten, statt TM, e<strong>in</strong>e beliebige determ<strong>in</strong>istische Variante von TM<br />

nehmen, um dieselbe Klasse zu beschreiben. Auch RAM, obwohl es e<strong>in</strong> viel stärkeres<br />

Modell ist, ergibt für Zahlenfunktionen ke<strong>in</strong>e größere Klasse von Funktionen,<br />

die polynomiale Zeitkomplexität haben, als die Klasse FP.<br />

6.5 Geometrische Algorithmen und reelle RAM<br />

Viele Algorithmen, speziell <strong>in</strong> der Computer-Graphik, arbeiten mit geometrischen<br />

Objekten <strong>in</strong> der Ebene oder im Raum, und für ihre Komplexität wird e<strong>in</strong> modifiziertes<br />

Berechnungsmodell benutzt: RAM, die mit reellen Zahlen arbeitet.<br />

Reelle RAM ist genau wie RAM (siehe 4.1) def<strong>in</strong>iert, nur enthält jedes Register<br />

und jedes Feld des E<strong>in</strong>- und Ausgabebandes e<strong>in</strong>e reelle Zahl. Auch die Liste aller<br />

Operationen ist gleich (zum Beispiel LOAD i, LOAD ∗i, LOAD !i für e<strong>in</strong>e beliebige<br />

natürliche Zahl i), aber die Operanden von ADD s<strong>in</strong>d reelle Zahlen.<br />

Wie <strong>in</strong> Kapitel 4 gezeigt wurde, s<strong>in</strong>d weitere Operationen (für RAM oder reelle<br />

RAM) e<strong>in</strong>fach zu programmieren, zum Beispiel die Multiplikation von zwei Zahlen.<br />

Wir nehmen ferner an, dass Multiplikation und Division an e<strong>in</strong>er reellen RAM so<br />

programmiert werden, dass sie <strong>in</strong> O(1) Schritten durchgeführt werden.<br />

Für die uniforme Komplexität im Fall der reellen RAM def<strong>in</strong>ieren wir die Größe<br />

der reellen Zahl x = n10 −m als dig(n) + dig(m).<br />

Beispiel 1 (LINIE). E<strong>in</strong>gabe: Punkte a, b und r der Ebene, a = b<br />

Ausgabe: JA, falls r auf der L<strong>in</strong>ie L(a, b), von a und b bestimmt, liegt.<br />

Falls ( )x und ( )y die x- und y-Koord<strong>in</strong>aten bezeichnen, ist die Antwort genau dann<br />

JA, wenn<br />

rx − ax<br />

ry − ay<br />

= bx − ax<br />

by − ay<br />

(im Fall ry = ay und by = ay) oder ganz allgeme<strong>in</strong>: genau wenn<br />

(rx − ax)(by − ay) = (bx − ax)(ry − ay).<br />

Diese Entscheidung dauert nur O(1) Schritte auf e<strong>in</strong>er reellen RAM.<br />

Beispiel 2 (ÜBER DER LINIE). E<strong>in</strong>gabe: Punkte a, b und r <strong>in</strong> der Ebene mit<br />

ax = bx<br />

Ausgabe: JA, falls r über der L<strong>in</strong>ie L(a, b) liegt.<br />

<br />

<br />

•<br />

<br />

<br />

<br />

<br />

• <br />

a<br />

b<br />

r<br />

•<br />

r über L(a, b), mit k > 0<br />

•a <br />

<br />

<br />

<br />

• b<br />

r<br />

•<br />

r über L(a, b), mit k < 0

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!