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.

6.5. GEOMETRISCHE ALGORITHMEN UND REELLE RAM 153<br />

Die Ausgabe des folgenden Algorithmus ist also e<strong>in</strong>e Liste mit Punkten vi (für e<strong>in</strong>ige<br />

i = 1, . . .,n), die die konvexe Hülle, im Uhrzeigers<strong>in</strong>n orientiert, repräsentiert.<br />

Algorithmus für die KONVEXE HÜLLE<br />

1. Sortieren<br />

Wir sortieren die gegebenen Punkte nach ihren x-Koord<strong>in</strong>aten. Weiter nehmen<br />

wir also an, dass vi für alle i = 1, . . .,n l<strong>in</strong>ks von vi+1 steht.<br />

2. Berechnung der oberen Hülle<br />

Der Punkt v1 liegt l<strong>in</strong>ks von allen anderen Punkten und der Punkt vn liegt<br />

rechts – also s<strong>in</strong>d v1 und vn bestimmt <strong>in</strong> der konvexen Hülle enthalten. Die<br />

konvexe Hülle besteht aus (a) e<strong>in</strong>er Liste mit Punkten von v1 zu vn, die wir<br />

die obere Hülle nennen und (b) e<strong>in</strong>er Liste mit Punkten von vn zu v1, der<br />

unteren Hülle.<br />

In dem folgenden Beispiel<br />

v8<br />

<br />

<br />

•<br />

<br />

<br />

<br />

<br />

v4 <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

v12<br />

<br />

<br />

<br />

•<br />

•<br />

<br />

obere Hülle<br />

v6<br />

<br />

<br />

<br />

<br />

<br />

•<br />

<br />

v10 <br />

<br />

<br />

v14<br />

v2 • <br />

<br />

v1 v5<br />

• •<br />

•<br />

<br />

<br />

•<br />

<br />

<br />

<br />

ist die obere Hülle<br />

und die untere Hülle ist<br />

<br />

v13<br />

v3<br />

<br />

•<br />

v7<br />

•<br />

untere Hülle<br />

v11 •<br />

•<br />

•<br />

v9<br />

v1, v4, v8, v12, v14<br />

v14, v13, v9, v3, v1.<br />

Die Berechnung der oberen Hülle verfolgt die folgende divide-and-conquer<br />

Strategie:<br />

2a Die Punkte v1, . . . , vn werden <strong>in</strong> zwei ungefähr gleich große Teile aufgeteilt.<br />

Nehmen wir an, dass n gerade ist, dann arbeiten wir mit der ” l<strong>in</strong>ken Hälfte“<br />

v1, . . .,v n/2 und der ” rechten Hälfte“ v n/2+1, . . . , vn. Für beide Hälften<br />

bestimmen wir rekursiv die obere Hülle.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!