Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen...

105
FernUniversit ¨ at Gesamthochschule in Hagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm in der Airline-Metrik: Untersuchung der strukturellen Eigenschaften und Veranschaulichung durch ein Java-Programm eingereicht im: August 1998 von: Oliver M¨ unch geboren am 27. April 1971 in Hagen Betreuer: Dr. Christian Icking Prof. Dr. Rolf Klein

Transcript of Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen...

Page 1: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

FernUniversitatGesamthochschule in Hagen

Fachbereich Informatik

Lehrgebiet Praktische Informatik VI

Diplomarbeit

Das Voronoi-Diagramm in der Airline-Metrik:

Untersuchung der strukturellen Eigenschaften

und Veranschaulichung durch ein Java-Programm

eingereicht im: August 1998

von: Oliver Munch

geboren am 27. April 1971

in Hagen

Betreuer: Dr. Christian Icking

Prof. Dr. Rolf Klein

Page 2: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

2

Hiermit erklare ich, daß ich diese Diplomarbeit selbststandig verfaßt habe. Gleichzeitig ver-

sichere ich, daß ich keine anderen als die angegebenen Quellen und Hilfmittel benutzt sowie

Zitate kenntlich gemacht habe.

Hagen, den 31. August 1998

Page 3: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

Inhaltsverzeichnis

1 Aufgabenstellung 1

2 Grundbegriffe 3

2.1 Mengenlehre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.2 Topologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.3 Abgeschlossene Semiringe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.4 S-Graphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.5 Darstellung von Graphen im Speicher . . . . . . . . . . . . . . . . . . . . . . 12

2.5.1 Adjazenzmatrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.5.2 Adjazenzlisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3 Allgemeine Pfadprobleme uber abgeschlossenen Semiringen 15

3.1 Wege in S-Graphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.2 Matrizenprodukte und Wege . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.3 Das”general path“-Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.4 Der Algorithmus von Kleene . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4 Die Airline-Metrik 27

4.1 Einfuhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.2 Definition der Airline-Metrik . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.2.1 Metrische Eigenschaften von R+-Graphen . . . . . . . . . . . . . . . 29

i

Page 4: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

ii INHALTSVERZEICHNIS

4.2.2 Semiringoperationen und metrische Eigenschaften . . . . . . . . . . . 31

4.2.3 Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.3 Eigenschaften der Airline-Metrik . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.4 Verallgemeinerungen der Airline-Metrik . . . . . . . . . . . . . . . . . . . . . 38

5 Berechnung der Airline-Distanz 41

5.1 Ein Algorithmus mit Vorverarbeitung . . . . . . . . . . . . . . . . . . . . . . 41

5.1.1 Datenstruktur: Kostenmatrix . . . . . . . . . . . . . . . . . . . . . . 41

5.1.2 Vorverarbeitung: Berechnung von AGG mit dem

Algorithmus von Floyd/Warshall . . . . . . . . . . . . . . . . . . . . 42

5.1.3 Hauptteil: Berechnung von adG(x, y) fur x, y ∈ R2 . . . . . . . . . . . 43

5.1.4 Analyse des Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . 44

5.2 Ein Algorithmus ohne Vorverarbeitung . . . . . . . . . . . . . . . . . . . . . 46

5.2.1 Formulierung der Airline-Distanz als”single source shortest path“-

Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5.2.2 Der Algorithmus von Dijkstra . . . . . . . . . . . . . . . . . . . . . . 48

5.2.3 Berechnung von adG(x, y) mit dem Algorithmus von Dijkstra . . . . . 49

6 Das Voronoi-Diagramm in der Airline-Metrik 51

6.1 Einfuhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

6.2 Das additiv gewichtete Voronoi-Diagramm . . . . . . . . . . . . . . . . . . . 52

6.2.1 Definition des additiv gewichteten Voronoi-Diagramms . . . . . . . . 54

6.2.2 Eigenschaften des additiv gewichteten Voronoi-Diagramms . . . . . . 55

6.3 Das Airline-Voronoi-Diagramm . . . . . . . . . . . . . . . . . . . . . . . . . 59

6.4 Anwendungen des Voronoi-Diagramms . . . . . . . . . . . . . . . . . . . . . 62

6.4.1 Das Problem des nachsten Postamts . . . . . . . . . . . . . . . . . . 63

6.4.2 Weitere Distanzprobleme . . . . . . . . . . . . . . . . . . . . . . . . . 64

Page 5: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

INHALTSVERZEICHNIS iii

7 Berechnung des Voronoi-Diagramms 67

7.1 Der Sweepline-Algorithmus von Fortune . . . . . . . . . . . . . . . . . . . . 67

7.1.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

7.1.2 Die Transformation”∗“ . . . . . . . . . . . . . . . . . . . . . . . . . 68

7.1.3 Der Algorithmus zur Berechnung von V ∗ und V . . . . . . . . . . . . 71

7.2 Der Sweepline-Algorithmus fur das additiv gewichtete Voronoi-Diagramm . . 74

7.3 Eine geometrische Interpretation der Transformationsabbildung”∗“ . . . . . 78

7.4 Berechnung des Airline-Voronoi-Diagramms . . . . . . . . . . . . . . . . . . 80

8 Abschließende Bemerkungen und offene Probleme 83

A Die Java-Programme zur Veranschaulichung der Voronoi-Diagramme 85

A.1 Das Programm”VoroCircles“ . . . . . . . . . . . . . . . . . . . . . . . . . . 85

A.1.1 Einfuhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

A.1.2 Die Bedienung von”VoroCircles“ . . . . . . . . . . . . . . . . . . . . 86

A.1.3 Aufbau und Installation von”VoroCircles“ . . . . . . . . . . . . . . . 87

A.2 Das Programm”VoroAirline“ . . . . . . . . . . . . . . . . . . . . . . . . . . 89

A.2.1 Einfuhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

A.2.2 Die Bedienung von”VoroAirline“ . . . . . . . . . . . . . . . . . . . . 89

A.2.3 Aufbau und Installation von”VoroAirline“ . . . . . . . . . . . . . . . 92

A.3 Schwierigkeiten bei der Implementierung . . . . . . . . . . . . . . . . . . . . 93

A.3.1 Darstellung der Bisektoren . . . . . . . . . . . . . . . . . . . . . . . . 94

Page 6: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

iv INHALTSVERZEICHNIS

Page 7: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

Kapitel 1

Aufgabenstellung

Gegeben sei die euklidische Ebene und eine Menge von Flughafen in der Ebene. Zwischen

diesen Flughafen konnen Flugverbindungen bestehen. Eine Person, die am Punkt a wohnt,

mochte einen Freund besuchen, der am Punkt b wohnt. Die Person kann sich in der Ebene

beliebig bewegen. An Flughafen kann sie das Verkehrsmittel wechseln und Strecken im Flug-

zeug zurucklegen. Sie darf beliebig oft das Verkehrsmittel wechseln, an Flughafen umsteigen

und Strecken im Flugzeug oder Wege in der Ebene zurucklegen, um ihr Ziel zu erreichen.

Hieraus ergeben sich interessante Fragen:

• Wie definiert man eine Metrik auf der Ebene, welche die Reisedauer der schnellsten

Verbindung angibt?

• Welche strukturellen Eigenschaften besitzt diese Metrik?

• Wie erhalt man unter Ausnutzung dieser Eigenschaften einen effizienten und praktika-

blen Algorithmus zur Berechnung der Distanz zweier Punkte?

• Welche algorithmische Komplexitat hat die Berechnung der Distanz?

• Wie sehen die Voronoi-Diagramme bezuglich dieser Metrik aus?

• Wie kann man die Voronoi-Diagramme berechnen?

• Gibt es interessante Zusammenhange mit anderen Problemen und weitere Anwendun-

gen?

• Kann man die planare Airline-Metrik verallgemeinern?

1

Page 8: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

2 1. Aufgabenstellung

Page 9: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

Kapitel 2

Grundbegriffe

Unerlaßlich fur das Verstandnis dieser Arbeit ist es, daß Klarheit uber die benutzten Grund-

begriffe, Symbole und Schreibweisen besteht. Das Hauptziel dieses Kapitels ist es, diese

Begriffe prazise zu definieren, so daß mogliche Unklarheiten beseitigt werden. Der damit

vertraute Leser wird es uberfliegen und die Besonderheiten zur Kenntnis nehmen.

Hier behandeln wir drei Begriffe, die fur diese Arbeit von grundlegender Bedeutung sind:

• Metriken und Distanzfunktionen

• abgeschlossene Semiringe

• S-Graphen

In den ersten beiden Abschnitten behandeln wir mathematische Grundbegriffe. Die topo-

logischen Standardnotationen des zweiten Abschnitts findet man auch in Lehrbuchern zur

Analysis [14, 20] oder zur Topologie [32].

Essentiell fur diese Arbeit sind Hilfmittel aus der Graphentheorie. Die Graphentheorie dient

der Beschreibung von Situationen, in denen bestimmte Objektpaare in Beziehung zueinander

stehen. Allgemeine Literatur hierzu sind [1, 5, 18].

Wir werden spater die Flughafen und Flugverbindungen mit Hilfe eines Graphen modellieren.

Dieser Graph hat dann eine nichtnegative Kantenbewertung cost : E → R+ . Solche Graphen

werden in der Literatur meist Distanzgraphen genannt (siehe [31]). Um die Airline-Metrik

zu definieren, werden wir kurzeste Wege in einem Distanzgraphen betrachten.

Die Berechnung kurzester Wege zwischen allen Knotenpaaren in einem Distanzgraphen

gehort zur Problemklasse”allgemeine Pfadprobleme uber abgeschlossenen Semiringen“. In

3

Page 10: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

4 2. Grundbegriffe

der Literatur werden abgeschlossene Semiringe immer dann eingefuhrt, wenn allgemeine

Pfadprobleme behandelt werden (siehe [1, 5, 27]). Wegen der zentralen Bedeutung der Pfad-

probleme fur diese Arbeit habe ich mich dazu entschlossen, schon von vornherein Graphen

uber abgeschlossene Semiringe zu betrachten.

Semiringe werden im dritten Abschnitt eingefuhrt. Die Definitionen findet man auch in [5,

27]. Die Definition der Nullteilerfreiheit stammt aus [13]. Der fur uns wichtigste abgeschlos-

sene Semiring ist der nichtnegative (inf, +)-Semiring R+ = (R+ ∪ ∞, inf, +,∞, 0).

Im vierten Abschnitt definieren wir eine eigene Art von Graphen. Wir erhalten dann eine

spezielle, fur diese Arbeit sehr nutzliche Darstellungsweise von Graphen. Graphen mit einer

Kantenmarkierung uber einen abgeschlossenen Semiring S nennen wir S-Graphen. Distanz-

graphen sind dann spezielle R+-Graphen.

Im letzten Abschnitt besprechen wir kurz zwei gebrauchliche Speicherdarstellungen von Gra-

phen.

2.1 Mengenlehre

Definition 2.1. Mit N bezeichnen wir die Menge der naturlichen Zahlen einschließlich der

Null. R+ sei die Menge der nichtnegativen reellen Zahlen. Die Menge der positiven reellen

Zahlen bezeichnen wir mit R∗+ .

N = 0, 1, 2, . . .(2.1)

R+ = x ∈ R : x ≥ 0(2.2)

R∗+ = x ∈ R : x > 0(2.3)

Definition 2.2. Mit Hilfe des kartesischen Produkts definieren wir Potenzen Xn einer Men-

ge X.

X0 := (),(2.4)

X1 := X,(2.5)

X2 := X × X,(2.6)

X3 := X × X × X, u.s.w.(2.7)

X∗ :=∞⋃i=0

X i(2.8)

X+ :=

∞⋃i=1

X i(2.9)

Page 11: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

2.2 Topologie 5

Die Elemente von Xn sind n-Tupel. Die Menge X0 erhalt als einziges Element den 0-Tupel

().

Definition 2.3. M und N seien Mengen. Eine Menge R heißt Relation zwischen M und

N , wenn sie eine Teilmenge des kartesischen Produkts M × N ist. R heißt Relation auf M ,

wenn R ⊆ M × M gilt.

R und S seien Relationen. Die Verknupfung von R mit S ist definiert durch

S R := (x, z) : ∃y mit (x, y) ∈ R und (y, z) ∈ S(2.10)

Auch fur Relationen R auf einer Menge M definieren wir Potenzen Rn:

R0 := (x, x) : x ∈ M,(2.11)

R1 := R,(2.12)

R2 := R R,(2.13)

R3 := R R R, u.s.w.(2.14)

R∗ :=∞⋃i=0

Ri(2.15)

R+ :=

∞⋃i=1

Ri(2.16)

R∗ heißt reflexiv-transitive Hulle von R, denn R∗ ist die kleinste reflexive und transitive

Relation auf M , die R enthalt. R+ heißt transitive Hulle von R, denn R+ ist die kleinste

transitive Relation auf M , die R enthalt.

R∗ =⋂

S : S ist eine reflexive und transitive Relation auf M mit S ⊇ R(2.17)

R+ =⋂

S : S ist eine transitive Relation auf M mit S ⊇ R(2.18)

2.2 Topologie

Wir untersuchen die euklidische Ebene R2 . Dazu benutzen wir Standardnotationen aus der

Topologie.

Definition 2.4. Eine Distanzfunktion auf einer Menge X ist eine Abbildung d : X × X →R+ mit folgenden Eigenschaften, die fur alle x, y, z ∈ X gelten:

d(x, y) = 0 ⇔ x = y (Definitheit)(2.19)

d(x, z) ≤ d(x, y) + d(y, z) (Dreiecksungleichung)(2.20)

d(x, y) nennt man den Abstand oder die Distanz der Punkte x und y.

Page 12: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

6 2. Grundbegriffe

Definition 2.5. Eine Metrik auf einer Menge X ist eine Abbildung d : X × X → R+ mit

folgenden Eigenschaften, die fur alle x, y, z ∈ X gelten:

d(x, y) = 0 ⇔ x = y (Definitheit)(2.21)

d(x, y) = d(y, x) (Symmetrie)(2.22)

d(x, z) ≤ d(x, y) + d(y, z) (Dreiecksungleichung)(2.23)

Das Paar (X, d) heißt metrischer Raum.

Eine Metrik ist also eine Distanzfunktion, die zusatzlich die Symmetriebedingung erfullt.

Beispiel 2.1. Die Minkowski-Metriken Lp im Rn :

Lp(x, y) =

(n∑

i=1

|xi − yi|p)1/p

(1 ≤ p < ∞)(2.24)

L∞(x, y) = max(|x1 − y1|, . . . , |xn − yn|)(2.25)

L1 heißt Manhattan-Metrik, L2 euklidische Metrik und L∞ Maximummetrik.

Definition 2.6. Eine Pseudodistanzfunktion auf einer Menge X ist eine Abbildung d : X ×X → R+ ∪ ∞ mit folgenden Eigenschaften, die fur alle x, y, z ∈ X gelten:

d(x, x) = 0 (Semidefinitheit)(2.26)

d(x, z) ≤ d(x, y) + d(y, z) (Dreiecksungleichung)(2.27)

Eine Pseudometrik ist eine Pseudodistanzfunktion, die zusatzlich die Symmetriebedingung

erfullt.

2.3 Abgeschlossene Semiringe

Das Problem der Berechnung kurzester Wege in Distanzgraphen ist grundlegend fur diese

Arbeit. Um dieses Problem in seiner Allgemeinheit zu betrachten, fuhren wir eine besondere

algebraische Struktur ein, namlich die Struktur der abgeschlossenen Semiringe. Hiermit ist

es moglich, Pfadprobleme von einem abstrakteren Standpunkt aus zu betrachten. Hierdurch

erhalt man einen wesentlich tieferen Einblick in das Gebiet der Pfadprobleme.

Definition 2.7. Ein Semiring ist ein 5-Tupel S = (S, +, ·, 0S, 1S) mit folgenden Eigenschaf-

ten:

1) S ist eine Menge mit mindestens zwei Elementen

Page 13: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

2.3 Abgeschlossene Semiringe 7

2) 0S , 1S ∈ S, 0S 6= 1S3) +, · : S × S → S sind binare Operationen auf S

4) (S, +, 0S) ist ein kommutatives Monoid mit neutralem Element 0S ,

(S, ·, 1S) ist ein Monoid mit neutralem Element 1S ,

es gelten die Distributivgesetze und 0S ist Nullelement bzgl ·,d.h. fur alle a, b, c ∈ S gelten:

a + (b + c) = (a + b) + c (Assoziativgesetz bzgl. +)(2.28)

a + b = b + a (Kommutativgesetz bzgl. +)(2.29)

a + 0S = a (0S ist neutrales Element bzgl. +),(2.30)

a · (b · c) = (a · b) · c (Assoziativgesetz bzgl. ·)(2.31)

a · 1S = 1S · a = a (1S ist neutrales Element bzgl. ·)(2.32)

a · (b + c) = (a · b) + (a · c) (1. Distributivgesetz)(2.33)

(a + b) · c = (a · c) + (b · c) (2. Distributivgesetz)(2.34)

a · 0S = 0S · a = 0S (0S ist Nullelement bzgl. ·)(2.35)

Der Semiring S heißt abgeschlossener Semiring, wenn fur Familien (ai)i∈I von Elementen

aus S mit abzahlbarer Indexmenge I eine Summe∑

i∈I ai definiert ist (falls I unendlich ist,

heißt∑

i∈I ai eine unendliche Summe). Die Summe muß folgende Eigenschaften erfullen:∑i∈I

ai = ai1 + · · ·+ aik , falls I = i1, . . . , ik endlich ist(2.36) ∑i∈∅

ai = 0S(2.37) ∑i∈I

ai =∑j∈J

∑i∈Ij

ai, falls (Ij)j∈J eine Partition von I ist(2.38)

(∑i∈I

ai) · (∑j∈J

bj) =∑i∈I

∑j∈J

(ai · bj)(2.39)

Definition 2.8. Ein Semiring S heißt nullteilerfrei, wenn fur alle a, b ∈ S aus a · b = 0Sstets a = 0S oder b = 0S folgt.

Bemerkung. In einem nullteilerfreien Semiring ist fur a, b ∈ S \0S auch a ·b ∈ S \0S. Die

Multiplikation von S induziert eine Multiplikation in S \0S. Die induzierte Multiplikation

ist selbstverstandlich auch assoziativ.

Beispiel 2.2. Der boolesche Semiring B = (0, 1,∨,∧, 0, 1) ist der einfachste abgeschlos-

sene Semiring. B ist außerdem nullteilerfrei.

Page 14: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

8 2. Grundbegriffe

Beispiel 2.3. Der reelle (inf, +)-Semiring R = (R ∪ ∞,−∞, inf, +,∞, 0) ist ein abge-

schlossener Semiring. Hierbei sei zusatzlich (−∞) +∞ := ∞ definiert. Man beachte, daß in

diesem Semiring + die Multiplikation und 0 = 1R das neutrale Element der Multiplikation

ist! Die Infimumbildung ist die Addition in diesem Semiring. Folglich ist infai : i ∈ I die

I-indizierte Summe. (Man beachte: inf ∅ = ∞, denn das Infimum einer Menge ist die großte

obere Schranke, und fur die leere Menge sind alle Zahlen obere Schranken). Offensichtlich

ist R auch nullteilerfrei.

Beispiel 2.4. Der nichtnegative (inf, +)-Semiring R+ = (R+ ∪ ∞, inf, +,∞, 0) ist ein

nullteilerfreier abgeschlossener Semiring. R+ ist ein Untersemiring von R und eine Erwei-

terung des Booleschen Semirings, weil B zu folgendem Untersemiring von R+ isomorph ist:

(0,∞, inf, +,∞, 0).

Fur abgeschlossene Semiringe definieren wir eine weitere einstellige Operation:

Definition 2.9. Sei S ein abgeschlossener Semiring und a ∈ S. Der Abschluß von a ist

a∗ := 1S + a + a2 + · · · =∑i≥0

ai(2.40)

Dabei seien die Potenzen wie ublich definiert, d.h. a0 = 1S und ai+1 = ai · a.

Bemerkung. In jedem abgeschlossenen Semiring ist 0∗S = 1S . Im booleschen Semiring B ist

a∗ = 1 fur alle a. In R ist a∗ = 0 fur a ≥ 0 und a∗ = −∞ fur a < 0. In R+ ist a∗ = 0 fur alle

a.

Summe und Produkt von n×n-Matrizen uber einen abgeschlossenen Semiring definieren wir

in gewohnter Weise, d.h. (aij)+(bij) = (aij +bij) und (aij) ·(bjk) = (∑n

j=1 aij ·bjk). Allerdings

schranken wir unsere Definition nicht auf Mat(n×n, S) = Abb(1, . . . , n×1, . . . , n, S) ein,

sondern definieren die entsprechende Summe und das entsprechende Produkt auf Abb(X ×X, S) fur jede nichtleere endliche Menge X.

Definition 2.10. Sei S ein abgeschlossener Semiring und X eine beliebige nichtleere endli-

che Menge. Fur zwei Abbildungen f, g ∈ Abb(X × X, S) seien f + g ∈ Abb(X × X, S) und

f · g ∈ Abb(X × X, S) definiert durch

f + g : X × X −→ S, (x, y) 7−→ f(x, y) + g(x, y)(2.41)

f · g : X × X −→ S, (x, y) 7−→∑z∈X

f(x, z) · g(z, y)(2.42)

Page 15: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

2.4 S-Graphen 9

Die Nullfunktion 0S ∈ Abb(X × X, S) und die Einheitsfunktion IS ∈ Abb(X × X, S) seien

definiert durch

0S : X × X −→ S, 0S(x, y) = 0S(2.43)

IS : X × X −→ S, IS(x, y) =

1S falls x = y

0S falls x 6= y(2.44)

Satz 2.1. (Abb(X × X, S), +, ·, 0S, IS) ist ein abgeschlossener Semiring.

Beweis. elementar: Man zeigt die Gultigkeit der Semiringgesetze fur Abb(X × X, S), indem

man die Semiringeigenschaften von S benutzt.

Definition 2.11. Weil Abb(X×X, S) ein abgeschlossener Semiring ist, ist damit gleichzeitig

ein Abschluß fur Funktionen f ∈ Abb(X × X, S) definiert:

f ∗ := IS + f + f 2 + · · · =∑i≥0

f i(2.45)

Dabei seien die Potenzen wie ublich definiert, d.h. f 0 = IS und f i+1 = f i · f .

Durch Betrachtung des Spezialfalles X = 1, . . . , n erhalten wir die gewohnte Matrizen-

schreibweise zuruck:

Definition 2.12. Sei S ein abgeschlossener Semiring und A = (aij), B = (bij) ∈ Mat(n ×n, S).

0S = (0S)(2.46)

IS = (δij)(2.47)

(aij) + (bij) = (aij + bij)(2.48)

(aij) · (bjk) = (

n∑j=1

aij · bjk)(2.49)

A∗ = IS + A + A2 + · · · =∑i≥0

Ai(2.50)

Satz 2.2. (Mat(n × n, S), +, ·, 0S, IS) ist ein abgeschlossener Semiring. S ist isomorph zu

Mat(1 × 1, S).

2.4 S-Graphen

Im diesem Abschnitt sei S = (S, +, ·, 0S , 1S) ein abgeschlossener Semiring. Die Semiringope-

rationen bezeichnen wir auch mit”+S“ und

”·S“, um Verwechslungen und Mißverstandnisse

zu vermeiden.

Page 16: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

10 2. Grundbegriffe

Endliche Graphen ohne parallele Kanten (G = (V, E), |V | = n < ∞, E ⊆ V × V ) die-

nen zur Beschreibung von Situationen, in denen eine endliche Menge von Objekten vorliegt

und Beziehungen zwischen bestimmten (geordneten) Objektpaaren bestehen. Zur Modellie-

rung realer Probleme reicht oft eine boolesche Funktion E ⊆ V × V nicht aus. Den Knoten

oder Kanten kann man dann weitere Informationen zuordnen. Dieses geschieht mittels Ab-

bildungen V → WV oder E → WE fur irgendwelche Wertebereiche WV und WE . Solche

Abbildungen heißen Knotenmarkierungen bzw. Kantenmarkierungen.

In dieser Arbeit interessieren wir uns insbesondere fur Graphen mit einer nichtnegativen

Kantenmarkierung cost : E → R+ . Solche Graphen nennt man meist Distanzgraphen. Re-

ellwertige Kantenmarkierungen cost : E → R heißen Bewertungsfunktionen. Die Bewertung

cost(v, w) einer Kante (v, w) ∈ E interpretiert man als Lange, Gewicht oder Kosten der Kan-

te. Wir wollen nicht zwischen Bewertungen, Langen, Kosten und Gewichte unterscheiden,

sondern diese Begriffe synonym benutzen. Dementsprechend unterscheiden wir auch nicht

zwischen kurzesten Wegen und kostengunstigsten Wegen in bewerteten Graphen.

Zur Speicherdarstellung von kantenmarkierten Graphen mittels Adjazenzmatrizen tragt man

direkt die Kantenbeschriftung statt der booleschen Werte in die Matrix ein (markierte Adja-

zenzmatrix). Dazu erweitert man den Wertebereich der Kantenmarkierung um ein weiteres

Element, welches man zur Markierung der Nichtkanten E := (V × V ) \ E verwendet. Im

Fall der bewerteten Graphen erweitert man die Kostenfunktion mittels cost(v, w) := ∞ fur

(v, w) ∈ E. Aus cost : E → R wird so eine Abbildung cost : V × V → R ∪ ∞. Die

entsprechende markierte Adjazenzmatrix heißt jetzt Kostenmatrix.

Als Verallgemeinerung der gewohnlichen unmarkierten Graphen G = (V, E), der bewerteten

Graphen G = (V, E, cost) mit cost : E → R und der Distanzgraphen G = (V, E, cost) mit

cost : E → R+ definieren wir Graphen mit einer Bewertungsfunktion cost : V ×V → S uber

einen abgeschlossenen Semiring S.

Definition 2.13. Ein S-Graph ist ein Paar G = (V, cost), aus einer nichtleeren endlichen

Knotenmenge V = v1, . . . , vn und einer Bewertungfunktion (Kostenfunktion, Langenfunk-

tion, Gewichtsfunktion) cost : V × V → S. n = |V | heißt Knotenzahl des Graphen. Die

Menge aller S-Graphen mit Knotenmenge V bezeichnen wir mit Graph(V,S). Offenbar gilt:

Graph(V,S) = (V, cost) : cost ∈ Abb(V × V, S)(2.51)

Definition 2.14. Ein geordnetes Knotenpaar (v, w) ∈ V × V heißt Kante, wenn cost(v, w)

6= 0S , und Nichtkante, wenn cost(v, w) = 0S ist. Die Menge der Kanten bezeichnen wir mit

Page 17: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

2.4 S-Graphen 11

E, die der Nichtkanten mit E. e = |E| heißt Kantenzahl des Graphen.

E ∩ E = ∅(2.52)

E ∪ E = V × V(2.53)

E = (v, w) : cost(v, w) 6= 0S(2.54)

E = (v, w) : cost(v, w) = 0S(2.55)

G heißt leerer Graph im Fall E = ∅ und vollstandiger Graph im Fall E = V × V .

Bemerkung. Die Menge der geordneten Knotenpaare V × V zerfallt also in die Menge der

Kanten E und die Menge der Nichtkanten E. Diese Zerlegung wird durch die Kostenfunk-

tion cost bestimmt. Die Kostenfunktion markiert die Nichtkanten unter den geordneten

Knotenpaaren mit dem Nullelement des Semirings bzgl. der Multiplikation. Umgekehrt ist

ein S-Graph G ∈ Graph(v,S) schon durch die Kantenmenge E und die Beschrankung von

cost auf E, cost |E : E → S \ 0S, eindeutig festgelegt.

Eine alternative gleichwertige Definitionsmoglichkeit fur S-Graphen ist deshalb folgende:

G = (V, E, cost) mit Kantenmenge E ⊆ V × V und Kostenfuktion cost : E → S \ 0S,welche man dann mittels cost(v, w) := 0S fur (v, w) ∈ (V ×V )\E auf ganz V ×V erweitert.

Dieses entspricht dann dem in der Literatur ublichen Vorgehensweise. Dort werden Kanten-

markierungen nur auf E und nicht auf ganz V ×V definiert, aber in der Kostenmatrixdarstel-

lung eines markierten Graphen wird der Wertebereich um ein geeignetes Element erweitert,

welches die Nichtexistenz einer Kante zu einem geordneten Knotenpaar ausdruckt.

Definition 2.15. Ein Graph G′ = (V ′, cost′) mit V ′ ⊆ V und E ′ ⊆ E heißt Teilgraph von

G, wenn cost′(v, w) = cost(v, w) fur (v, w) ∈ E ′.

Beispiel 2.5. B-Graphen sind nichts anderes als gewohnliche unmarkierte Graphen in ande-

rer Schreibweise. Die Kostenfunktion ist aquivalent zur Kantenmenge, denn sie liefert keine

zusatzlichen Informationen zu den Knotenpaaren außer die Existenz bzw. Nichtexistenz von

Kanten. Wir werden fur B-Graphen G = (V, cost) deshalb auch die Schreibweise G = (V, E)

verwenden und B-Graphen auch einfach”Graphen“ nennen.

Beispiel 2.6. R-Graphen sind Graphen mit einer Kantenmarkierung cost : E → R∪−∞.Insbesondere gehoren hierzu Graphen mit einer reellwertigen Kantenmarkierung cost : E →R. Auch B-Graphen G = (V, E) kann man als R-Graphen auffassen, indem man cost(v, w) :=

0 fur (v, w) ∈ E und cost(v, w) := ∞ fur (v, w) ∈ E definiert.

Beispiel 2.7. R+-Graphen sind spezielle R-Graphen mit einer nichtnegativen Kantenmar-

kierung cost : E → R+ . Die Kostenfunktion interpretiert man haufig als Langenfunktion auf

Page 18: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

12 2. Grundbegriffe

der Kantenmenge. Wir benotigen R+-Graphen zur Modellierung der Flughafen und Flug-

verbindungen und damit zur Definition der Airline-Metrik.

Wir haben S-Graphen als gerichtete Graphen (Digraphen) definiert. Ungerichtete S-Gra-

phen behandeln wir nicht als eigene Art von Graphen, sondern als spezielle S-Graphen.

Dabei verwenden wir eine unprazise, aber gebrauchliche Schreibweise (siehe [1]).

Definition 2.16. Ein S-Graph G = (V, cost) heißt ungerichtet, falls cost symmetrisch ist,

d.h. cost(v, w) = cost(w, v) fur alle v, w ∈ V . In diesem Fall sind Kanten bzw. Nichtkanten

ungeordnete Knotenpaare. Wir verwenden allerdings weiter die Schreibweise E, E ⊆ V × V ,

aber wir schreiben (v, w) = (w, v), so daß (v, w) und (w, v) dieselbe Kante bezeichnen.

Entsprechend verandert sich die Kantenzahl im ungerichteten Graphen von e (Anzahl der

gerichteten Kanten) zu eu (Anzahl der ungerichteten Kanten). Wegen eu ≤ e ≤ 2eu, d.h.

eu ∈ Θ(e), spielt es bei Komplexitatsbetrachtungen keine Rolle, ob wir als Kantenzahl eines

ungerichteten Graphen die Anzahl der gerichteten Kanten oder die Anzahl der ungerichteten

Kanten verwenden.

2.5 Darstellung von Graphen im Speicher

Die Wahl der Darstellungsart fur einen bestimmten Algorithmus wird von Komplexitats-

fragen bestimmt. Hierbei ist nicht nur die Laufzeit fur die einzelnen Operationen des Algo-

rithmus entscheidend, sondern auch die fur die Initialisierung der Datenstruktur benotigte

Laufzeit und der Speicherplatzbedarf spielen eine Rolle.

2.5.1 Adjazenzmatrix

Sei G = (V, cost) ein S-Graph mit |V | = n. Mit Hilfe einer bijektiven Abbildung

v : 1, . . . , n −→ V

i 7−→ vi

(2.56)

konnen wir die Kostenfunktion cost : V × V → S als Abbildung cost : 1, . . . , n ×1, . . . , n → S schreiben. Eine Abbildung 1, . . . , n × 1, . . . , n → S heißt auch n × n-

Matrix uber S.

CG = (costij)i,j∈1,...,n ∈ Mat(n × n; S)

costij := cost(vi, vj)(2.57)

Page 19: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

2.5 Darstellung von Graphen im Speicher 13

CG = (costij) heißt Kostenmatrix des Graphen G.

Die Kostenmatrix ist genau dann symmetrisch, wenn die Kostenfunktion symmetrisch ist,

d.h. wenn der Graph ungerichtet ist.

Der Vorteil dieser Darstellung ist, daß man in konstanter Zeit O(1) die Kosten eines Kno-

tenpaares erhalt. Insbesondere kann man in konstanter Zeit entscheiden, ob ein geordnetes

Knotenpaar eine Kante oder Nichtkante ist. Der Nachteil ist der große Speicherplatzbedarf

von O(n2). Fur kleine Kantenzahlen im Vergleich zur Knotenzahl bedeutet das eine Ver-

schwendung von Speicher. Lineare Laufzeit O(n + e) ist hiermit unerreichbar, da schon fur

die Initialisierung Ω(n2) Zeit benotigt wird.

Graphen, deren Anzahl der Kanten klein im Vergleich zum Quadrat der Knotenzahl ist,

kommen haufig vor, z.B. azyklische ungerichtete Graphen (ungerichtete Walder). Allerdings

werden wir im weiteren hauptsachlich vollstandige Graphen betrachten, fur die wegen e ∈Θ(n2) die Adjazenzmatrixdarstellung sehr geeignet ist.

2.5.2 Adjazenzlisten

Fur jeden Knoten v ∈ V verwaltet man eine Liste Lv seiner Nachfolger-Nachbarnknoten.

Diese Liste heißt Adjazenzliste oder Nachbarschaftsliste. Die Listenelemente enthalten wei-

tere Eintrage fur die Kostenfunktion und eventuelle weitere Knoten-/Kantenmarkierungen.

Zusatzlich speichert man Zeiger auf die Listen Lv1 , . . . , Lvn in einem Array der Lange n = |V |.

Der Vorteil dieser Darstellung ist ein Speicherplatzbedarf von nur O(n+e), weil Nichtkanten

in dieser Darstellung nicht explizit gespeichert werden. Der Nachteil ist, daß man fur die

Entscheidung, ob ein geordnetes Knotenpaar eine Kante oder Nichtkante ist, sowie fur die

Berechnung der Kosten einer Kante O(n)-Zeit benotigt.

Page 20: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

14 2. Grundbegriffe

Page 21: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

Kapitel 3

Allgemeine Pfadprobleme uber

abgeschlossenen Semiringen

Im diesem Kapitel sei S = (S, +, ·, 0S, 1S) ein nullteilerfreier abgeschlossener Semiring und

G = (V, cost) ein S-Graph mit Knotenmenge V = v1, . . . , vn und Knotenzahl n. Die

Kantenmenge von G sei E, |E| = e. Die Standardbeispiele seien wieder B,R und R+.

3.1 Wege in S-Graphen

Wir setzen nun die Behandlung von S-Graphen fort. Bisher haben wir geordnete Knoten-

paare (v, w) ∈ V × V betrachtet. Jetzt erweitern wir unsere Betrachtungen auf geordnete

Knotentupel (w0, . . . , wk) ∈ V +. Dazu setzen wir zunachst die Kostenfunktion cost auf V +

fort. So wie die Menge der Knotenpaare V × V in die Menge der Kanten E und die Menge

der Nichtkanten E zerfallt, so zerfallt auch die Menge der Knotentupel V + in die Menge der

Wege PathG und die Menge der Nichtwege PathG.

Definition 3.1. Die Kostenfunktion auf der Menge der Knotentupel sei wie folgt definiert:

cost : V + → S

cost(w0, . . . , wk) := cost(w0, w1) · cost(w1, w2) · . . . · cost(wk−1, wk)

cost(w0) := 1S

(3.1)

Definition 3.2. Ein geordneter Knotentupel p = (w0, . . . , wk) ∈ V + heißt Weg oder Pfad,

falls (wi, wi+1) ∈ E fur alle i ∈ 0, . . . , k−1, und Nichtweg oder Nichtpfad, falls (wi, wi+1) ∈E fur ein i ∈ 0, . . . , k − 1. Ein einzelner Knoten v stellt einen Weg (v) dar.

Bemerkung. Wegen der Nullteilerfreiheit von S gilt fur Wege p immer cost(p) 6= 0S . Fur

Nichtwege p gilt naturlich stets cost(p) = 0S .

15

Page 22: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

16 3. Allgemeine Pfadprobleme uber abgeschlossenen Semiringen

Definition 3.3. Die Menge der Wege bezeichnen wir mit PathG, die der Nichtwege mit

PathG.

PathG ∩ PathG = ∅(3.2)

PathG ∪ PathG = V +(3.3)

PathG = p ∈ V + : cost(p) 6= 0S(3.4)

PathG = p ∈ V + : cost(p) = 0S(3.5)

Nachdem wir die Kostenfunktion auf Wege bzw. Knotentupel fortgesetzt haben, definieren

wir jetzt die Kostenfunktion fur Mengen von Wegen bzw. Mengen von Knotentupel. Mit

anderen Worten: Wir setzen die Kostenfunktion auf der Potenzmenge von V + fort.

Definition 3.4. Die Kostenfunktion auf der Potenzmenge der Knotentupel, P(V +) := P :

P ⊆ V +, sei wie folgt definiert:

cost : P(V +) −→ S

cost(P ) :=∑p∈P

cost(p)(3.6)

Hieraus kann man leicht einige Folgerungen ableiten.

Satz 3.1. Es seien P, P1, P2 ⊆ V +. Dann gilt:

cost(∅) = 0S(3.7)

cost(P1) + cost(P2) = cost(P1 ∪ P2) + cost(P1 ∩ P2)(3.8)

cost(P1) + cost(P2) = cost(P1 ∪ P2), falls P1 ∩ P2 = ∅(3.9)

cost(P ) = 0S , falls P ⊆ PathG(3.10)

cost(P ) = cost(P ∩ PathG)(3.11)

Ein weiterer wichtiger Begriff ist der Begriff”Lange eines Weges“.

Definition 3.5. Die Lange eines Weges p = (w0, . . . , wk) ist die Anzahl der Kanten auf dem

Weg, hier also k. Auch fur Nichtwege p = (w0, . . . , wk) sei k die Lange. Wir bezeichnen die

Lange von p mit |p|. Ein Kreis ist ein Weg, bei dem der Startknoten zugleich der Endknoten

ist, hier also w0 = wk. Ein Weg oder Kreis heißt einfach, wenn seine Knoten paarweise

verschieden sind (erlaubt ist naturlich die Ausnahme w0 = wk). Ein Zyklus ist ein einfacher

Kreis, dessen Lange mindestens 1 betragt.

Bemerkung. Ein einzelner Knoten v stellt einen Weg (v) der Lange 0 dar. Insbesondere gibt

es immer einen Weg der Lange 0 von einem Knoten zu sich selbst. Die Kanten sind die Wege

der Lange 1.

Page 23: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

3.2 Matrizenprodukte und Wege 17

Definition 3.6. Die Menge der Wege der Lange k bezeichnen wir mit PathkG, die der Nicht-

wege der Lange k mit PathkG.

PathkG ∩ Pathk

G = ∅(3.12)

PathkG ∪ Pathk

G = V k+1(3.13)

PathkG = V k+1 ∩ PathG(3.14)

PathkG = V k+1 ∩ PathG(3.15)

V + =⋃k≥0

V k+1 =⋃k≥0

PathkG ∪

⋃k≥0

PathkG(3.16)

3.2 Matrizenprodukte und Wege

Die Kostenfunktion cost eines S-Graphen G = (V, cost) ist selber ein Element des abge-

schlossenen Semirings Abb(V × V, S). Man kann deshalb die Summe und das Produkt zwei-

er Kostenfunktionen, sowie den Abschluß einer Kostenfunktion bilden. Diese Operationen

ubertragen wir nun auf S-Graphen und machen den Raum Graph(V,S) damit selbst zu

einem abgeschlossenen Semiring.

Definition 3.7. Fur zwei Graphen G1 = (V, cost1), G2 = (V, cost2) ∈ Graph(V,S) seien

G1 + G2 ∈ Graph(V,S) und G1 · G2 ∈ Graph(V,S) definiert durch

G1 + G2 = (V, cost1 + cost2)(3.17)

G1 · G2 = (V, cost1 · cost2)(3.18)

Der Nullgraph G0S ∈ Graph(V, S) und der Einheitsgraph GIS ∈ Graph(V, S) seien definiert

durch

G0S = (V, 0S), 0S : V × V −→ S, 0S(x, y) = 0S(3.19)

GIS = (V, IS), IS : V × V −→ S, IS(x, y) =

1S falls x = y

0S falls x 6= y(3.20)

Satz 3.2. (Graph(V,S), +, ·, G0S, GIS) ist ein abgeschlossener Semiring.

Definition 3.8. Sei G = (V, cost) ∈ Graph(V,S). Potenzen von G seien wie ublich definiert:

G0 = (V, cost0) = GIS(3.21)

Gi+1 = (V, costi+1) = Gi · G(3.22)

Der Abschluß von G ist

G∗ := (V, cost∗) =∑i≥0

Gi(3.23)

Page 24: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

18 3. Allgemeine Pfadprobleme uber abgeschlossenen Semiringen

Wir untersuchen nun den Zusammenhang zwischen Wegen in G und Potenzen der Kosten-

funktion, d.h. costk mit k ≥ 0 und cost∗. Dazu benotigen wir eine Schreibweise fur die Wege

von einem Anfangsknoten v ∈ V zu einem Zielknoten w ∈ V .

Definition 3.9. Seien v, w ∈ V zwei beliebige Knoten. Ein Weg von v nach w ist ein Weg

p = (w0, . . . , wk) ∈ PathG mit w0 = v und wk = w. Die Menge aller Wege von v nach w

bezeichnen wir mit PathG(v, w), die der Nichtwege von v nach w mit PathG(v, w). Entspre-

chend sei PathkG(v, w) die Menge der Wege von v nach w der Lange k und Pathk

G(v, w) die

Menge der Nichtwege von v nach w der Lange k.

Die Kantenmenge E ist als Teilmenge von V ×V zugleich eine Relation auf V . Deshalb kann

man zu E die k-te Potenz Ek fur k ∈ N sowie die reflexiv-transitive Hulle E∗ :=⋃∞

i=0 Ei

bilden (siehe Def. 2.3).

Satz 3.3. Es sei Ek die k-te Potenz von E und E∗ die reflexiv-transitive Hulle von E. Dann

gilt fur alle v, w ∈ V und k ∈ N :

PathkG(v, w) 6= ∅ ⇐⇒ (v, w) ∈ Ek(3.24)

PathG(v, w) 6= ∅ ⇐⇒ (v, w) ∈ E∗(3.25)

Insbesondere gilt: Path1G = E1 = E.

Wir konnen nun den zentralen Satz dieses Abschnitts formulieren, der einen Zusammenhang

zwischen dem Matrixprodukt und Wegen liefert.

Satz 3.4. Seien v, w ∈ V wieder zwei beliebige Knoten. Dann gilt:

costk(v, w) =∑

p∈PathkG(v,w)

cost(p) = cost(PathkG(v, w)), fur alle k ∈ N(3.26)

cost∗(v, w) =∑

p∈PathG(v,w)

cost(p) = cost(PathG(v, w))(3.27)

Beweis. Induktion uber k.

k = 0:

cost(Path0G(v, w)) =

cost(v) falls v = w

cost(∅) falls v 6= w

=

1S falls v = w

0S falls v 6= w

= IS(v, w)

= cost0(v, w)

Page 25: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

3.2 Matrizenprodukte und Wege 19

k = 1:

cost(Path1G(v, w)) =

cost(v, w) falls (v, w) ∈ PathG

0S falls (v, w) ∈ PathG

= cost(v, w)

= cost1(v, w)

k ⇒ k + 1:

cost(Pathk+1G (v, w)) = cost(v × V k × w)

= cost(⋃u∈V

(v × V k−1 × u × w))

=∑u∈V

(cost(v × V k−1 × u) · cost(u, w))

=∑u∈V

(cost(PathkG(v, u)) · cost(u, w))

=∑u∈V

(costk(v, u) · cost(u, w))

= costk+1(v, w)

k = ∗:

cost(PathG(v, w)) = cost(⋃k≥0

PathkG(v, w))

=∑k≥0

cost(PathkG(v, w))

=∑k≥0

costk(v, w)

= cost∗(v, w)

Diesen Satz konnen wir naturlich auch in der gewohnten Kostenmatrixschreibweise formu-

lieren.

Definition 3.10. Sei CG = (costij)i,j∈1,...,n ∈ Mat(n × n; S) mit costij := cost(vi, vj) die

Kostenmatrix von G = (V, cost). Die k-te Potenz der Kostenmatrix bezeichnen wir mit

CkG = (costk

ij)i,j∈1,...,n ∈ Mat(n×n; S). Den Abschluß der Kostenmatrix bezeichnen wir mit

C∗G = (cost∗ij)i,j∈1,...,n ∈ Mat(n × n; S).

Page 26: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

20 3. Allgemeine Pfadprobleme uber abgeschlossenen Semiringen

Satz 3.5. Seien i, j ∈ 1, . . . , n. Dann gilt:

costkij =

∑p∈Pathk

G(vi,vj)

cost(p) = cost(PathkG(vi, vj)), fur alle k ∈ N(3.28)

cost∗ij =∑

p∈PathG(vi,vj)

cost(p) = cost(PathG(vi, vj))(3.29)

3.3 Das”general path“-Problem

Nachdem wir nun im letzten Kapitel und in den ersten beiden Abschnitten dieses Kapitels

die benotigten Hilfsmittel bereitgestellt haben, konnen wir uns jetzt endlich dem”general

path“-Problem widmen. Dieses Problem ist eines der fundamentalen algorithmischen Gra-

phenprobleme. Teilprobleme vieler Anwendungen lassen sich als”general path“-Problem

formulieren. Auch unsere Definition der Airline-Metrik im nachsten Kapitel wird auf diesem

Problem beruhen.

Definition 3.11 (”general path“-Problem).

Man berechne ∑p∈PathG(v,w)

cost(p)(3.30)

fur alle v, w ∈ V .

Dieses ist gleichbedeutend mit der Berechnung des Abschlusses von G

G∗ = (V, cost∗)(3.31)

bzw. mit der Berechnung des Abschlusses der Kostenmatrix von G

C∗G = (cost∗ij)i,j∈1,...,n ∈ Mat(n × n; S)(3.32)

wie wir im letzten Abschnitt gezeigt haben.

Fur unsere Standardbeispiele B,R und R+ betrachten wir das”general path“-Problem etwas

ausfuhrlicher.

Beispiel 3.1. Sei hier S der boolesche Semiring B = (0, 1,∨,∧, 0, 1). G = (V, cost) ist ein

B-Graph mit Kantenmenge E.

Page 27: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

3.3 Das”general path“-Problem 21

Dann ist

cost∗(v, w) = cost(PathG(v, w))

=∨

p∈PathG(v,w)

cost(p)

=

1 falls PathG(v, w) 6= ∅0 falls PathG(v, w) = ∅

=

1 falls (v, w) ∈ E∗

0 falls (v, w) 6∈ E∗

Die Kantenmenge des Abschlusses G∗ = (V, cost∗) von G ist die reflexiv-transitive Hulle

E∗ =⋃∞

i=0 Ei der Kantenmenge E von G.

Das”general path“-Problem fur B-Graphen ist damit nichts anderes als das

”transitive

closure“-Problem fur gewohnliche unmarkierte Graphen.

Definition 3.12 (”transitive closure“-Problem).

Sei G = (V, E) ein Graph. Man berechne die transitive Hulle von G, d.h. den Graphen

G∗ = (V, E∗) mit E∗ = (v, w) : es gibt einen Pfad in G von v nach w.

Beispiel 3.2. Jetzt sei S der nichtnegative (inf, +)-Semiring R+ = (R+ ∪∞, inf, +,∞, 0).

cost∗(v, w) = cost(PathG(v, w))

= infcost(p) : p ∈ PathG(v, w)

Jeden Weg p ∈ PathG(v, w) kann man zu einem einfachen Weg p′ mit |p′| ≤ |p|, |p′| < n

und cost(p′) ≤ cost(p) verkurzen, indem man innere Zyklen entfernt. Um cost∗(v, w) zu

berechnen, brauchen wir deshalb nur die endliche Menge⋃n−1

k=0 PathkG(v, w) zu betrachten

cost∗(v, w) = infcost(p) : p ∈n−1⋃k=0

PathkG(v, w)

=

mincost(p) : p ∈ ⋃n−1k=0 Pathk

G(v, w) falls PathG(v, w) 6= ∅∞ falls PathG(v, w) = ∅

Insbesondere gibt es im Fall cost∗(v, w) < ∞ mindestens einen Weg p ∈ PathG(v, w) mit

cost∗(v, w) = cost(p). Derartige Wege heißen kostengunstigste Wege von v nach w.

Bemerkung. Meistens interpretiert man bei R+-Graphen die Kosten einer Kante als Lange

der Kante. Kostengunstigste Wege nennt man dann kurzeste Wege. Man beachte, daß diese

Interpretation der Kostenfunktion leicht zu Mißverstandnissen fuhren kann, weil der Begriff

Page 28: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

22 3. Allgemeine Pfadprobleme uber abgeschlossenen Semiringen

”Lange eines Weges“ dann zweimal definiert ist. Zum einen ist dann cost(p) = cost(w0, w1)+

cost(w1, w2)+ . . .+cost(wk−1, wk) die Lange des Weges p = (w0, . . . , wk), zum anderen heißt

|p| = k ja auch Lange des Weges p. Auch der Begriff”kurzester Weg von v nach w“ ist

dann mit zwei unterschiedlichen Bedeutungen belegt. Man muß bei der Interpretation der

Kostenfunktion als Lange und Benutzung des Begriffs Lange darauf achten, daß klar ist,

welche der beiden Langen gemeint ist.

Fur R+-Graphen G gibt die Kostenfunktion cost∗ des Abschlusses G∗ = (V, cost∗) die Kosten

der kostengunstigsten Weges zwischen den Knoten an. Das”general path“-Problem fur R+-

Graphen nennt man deshalb”all pairs least cost path“-Problem bzw.

”all pairs shortest

path“-Problem.

Definition 3.13 (”all pairs least cost path“-Problem).

Sei G = (V, cost) ein R+-Graph. Man berechne den Abschluß G∗ = (V, cost∗) von G, d.h.

man bestimme zu jedem Knotenpaar (v, w) ∈ V × V die Kosten eines kostengunstigsten

Weges von v nach w (bzw. die Langen der kurzesten Wege).

R+-Graphen sind der geeignete Rahmen, um Wegprobleme von Distanzgraphen zu behan-

deln. Indem man Distanzgraphen, d.h. Graphen mit einer nichtnegativen Kantenmarkierung,

als Graphen mit einer Kantenmarkierung uber den abgeschlossenen Semiring R+ auffaßt,

wird aus dem”all pairs least cost path“-Problem ein Spezialfall des

”general path“-Problems.

Man kann dieses Problem dann mit dem Algorithmus von Kleene losen (siehe nachsten Ab-

schnitt). Insbesondere ermoglicht der Zusammenhang des”general path“-Problems mit der

Matrizenmultiplikation untere Schranken fur die Laufzeit des”all pairs least cost path“-

Problem fur Distanzgraphen zu bestimmen. Abgeschlossene Semiringe werden deshalb in

der Literatur immer dann eingefuhrt, wenn nicht nur ein Algorithmus fur ein Wegproblem

entwickelt werden soll, sondern daruber hinaus auch untere Schranken bestimmt werden

sollen, d.h. wenn die Komplexitat von Wegproblemen untersucht werden soll.

Dieses ist bei unserer Aufgabe der Fall, wie wir im nachsten Kapitel bei der Definition und

Untersuchung der Airline-Metrik sehen werden.

Beispiel 3.3. Auch im Fall des reellen (inf, +)-Semirings R = (R ∪ ∞,−∞, inf, +,∞, 0)

gilt

cost∗(v, w) = cost(PathG(v, w))

= infcost(p) : p ∈ PathG(v, w)

Anders als bei R+-Graphen konnen hier die Kosten von Kanten und damit auch von Wegen

negativ sein. Auch wenn cost(v, w) 6= −∞ fur alle v, w ∈ V , so ist dennoch cost∗(v, w) = −∞

Page 29: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

3.4 Der Algorithmus von Kleene 23

moglich, namlich dann, wenn es einen Weg von v nach w gibt, der einen Zyklus mit negativen

Kosten durchlauft. Man kann dann einen Weg von v nach w mit beliebig kleinen Kosten

konstruieren, indem man diesen Zyklus mehrfach durchlauft.

Insbesondere kann man sehen, daß R-Graphen der geeignete Rahmen sind, um Wegprobleme

von Graphen mit reellwertigen Kantenmarkierungen zu behandeln.

Selbstverstandlich gibt es viele weitere abgeschlossene Semiringe, z.B. (siehe [27])

S1 = (R+ ∪ ∞,−∞, sup, +,−∞, 0), mit (−∞) + ∞ := −∞(3.33)

S2 = (R+ ∪ ∞, sup, min, 0,∞)(3.34)

Im Fall S = S1 wird offenbar aus dem”general path“-Problem ein

”all pairs maximum cost

path“-Problem (bzw. ein”all pairs longest path“-Problem bei Interpretation der Kostenfunk-

tion als Lange). Der abgeschlossene Semiring S2 ist dagegen sehr geeignet zur Modellierung

von Kapazitaten von Transportwegen oder Nachrichtenverbindungen. Dazu interpretiert man

cost(v, w) als Kapazitat der Verbindungskante von v nach w. Die Kapazitat eines Weges ist

dann das Minimum der Kapazitaten der Kanten des Weges. cost∗(v, w) ist die Maximalka-

pazitat eines Weges von v nach w.

3.4 Der Algorithmus von Kleene

In diesem Abschnitt behandeln wir den Kleene-Algorithmus, der das”general path“-Problem

in der Kostenmatrixdarstellung lost. Dabei werden Θ(n3) Semiring-Operationen “+, ·, ∗”

benotigt. Wegen a∗ = 1 fur a ∈ B, a∗ = 0 fur a ∈ R+ und a∗ =

0 falls a ≥ 0

−∞ falls a < 0fur

a ∈ R, ist in den Fallen B, R und R+ auch die Gesamtanzahl der Semiring-Operationen

“+, ·” in O(n3). Der Speicherbedarf des Kleene-Algorithmus betragt Θ(n2).

Zunachst benotigen wir einige Definitionen, um den Algorithmus formulieren zu konnen.

Definition 3.14. Es sei Pij = PathG(vi, vj) und P(k)ij die Menge aller Wege p ∈ Pij , die

folgende Eigenschaften erfullen:

1) Alle inneren Knoten von p sind in der Menge v1, . . . , vk enthalten.

2) Wenn i = j > k, dann ist |p| ≥ 1,

d.h. der triviale Weg (vi) der Lange 0 ist nur dann in Pij, wenn i = j ≤ k.

Page 30: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

24 3. Allgemeine Pfadprobleme uber abgeschlossenen Semiringen

Offenbar ist P(0)ij = Path1

G(vi, vj) =

(vi, vj) falls (vi, vj) ∈ E

∅ falls (vi, vj) ∈ E

und P(n)ij = Pij = PathG(vi, vj).

Definition 3.15. Sei fur i, j ∈ 1, . . . , n und k ∈ 0, . . . , n

c(k)ij :=

∑p∈P

(k)ij

cost(p)(3.35)

Insbesondere ist dann c(0)ij = costij und c

(n)ij = cost∗ij .

Das”general path“-Problem ist die Berechnung der Matrix (cost∗ij) aus der Matrix (costij).

Der Algorithmus von Kleene berechnet dazu iterativ die Matrizen (c(k)ij ), k = 0, 1, . . . , n.

Bemerkung. Diese Vorgehensweise, d.h. die Konstruktion von Losungen fur zunehmend

großere Teilprobleme (hier: (costij) = (c(0)ij ), . . . , (c

(n)ij ) = (cost∗ij)), nennt man dynamische

Programmierung (siehe [28]). Bekannt wurde diese Methode durch Bellman (siehe [4]). Die

dynamische Programmierung ist auch eine der Wurzeln des divide-and-conquer-Paradigmas.

Fur den Kleene-Algorithmus benotigen wir eine Rekursionsformel zur Berechnung von (c(k)ij ).

Mit Hilfe der Zerlegung

P(k)ij = P

(k−1)ij ∪ p ∈ P

(k)ij \ P

(k−1)ij : |p| ≥ 1 falls i 6= k oder j 6= k(3.36)

P(k)ij = P

(k−1)ij ∪ p ∈ P

(k)ij \ P

(k−1)ij : |p| ≥ 1 ∪ (vi) falls i = j = k(3.37)

kann man leicht (siehe [27]) folgende Rekursionsformel herleiten.

Satz 3.6. Fur k = 1, . . . , n gilt

c(k)ij = c

(k−1)ij + (c

(k−1)ik · (c(k−1)

kk )∗ · c(k−1)kj ) falls i 6= k oder j 6= k(3.38)

c(k)ij = c

(k−1)ij + (c

(k−1)ik · (c(k−1)

kk )∗ · c(k−1)kj ) + 1 falls i = j = k(3.39)

Hieraus erhalten wir nun unmittelbar den Algorithmus von Kleene.

Algorithmus 3.1. (Algorithmus von Kleene)

(∗ Eingabe : (costij) −Kostenmatrix des Graphen G

Ausgabe : (cost∗ij) −Kostenmatrix des Graphen G∗ ∗)1) for all i, j ∈ 1, . . . , n do

2) c(0)ij := costij ;

3) end;

4) for k := 1 to n do

Page 31: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

3.4 Der Algorithmus von Kleene 25

5) for all i, j ∈ 1, . . . , n do

6) c(k)ij := c

(k−1)ij + (c

(k−1)ik · (c(k−1)

kk )∗ · c(k−1)kj );

7) if i = j = k then

8) c(k)ij := c

(k)ij + 1;

9) end;

10) end;

11) end;

12) for all i, j ∈ 1, . . . , n do

13) cost∗ij := c(n)ij ;

14) end;

In dieser Form benotigt der Kleene-Algorithmus Θ(n3) Speicherplatz und Θ(n3) Semiring-

Operationen “+, ·, ∗”. Man kann ihn aber so implementieren, daß er nur Θ(n2) Speicherplatz

braucht.

Unser Interesse gilt dem nichtnegativen (inf, +)-Semiring R+ = (R+∪∞, inf, +,∞, 0). Hier

ist die Infimumbildung die Semiringaddition und die Addition die Semiringmultiplikation.

Das Nullelement ist ∞ und das Einselement ist 0. Fur die Abschlußoperation “∗” gilt a∗ = 0

fur alle a ∈ R+ .

Algorithmus 3.2. (Algorithmus von Kleene fur den abgeschlossenen Semiring R+)

(∗ Eingabe : (costij) −Kostenmatrix des Graphen G

Ausgabe : (cost∗ij) −Kostenmatrix des Graphen G∗ ∗)1) for all i, j ∈ 1, . . . , n do

2) c(0)ij := costij;

3) end;

4) for k := 1 to n do

5) for all i, j ∈ 1, . . . , n do

6) c(k)ij := min(c

(k−1)ij , c

(k−1)ik + c

(k−1)kj );

7) if i = j = k then

8) c(k)ij := 0;

9) end;

10) end;

11) end;

12) for all i, j ∈ 1, . . . , n do

13) cost∗ij := c(n)ij ;

14) end;

Page 32: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

26 3. Allgemeine Pfadprobleme uber abgeschlossenen Semiringen

Diesen Algorithmus vereinfachen wir noch etwas durch Umformulieren. Das Ergebnis ist der

sog. Algorithmus von Floyd/Warshall.

Algorithmus 3.3. (Algorithmus von Floyd/Warshall)

(∗ Eingabe : (costij) −Kostenmatrix des Graphen G

Ausgabe : (cost∗ij) −Kostenmatrix des Graphen G∗ ∗)1) for all i, j ∈ 1, . . . , n do

2) cost∗ij :=

costij falls i 6= j

0 falls i = j;

3) end;

4) for k := 1 to n do

5) for all i, j ∈ 1, . . . , n do

6) cost∗ij := min(cost∗ij , cost∗ik + cost∗kj);

7) end;

8) end;

Der Algorithmus von Floyd/Warshall benotigt offenbar insgesamt Θ(n3) Semiring-Operatio-

nen “min, +” und hat den Speicherbedarf Θ(n2).

Bemerkung. Man kann den Algorithmus 3.3 durch Einfuhrung geeigneter Zeiger leicht so

erganzen, daß er nicht nur die Langen der kurzesten Wege berechnet, sondern auch solche

Wege selbst liefert (siehe [18]), wobei die Großenordnung der Zeit- bzw. Speicherplatzkomple-

xitat unverandert bleibt. Dazu speichert man zu jedem Knotenpaar (v, w), dessen kurzeste

Verbindung nicht der direkte Weg von v nach w ist, zusatzlich einen Zeiger auf einen inneren

Knoten u eines kurzesten Weges von v nach w. Diese Information dient dazu, einen kurzesten

Weg von v nach w rekursiv aus einem kurzesten Weg von v nach u und einem kurzesten Weg

von u nach w zusammenzusetzen.

Realisiert wird dieses, indem man eine weitere n × n-Matrix

var W : array [1..n, 1..n] of [0..n]

verwendet. Zur Initialisierung von W fugt man in Zeile 2) folgende Anweisung hinzu:

W [i, j] := 0;

Die Zuweisung in Zeile 6) wird durch folgende Zeilen ersetzt:

if cost∗ij > cost∗ik + cost∗kj then

cost∗ij := cost∗ik + cost∗kj;

W [i, j] := k;

end;

Mit Hilfe von W kann man dann zu jedem Knotenpaar einen kurzesten Weg in der Zeit

O(m) berechnen, wobei m die Lange dieses Weges ist.

Page 33: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

Kapitel 4

Die Airline-Metrik

4.1 Einfuhrung

Nachdem wir in den beiden letzten Kapiteln die Grundlagen bereitgestellt haben, wollen wir

in diesem Kapitel eine Metrik definieren, welche die in der Aufgabenstellung beschriebene

Situation modelliert. Betrachten wir also zunachst die Ausgangssituation:

Wir bewegen uns im R2 und benutzen die euklidische Metrik L2, welche wir auch durch die

Schreibweise dE(x, y) oder |xy| von anderen Metriken unterscheiden. Die euklidische Distanz

zweier Punkte entspricht der Zeit fur die direkte Bewegung zwischen diesen Punkten ohne

Benutzung von Flugverbindungen. Hier konnen wir zu erstenmal verallgemeinern: Statt von

Zeit sprechen wir im folgenden von Kosten oder Lange, und aus schnellster Verbindung wird

kostengunstigste bzw. kurzeste Verbindung.

Die Flughafen mit den Flugverbindungen modellieren wir durch einen ungerichteten R+-

Graphen G = (V, cost), V ⊂ R2 . Die Knoten entsprechen den Flughafen. Zwei Knoten v, w,

v 6= w seien genau dann adjazent, wenn zwischen den Flughafen mindestens eine direkte

Flugverbindung besteht. cost(v, w) entspricht dann den Kosten der kurzesten direkten Flug-

verbindung zwischen v und w. cost ist symmetrisch, und es gelte immer cost(v, w) > 0 fur

v 6= w.

Die Airline-Metrik dieses Graphen G bezeichnen wir mit “adG”. Wir wollen nun eine moglichst

einfache und praktikable Definition dieser Airline-Metrik angeben. Die Definition muß die

Vorgaben der Aufgabenstellung erfullen und eindeutig sein. Außerdem wollen wir die Airline-

Metrik so definieren, daß man die Definition leicht in einen Algorithmus zur Berechnung der

Airline-Distanz adG(x, y) umwandeln kann. Dazu uberlegen wir uns einige Moglichkeiten,

von denen wir dann die uns am geeignetesten erscheinende auswahlen.

27

Page 34: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

28 4. Die Airline-Metrik

• Wir konnen adG(x, y) als das Infimum der Lange aller zulassigen Wege von x nach y

definieren. Dazu mußten wir zunachst klaren, was unter einem zulassigem Weg zu ver-

stehen ist, z.B. das Bild einer geeigneten stuckweise stetig differenzierbaren Abbildung

w : [0, 1] → R2 . Danach mußten wir die Lange eines zulassigen Weges definieren.

• Wir konnen adG(x, y) als die großte Metrik definieren, die folgende Eigenschaft erfullt:

Sei M die Menge aller Metriken d auf dem R2 mit d(x, y) ≤ |xy| fur alle x, y ∈ R

2 und

d(v, w) ≤ cost(v, w) fur v, w ∈ V . Die Airline-Metrik sei dann

adG(x, y) := supd(x, y) : d ∈ M

• Wir konnen die Vorgaben aus der Aufgabenstellung direkt umsetzen:

adG(x, y) := infq : q = |xy| oder q = |xw0| + min|w0w1|, cost(w0, w1) + · · ·+ min|wm−1wm|, cost(wm−1, wm) + |wmy| mit w0, . . . , wm ∈ V

• Wir konnen mittels Graphentransformationen G in einen R+-Graphen G = (V , cost)

mit der Knotenmenge V = V ∪ x, y umwandeln, und dann adG mit Hilfe des Ab-

schlusses von G, G∗ = (V , cost∗), definieren:

adG(x, y) := cost∗(x, y)

• Wir konnen adG(x, y) auch in zwei Schritten definieren. Dazu definieren wir im ersten

Schritt adG(x, y) fur den Spezialfall x, y ∈ V . Dieses benutzen wir dann zur Definition

von adG(x, y) im allgemeinen Fall x, y ∈ R2 :

adG(x, y) := minq : q = |xy| oder q = |xv| + adG(v, w) + |wy| mit v, w ∈ V

Selbstverstandlich mussen wir unabhangig von der gewahlten Definition in jedem Fall zeigen,

daß adG auch tatsachlich eine Metrik auf dem R2 ist.

Mit der ersten Definition kann man die Vorgaben aus der Aufgabenstellung sehr direkt um-

setzen. Außerdem ist sie allgemein verwendbar: Die Metrik kann ortsabhangig sein, und der

betrachtete Raum kann eine differenzierbare Mannigfaltigkeit sein (siehe [25]). Wir untersu-

chen aber nur die euklidische Ebene. Zwar ist diese Definition vielleicht fur mathematische

Untersuchungen interessant, fur uns ist sie aber ungeeignet. Das Infimum der Langen einer

uberabzahlbaren Menge von Wegen kann man nicht mit einem Algorithmus berechnen. Diese

Definition ist auch die mit Abstand am aufwendigste. Sie benotigt eigene Begriffe (”zulassige

Wege“,”Lange von zulassigen Wegen“) und mathematische Hilfmittel.

Page 35: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

4.2 Definition der Airline-Metrik 29

Die zweite Definition benutzt eine interessante Eigenschaft der Airline-Metrik. Zur Berech-

nung der Distanz zweier Punkte in der Airline-Metrik ist sie aber genauso ungeeignet, wie

die erste. Es ist besser, diese Eigenschaft als Theorem zu formulieren, als sie zur Definition

zu verwenden.

Die dritte Definition hat die großte Nahe zur Aufgabenstellung. Aus ihr kann man leicht

ein endliches Verfahren zur Berechnung der Distanz zweier Punkte in der Airline-Metrik

herleiten.

Die vierte Definition entspricht der dritten, ist aber von der Formulierung her eleganter.

Ich habe mich fur die funfte Definition entschieden. Sie entspricht auch der dritten, orientiert

sich aber mehr an der algorithmischen Vorgehensweise. Ein Algorithmus zur Berechnung von

Abstanden bzgl. der Airline-Metrik wird zunachst eine Matrix mit den Werten von adG(v, w)

fur v, w ∈ V berechnen.

4.2 Definition der Airline-Metrik

In diesem Abschnitt definieren wir die Airline-Metrik eines R+-Graphen G = (V, cost). Der

Graph G muß bestimmte Voraussetzungen erfullen. Einerseits muß die Knotenmenge eine

Teilmenge der euklidischen Ebene sein, d.h. V ⊂ R2, andererseits muß die Kostenfunktion

bestimmte metrische Eigenschaften erfullen. Diese Eigenschaften sind Positivitat und Sym-

metrie.

4.2.1 Metrische Eigenschaften von R+-Graphen

Wir beschaftigen uns in diesem Unterabschnitt mit metrischen Begriffen und ubertragen

diese in die Graphentheorie.

Definition 4.1.

Sei G = (V, cost) ein R+-Graph mit Knotenmenge V , Kostenfunktion cost : V × V →R+ ∪ ∞ und Kantenmenge E = (x, y) : cost(x, y) 6= ∞.1) G und cost heißen semidefinit, wenn fur alle x ∈ V gilt:

cost(x, x) = 0(4.1)

2) G und cost heißen positiv, wenn fur alle x, y ∈ V gilt:

x 6= y ⇒ cost(x, y) > 0(4.2)

Page 36: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

30 4. Die Airline-Metrik

3) G und cost heißen definit, wenn fur alle x, y ∈ V gilt:

cost(x, y) = 0 ⇔ x = y(4.3)

d.h. G ist genau dann definit, wenn G semidefinit und positiv ist.

4) G und cost heißen symmetrisch, wenn fur alle x, y ∈ V gilt:

cost(x, y) = cost(y, x)(4.4)

d.h. G ist genau dann symmetrisch, wenn G ungerichtet ist.

5) G und cost erfullen die Dreiecksungleichung, wenn fur alle x, y, z ∈ V gilt:

cost(x, z) ≤ cost(x, y) + cost(y, z)(4.5)

6) G und cost heißen endlich, wenn fur alle x, y ∈ V gilt:

cost(x, y) 6= ∞(4.6)

d.h. G ist genau dann endlich, wenn G vollstandig ist. Vollstandigkeit bedeutet, daß alle

Knotenpaare Kanten sind, also E = V × V .

Definition 4.2. Ein pseudometrischer Graph ist ein semidefiniter, symmetrischer, die Drei-

ecksungleichung erfullender R+-Graph G = (V, cost). In diesem Fall ist die Kostenfunktion

cost : V × V → R+ ∪ ∞ eine Pseudometrik auf der Knotenmenge V .

Definition 4.3. Ein metrischer Graph ist ein endlicher, definiter, symmetrischer, die Drei-

ecksungleichung erfullender R+-Graph G = (V, cost). In diesem Fall ist die Kostenfunktion

cost : V × V → R+ eine Metrik auf der Knotenmenge V .

Bemerkung. Ein metrischer Graph ist offenbar nichts anderes als endlicher metrischer Raum.

Jeden metrischen Raum (X, d) mit endlicher Grundmenge X und Metrik d : X × X →R+ kann man als metrischen Graphen mit X als Knotenmenge und d als Kostenfunktion

auffassen.

Definition 4.4. Sei (X, d) ein metrischer Raum und V ⊆ X eine endliche Teilmenge von

X. Dann sei wie folgt ein R+-Graph MGV,d definiert:

MGV,d = (V, d|V ), d|V (x, y) := d(x, y)(4.7)

Page 37: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

4.2 Definition der Airline-Metrik 31

d|V ist die Einschrankung der Metrik auf V × V , d.h. die Kostenfunktion von MGV,d un-

terscheidet sich von der Metrik d nur durch den eingeschrankten Definitionsbereich. MGV,d

ist offensichtlich ein metrischer Graph. Wir nennen ihn den metrischen Graphen von V bzgl.

d. Weil wir in dieser Arbeit speziell die euklidische Ebene (R2 , dE) als zugrunde liegenden

metrischen Raum verwenden, schreiben wir auch einfach MGV statt MGV,dEund dE,V statt

dE|V d.h.

MGV = (V, dE,V ), dE,V (x, y) := |xy|(4.8)

MGV heißt dann metrischer Graph von V .

4.2.2 Semiringoperationen und metrische Eigenschaften

In diesem Unterabschnitt untersuchen wir, inwieweit metrische Eigenschaften von R+-Gra-

phen unter den Semiringoperationen des abgeschlossenen Semirings Graph(V,R+) erhalten

bleiben.

Zur Erinnnerung: Sei S ein abgeschlossener Semiring. Mit Hilfe der Semiringoperationen von

S haben wir auch fur Matizen und Abbildungen X × X → S eine Summe und ein Produkt

definiert (Def. 2.12 und Def. 2.10). Damit werden Mat(n × n, S) und Abb(X × X, S) selbst

zu abgeschlossenen Semiringen (Satz 2.2 und Satz 2.1).

Wegen Graph(V,S) = (V, cost) : cost ∈ Abb(V × V, S) haben wir dann auch die Summe

und das Produkt zweier S-Graphen definiert (Def. 3.7) und die Menge Graph(V,S) damit

zu einem abgeschlossenen Semiring (Satz 3.2) gemacht.

Im Semiring R+ = (R+ ∪ ∞, inf, +,∞, 0) ist “inf” die Semiringaddition und “+” die Se-

miringmultiplikation. Wei dieses etwas verwirrend ist, mussen wir bei der Benutzung des Be-

griffs”Summe“ darauf achten, daß klar ist, ob die Semiringaddition oder die “+”-Operation

gemeint ist.

Vereinbarung: Seien a, b ∈ R+ ∪∞. Das Infimum von a und b sei die R+-Semiringsumme

inf(a, b). Die Summe von a und b sei das R+-Semiringprodukt a + b. Die Produkte von a

seien die R+-Semiringpotenzen, d.h. 0 · a = 0 und (k + 1) · a = k · a + a fur k ∈ N). Fur

a 6= ∞ ist das k-te Produkt von a gleich dem gewohnlichem Produkt zweier reeller Zahlen.

Im unendlichen Fall ist 0 · ∞ = 0 und k · ∞ = ∞ fur k > 0. Der Abschluß von a ist dann

a∗ := infk∈N

(k · a) = inf0, a, 2 · a, . . . = 0(4.9)

In R+ ist also a∗ = 0 fur alle a. Insbesondere gilt (a∗)∗ = a∗ fur alle a.

Page 38: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

32 4. Die Airline-Metrik

Fur das Infimum von endlich vielen Zahlen aus R+ ∪ ∞ schreiben wir auch “min” statt

“inf”, weil dann das Minimum existiert und gleich dem Infimum ist. Zusatzlich definieren

wir min ∅ := ∞, weil auch inf ∅ = ∞ gilt.

Definition 4.5 (Der abgeschlossene Semiring Graph(V,R+)).

(Graph(V,R+), inf, +, G∞, GI) sei der abgeschlossene Semiring der R+-Graphen mit der

Knotenmenge V . Das Nullelement ist der ∞-Graph G∞ und das Einselement ist der Ein-

heitsgraph GI.

G∞ = (V, ∞), ∞ : V × V −→ R+ ∪ ∞, ∞(x, y) = ∞(4.10)

GI = (V, I), I : V × V −→ R+ ∪ ∞, I(x, y) =

0 falls x = y

∞ falls x 6= y(4.11)

Das Minimum von G1 = (V, cost1) und G2 = (V, cost2) ist

min(G1, G2) = (V, min(cost1, cost2))

min(cost1, cost2)(x, y) := min(cost1(x, y), cost2(x, y))(4.12)

Die Summe von G1 und G2 ist

G1 + G2 = (V, cost1 + cost2)

(cost1 + cost2)(x, y) := minz∈V

(cost1(x, z) + cost2(z, y)

)(4.13)

Sei k ∈ N . Die k-ten Produkte von G = (V, cost) sind rekursiv definiert

0 · G = (V, 0 · cost) = (V, I) = GI(4.14)

(k + 1) · G = (V, (k + 1) · cost) = k · G + G(4.15)

Der Abschluß von G ist

G∗ = (V, cost∗) = infk∈N

(k · G) = infGI, G, 2 · G, . . . (4.16)

Nach Satz 3.4 gilt folgender Zusammenhang zwischen den k-ten Produkten von G und Wegen

in G

(k · cost)(x, y) = cost(PathkG(x, y)) = mincost(p) : p ∈ Pathk

G(x, y)(4.17)

cost∗(x, y) = cost(PathG(x, y)) = mincost(p) : p ∈ PathG(x, y)(4.18)

Deshalb haben wir fur R+-Graphen das”general path“-Problem, d.h. die Berechnung des

Abschlusses G∗ = (V, cost∗), als”all pairs least cost path“-Problem bzw.

”all pairs shor-

test path“-Problem bezeichnet. Im Fall cost∗(x, y) < ∞ gibt es mindestens einen Weg

p ∈ PathG(x, y) mit cost∗(x, y) = cost(p). Derartige Wege heißen kostengunstigste bzw.

kurzeste Wege von x nach y. Zur Berechnung von G∗ haben wir aus dem Algorithmus von

Kleene (Algorithmus 3.1) den Algorithmus von Floyd/Warshall (Algorithmus 3.3) hergelei-

tet.

Page 39: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

4.2 Definition der Airline-Metrik 33

Bemerkung. Man beachte besonders die Definition fur die Summe zweier Kostenfunktionen.

Es gilt normalerweise nicht (cost1 + cost2)(x, y) = cost1(x, y) + cost2(x, y)! Ebensowenig gilt

(k · cost)(x, y) = k · cost(x, y).

Satz 4.1 (Metrische Eigenschaften und die “min”-Operation).

Seien G1 = (V, cost1) und G2 = (V, cost2) zwei R+-Graphen.

1) Ist G1 semidefinit, dann ist auch min(G1, G2) semidefinit.

2) Sind G1 und G2 positiv, dann ist auch min(G1, G2) positiv.

3) Ist G1 definit und G2 positiv, dann ist auch min(G1, G2) definit.

4) Sind G1 und G2 symmetrisch, dann ist auch min(G1, G2) symmetrisch.

5) Ist G1 endlich, dann ist auch min(G1, G2) endlich.

Beweis. trivial

Satz 4.2 (Metrische Eigenschaften und die “∗”-Operation).

Sei G = (V, cost) ein R+-Graph mit Kantenmenge E. G∗ = (V, cost∗) sei der Abschluß von

G und (G∗)∗ = (V, (cost∗)∗) sei der Abschluß von G∗.

1) G∗ ist semidefinit und erfullt die Dreiecksungleichung.

2) (G∗)∗ = G∗

3) Ist G positiv, dann ist G∗ definit.

Insbesondere ist G∗ definit, wenn G definit ist.

4) Ist G symmetrisch, dann ist auch G∗ symmetrisch.

5) Ist G zusammenhangend, d.h. E∗ = V × V , dann ist G∗ endlich.

Insbesondere ist G∗ endlich, wenn G endlich ist.

Beweis.

zu 1) Seien x, y, z ∈ V .

cost∗(x, x) = infI(x, x), cost(x, x), (2 · cost)(x, x), . . . ≤ I(x, x)

= 0

cost∗(x, z) = mincost(p) : p ∈ PathG(x, z)≤ mincost(p1) + cost(p2) : p1 ∈ PathG(x, y) und p2 ∈ PathG(y, z)= mincost(p1) : p1 ∈ PathG(x, y) + mincost(p2) : p2 ∈ PathG(y, z)= cost∗(x, y) + cost∗(y, z)

Page 40: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

34 4. Die Airline-Metrik

zu 2) Weil cost∗ die Dreiecksungleichung erfullt gilt fur alle x, y ∈ V

cost∗(x, y) ≤ minz∈V

(cost∗(x, z) + cost∗(z, y)

)= (cost∗ + cost∗)(x, y)

Hieraus folgt cost∗(x, y) ≤ (k · cost∗)(x, y) fur k ≥ 2 und alle x, y ∈ V . Außerdem gilt

cost∗(x, y) ≤ I(x, y).

(cost∗)∗(x, y) = infI(x, y), cost∗(x, y), (2 · cost∗)(x, y), . . .= cost∗(x, y)

zu 3) Gilt cost(x, y) > 0 fur alle x 6= y, dann ist auch cost(p) > 0 fur alle p ∈ PathG(x, y) im

Fall x 6= y. Hieraus folgt cost∗(x, y) > 0 fur alle x 6= y. Zusammen mit der Semidefinitheit

von G∗ folgt dann die Definitheit von G∗.

zu 4) Ist G symmetrisch, dann sind auch die k-ten Produkte von G symmetrisch. Dann ist

auch G∗ = infk · G : k ∈ N symmetrisch.

zu 5) Es gelte E∗ = V ×V . Seien x, y ∈ V . Es gibt dann w0, . . . , wk ∈ V mit w0 = x, wk = y

und (wi, wi+1) ∈ E fur alle i ∈ 0, . . . , k − 1. Dann ist (w0, . . . , wk) ∈ PathG(x, y) und

cost∗(x, y) ≤ cost(w0, . . . , wk) < ∞.

Bemerkung. Insbesondere folgt aus dem vorherigen Satz, daß G∗ ein pseudometrischer Graph

ist, wenn G ein symmetrischer Graph ist. Wenn G ein positiver, zusammenhangender, sym-

metrischer Graph ist, dann ist G∗ sogar ein metrischer Graph.

4.2.3 Definition

In diesem Unterabschnitt definieren wir die Airline-Metrik. Es ist nicht sinnvoll, diese De-

finition nur bzgl. der euklidischen Ebene vorzunehmen, weil die Definition keine speziellen

Eigenschaften der Metrik des zugrunde liegenden Raumes benutzt. Deshalb definieren wir

hier die Airline-Metrik bzgl. eines beliebigen metrischen Raumes.

Zur Motivation haben wir in der Aufgabenstellung eine aus Flughafen und Flugverbindungen

bestehende Ausgangssituation betrachtet. In dieser Arbeit geht es aber nicht um die Mo-

dellierung von Flugverbindungen. Diese dienen nur zur Veranschaulichung. Der abstrakte

Hintergrund und damit das eigentliche Thema dieser Arbeit lautet wie folgt:

Aufgabe: Sei (X, d) ein metrischer Raum und G = (V, cost) ein positiver, symmetrischer

Graph mit Kantenmenge E. Die Knoten von G seien zugleich Punkte aus X, d.h. V ⊆ X.

Page 41: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

4.2 Definition der Airline-Metrik 35

Die Kanten (x, y) ∈ E erzeugen zusatzliche Verbindungen der Lange cost(x, y) zwischen

den Punkten x und y. Unsere Aufgabe ist die Definition der Airline-Metrik von G bzgl. d.

Diese Metrik bezeichnen wir mit adG,d. adG,d(x, y) soll gleich der Lange des kurzesten Weges

zwischen den Punkten x, y ∈ X sein.

Zunachst ist unklar, was mit dem Begriff”Lange des kurzesten Weges zwischen zwei Punkten

x, y ∈ X“ gemeint ist. Zur Veranschaulichung fassen wir den metrischen Raum (X, d) als

metrischen Graphen mit der unendlichen Knotenmenge X, der Kantenmenge X × X und

der Kostenfunktion d auf. Diesem Graphen fugen wir die Kanten von G als weitere Kanten

hinzu, so daß ein unendlicher R+-Graph entsteht, der auch parallele Kanten enthalt. In

diesem Graphen kann man dann kurzeste Wege betrachten.

Dieses ist zwar nur eine Gedankenspielerei, sie liefert aber Ideen fur das weitere Vorgehen.

Zunachst wird klar, warum wir fur G die Eigenschaften Positivitat und Symmetrie gefordert

haben. Wenn G nicht positiv ware, d.h. wenn es ein Paar (x, y) ∈ V × V gabe mit x 6= y

und cost(x, y) = 0, dann ware auch adG,d(x, y) = 0 und damit adG,d nicht definit. Wenn G

nicht symmetrisch ware, dann ware auch die Symmetrie von adG,d nicht gewahrleistet.

Als erstes untersuchen wir, wie man adG,d(x, y) fur x, y ∈ V erhalt, d.h. wir wollen einen

Graphen AGG,d = (V, costG,d) definieren, dessen Kostenfunktion gleich der Einschrankung

der Airline-Metrik auf V × V ist. Wegen der Dreiecksungleichung fur d gibt es zu x, y ∈ V

einen kurzesten Weg, der nur Punkte aus V erhalt. Deshalb benotigen wir zur Definition

von AGG,d nur G und den metrischen Graphen von V bzgl. d, d.h. den Graphen MGV,d. In

unserem imaginaren unendlichen Graphen haben wir die Kanten von G als weitere Kanten

eingefugt und so einen unendlichen Graphen mit parallelen Kanten erzeugt. Weil wir kurzeste

Wege betrachen, benotigen wir von den parallelen Kanten nur die jeweils kurzere der beiden.

Mit anderen Worten: AGG,d ist der”shortest path“-Graph zu dem Graphen min(G,MGV,d),

also AGG,d = (min(G,MGV,d))∗.

Im allgemeinen Fall x, y ∈ X ist der direkte Weg von v nach w ein kurzester Weg, oder

jeder kurzeste Weg enthalt Kanten aus G. Im zweiten Fall gibt es einen kurzesten Weg

p = (x, w0, . . . , wk, y) mit w0, . . . , wk ∈ V . Dann ist p′ = (w0, . . . , wk) ein kurzester Weg im

Graphen AGG,d von w0 nach wk, und p hat die Lange d(x, w0) + costG,d(w0, wk) + d(wk, k).

Definition 4.6 (Airline-Graph).

Sei (X, d) ein metrischer Raum und G = (V, cost) ein positiver, symmetrischer Graph mit

V ⊆ X. Dann sei wie folgt ein R+-Graph AGG,d definiert:

AGG,d = (V, costG,d), AGG,d := (min(G,MGV,d))∗(4.19)

AGG,d ist ein metrischer Graph. Wir nennen ihn den Airline-Graphen von G bzgl. d.

Page 42: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

36 4. Die Airline-Metrik

Definition 4.7 (Airline-Metrik).

Sei (X, d) ein metrischer Raum und G = (V, cost) ein positiver, symmetrischer Graph mit

V ⊆ X. Dann sei wie folgt ein Metrik adG,d : X × X → R+ definiert:

adG,d(x, y) := min

(d(x, y), min

v,w∈V

(d(x, v) + costG,d(v, w) + d(w, y)

))(4.20)

adG,d heißt Airline-Metrik von G bzgl. d.

In dem fur uns besonders wichtigen euklidischen Fall (X, d) = (R2 , dE) kurzen wir wieder

die Schreibweise ab. Wir schreiben AGG = (V, costG) statt AGG,d = (V, costG,d) und adG

statt adG,d. AGG heißt dann Airline-Graph von G, und adG heißt Airline-Metrik von G.

Wir mussen zeigen, daß adG,d auch tatsachlich eine Metrik auf der Menge X ist.

Satz 4.3. adG,d ist eine Metrik auf der Menge X.

Beweis.

Definitheit:

adG,d(x, y) = 0

⇔ min

(d(x, y), min

v,w∈V

(d(x, v) + costG,d(v, w) + d(w, y)

))= 0

⇔ x = y oder ∃v, w ∈ V : d(x, v) + costG,d(v, w) + d(w, y) = 0

⇔ x = y

Symmetrie:

adG,d(x, y)

= min

(d(x, y), min

v,w∈V

(d(x, v) + costG,d(v, w) + d(w, y)

))= min

(d(y, x), min

w,v∈V

(d(y, w) + costG,d(w, v) + d(v, x)

))= adG,d(y, x)

Page 43: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

4.3 Eigenschaften der Airline-Metrik 37

Dreiecksungleichung:

adG,d(x, y) + adG,d(y, z)

= min

(d(x, y), min

v,v′∈V

(d(x, v) + costG,d(v, v′) + d(v′, y)

))+ min

(d(y, z), min

w′,w∈V

(d(y, w′) + costG,d(w

′, w) + d(w, z)))

= min

(d(x, y) + d(y, z),

minw′,w∈V

(d(x, y) + d(y, w′) + costG,d(w

′, w) + d(w, z)),

minv,v′∈V

(d(x, v) + costG,d(v, v′) + d(v′, y) + d(y, z)

),

minv,v′,w′,w∈V

(d(x, v) + costG,d(v, v′) + d(v′, y) + d(y, w′) + costG,d(w

′, w) + d(w, z)))

≥ min

(d(x, z),

minv,w∈V

(d(x, v) + costG,d(v, w) + d(w, z)

),

minv,v′,w′,w∈V

(d(x, v) + costG,d(v, v′) + costG,d(v

′, w′) + costG,d(w′, w) + d(w, z)

))= min

(d(x, z), min

v,w∈V

(d(x, v) + costG,d(v, w) + d(w, z)

))= adG,d(x, z)

Im Fall x ∈ V oder y ∈ V vereinfacht sich offenbar die Gleichung zur Berechnung des

Airline-Abstandes.

Lemma 4.4.

∀ x ∈ V, y ∈ X : adG,d(x, y) = adG,d(y, x) = minw∈V

(costG,d(x, w) + d(w, y)

)(4.21)

∀ x, y ∈ V : adG,d(x, y) = costG,d(x, y)(4.22)

Insbesondere ist costG,d die Einschrankung der Airline-Metrik adG,d auf V × V , und AGG,d

ist gleich dem metrischen Graphen von V bzgl. adG,d.

4.3 Eigenschaften der Airline-Metrik

Im ersten Abschnitt dieses Kapitels habe ich eine interessante Eigenschaft erwahnt, welche

die Airline-Metrik vollstandig charakterisiert:

Page 44: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

38 4. Die Airline-Metrik

Satz 4.5. Sei MG,d die Menge aller Metriken d auf der Menge X mit d(x, y) ≤ d(x, y) fur

alle x, y ∈ X und d(v, w) ≤ cost(v, w) fur v, w ∈ V . Dann gilt:

adG,d ∈ MG,d und ∀ d ∈ MG,d, x, y ∈ X : adG,d(x, y) ≥ d(x, y)(4.23)

Hieraus folgt: adG,d(x, y) = maxd(x, y) : d ∈ MG,d fur alle x, y ∈ X.

Bemerkung. Einfach ausgedruckt: Die Airline-Metrik von G bzgl. d ist die großte Metrik auf

der Menge X, die kleiner-gleich sowohl der Metrik d als auch der Kostenfunktion von G ist.

Beweis.

adG,d ∈ MG,d ist klar, da costG,d(v, w) ≤ min(cost(v, w), d(v, w)) ist.

d ∈ MG,d

⇒ ∀v, w ∈ V : d(v, w) ≤ cost(v, w) und ∀x, y ∈ X : d(x, y) ≤ d(x, y)

⇒ ∀v, w ∈ V : d(v, w) ≤ min(cost(v, w), d(v, w)) und ∀x, y ∈ X : d(x, y) ≤ d(x, y)

⇒ ∀v, w ∈ V : d(v, w) ≤ costG,d(v, w) und ∀x, y ∈ X : d(x, y) ≤ d(x, y)

⇒ adG,d(x, y)

= min

(d(x, y), min

v,w∈V

(d(x, v) + costG,d(v, w) + d(w, y)

))≥ min

(d(x, y), min

v,w∈V

(d(x, v) + d(v, w) + d(w, y)

))= d(x, y)

4.4 Verallgemeinerungen der Airline-Metrik

In diesem letzten Abschnitt des Kapitels besprechen wir Moglichkeiten zur Verallgemeine-

rung der Airline-Metrik.

Zunachst betrachten wir die Definitionen des Airline-Graphen und der Airline-Metrik. Diese

Definitionen sind auch dann sinnvoll, wenn d keine Metrik ist, sondern nur eine Pseudometrik,

Distanzfunktion oder Pseudodistanzfunktion.

Sei X eine Menge, d ∈ Abb(X ×X,R+ ∪∞) und G = (V, cost) ein R+-Graph mit V ⊆ X.

AGG,d und adG,d seien wie in Def. 4.6 und Def. 4.7 definiert.

1) Ist G symmetrisch und d eine Pseudometrik, d.h. d ist semidefinit, symmetrisch und

erfullt die Dreiecksungleichung, dann ist auch AGG,d semidefinit, symmetrisch und erfullt

Page 45: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

4.4 Verallgemeinerungen der Airline-Metrik 39

die Dreiecksungleichung. adG,d ist dann auch eine Pseudometrik.

2) Ist G positiv und d eine Distanzfunktion, d.h. d ist definit und erfullt die Dreiecksunglei-

chung, dann ist auch AGG,d definit und erfullt die Dreiecksungleichung. adG,d ist dann auch

eine Distanzfunktion.

3) Ist d eine Pseudodistanzfunktion, d.h. d ist semidefinit und erfullt die Dreiecksunglei-

chung, dann ist auch AGG,d semidefinit und erfullt die Dreiecksungleichung. adG,d ist dann

auch eine Pseudodistanzfunktion.

Eine weitere Verallgemeinerungsmoglichkeit bekommt man, wenn man in der Ausgangssi-

tuation außer Flugverbindungen auch noch weitere Verkehrsmittel zulaßt.

Sei (X, d) ein metrischer Raum und Gi = (Vi, costi) : i = 1, . . . , k eine Menge von positiven,

symmetrischen Graphen mit Vi ⊆ X. Dann sei

V :=

k⋃i=1

Vi

Gi := (V, costi), costi(v, w) :=

costi(v, w) falls v, w ∈ Vi

∞ sonst

AGG1,...,Gk,d = (V, costG1,...,Gk,d), AGG1,...,Gk,d :=(min

(G1, . . . , Gk,MGV,d

))∗adG1,...,Gk,d(x, y) = min

(d(x, y), min

v,w∈V

(d(x, v) + costG1,...,Gk,d(v, w) + d(w, y)

))

Dieses bedeutet, daß man die Airline-Metrik einer Menge von positiven, symmetrischen Gra-

phen erhalt, indem man die Graphen zusammenfugt. Wenn es dann mehrere Verbindungen

zwischen gleichen Knotenpaaren gibt, dann wahle man die jeweils kurzeste.

Page 46: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

40 4. Die Airline-Metrik

Page 47: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

Kapitel 5

Berechnung der Airline-Distanz

In diesem Kapitel mochten wir einen effizienten und praktikablen Algorithmus entwickeln,

der Anfragen der Art”adG(x, y) = ?“ (airline-distance queries) fur x, y ∈ R

2 beantwortet.

5.1 Ein Algorithmus mit Vorverarbeitung

Zunachst betrachten wir unsere Vorgehensweise bei der Definition der Airline-Metrik eines

positiven, symmetrischen Graphen G mit der Knotenmenge V ⊂ R2 . Mittels Graphen-

transformationen definierten wir min(G,MGV ). Den vollstandigen Graphen min(G,MGV )

erhielten wir aus G, indem wir die euklidischen Distanzen zwischen den Knoten mitberuck-

sichtigten. Der Airline-Graph AGG ist der Abschluß des Graphen min(G,MGV ). Die Airline-

Distanz zweier Punkte des R2 definierten wir dann mit Hilfe des Graphen AGG.

Ubertragen auf die algorithmische Sichtweise bedeutet diese Vorgehensweise, daß der Graph

G einer Vorverarbeitung (preprocess) zu unterziehen ist. Das Ergebnis dieser Vorverarbeitung

ist die Kostenmatrix des Airline-Graphen. Diese Datenstruktur ermoglicht dann die schnelle

Beantwortung von beliebig vielen airline-distance queries.

5.1.1 Datenstruktur: Kostenmatrix

Sei V = v1, . . . , vn eine Menge von n Punkten aus der euklidischen Ebene R2 . Wir schreiben

jeden Punkt vi ∈ V als geordnetes Paar vi = (xi, yi). Sei G = (V, cost) derjenige positive,

symmetrische Graph, dessen Airline-Metrik betrachtet werden soll. Der Airline-Graph von

G sei AGG = (V, costG).

41

Page 48: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

42 5. Berechnung der Airline-Distanz

Zur Speicherung von G und des noch zu berechnenden Graphen AGG verwenden wir die

Kostenmatrixdarstellung. Diese ist hier besonders gut geeignet, weil AGG ein vollstandiger

Graph ist.

5.1.2 Vorverarbeitung: Berechnung von AGG mit dem

Algorithmus von Floyd/Warshall

Gegeben sei die Kostenmatrix (G[i, j])i,j∈1,...,n fur den Ausgangsgraphen G, d.h. G[i, j] =

cost(vi, vj). Insbesondere gilt G[i, i] = 0 fur alle i, G[i, j] > 0 fur i 6= j und G[i, j] = G[j, i] fur

alle i, j. Ferner sei eine Matrix (V [i])1≤i≤n mit den x- und y-Koordinaten der Punkte vi ∈ V

gegeben. Hiermit konnen wir nun die Kostenmatrix des Airline-Graphen AGG berechnen.

AGG ist der Abschluß von min(G,MGV ), d.h. die Lange einer Kante (v, w) in AGG ist gleich

der Lange eines kurzesten Weges von v nach w in min(G,MGV ).

Zur Losung dieses”all pairs shortest path“-Problems konnen wir den Algorithmus von

Floyd/Warshall (Algorithmus 3.3) verwenden, welchen wir aus dem Algorithmus von Klee-

ne (Algorithmus 3.1) hergeleitet hatten. Dieser Algorithmus berechnet den Abschluß eines

R+-Graphen in O(n3) Laufzeit und O(n2) Speicherbedarf.

Algorithmus 5.1. (Berechnung von AGG)

type tPunkt = record

x1, x2 : real

end;

1) procedure Berechne AGG (var AGG : array [1..n, 1..n] of real;

G : array [1..n, 1..n] of real;

V : array [1..n] of tPunkt);

(∗ Eingabe : G − Kostenmatrix des Graphen G

: V − Koordinaten der Knoten von G

Ausgabe : AGG − Kostenmatrix des Graphen AGG

Der Algorithmus berechnet den in der Definition der Airline-Metrik

von G verwendeten Hilfsgraphen AGG. ∗)2) var i, j, k : integer;

3) begin

4) for i := 1 to n do

5) for j := 1 to n do

6) AGG[i, j] := min (G[i, j], |vivj |);7) end;

Page 49: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

5.1 Ein Algorithmus mit Vorverarbeitung 43

8) end;

9) for k := 1 to n do

10) for all i, j ∈ 1, . . . , n do

11) AGG[i, j] := min (AGG[i, j], AGG[i, k] + AGG[k, j]);

12) end;

13) end;

14) end Berechne AGG;

Zuerst wird in den Zeilen 4) - 8) der oben beschriebene Graph min(G,MGV ) berechnet. In

den Zeilen 9) - 13) wird mit dem Algorithmus von Floyd/Warshall min(G,MGV ) in seinen

Abschluß AGG transformiert. Die for-Schleife in Zeile 9) erzeugt eine Folge von Graphen

min(G,MGV ) = G0, . . . , Gn = AGG. Die Lange einer Kante (v, w) in Gk ist gleich der

kurzesten Lange eines Pfades von v nach w in G0, in dem nur Zwischenknoten aus der

Menge v1, . . . , vk vorkommen. Insbesondere ist die Lange einer Kante (v, w) in Gn gleich

der Lange der kurzesten Wege von v nach w in G0.

Die Laufzeit des Algorithmus 5.1 ist in Θ(n3), weil die Minimumberechnung in Zeile 11)

n3-mal ausgefuhrt wird. Der Speicherplatzbedarf ist in Θ(n2), entsprechend den Großenord-

nungen von G und AGG.

5.1.3 Hauptteil: Berechnung von adG(x, y) fur x, y ∈ R2

Nachdem wir den Airline-Graphen AGG = (V, costG) konstruiert haben, konnen wir uns nun

der Airline-Metrik von G zuwenden, d.h. der Abbildung

adG : R2 × R2 → R+

adG(x, y) := min

(|xy|, min

v,w∈V

(|xv| + costG(v, w) + |wy|))Aus der Definitionsgleichung erhalten wir auf triviale Weise einen Algorithmus zur Berech-

nung des Airline-Abstandes adG(x, y) zweier Punkte x, y ∈ R2 .

Algorithmus 5.2. (Berechnung von adG(x, y))

1) procedure AirlineDistanz (var d : real;

x, y : tPoint;

GA : array [1..n, 1..n] of real;

V : array [1..n] of tPunkt);

(∗ Eingabe : x, y − Punkte im R2

Page 50: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

44 5. Berechnung der Airline-Distanz

: AGG − Kostenmatrix des Graphen AGG

: V − Koordinaten der Knoten von G

Ausgabe : d − Airline-Abstand der Punkte x, y

Der Algorithmus berechnet den Airline-Abstand adG(x, y) zweier

Punkte x, y ∈ R2 . ∗)

2) var i, j, : integer;

3) begin

4) d := |xy|;5) for all i, j ∈ 1, . . . , n do

6) d := min (d, |xvi| + AGG[i, j] + |vjy|);7) end;

8) end AirlineDistanz;

Die Laufzeit des Algorithmus 5.2 ist offensichtlich in Θ(n2), da die Minimumberechnung in

Zeile 6) n2-mal ausgefuhrt wird.

5.1.4 Analyse des Algorithmus

Unser Algorithmus besteht aus einer Vorverarbeitung und einem Hauptteil. In der Vor-

verarbeitung wird aus dem positiven, symmetrischen Graphen G = (V, cost) der Airline-

Graph AGG = (V, costG) berechnet. Der Airline-Graph ist als Abschluß definiert: AGG =

(min(G,MGV ))∗. min(G,MGV ) ist ein definiter, symmetrischer, zusammenhangender R+-

Graph.

Die Vorverarbeitung entspricht damit dem”all pairs shortest path“-Problem fur R+-Gra-

phen. Wir haben zur Losung dieses Problems den Algorithmus von Floyd/Warshall verwen-

det. Dieser Algorithmus berechnet den Abschluß eines R+-Graphen in O(n3) Laufzeit und

O(n2) Speicherplatz.

Selbstverstandlich kann man jeden beliebigen Algorithmus verwenden, welcher das”all pairs

shortest path“-Problem lost. Einen Uberblick uber Algorithmen zur Berechnung kurzester

Wege geben Deo und Pang [7].

Neben der matrixorientierten Vorgehensweise von Floyd ist die Vorgehensweise von Dijk-

stra [8] die zweite wichtige Methode, um das”all pairs shortest path“-Problem zu losen.

Hierbei wird das”all pairs shortest path“-Problem wie n separate

”single source shortest

path“-Probleme behandelt. Das single source-Problem ist die Bestimmung kurzester Wege

von einem Knoten aus zu allen anderen Knoten. Die von Dijkstra vorgeschlagene Imple-

Page 51: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

5.1 Ein Algorithmus mit Vorverarbeitung 45

mentierung lost das single source-Problem in der Zeit O(n2), d.h. auch hier ergibt sich eine

Laufzeit von O(n3) fur das all pairs-Problem.

Vom Dijkstra-Algorithmus gibt es viele Varianten. Von Johnson [21] stammt die Idee, die

Randknoten des Teilgraphen in einem Heap zu verwalten. Hiermit erreicht man eine Laufzeit

von O(e logn) fur das single source-Problem. Fur dunne Graphen kann dieses Ergebnis eine

Verbesserung sein, fur dichte Graphen dagegen ist die Standardversion von Dijkstra besser.

In unserem Fall ist min(G,MGV ) ein vollstandiger Graph. Wegen e = n2 ist eine O(e logn)-

Laufzeit eine Verschlechterung gegenuber einer O(n2)-Laufzeit, so daß fur uns diese Version

des Dijkstra-Algorithmus nicht in Frage kommt. Fredman und Tarjan [17] schlagen vor,

einen Fibonacci-Heap zu verwenden. Dieses ergibt dann eine Laufzeit von O(e + n log n)

fur das single source-Problem. Eine weitere Variante des Dijkstra-Algorithmus ist der A∗-

Algorithmus (siehe [19, 30]).

Sowohl der Floyd-Algorithmus als auch der Dijkstra-Algorithmus haben eine worst case-

Laufzeit von O(n3) fur das all pairs-Problem. Von Spira [36] stammt eine Variante des

Dijkstra-Algorithmus mit einer durchschnittlichen Laufzeit von O(n2 log2 n). Auf Grundlage

dieses Algorithmus haben Moffat und Takaoka [29] einen Algorithmus mit einer durchschnitt-

lichen Laufzeit von O(n2 log n) konstruiert.

Die genaue Zeitkomplexitat des”all pairs shortest path“-Problems fur R+-Graphen ist un-

bekannt. Als Untergrenze haben wir Ω(n2) und als Obergrenze O(n3). Keiner der mir be-

kannten, praktikablen Algorithmen hat eine bessere worst case-Laufzeit als O(n3).

Das”all pairs shortest path“-Problem fur R+-Graphen ist ein Spezialfall des

”general path“-

Problems fur S-Graphen. Nach Satz 3.5 ist dieses Problem gleichbedeutend mit der Be-

rechnung des Abschlusses C∗ einer Matrix C ∈ Mat(n × n, S). In [27] wird gezeigt, daß die

Berechnung des Abschlusses C∗ einer Matrix die gleiche Komplexitat hat wie die Berechnung

des Produktes A · B zweier Matrizen A, B ∈ Mat(n × n, S).

Die Standardmethode zur Berechnung des Matrixproduktes, d.h. die Berechnung nach der

Definitionsformel (aij) · (bjk) = (∑n

j=1 aijbjk) benotigt O(n3) Semiring-Operationen “+, ·”.

Wenn S sogar ein Ring ist, dann gibt es schnellere Algorithmen. Das Produkt A · B zweier

Matrizen A, B ∈ Mat(n× n, S) uber einem Ring S kann man mit O(nlog2 7) = O(n2.81) Rin-

goperationen mit dem Algorithmus von Strassen berechnen (siehe [27, 37]). Der Algorithmus

von Coppersmith/Winograd [6] benotigt sogar nur O(n2.495364) Ringoperationen.

Leider funktionieren die schnellen Algorithmen nur dann, wenn S ein Ring ist. Nur dann

gibt es inverse Elemente bzgl. “+” und die Subtraktion. Der uns interessierende Semiring

R+ ist kein Ring, ebensowenig B und R.

Page 52: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

46 5. Berechnung der Airline-Distanz

Wenn wir nur die R+-Semiringoperationen “min, +” zulassen, dann ist O(n3) die beste obere

Schranke fur die Berechnung des “min, +”-Matrixprodukts, die wir erreichen konnen (sie-

he [27]).

Wenn wir auch Vergleiche von R+-Semiringelementen zulassen, dann reichen O(n5/2) Ver-

gleiche aus, um das”all pairs shortest path“-Problem zu losen, wie Fredman [16] gezeigt hat.

Seine Methode fuhrt zwar nicht gleich zu einem praktikablen Algorithmus mit der Laufzeit

O(n5/2), aber man kann einen O(n3(log log n/ log n)1/3)-Algorithmus konstruieren.

Fur uns ist es mehr von theoretischem Interesse, daß es auch o(n3)-Algorithmen fur das”all

pairs shortest path“-Problem gibt. Wir gehen im weiteren von einer Laufzeit von O(n3) fur

die Vorverarbeitung aus.

Im Hauptteil haben wir den Airline-Graphen AGG = (V, costG) benutzt, um mit Hilfe der

Definitionsgleichung

adG(x, y) := min

(|xy|, min

v,w∈V

(|xv| + costG(v, w) + |wy|))

Anfragen der Art”adG(x, y) =?“ zu beantworten. Bei diesem Vorgehen benotigen wir offen-

bar O(n2) Laufzeit und auch O(n2) Speicherplatz.

Zusammen mit der Vorverarbeitung brauchen wir zur Beantwortung von l Anfragen die

Laufzeit O((n + l)n2). Fur kleine l wird die Laufzeit durch die O(n3)-Laufzeit der Vorver-

arbeitung bestimmt. Fur sehr viele Anfragen (l n) wird die Laufzeit dagegen durch die

O(ln2)-Laufzeit des Hauptteils bestimmt.

5.2 Ein Algorithmus ohne Vorverarbeitung

Der eben vorgestellte Algorithmus hat den Nachteil, daß er eine Vorverarbeitung mit der

Laufzeit O(n3) benotigt. Wenn fur einen vorgegebenen positiven, symmetrischen Graphen

G der Airline-Abstand adG(x, y) fur wenige Punktepaare (x, y) ∈ R2 oder sogar fur nur

ein Punktepaar bestimmt werden soll, dann wird die Gesamtlaufzeit durch die O(n3) Lauf-

zeit dieser Vorverarbeitung bestimmt. In diesem Abschnitt uberlegen wir, ob wir nicht ein

besseres Laufzeitverhalten erhalten, wenn wir auf die Vorverarbeitung verzichten und den

Airline-Abstand direkt berechnen.

Page 53: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

5.2 Ein Algorithmus ohne Vorverarbeitung 47

5.2.1 Formulierung der Airline-Distanz als”single source shortest

path“-Problem

In der Einfuhrung des letzten Kapitels haben wir verschiedene Moglichkeiten betrachtet,

die Airline-Metrik zu definieren. Ein Vorschlag war, G mittels Graphentransformationen in

einen R+-Graphen G = (V , cost) mit der Knotenmenge V = V ∪ x, y umzuwandeln, und

dann adG mit Hilfe des Abschlusses von G, G∗ = (V , cost∗), zu definieren:

adG(x, y) := cost∗(x, y)

Wenn es uns gelingt, einen derartigen Graphen G zu konstruieren, dann ist adG(x, y) gleich

der Lange eines kurzesten Weges von x nach y in G. In diesem Fall brauchen wir kein”all

pairs shortest path“-Problem mehr zu losen, sondern nur noch ein”single source shortest

path“-Problem. Dazu konnten wir dann den Dijkstra-Algorithmus verwenden, welcher eine

Laufzeit von O(n2) hat. (Eigentlich brauchen wir nur den kurzesten Weg von x nach y, aber

dieses Problem hat die gleiche Komplexitat wie die Berechnung der kurzesten Wege von x

zu allen anderen Knoten.)

Betrachten wir zunachst die Definition der Airline-Metrik (Def. 4.7). Sei G = (V, cost) ein

positiver, symmetrischer Graph mit V ∈ R2.

adG(x, y) = min

(|xy|, min

v,w∈V

(|xv| + costG(v, w) + |wy|))= minq : q = |xy| oder q = |xv| + costG(v, w) + |wy| mit v, w ∈ V

Hierbei ist costG ist die Kostenfunktion des Airline-Graphen AGG (Def. 4.6).

AGG = (V, costG), AGG := (min(G,MGV ))∗

Der Airline-Graph ist der Abschluß des Graphen min(G,MGV ). Deshalb ist costG(v, w)

gleich der Lange des kurzesten Weges von v nach w in min(G,MGV ).

costG(v, w) = minq : q = min

(cost(w0, w1), |w0w1|

)+ · · ·

+ min(cost(wm−1, wm), |wm−1wm|

)mit w0, . . . , wm ∈ V und w0 = v, wm = w

Hieraus folgt dann fur den Airline-Abstand

adG(x, y) = minq : q = |xy| oder q = |xw0| + min

(cost(w0, w1), |w0w1|

)+ · · ·

+ min(cost(wm−1, wm), |wm−1wm|

)+ |wmy| mit w0, . . . , wm ∈ V

Page 54: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

48 5. Berechnung der Airline-Distanz

Nun bietet sich folgende Definition fur den Hilfsgraphen G an:

G = (V , cost),

V = V ∪ x, y,

cost(a, b) :=

min(cost(a, b), |ab|) falls a, b ∈ V

|ab| falls a 6∈ V oder b 6∈ V

Dann ist offenbar adG(x, y) gleich der Lange des kurzesten Weges von x nach y in G. Fur

den Abschluß von G, G∗ = (V , cost∗), gilt dann:

adG(x, y) := cost∗(x, y)

5.2.2 Der Algorithmus von Dijkstra

Bevor wir den Algorithmus von Dijkstra zur Berechnung von adG(x, y) verwenden, bespre-

chen wir, wie dieser Algorithmus funktioniert. Literatur hierzu sind [18, 1, 31].

Die Idee des Dijkstra-Algorithmus ist das Verlangern von kurzesten Wegen durch Hinzu-

nahmen weiterer Kanten. Die Grundlage dafur bildet das folgende Optimalitatsprinzip (sie-

he [31]):

Sei p = (v0, v1, . . . , vk) ein kurzester Weg von v0 nach vk. Dann ist jeder Teilweg

p′ = (vi, . . . , vj) mit 0 ≤ i < j ≤ k ein kurzester Weg von vi nach vj .

Es sei G = (V, cost) ein beliebiger R+-Graph mit der Knotenmenge V = v1, . . . , vn. Uns

interessieren nur die Langen der kurzesten Wege, nicht aber die Wege selbst. Der Startkno-

ten (source) sei v1. Wir mochten nun dist(w) := cost∗(v1, w) berechnen fur alle w ∈ V .

Ausgehend von S = v1 lassen wir die Teilmenge S ⊆ V so wachsen, daß fur jedes w ∈ S

ein kurzester Weg von v1 nach w existiert, der vollstandig in S liegt.

Algorithmus 5.3. Dijkstra

1) begin

2) S := v1;3) dist(v1) := 0;

4) for all w ∈ V \ v1 do

5) dist(w) := cost(v1, w);

6) end;

7) while S 6= V do

8) wahle w ∈ V \ S, so daß ∀w′ ∈ V \ S : dist(w) ≤ dist(w′) ;

Page 55: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

5.2 Ein Algorithmus ohne Vorverarbeitung 49

9) S := S ∪ w;10) for all w′ ∈ V \ S do

11) dist(w′) := min(dist(w′), dist(w) + cost(w, w′)

);

12) end;

13) end;

14) end;

Die Korrektheit dieses Algorithmus wird in [1] gezeigt. Die for-Schleife in den Zeilen 10) - 12)

benotigt O(n) Schritte, ebenso die Auswahl in der Zeile 8). Die while-Schleife in den Zeilen

7) - 13) wird O(n)-mal ausgefuhrt. Die Laufzeit des Algorithmus 5.3 ist daher insgesamt in

O(n2).

5.2.3 Berechnung von adG(x, y) mit dem Algorithmus von Dijkstra

Nun wenden wir den Dijkstra-Algorithmus an, um die Airline-Distanz zu berechnen. Sei G =

(V, cost) jetzt wieder ein positiver, symmetrischer Graph. Die Knotenmenge V = v1, . . . , vnsei eine Menge von n Punkten aus der euklidischen Ebene R2 . Unser Ziel ist die Berechnung

des Airline-Abstandes adG(x, y) zweier Punkte x, y ∈ R2 .

Sei G wieder der folgende Hilfsgraph:

G = (V , cost), V = V ∪ x, y = v0, v1, . . . , vn, vn+1, v0 := x, vn+1 := y

cost(a, b) :=

min(cost(a, b), |ab|) falls a, b ∈ V

|ab| falls a 6∈ V oder b 6∈ V

Wir haben gezeigt, daß dann adG(x, y) gleich der Lange des kurzesten Weges von x nach

y in G ist. Wir werden deshalb zunachst den Hilfsgraphen G konstruieren, und dann den

Dijkstra-Algorithmus anwenden.

Algorithmus 5.4. (Berechnung von adG(x, y))

1) begin

2) V := V ∪ x, y;3) for all a, b ∈ V do

4) cost(a, b) :=

min(cost(a, b), |ab|) falls a, b ∈ V

|ab| falls a 6∈ V oder b 6∈ V

5) end;

6) S := x;

Page 56: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

50 5. Berechnung der Airline-Distanz

7) for all w ∈ V do

8) dist(w) := cost(x, w);

9) end;

10) while S 6= V do

11) wahle w ∈ V \ S, so daß ∀w′ ∈ V \ S : dist(w) ≤ dist(w′);

12) S := S ∪ w;13) for all w′ ∈ V \ S do

14) dist(w′) := min(dist(w′), dist(w) + cost(w, w′)

);

15) end;

16) end;

17) adG(x, y) := dist(y);

18) end;

Die Laufzeit des Algorithmus 5.4 ist in O(n2), denn sowohl die Konstruktion des Hilfsgraphen

G in den Zeilen 2) - 5) als auch der Dijkstra-Algorithmus in den Zeilen 6) - 16) brauchen

O(n2) Zeit. Hiermit ist die Berechnung von adG(x, y) in optimaler Zeit gelost, denn dieses

Problem hat die Zeitkomplexitat Ω(n2), weil man im ungunstigsten Fall Ω(n2)-Kanten von

G betrachten muß. Ein solcher Fall tritt z.B. dann auf, wenn die eine Halfte der Knoten von

G in einer sehr kleinen ε-Umgebung um x liegt, und die andere Halfte der Knoten in einer

sehr kleinen ε-Umgebung um y.

Page 57: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

Kapitel 6

Das Voronoi-Diagramm in der

Airline-Metrik

Voronoi-Diagramme sind von herausragender Bedeutung bei der Behandlung von geometri-

schen Distanzproblemen. Außerdem sind sie ein wichtiges Hilfsmittel zur Losung von vielen

verschiedenen Problemen innerhalb und auch außerhalb der Informatik.

In diesem Kapitel untersuchen wir das Airline-Voronoi-Diagramm. Hiermit ist dasjenige

verallgemeinerte Voronoi-Diagramm gemeint, welches man erhalt, wenn man anstatt der eu-

klidischen Metrik die Airline-Metrik als Abstandsbegriff zugrunde legt. Im ersten Abschnitt

besprechen wir zunachst Voronoi-Diagramme allgemein. Danach definieren wir das addi-

tiv gewichtete Voronoi-Diagramm und untersuchen dessen strukturellen Eigenschaften. Das

additiv gewichtete Voronoi-Diagramm ist fur uns deshalb besonders wichtig, weil wir das

Airline-Voronoi-Diagramm hierauf zuruckfuhren konnen. Diese Transformation fuhren wir

im dritten Abschnitt durch. Zuletzt besprechen wir Anwendungen des Voronoi-Diagramms.

6.1 Einfuhrung

Gegeben sei eine Menge S von Objekten in einem Raum X. Das Voronoi-Diagramms V (S)

von S ist die Zerlegung des Raumes X in Regionen (Rp)p∈S. Die Region Rp enthalt genau

diejenigen Punkte, welche naher an p liegen, als an irgendein anderes Objekt q ∈ S. Zur

Definition von V (S) muß man genau festlegen, was fur Objekte man betrachtet. Außerdem

muß man festlegen, wie man den Abstand eines Punktes aus X zu einem Objekt bestimmt,

und was mit denjenigen Punkten geschehen soll, die mehr als einen nachsten Nachbar in S

haben.

51

Page 58: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

52 6. Das Voronoi-Diagramm in der Airline-Metrik

Hier steckt ein allgemeines Prinzip dahinter: Objekte in einem Raum uben einen Einfuß auf

ihre Umgebung aus. Der Raum wird dadurch in einzelne Einflußbereiche aufgeteilt.

Aufgrund dieser Allgemeinheit verwundert es nicht, daß die Geschichte der Voronoi-Diagram-

me im Vergleich zu anderen Gebieten der Informatik viel weiter zuruckreicht (siehe [24]).

Einen allgemeinen Uberblick uber Voronoi-Diagramme und viele weitere Literaturhinweise

findet der Leser in dem Ubersichtsartikel von Aurenhammer [2] und in dem online verfugba-

ren Bericht von Aurenhammer und Klein [3].

Shamos und Hoey [33] waren diejenigen, die Voronoi-Diagramme in die Informatik einfuhr-

ten. Sie haben das Voronoi-Diagramm einer endlichen Menge von Punkten in der euklidischen

Ebene betrachtet und einen divide-and-conquer Algorithmus entdeckt, mit dem man das

Voronoi-Diagramm in der optimalen Zeit O(n log n) berechnen kann. Diese Entdeckung hat

Losungsmoglichkeiten fur viele geometrischen Probleme geliefert und damit die Entstehung

des Faches Algorithmische Geometrie ausgelost.

6.2 Das additiv gewichtete Voronoi-Diagramm

Ich gehe davon aus, daß der Leser mit dem klassischen Voronoi-Diagramm von Punkten im

R2 unter der euklidischen Metrik vertraut ist. Hierzu gibt es zahlreiche Literatur, z.B. die

Bucher von Klein [24] und Edelsbrunner [10].

In diesem Abschnitt behandeln wir das additiv gewichtete Voronoi-Diagramm im R2 , welches

auch Johnson-Mehl-Modell genannt wird. Die Menge S von Objekten ist hier eine endliche

Menge von Punkten im R2 . Diese Punkte heißen Voronoi-Orte. Jedem Ort p ∈ S ist ein

Gewicht wp zugeordnet. Die Voronoi-Region Rp eines Ortes p ∈ S enthalt wieder diejenigen

Punkte der Ebene, fur welche p der nachste Voronoi-Ort ist. Der Abstand eines Punktes der

Ebene zu einem Voronoi-Ort sei jetzt die Summe aus dem euklidischen Abstand und dem

Gewicht des Ortes.

Wenn man die Gewichte aller Orte mit demselben festen Wert addiert bzw. subtrahiert, dann

andern sich die Voronoi-Regionen und damit das Voronoi-Diagramm nicht. Insbesondere

kann man von jedem Gewicht den Wert minwq : q ∈ S subtrahieren. Deshalb setzen wir

ohne Einschrankung voraus, daß alle Gewichte nichtnegativ sind.

Das additiv gewichtete Voronoi-Diagramm im R2 ist identisch mit dem Voronoi-Diagramm

von Kreisen. In diesem Fall sind die Voronoi-Orte Kreisscheiben. Der Abstand eines Punktes

der Ebene zu einer Kreisscheibe sei gleich dem Abstand des Punktes zum Zentrum des

Kreises minus dem Radius des Kreises. Außerhalb des Kreises ist dann der Abstand gleich

Page 59: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

6.2 Das additiv gewichtete Voronoi-Diagramm 53

Abbildung 6.1: Das Voronoi-Diagramm einer Menge von Kreisen.

dem euklidischen Abstand zum nachsten Punkt auf dem Kreis, und innerhalb des Kreises

ist der Abstand gleich dem negativen des euklidischen Abstandes zum nachsten Punkt auf

dem Kreis. Das Voronoi-Diagramm einer additiv gewichteten Menge S von Voronoi-Orten ist

dann gleich dem Voronoi-Diagramm einer Menge von Kreisen, wobei ein Voronoi-Ort p ∈ S

mit dem Gewicht wp durch einen Kreis mit dem Zentrum p und dem Radius wmax − wp,

wmax = maxwq : q ∈ S, verkorpert wird.

Lee und Drysdale [26] haben einen O(n log2 n)-Zeit divide-and-conquer Algorithmus ent-

wickelt, mit dem man das Voronoi-Diagramm von disjunkten Kreisen berechnen kann. Dieser

Artikel hat die Nachteile, daß die Struktur des Diagramms nicht untersucht wird, daß der

Algorithmus nur sehr skizzenhaft prasentiert wird und seine Korrektheit nicht gezeigt wird,

und von allem daß die Kreise sich nicht schneiden durfen. Sharir [34] hat ausfuhrlich die

Struktur des Voronoi-Diagramms von nicht notwendigerweise disjunkten Kreisen untersucht

und dafur einen O(n log2 n)-Zeit divide-and-conquer Algorithmus entwickelt. Seine Untersu-

chungen zur Struktur des Voronoi-Diagramms bildet zusammen mit dem Artikel von Fortune

die Grundlage fur diesen Abschnitt.

Fortune [15] hat gezeigt, daß man das klassische Voronoi-Diagramm von Punkten in der

euklidischen Ebene auch mit einem sweep-Verfahren in der optimalen Zeit O(n log n) be-

rechnen kann. Dieses sweep-Verfahren ist ohne grundlegende Anderungen in seiner Struktur

auch fur die Berechnung des additiv gewichteten Voronoi-Diagramms geeignet. Gegenuber

dem divide-and-conquer Verfahren von Sharir hat es die Vorteile der optimalen Laufzeit

O(n log n) und der wesentlich einfacheren Implementierbarkeit, denn der merge-Schritt der

Page 60: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

54 6. Das Voronoi-Diagramm in der Airline-Metrik

divide-and-conquer Verfahren ist nur schwer zu implementieren. Fortunes Artikel bildet da-

mit die Grundlage fur das nachste Kapitel, in welchem wir die Berechnung des Voronoi-

Diagramms behandeln werden.

6.2.1 Definition des additiv gewichteten Voronoi-Diagramms

Sei S eine Menge von n Voronoi-Orten in der Ebene. Zu jedem Ort p ∈ S sei ein nichtnega-

tives Gewicht wp gegeben.

Definition 6.1. Es seien p, q ∈ S, p 6= q. p dominiert q, wenn |pq| + wp ≤ wq. Wenn weder

p den Ort q dominiert noch umgekehrt q den Ort p dominiert, dann sei der Bisektor von p

und q die Menge

Bpq = z ∈ R2 : |pz| + wp = |qz| + wq(6.1)

Dieser Bisektor zerlegt R2 in zwei unbeschrankte, abgeschlossene Regionen:

Rpq = z ∈ R2 : |pz| + wp ≤ |qz| + wq(6.2)

Rqp = z ∈ R2 : |qz| + wq ≤ |pz| + wp(6.3)

Wenn p den Ort q dominiert, dann sei Bpq = ∅, Rpq = R2 und Rqp = ∅.

Bemerkung. Man beachte, daß wir fur den degenerierten Fall |pq| + wp = wq, bei dem die

Menge z ∈ R2 : |pz|+wp = |qz|+wq eine Halbgerade mit Endpunkt q ist, zur Vereinfachung

der Darstellung Bpq = ∅ definiert haben.

Definition 6.2. Die Voronoi-Region von p ist

Rp =⋂

q∈S\pRpq(6.4)

Die Voronoi-Region von p besteht also aus allen Punkten der Ebene, fur die p der nachste

Ort oder einer der nachsten Orte in S ist. Das Voronoi-Diagramm von S ist

V (S) = z ∈ Bpq : p, q ∈ S und |pz| + wp = min|rz| + wr : r ∈ S(6.5)

=⋃

p,q∈S,p 6=q

Rp ∩ Rq

Das Voronoi-Diagramm enthalt genau diejenigen Punkte der Ebene, die in mehr als einer

Voronoi-Region liegen.

Die Rander der Voronoi-Regionen bestehen aus Bisektorstucken. Weil die Regionen nicht

mehr wie beim klassischen Voronoi-Diagramm konvex sein mussen, kann ein Bisektor Bpq

Page 61: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

6.2 Das additiv gewichtete Voronoi-Diagramm 55

hier mehr als ein einziges Stuck zum gemeinsamen Rand der Regionen Rp und Rq beitragen.

Gemeinsame Randstucke zweier Regionen, die aus mehr als einem Punkt bestehen, heißen

Voronoi-Kanten. Die Endpunkte von Voronoi-Kanten heißen Voronoi-Knoten.

Definition 6.3. Es sei wmax = maxwp : p ∈ S, rp = wmax − wp, und Kp = z ∈ R2 :

|pz| ≤ rp sei die abgeschlossene Kreisscheibe um das Zentrum p mit dem Radius rp.

Das additiv gewichtete Voronoi-Diagramm von S ist offenbar identisch mit dem Voronoi-

Diagramm der Kreisscheiben Kp : p ∈ S.

6.2.2 Eigenschaften des additiv gewichteten Voronoi-Diagramms

Die Eigenschaften und die zugehorigen Beweise, welche wir in diesem Unterabschnitt bespre-

chen, stammen aus Sharir [34].

Satz 6.1. Jeder Punkt der Ebene liegt in mindestens einer Voronoi-Region.

Satz 6.2. Eine Voronoi-Region Rp ist genau dann leer, wenn Kp ⊂ Kq fur ein q ∈ S, q 6= p.

Dieses ist gleichbedeutend damit, daß ein q ∈ S den Ort p dominiert.

Satz 6.3. Die nichtleeren Bisektoren Bpq sind Hyperbelaste oder Geraden. Die Voronoi-

Kanten sind deshalb Hyperbelstucke oder Geradenstucke.

Beweis.

Sei Bpq 6= ∅ und z ∈ Bpq. Dann gilt

|pz| − |qz| = wq − wp

Wenn |pq| > |wq − wp|, dann ist dieses die Gleichung eines Astes einer Hyperbel mit den

Brennpunkten p und q oder im Fall wp = wq die Gleichung der Mittelsenkrechten zur Strecke

pq. Wenn |pq| ≤ |wq−wp|, dann dominiert p den Ort q oder q dominiert den Ort p. In diesem

Fall ist Bpq = ∅.

Satz 6.4. Jede nichtleere Voronoi-Region Rp ist sternformig und enthalt p im Kern. Im

Innern jeder Strecke, welche p mit einem Randpunkt von Rp verbindet, liegen nur Punkte,

welche ausschließlich zur Region Rp gehoren.

Bemerkung. Hieraus folgt insbesondere, daß jede Voronoi-Region zusammenhangend ist.

Page 62: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

56 6. Das Voronoi-Diagramm in der Airline-Metrik

Beweis.

Angenommen, Rp ist nicht sternformig. Dann gibt es ein y ∈ Rp und einen Punkt z im

Innern der Strecke py mit z 6∈ Rp. Wegen Satz 6.1 gibt es ein q 6= p mit z ∈ Rq. Hieraus folgt

|qz| + wq < |pz| + wp

Nun wenden wir die Dreiecksungleichung an. Weil z auf der Strecke py liegt, erhalten wir

|qy|+ wq ≤ |qz| + |zy| + wq < |pz| + |zy| + wp = |py|+ wp

Hieraus ergibt sich ein Widerspruch zu y ∈ Rp, welcher beweist, daß Rp sternformig ist.

Angenommen, es gibt einen Randpunkt y von Rp, einen inneren Punkt z der Strecke py und

ein q, so daß z außer in Rp auch noch in Rq liegt. Dann gilt

|qz| + wq = |pz| + wp

Mit Hilfe der Dreiecksungleichung erhalten wir

|qy|+ wq ≤ |qz| + |zy| + wq = |pz| + |zy| + wp = |py| + wp ≤ |qy| + wq

Hieraus folgt, daß q auf der Geraden py liegt und z zwischen q und y auf dieser Geraden liegt.

Dann muß aber |pq| = |wp − wq| gelten, und damit dominiert p den Ort q oder umgekehrt.

Dieses ist ein Widerspruch dazu, daß sowohl Rp 6= ∅ gilt als auch Rq 6= ∅, wodurch die zweite

Aussage des Satzes bewiesen ist.

Satz 6.5. Die Schnittmenge dreier Voronoi-Regionen enthalt hochstens zwei Punkte.

Beispiel 6.1. Dieser Satz ist bemerkenswert. Sei S = p, q, r und M = Rp∩Rq ∩Rr. Dann

gilt:

M = Rp ∩ Rq ∩ Rr

= z ∈ R2 : |pz| + wp = |qz| + wq = |rz| + wr

= Bpq ∩ Bpr ∩ Bqr

= Bpq ∩ Bpr = Bpq ∩ Bqr = Bpr ∩ Bqr

Die Schnittmenge dreier Voronoi-Regionen ist in diesem Fall gleich der Schnittmenge von

zwei der drei Bisektoren. Bisektoren sind nach Satz 6.3 Hyperbelaste oder Geradenstucke. Es

sei nun angenommen, daß Bpq und Bpr Hyperbelaste sind. Zwei beliebige Hyperbelaste in der

Ebene konnen sich viermal schneiden. Bpq und Bpr sind aber nicht unabhangig voneinander,

sondern sie haben den gemeinsamen Brennpunkt p und konnen sich nach Satz 6.5 hochstens

zweimal schneiden.

Page 63: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

6.2 Das additiv gewichtete Voronoi-Diagramm 57

Beweis zu Satz 6.5.

Sei M = Rp ∩ Rq ∩ Rr und x, y ∈ M, x 6= y. Die sechs Strecken, welche die Punkte x und y

mit den Orten p, q und r verbinden, konnen sich außer in den Endpunkten nicht schneiden,

weil das Innere jeder Strecke nur zu jeweils einer Region gehort. Nun ist klar, weshalb es

keinen dritten Punkt z ∈ M geben kann, denn mindestens einer der Verbindungsstrecken

von z mit p, q und r mußte eine der vorherigen sechs Strecken schneiden.

Die weiteren Eigenschaften zitiere ich ohne Beweis aus Sharir [34].

Satz 6.6. Keine zwei Voronoi-Kanten konnen tangent zueinander sein. Sei e eine Voronoi-

Kante zu den Regionen Rp und Rq. z sei ein Punkt auf e. Dann sind auch die Strecken zp

bzw. zq nicht tangent zu e.

Satz 6.7. Sei Rp eine Voronoi-Region und e und e′ zwei aufeinander folgende Kanten auf

dem Rand von Rp. Dann ist der Innenwinkel von e und e′ bzgl. Rp kleiner als 180 Grad.

Insbesondere besitzt deshalb jeder Voronoi-Knoten einen Grad ≥ 3.

Zu dem Voronoi-Diagramm V (S) kann man einen dualen Graphen V ∗ konstruieren. Dazu

wahlt man die Menge S der Orte als Knotenmenge von V ∗. Zu jeder Voronoi-Kante e aus

V (S) wahlt man einen Punkt y aus dem Innern von e und verbindet die Orte p und q der

beiden Voronoi-Regionen, auf dessen gemeinsamen Rand e liegt, mit Hilfe des Streckenzuges

pyq.

Der Graph V ∗ ist planar, denn die so eingebetteten Kanten konnen sich wegen Satz 6.4

nicht schneiden. V ∗ enthalt parallele Kanten, wenn der gemeinsame Rand zweier Regionen

aus mehreren Voronoi-Kanten besteht.

Weil jeder Voronoi-Knoten einen Grad ≥ 3 besitzt, besteht der Rand der Flachen von V ∗

(bis auf der außeren unbeschrankten Flache) aus jeweils mindestens drei Kanten. Mit Hilfe

der Eulerschen Formel kann man dann den folgenden Satz herleiten.

Satz 6.8. V (S) hat nur O(n) viele Kanten.

Im klassischen Fall ist eine Region Rp genau dann unbeschrankt, wenn p auf dem Rand der

konvexen Hulle von S liegt. In unserem Fall gilt ein entsprechendes Ergebnis.

Satz 6.9. Sei C die konvexe Hulle der Menge der Kreisscheiben Kp : p ∈ S. Der Rand

von C besteht aus einer Folge, die abwechselnd Geradenstucke und Kreisbogen enthalt. Die

Kreisbogen sind Randstucke von Kreisscheiben, dagegen sind die Geradenstucke Tangenten

zu einem Paar von Kreisscheiben. Solche Paare von Kreisscheiben heißen benachbart langs

des Randes von C. Dann gilt: Zwei Regionen Rp und Rq haben genau dann eine gemeinsame

unbeschrankte Voronoi-Kante, wenn sie benachbart langs des Randes von C sind.

Page 64: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

58 6. Das Voronoi-Diagramm in der Airline-Metrik

Abbildung 6.2: Ein nicht zusammenhangendes Voronoi-Diagramm.

Satz 6.10. V (S) muß nicht zusammenhangend sein, sondern kann aus bis zu O(n) Zusam-

menhangskomponenten bestehen. Jede Zusammenhangskomponente ist unbeschrankt. Insbe-

sondere enthalt V (S) keine isolierten Punkte.

Anders als im degenerierten klassischen Fall, bei dem die Voronoi-Orte auf einer Geraden lie-

gen und die Voronoi-Kanten parallele Geraden sind, kann im additiv-gewichteten Fall schon

der Rand einer einzelnen Voronoi-Region aus O(n) disjunkten Voronoi-Kanten bestehen.

Hierzu hat Sharir folgendes Beispiel angegeben:

Beispiel 6.2. Sei V das Voronoi-Diagramm der Kreisscheiben K1, . . . , Kn+1. K1 sei die

Einheitskreisscheibe. Die n Kreisscheiben K2, . . . , Kn+1 haben alle den gleichen Radius ρ.

Ihre Zentren liegen gleichmaßig verteilt auf dem Einheitskreis, so daß sie ein regemaßiges

n-Eck bilden wurden, falls man sie verbinden wurde. Man kann ρ so klein machen, daß fur

jedes j = 2, . . . , n + 1 die Kreisscheiben K1 und Kj benachbart sind langs des Randes C

der konvexen Hulle der Menge der Kreisscheiben. Nach Satz 6.9 hat R1 mit jedem Rj eine

gemeinsame unbeschrankte Voronoi-Kante. Die Voronoi-Kanten sind in diesem Fall ganze

Hyperbelaste, welche sich untereinander nicht schneiden. Der Rand von R1 besteht aus O(n)

disjunkten Voronoi-Kanten.

Page 65: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

6.3 Das Airline-Voronoi-Diagramm 59

6.3 Das Airline-Voronoi-Diagramm

Sei G = (V, cost) derjenige positive, symmetrische Graph, dessen Airline-Metrik wir als

Abstandsbegriff zugrunde legen. Die Flughafenmenge, d.h. die Knotenmenge von G, sei V =

v1, . . . , vm) ⊂ R2 .

Sei S = p1, . . . , pn eine Menge von n Punkten in der Ebene. Wir mochten nun das Voronoi-

Diagramm von S bzgl. der Airline-Metrik adG definieren und untersuchen.

Zunachst definieren wir eine Funktion f , die jedem Flughafen einen Voronoi-Ort zuordnet.

Definition 6.4. Das Gewicht eines Flughafens v ∈ V sei gleich dem Airline-Abstand zum

nachstliegenden Voronoi-Ort.

w : V → R+

w(v) := minadG(v, p) : p ∈ SDie Funktion f soll nun jeden Flughafen auf den nachstgelegenen Voronoi-Ort abbilden.

Wenn ein Flughafen v zwei Orte pi und pj als nachsten Nachbar in S hat, dann sei f(v) = pi

im Fall i < j und f(v) = pj im Fall j < i.

f : V → S

v 7−→ piv mit iv = mini ∈ 1, . . . , n : adG(v, pi) = w(v)

Wenn f(v) = p ist, dann sagen wir, daß der Flughafen v zum Ort p gehort.

Wir definieren jetzt das Airline-Voronoi-Diagramm AV (S, G) von S bzgl. der Airline-Metrik

von G. Hierzu benutzen wir ein geeignetes additiv gewichtetes Voronoi-Diagramm, in wel-

chem wir dann bestimmte Regionen zu einer Airline-(Voronoi)-Region zusammenfassen.

Definition 6.5. Es sei S := S ∪ V = p1, . . . , pn, v1, . . . , vm, und V (S) sei das additiv

gewichtete Voronoi-Diagramm von S. Das Gewicht eines Ortes p ∈ S sei dabei durch w(p)

gegeben, wenn p ein Flughafen ist, d.h. p ∈ V . Im Fall p ∈ S sei w(p) = 0. Auch die

Zuordnungsfunktion f erweitern wir auf ganz S, indem wir f(p) = p fur p ∈ S setzen.

Die Voronoi-Regionen von V (S) seien R(p, S) : p ∈ S. Die Airline-Voronoi-Regionen

AR(p, S, G) und das Airline-Voronoi-Diagramm AV (S, G) seien wie folgt definiert:

AR(p, S, G) =⋃

q∈S,f(q)=p

R(q, S)(6.6)

AV (S, G) =⋃

p,q∈S,p 6=q

AR(p, S, G) ∩ AR(q, S, G)(6.7)

=⋃

p,q∈S,f(p)6=f(q)

R(p, S) ∩ R(q, S)

Page 66: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

60 6. Das Voronoi-Diagramm in der Airline-Metrik

Man kann sich die Konstruktion von AV (S, G) aus V (S) wie folgt veranschaulichen: Jedem

p ∈ S ordnet man eine eigene Farbe zu. Die p ∈ V werden mit der gleichen Farbe wie f(p)

gefarbt. Die Regionen Rp erhalten die Farbe von p. Danach werden alle gleich gefarbten Re-

gionen zusammengefaßt. Man erhalt dann ein sogenanntes gefarbtes Voronoi-Diagramm. Die-

ses gefarbte Voronoi-Diagramm ist identisch mit dem Airline-Voronoi-Diagramm AV (S, G).

Man beachte: Beim Ubergang vom ungefarbten Voronoi-Diagramm zum gefarbten Voronoi-

Diagramm werden Regionen zusammengefaßt, so daß auch Kanten wegfallen. Hierdurch

wird auch der Grad von Knoten verringert. Insbesondere konnen Knoten mit dem Grad

2 entstehen!

Bemerkung. Gefarbte Voronoi-Diagramme erhalt man durch Identifizierung von einzelnen

Voronoi-Orten mit Hilfe der Aquivalenzrelation der Gleichfarbigkeit. Die zugrunde liegen-

den Objekte dieser Art von Voronoi-Diagrammen sind Punktmengen anstelle von einzelnen

Punkten.

Wir untersuchen nun, ob das so definierte Airline-Voronoi-Diagramm die gewunschten Eigen-

schaften hat, denn nur dann ist diese Definition sinnvoll. Wir mussen uberprufen, ob fur alle

Punkte aus AR(p, S, G) auch p ein nachster Nachbar in S bzgl. der Metrik adG ist. Außerdem

mussen diejenigen Punkte der Ebene, welche mehr als einen nachsten Nachbar in S haben,

vernunftig behandelt werden. Dieses bedeutet, daß jeder Punkt der Ebene in mindestens

einer Airline-Voronoi-Region liegen muß, und daß die Schnittmenge zweier Airline-Regionen

aus Kurvenstucken oder einzelnen Punkten bestehen soll. Die beiden letzten Bedingungen

sind schon aufgrund der Eigenschaften der additiv gewichteten Voronoi-Diagramme erfullt.

Sei z ∈ R2 ein Punkt der Ebene, welcher in der Region AR(p, S, G) liegt. Dann liegt z in

R(p, S) oder es gibt ein v ∈ V mit f(v) = p und z ∈ R(v, S). Sei q ∈ S, q 6= p ein weiterer

Ort.

Im Fall z ∈ R(p, S) gilt:

|zp| ≥ adG(z, p)

= min

(|zp|, min

v,w∈V

(|zv| + adG(v, w) + |wp|))≥ min

(|zp|, min

v∈V

(|zv| + w(v)))

= |zp|=⇒ adG(z, p) = |zp|

Page 67: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

6.3 Das Airline-Voronoi-Diagramm 61

und

adG(z, q) = min

(|zq|, min

v,w∈V

(|zv| + adG(v, w) + |wq|))≥ min

(|zq|, min

v∈V

(|zv| + w(v)))

≥ |zp|= adG(z, p)

Im Fall z ∈ R(v, S) mit f(v) = p gilt:

|zv| + w(v) = |zv| + adG(v, p)

≥ adG(z, p)

= min

(|zp|, min

v,w∈V

(|zv| + adG(v, w) + |wp|))≥ min

(|zp|, min

v∈V

(|zv| + w(v)))

= |zv| + w(v)

=⇒ adG(z, p) = |zv| + w(v)

und

adG(z, q) = min

(|zq|, min

v,w∈V

(|zv| + adG(v, w) + |wq|))≥ min

(|zq|, min

v∈V

(|zv| + w(v)))

= |zv| + w(v)

= adG(z, p)

In jedem Fall erhalten wir fur alle p ∈ S, z ∈ AR(p, S, G) und q ∈ S \ p:

adG(z, p) ≤ adG(z, q)

Deshalb enthalt AR(p, S, G) wie verlangt nur Punkte, welche p als nachste Nachbarn in S

bzgl. adG haben.

Bemerkung. Bei der Definition von neuen Arten von Voronoi-Diagrammen muß man sich

uberlegen, wie man mit flachigen Bisektoren umgeht. Schon bei der L1-Metrik kann der Bi-

sektor zweier Punkte der Ebene zwei volle Viertelebenen enthalten (siehe [24]). Wenn man

dann wie gewohnt offene oder abgeschlossene Voronoi-Regionen definiert, erhalt man entwe-

der Flachen, die zu keiner Region gehoren (no-man’s land), oder Flachen, die in mehreren

Page 68: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

62 6. Das Voronoi-Diagramm in der Airline-Metrik

Regionen liegen. Um diese Situationen zu vermeiden, lost man flachige Bisektoren auf, indem

man sie einer der beiden Regionen zuschlagt.

In unserem Fall entstehen flachige Bisektoren dann, wenn es einen Flughafen v ∈ V und zwei

Orte pi, pj ∈ S, i < j gibt mit w(v) = adG(v, pi) = adG(v, pj). Dann haben alle Punkte der

Region R(v, S) sowohl pi als auch pj als nachsten Nachbar in S bzgl. adG. Wir haben diese

Situation dadurch aufgelost, daß wir f(v) = pi gesetzt habe. R(v, S) ist dann ein Teil von

AR(p, S, G). Die Auflosung flachiger Bisektoren erfolgt also mit Hilfe einer Ordnung von S.

Diese haben wir nicht naher bestimmt, sondern wir lassen dem Anwender die Freiheit, eine

ihm genehme Ordnung auf S zu definieren. Eine Ordnung der Menge S erhalt man z.B.,

wenn man den R2 lexikographisch ordnet.

Viele Eigenschaften der additiv gewichteten Voronoi-Diagramme gelten auch fur die gefarb-

ten additiv gewichteten Voronoi-Diagramme und damit auch fur die Airline-Voronoi-Diagramme,

oder sie konnen entsprechend modifiziert werden.

Definition 6.6. Es sei p ∈ S und v, v′ ∈ V . p dominiert v, wenn |pv| = w(v). v′ dominiert

v, wenn |v′v| + w(v′) = w(v).

Die Region R(v, S) ist genau dann leer, wenn v dominiert wird.

Die Airline-Voronoi-Kanten sind selbstverstandlich wieder wie im additiv gewichteten Fall

Hyperbelstucke oder Geradenstucke. Die Airline-Regionen sind jetzt aber nicht mehr not-

wendigerweise zusammenhangend, und die Schnittmenge dreier Regionen kann mehr als zwei

Punkte enthalten. Das Voronoi-Diagramm hat O(n+m) viele Kanten und braucht nicht zu-

sammenhangend sein. Weil beim gefarbten additiv gewichteten Voronoi-Diagramm Kanten

des ungefarbten Diagramms entfallen konnen, sind die Zusammenhangskomponenten des

Airline-Voronoi-Diagramms nicht mehr notwendigerweise unbeschrankt. Sie enthalten aber

keine isolierten Punkte.

6.4 Anwendungen des Voronoi-Diagramms

Das Prinzip, einen Raum, in dem sich Objekte befinden, in Einflußbereiche aufzuteilen,

ist sehr allgemein und fur viele Wissenschaften von Bedeutung. Es gibt Anwendungen des

Voronoi-Diagramms in der Archaologie, Biologie, Kristallographie, Kunst und Physik. Lite-

raturhinweise hierzu findet man in [10, 23].

Es gibt viele Anwendungen fur das klassische Voronoi-Diagramm. Einige dieser Anwendun-

gen kann man verallgemeinern auf den Fall, daß die zugrundeliegende Metrik eine andere

Page 69: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

6.4 Anwendungen des Voronoi-Diagramms 63

als die euklidische ist. Wir betrachten nun einige Beispiele fur Anwendungen des additiv

gewichteten Voronoi-Diagramms und des Airline-Voronoi-Diagramms.

6.4.1 Das Problem des nachsten Postamts

Im klassischen Fall lautet das Problem des nachsten Postamts (”post office“-Problem) wie

folgt:

Definition 6.7 (Problem des nachsten Postamts).

Sei S eine Menge von n Orten in der Ebene. Man baue eine Datenstruktur auf, mit der sich

fur einen beliebigen Anfragepunkt x ∈ R2 der nachstgelegene der n Punkte aus S moglichst

schnell bestimmen laßt.

Bemerkung. Diese Vorgehensweise der Zusammenfassung von Anfrageobjekten, die diesel-

be Antwort hervorrufen, nennt man Ortsansatz (locus approach). Man stellt hiermit einen

Zusammenhang zwischen Losungen eines Problems und Punkten in einem Raum her.

Der Ortsansatz des Postamt-Problems wird durch das Voronoi-Diagramm reprasentiert, denn

das Voronoi-Diagramm unterteilt die Ebene in Regionen gleicher nachster Nachbarn. Wenn

man das Voronoi-Diagramm berechnet hat, muß man nur noch das Lokalisierungsproblem

(”point location“-Problem) losen.

Definition 6.8 (Lokalisierungsproblem).

Gegeben sei das Voronoi-Diagramm V (S). Man baue eine Datenstruktur auf, mit der sich

fur einen beliebigen Anfragepunkt x ∈ R2 moglichst schnell die Voronoi-Region bestimmen

laßt, in der x enthalten ist.

Eine einfache Losung des Lokalisierungsproblems, die sogenannte Streifenmethode (slab me-

thod), haben Dobkin und Lipton [9] entwickelt. Hierbei wir die Ebene in parallele Streifen zer-

legt, indem horizontale Geraden durch die Voronoi-Knoten gezogen werden. Weil innerhalb

der Streifen keine Knoten liegen, sind die Voronoi-Kanten innerhalb der Streifen geordnet.

Zur Lokalisierung eines Punktes x = (x1, x2) wird mittels binarer Suche der Streifen fur x2

bestimmt. Innerhalb des Streifens wird dann eine weitere binare Suche fur x1 durchgefuhrt.

Anfragen lassen sich mit der Streifenmethode zwar in der Zeit O(log n) beantworten, aber

der Speicherbedarf ist quadratisch, und damit ist auch die Vorverarbeitungszeit quadratisch.

Es gibt effizientere Methoden zur Losung des Lokalisierungsproblems (monotone Unterteilun-

gen,”layered-dag“-Datenstruktur). Literatur hierzu sind Kirkpatrick [22] und Edelsbrunner

et al. [11]. Diese Strukturen losen das Lokalisierungsproblem auch in O(log n) Zeit, sie haben

Page 70: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

64 6. Das Voronoi-Diagramm in der Airline-Metrik

aber nur linearen Speicherbedarf und konnen in linearer Zeit aus dem Voronoi-Diagramm

aufgebaut werden.

Ein effizienter Algorithmus zur Losung des Postamt-Problems konstruiert zunachst in der

Zeit O(n log n) das Voronoi-Diagramm und baut dann in O(n) Zeit eine effiziente Struktur

zur Losung des Lokalisierungsproblems auf. Man hat dann in O(n log n) Zeit eine Daten-

struktur konstruiert, mit der man Anfragen nach dem nachsten Postamt in O(log n) Zeit

beantworten kann.

Offenbar funktioniert die Streifenmethode auch im additiv gewichteten Fall. Aber auch die

Methode von Kirkpatrick funktioniert im additiv gewichteten Fall, weil die Voronoi-Regionen

R(p, S) sternformig sind mit p im Kern. Auch hier liegt die zusatzliche Vorverarbeitungszeit

(nachdem V (S) konstruiert wurde) in O(n), und Anfragen konnen in der Zeit O(log n)

beantwortet werden.

Den Airline-Fall kann man mit Hilfe des entsprechenden ungefarbten, additiv gewichteten

Voronoi-Diagramms behandeln. Man erhalt dann eine Losung des Postamt-Problems mit

einer O((n + m) log(n + m)) Vorverarbeitung, welche Anfragen in der Zeit O(log(n + m))

beantwortet.

6.4.2 Weitere Distanzprobleme

Sharir [34] untersucht in seinem Artikel das additiv gewichtete Voronoi-Diagramm in der

Form des Voronoi-Diagramms von Kreisscheiben. Außer dem Postamt-Problem beschaftigt

er sich auch mit anderen Distanzproblemen.

Es sei angenommen, daß das Voronoi-Diagramm vorhanden ist. Dann kann man in linearer

Zeit testen, ob es eine Kreisscheibe gibt, welche vollstandig innerhalb einer zweiten Kreis-

scheibe liegt. Dieses ist dann der Fall, wenn die Voronoi-Region einer Kreisscheibe leer ist.

Es sei im folgenden angenommen, daß dieses nicht der Fall ist.

Man kann in linearer Zeit durch Betrachtung der Voronoi-Kanten alle Kreisscheibenpaare

bestimmen, dessen Voronoi-Regionen benachbart sind. Deshalb kann man in linearer Zeit

testen, ob es zwei Kreisscheiben gibt, welche sich schneiden. Wenn dieses nicht der Fall ist,

dann kann man in linearer Zeit ein dichtestes Kreisscheibenpaar, d.h. ein Paar von Kreisen

mit minimalem Abstand, bestimmen.

Man kann dieses Verfahren fur den gefarbten Fall modifizieren und uberprufen, ob es zwei

Kreisscheiben gibt, die sich schneiden und verschieden gefarbt sind. Auch ein dichteste Paar

von Kreisscheiben unterschiedlicher Farbe kann man bestimmen. Im gefarbten Fall betrachtet

Page 71: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

6.4 Anwendungen des Voronoi-Diagramms 65

man Kanten nur dann, wenn die zugehorigen Kreisscheiben verschieden gefarbt sind.

Die Gesamtzeit fur die Konstruktion des Voronoi-Diagramms und den Test, ob sich zwei

Kreisscheiben schneiden bzw. fur die Bestimmung eines dichtesten Paares betragt O(n log n)

sowohl im ungefarbten als auch im gefarbten Fall.

Im ungefarbten Fall kann man sogar alle nachsten Nachbarn in der Zeit O(n) bestimmen,

wenn das Voronoi-Diagramm vorhanden ist.

Distanzprobleme spielen z.B. bei der Kollisionsvermeidung von Robotersystemen eine Rolle.

Mit der gefarbten Version kann man Situationen modellieren, in denen sich einige Objekte

schon von vornherein schneiden.

Page 72: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

66 6. Das Voronoi-Diagramm in der Airline-Metrik

Page 73: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

Kapitel 7

Berechnung des Voronoi-Diagramms

Im vorigen Kapitel haben wir das Airline-Voronoi-Diagramm definiert und gesehen, wie

nutzlich dieses bei der Losung von Distanzproblemen ist. In diesem Abschnitt mochten wir

einen Algorithmus entwickeln, um dieses Voronoi-Diagramm zu berechnen.

Wir haben das Airline-Voronoi-Diagramm auf das additiv gewichtete Voronoi-Diagramm

zuruckgefuhrt. In den ersten beiden Abschnitten besprechen wir, wie man additiv gewich-

tete Voronoi-Diagramme berechnen kann. Dazu verwenden wir den Sweep-Algorithmus von

Fortune [15]. Im ersten Abschnitt besprechen wir den Fortune-Algorithmus fur den klassi-

schen Fall, d.h. Punkte in der Ebene unter Verwendung der euklidischen Metrik. Danach

behandeln wir die wenigen kleineren Anderungen am Algorithmus, die notwendig sind, um

das additiv gewichtete Voronoi-Diagramm zu konstruieren. Grundlegend fur den Fortune-

Algorithmus ist die Transformationsabbildung ∗. Der dritte Abschnitt enthalt eine geome-

trische Interpretation dieser Abbildung. Im letzen Abschnitt untersuchen wir dann, wie man

den Algorithmus zur Berechnung des additiv gewichteten Voronoi-Diagramms dazu benutzen

kann, das Airline-Voronoi-Diagramm zu berechnen.

7.1 Der Sweepline-Algorithmus von Fortune

7.1.1 Einleitung

Die Idee des Sweep-Verfahrens ist, eine horizontale Sweepline von unten nach oben uber

die Ebene laufen zu lassen und sich dabei zu merken, wie die Voronoi-Regionen von der

Sweepline geschnitten werden. In der Sweep-Status-Struktur (SSS) werden die jeweils von

der Sweepline geschnittenen Voronoi-Kanten nach ihren x-Koordinaten sortiert gespeichert.

67

Page 74: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

68 7. Berechnung des Voronoi-Diagramms

Die Schwierigkeit dabei ist, daß die Sweepline die Voronoi-Regionen schon vor Erreichen der

zugehorigen Voronoi-Orte schneidet.

Fortune [15] hat als erster diese Schwierigkeit uberwunden. Er hat eine geometrische Trans-

formation gefunden, welche die kombinatorische Struktur des Voronoi-Diagramms nicht

andert und dabei die Eigenschaft besitzt, daß jeder Voronoi-Ort auf sich selbst abgebil-

det wird und als unterster Punkt seiner transformierten Region erscheint. Berechnet wird

zunachst das transformierte Voronoi-Diagramm. Der Algorithmus weiß nun, wann eine neue

Region entsteht, namlich genau dann, wenn die Sweepline den zugehorigen Ort erreicht.

Die Rucktransformation ist einfach. Sie wird vom Algorithmus gleich mitausgefuhrt, so daß

keine transformierten Kanten und transformierten Knoten gespeichert werden, sondern gleich

das untransformierte Voronoi-Diagramm entsteht.

Fortune hat seinen Algorithmus ausfuhrlich in [15] beschrieben. Dieser Abschnitt enthalt eine

verkurzte Form des Artikels von Fortune. Ich zitiere hieraus und prasentiere den Algorithmus

ohne Beweis der Korrektheit.

7.1.2 Die Transformation”∗“

Die Transformationsabbildung ∗ ist grundlegend fur den Algorithmus. Wir werden sie in

diesem Unterabschnitt definieren und ihre Eigenschaften besprechen, ohne diese jedoch zu

beweisen.

Es sei S ∈ R2 eine Menge von n Voronoi-Orten in der euklidischen Ebene. Fur einen Punkt

p ∈ R2 sei px oder p.x die x-Koordinate und entsprechend py oder p.y die y-Koordinate. Die

Punkte der Ebene seien lexikographisch geordnet, d.h. p < q gdw. py < qy oder py = qy und

px < qx.

Definition 7.1. Sei l eine Gerade oder ein Geradensegment. p ∈ R2 sei ein Punkt der

Ebene. Wir sagen, l verlauft unterhalb von p, gdw. es einen Punkt q ∈ l gibt mit qx = px

und qy < py.

Definition 7.2. Die Funktionen dp fur p ∈ S und d sind wie folgt definiert:

dp : R2 → R+ dp(z) := |pz|(7.1)

d : R2 → R+ d(z) := minp∈S

(dp(z)

)(7.2)

Definition 7.3. Der Voronoi-Kreis um z ∈ R2 ist der Kreis um z mit dem Radius d(z).

Das euklidische Voronoi-Diagramm definieren wir wie ublich.

Page 75: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

7.1 Der Sweepline-Algorithmus von Fortune 69

Definition 7.4. Der Bisektor von p, q ∈ S und die Voronoi-Region von p ∈ S sind die

Mengen

Bpq = z ∈ R2 : dp(z) = dq(z)(7.3)

Rpq = z ∈ R2 : dp(z) ≤ dq(z)(7.4)

Rp = z ∈ R2 : dp(z) = d(z)(7.5)

=⋂

q∈S\pRpq

Das Voronoi-Diagramm von S ist

V (S) = z ∈ R2 : es gibt p 6= q mit d(z) = dp(z) = dq(z)(7.6)

=⋃

p,q∈S,p 6=q

Rp ∩ Rq

Wir schreiben auch einfach V statt V (S).

Anders als im additiv gewichteten Fall sind die Voronoi-Regionen konvex, und zu zwei Orten

p, q ∈ S gibt es hochstens eine Voronoi-Kante. Wenn es eine Voronoi-Kante zu p und q gibt,

dann bezeichnen wir sie mit epq. Es gibt naturlich auch wieder nur O(n) viele Kanten bzw.

Knoten.

Definition 7.5. Die Hilfsabbildungen ∗p fur p ∈ S und die Abbildung ∗ sind wie folgt

definiert:

∗p : R2 → R2 ∗p(z) : =

(zx, zy + dp(z)

)(7.7)

∗ : R2 → R2 ∗(z) : =

(zx, zy + min

p∈S

(dp(z)

))(7.8)

=(zx, zy + d(z)

)Wir schreiben auch z∗ anstatt ∗(z). ∗ ist stetig. Ein Punkt z ∈ R

2 wird auf den obersten

Punkt des Voronoi-Kreises um z abgebildet. Jeder Voronoi-Ort wird auf sich selbst abgebil-

det. Auch vertikale Geraden werden auf sich selbst abgebildet. Fur B ⊆ R2 schreiben wir

auch B∗ anstatt ∗(B). Auf der Region Rp ist ∗ = ∗p.

Zur Untersuchung der Transformation ∗ betrachten wir zunachst die Hilfsfunktionen ∗p.

Lemma 7.1.

(1) Sei l eine nicht-vertikale Gerade. Dann ist ∗p injektiv auf l und ∗p(l) ist eine Hyperbel.

(2) Sei l eine vertikale Gerade und p 6∈ l. Dann ist ∗p injektiv auf l und ∗p(l) ist eine offene

vertikale Halbgerade, welche oberhalb der Geraden y = py verlauft.

Page 76: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

70 7. Berechnung des Voronoi-Diagramms

(3) Sei l eine vertikale Gerade und p ∈ l. Dann ist ∗p(l) die abgeschlossene vertikale Halbge-

rade oberhalb von p. Die Punkte von l, die unterhalb von p liegen, werden auf p abgebildet.

Auf der Menge der Punkte von l, welche oberhalb von p liegen, ist ∗p injektiv.

Wir untersuchen jetzt, wie das Voronoi-Diagramm unter ∗ abgebildet wird.

Satz 7.2.

(1) Die Abbildung ∗ ist injektiv auf V .

(2) Sei epq eine Voronoi-Kante. Dann ist e∗pq ein Hyperbelstuck oder Geradenstuck.

(3) Jeder Voronoi-Ort p ∈ S ist das eindeutig bestimmte Minimum von R∗p, d.h.

p ∈ R∗p und ∀z ∈ R∗

p, z 6= p : py < zy

Satz 7.3.

Sei v ein Voronoi-Knoten. p, q ∈ S seien diejenigen Voronoi-Orte, welche man als erste

erreicht, wenn man den Voronoi-Kreis von v ausgehend von v∗ im Gegenuhrzeigersinn bzw.

Uhrzeigersinn duchlauft.

(1) Wenn v∗ kein Voronoi-Ort ist, dann verlauft die Kante e∗pq von v∗ aus nach oben, und

die restlichen Kanten verlaufen von v∗ aus nach unten.

(2) Wenn v∗ ein Voronoi-Ort ist, dann verlaufen die Kanten e∗pv und e∗vq von v∗ aus nach

oben, und die restlichen Kanten von v∗ verlaufen von v∗ aus nach unten.

Wir konnen jetzt jeden Punkt z des Bildbereichs von ∗ klassifizieren:

• z liegt im Innern einer Region R∗p.

• z liegt auf einer Kante e∗pq, ist aber weder ein Voronoi-Ort noch ein transformierter

Knoten.

• z ist ein Voronoi-Ort, aber kein transformierter Knoten.

In diesem Fall ist z das Minimum der Region R∗z , und es gibt ein Ort p mit z ∈ e∗zp.

• z ist ein transformierter Knoten, aber kein Voronoi-Ort.

In diesem Fall verlauft genau eine Kante von z aus nach oben, und mindestens zwei

Kanten verlaufen nach unten.

• z ist sowohl ein Voronoi-Ort als auch ein transformierter Knoten.

In diesem Fall verlaufen genau zwei Kanten von z aus nach oben, und mindestens eine

Kante verlauft nach unten. z ist das Minimum der Region R∗z .

Page 77: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

7.1 Der Sweepline-Algorithmus von Fortune 71

7.1.3 Der Algorithmus zur Berechnung von V ∗ und V

Wie bereits erwahnt lassen wir eine horizontale Sweepline von unten nach oben uber die

Ebene laufen. Wir merken uns dabei, welche Regionen und Kanten des transformierten

Voronoi-Diagramms V ∗ von der Sweepline geschnitten werden.

Eine Region R∗p erscheint zum erstenmal dann, wenn die Sweepline den Ort p erreicht. Re-

gionen verschwinden dann, wenn sich Kanten schneiden. Haltepunkte der Sweepline sind

also die Voronoi-Orte und die Bilder der Voronoi-Knoten. Im ersten Fall sprechen wir von

Ortsereignissen, im zweiten Fall von Schnittereignissen.

Die Koordinaten der Ortsereignisse sind von vornherein gegeben. Die Koordinaten der Schnit-

tereignisse werden vom Algorithmus berechnet. Dazu werden immer dann, wenn eine neue

Kante in die Sweep-Status-Struktur eingetragen wird, die Schnittpunkte dieser Kante mit

seinen Nachbarkanten berechnet.

Seien R∗p und R∗

q zwei Regionen, die langs der Sweepline benachbart sind, und es sei py >

qy. In diesem Fall ist ∗p(Bpq) eine Hyperbel mit dem Minimum p. Zur Vereinfachung der

Darstellung des Algorithmus bezeichnen wir den monoton fallenden Teil der Hyperbel, d.h.

den links von p liegenden Teil, mit C−pq. Den monoton steigenden Teil der Hyperbel, d.h. den

rechts von p liegenden Teil, bezeichnen wir mit C+pq. C−

pq und C+pq heißen Grenzen.

Im Fall py = qy ist ∗p(Bpq) eine offene vertikale Halbgerade. Wir setzen in diesem Fall C−pq = ∅

und C+pq = ∗p(Bpq).

Mit Cpq bezeichnen wir eine der beiden Grenzen C−pq und C+

pq, wenn die Auswahl unwichtig

ist oder vom Zusammenhang bestimmt wird.

Der Algorithmus berechnet das transformierte Voronoi-Diagramm V ∗. Er benutzt dazu die

folgenden Datenstrukturen:

• Die Eingabe ist eine Menge S von n Voronoi-Orten.

• Die Ausgabe ist das transformierte Voronoi-Diagramm V ∗ als Menge von Bisektoren

und Knoten. Jeder Bisektor ist mit den Endpunkten der entsprechenden Kante mar-

kiert.

• Die Ereignisstruktur (ES) enthalt die Haltepunkte der Sweepline. Dieses sind die Orts-

und Schnittereignisse. Sinnvollerweise ordnet man die Ereignisse in Sweeprichtung. ES

ist eine Priority Queue von Ereignissen, d.h. von Punkten der Ebene, die zugleich ent-

weder Voronoi-Orte oder Schnittpunkte von Grenzen sind, und daher dementsprechend

Page 78: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

72 7. Berechnung des Voronoi-Diagramms

gekennzeichnet sind. Zu einem Punkt der Ebene konnen mehrere Ereignisse existieren

und in ES enthalten sei. Die Ordnung dieser gleichzeitigen Ereignisse ist unwichtig.

• Die Sweep-Status-Struktur (SSS) speichert die aktuell von der Sweepline geschnitte-

nen transformierten Regionen und Grenzen geordnet von links nach rechts. SSS ist

eine Folge (R∗1, C1, R

∗2, . . . , R

∗k−1, Ck−1, R

∗k), die abwechselnd Regionen von V ∗ und die

entsprechenden Grenzen zwischen den Regionen enthalt. Regionen konnen mehrfach

in der Sweep-Status-Struktur vorkommen.

Algorithmus 7.1. (Berechnung von V ∗)

1) Initialisiere SSS und ES.

2) while not empty(ES) do

3) p := deletemin(ES);

4) if (p ist ein Ortsereignis) then

5) Suche eine Region R∗q in SSS, welche p enthalt.

(Wenn p auf einer Grenze liegt, dann gibt es zwei solcher Regionen. Man kann

sich dann eine der beiden aussuchen.)

6) Losche ggfs. den Schnittpunkt zwischen der linken und der rechten Grenze von

R∗q aus ES.

7) Erzeuge den Bisektor B∗pq.

8) Ersetze in SSS die Region R∗q durch die Folge R∗

q , C−pq, R

∗p, C

+pq, R

∗q .

9) Berechne den Schnittpunkt von C−pq mit seinem linken Nachbarn in SSS und

fuge diesen ggfs. in ES ein.

10) Berechne den Schnittpunkt von C+pq mit seinem rechten Nachbarn in SSS und

fuge diesen ggfs. in ES ein.

11) else if (p ist ein Schnittereignis) then

12) Sei p der Schnittpunkt zwischen den Grenzen Cqr und Crs.

13) Losche ggfs. den Schnittpunkt von Cqr mit seinem linken Nachbarn in SSS

und den Schnittpunkt von Crs mit seinem rechten Nachbarn in SSS aus ES.

14) Erzeuge den Bisektor B∗qs.

15) Ersetze in SSS die Folge Cqr, R∗r , Crs durch die Grenze Cqs.

16) Berechne den Schnittpunkt von Cqs mit seinem linken Nachbarn in SSS und

fuge diesen ggfs. in ES ein.

17) Berechne den Schnittpunkt von Cqs mit seinem rechten Nachbarn in SSS und

fuge diesen ggfs. in ES ein.

18) Markiere p als Knoten auf B∗qr, B∗

rs und B∗qs.

19) end; (* if *)

20) end; (* while *)

Page 79: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

7.1 Der Sweepline-Algorithmus von Fortune 73

Die Initialisierung von SSS und ES fuhre man wie folgt durch:

Sei S = p1, . . . , pn mit pi < pj fur i < j, d.h. pi.y < pj.y oder pi.y = pj .y und

pi.x < pj .x. Sei k = maxj : pj.y = p1.y. Erzeuge die Bisektoren B∗p1p2

, . . . , B∗pk−1pk

und

setze SSS=(R∗p1

, C+p1p2

, R∗p2

. . . , R∗pk−1

, C+pk−1pk

, R∗pk

). Erzeuge Ortsereignisse zu den ubrigge-

bliebenen Voronoi-Orten pk+1, . . . , pn und initialisiere ES hiermit.

Mit dieser Initialisierung wird insbesondere der Sonderfall, daß mehrere Voronoi-Orte mit der

minimalen y-Koordinate p1.y existieren, korrekt behandelt. In dem Normalfall, daß es einen

eindeutig bestimmten untersten Voronoi-Ort gibt, d.h. p1.y < pj .y fur alle j ∈ 2, . . . , n,ist nach der Initialisierung SSS=(R∗

p1) und ES=(p2, . . . , pn).

Der Algorithmus 7.1 hat die sehr angenehme Eigenschaft, daß er auch mit degenerierten

Eingaben zurechtkommt, ohne sie gesondert behandeln zu mussen. Es wird nicht vorausge-

setzt, daß sich die Punkte aus S in allgemeiner Lage befinden. Dieses bedeutet, daß vier

oder noch mehr Voronoi-Orte kozirkular sein durfen, und daß drei oder mehr Orte kollinear

sein durfen. Allerdings kann der Algorithmus im degenerierten Fall Kanten der Lange Null

erzeugen. Kanten der Lange Null werden durch Bisektoren reprasentiert, bei denen beide

Endknoten identisch sind. Solche Kanten kann man naturlich nachtraglich wieder aus der

Ausgabe entfernen, falls dies erforderlich sein sollte. Alternativ kann man degenerierte Falle

auch explizit behandeln, allerdings wird der Algorithmus dann komplizierter.

Satz 7.4. Man kann den Algorithmus 7.1 so implementieren, daß man eine Laufzeit von

O(n log n) und ein Speicherplatzbedarf von O(n) erreicht.

Beweis.

Die while-Schleife wird O(n)-mal durchlaufen. Deshalb ist auch die Anzahl der vom Algorith-

mus erzeugten Bisektoren in O(n). Die Priority Queue ES enthalt nur O(n) viele Eintrage,

namlich hochstens zwei Eintrage je Grenze und einen Eintrag je Voronoi-Ort. Auf ES benotigt

wir die Operationen insert, delete und deletemin. ES kann man als Heap implementieren,

so daß man O(log n)-Zeit je Operation braucht. Auch SSS enthalt nur O(n) viele Eintrage,

denn eine horizontale Gerade kann einen Bisektor hochstens zweimal schneiden. Auf SSS

benotigt wir die Operationen insert, delete und search (Zeile 5)). SSS kann man als AVL-

Baum implementieren, so daß man O(logn)-Zeit je Operation braucht. Insgesamt braucht

man bei dieser Implementierung O(n log n) viel Zeit.

Algorithmus 7.1 ist ein optimaler Algorithmus, denn die Konstruktion des Voronoi-Dia-

gramms erfordert Ω(n log n) viel Zeit, auch wenn die n Punkte in S bereits nach einer

Koordinate sortiert sind (siehe [24]).

Page 80: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

74 7. Berechnung des Voronoi-Diagramms

Satz 7.5. Man kann den Algorithmus 7.1 so modifizieren, daß er gleich V anstatt V ∗ be-

rechnet.

Beweis.

Der Algorithmus berechnet eine Kante, indem er zuerst den Bisektor zu der entsprechen-

den Kante erzeugt und spater dann den Bisektor mit den Endpunkten der Kante mar-

kiert. Diese Operationen kann man auch mit den untransformierten Bisektoren und Knoten

durchfuhren. Die Ereignisstruktur enthalt Ortsereignisse und Schnittereignisse. Ortsereignis-

se sind die Voronoi-Orte. Diese werden durch die Transformation auf sich selbst abgebildet,

so daß die transformierten Orte mit den untransformierten Orten identisch sind. Schnit-

tereignisse sind Schnittpunkte von Grenzen. Den Schnittpunkt zweier Grenzen erhalt man

auch, indem man den Schnittpunkt der zwei entsprechenden untransformierten Bisektoren

berechnet, und dann zur y-Koordinate dieses Schnittpunktes den Abstand zu einem der zu

den Bisektoren gehorenden Orte addiert. Auch die Sweep-Status-Struktur SSS kann untrans-

formierte Voronoi-Regionen und Bisektoren enthalten, die Transformation muß man aber bei

der search-Operation in Zeile 5) berucksichtigen.

7.2 Der Sweepline-Algorithmus fur das additiv gewich-

tete Voronoi-Diagramm

Fortune hat in dem Artikel [15] uber seinen Sweepline-Algorithmus auch gezeigt, daß man mit

der gleichen Sweepline-Technik auch das additiv gewichtete Voronoi-Diagramm berechnen

kann. Der entsprechende Abschnitt seines Artikels ist die Grundlage fur diesen Abschnitt.

Ich zitiere aus Fortunes Artikel und fasse die Ergebnisse zusammen.

Im letzten Kapitel haben wir das additiv gewichtete Voronoi-Diagramm definiert und einige

Eigenschaften aus dem Artikel von Sharir [34] besprochen. Sei hier wieder S eine Menge von

n Voronoi-Orten und wp das Gewicht des Ortes p ∈ S. Die Gewichte seien alle nichtnegativ.

Lemma 7.6.

Es seien p, q ∈ S, p 6= q und weder p dominiere q noch q dominiere p (zur Erinnerung: p

dominiert q, wenn |pq|+ wp ≤ wq). Es sei wp > wq. Bpq ist dann derjenige Ast der Hyperbel

mit den Brennpunkten p und q, welcher um p herum verlauft.

(1) Sei |qy −py| > wp−wq. Dann verlauft eine Asymptote von Bpq nach links und die andere

nach rechts.

(2) Sei |qy − py| = wp − wq. Dann hat Bpq eine vertikale Asymptote und eine nichtvertikale

Asymptote.

Page 81: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

7.2 Der Sweepline-Algorithmus fur das additiv gewichtete Voronoi-Diagramm 75

(3) Sei |qy −py| > wp −wq. Dann verlaufen beide Asymptoten von Bpq nach links, oder beide

Asymptoten verlaufen nach rechts.

Die Transformationsabbildung ∗ berucksichtigt im additiv gewichteten Fall auch die Gewich-

te der Voronoi-Orte.

Definition 7.6. Die Hilfsabbildungen ∗p fur p ∈ S und die Abbildung ∗ sind wie folgt

definiert:

∗p : R2 → R2 ∗p(z) : =

(zx, zy + |pz| + wp

)(7.9)

∗ : R2 → R2 ∗(z) : =

(zx, zy + min

p∈S

(|pz| + wp

))(7.10)

Fur ein Voronoi-Ort p ∈ S ist ∗p(p) = (px, py + wp) und ∗q(p) = (px, py + |qp| + wq). Wenn

∗q(p)y ≤ ∗p(p)y mit q 6= p, dann ist |qp| + wq ≤ wp, d.h. q dominiert p. Hieraus folgt, daß p

dann von einem anderen Ort dominiert wird, wenn ∗(p)y < py + wp oder ∗(p)y = py + wp =

∗q(p)y mit einem q 6= p.

Lemma 7.7. Es sei p ∈ S ein Ort, der nicht dominiert wird. Dann ist Rp 6= ∅ und p∗ =

(px, py + wp) ist das eindeutig bestimmte Minimum von R∗p, d.h.

p∗ ∈ R∗p und ∀z ∈ R∗

p, z 6= p∗ : p∗y < zy

Lemma 7.8.

Es seien p, q ∈ S, p 6= q und weder p dominiere q noch q dominiere p.

(1) Sei qy + wq > py + wp. Dann ist (qx, qy + wq) das eindeutig bestimmte Minimum von

∗q(Bpq) und ∗q(Bpq) hat genau eine horizontale Tangente. Diese Tangente beruhrt ∗q(Bpq)

im Punkt (qx, qy + wq).

(2) Sei qy + wq = py + wp. Dann hat ∗q(Bpq) keine horizontalen Tangenten. ∗q(Bpq) verlauft

oberhalb der Geraden y = qy +wq und hat einen offenen Endpunkt bei((px + qx)/2, qy +wq

).

Der Sweepline-Algorithmus fur den additiv gewichteten Fall ist dem Algorithmus 7.1 sehr

ahnlich. Es gibt drei kleine Unterschiede:

(1) Der erste Unterschied ist, daß ein Voronoi-Ort p ∈ S durch die Abbildung ∗p nicht mehr

auf sich selbst abgebildet wird, sondern entsprechend seinem Gewicht nach oben verschoben

wird. Die Koordinaten eines Ortsereignisses zu dem Voronoi-Ort p ∈ S seien jetzt ∗p(p) =

(px, py + wp) anstatt p.

(2) Der zweite Unterschied ist, daß beim Auftreten eines Ortsereignisses getestet werden

muß, ob der neue Ort von keinem anderen Ort dominiert wird. Dieser Test ist, wie wir

gesehen haben, ein Nebenprodukt der Transformationsabbildung ∗.

Page 82: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

76 7. Berechnung des Voronoi-Diagramms

(3) Der dritte Unterschied betrifft die Initialisierung von SSS und ES. Nachdem SSS mit z.B.

(R∗p1

, C+p1p2

, R∗p2

. . . , R∗pk−1

, C+pk−1pk

, R∗pk

) initialisiert wurde, muß man noch die Schnittpunkte

der Grenzen mit den jeweiligen Nachbarngrenzen in SSS berechnen und ggfs. in ES einfugen.

Im klassischen Fall ist dieses nicht notwendig, weil dort die Grenzen vertikale Halbgeraden

sind. Diese konnen sich naturlich nicht schneiden, da sie alle parallel verlaufen.

Der Algorithmus berechnet das transformierte additiv gewichtete Voronoi-Diagramm V ∗. Er

benutzt dazu die folgenden Datenstrukturen:

• Die Eingabe ist eine Menge S von n gewichteten Voronoi-Orten.

• Die Ausgabe ist das transformierte Voronoi-Diagramm V ∗ als Menge von Bisektoren

und Knoten. Jeder Bisektor ist mit den Endpunkten der entsprechenden Kante mar-

kiert.

• Die Ereignisstruktur (ES) enthalt die Haltepunkte der Sweepline. Dieses sind die Orts-

und Schnittereignisse in Sweeprichtung geordnet. Anders als im klassischen Fall tritt

das Ortsereignis zu dem Voronoi-Ort p ∈ S nicht am Punkt p ein, sondern am Punkt

(px, py + wp). Zu einem Punkt der Ebene konnen mehrere Ereignisse existieren und in

ES enthalten sei. Die Ordnung dieser gleichzeitigen Ereignisse ist unwichtig.

• Die Sweep-Status-Struktur (SSS) speichert die aktuell von der Sweepline geschnitte-

nen transformierten Regionen und Grenzen geordnet von links nach rechts. SSS ist

eine Folge (R∗1, C1, R

∗2, . . . , R

∗k−1, Ck−1, R

∗k), die abwechselnd Regionen von V ∗ und die

entsprechenden Grenzen zwischen den Regionen enthalt. Regionen konnen mehrfach

in der Sweep-Status-Struktur vorkommen.

Algorithmus 7.2. (Berechnung von V ∗)

1) Initialisiere SSS und ES.

2) while not empty(ES) do

3) p := deletemin(ES);

4) if (p ist ein Ortsereignis) then

5) Suche eine Region R∗q in SSS, welche den Punkt (px, py + wp) enthalt.

(Wenn (px, py + wp) auf einer Grenze liegt, dann gibt es zwei solcher Regionen.

Man kann sich dann eine der beiden aussuchen.)

Wenn q den Ort p dominiert, dann gehe zum Anfang der while-Schleife.

6) Losche ggfs. den Schnittpunkt zwischen der linken und der rechten Grenze von

R∗q aus ES.

7) Erzeuge den Bisektor B∗pq.

Page 83: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

7.2 Der Sweepline-Algorithmus fur das additiv gewichtete Voronoi-Diagramm 77

8) Ersetze in SSS die Region R∗q durch die Folge R∗

q , C−pq, R

∗p, C

+pq, R

∗q .

9) Berechne den Schnittpunkt von C−pq mit seinem linken Nachbarn in SSS und

fuge diesen ggfs. in ES ein.

10) Berechne den Schnittpunkt von C+pq mit seinem rechten Nachbarn in SSS und

fuge diesen ggfs. in ES ein.

11) else if (p ist ein Schnittereignis) then

12) Sei p der Schnittpunkt zwischen den Grenzen Cqr und Crs.

13) Losche ggfs. den Schnittpunkt von Cqr mit seinem linken Nachbarn in SSS

und den Schnittpunkt von Crs mit seinem rechten Nachbarn in SSS aus ES.

14) Erzeuge den Bisektor B∗qs.

15) Ersetze in SSS die Folge Cqr, R∗r , Crs durch die Grenze Cqs.

16) Berechne den Schnittpunkt von Cqs mit seinem linken Nachbarn in SSS und

fuge diesen ggfs. in ES ein.

17) Berechne den Schnittpunkt von Cqs mit seinem rechten Nachbarn in SSS und

fuge diesen ggfs. in ES ein.

18) Markiere p als Knoten auf B∗qr, B∗

rs und B∗qs.

19) end; (* if *)

20) end; (* while *)

Die Initialisierung von SSS und ES fuhre man wie folgt durch:

Sei S = p1, . . . , pn mit ∗pi(pi) < ∗pj

(pj) fur i < j, d.h. pi.y + wpi< pj.y + wpj

oder

pi.y +wpi= pj.y +wpj

und pi.x < pj .x. Sei k = maxj : pj.y +wpi= p1.y +wp1. Erzeuge die

Bisektoren B∗p1p2

, . . . , B∗pk−1pk

und setze SSS=(R∗p1

, C+p1p2

, R∗p2

. . . , R∗pk−1

, C+pk−1pk

, R∗pk

). Erzeu-

ge Ortsereignisse zu den ubriggebliebenen Voronoi-Orten pk+1, . . . , pn und initialisiere ES

hiermit. Berechne die Schnittpunkte der Grenzen in SSS mit den jeweiligen Nachbarngrenzen

und fuge sie ggfs. in ES ein.

Satz 7.9. Man kann den Algorithmus 7.2 so implementieren, daß man eine Laufzeit von

O(n log n) und ein Speicherplatzbedarf von O(n) erreicht.

Der Sweepline-Algorithmus von Fortune ist der erste Algorithmus, mit dem man das additiv

gewichtete Voronoi-Diagramm in der Zeit O(n log n) konstruieren kann. Ein alterer Algorith-

mus zur Konstruktion des additiv gewichteten Voronoi-Diagramms stammt von Sharir [34].

Hierbei handelt es sich um einen O(n log2 n)-Zeit divide-and-conquer Algorithmus, welcher

zudem noch wegen der komplizierten Details des merge-Schritts schwieriger zu implementie-

ren ist.

Satz 7.10. Man kann den Algorithmus 7.2 so modifizieren, daß er gleich V anstatt V ∗

berechnet.

Page 84: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

78 7. Berechnung des Voronoi-Diagramms

7.3 Eine geometrische Interpretation der Transforma-

tionsabbildung”∗“

Von Edelsbrunner und Seidel [12] stammt eine dreidimensionale geometrische Interpretation

des Voronoi-Diagramms. Fortune [15] verwendet sie, um seinen Sweepline-Algorithmus zu

veranschaulichen. Hiermit wird die Bedeutung der Transformationsabbildung”∗“ und die

Funktionsweise des Sweepline-Algorithmus sehr verstandlich erklart.

Dieser Abschnitt ist eine Zusammenfassung und Erlauterung des entsprechenden Abschnitts

aus [15]. Weitere Grundlagen fur diesen Abschnitt sind [3, 24].

In [3] wird eine intuitive Betrachtungsweise der Voronoi-Diagramme erwahnt (”expanding

waves“-Betrachtungsweise):

Satz 7.11. Sei z ∈ R2 ein Punkt in der Ebene, und S sei eine Menge von n Voronoi-Orten

im R2 . Kp(t) : p ∈ S sei eine Menge von n Kreisen, Kp(t) = x ∈ R

2 : |px| = t.Die Kreise haben die Voronoi-Orte als Mittelpunkte und den gemeinsamen Radius r = t

zum Zeitpunkt t. Wir beobachten, wie sich die Kreise vom Zeitpunkt t = 0 aus langsam mit

gleicher Geschwindigkeit vergroßern. Dann gilt:

(1) Der Kreis Kp(t) erreicht den Punkt z als erster genau dann, wenn z im Innern der

Voronoi-Region Rp liegt.

(2) Die Kreise Kp(t), Kq(t) erreichen gleichzeitig den Punkt z als erste genau dann, wenn

z im Innern der Voronoi-Kante epq liegt.

(3) Die Kreise Kp1(t), . . . , Kpk(t) mit k ≥ 3 erreichen gleichzeitig den Punkt z als erste

genau dann, wenn z ein Voronoi-Knoten ist, an dem die Regionen Rp1 , . . . , Rpkangrenzen.

Wir ubertragen diese dreidimensionale Betrachtungsweise in den R3 . Dazu interpretieren

wir die z-Achse als Zeitachse. Die xy-Ebene im R3 entspricht der euklidischen Ebene R

2 .

Die Kreise (Kp(t))p∈S breiten sich von den Voronoi-Orten aus und steigen dabei die z-Achse

hoch. Sie erzeugen dabei Kegel mit Innenwinkel π/2, welche auf der xy-Ebene senkrecht

stehen. Die Spitzen dieser Kegel liegen in den Voronoi-Orten.

Definition 7.7. Der Kegel Gp eines Voronoi-Ortes p ∈ S ist der Graph der Abstandsfunk-

tion dp.

Gp =(

x, y, dp(x, y))

: (x, y) ∈ R2

(7.11)

Page 85: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

7.3 Eine geometrische Interpretation der Transformationsabbildung”∗“ 79

C sei die untere Kontur der Flachen (Gp)p∈S, d.h.

C =

(x, y, min

p∈S

(dp(x, y)

)): (x, y) ∈ R

2

(7.12)

=(

x, y, d(x, y))

: (x, y) ∈ R2

Die Menge D enthalte diejenigen Punkte aus C, welche auf mindestens zwei Kegeln liegen.

D =(

x, y, z) ∈ C : es gibt p 6= q mit z = dp(x, y) = dq(x, y)

(7.13)

=(

x, y, z) ∈ R3 : (x, y) ∈ V (S) und z = d(x, y)

Das Voronoi-Diagramm V (S) ist dann gleich der Projektion von D auf die xy-Ebene.

Satz 7.12. Es sei π12 die Projektion des R3 auf die xy-Ebene, d.h.

π12 : R3 → R2 , π12(x, y, z) = (x, y).(7.14)

Dann gilt:

Bpq = π12(Gp ∩ Gq)(7.15)

Rp = π12(Gp ∩ C)(7.16)

V (S) = π12(D)(7.17)

Bemerkung. Dieser Ansatz von Edelsbrunner und Seidel ist nicht auf die euklidische Metrik

beschrankt. Wir haben zur Definition der Flachen (Gp)p∈S die Abstandsfunktionen dp(z) :=

|pz| benutzt. dp : R2 → R+ ordnet jedem Punkt z der Ebene den Wert dp(z) als Abstand

zu p zu. Entscheidend ist die Stetigkeit der Funktionen (dp)p∈S, so daß die Graphen (Gp)p∈S

Flachen im R3 sind und man C als untere Kontur dieser Flachen konstruieren kann. Man kann

deshalb mit diesem Ansatz das Voronoi-Diagramm von S bezuglich einer Familie (fp)p∈S von

stetigen Funktionen R2 → R definieren:

Gp =(

x, y, fp(x, y))

: (x, y) ∈ R2

C =

(x, y, min

p∈S

(fp(x, y)

)): (x, y) ∈ R

2

D =

(x, y, z

) ∈ C : es gibt p 6= q mit z = dp(x, y) = dq(x, y)

V (S) := π12(D)

Bemerkung. Aus Satz 7.12 erhalt man offenbar sofort einen z-Buffer-Algorithmus zur Dar-

stellung von Voronoi-Diagrammen am Bildschirm.

Page 86: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

80 7. Berechnung des Voronoi-Diagramms

Wenn man nicht langs der z-Achse sondern schrag entlang der Geraden x = 0, y + z = 0projiziert, dann erhalt man das transformierte Voronoi-Diagramm V ∗(S).

Satz 7.13. Es sei π∗12 die Projektion des R

3 auf die xy-Ebene langs der Geraden x =

0, y + z = 0, d.h.

π∗12 : R3 → R

2 , π∗12(x, y, z) = (x, y + z).(7.18)

Dann gilt:

∗p(Bpq) = π∗12(Gp ∩ Gq)(7.19)

R∗p = π∗

12(Gp ∩ C)(7.20)

V ∗(S) = π∗12(D)(7.21)

Satz 7.13 liefert eine geometrische Interpretation des Fortune-Algorithmus:

Sei die aktuelle Position der Sweepline die Gerade y = c (in der xy-Ebene). Sei Pc die Ebene

y + z = c. Dann ist der Teil von V ∗(S), welcher momentan von der Sweepline geschnitten

wird, gleich der schragen Projektion π∗12(Pc ∩D). Wir konnen uns den Fortune-Algorithmus

deshalb auch so vorstellen, daß eine Sweepebene parallel zur Ebene y + z = 0 durch den R3

lauft.

In dem Moment, wo die Sweepebene einen Kegel Gp erreicht, ist sie tangent zu dem Kegel,

so daß die schrage Projektion des Durchschnitts zwischen der Sweepebene und dem Kegel

gleich dem Ort p ist. Hierdurch wird auch klar, weshalb eine transformierte Region R∗p erst

dann in der Sweep-Status-Struktur erscheint, wenn die Sweepline den Ort p erreicht.

Im additiv-gewichteten Fall ist Gp = (x, y, dp(x, y) + wp) : (x, y) ∈ R2 ein um wp in

z-Richtung verschobener Kegel.

7.4 Berechnung des Airline-Voronoi-Diagramms

Sei G = (V, cost) ein positiver, symmetrischer Graph mit Knotenmenge V = v1, . . . , vm ⊂R

2 , und S = p1, . . . , pn ⊂ R2 sei eine Menge von n Voronoi-Orten in der Ebene.

Im letzten Kapitel haben wir das Airline-Voronoi-Diagramm AV (S, G) von S bzgl. der

Airline-Metrik von G definiert als ein gefarbtes, additiv gewichtetes Voronoi-Diagramm. Es

sei V (S) das dem Airline-Voronoi-Diagramm AV (S, G) zugrunde liegende ungefarbte, addi-

tiv gewichtete Voronoi-Diagramm. Hierbei ist S := S ∪V = p1, . . . , pn, v1, . . . , vm, und fur

Page 87: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

7.4 Berechnung des Airline-Voronoi-Diagramms 81

die Gewichtsfunktion w gilt:

w : S → R+

w(z) :=

0 falls z ∈ S

minadG(z, p) : p ∈ S falls z ∈ V \ S

Das gefarbte Diagramm AV (S, G) erhalten wir aus dem ungefarbten Diagramm V (S), indem

wir diejenigen Kanten entfernen, welche zwei gleichfarbige Regionen voneinander abgrenzen.

Zum Entfernen der Kanten benotigen wir die Funktion f , welche jeden Flughafen auf den

nachstgelegenen Voronoi-Ort abbildet.

f : S → S

w(z) :=

z falls z ∈ S

piz falls z ∈ V \ S und iz = mini ∈ 1, . . . , n : adG(z, pi) = w(z)

Man kann das Airline-Voronoi-Diagramm AV (S, G) nun wir folgt konstruieren:

(1) Zuerst berechne man die Funktionen w und f , d.h. man berechne(w(v)

)v∈V

und(f(v)

)v∈V

.

Hierzu benotigt man die Airline-DistanzenadG(v, p) : v ∈ V, p ∈ S

. Mit dem Al-

gorithmus 5.4 kann man zu jedem p ∈ S die MengeadG(v, p) : v ∈ V in O(m2)-

Zeit berechnen. Durch n-fache Anwendung dieses Algorithmus, kann man dann die MengeadG(v, p) : v ∈ V, p ∈ S

und damit die Funktionen w und f in O(nm2)-Zeit berechnen.

Dieses kann man so implementieren, daß man einen Speicherplatzbedarf von O(n + m) er-

reicht.

(2) Danach konstruiere man das ungefarbte, additiv gewichtete Voronoi-Diagramm V (S)

mit dem Algorithmus 7.2. Diesen kann man nach Satz 7.9 so implementieren, daß man eine

Laufzeit von O((n + m) log(n + m)) und einen Speicherplatzbedarf von O(n + m) erreicht.

(3) Zuletzt loscht man diejenigen Kanten und Knoten, welche beim Ubergang von V (S) zu

AV (S, G) wegfallen. Dieses kann man in der Zeit O(n + m) durchfuhren.

Satz 7.14. Man kann das Airline-Voronoi-Diagramm so berechnen, daß man eine Laufzeit

von O(n logn + nm2) und ein Speicherplatzbedarf von O(n + m) erreicht.

Page 88: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

82 7. Berechnung des Voronoi-Diagramms

Page 89: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

Kapitel 8

Abschließende Bemerkungen und

offene Probleme

Naturlich kann eine einzelne wissenschaftliche Arbeit kein großeres Gebiet bis ins letzte Detail

behandeln. Wir haben uns in dieser Arbeit damit beschaftigt, wie man aus einem metrischen

Raum (X, d) und einem Distanzgraphen G, dessen Knoten zugleich Punkte dieses metrischen

Raumes sind, einen weitere Metrik adG,d konstruiert. Diese neue Metrik soll ausdrucken, daß

man die Kanten des Graphen als zusatzliche Verbindungen von Punkten in diesem Raum

auffaßt. Hierdurch verkurzt sich der Abstand von Punktepaaren.

Auf diese Art erhalt man eine Metrik, die sowohl mit der ursprunglichen Metrik als auch

mit der Kostenfunktion des Graphen”moglichst gut vertraglich“ ist. Diese Aussage haben

wir durch dem Satz 4.5 prazisiert.

Viel Information, welche in der alten Metrik und in der Kostenfunktion des Graphen steckt,

ist auch in der neuen Metrik enthalten. Eine interessante Frage ist nun, ob und ggfs. wie

man aus der neuen Metrik die alte Metrik und den Graphen zuruckgewinnen kann.

Wir haben uns besonders intensiv mit dem Fall beschaftigt, in dem der metrische Raum

(X, d) die euklidische Ebene ist. Fur diesen Fall haben wir untersucht, wie man das zugehorige

Airline-Voronoi-Diagramm berechnen kann. Eine offenes Problem ist die Berechnung der

Airline-Voronoi-Diagramme, wenn andere metrischen Raume zugrunde liegen. Hiermit meine

ich insbesondere den euklidischen Raum R3 und die Kugeloberflache S2 := (x, y) : x2+y2 =

1 ⊂ R3 .

Eine andere Moglichkeit zur weiteren Untersuchung der Airline-Voronoi-Diagramme ist die

Betrachtung von stochastischen Eigenschaften, wenn man annehmen kann, daß die Voronoi-

Orte oder Flughafen zufallig verteilt sind. Vielleicht erhalt man dann ein effizientes randomi-

83

Page 90: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

84 8. Abschließende Bemerkungen und offene Probleme

siertes inkrementelles Verfahren zur Konstruktion des Airline-Voronoi-Diagramms, welches

sich auch als on-line-Verfahren eignet, also fur Situationen, in denen Orte und Flughafen

nachtraglich hinzugefugt oder entfernt werden.

Fur die Bewegungsplanung und Kollisionsvermeidung von Robotersystemen ist das dynami-

sche Verhalten von gefarbten additiv gewichteten Voronoi-Diagrammen wichtig. Man konn-

te untersuchen, wie sich die Voronoi-Diagramme verandern, wenn einzelne Orte sich auf

bestimmten Kurven bewegen, z.B. Geraden oder Kreise.

Obwohl wir uns auch mit Anwendungen der Voronoi-Diagramme beschaftigt haben, haben

wir nur kurz erwahnt, daß es auch Anwendungen außerhalb der Informatik gibt.

Eine weitere offene Frage ist, wie man Algorithmen zur Konstruktion der Diagramme paralle-

lisieren kann, so daß bei geeigneter Hardware die Berechnung schneller durchgefuhrt werden

kann.

Page 91: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

Anhang A

Die Java-Programme zur

Veranschaulichung der

Voronoi-Diagramme

Ich habe zwei Java-Programme entwickelt zur Veranschaulichung des additiv gewichteten

Voronoi-Diagramms und des Airline-Voronoi-Diagramms. Zur Berechnung dieser Diagramme

habe ich die Algorithmen aus dem 7. Kapitel implementiert.

In diesem Kapitel erklare ich die Bedienung dieser Programme und deren Aufbau. Danach

werden wir einige Schwierigkeiten besprechen, welche sich bei der Implementierung der Al-

gorithmen ergeben. Hierzu stelle ich meine Losungswege vor.

A.1 Das Programm”VoroCircles“

A.1.1 Einfuhrung

Das Programm”VoroCircles“ dient zur Veranschaulichung der additiv gewichteten Voronoi-

Diagramme.

Zur Erinnerung: Additiv gewichtete Punktmengen kann man als Kreisscheiben darstellen.

Sei S eine Menge von n Voronoi-Orten in der Ebene. Zu jedem Ort p ∈ S sei ein additives

Gewicht wp gegeben. Es sei wmax = maxwp : p ∈ S, rp = wmax − wp, und Kp = z ∈ R2 :

|pz| ≤ rp sei die abgeschlossene Kreisscheibe um das Zentrum p mit dem Radius rp. Dann

ist das additiv gewichtete Voronoi-Diagramm von S identisch mit dem Voronoi-Diagramm

der Kreisscheiben Kp : p ∈ S.

85

Page 92: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

86 A. Die Java-Programme zur Veranschaulichung der Voronoi-Diagramme

Abbildung A.1: Das Hauptfenster von VoroCircles.

A.1.2 Die Bedienung von”VoroCircles“

Das Hauptfenster von VoroCircles besteht aus einer Zeichenflache und einer Steuerungslei-

ste. In der Zeichenflache werden die Kreisscheiben und das zugehorige Voronoi-Diagramm

dargestellt. Der Benutzer kann einzelne Kreisscheiben hinzufugen, entfernen oder verschie-

ben. Er kann auch den Radius einer Kreisscheibe verandern. Das Programm berechnet nach

jeder Veranderung in der Zeichenflache automatisch das zugehorige Voronoi-Diagramm und

zeichnet die Voronoi-Kanten in die Zeichenflache ein.

Zur besseren Unterscheidung werden die einzelnen Objekte verschiedenfarbig gezeichnet. Die

Kanten werden blau gezeichnet. Zur Darstellung der Kreisscheiben werden drei Farben be-

nutzt. Die Kreisscheiben selber werden gelb dargestellt. Zusatzlich werden die Mittelpunkte

der Kreisscheiben als rote Punkte eingezeichnet, und die Rander der Kreisscheiben werden

grun gekennzeichnet.

Die Steuerungsleiste am unteren Bildschirmrand enthalt zwei Gruppen von Markierungs-

feldern und eine Schaltflache. Auf der rechten Seite befindet sich eine Gruppe von sechs

Markierungsfeldern. Die Markierungsfelder sind beschriftet mit den Werten”0“,

”10“,

”20“,

”30“,

”40“ und

”50“. Hier kann man einen Wert fur den Radius einstellen, bevor man eine

Page 93: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

A.1 Das Programm”VoroCircles“ 87

Kreisscheibe hinzufugt. Auf der linken Seite befindet sich eine Gruppe von zwei Markie-

rungsfeldern. Wenn das Markierungsfeld”Add Site“ aktiv ist, dann kann der Benutzer in

der Zeichenflache Kreisscheiben hinzufugen, entfernen oder verschieben. Wenn das Markie-

rungsfeld”Change Radius“ aktiv ist, dann kann der Benutzer die Radien der Kreisscheiben

vergroßern oder verkleinern, oder er kann Kreisscheiben verschieben. Die Schaltflache”Clear“

dient zum Loschen des Inhalts der Zeichenflache.

Im”Add Site“-Modus kann man eine Kreisscheibe hinzufugen, indem man den Mauszeiger

in die Zeichenflache bewegt und die linke Maustaste druckt. Die Kreisscheibe wird dann

so plaziert, das sich der Mittelpunkt am Ort des Mauszeigers befindet. Zum Entfernen ei-

ner Kreisscheibe bewegt man den Mauszeiger in die zugehorige Voronoi-Region und druckt

dann die rechte Maustaste. Wenn man den Mauszeiger auf den rot eingezeichneten Mittel-

punkt einer Kreisscheibe bewegt, dann kann man diese mit Hilfe der linken Maustaste in der

Zeichenflache verschieben.

Im”Change Radius“-Modus kann man die Radien der Keisscheiben um funf Pixeleinhei-

ten vergroßern oder verkleinern, indem man die linke bzw. rechte Maustaste druckt. Man

kann allerdings nur Kreisscheiben mit einem Radius kleiner 50 vergroßern und Kreisscheiben

mit einem Radius großer 0 verkleinern. Es wird diejenige Kreisscheibe ausgewahlt, dessen

Mittelpunkt dem Mauszeiger am nachsten ist. Wenn sich der Mauszeiger genau uber einen

Mittelpunkt befindet, dann kann man wie im”Add Site“-Modus Kreisscheiben verschie-

ben. Man bachte daher, daß sich zum Vergroßern oder Verkleinern von Kreisscheiben der

Mauszeiger nicht genau uber dem Mittelpunkt einer Kreisscheibe befinden darf.

A.1.3 Aufbau und Installation von”VoroCircles“

Ich habe VoroCircles mit der Java-Version JDK 1.1.6 entwickelt. Das Programm besteht aus

dem Ordner “VoroCircles“. Dieser Ordner enthalt die folgenden Dateien:

Ausgabe.java Punkt.java

Edge.java Site.java

EdgeList.java SiteList.java

Main.java VoroSweep.java

MainCanvas.java WStueck.java

MainInfo.java

Diese Dateien enthalten den Quelltext der gleichnamigen Klassen. Zum Ausfuhren des Pro-

gramms muß man zunachst das JDK installieren. Danach kann man das Programm mit

Page 94: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

88 A. Die Java-Programme zur Veranschaulichung der Voronoi-Diagramme

dem Befehl”javac Main.java“ kompilieren. Hierdurch werden die entsprechenden Bytecode-

Dateien mit der Endung”*.class“ erzeugt. Gestartet wird das Programm mit dem Befehl

”java Main“.

Die Main-Klasse bildet den Hauptteil des Programms. Hier wird der Aufbau des Haupt-

fensters definiert und die globalen Variablen verwaltet. Die Main-Klasse enthalt die main-

Methode zum Starten des Programms, Methoden zum Abfragen der Zustande der Markie-

rungsfelder und eine Methode, welche das Action-Ereignis behandelt, daß beim anklicken

der Clear-Schaltflache erzeugt wird.

Die MainCanvas-Klasse ist eine Subklasse der Canvas-Klasse von Java. Die Main-Klasse

erzeugt ein Objekt der MainCanvas-Klasse. Dieses Objekt ist die Zeichenflache des Pro-

gramms. Die MainCanvas-Klasse enthalt Methoden zum Neuzeichnen und Aktualisieren des

Inhalts der Zeichenflache sowie Methoden zur Behandlung von Maus-Ereignisse, welche beim

Hinzufugen, Entfernen oder Verschieben von Kreisscheiben entstehen.

Die MainInfo-Klasse enthalt Methoden zur Ausgabe von Debugging-Informationen. Diese

Klasse wurde fur die Entwicklung des Programms verwendet, in der Endversion ist diese

Klasse inaktiv.

Die Ausgabe-Klasse enthalt Methoden zum Zeichnen der Kreisscheiben und Voronoi-Kanten.

Die Punkt-Klasse dient zur Modellierung von Punkten in der Ebene. Sie enthalt zwei Instan-

zenvariablen”x“ und

”y“ vom Typ

”double“ zum Speichern der Koordinaten des jeweiligen

Punktes. Desweiteren enthalt sie eine Methode zum Vergleichen zweier Punkte bzgl. der auf

Seite 68 beschriebenen lexikographischen Ordnung und eine Methode zum Berechnen des

Abstandes zweier Punkte.

Die Site-Klasse dient zur Modellierung der additiv gewichteten Voronoi-Orte. Sie ist eine

Subklasse der Punkt-Klasse und enthalt zusatzlich eine Instanzenvariable zum Speichern

des additiven Gewichtes des jeweiligen Ortes. Desweiteren enthalt sie eine Methode zum

Testen, ob ein Voronoi-Ort einen zweiten Voronoi-Ort dominiert.

Die Edge-Klasse dient zur Modellierung der Bisektoren und Voronoi-Kanten. Sie enthalt

Instanzenvariablen zum Speichern der zugehorigen Voronoi-Orte und der Endpunkte der

Kanten. Desweiteren enthalt sie Methoden zur Berechnung von Schnittpunkten zwischen

den Bisektoren und zwischen einem Bisektor und einer Geraden.

Objekte der SiteList-Klasse sind Behalter zum Speichern einer Menge von Site-Objekten.

Die Main-Klasse erzeugt ein Objekt der SiteList-Klasse. Dieses Objekt verwaltet die Menge

der vom Benutzer eingegebenen Voronoi-Orte.

Page 95: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

A.2 Das Programm”VoroAirline“ 89

Objekte der EdgeList-Klasse sind Behalter zum Speichern einer Menge von Edge-Objekten.

Die Main-Klasse erzeugt ein Objekt der EdgeList-Klasse. Dieses Objekt verwaltet die Menge

der vom Programm berechneten Voronoi-Kanten.

Die VoroSweep-Klasse dient zur Implementierung des Sweepline-Algorithmus von Fortune

fur additiv gewichtete Voronoi-Diagramme (Algorithmus 7.2). Der Algorithmus benotigt

als Eingabe ein Objekt der SiteList-Klasse. Das Ergebnis der Berechnung ist ein Objekt

der EdgeList-Klasse. Zur Berechnung baut der Algorithmus eine Ereignisstruktur und eine

Sweep-Status-Struktur auf. Dieses geschieht innerhalb der VoroSweep-Klasse.

Die Sweep-Status-Struktur enthalt Objekte der WStueck-Klasse. Die WStueck-Klasse enthalt

außerdem einige Hilfsfunktionen fur den Fortune-Algorithmus.

A.2 Das Programm”VoroAirline“

A.2.1 Einfuhrung

Das Programm VoroAirline dient zur Veranschaulichung der Airline-Voronoi-Diagramme.

Zur Erinnerung: Wir haben das Airline-Voronoi-Diagramm zuruckgefuhrt auf das additiv

gewichtete Voronoi-Diagramm. Sei S eine Menge von n Voronoi-Orten in der Ebene, und

G sei derjenige Graph, dessen Airline-Metrik wir als Abstandsbegriff zugrunde legen. Es

sei V die Knotenmenge von G, E die Kantenmenge von G, cost die Kostenfunktion von G

und S := S ∪ V . Das Airline-Voronoi-Diagramm AV (S, G) ist gleich dem gefarbten additiv

gewichteten Voronoi-Diagramm V (S) bzgl. der Gewichtsfunktion w : S → R+ und der

Zuordnungsfunktion f : S → S. Das Gewicht eines Flughafens v ∈ V ist gleich dem Airline-

Abstand zum nachstliegenden Voronoi-Ort, d.h. w(v) = minadG(v, p) : p ∈ S. Im Fall

p ∈ S sei w(p) = 0. Die Zuordnungsfunktion f bildet jeden Flughafen v ∈ V auf den

nachstgelegenen Voronoi-Ort ab.

A.2.2 Die Bedienung von”VoroAirline“

Das Hauptfenster von VoroAirline besteht wie bei VoroCircles aus einer Zeichenflache und

einer Steuerungsleiste. In der Zeichenflache werden die Voronoi-Orte, Flughafen, Flugverbin-

dungen und das zugehorige Voronoi-Diagramm dargestellt. Zur Vereinfachung der Eingabe

der Flugverbindungen setzen wir voraus, daß alle Flugzeuge gleich schnell fliegen. Dann

existiert ein Faktor cspeed, um den die Flugverbindungen den Abstand der entsprechenden

Page 96: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

90 A. Die Java-Programme zur Veranschaulichung der Voronoi-Diagramme

Abbildung A.2: Das Hauptfenster von VoroAirline.

Page 97: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

A.2 Das Programm”VoroAirline“ 91

Flughafen verkurzen, d.h. cost(v, w) = |vw|/cspeed falls (v, w) ∈ E. Der implementierte

Algorithmus zur Zuruckfuhrung des Airline-Voronoi-Diagramms auf das additiv gewichte-

te Voronoi-Diagramm macht von dieser Vereinfachung und der damit verbundenen Ein-

schrankung der moglichen Eingabedaten keinen Gebrauch.

Der Benutzer kann in der Zeichenflache einzelne Voronoi-Orte oder Flughafen hinzufugen,

entfernen oder verschieben. Er kann selbstverstandlich auch Flugverbindungen hinzufugen

oder entfernen. Das Programm berechnet nach jeder Veranderung in der Zeichenflache auto-

matisch das zugehorige Voronoi-Diagramm und zeichnet die Voronoi-Kanten in die Zeichen-

flache ein.

Zur besseren Unterscheidung werden die einzelnen Objekte verschiedenfarbig gezeichnet. Die

Voronoi-Orte sind rot, die Flughafen und Flugverbindungen schwarz. Die Kanten des Airline-

Voronoi-Diagramms weden blau gezeichnet. Zusatzlich sind noch diejenigen Kanten, welche

beim Ubergang vom ungefarbten additiv gewichteten Voronoi-Diagramm zum gefarbten ad-

ditiv gewichteten Voronoi-Diagramm entfallen, grau eingezeichnet.

Die Steuerungsleiste enthalt am linken Rand eine Gruppe von drei Markierungsfeldern. Wenn

das Markierungsfeld”Add or remove site“ aktiv ist, dann kann der Benutzer in der Zeichen-

flache Voronoi-Orte hinzufugen, entfernen oder verschieben. Entsprechend kann der Benutzer

Flughafen hinzufugen, entfernen oder verschieben, wenn das Markierungsfeld”Add or remo-

ve airport“ aktiv ist, und wenn das Markierungsfeld”Add or remove connection“ aktiv ist,

dann kann der Benutzer Flugverbindungen hinzufugen oder entfernen.

Links von der Mitte befinden sich drei Schaltflachen. Die Schaltflache”Clear“ dient zum

Loschen des Inhalts der Zeichenflache. Mit der Schaltflache”Remove all connections“ kann

man alle Flugverbindungen loschen. Die Schaltflache”Add all connections“ dient dazu, alle

moglichen Flugverbindungen zwischen den vorhandenen Flughafen hinzuzufugen. Hiermit

kann man den Graphen G vollstandig machen.

Rechts von der Mitte befinden sich ein Label-Objekt, eine Schaltflache und ein Textfeld. Das

Label-Objekt zeigt die Fluggeschwindigkeit cspeed an. Im Textfeld kann man einen neuen

Wert fur cspeed eingeben. Zulassig sind alle Zahlen ≥ 1. Die Schaltflache dient dazu, den im

Textfeld eingestellten Wert zu ubernehmen.

Am rechten Rand sind zwei Markierungsfelder. Hiermit kann man die Darstellung der Kanten

oder die Darstellung der Flugverbindungen unterdrucken.

Page 98: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

92 A. Die Java-Programme zur Veranschaulichung der Voronoi-Diagramme

A.2.3 Aufbau und Installation von”VoroAirline“

Ich habe auch VoroAirline mit der Java-Version JDK 1.1.6 entwickelt. Das Programm besteht

aus dem Ordner “VoroAirline“. Dieser Ordner enthalt die folgenden Dateien:

AirportList.java MainInfo.java

Ausgabe.java Punkt.java

Edge.java Site.java

EdgeList.java SiteList.java

Main.java VoroSweep.java

MainCanvas.java WStueck.java

Diese Dateien enthalten den Quelltext der gleichnamigen Klassen. Zum Ausfuhren des Pro-

gramms muß man zunachst das JDK installieren. Danach kann man das Programm mit

dem Befehl”javac Main.java“ kompilieren. Hierdurch werden die entsprechenden Bytecode-

Dateien mit der Endung”*.class“ erzeugt. Gestartet wird das Programm mit dem Befehl

”java Main“.

Die Klassen entsprechen denen von VoroCircles. Teilweise sind sie sogar identisch.

Die Site-Klasse dient jetzt sowohl zur Modellierung der Voronoi-Orte als auch der Flughafen.

Dazu enthalt sie zusatzlich eine Instanzenvariable”color“ vom Typ

”Site“ und eine boolesche-

Instanzenvariable”active“. Die color-Variable dient zum Speichern der Werte der Zuord-

nungsfunktion. Die active-Variable gibt an, ob ein Flughafen dominiert wird.

Neu ist die AirportList-Klasse. Objekte dieser Klasse sind Behalter zum Speichern einer

Menge von Flughafen und der Flugverbindungen untereinander. Die Main-Klasse erzeugt

ein Objekt der AirportList-Klasse. Dieses Objekt verwaltet die Menge der vom Benutzer

eingegebenen Flughafen und Flugverbindungen. Desweiteren enthalt sie eine Methode, um

die Gewichtsfunktion w und die Zuordnungsfunktion f zu berechnen. Dieses geschieht genau

so, wie es im Kapitel uber die Berechnung des Airline-Voronoi-Diagramms beschrieben ist.

Dabei wird auch der Wert der Variable”active“ bestimmt.

Die VoroSweep-Klasse dient zur Berechnung des Airline-Voronoi-Diagramms nach dem For-

tune-Algorithmus fur additiv gewichtete Voronoi-Diagramme (Algorithmus 7.2). Der Algo-

rithmus benotigt als Eingabe ein Objekt der SiteList-Klasse und hier außerdem ein Objekt

der AirportList-Klasse. Das Ergebnis der Berechnung ist wieder ein Objekt der EdgeList-

Klasse.

Page 99: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

A.3 Schwierigkeiten bei der Implementierung 93

A.3 Schwierigkeiten bei der Implementierung

Das Thema dieser Diplomarbeit besteht aus zwei Teilen. Der erste Teil ist die Untersu-

chung der strukturellen Eigenschaften des Airline-Voronoi-Diagramms. Der zweite Teil ist

die Veranschaulichung des Airline-Voronoi-Diagramms durch ein Java-Programm. In diesem

Abschnitt beschreibe ich, welche Schwierigkeiten sich hierbei ergeben haben und wie ich

diese Schwierigkeiten uberwunden habe.

Im siebten Kapitel haben wir besprochen, wie man das Airline-Voronoi-Diagramm konstru-

ieren kann:

(1) Zuerst berechnet man die Gewichtsfunktion w : S → R+ und die Zuordnungsfunktion

f : S → S, d.h. man berechne(w(v)

)v∈V

und(f(v)

)v∈V

. Hierzu benotigt man die Airline-

DistanzenadG(v, p) : v ∈ V, p ∈ S

. Mit dem Algorithmus 5.4 kann man zu jedem p ∈ S

die MengeadG(v, p) : v ∈ V berechnen. Durch n-fache Anwendung dieses Algorithmus,

kann man dann die MengeadG(v, p) : v ∈ V, p ∈ S

und damit die Funktionen w und f

berechnen.

(2) Danach konstruiert man das ungefarbte, additiv gewichtete Voronoi-Diagramm V (S) mit

dem Fortune-Algorithmus 7.2.

(3) Zuletzt loscht man diejenigen Kanten und Knoten, welche beim Ubergang von V (S) zu

AV (S, G) wegfallen.

Die Schritte (1) und (3) sind einfach zu implementieren. Der Algorithmus 5.4 ist eine Anwen-

dung des Dijkstra-Algorithmus 5.3. Bei der Berechnung von w und f kann man gleichzeitig

schon feststellen, ob ein Flughafen v ∈ V dominiert wird durch den zugehorigen Voronoi-Ort

f(v) ∈ S oder durch einen anderen Flughafen. Flughafen, welche dominiert werden, habe

ich beim zweiten Schritt nicht berucksichtigt.

Schwierigkeiten ergaben sich beim zweiten Schritt, d.h. bei der Implementierung des Algo-

rithmus von Fortune fur additiv gewichtete Punktmengen.

Ziel meiner Software-Entwicklung im Rahmen dieser Diplomarbeit war es, ein Programm

”VoroAirline“ zur Veranschaulichung des Airline-Voronoi-Diagramms zu erhalten. Weil dieses

eine umfangreiche und komplizierte Aufgabe ist, bin ich etappenweise vorgegangen.

Zunachst habe ich den Fortune-Algorithmus fur den klassischen Fall, d.h. Punkte in der

Ebene unter Verwendung der euklidischen Metrik, implementiert (Algorithmus 7.1). Dieses

war relativ problemlos moglich. Allerdings beschreibt Fortune seinen Algorithmus in seinem

Artikel [15] sehr skizzenhaft, so daß man sich zur Implementierung viele eigene Gedanken

machen muß.

Page 100: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

94 A. Die Java-Programme zur Veranschaulichung der Voronoi-Diagramme

Als nachstes habe ich das Programm so verandert, daß es auch mit additiv gewichteten Orten

zurechtkommt. Hierbei gab es die bereits erwahnten Schwierigkeiten, auf welche wir noch

genauer eingehen werden. Das Ergebnis dieses Schrittes ist das Programm”VoroCircles“ zur

Veranschaulichung des additiv gewichteten Voronoi-Diagramms.

Zuletzt habe ich VoroCircles so verandert, daß das Programm zur Veranschaulichung des

Airline-Voronoi-Diagramms dient. Dieses war relativ einfach moglich, ohne daß sich Schwie-

rigkeiten ergaben. Das Ergebnis habe ich”VoroAirline“ genannt.

Der Fortune-Algorithmus fur additiv gewichtete Punktmengen (Algorithmus 7.2) unterschei-

det sich strukturell kaum vom gewohnlichen Fortune-Algorithmus (Algorithmus 7.1). Den

gewohnlichen Fortune-Algorithmus kann man aber viel leichter implementieren. Das Pro-

blem im additiv gewichteten Fall ist, daß die Bisektoren hier Hyperbelaste sein konnen. Man

muß sich uberlegen, wie man die Bisektoren bzw. Voronoi-Kanten mittels geeigneter Daten-

strukturen darstellen kann. Desweiteren muß man sich uberlegen, wie man die Schnittpunkte

zweier Hyperbeln bzw. die Schnittpunkte zwischen einer Hyperbel und einer Geraden be-

rechnen kann. Auch das Zeichnen des Voronoi-Diagramms ist im additiv gewichteten Fall

schwieriger, weil man in Java Hyperbelstucke nicht wie Geradenstucke direkt zeichnen kann.

Probleme ergeben sich auch dadurch, daß wir bisher von reellen Zahlen ausgegangen sind,

der Computer aber mit Gleitkomma-Zahlen rechnet. Hierdurch entstehen Rechenungenau-

igkeiten und Rundungsfehler. Insbesondere mit Tests der Art”a=b?“ oder

”a¡b“ muß man

vorsichtig umgehen.

A.3.1 Darstellung der Bisektoren

Es seien s1 = (x1, y1) und s2 = (x2, y2) zwei Voronoi-Orte mit den additiven Gewichten w1

bzw. w2. Es sei w1 > w2 und r := w1 − w2. Der Bisektor

B12 = z ∈ R2 : |s1z| + w1 = |s2z| + w2(A.1)

ist ein Ast einer Hyperbel mit den Brennpunkten s1 und s2.

Mein erster Losungsansatz war das Aufstellen einer Gleichung

ax2 + by2 + cxy + dx + ey + f = 0(A.2)

Page 101: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

A.3 Schwierigkeiten bei der Implementierung 95

Durch Ausrechnen erhalt man

a = (x1 − x2)2 − r2(A.3)

b = (y1 − y2)2 − r2(A.4)

c = 2(x1 − x2)(y1 − y2)(A.5)

d = 2k(x1 − x2) + 2r2x1(A.6)

e = 2k(y1 − y2) + 2r2y1(A.7)

f = k2 − r2(x21 + y2

1)(A.8)

k =1

2(x2

2 + y22 − x2

1 − y21 − r2)(A.9)

Im Fall w1 = w2 ist der Bisektor eine Gerade. Wenn y1 6= y2 ist, dann erhalt man

a = b = c = 0, e = −1, d =x1 − x2

y2 − y1, f =

x22 + y2

2 − x21 − y2

1

2(y2 − y1)(A.10)

Im Fall y1 = y2 verlauft die Gerade vertikal:

a = b = c = e = 0, d = −1, f =x1 + x2

2(A.11)

Diese Darstellungsart fur Bisektoren ist unbefriedigend. Sie ist kompliziert, es sind insbe-

sondere Fallunterscheidungen notwendig. Außerdem liefert sie die ganze Hyperbel und nicht

nur einen Hyperbelast. Deshalb habe ich nach Alternativen gesucht und eine geeignete pa-

rametrisierte Darstellung in [35] gefunden:(x(t)

y(t)

)=

(v −w

w v

)(a cosh t

b sinh t

)+

(mx

my

)(A.12)

mit

a = −r

2(A.13)

b =1

2

√(x2 − x1)2 + (y2 − y1)2 − r2(A.14)

v =x2 − x1√

(x2 − x1)2 + (y2 − y1)2(A.15)

w =y2 − y1√

(x2 − x1)2 + (y2 − y1)2(A.16)

mx =x1 + x2

2(A.17)

my =y1 + y2

2(A.18)

Bei dieser Darstellungsart braucht man keine Fallunterscheidungen mehr zwischen Hyper-

belasten und Geraden zu machen. Im Geraden-Fall ist einfach a = 0. Man kann nun relativ

Page 102: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

96 A. Die Java-Programme zur Veranschaulichung der Voronoi-Diagramme

einfach die Asymptoten eines Bisektors und die Tangente an einen Bisektor bei einem ge-

gebenen Punkt berechnen. Auch die Schnittpunkte eines Bisektors mit einer Geraden kann

man hiermit berechnen.

Zwei beliebige Hyperbelaste in der Ebene konnen sich viermal schneiden. Wir brauchen aber

fur den Fortune-Algorithmus nur den Schnittpunkt von zwei Hyperbelasten, welche einen

gemeinsamen Brennpunkt besitzen. Aus dem Satz 6.5 folgt, daß in diesem Fall sich die beiden

Hyperbelaste hochstens zweimal schneiden konnen. Dennoch ist es mir nicht gelungen, eine

Formel zur direkten Berechnung dieser Schnittpunkte herzuleiten.

Ich habe mir deshalb folgendes Naherungsverfahren ausgedacht:

Gegeben seien drei Orte s1, s2 und s3 mit w1 > w2 > w3. Berechnet werden soll die Schnitt-

menge

B12 ∩ B13 ∩ B23 = B12 ∩ B13 = B13 ∩ B23 = B12 ∩ B23

Zunachst schneide ich B23 mit den Asymptoten zu B12. Dann kostruiere ich die Tangenten

an B23 bei den Schnittpunkten. Die Tangenten schneide ich mit B12 und konstuiere die

Tangenten an B12 bei den neuen Schnittpunkten. Die neuen Tangenten schneide ich dann

wieder mit B23, u.s.w.

Dieses Verfahren habe ich ausgiebig getestet. Es scheint korrekt zu sein, obwohl ich die

Korrektheit nicht beweisen kann. Außerdem konvergiert es extrem schnell. Man kommt meist

schon nach drei bis vier Schritten in den Bereich, in dem wegen der Ungenauigkeit der

Gleitkomma-Zahlen weitere Schritte keine Verbesserung mehr ergeben.

Page 103: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

Literaturverzeichnis

[1] Aho, A.V., J.E. Hopcroft, and J.D. Ullman: The Design and Analysis of Com-

puter Algorithms. Addison-Wesley, Reading, Mass. [u.a.], 1974.

[2] Aurenhammer, F.: Voronoi diagrams: A survey of a fundamental geometric data

structure. ACM Comput. Surv., 23:345–405, 1991.

[3] Aurenhammer, F. and R. Klein: Voronoi diagrams. Informatik Berichte 198,

FernUniversitat Hagen, 1996.

[4] Bellman, R.E.: Dynamic Programming. Princeton Univ. Press, Princeton, NJ, 1957.

[5] Brandstadt, A.: Effiziente Graphenalgorithmen. FernUniversitat Hagen, Kurs 1685,

1992.

[6] Coppersmith, D. and S. Winograd: On the asymptotic complexity of matrix mul-

tiplication. IEEE Symposium on Foundations of Computer Science, 22:82–100, 1981.

[7] Deo, N. and C. Pang: Shortest-path algorithms: Taxonomy and annotation. Net-

works, 14:275–323, 1984.

[8] Dijkstra, E.W.: A note on two problems in connexion with graphs. Numerische

Mathematik, 1:269–271, 1959.

[9] Dobkin, D.P. and Lipton R.J.: Multidimensional searching problems. SIAM Journal

on Computing, 5:181–186, 1976.

[10] Edelsbrunner, H.: Algorithms in Combinatorial Geometry. Springer, Berlin; Hei-

delberg; New York, 1987.

[11] Edelsbrunner, H., L.J. Guibas, and J. Stolfi: Optimal point location in a mono-

tone subdivision. SIAM Journal on Computing, 15:317–340, 1986.

[12] Edelsbrunner, H. and R. Seidel: Voronoi diagrams and arrangements. Discrete

Comput. Geom., 1:25–44, 1986.

97

Page 104: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

98 LITERATURVERZEICHNIS

[13] Fischer, G.: Lineare Algebra. Vieweg, Braunschweig; Wiesbaden, 10., vollst. neu be-

arb. und erw. Auflage, 1995.

[14] Forster, O.: Analysis 2. Vieweg, Braunschweig; Wiesbaden, 5., durchges. Auflage,

1984.

[15] Fortune, S.: A sweepline algorithm for Voronoi diagrams. Algorithmica, 2:153–174,

1987.

[16] Fredman, M.L.: New bounds on the complexity of the shortest path problem. SIAM

Journal on Computing, 5:83–89, 1976.

[17] Fredman, M.L. and R.E. Tarjan: Fibonacci heaps and their use in network opti-

mization. Journal of the ACM, 34:596–615, 1987.

[18] Guting, R.H.: Datenstrukturen und Algorithmen. Teubner, Stuttgart, 1992.

[19] Hart, P.E, N.J. Nilsson, and B. Raphael: A formal basis for the heuristic determi-

nation of minimum cost paths. IEEE Transactions on System Science and Cybernetics,

SSC-4:100–107, 1968.

[20] Heuser, H.: Lehrbuch der Analysis, Teil 1. Teubner, Stuttgart, 5., durchges. Auflage,

1988.

[21] Johnson, D.B.: Efficient algorithms for shortest paths in sparse networks. Journal of

the ACM, 24:1–13, 1977.

[22] Kirkpatrick, D.G.: Optimal search in planar subdivisions. SIAM Journal on Com-

puting, 12:28–35, 1983.

[23] Klein, R.: Concrete and Abstract Voronoi Diagrams. Number 400 in Lecture Notes

in Computer Science. Springer, Berlin; Heidelberg; New York, 1989.

[24] Klein, R.: Algorithmische Geometrie. Addison-Wesley-Longman, Bonn, 1. Auflage,

1997.

[25] Klingenberg, W.: Eine Vorlesung uber Differentialgeometrie. Springer, Berlin; Hei-

delberg; New York, 1973.

[26] Lee, D.T. and R.L. Drysdale: Generalisation of Voronoi diagrams in the plane.

SIAM Journal on Computing, 10:73–87, 1981.

[27] Mehlhorn, K.: Data Structures and Algorithms 2: Graph Algorithms and NP-

Completeness. Springer, Berlin; Heidelberg; New York, 1984.

Page 105: Diplomarbeit Oliver Münch, FernUniversität Hagen · FernUniversit¨at GesamthochschuleinHagen Fachbereich Informatik Lehrgebiet Praktische Informatik VI Diplomarbeit Das Voronoi-Diagramm

LITERATURVERZEICHNIS 99

[28] Mehlhorn, K.: Datenstrukturen und effiziente Algorithmen 1: Sortieren und Suchen.

Teubner, Stuttgart, 2. Auflage, 1988.

[29] Moffat, A. and T. Takaoka: An all pairs shortest path algorithm with expected time

O(n2 log n). SIAM Journal on Computing, 16:1023–1031, 1987.

[30] Nilsson, N.J.: Principles of Artificial Intelligence. Springer, Berlin; Heidelberg; New

York, 1982.

[31] Ottmann, T. und P. Widmayer: Algorithmen und Datenstrukturen. BI-Wissen-

schaftsverlag, Mannheim; Leipzig; Wien; Zurich, 2., vollst. uberarb. und erw. Auflage,

1993.

[32] Querenburg, B. von: Mengentheoretische Topologie. Springer, Berlin; Heidelberg;

New York, 2., neubearb. u. erw. Auflage, 1979.

[33] Shamos, M.I. and D. Hoey: Closest-point problems. In Proceedings 16th IEEE

Symposium on Foundation of Computer Science, pages 151–162, 1975.

[34] Sharir, M.: Intersection and closest-pair problems for a set of planar discs. SIAM

Journal on Computing, 14:448–468, 1985.

[35] Spallek, K.: Kurven und Karten. Bibliographisches Institut, Mannheim; Wien; Zurich,

1980.

[36] Spira, P.M.: A new algorithm for finding all shortest paths in a graph of positive arcs

in average time O(n2 log2 n). SIAM Journal on Computing, 2:28–32, 1973.

[37] Strassen, V.: Gaussian elimination is not optimal. Num. Math., 13:354–356, 1969.