298
Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Seminar und Proseminar

- WS 2007/2008 -Perlen der Theoretischen Informatik

Friedhelm Meyer auf der Heide

Page 2: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Kontakt

Friedhelm Meyer auf der HeideUniversität PaderbornInstitut für Informatik und Heinz Nixdorf InstitutFürstenallee 1133102 Paderborn

email: [email protected]

Page 3: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Vorwort

In diesem Seminar/Proseminar soll anhand einer Reihe ausgewählter Aufsätze und Lehrbuch-Abschnitte die Schönheit von Problemlösungen aus dem Bereich der Theoretischen Informa-tik demonstriert werden und gezeigt werden, dass die Beschäftigung mit raffinierten Beweis-techniken, eleganten Argumenten und überraschenden Konstruktionen höchst vergnüglichist. Inspiriert wird dieses Seminar durch das Buch "Perlen der Theoretischen Informatik",BI Wissenschaftsverlag 1995, von Uwe Schöning (Unibibliothek 41TVA2403, 60TVA2411) ,in dem er eine Sammlung von Ergebnissen vorstellt, die seiner Meinung nach Highlights derTheoretischen Informatik darstellen. Natürlich wird die Themenauswahl unseres Seminarsdurch den Geschmack der Themensteller und ihrer Arbeitsgebiete geprägt sein.

Aufbau des Seminars/Proseminars

Ziel des Seminars ist die Aufbereitung aktueller Forschungsarbeiten. Zur Auswahl stehendie unten aufgeführten Arbeiten. Die Veranstaltung besteht aus einem Seminar und einemProseminar, d.h. entweder erwirbt man einen Seminarschein oder einen Proseminarschein.Jedes Thema wird als Pärchen vergeben, das aus einem Proseminarvortrag und einem Se-minarvortrag besteht. Der Proseminarvortrag stellt die Grundlagen für den dazugehörigenSeminarvortrag bereit.

Page 4: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide
Page 5: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Teilnehmerinnen und Teilnehmer des Seminars

Thema: Cell to Cell Visibility in PVSSystemenSeminar: Andre GärtnerBetreuung: Ralf Petring

Thema: Dynamische HashingverfahrenSeminar: Marco MüllerBetreuung: Mario Mense

Thema: Wegeberechnung für Roboter in2D-UmgebungenProseminar: Michael KionkaSeminar: Benjamin EikelBetreuung: Matthias Fischer

Thema: Geometrische SpannerProseminar:Jasmin Kovac-EngelmeierSeminar: Philipp WissnethBetreuung:Christiane Lammersen

Thema: ClusteringProseminar: Holger Bürger

Seminar: Markus HeberlingBetreuung:Morteza Monemizahdeh

Thema: Peer to Peer NetzwerkeProseminar: Andreas VogelsangSeminar: Marc BorowskiBetreuung: Peter Mahlmann

Thema: Kinetische DatenstrukturenProseminar: Peter KlingSeminar: Sabine NaeweBetreuung: Bastian Degener

Thema: Dynamische SteinerbäumeProseminar: Linda RöhrkohlSeminar: Holger HagedornBetreuung: Jan Mehler

Thema: Globale Sichtbarkeit in 3D SzenenProseminar: Michael KruseSeminar: David SchmelterBetreuung: Claudius Jähn

Page 6: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide
Page 7: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Inhaltsverzeichnis

Teil I Proseminar

Wegberechnung für Punktroboter mittels TrapezierungMichael Kionka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Der Einsatz von Bereichsbäumen zur Beantwortung von orthogonalenBereichsanfragenJasmin Kovač-Engelmeier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

„A Simple Linear Time (1+ε)-Approximation Algorithm for k-MeansClustering in Any Dimensions“ für k = 2Holger Bürger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

Skalierbare Peer-to-Peer-NetzwerkeAndreas Vogelsang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

Eine Einführung in kinetische DatenstrukturenPeter Kling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

Das Steinerbaumproblem - Ein klassisches Problem der GraphentheorieLinda Röhrkohl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

Aspektgraphen und VerdeckungMichael Kruse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

Teil II Seminar

Cell to Cell Visibility in PVS SystemenAndré Gärtner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

Hohe Verfügbarkeit in skalierbaren verteilten Hashingdateien mitMirroringMarco Müller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

Framed-Quadtree-Verfahren zur Bestimmung von kürzesten Wegen in2D-UmgebungenBenjamin Eikel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

Page 8: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

XII Inhaltsverzeichnis

Konstruktion von geometrischen Spannern mit geringem DurchmesserPhilipp Wissneth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

Ein einfacher, linearer (1+ε) - Approximationsalgorithmus für dask-Means Clustering ProblemMarkus Heberling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

Peer-to-Peer Netzwerke: Skip-GraphMarc Borowski . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215

Kinetische Datenstrukturen für zweidimensionale ProblemeSabine Naewe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235

Dynamische SteinerbäumeHolger Hagedorn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255

Approximationen und Alternativen für AspektgraphenDavid Schmelter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269

Page 9: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Teil I

Proseminar

Page 10: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide
Page 11: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Wegberechnung für Punktroboter mittels Trapezierung

Michael Kionka

Universität Paderborn [email protected]

Zusammenfassung. Das Wegberechnungsproblem für Roboter ist ein aktuelles Thema in der algorithmi-schen Geometrie und Robotik und hat über die Jahre bereits viel Beachtung in der Forschung erfahren.Mit dieser Ausarbeitung soll ein erster Einblick in das insgesamt sehr komplexe Thema gegeben werden.Untersuchungsgegenstand ist ein Punktroboter, der sich translatorisch in einer statischen, vorher bekannten2D-Umgebung zwischen polygonen Hindernissen kollisionsfrei bewegen soll. Die vorgestellte Lösung beruhtauf dem Verfahren der Trapezierung. Es wird gezeigt, dass für den Punktroboter Wegberechnungen zwischenzwei Positionen in O(n) Zeit, wobei n die Gesamtanzahl der Kanten der Hindernisse bezeichnet, möglichsind. Hierfür sind einmalige Vorberechnungen für den Raum nötig, die erwartete Zeit O(n log n) benötigen.

1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Raumdefinitionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3 Trapezierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.1 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63.2 Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

4 Wegberechnung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4.1 initiale Berechnungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.2 Pfadberechnung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

5 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

5.1 Bewertung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185.2 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

1 Einleitung

Die Bedeutung von Robotern nimmt in der heutigen Zeit immer mehr zu. Neben den reintechnischen bzw. mechanischen Anforderungen, stellen sich auch Anforderungen an die ver-wendete Steuerungslogik. Ein wesentlicher Punkt ist hierbei die Bewegungsplanung. Robotermüssen sich sicher bewegen können ohne durch Kollision mit anderen Objekten Schaden zunehmen.Die Ausarbeitung setzt an diesem Punkt an. Die gestellten Fragen sind hierbei konkret:

• Existiert für den Roboter ein kollisionsfreier Weg zwischen zwei Punkten

Page 12: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

4 Michael Kionka

• Falls ja, wie lautet dieser Weg

Das hierfür betrachtete Szenario sieht wie folgt aus:Gegeben ist ein so genannter Punktroboter. Dies bedeutet, dass der Roboter keine Ausdeh-nung besitzt, sondern nur als Punkt dargestellt wird. Diese Einschränkung ist zwar nichtrealistisch, dient aber dazu, die Betrachtung nicht unnötig kompliziert zu machen. Auf diegrundlegenden Vorgehensweisen hat sie keinen Einfluss. Dieser Punktroboter kann sich nurtranslatorisch bewegen. Dies bedeutet, dass er sich nicht drehen kann bzw. seine Orien-tierung nicht ändern kann. Bei Punktrobotern ist die Unterscheidung der Bewegungsartenzunächst unerheblich für die Wegberechnung, sie ist aber von Bedeutung bei einer möglichenErweiterung auf konvexe Roboter.

Weiterhin ist ein 2-dimensionaler Raum gegeben. In ihm befinden sich disjunkte, poly-gone Hindernisse. Diese Hindernisse sind ausschließlich statisch und zu Beginn der Berech-nungen bekannt. Die Umgebung des Roboters wird sich also im betrachteten Zeitraum nichtverändern.

Die Aufgabe besteht nun darin, für den Punktroboter Wege zwischen beliebigen Punktenzu berechnen und auszugeben, falls diese Wege existieren. Der Fokus liegt hierbei ausschließ-lich auf dem Finden von existenten Wegen, nicht jedoch auf dem Angeben von kürzestenWegen.

In dieser Ausarbeitung wird angenommen, dass es für einen Roboter erlaubt ist, ein Hin-dernis zu berühren. Es ist aber sicherlich nicht verkehrt, allgemein ein zu nahes Vorbeifahrenan einem Hindernis zu vermeiden, um mögliche Fehler in einer Robotersteuerung abzufan-gen. Um dieses zu Erreichen, könnte man zu Beginn alle Hindernisse minimal vergrößern.

Die Berechnungen der vorgestellten Lösung lassen sich in zwei Teile aufteilen. Zunächstwerden einige Vorberechnungen für den Raum stattfinden, die die eigentlichen Wegberech-nungen vereinfachen sollen. Anschließend können, aufbauend auf den Ergebnissen, beliebigviele Weganfragen bearbeitet werden. Aus dieser grundsätzlichen Lösungstruktur ergibt sich,dass sie insbesondere dann sinnvoll ist, wenn die zu Beginn gegebene Raumumgebung fürmöglichst viele Anfragen bestehen bleibt. In diesem Fall lohnen sich die initialen Vorberech-nungen.

Diese Ausarbeitung orientiert sich dabei inhaltlich an den Kapiteln 6 und 13 in [1]. Dieverwendeten Abbildungen sind ebenfalls an die dort verwendeten Abbildungen angelehnt.Bei dem Buch handelt es sich um eine Zusammenstellung verschiedener Themen der algo-rithmischen Geometrie. Die zu Grunde liegenden Arbeiten stammen von Mulmuley [2] undSeidel[3] im Bereich des Trapezierungs-Verfahrens. Die Ideen zur free space - Berechnungbasieren auf den Arbeiten von Kedem et al.[4][5].

Im nächsten Kapitel werden zunächst einige grundlegende Begriffe geklärt. Hierbei wirddie Einschränkung auf Punktroboter kurz aufgehoben, da einige wichtige Begriffe im Um-feld der Roboter-Wegberechnung nicht unerwähnt bleiben sollen, aber an Punktroboternnicht sinnvoll erklärt werden können.

Page 13: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Wegberechnung für Punktroboter mittels Trapezierung 5

2 Raumdefinitionen

Zunächst geht es darum, festzulegen, wie die Position des Roboters im Raum beschriebenwerden kann und wie der Raum an sich dargestellt wird.

Im Folgenden sei R der Roboter, der sich in seiner Umgebung, die wir work space nennenwerden, bewegt. In dieser Umgebung befindet sich weiterhin eine Menge von HindernissenH= P1, . . . ,Pt.

Um die aktuelle Position des Roboters beschreiben zu können, führen wir den Begriffdes Referenzpunktes eines Roboters ein. Dies ist ein festgelegter Punkt, der sinnvoller-,aber nicht notwendigerweise, innerhalb des Roboterpolygons liegt. Wir beschreiben ihn mitR(x,y), wobei x und y die Koordinaten im 2–dimensionalen Raum darstellen. Der Referenz-punkt liegt für R(0,0) per Definition im Ursprung. Um nun die aktuelle Roboterpositiondarstellen zu können, geben wir für die momentane Position des Roboters, die derzeitigenKoordinaten seines Referenzpunktes an.

Allgemein hängt die Anzahl der Parameter, die nötig sind, um die Platzierung einesRoboters im Raum eindeutig angeben zu können, von der Anzahl seiner Freiheitsgrade ab.In diesem Fall kann der Roboter sich in zwei Dimensionen translatorisch bewegen, daherergibt sich die benötigte Anzahl von zwei Parametern. Würde sich der Roboter zum Beispielim 3–dimensionalen Raum translatorisch bewegen können, so wären drei Parameter nötig.Allgemein wird pro Freiheitsgrad des Roboters ein weiterer Parameter benötigt.

Im work space wird die tatsächliche Form des Roboters dargestellt. Da in dieser Ausar-beitung nur Punktroboter betrachtet werden, stellt dies hier kein Problem dar. Allgemeinist diese Darstellung für Berechnungen jedoch nicht sinnvoll. Für die Berechnungen definiertman daher als Repräsentation den sogenannten configuration space, kurz C(R), in dem derRoboter nur noch als Punkt (sein Referenzpunkt) dargestellt wird. Ein Punkt im configura-tion space entspricht also einer Platzierung des Roboters im work space und umgekehrt.Den configuration space müssen wir genauer definieren. Da wir in unserem Raum Hinder-nisse haben, sind nicht alle Positionierungen des Roboters im configuration space erlaubt.Genauer formuliert sind die Positionierungen nicht erlaubt, bei denen der Roboter ein Hin-dernis schneidet. Diese bezeichnen wir als forbidden (configuration) space, kurz, Cforb(R,H).Den verbleibenden Raum, der gültige Positionierungen beschreibt, nennen wir free (confi-guration) space, kurz, Cfree(R,H).

Bei Punktrobotern entsprechen sich der work space und der configuration space.1 Wei-terhin stellen die Hindernisse im work space genau den forbidden space des configurationspace dar.

Allgemein haben Roboter jedoch eine Ausdehnung, die im configuration space verlorengeht. Um die reale Situation im allgemeinen Fall dennoch korrekt darzustellen, müssen so-mit die Hindernisse angepasst werden. Sie müssen entsprechend der Form des Robotersvergrößert werden. Veranschaulicht beschrieben ergeben sich die neuen Formen, indem manmit dem Referenzpunkt des Roboters die Kanten der Hindernisse entlang fährt und dendabei überstrichenen Bereich dem jeweiligen Hindernis als zusätzliche Ausdehnung zuord-net. Die so entstandenen vergrößerten Hindernisse bezeichnet man als configuration-space

1 unter der sinnvollen Annahme, dass der Referenzpunkt des Roboters dem Punkt des Roboters entspricht

Page 14: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

6 Michael Kionka

obstacle oder kurz C-obstacle. Abbildung 1 zeigt ein Beispiel hierfür. Auf die entsprechendeBerechnung wird in der Ausarbeitung auf Grund des Fokus auf Punktroboter verzichtet.

work space configuration space

Referenzpunkt Cobstacle

Abb. 1. work space und configuration space

3 Trapezierung

In diesem Kapitel soll eine Datenstruktur vorgestellt werden, die uns später helfen wird eineRepräsentation des free space zu erstellen. Bei dieser Datenstruktur handelt es sich um diesogenannte Trapezierung. Die Trapezierung des free space wird uns folgende Vorteile bieten.Zum einen werden wir den free space in kleinere, trapezförmige und damit konvexe Flächenaufgeteilt haben, in denen der Roboter sich sicher von einem beliebigen zu einem anderenbeliebigen Punkt mit einer geradlinigen Bewegung bewegen kann, ohne gegen ein Hinderniszu stoßen. Zum anderen werden wir durch den Trapezierungs-Algorithmus eine Suchstrukturerzeugt bekommen, mit der wir leicht die Start- und Zielposition der Roboterbewegungenin der Repräsentation finden können.

3.1 Grundlagen

Für eine Trapezierung gehen wir als Eingabe von einer Menge S von n sich nicht schnei-denden Liniensegmenten aus, die eine Fläche in kleinere, polygone Flächen trennt. Bei unswird diese Trennung später zwischen free space und forbidden space bestehen. Mittels derTrapezierung werden die polygonen Flächen dann in trapezförmige, konvexe Flächen aufge-teilt.

Normallage

In dieser Ausarbeitung werden zwei Vereinfachungen angenommen, die die Behandlung er-leichtern. Eine Erweiterung auf den allgemeinen Fall kann in [1] in Kapitel 6.3 nachgelesenwerden.

Page 15: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Wegberechnung für Punktroboter mittels Trapezierung 7

Zunächst wird um die Liniensegmente eine umgebene Hülle konstruiert, um die am Randliegenden Flächen zu beschränken. Dies geschieht in Form eines achsen-parallelen Rechtecks,welches die gesamte betrachtete Fläche einschließt.

Die zweite Einschränkung stellt sich schwerwiegender, weil weniger realistisch, dar. Eswird angenommen, dass keine zwei verschiedenen Endpunkte von Liniensegmenten die glei-che x-Koordinate haben. Hieraus ergibt sich die wenig realistische Folgerung, dass es keinevertikalen Liniensegmente geben darf. Weiterhin ist es unwahrscheinlich, dass es allgemeinkeine Endpunkte von verschiedenen Segmenten gibt, die auf Grund einer eingeschränktenGenauigkeit, die gleiche x-Koordinate besitzen.

Zusammengefasst bezeichnen wir eine solche Menge S von n sich nicht schneidendenLiniensegmenten, die von einer umgebenen Hülle umschlossen sind und für die gilt, dasskeine zwei verschiedenen Endpunkte die gleiche x-Koordinate haben, als Menge von Lini-ensegmenten in Normallage.

Struktur einer Trapezierung

Die Trapezierung einer entsprechenden Eingabemenge entsteht, indem von den beiden End-punkten eines jeden Liniensegmentes jeweils eine vertikale Linie nach oben und nach untenerzeugt wird, die bis zum Berührpunkt mit einem anderen Segment oder dem äußeren Recht-eck verläuft. Diese Linien bezeichnen wir als obere bzw. untere vertikale Erweiterung desentsprechenden Endpunktes. Abbildung 2 zeigt beispielhaft eine solche Trapezierung.

Abb. 2. Beispiel für eine Trapezierung

Nicht-vertikale Seiten von so entstandenen Trapezen können nur aus Segmenten und denbeiden horizontalen Seiten des äußeren Rechtecks bestehen. Wir bezeichnen das Segmentbzw. die Seite des Rechtecks, die ein Trapez ∆ von oben bzw. unten begrenzt als top(∆)bzw. bottom(∆).

Auf Grund der angenommenen Normallage können vertikale Seiten von Trapezen nurvertikale Erweiterungen von Segmentendpunkten oder eine der beiden vertikalen Ränder

Page 16: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

8 Michael Kionka

des Rechtecks sein. Insgesamt sind für die linke und die rechte Seite eines Trapezes jeweilsfünf verschiedene Fälle möglich.Für die linke Seite sehen sie wie folgt aus:

(1)Die linke Seite entartet zu einem Punkt, der der gemeinsame Endpunkt von top(∆) undbottom(∆) ist.

(2)Es ist die untere vertikale Erweiterung des linken Endpunktes von top(∆), die bis zumBerühren von bottom(∆) verläuft.

(3)Es ist die obere vertikale Erweiterung des linken Endpunktes von bottom(∆), die bis zumBerühren von top(∆) verläuft.

(4)Es ist die obere und untere vertikale Erweiterung eines rechten Endpunktes eines weiterenSegmentes, bis sie top(∆) bzw. bottom(∆) berühren.

(5)Es ist die linke Ecke des äußeren Rechtecks. Dieser Fall beschreibt die Situation für dasam weitesten links liegende Trapez der Trapezierung.

Die Fälle gelten entsprechend angepasst für die rechte Seite eines Trapezes.Die interessanten Fälle ((1)-(4)) sind in Abbildung 3 dargestellt.

(1) (2) (3) (4)

leftp(Δ)leftp(Δ)

leftp(Δ)

leftp(Δ)

bottom(Δ)

top(Δ) top(Δ) top(Δ)

top(Δ)

bottom(Δ) bottom(Δ) bottom(Δ)

Abb. 3. Vier mögliche Entstehungen für die linke Seite eines Trapezes

Wie man sieht, gilt für alle Trapeze, abgesehen vom am weitesten links liegenden, dass dielinke Seite des Trapezes durch den linken Endpunkt von top(∆) bzw. bottom(∆) oder durchden rechten Endpunkt eines weiteren Segmentes definiert wird. Diesen Punkt bezeichnenwir im Folgenden mit leftp(∆). Für das am weitesten links liegende Trapez definieren wir,dass der Punkt leftp(∆) der unteren linken Ecke des Rechtecks entspricht. EntsprechendeDefinitionen gelten auch für die rechte Seite des Trapezes, wo der entsprechende Punkt mitrightp(∆) bezeichnet wird.

Für die spätere Verwendung soll bereits hier festgehalten werden, dass ein Trapez ∆durch top(∆), bottom(∆), leftp(∆) und rightp(∆) eindeutig festgelegt ist.

Lemma 1. Die Anzahl der enthaltenen Trapeze in der Trapezierung T (S) für eine MengeS von n Liniensegmenten und damit die Komplexität der Trapezierung ist O(n).

Beweis. Es folgt ein direkter Beweis mittels leftp(∆). Jedes Trapez hat einen solchen Punktleftp(∆), wobei dieser der Endpunkt einer der n Segmente oder die linke, untere Ecke desumschließenden Rechtecks ist. Betrachtet man die vorgestellten fünf Fälle für die linke Sei-te eines Trapezes, so ergibt sich folgendes: Die linke untere Ecke des Rechtecks entspricht

Page 17: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Wegberechnung für Punktroboter mittels Trapezierung 9

leftp(∆) für genau ein Trapez. Ein rechter Endpunkt eines Segmentes entspricht leftp(∆)maximal für ein Trapez. Ein linker Endpunkt eines Segmentes entspricht leftp(∆) für ma-ximal zwei Trapeze. (Ein Punkt in der Fläche kann die Rolle von leftp(∆) für mehrereTrapeze spielen, da Endpunkte von Segmenten sich überdecken können. Wenn man Fall a)aber genauer betrachtet, so kann leftp(∆), angenommen als Endpunkt eines der Segmente,die Rolle leftp(∆) nur für das über und das unter dem Segment liegende Trapez und da-mit für maximal zwei Trapeze annehmen.) Die Anzahl an Trapezen beträgt also maximal3n + 1. ut

3.2 Algorithmus

Für die Berechnung einer Trapezierung gibt es verschiedene algorithmische Ansätze. ImFolgenden wird ein randomisierter inkrementeller Algorithmus in seiner grundsätzlichenVorgehensweise beschrieben. Genauere Details hierzu finden sich in [1] in Kapitel 6.2.

Für die Eingabe der Liniensegmente wird als Datenstruktur eine doppelt-verkettete Listegewählt.

Die Idee des Algorithmus ist es, zunächst von einem einzigen Trapez (dem umschließen-den Rechteck) auszugehen und dann schrittweise durch Hinzufügen der einzelnen Segmenteeine Trapezierung aufzubauen. Parallel hierzu wird eine Suchstruktur erzeugt, mit derenHilfe für einen beliebigen Punkt q leicht ermittelt werden kann, in welchem Trapez er liegt.

Der Aufbau dieser Datenstrukturen soll nun etwas genauer beschrieben werden:In der Trapezierungs-Datenstruktur werden Datensätze für alle Segmente und ihre End-punkte gespeichert. Weiterhin gibt es Datensätze für die Trapeze, wobei diese nicht dasTrapez an sich, sondern Verweise auf top(∆), bottom(∆), leftp(∆) und rightp(∆) spei-chern. Wie oben beschrieben, reichen diese aus, um ein Trapez eindeutig zu definieren unddamit, um mit ihnen die genauen Kanten und Ecken des Trapezes zu bestimmen. Diesesist in konstanter Zeit möglich. Für die einzelnen Trapeze werden außerdem Verweise aufdie rechten und linken Nachbartrapeze gespeichert, so dass die Trapeze insgesamt netzartigverbunden sind.

Die Suchstruktur ist als Graph aufgebaut, der aus inneren Knoten und Blattknoten be-steht. Für jedes Trapez gibt es genau einen diesem entsprechenden Blattknoten. Die innerenKnoten bestehen noch einmal aus zwei verschiedenen Knotentypen (x-Knoten, y-Knoten),die jeweils Entscheidungsknoten darstellen und genau zwei Ausgangskanten besitzen. Diex-Knoten speichern jeweils Endpunkte von Segmenten, die y-Knoten die Segmente an sich.Beim Durchlaufen des Graphen auf der Suche nach dem Trapez, in dem sich q befindet,stellen sich an den Entscheidungsknoten dann folgende Fragen, die über die anschließendgewählte Ausgangskante entscheiden:Beim x-Knoten geht es darum, ob der Punkt q auf der rechten oder linken Seite einer durchden Segmentendpunkt, der im Knoten gespeichert ist, gezeichneten Linie liegt.Beim y-Knoten entscheidet sich der weitere Weg dadurch, ob der Punkt q oberhalb oderunterhalb des im Knoten gespeicherten Segmentes liegt.

Schließlich sind die Trapezierung und die Suchstruktur noch miteinander verlinkt. DieVerlinkung besteht in beidseitigen Verweisen vom Datensatz eines Trapezes in der einenDatenstruktur zum Datensatz des gleichen Trapezes in der anderen Datenstruktur.

Der Algorithmus sieht formal wie folgt aus:

Page 18: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

10 Michael Kionka

Algorithmus 1 TrapezierungEingabe: Menge S von n sich nicht schneidenden LiniensegmentenAusgabe: Trapezierung T (S) und Suchstruktur D für T (S)1: Bestimme ein Rechteck, in dem alle Liniensegmente von S liegen2: Initialisiere Trapezierung T und Suchstruktur D3: Bestimme eine zufällige Permutation s1, . . . , sn der Elemente von S4: for i = 1 . . . n do5: Finde ∆0, ∆1, . . . , ∆k der Trapeze in T , die von si geschnitten werden6: Entferne ∆0, ∆1, . . . , ∆k aus T und ersetze sie durch die durch die Einfügung von si entstandenen

Trapeze7: Entferne die Blätter für ∆0, ∆1, . . . , ∆k aus D, erzeuge neue Blätter für die neuen Trapeze und füge

sie korrekt in D ein

Die Korrektheit des Algorithmus erfolgt auf dieser Abstraktionsebene direkt aus seinerSchleifeninvariante, die wie folgt lautet:Sei Si definiert als Si:= s1, s2, . . . , si, wobei i die Schleifenvariable meint. Dann ist T einekorrekte Trapezierung für Si und D ist eine gültige Suchstruktur für T .

Die Laufzeit werden wir erst später angeben, da sie sich direkt aus den folgenden Un-tersuchungen ergeben wird.

Die am Ende erhaltene Trapezierung ist immer gleich, unabhängig von der in Schritt 3erzeugten Permutation der Liniensegmente. Die Komplexität der Suchstruktur und die Lauf-zeit einer Suche auf dieser sind jedoch abhängig von der erzeugten Permutation der Segmen-te. Da der Algorithmus intern auch mit der Suchstruktur arbeitet (siehe [1], Seite 130), hängtauch seine Laufzeit von der Permutation ab. Im worst-case hat die Datenstruktur quadra-tische Größe und eine lineare Suchzeit2. Allerdings gibt es auch Permutationen, bei denensich deutlich bessere Werte ergeben. Interessant sind somit die erwartete3 Komplexität, dieerwartete Suchzeit und daraus folgend die erwartete Ausführungszeit des Algorithmus, dieim Folgenden bestimmt werden sollen.

Theorem 1. Berechne Algorithmus Trapezierung eine Trapezierung für eine Menge S vonn Liniensegmenten in Normallage und eine zugehörige Suchstruktur. Die erwartete Laufzeitfür eine Suchanfrage für einen beliebigen Punkt q beträgt dann O(log n).

Beweis. Sei q der Punkt, für den eine Suchanfrage ausgeführt werden soll, beliebig aber fest.Die Ausführungszeit für eine solche Anfrage ist linear bezogen auf die Länge des zugehörigenPfades im Suchgraphen.

Die maximale Länge des Pfades entspricht der Tiefe von D. Da die Tiefe von D injedem Iterationsschritt um maximal 3 zunimmt (siehe [1], Seite 131–133), ist 3n eine obereSchranke für die Suchanfrage für q.

Man betrachte nun aber die erwartete Suchzeit. Untersucht man den Suchpfad von q, sowurde jeder der Knoten auf diesem Pfad in einem Iterationsschritt des Algorithmus erzeugt.Bezeichne Xi, 1 ≤ i ≤ n, die Anzahl an Knoten auf dem Pfad, die in Iterationsschritt i hin-zugefügt wurden. Da S und q als fest angenommen sind, ist Xi eine Zufallsvariable, welche

2 Begründung wird in den folgenden Beweisen gegeben3 der Durchschnitt, der sich über alle n! möglichen Permutationen ergibt

Page 19: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Wegberechnung für Punktroboter mittels Trapezierung 11

nur von der zufälligen Einfügereihenfolge der Segmente abhängt. Die erwartete Pfadlängekann nun wie folgt angegeben werden:

E[n∑

i=1

Xi] =n∑

i=1

E[Xi]

Da in einem Iterationsschritt die Tiefe des Suchgraphen um maximal 3 zunimmt, wird auchder Suchpfad für q maximal um 3 länger, also gilt Xi ≤ 3. Bezeichnet Pi die Wahrschein-lichkeit, dass es einen in Iteration i erzeugten Knoten auf dem Suchpfad von q gibt, sofolgt:

E[Xi] ≤ 3Pi

Um Pi nach oben zu beschränken, hilft folgende Beobachtung: Ein Knoten wurde genaudann in Iteration i zum Suchpfad von q hinzugefügt, wenn ∆q(Si−1), das Trapez, welches qin T (Si−1) enthält, nicht das gleiche ist, wie ∆q(Si). Formal geschrieben:

Pi = Pr[∆q(Si) 6= ∆q(Si−1)]

Wenn ∆q(Si) und ∆q(Si−1) nicht identisch sind, muss ∆q(Si) in Iteration i entstandensein. Alle Trapeze ∆, die in Iteration i entstanden sind, grenzen an das in dieser Iterationeingefügte Segment si; entweder top(∆) oder bottom(∆) ist si, oder leftp(∆) oder rightp(∆)sind ein Endpunkt von si.

Man betrachte nun eine beliebige, aber feste Menge Si ⊂ S. Die Trapezierung T (Si)und damit insbesondere ∆q(Si) ist allein als Funktion von S definiert. ∆q(Si) hängt alsonicht von der Reihenfolge ab, in der die Segmente von Si eingefügt wurden. Um die Wahr-scheinlichkeit, dass sich das q enthaltene Trapez durch Einfügen von si geändert hat, nachoben zu beschränken, benutzt man die Technik der Rückwärtsanalyse: Betrachte T (Si) unduntersuche die Wahrscheinlichkeit, dass ∆q(Si) aus der Trapezierung verschwindet, wennSegment si entfernt wird. ∆q(Si) verschwindet nur genau dann aus der Trapezierung, wenntop(∆q(Si)), bottom(∆q(Si)), leftp(∆q(Si)) oder rightp(∆q(Si)) durch das Entfernen vonsi verschwinden (siehe oben). Man untersuche jetzt die Wahrscheinlichkeit, dass top(∆q(Si))verschwindet. Da alle Segmente von Si in zufälliger Reihenfolge eingefügt wurden, ist fürjedes Element die Wahrscheinlichkeit gleich hoch si zu sein. Also ist die Wahrscheinlichkeit,dass si = top(∆q(Si)) gilt, 1/i. 4 Entsprechendes gilt für bottom(∆q(Si)).

Es kann mehrere Segmente geben, die als Endpunkt den Punkt leftp(∆q(Si)) haben. Da-her kann die Wahrscheinlichkeit, dass si eines dieser Segmente ist, groß sein. Allerdings ver-schwindet leftp(∆q(Si)) nur, wenn si das einzige Segment von Si ist, welches leftp(∆q(Si))als Endpunkt besitzt. Dementsprechend ist auch für leftp(∆q(Si)) die Wahrscheinlichkeitmaximal 1/i, dass er verschwindet. Gleiches gilt für rightp(∆q(Si)). Zusammenfassend er-gibt sich somit:

Pi = Pr[∆q(Si) 6= ∆q(Si−1)] = Pr[∆q(Si) /∈ T (Si−1)] ≤ 4/i

Für die erwartete Laufzeit der Suchanfrage folgt abschließend:

E[n∑

i=1

Xi] ≤n∑

i=1

3Pi ≤n∑

i=1

12i

= 12n∑

i=1

1i

= 12Hn

4 Falls top(∆q(Si)) die obere Kante des äußeren Rechtecks ist, ist die Wahrscheinlichkeit 0.

Page 20: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

12 Michael Kionka

Hn entspricht hierbei der n-ten Harmonischen Zahl, die wie folgt definiert ist:

Hn :=11

+12

+13

+ ... +1n

Für n > 1 gilt:lnn < Hn < lnn + 1

Somit ergibt sich für eine Suchanfrage für einen beliebigen Punkt q die erwartete LaufzeitO(log n). ut

Theorem 2. Berechne Algorithmus Trapezierung eine Trapezierung für eine Menge S vonn Liniensegmenten in Normallage und eine zugehörige Suchstruktur. Die erwartete Größeder Suchstruktur D beträgt dann O(n).

Beweis. Es genügt die Anzahl von Knoten in D anzugeben, um die Größe der Suchstrukturzu beschränken. Die Blätter von D gehören alle zu genau einem Trapez der Trapezierungund jedes Trapez besitzt genau ein Blatt in D, so dass die Anzahl der Blätter der Anzahl derTrapeze entspricht, welche durch O(n) beschränkt ist (siehe Lemma 1). Für die Gesamtzahlvon Knoten ergibt sich somit:

O(n) +n∑

i=1

(Anzahl innerer Knoten, die in Iteration i erzeugt wurden)

Sei ki die Anzahl an Trapezen, die in Iteration i neu erzeugt wurden. ki entspricht somit derAnzahl der neuen Blätter in D. Die Anzahl neuer innerer Knoten entspricht genau ki − 1(siehe [1], Seite 131–133).

Eine einfache obere Schranke für die worst-case Größe der Suchstruktur ergibt sich ausder Tatsache, dass offensichtlich nicht mehr Trapeze in Iteration i neu erzeugt werden kön-nen, als insgesamt in der Trapezierung T (Si) vorhanden sind. Dies entspricht O(i). Somitfolgt für die obere Schranke:

O(n) +n∑

i=1

O(i) = O(n2)

Aber nun zurück zum eigentlichen Beweis. Für die erwartete Größe gilt zunächst

O(n) + E[n∑

i=1

(ki − 1)] = O(n) +n∑

i=1

E[ki]

Es muss also noch E[ki] beschränkt werden. Man betrachte eine feste Menge Si ⊂ S. Fürein Trapez ∆ ∈ T (Si) und ein Segment s ∈Si, sei

δ(∆, s) :=

1, falls ∆ aus T (Si) verschwindet, wenn s aus Si entfernt wurde0, sonst

Im Beweis zu Theorem 1 zeigte sich, dass es maximal 4 Segmente gibt, die zum Verschwindeneines Trapezes führen können. Es folgt also∑

s∈Si

∑∆∈T (Si)

δ(∆, s) ≤ 4|T (Si)| = O(i)

Page 21: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Wegberechnung für Punktroboter mittels Trapezierung 13

Für ki gilt nun zusätzlich, dass es die Anzahl Trapeze in T (Si) angibt, die verschwinden,wenn Segment si entfernt wird. Da si ein zufälliges Element aus Si ist, kann der Durchschnittüber alle s ∈Si für E[ki] herangezogen werden:

E[ki] =1i

∑s∈Si

∑∆∈T (Si)

δ(∆, s) ≤ O(i)i

= O(1)

Die erwartete Anzahl von neuen Trapezen in jeder Iteration des Algorithmus ist also O(1).

Insgesamt folgt somit eine erwartete Größe der Suchstruktur von O(n).ut

Es fehlt nun noch eine Laufzeitbeschränkung für den eigentlichen Algorithmus.

Theorem 3. Algorithmus Trapezierung berechnet eine Trapezierung T (S) für eine MengeS von n Liniensegmenten in Normallage und eine Suchstruktur D für T (S) in O(n log n)erwarteter Zeit.

Beweis. Die Permutation der Elemente von S benötigt O(n) Zeit (siehe [1], Kapitel 4, Seite78). Für eine Ausführung des Schleifenrumpfes, was dem Einfügen eines Segmentes ent-spricht, ergibt sich Folgendes: Das Suchen der betroffenen Trapeze in Schritt 5 benötigtunter Zurhilfenahme der Suchstruktur von T (Si−1) O(log i) Zeit (siehe [1], Seite 130f.), wo-bei i den i-ten Schleifendurchlauf bzw. das i-te eingefügte Segment meint. Das Aktualisierender Trapezierung und der Suchstruktur benötigt O(ki) Zeit (siehe [1], Seite 131–133). Mitder im Beweis zu Theorem 2 erhaltenen Grenze für ki ergibt sich somit insgesamt

O(n) +n∑

i=1

O(log i) + O(E[ki]) = O(n log n)

für die Laufzeit von Algorithmus Trapezierung. ut

4 Wegberechnung

In diesem Kapitel wird beschrieben wie die Wegberechnung im Detail abläuft. Sie lässt sich inzwei Teilbereiche unterscheiden, die in zwei Unterkapiteln dargestellt werden. Zunächst mussaus den bekannten Informationen über den Bewegungsraum eine Repräsentation eben dessenkonstruiert werden, deren Datenmenge nicht zu komplex wird, die aber gleichzeitig spätereine schnelle Wegfindung ermöglicht. Dies geschieht vor der eigentlichen Wegberechnung. Ineinem zweiten Schritt kann nun jedes mal, wenn ein neuer Weg berechnet werden soll, aufdie bereits erstellte Repräsentation zurückgegriffen werden und auf dieser der Wegfindungs-Algorithmus ausgeführt werden.

4.1 initiale Berechnungen

In diesem Unterkapitel sollen Datenstrukturen konstruiert werden, die eine schnelle Weg-findung ermöglichen. Hierfür werden wir zunächst eine Repräsentation für den free spaceangeben.

Page 22: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

14 Michael Kionka

Berechnung des Free Space

Um die Handhabung angenehmer zu machen, begrenzen wir den Bewegungsraum des Robo-ters durch ein ausreichend großes Rechteck B, in dessen Innerem die Hindernisse liegen undin dem sich der Roboter bewegen wird. Den Bereich außerhalb des Rechtecks interpretierenwir als großes Hindernis. Durch diese Raumbeschränkung begrenzen wir den Bewegungsfrei-raum des Roboters jedoch nicht stärker als in realen Situationen, da auch dort irgendwannnatürliche Grenzen gegeben sind, so dass die Ergebnisse unserer Berechnungen nicht ver-fälscht sind. Der free space besteht nun aus dem Inneren des Rechtecks ohne die Hindernisse.Formal geschrieben: Cfree = B\

⋃ti=1P i

Unsere Repräsentation berechnen wir unter Verwendung der im letzten Kapitel vorgestelltenTechnik der Trapezierung. Die Eingabe besteht aus der Menge der disjunkten, polygonenHindernisse, genauer gesagt aus Polygonzügen, die jeweils die Kanten eines dieser Hinder-nisse beschreiben. Die Segmente im Trapezierungs-Algorithmus stellen dementsprechend dieKanten der Hindernisse dar. Als Datenstruktur wird eine doppelt-verkettete Liste für dieKanten verwendet.Die Berechnung sieht algorithmisch dann wie folgt aus:

Algorithmus 2 BerechneFreeSpaceEingabe: H= P1, . . . ,Pt als Menge von disjunkten PolygonenAusgabe: Trapezierung von Cfree(R,H) inklusive Suchstruktur D für Punktroboter R1: Sei E die Menge von Kanten der Polygone in H2: Berechne Trapezierung T (E) und Suchstruktur D mittels Trapezierung(E)3: Entferne die Trapeze, die innerhalb der Polygone liegen, aus T (E) und D4: Ausgabe der resultierenden Trapezierung und Suchstruktur

Schritt 3, also das Entfernen der Trapeze, die innerhalb der Hindernisse liegen, kanndabei wie folgt realisiert werden: Nach der Trapezierung ist für jedes Trapez bekannt, durchwelche Kante es von oben begrenzt wird (top(∆)) und zu welchem Polygon/Hindernis dieseKante gehört. Um nun zu entscheiden, ob das entsprechende Trapez entfernt werden muss,reicht es aus zu testen, ob die Kante das Hindernis von oben oder von unten begrenzt. Wirdein Trapez gefunden, das innerhalb eines Hindernisses liegt, so werden seine Daten aus derTrapezierung entfernt. Weiterhin wird das Trapez in der Suchstruktur als nicht vorhan-den markiert, damit bei einer Punktsuche festgestellt werden kann, dass der entsprechendePunkt im forbidden space liegt.

Abbildung 4 zeigt noch einmal die sich nach Schritt 2 und 3 ergebenden Trapezierungen.Es folgt eine Analyse der Laufzeit des Algorithmus:

Sei n die Anzahl an Segmenten/Hinderniskanten. Die Trapezierung benötigt dannO(n log n)erwartete Zeit. Der Test, ob ein Trapez innerhalb eines Hindernisses liegt, benötigt nur kon-stante Zeit, da die Kanten der Hindernisse in der Reihenfolge ihres Vorkommens entlangder Hindernisgrenze sortiert sind, so dass bekannt ist, auf welcher Seite der Kanten derHindernisinnenraum liegt.

Die erhaltenen Datenstrukturen, also die Trapezierung T (Cfree) und die Suchstruktur Dhaben nach Lemma 1 und Theorem 2 beide eine Komplexität von O(n).

Page 23: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Wegberechnung für Punktroboter mittels Trapezierung 15

Abb. 4. Trapezierungen von BerechneFreeSpace vor und nach Schritt 3

Damit ergibt sich folgendes Lemma:

Lemma 2. Sei R ein Punktroboter. Sei H eine Menge von disjunkten, polygonen Hindernis-sen, wobei n die Gesamtanzahl ihrer Kanten ist. R bewegt sich zwischen diesen Hindernis-sen. Die Trapezierung des free space benötigt dann O(n log n) erwartete Zeit. Die erhaltenenDatenstrukturen haben eine Komplexität von O(n).

Wegkarte

Um die Wegberechnung zu vereinfachen, konstruieren wir uns eine weitere Datenstruktur.

Wenn sich sowohl Start- als auch Zielposition im gleichen Trapez befinden, besteht der Wegaus einer einfachen direkten Bewegung von der Start- zur Zielposition. Auf Grund unserervorherigen Definitionen ist garantiert, dass sich auf diesem Weg kein Hindernis befindet. Vielhäufiger wird es aber vorkommen, dass Start- und Zielposition in unterschiedlichen Trape-zen liegen. Um die Wegberechnung in diesem Fall zu vereinfachen, erzeugen wir uns einenGraph als Wegkarte, die uns Wege beschreibt, auf denen wir uns leicht zwischen verschie-denen Trapezen bewegen können. Hierbei nutzen wir aus, dass zwei benachbarte Trapezeimmer eine gemeinsame vertikale Kante besitzen, die durch eine vertikale Erweiterung einesSegmentendpunktes entstanden ist. Die Knoten des Graphen wählen wir nun wie folgt. Wirnehmen zum einen den Mittelpunkt jeden Trapezes und zum anderen jeweils die Mitte jedervertikalen Erweiterung als Knoten. Die Kanten legen wir jeweils von jedem Trapezmittel-punkt zu den Mittelpunkten der begrenzenden vertikalen Erweiterungen. Auf diese Weiseentsteht jeweils ein Weg von der Mitte eines Trapezes zu den Mitten der angrenzenden Tra-peze über die zwischen ihnen liegende vertikale Begrenzung, der aus zwei translatorischenBewegungen besteht. Eine Veranschaulichung der Wegkarte ist in Abbildung 5 gegeben. DieKonstruktion dieser Wegkarte aus den in der Trapezierung enthaltenen Informationen ist inZeit O(n) möglich.

Für die Komplexität der Wegkarte gilt:Der Graph besitzt einen Knoten pro Trapez und jeweils einen Knoten für jede vertikaleErweiterung. Sowohl die Anzahl an vertikalen Erweiterungen als auch die Anzahl an Tra-

Page 24: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

16 Michael Kionka

pezen ist linear bezogen auf die Gesamtanzahl der Ecken der Hindernisse. Diese wiederumist linear bezogen auf die Anzahl der Kanten der Hindernisse.

Die Anzahl an Kanten im Graph ist ebenfalls linear, da er planar ist. Dies folgt aus demeulerschen Polyedersatz.Insgesamt folgt also, dass die Komplexität der Wegkarte durch O(n) beschränkt ist.

pstart

pziel

vziel

vstart

start

ziel

Abb. 5. Wegkarte und Wegkomponenten des vollständigen Weges

4.2 Pfadberechnung

In diesem Unterkapitel wird der eigentliche Wegberechnungs-Algorithmus vorgestellt.

Durch die initialen Berechnungen besitzen wir eine Trapezierung des free space (inklusi-ve Suchstruktur) und eine auf dieser aufsetzende Wegkarte. Ziel ist es nun mit Hilfe dieserDatenstrukturen einen Weg von einem Startpunkt pstart zu einem Zielpunkt pziel zu findenund, falls dieser existiert, diesen zu berechnen und auszugeben.

Liegen pstart und pziel im gleichen Trapez, ergibt sich der Weg wie beschrieben als di-rekte Bewegung zwischen ihnen. Ansonsten lässt sich ein existierender Weg aus drei Teilenzusammensetzen; dabei bezeichne vstart und vziel die Knoten im Wegkartengraphen, die inder Mitte von ∆start und ∆ziel liegen:

Page 25: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Wegberechnung für Punktroboter mittels Trapezierung 17

1. Eine direkte Bewegung von pstart zum Wegkartenknoten vstart in der Mitte von ∆start.2. Eine Bewegung entlang der Wegkarte von vstart zu vziel. (Berechnung über Breitensuche

im Wegkartengraphen möglich)3. Eine direkte Bewegung vom Wegkartenknoten vziel in der Mitte von ∆ziel zu pziel.

Falls kein Weg zwischen pstart und pziel existiert, so gibt es hierfür zwei mögliche Gründe:

• Einer der Punkte pstart und pziel liegt nicht im free, sondern im forbidden space.• Beide Punkte liegen zwar im free space, aber zwischen ihnen liegt nicht umgehbarer

forbidden space.

Der vollständige Algorithmus sieht dann wie folgt aus:

Algorithmus 3 BerechnePfadEingabe: Trapezierung T (Cfree) mit Suchstruktur D, Wegkarte Groad, Positionen pstart, pziel

Ausgabe: Weg von pstart zu pziel, falls einer existiert, sonst entsprechend negative Meldung1: Finde ∆start und ∆ziel

2: if ∆start oder ∆ziel nicht existent then3: Ausgabe, dass pstart oder pziel in Cforb liegen4: else5: Sei vstart der Wegknoten in der Mitte von ∆start

6: Sei vziel der Wegknoten in der Mitte von ∆ziel

7: Berechne den Weg in Groad von vstart zu vziel mittels Breitensuche8: if es existiert kein Weg then9: Ausgabe, dass kein solcher Weg existiert

10: else11: Ausgabe des Weges pstart 7→ vstart vziel 7→ pziel

Beweis. Um die Korrektheit des Algorithmus zu beweisen, müssen zwei Dinge gezeigt wer-den.

• Jeder Weg, der ausgegeben wird, ist kollisionsfrei.• Wenn ein kollisionsfreier Weg existiert, wird er auch gefunden.

zu 1. Ausgegebene Wege befinden sich immer innerhalb von Trapezen. Da aber alle Trapezezum Cfree gehören, der nach Definition kollisionsfreie Positionen angibt, muss ein ausgege-bener Weg kollisionsfrei sein.zu 2. Angenommen, es gibt einen kollisionsfreien Weg von pstart nach pziel. Damit müssenpstart und pziel in Trapezen des free space liegen. Es muss also noch gezeigt werden, dasses einen Weg von vstart nach vziel in Groad gibt. Dieser Weg muss eine Folge von Trapezenschneiden. Bezeichne die Folge von Trapezen mit ∆1,∆2, . . . ,∆k, wobei nach Definition∆1 = ∆start und ∆k = ∆ziel gilt. Sei vi der Knoten von Groad, der in der Mitte von ∆i

liegt. Wenn der Weg von ∆i nach ∆i+1 geht, dann müssen die beiden Trapeze Nachbarnsein und sich damit eine vertikale Erweiterung teilen. Aber Groad ist so konstruiert, dassdie Knoten solcher Trapeze über den Knoten ihrer gemeinsamen Grenze verbunden sind.Also gibt es einen Weg in Groad von vi nach vi+1. Daraus folgt, dass es auch einen Weg vonv1 nach vk bzw. vstart nach vziel gibt. Einen solchen Weg findet eine Breitensuche, die aufGroad ausgeführt wird. ut

Nachdem die Korrektheit des Algorithmus nachgewiesen ist, folgt nun eine Analyse seinerLaufzeit:

Page 26: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

18 Michael Kionka

Das Suchen der Trapeze in Schritt 1 kann mittels der Suchstruktur erfolgen, die währendder Trapezierung des free space erzeugt wird. Es benötigt somit O(log n) erwartete Zeit undmaximal O(n) Zeit. Das Berechnen eines Weges in Graphen mittels Breitensuche benötigtlineare Zeit bezogen auf die Größe des Graphen. Wie gezeigt ist die Größe des Graphendurch O(n) beschränkt. Somit benötigt die Breitensuche O(n) Zeit. Die benötigte Zeit zurAusgabe des Weges ist begrenzt durch die maximale Anzahl an Kanten auf dem Weg, welcheO(n) ist.Insgesamt benötigt der Algorithmus also eine Laufzeit von O(n).

Unsere Untersuchungen lassen sich in einem abschließenden Theorem zusammenfassen.

Theorem 4. Sei R ein Punktroboter. Sei H eine Menge von disjunkten, polygonen Hinder-nissen, wobei n die Gesamtanzahl ihrer Kanten ist. R bewegt sich zwischen diesen Hinder-nissen. H lässt sich in erwarteter Zeit von O(n log n) so aufbereiten, dass ein kollisionsfreierWeg zwischen Start- und Zielposition für R in O(n) berechnet werden kann, falls er existiert.Die erzeugten Datenstrukturen haben dabei eine Komplexität von O(n).

5 Zusammenfassung

5.1 Bewertung

Die in dieser Ausarbeitung vorgestellte Methode der Wegberechnung für einen Robotermittels Trapezierung liefert wie gezeigt zulässige Wege, wenn sie existieren. Sie garantiertjedoch keine kürzesten Wege. Genauer gesagt wird sie auf Grund ihrer Herangehensweisefast nie kürzeste Wege liefern. Dies ist bereits in der in Abbildung 5 dargestellten Situa-tion erkennbar. Für ein extremeres Beispiel kann man als Start- und Zielpunkt die beidenunteren Ecken wählen. Es ergibt sich ein unnötig komplizierter Weg, wie in Abbildung 6veranschaulicht ist.

Aus diesem Grund muss man die Vorgehensweise als nicht realitäts-tauglich einstufen.Niemand wird akzeptieren, dass ein Roboter Zick-Zack-Linien fährt, obwohl eine geradlini-ge Bewegung möglich wäre. Bei den Zick-Zack-Bewegungen handelt es sich um ein ansatz-bedingtes Problem, welches sich daher mit diesem Ansatz kaum vermeiden lassen wird. Einegewisse Verbesserung ist jedoch auch beim gezeigten Ansatz noch möglich. Die Wegfindungin der Wegkarte Groad beruht auf Breitensuche. Daher wird bei mehreren zulässigen Wegen,derjenige Weg gewählt, der die wenigsten Knoten besitzt. Dies ist jedoch nicht zwingendsinnvoll, da nicht von gleichen Entfernungen zwischen den einzelnen Knoten ausgegangenwerden kann. Deutlich besser wäre es daher, für jede Kante im Graphen ein Kantenge-wicht anzugeben, das die jeweilige Länge beschreibt und dann einen kosten-optimierendenAlgorithmus anzuwenden.

5.2 Ausblick

Soll das Problem von einem Punktroboter, wie hier betrachtet, auf konvexe Roboter erwei-tert werden, so können die vorgestellten Algorithmen weitgehend beibehalten werden. Dasich nun aber der work space und der configuration space unterscheiden, gestaltet sich die

Page 27: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Wegberechnung für Punktroboter mittels Trapezierung 19

start ziel

pstart pziel

vstart vziel

Abb. 6. Beispiel für eine schlechte Wegberechnung

Berechnung des free space aufwändiger. Die Berechnung benötigt nun O(n log2 n) erwarte-te Zeit, wobei die Komplexität des free space weiterhin linear bleibt. Auch die eigentlicheWegberechnungszeit beträgt weiterhin O(n). Die Berechnung und die Schranken werden in[1] in Kapitel 13.3 und 13.4 vorgestellt und bewiesen. Mit einem verbesserten Algorithmuskann die free space-Berechnungszeit jedoch auch wieder auf O(n log n) gesenkt werden.

Sollen auch Rotationsbewegungen erlaubt sein, so gestalten sich die Berechnungen wie-derum komplizierter. Eine mögliche Erweiterung hierfür wird in Kapitel 13.5 in [1] beschrie-ben.

Neben dem hier vorgestellten Verfahren mittels Trapezierung, existieren weitere Verfahren,die insbesondere auch optimale Lösungen garantieren. Ein Beispiel für ein solches Verfahrenunter Verwendung so genannter gerahmter quadtrees, wird im Seminarbeitrag vorgestellt.

Literaturverzeichnis

1. de Berg M, van Kreveld M, Overmars M, Schwarzkopf O (2000) Computational Geometry, Algorithmsand applications, 2nd Edition Springer, Berlin Heidelberg New York

2. Mulmuley K (1990) A fast planar partition algorithm. In: Journal of Symbolic Computation 10:253–2803. Seidel R (1991) A simple and fast incremental randomized algorithm for computing trapezoidal decom-

positions and for triangulating polygons. Comput. Geom. Theory Appl. 1:51–64

Page 28: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

20 Michael Kionka

4. Kedem K, Livne R, Pach J, Sharir M (1986) On the union of Jordan regions and collision-free transla-tional motion amidst polygonal obstacles. Discrete Comput. Geom. 1:59–71

5. Kedem K, Sharir M (1985) An efficient algorithm for planning collision-free translational motion of aconvex polygonal object in 2-dimensional space amidst polygonal obstacles. In: Proc. 1st Annu. ACMSympos. Comput. Geom. 75–80

Page 29: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Der Einsatz von Bereichsbäumen zur Beantwortung vonorthogonalen Bereichsanfragen

Jasmin Kovač-Engelmeier

Universität Paderborn

Zusammenfassung. Unter einer orthogonalen Bereichsanfrage versteht man die Suche nach den Punkteneiner gegebenen Punktmenge in einem d-dimensionalen Raum, die in einem achsenparallelen definiertenBereich liegen. Ein mögliches Anwendungsgebiet für orthogonale Bereichsanfragen ist die Realisierung vonDatenbankanfragen. So wird jede Tabellenspalte als eine Dimension interpretiert, und jede Tabellenzeile alsein Punkt in dem entsprechenden d-dimensionalen Raum. Für die 1-dimensionale Bereichssuche kann auf dieDatenstruktur eines binären balancierten Suchbaums zurückgegriffen werden. Im Fall der 2-dimensionalenoder auch mehrdimensionalen Bereichssuche bieten sich Bereichsbäume als eine Datenstruktur an. Wiediese Datenstrukturen genutzt werden können, um orthogonale Bereichsanfragen zu unterstützen, wird inder vorliegenden Arbeit erörtert.

1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2 Orthogonale Bereichsanfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3 1-dimensionale Bereichssuche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4 Bereichsbäume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

5 Mehrdimensionale Bereichsbäume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

6 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

1 Einleitung

Das Problem, orthogonale Bereichsanfragen effizient zu beanworten, spielt nicht nur in-nerhalb der Geometrie eine wichtige Rolle. So kann diese Fragestellung z.B. konkret aufDatenbankanfragen übertragen werden, wenn jeder Datensatz als ein Punkt in einer Ebenebzw. in einem mehrdimensionalen Raum interpretiert wird. Aus einer Menge von Daten-strukturen, die das Beantworten von orthogonalen Bereichsanfragen unterstützen können,fiel im Rahmen der vorliegenden Proseminararbeit die Wahl auf Bereichsbäume1.

In dem folgenden Kapitel wird zunächst der Begriff einer orthogonalen Bereichsanfrageanhand eines Anwendungsbeispiels näher erläutert. Es gilt dann in den darauffolgendenKapiteln ausführlich zu beschreiben, wie binäre balancierte Suchbäume die 1-dimensionale

1 Die folgenden Ausführungen orientieren sich primär an [1].

Page 30: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

22 Jasmin Kovač-Engelmeier

Bereichssuche und schließlich Bereichsbäume die 2- bzw. mehrdimensionale Bereichssucheunterstützen können.

2 Orthogonale Bereichsanfragen

Auf den ersten Blick scheint es fraglich, ob und wie die Geometrie für Datenbankanfragengenutzt werden kann. Wenn nun aber jede der n Spalten einer Datenbank als eine Dimensionund jede Zeile als ein Punkt in einem entsprechenden d-dimensionalen Raum interpretiertwird, so kann die Suche nach einem Datenbankeintrag durch die Suche nach dem korrespon-dierenden Punkt im d-dimensionalen Raum simuliert werden.

Ein anschauliches Beispiel aus der Praxis ist die Mitarbeiterliste, welche von der Perso-nalabteilung eines Unternehmens erstellt wird. In der Datenbank ist von jedem Mitarbei-ter der Name, die Adresse, das Geburtsdatum, das Gehalt usw. gespeichert. Aus welchenGründen auch immer kann es nun notwendig sein, dass eine Auswertung über alle Mitar-beiter, die zwischen 1950 und 1955 geboren sind und die zugleich zwischen Euro 3.000,-und Euro 4.000,- pro Monat verdienen, erstellt werden soll. Diese Anfrage kann nun auchgeometrisch interpretiert werden. Dies erfolgt, indem jeder Mitarbeiter als ein Punkt inder Ebene dargestellt wird. Die erste Koordinate spiegelt dann das Geburtsdatum wieder,und die zweite Koordinate das monatliche Einkommen. Das Geburtsdatum wird in demvorliegenden Beispiel nach der folgenden Regel umgewandelt: 10.000 × Geburtsjahr + 100× Monat + Tag. So erhält man zum Beispiel für das Geburtsdatum 02.01.1954 den Wert19.540.102. Für die oben genannte Anfrage bedeutet dies, dass alle Punkte gesucht werden,deren erste Koordinate zwischen den Werten 19.500.000 und 19.559.999 liegt, und derenzweite Koordinate sich zwischen den Werten 3.000 und 4.000 befindet. Wenn man dies nunin ein Koordinatensystem überträgt, so wird deutlich, dass die Punkte, die gesucht werden,in dem achsenparallelen Rechteck liegen, das durch die Eckpunkte (19.500.000, 3.000) und(19.559.999, 4.000) definiert wird (vgl. Abbildung 12).

Eine solche Anfrage kann selbstverständlich noch um weitere Attribute ergänzt werdenwie z.B. die Anzahl der Kinder eines Mitarbeiters. D.h. es werden in dem Beispiel nun alleMitarbeiter gesucht, die zwischen 1950 und 1955 geboren worden sind, monatlich zwischenEuro 3.000,- und Euro 4.000,- verdienen und zusätzlich zwei bis vier Kinder haben. DieAnzahl der Kinder wird demnach durch die dritte Koordinate eines jeden Punktes reprä-sentiert. Somit handelt es sich um eine Suche im dreidimensionalen Raum. Im Rahmender Anfrage sind alle Punkte zu ermitteln, die in dem achsenparalleln Quader [19.500.000 :19.559.999] × [2.000 : 4.000] × [2 : 4] liegen (siehe Abbildung 23).

Anhand der beiden vorgestellten Beispiele lässt sich zusammenfassen, dass die Datensät-ze einer Datenbank sich als Punkte in einem d-dimensionalen Raum darstellen lassen. DieSuche nach den auf eine Anfrage zutreffenden Datenbankeinträge wird durch die Suche nachder Punktmenge ersetzt, die in dem d-dimensionalen und achsenparallel begrenzten Bereich

2 Die Abbildung ist entnommen aus [1].3 Die Abbildung ist entnommen aus [1].

Page 31: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Bereichsbäume 23

Gehalt

4.000

3.000

Karl SchmidtGeburtsdatum: 19. August 1954Gehalt: € 3.678,‐

Geburtsdatum19.500.000 19.559.999

Abb. 1. Geometrische Interpretation einer Datenbankanfrage

Gehalt

4.000

3.000

Kinder

Geburtsdatum19.500.000 19.559.999

4

2

Abb. 2. Geometrische Interpretation einer Datenbankanfrage in einem 3-dimensionalen Raum

Page 32: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

24 Jasmin Kovač-Engelmeier

liegt. Das Ermitteln dieser Punktmenge wird als orthogonale4 Bereichsanfrage bezeichnet.

Im Folgenden werden Datenstrukturen vorgestellt, die orthogonale Bereichsanfragen un-terstützen. Zunächst wird auf eine Datenstruktur für die 1-dimensionale Bereichssuche ein-gegangen, um von dieser Datenstruktur die Vorgehensweise für 2- und mehrdimensionaleBereichsanfragen abzuleiten.

3 1-dimensionale Bereichssuche

Im Fall der Bereichssuche in einem 1-dimensionalen Raum besteht die betrachtete Punkt-menge aus reellen Zahlen. Bei einer Anfrage werden dann die Punkte gesucht, die in einem1-dimensionalen Rechteck liegen, d.h. also in einem Intervall [x : x′].

Sei nun P := p1, p2, . . . , pn die Menge der Punkte auf einer Zahlengeraden. Die Durch-führung der 1-dimensionalen Bereichssuche kann nun mithilfe eines balancierten binärenSuchbaums τ erfolgen. In den Blättern von τ werden alle Punkte von P gespeichert. Inden inneren Knoten von τ sind die sogenannten Splittwerte gespeichert. Sie übernehmen imSuchbaum sozusagen die Rolle von Wegweisern. Der Splittwert eines inneren Knotens v wirdmit xv bezeichnet. Charakteristisch für einen Suchbaum ist, dass alle Werte, die im linkenTeilbaum von v gespeichert sind, kleiner als oder gleich xv sind. Analog sind alle Werte, diesich im rechten Teilbaum von v befinden, größer als xv.

Zum Ermitteln der Punkte, die in dem Intervall [x : x′] liegen, wird in τ eine Suche nachx und x′ durchgeführt. Mit µ und µ′ werden die Blätter bezeichnet, bei denen jeweils dieSuche nach x und x′ in τ endet. Man kann somit sagen, dass die Punkte, die in dem Intervall[x : x′] liegen, in den Blättern zwischen µ und µ′ gespeichert sind. Zusätzlich ist zu prüfen,ob auch die Werte von µ und µ′ in diesem Intervall liegen.

Ein gutes Anschauungsbeispiel liefert die Abbildung 35, in welcher die 1-dimensionaleBereichsanfrage in einem binären Suchbaum dargestellt ist. Es sollen in dem Beispiel allePunkte ermittelt werden, die in dem Intervall [18 : 77] liegen. Mithilfe der Abbildung lässtsich schnell intuitiv die Lösung ermitteln. So liegen in der Ergebnismenge alle Punkte, diein den dunkelgrau markierten Blättern gespeichert sind, plus der Punkt, der in dem Blatt µgespeichert ist. Wie lässt sich nun diese eher intuitive Vorgehensweise, die zwischen µ undµ′ liegenden Blätter, welche die gesuchten Punkte beinhalten, zu ermitteln, in einen Algo-rithmus fassen? Beim Betrachten des abgebildeten Suchbaums fällt auf, dass die gesuchtenBlätter zu Teilbäumen gehören, die sich zwischen µ und µ′ befinden, und deren Wurzeln aufden Suchpfaden von x und x′ liegen. Um diese Blätter zu finden, ist es zunächst notwen-dig, den letzten gemeinsamen Knoten vsplit zu ermitteln, bei dem sich die Suchpfade vonx und x′ voneinander trennen. Das Ermitteln von vsplit wird mittels der folgenden Proze-dur FindeSplittknoten durchgeführt. Mit LK(v) und RK(v) werden jeweils das linke undrechte Kind eines Knotens v bezeichnet.

4 Der Begriff orthogonal kommt aus dem Griechischen, und bedeutet soviel wie rechtwinklig oder rechteckig(vgl. [2]).

5 Die Abbildung ist entnommen aus [1].

Page 33: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Bereichsbäume 25

49

23 8023 80

10 37 62 89

3 19 30 49 59 70 89 100

37302319103 59 62 70 80 100 105

μ μ'

Abb. 3. Beispiel einer 1-dimensionalen Bereichssuche in einem binären balancierten Suchbaum

FindeSplittknoten(τ, x, x′)Eingabe: Baum τ und die Werte x und x′ mit x ≤ x′.Ausgabe: Knoten v, bei dem die Wege zu x und x′ starten, oder das Blatt, wo beide Wege enden.

1. v ← root(τ)2. while v ist kein Blatt and (x′ ≤ xv or x > xv)3. do if x′ ≤ xv

4. then v ← LK(v)5. else v ← RK(v)6. return v

Die Eingabeparameter für die Prozedur sind τ, x und x′. Beginnend bei der Wurzel desBaums τ , wird schrittweise jeder Knoten, der im Rahmen der Prozedur besucht wird, da-hingehend geprüft, ob er ein Blatt ist, und ob sein Wert innerhalb des Intervalls [x : x′]liegt. Solange dies nicht eintrifft, wird für den Fall, dass der Wert des betrachteten Knotensgrößer als x′ - sozusagen die rechte Grenze des Intervalls - ist, das linke Kind des betrachte-ten Knotens v als nächstes untersucht. Für den anderen Fall, d.h. dass der Wert des aktuellbetrachteten Knotens v kleiner als x - die linke Grenze des vorgegebenen Intervalls - ist, wirdals nächstes das rechte Kind des Knotens v untersucht. Sobald es sich bei dem betrachtetenKnoten v um ein Blatt handelt, oder der in ihm gespeicherte Wert in dem Intervall [x : x′]liegt, wird v als Splittknoten ausgegeben.

Der somit ermittelte Splittknoten wird nun zum Ausgangspunkt für den Suchpfad vonx. Bei jedem Knoten, der im Rahmen des Suchpfades besucht wird, wird überprüft, obder Wert x im linken oder im rechten Teilbaum zu suchen ist. D.h. es wird ein Vergleichzwischen x und dem Wert, der in v gespeichert ist, durchgeführt. Führt der Suchpfad imlinken Teilbaum weiter, so werden alle Blätter des rechten Teilbaums ausgegeben, da dieser

Page 34: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

26 Jasmin Kovač-Engelmeier

Teilbaum zwischen den Suchpfaden von x und x′ liegt. Analog wird der Suchpfad von x′

durchlaufen, jedoch mit dem Unterschied, dass, wenn der Suchpfad im rechten Teilbaumeines Knotens weiterverläuft, die Blätter des linken Teilbaums auszugeben sind. Wie bereitseingangs erwähnt, sind zusätzlich noch die beiden Blätter µ und µ′ darauf zu prüfen, ob diein ihnen gespeicherten Werte ebenfalls in dem Intervall [x : x′] liegen. Falls dies der Fall ist,sind auch sie entsprechend auszugeben.

Es folgt nun noch der entsprechende Algorithmus, welcher wiederum die ProzedurBerichteTeilbaum enthält. Mittels dieser Prozedur werden die Werte ausgegeben, die inden Blättern der Teilbäume gespeichert sind, deren Wurzeln auf einem der beiden Suchpfadeliegen. Aufgrund der Tatsache, dass die Anzahl der inneren Knoten eines binären Suchbau-mes kleiner als die Anzahl seiner Blätter ist, ist die Zeit, die diese Prozedur benötigt, linearzur Anzahl der zu berichtenden Punkte.

Algorithmus 1DBereichsanfrage(τ, [x : x′])Eingabe: ein binärer Suchbaum τ und ein Intervall [x : x′]Ausgabe: alle Punkte, die in τ gespeichert sind und in dem Intervall [x : x′] liegen.

1. vsplit ← FindeSplittknoten(τ, x, x′)2. if vsplit ist ein Blatt3. then überprüfe, ob der Punkt, der in vsplit gespeichert ist, auszugeben ist.4. else (*Folge dem Weg zu x und gib die Punkte der Teilbäume aus, die rechts

vom Suchpfad liegen.*)5. v ← LK(vsplit)6. while v ist kein Blatt7. do if x ≤ xv

8. then BerichteTeilbaum(RK(v))9. v ← LK(v)

10. else v ← RK(v)11. Überprüfe, ob der Punkt, der in dem Blatt v gespeichert ist, ausge-

geben werden muss.12. Folge analog dem Suchpfad von x′. Gib alle Punkte der Teilbäume aus,

die links von dem Suchpfad liegen, und überprüfe, ob der Punkt, derin dem Blatt gespeichert ist, wo der Suchpfad endet, ausgegeben wer-den muss.

Der vorgestellte Algorithmus scheint soweit die gesuchte Ergebnismenge zu liefern. Je-doch ist seine Korrektheit noch im Folgenden formal zu zeigen.

Lemma 1. Der Algorithmus 1DBereichsanfrage gibt genau die Punkte aus, die in demangegebenen Intervall liegen.

Der folgende Beweis erstreckt sich über zwei Teile. Zunächst ist zu zeigen, dass jederPunkt p, der durch den Algorithmus ausgegeben wird, in dem angegebenen Intervall liegt.Falls p in einem der beiden Blätter gespeichert ist, wo jeweils die Suchpfade von x undx′ enden, dann wird explizit durch den Algorithmus überprüft, ob p in dem vorgegebenenIntervall liegt, und ob p dementsprechend auszugeben ist. Andernfalls wird p infolge desAufrufs von BerichteTeilbaum ausgegeben. Angenommen dieser Aufruf findet während

Page 35: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Bereichsbäume 27

des Durchlaufens des Suchpfades von x statt. So sei v ein Knoten auf diesem Suchpfad,so dass p infolge des Aufrufs von BerichteTeilbaum(RK(v)) ausgegeben wird. Da v undfolglich auch RK(v) in dem linken Teilbaum von vsplit liegen, gilt p ≤ xvsplit

. Aus der Tat-sache, dass der Suchpfad von x′ rechts von xsplit abzweigt, folgt auch, dass p < x′ gilt. DesWeiteren steht fest, dass der Suchpfad von x links von v weiterverläuft. Da p im rechtenTeilbaum von v liegt, impliziert dies, dass x < p gilt. Daraus lässt sich insgesamt schließen,dass p ∈ [x : x′]. Der Beweis, dass p auch in dem Intervall liegt, wenn der Suchpfad von x′

durchlaufen wird, erfolgt symmetrisch.

In einem weiteren Schritt ist nun noch zu zeigen, dass auch tatsächlich alle Punkte vomAlgorithmus ausgegeben werden, die in dem vorgegebenen Intervall liegen. Zu diesem Zweckwird angenommen, dass µ das Blatt ist, in welchem p gespeichert ist. Zusätzlich sei v derkleinste Vorfahr von µ, der im Rahmen des Algorithmus besucht wird. Es wird behauptet,dass v = µ ist. Dies impliziert, dass p ausgegeben wird. Zur Erzeugung eines Widerspruchswird nun angenommen, dass v 6= µ ist. Geht man von dieser Annahme aus, dann kann v keinKnoten sein, der infolge eines Aufrufs der Prozedur BerichteTeilbaum besucht wird, da alleNachfolger dieses Knotens besucht werden. Somit kann v nur auf dem Suchpfad von x, aufdem Suchpfad von x′ oder auf beiden liegen. Im Folgenden wird lediglich der letztgenannteFall näher betrachtet, da sich alle drei Fälle ähnlich gestalten. Es wird angenommen, dassµ im linken Teilbaum von v angesiedelt ist. Der Suchpfad von x wird jedoch im rechtenTeilbaum von v fortgesetzt. Andernfalls wäre v nicht der kleinste Vorfahr, der im Rahmendes Algorithmus besucht wird. Dies hat zur Folge, dass p < x ist. Für den analogen Fall,dass der Suchpfad von x′ im linken Teilbaum von v weiterverläuft, gilt p > x′, da gemässder getroffenen Annahmen µ im rechten Teilbaum von v liegt. In beiden Fällen führt dieBehauptung, dass p in dem angegebenen Intervall liegt, zu einem Widerspruch. Folglich istbewiesen, dass der betrachtete Algorithmus alle Punkte ausgibt, die in dem vorgegebenenIntervall liegen.

Der Speicherplatz, der für einen balancierten binären Suchbaum benötigt wird, beträgtO(n). Des Weiteren wurde eingangs vorausgesetzt, dass der verwendete binäre Suchbaumbalanciert ist. Und balancierte Suchbäume garantieren eine Höhe von O(log n) (siehe [3]).Infolgedessen kann der Baum in einer Zeit von O(n log n) erzeugt werden. Die Suchzeitbeträgt im schlimmsten Fall Θ(n). Dies tritt ein, wenn sich alle Punkte des Baums indem angefragten Intervall befinden. Um jedoch so eine Suchzeit zu erhalten, würde es auchausreichen, einfach die Punkte mit dem Intervall zu vergleichen. Die zuvor beschriebeneDatenstruktur müsste dann erst gar nicht verwendet werden. Diese Suchzeit lässt sich aberauch nicht vermeiden, wenn alle Punkte, die in dem Baum gespeichert sind, am Ende aus-gegeben werden müssen, weil sie allesamt im Intervall liegen. Abgesehen vom schlimmstenFall, lässt sich jedoch eine Verbesserung der Suchzeit erreichen, wenn nicht nur die reine An-zahl n der Punkte aus P berücksichtigt wird, sondern auch die Anzahl der auszugebendenPunkte. Letztgenannte wird im weiteren Verlauf mit k bezeichnet. Aus der Tatsache, dassdie Zeit, die für einen Aufruf von BerichteTeilbaum benötigt wird, linear zur Anzahl deraus dem Teilbaum auszugebenden Punkte ist, folgt, dass der Zeitaufwand, der insgesamt fürdie Aufrufe von BerichteTeilbaum aufgebracht werden muss, O(k) beträgt. Alle restlichenKnoten, die noch in dem Baum τ besucht werden, liegen entweder auf dem Suchpfad von xoder auf dem von x′. Diese Suchpfade haben die Länge O(log n), da - wie eingangs voraus-

Page 36: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

28 Jasmin Kovač-Engelmeier

gesetzt - der binäre Suchbaum τ balanciert ist. Dadurch wird eine Baumhöhe von O(log n)garantiert. Für jeden Knoten, der auf dem Suchpfad besucht wird, fällt ein Zeitaufwand vonO(1) an. Demnach beträgt der Gesamtaufwand für diese Knoten O(log n). So erhält maneinen gesamten Suchaufwand von O(log n+k). Das folgende Theorem fasst noch einmal diewichtigsten Ergebnisse aus diesem Abschnitt zusammen.

Theorem 1. Sei P eine Menge von n Punkten in einem 1-dimensionalen Raum. Die Men-ge P kann in einem balancierten binären Suchbaum gespeichert werden. Dafür wird O(n)Speicherplatz und O(n log n) Konstruktionszeit benötigt. Die in einem angefragten Intervallliegenden Punkte können dann in O(k + log n) Zeit ausgegeben werden, wobei k für dieAnzahl der auszugebenen Punkte steht.

Eine 1-dimensionale Bereichsanfrage kann also mithilfe eines balancierten binären Such-baums durchgeführt werden. Es stellt sich nun die Frage, ob dieses Wissen genutzt werdenkann, um Bereichsanfragen in einem 2-dimensionalen Raum bewerkstelligen zu können.Dementsprechend beschäftigt sich das folgende Kapitel ausführlich mit Bereichsbäumen.Diese Datenstruktur unterstützt das Durchführen von 2-dimensionalen Bereichsanfragen.

4 Bereichsbäume

Allgemein lassen sich Bereichsbäume als eine Datenstruktur beschreiben, mittels derer nPunkte einer Menge P gespeichert werden können, um anschließend auf ihnen orthogonaleBereichsanfragen durchführen zu können. Im Grunde wurden Bereichsbäume bereits im vor-herigen Kapitel vorgestellt, denn ein balancierter binärer Suchbaum ist nichts anderes alsein 1-dimensionaler Bereichsbaum. Jedoch wie sieht dann der Aufbau eines Bereichsbaumsfür 2-dimensionale Bereichsanfragen aus? Bevor diese Frage beantwortet wird, gilt es einigeVorüberlegungen anzustellen.

Zunächst wird angenommen, dass P eine Menge von n Punkten in einem 2-dimensionalenRaum ist. Die Position jedes Punktes dieser Menge wird durch zwei Werte bestimmt: die x-und die y-Koordinate. Im Rahmen der 1-dimensionalen Bereichsanfrage wurden die Punkteermittelt, die innerhalb eines vorgegebenen Intervalls [x : x′] lagen. Bei der 2-dimensionalenBereichsanfrage sind wiederum die Punkte zu ermitteln, die in dem achsenparallelen Recht-eck liegen, welches durch [x : x′] × [y : y′] bestimmt wird. Im Grunde besteht die 2-dimensionale Bereichsanfrage aus zwei 1-dimensionalen Bereichsanfragen. So erfolgt im ers-ten Schritt die Ermittlung der Punkte aus P , deren x-Koordinate jeweils in dem Intervall[x : x′] liegt. Es liegt somit eine 1-dimensionale Bereichsanfrage vor, die bereits aus demvorherigen Kapitel bekannt ist. D.h. es wird zunächst der Splitknoten vsplit ermittelt, beidem sich die Suchpfade von x und x′ trennen. Mit dem linken Kind von vsplit beginnend,wird der restliche Suchpfad von x durchlaufen. Bei jedem Knoten wird überprüft, wo derSuchpfad weiterverläuft. Falls der Suchpfad im linken Teilbaum eines Knotens fortgesetztwird, werden alle Punkte, die im rechten Teilbaum von v gespeichert sind, ausgegeben. Dergleiche Vorgang wird für den restlichen Suchpfad von x′ wiederholt, wobei die Punkte deslinken Teilbaum eines Knotens ausgegeben werden, falls der Suchpfad im rechten Teilbaumvon v fortgesetzt wird. Die Blätter µ und µ′ - bei denen die Suchpfade von x und x′ jeweilsenden - werden explizit dahingehend geprüft, ob die in ihnen gespeicherten Punkte in dem

Page 37: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Bereichsbäume 29

vorgegebenen Intervall liegen. Infolgedessen werden O(log n) Teilbäume ausgewählt, die ge-nau die Punkte aus P enthalten, deren x-Koordinate in dem x-Intervall des Anfragebereichsliegt.

In diesem Zusammenhang soll der Begriff der kanonischen Teilmenge eingeführt werden.Die kanonische Teilmenge eines Knotens v, welche wiederum mit P (v) bezeichnet wird,ist die Teilmenge der Punkte, die in den Blättern eines Teilbaums gespeichert sind. DieWurzel dieses Teilbaums ist der Knoten v. So ist zum Beispiel die kanonische Teilmengeder Wurzel eines Baums die gesamte Punktmenge P . Wiederum die kanonische Teilmengeeines Blattes ist einfach der Punkt, der in dem Blatt gespeichert ist. Infolgedessen kanndie Teilmenge der Punkte aus P , deren x-Koordinate in dem angefragten Bereich liegt, alseine disjunkte Vereinigung von O(log n) kanonischen Teilmengen P (v) der Knoten v - d.h.den Wurzeln der ausgewählten Teilbäume - bezeichnet werden. Genaugenommen sind vondieser Teilmenge von P auch nur die Punkte von Interesse, deren y-Koordinate gleichzeitigin dem Intervall [y : y′] liegt. Wie bereits angedeutet, handelt es sich dabei um die zwei-te 1-dimensionale Bereichsanfrage. Diese kann ebenfalls mithilfe eines binären Suchbaumsdurchgeführt werden, der auf den y-Koordinaten der Punkte aus P beruht. Es gilt nun die-se beiden 1-dimensionalen Bereichsanfragen zu vereinen. Es ergibt sich daraus die folgendeDatenstruktur.

Der Hauptbaum ist ein balancierter binärer Suchbaum τ , der die x-Koordinaten derPunkte aus P beinhaltet. Für jeden inneren Knoten und jedes Blatt v von τ werden diekanonischen Teilmengen P (v) in einem weiteren balancierten binären Suchbaum τverbund(v)gespeichert. Dieser beinhaltet wiederum die y-Koordinaten der Punkte aus P . Von einemKnoten v führt ein Zeiger zur Wurzel des Baums τverbund(v), welcher als verbundene Struk-tur von v bezeichnet wird (siehe Abbildung 46).

Die soeben grob beschriebene Datenstruktur wird Bereichsbaum genannt. Generell hei-ßen solche Datenstrukturen, bei denen Zeiger von den Knoten zu den verbundenen Struk-turen führen, auch Multi-Level -Datenstrukturen. Der Hauptbaum τ wird dann als First-Level -Baum bezeichnet, und die verbundenen Strukturen als Second-Level -Bäume. So stelltsich nun die Frage, wie ein solcher Bereichsbaum konstruiert wird. Es sei eine PunktmengeP := p1, . . . , pn gegeben, die nach der x-Koordinate sortiert ist. Der folgende rekursiveAlgorithmus Erzeuge2DBereichsbaum liefert dann die Wurzel eines 2-dimensionalen Be-reichsbaums. Bezüglich der vorgegebenen Punktmenge wird an dieser Stelle vereinfachendangenommen, dass es keine zwei Punkte gibt, welche die gleichen Koordinaten haben.

Es ist zu betonen, dass in den Blättern der verbundenen Struktur nicht lediglich diey-Koordinaten der Punkte gespeichert werden, sondern es werden die Punkte selbst in denBlättern gespeichert. Das bedeutet, dass beim Durchsuchen der verbundenen Struktur amEnde auch tatsächlich die Punkte ausgegeben werden. Es gilt nun den Speicherplatz, dendiese Datenstruktur benötigt, zu ermitteln.

Lemma 2. Ein Bereichsbaum, der n Punkte im Rahmen einer 2-dimensionalen Bereichs-anfrage enthält, benötigt O(n log n) Speicherplatz.

6 Die Abbildung ist entnommen aus [1].

Page 38: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

30 Jasmin Kovač-Engelmeier

τ

τverbund(v)

P(v)

P(v)

Abb. 4. Der Aufbau eines 2-dimensionalen Bereichsbaumes

Algorithmus Erzeuge2DBereichsbaum(P )Eingabe: eine Punktmenge P in der 2-dimensionalen EbeneAusgabe: die Wurzel eines 2-dimensionalen Bereichsbaums

1. Konstruiere die verbundene Struktur: erzeuge einen binären Suchbaum τverbund mit der PunktmengePy, die sich aus den y-Koordinaten der Punkte aus P ergibt. Speichere in den Blättern des Baumsτverbund nicht einfach nur die jeweiligen y-Koordinaten, sondern die Punkte selbst.

2. if P aus nur einem Punkt besteht3. then erzeuge ein Blatt v, das diesen Punkt speichert, und mache τverbund

zur verbundenen Struktur von v4. else teile P in zwei Teilmengen auf: die Teilmenge Plinks enthält die

Punkte, deren x-Koordinate kleiner gleich xmitte - der mittlerenx-Koordinate - ist, und die Teilmenge Prechts enthält die Punkteaus P , deren x-Koordinate größer als xmitte ist.

5. vlinks ← Erzeuge2DBereichsbaum(Plinks)6. vrechts ← Erzeuge2DBereichsbaum(Prechts)7. Erzeuge einen Knoten v, der xmitte speichert, mache vlinks zum

linken Kind von v, vrechts zum rechten Kind von v und τverbund

zur verbundenen Struktur von v.8. return v

Page 39: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Bereichsbäume 31

Der Beweis dieses Satzes sieht folgendermaßen aus. Ein Punkt p aus der Menge P wirdausschließlich in der verbundenen Struktur der Knoten in τ gespeichert, die auf dem Weg zudem Blatt liegen, welches letztendlich p enthält. Somit lässt sich sagen, dass für alle Knoteneiner bestimmten Tiefe in τ gilt, dass p in genau einer verbundenen Struktur gespeichertist. Aus der Tatsache, dass 1-dimensionale Bereichsbäume linearen Speicherplatz benötigen,lässt sich schliessen, dass für die verbundenen Strukturen aller Knoten von τ zusammenO(n) Speicherplatz benötigt wird. Wie bereits gezeigt, ist die Tiefe von τ O(log n). Dem-nach beträgt der Gesamtspeicherplatz, der benötigt wird, O(n log n).

Der vorgestellte Algorithmus Erzeuge2DBereichsbaum(P ) erreicht nicht unbedingt dieoptimale Zeit von O(n log n), um einen Bereichsbaum zu erzeugen. Es wird nun aber ange-nommen, dass eine unsortierte Menge von n Schlüsseln vorliegt. Um für diese Menge nuneinen binären Suchbaum zu erzeugen, wird eine Konstruktionszeit von O(n log n) benötigt.Dies bedeutet, dass für das Erzeugen einer verbundenen Struktur - so wie es in der Zei-le 1 des genannten Algorithmus der Fall ist - ein Zeitbedarf von O(n log n) anfällt. Dieskann jedoch verbessert werden, indem die Punkte von Py bezüglich der y-Koordinate vor-sortiert werden. Die Folge ist, dass der binäre Suchbaum von unten nach oben in linearerZeit aufgebaut werden kann. Aufgrunddessen wird für den Konstruktionsalgorithmus diePunktmenge in zwei Listen verwaltet: d.h. in einer Liste werden die Punkte nach der x-Koordinate sortiert, und in der anderen nach der y-Koordinate. Demzufolge ist die Zeit, diefür einen Knoten im Hauptbaum τ benötigt wird, linear zur Größe seiner kanonischen Teil-mengen. Dies führt wiederum zu dem Schluß, dass die Gesamtkonstruktionszeit der Mengedes benötigten Speichplatzes entspricht: O(n log n). Die Tatsache, dass das Vorsortieren ineiner Zeit O(n log n) realisiert werden kann, führt ebenfalls zur Gesamtkonstruktionszeitvon O(n log n).

Im Laufe des folgenden Algorithmus werden zunächst die O(log n) kanonischen Teilmen-gen ausgewählt, die zusammen die Punkte enthalten, deren x-Koordinate in dem Inter-vall [x : x′] liegt. Dies wird mithilfe des 1-dimensionalen Anfragealgorithmus durchgeführt.Von diesen Teilmengen ausgehend, werden anschließend die Punkte ausgegeben, deren y-Koordinate in dem Intervall [y : y′] liegt. D.h. es wird der 1-dimensionale Anfragealgorith-mus auf die verbundenen Strukturen angewendet, welche die jeweiligen kanonischen Teil-mengen enthalten. Im Prinzip kann man sagen, dass der Algorithmus 2DBereichsanfragedem 1-dimensionalen Anfragealgorithmus 1DBereichsanfrage gleicht. Die beiden Algo-rithmen unterscheiden sich dadurch, dass bei der 2-dimensionalen Bereichsanfrage nichtBerichteTeilbaum aufgerufen wird, sondern 1DBereichsanfrage.

Es stellt sich erneut die Frage nach der Laufzeit des Algorithmus.

Lemma 3. Für eine orthogonale Anfrage in einem Bereichsbaum, der n Punkte beinhaltet,wird O(log2 n+k) Zeit benötigt. In diesem Kontext steht k für die Anzahl der auszugebendenPunkte.

Lässt sich diese Aussage auch beweisen? Bei jedem Knoten im Hauptbaum τ wird fürdie Entscheidung, wo der Suchpfad nun weiterverläuft, eine konstante Zeit benötigt. Mögli-cherweise ist es notwendig, in diesem Rahmen den Algorithmus 1DBereichsanfrage auszu-

Page 40: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

32 Jasmin Kovač-Engelmeier

Algorithmus 2DBereichsanfrage(τ, [x : x′], [y : y′])Eingabe: ein 2-dimensionaler Bereichsbaum τ und ein Bereich [x : x′]x[y : y′].Ausgabe: alle Punkte von τ , die in dem Bereich liegen.

1. vsplit ← FindeSplitknoten(τ, x, x′)2. if vsplit ist ein Blatt3. then Überprüfe, ob der Punkt, der in vsplit gespeichert ist, ausgegeben werden

muss.4. else (*Folge dem Weg zu x und rufe 1DBereichsanfrage für die Teilbäume

auf, die rechts von dem Weg liegen.*)5. v ← LK(vsplit)6. while v ist kein Blatt7. do if x ≤ xv

8. then 1DBereichsanfrage(τverbund(RK(v)), [y : y′])9. v ← LK(v)

10. else v ← RK(v)11. Überprüfe, ob der Punkte, der in v gespeichert ist, ausgegeben werden

muss.12. Analog folge dem Weg von RK(vsplit) bis x′, rufe 1DBereichsanfrage

mit dem Intervall für die Teilbäume auf, die links des Weges liegen, aufund überprüfe, ob der Punkt, der in dem Blatt am Ende des Pfadesgespeichert ist, ausgegeben werden muss.

führen. Infolge des Theorems 1 ist bekannt, dass für diesen rekursiven Aufruf O(log n + kv)Zeit benötigt wird, wobei kv für die Anzahl der Punkte steht, die im Rahmen dieses Aufrufsausgegeben werden. Dies führt zur Gesamtzeit

∑v

O(log n + kv). Diese Summe reicht über

alle Knoten, die innerhalb des Hauptbaums τ besucht werden. Die Summe∑v

kv ist gleich

k - der Gesamtanzahl aller Knoten, die ausgegeben werden. Und wie bereis zuvor erwähnt,weisen die Suchpfade von x und x′ in dem Hauptbaum τ jeweils die Länge O(log n) auf.Daraus folgt

∑v

O(logn) =∑v

O(log2n) und wiederum Lemma 3.

Das folgende Theorem fasst noch einmal die Ergebnisse dieses Kapitels zusammen.

Theorem 2. Sei P die Menge von n Punkten in einer Ebene. Dann benötigt ein Bereichs-baum für P O(n log n) Speicherplatz und eine Konstruktionszeit von O(n log n). Eine or-thogonale Anfrage bezüglich einer bestimmten Teilmenge von P kann dann in O(log2 n + k)Zeit beantwortet werden, wobei mit k die Anzahl der auszugebenden Punkte bezeichnet wird.

Von der Konstruktion 2-dimensionaler Bereichsbäume ausgehend, soll im folgenden Kapi-tel eine allgemeine Vorgehensweise für den Aufbau von mehrdimensionalen Bereichsbäumenvorgestellt werden.

5 Mehrdimensionale Bereichsbäume

Im Rahmen mehrdimensionaler Bereichsbäume sei P die Menge von Punkten in einem d-dimensionalen Raum. Im ersten Schritt wird ein balancierter binärer Suchbaum konstruiert,der von den Punkten jeweils die erste Koordinate enthält. In diesem First level -Baum - demHauptbaum - enthält die kanonische Teilmenge P (v) eines Knotens v die Punkte, die in

Page 41: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Bereichsbäume 33

den Blättern des Teilbaums von v gespeichert sind. Für jeden Knoten v wird eine verbun-dene Struktur τverbund(v) konstruiert. Dieser Second Level -Baum τverbund(v) ist folglich ein(d− 1)-dimensionaler Suchbaum für die Punkte in P (v). Diese Punkte bestehen dann alsoaus den (d − 1)-letzten Koordinaten. Auf die gleiche Weise - wie zuvor beschrieben - wirddieser (d− 1)-dimensionale Suchbaum rekursiv konstruiert. D.h. es wird ein balancierter bi-närer Suchbaum auf Basis der ursprünglich zweiten Koordinate der Punkte gebildet. JederKnoten verweist mit einem Zeiger auf einen (d − 2)-dimensionalen Bereichsbaum, welcherdie auf die (d − 2)-letzten Koordinaten beruhenden Punkte aus dem Teilbaum des jewei-ligen Knotens beinhaltet. Die Rekursion endet, wenn nur noch die Punkte übrig bleiben,die ausschließlich die letzte Koordinate repräsentieren. Diese Punkte werden dann in einembalancierten binären Suchbaum gespeichert (vgl. Abbildung 57).

Abb. 5. Der Aufbau eines mehrdimensionalen Bereichsbaumes

Diese Vorgehensweise ähnelt der, die bereits für den 2-dimensionalen Fall vorgestellt wor-den ist. D.h. der First Level -Baum dient dazu, O(log n) Knoten zu ermitteln, deren kano-nische Teilmengen zusammen die Punkte beinhalten, deren erste Koordinate jeweils in demvorgegebenen Bereich liegt. Diese kanonischen Teilmengen werden erneut betrachtet, wenneine Bereichsanfrage auf den entsprechenden Second Level -Strukturen durchgeführt wird. Injeder Second Level -Struktur werden nun O(log n) kanonische Teilmengen ausgewählt. Dar-aus folgt, dass es insgesamt O(log2 n) solcher Teilmengen in den Second Level -Strukturengibt. Sie beinhalten demnach alle Punkte, deren erste und zweite Koordinate in dem defi-nierten Bereich liegen. Im darauffolgenden Schritt werden die Third Level -Strukturen be-trachtet, welche die kanonischen Teilmengen beinhalten, bei denen die dritte Koordinate indem vorgegebenen Bereich liegt. Diese Vorgehensweise wird so lange rekursiv wiederholt, bis

7 Die Abbildung ist entnommen aus [1].

Page 42: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

34 Jasmin Kovač-Engelmeier

die 1-dimensionalen Bäume erreicht werden, in welchen die Punkte gespeichert sind, derenletzte Koordinate in dem definierten Bereich liegt. Diese Punkte werden dann schließlich alsErgebnismenge ausgegeben. Soweit es den benötigten Speicherplatz und das Laufzeitverhal-ten betrifft, so kann Folgendes festgehalten werden.

Theorem 3. Sei P eine Menge von n Punkten in einem d-dimensionalen Raum, wo-bei d ≥ 2 gilt. Ein Bereichsbaum benötigt dann für P O(n log(d−1) n) Speicherplatz undO(n log(d−1) n) Konstruktionszeit. Somit können die Punkte aus P , die in einem orthogo-nalen Anfragebereich liegen, in O(logd n + k) Zeit ausgegeben werden. So bezeichnet k dieAnzahl der auszugebenden Punkte.

Für den Beweis dieser Aussagen wird angenommen, dass Td(n) für die Zeit steht, diefür das Konstruieren eines Suchbaums auf Basis einer Menge von n Punkten in einemd-dimensionalen Raum benötigt wird. Laut Theorem 2 gilt T2(n) = O(n log n). Das Kon-struieren eines d-dimensionalen Bereichsbaums basiert letztendlich auf dem Erzeugen einesbalancierten binären Suchbaums, wofür O(n log n) Zeit benötigt wird, und das Bilden derverbundenen Strukturen. In dem First Level -Baum wird jeder Punkt in genau einer verbun-denen Struktur gespeichert. Um alle verbundenen Strukuren zu erzeugen, wird O(Td−1(n))Zeit benötigt. Folglich ergibt sich die Gesamtkonstruktionszeit

Td(n) = O(n log n) + O(log n) · Td−1(n).

Wie bereits gezeigt, gilt T2(n) = O(n log n). Somit lässt sich die Rekursionsgleichung lösenund man erhält O(n logd−1 n). Die Ermittlung des Speicherbedarfs erfolgt analog.

Es stellt sich nun die Frage nach der Zeit - im weiteren Verlauf mit Qd(n) bezeichnet -,die benötigt wird, um in einem d-dimensionalen Bereichsbaum eine Anfrage auf n Punktendurchzuführen. Zum einen ist es notwendig, eine Suche in dem First Level -Baum auszufüh-ren, wofür ein Zeitbedarf von O(log n) anfällt. Des Weiteren ist eine logarithmische Anzahlvon (d− 1)-dimensionalen Bereichsbäumen zu durchsuchen. Somit folgt

Qd(n) = O(log n) + O(log n) ·Qd−1(n).

Wie bereits gezeigt, gilt Q2(n) = O(log2 n). Folglich lässt sich auch diese Rekursionsglei-chung lösen und man erhält Qd(n) = O(logd n). An dieser Stelle fehlt nur noch die Zeit, diebenötigt wird, um die ermittelten Punkte auszugeben. Diese ist auf O(k) beschränkt.

6 Fazit

Es wurde gezeigt, dass ein 1-dimensionaler Bereichsbaum im Grunde ein gewöhnlicher bi-närer balancierter Suchbaum ist, der wiederum O(n) Speicherplatz und O(n log n) Kon-struktionszeit für das Speichern von n Punkten einer Punktmenge benötigt. Im „Worstcase“ beträgt die Suchzeit Θ(n). Dieser Fall tritt ein, wenn alle Punkte in dem vorge-gebenen Intervall liegen. Generell lässt sich aber die Suchzeit verbessern, indem man dietatsächlich auszugebene Punktmenge k in Betracht zieht. Dann erhält man eine Suchzeitvon O(k + log n).

Page 43: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Bereichsbäume 35

Soweit es 2-dimensionale Bereichsbäume betrifft, so wurde im Verlauf der Ausführun-gen festgestellt, dass für diese O(n log n) Speicherplatz und eine Konstruktionszeit vonO(n log n) benötigt wird. Bei der Ermittlung der Suchzeit wurde auch in diesem Fall die tat-sächlich auszugebene Punktmenge k berücksichtigt, so dass sich eine orthogonale Bereichs-anfrage dann in einer Zeit von O(log2 n + k) beantworten lässt. Auf diesen Fall aufbauend,wurde zuletzt noch die Arbeitsweise von mehrdimensionalen Bereichsbäumen skizziert, wel-che eine Konstruktionszeit von O(n logd−1 n) und O(n logd−1 n) Speicherplatz benötigen.Eine orthogonale Bereichsanfrage kann dann in O(logd n + k) beantwortet werden. Die-se Suchzeit in einem mehrdimensionalen Bereichsbaum kann noch mithilfe von FractionalCascading auf O(logd−1 n + k) reduziert werden, indem der jeweils höchstdimensionale as-soziierte Baum als Array gespeichert wird.

Literaturverzeichnis

1. Mark de Berg and Mark van Kreveld and Mark Overmars and Otfried Schwarzkopf (1997) Computa-tional Geometry: Algorithms and Applications. Springer-Verlag, Berlin Heidelberg, Seite 95-116

2. Der Brockhaus in einem Band (2000). 9. Auflage. Brockhaus, Mannheim, Seite 6673. Thomas H. Cormen and Charles E. Leiserson and Ronald L. Rivest and Clifford Stein (2001) Introduc-

tion to Algorithms. 2. Auflage. MIT Press, Cambridge, Massachusetts u.a., Seite 265-2684. Rolf Klein (2005) Algorithmische Geometrie, 2. Auflage. Springer-Verlag, Berlin Heidelberg, Seite 107-

110, 135-140

Page 44: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide
Page 45: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

„A Simple Linear Time (1+ε)-Approximation Algorithm fork-Means Clustering in Any Dimensions“ für k = 2

Holger Bürger

Universität Paderborn

Zusammenfassung. Diese Arbeit befasst sich mit dem Thema Clustering mit maximal 2 Schwerpunkten.Zu Grunde liegt das Paper „A Simple Linear Time (1+ε)-Approximation Algorithm for k-Means Clusteringin Any Dimensions“ [14]

1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

1.1 Verwandte Themen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391.2 Die Leistung von Kumar und anderen[14] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

2 Hauptteil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

2.1 Eigenschaften des 1-means Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412.2 Ein Linearzeit-Algorithmus für das 2-means Clustering . . . . . . . . . . . . . . . . . . . . . . . 43

3 Schluß . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

1 Einleitung

Im Rahmen meines Proseminars „Perlen der Theoretischen Informatik“ beschäftige ichmich laut Seminarbeschreibung mit der Schönheit von Problemlösungen aus dem Bereichder Theoretischen Informatik, mit raffinierten Beweistechniken, eleganten Argumenten undüberraschenden Konstruktionen auf höchst vergnügliche Art und Weise und im Speziellenmit dem Thema Clustering. Dieses ist im Folgenden verschriftlicht.

Laut Paper[14] ist das Problem des Clustering einer Gruppe von gleichen Datenob-jekten eines der am meisten studierten in der Informatik. Clustering findet eine breiteAnwendung, zum Beispiel bei „data mining“, Informationsbeschaffung, Bildverarbeitung,Internetsuche[5, 8, 10]. Clustering kommt original aus dem Englischen und ist mittlerweileein deutsches Wort. Das Synonym „Gruppenbildung“ läßt mehr auf die Bedeutung schließen.So wird beim „data mining“ unter anderem versucht Gruppen in einem Datenbestand zubilden, um Daten in sinnvolle Teilmengen aufzuspalten. Sinnvoll kann hier bedeuten, Kom-munikationswege (beim Datenzugriff) zu verkürzen. Ein Beispiel in der Bildbearbeitungkönnte die Vektorisierung eines Pixelbildes sein, dabei muss man unter anderem naheliegen-de Punkte zusammenfassen.

Es wurde ausgesagt, dass bei dieser Vielfalt von Anwendungsformen es unterschiedlicheDefinitionen[9, 4] gibt. Die Meisten von diesen sollen mit der Definition eines Abstandes

Page 46: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

38 Holger Bürger

zwischen zwei Punkten beginnen und dann Cluster formen mit der Eigenschaft, dass zweinahe gelegene Punkte zu einem Cluster zugeordnet werden.

Eine weitere Aussage ist, dass meistens ein Zusammenhang zwischen Clustering undgeometrischen Sachverhalten existiert, so dass Datenobjekte als Punkte in einem mehrdi-mensionalen Raum angesehen werden können. Unter diesen Rahmenbedingungen soll esnahe liegen, die Distanz zwischen diesen Punkten als euklidischen Abstand anzusehen.

Als eine der meistgebrauchten Definitionen des Clustering wird das k-means ClusteringProblem angesehen. Bei einer gegebenen Menge von Punkten P wird versucht eine MengeK zu finden, bei der k Schwerpunkte so zugeordnet werden, dass∑

p∈P

d(p, K)2 (1)

minimiert ist.Die Punkte in K können gewöhnliche Punkte im euklidischen Raum sein und mit d(p, K)

ist der Abstand zwischen p und seinem am nächsten gelegenen Schwerpunkt gemeint. DiePunkte, welche dem gleichen Schwerpunkt zugeordnet werden, bilden einen Cluster. Dask-means Problem ist NP-hart, auch für k = 2. Des Weiteren soll es noch als gebräuchlicheDefintion des Clusterings das k-median Problem geben. Dieses sei auf die gleiche Art undWeise definiert, außer dass folgende Formel zugrunde liegt.∑

p∈P

d(p, K)

Zur Erinnerung: Ein Median war der Wert in der Mitte einer Stichprobe („in der Mit-te liegend“). Man beachte jedoch, dass hier nicht durch die Anzahl der Elemente geteiltwird. Der Unterschied der Formeln ist ungefähr der gleiche wie zwischen arithmetischemMittel (Durchschnitt) und Varianz. Vorteil der Quadrierung von Elementen ist die stärkereSichtbarkeit von Abweichungen.

Zumindest ist es ebenfalls das Ziel die maximale Distanz zu minimieren(siehe [1, 2, 3,11, 13] und beinhaltete Referenzen). Es ist jedoch zu beachten, dass die Distanzberechnungzwischen Punkten, welche hierbei gebraucht wird keine Metrik ist. Somit sei das Lösen desk-means Problems nicht schwerer als das des k-median Problems. Dies wird in dem Paper[14]bewiesen.

Zur Erinnerung: Laut Taschenbuch der Mathematik [6],von Bronstein und anderen, isteine Metrik eine mathematische Funktion, die je zwei Elementen eines Raums einen nichtnegativen reellen Wert zuordnet, der als Abstand der beiden Elemente voneinander aufge-fasst werden kann. Sei X eine beliebige Menge.Eine Abbildung d : X ×X → R heißt Metrik, wenn für beliebige Elemente x, y und z vonX die folgenden axiomatischen Bedingungen erfüllt sind:

1. d (x, x) = 0 (identische Punkte haben Abstand 0),2. d (x, y) = 0⇒ x = y(nichtidentische Punkte haben nicht Abstand 0),3. d (x, y) = d(y, x) (Symmetrie),4. d (x, y) ≤ d(x, z) + d(z, y) (Dreiecksungleichung).

Page 47: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

(1+ε)-Approximation Algorithm for 2-Means Clustering 39

Die Dreiecksungleichung (4) besagt, dass der Abstand entlang dem direkten Weg, alsoentlang der kürzesten Verbindung zwischen zwei Punkten gemessen wird. Ein Umweg übereinen dritten Punkt kann nicht kürzer als der direkte Weg sein. Dies gilt hier nicht.

Die Aussagen des Papers [14] sind weiterhin, dass eine Menge Forschung betrieben wur-de, um das k-means Problem exakt zu lösen(siehe [12] und enthaltene Referenzen). Jedochselbst die besten Algorithmen brauchen Ω(nd) Zeit. Bei der Suche nach konstanten (1+ε)Approximationsalgorithmen wurden neulich auch Fehler gemacht, indem „mapping subjec-tive features“ von Punkten im euklidischen Raum benutzt wurden, wobei ε eine gewöhnlichekleine Konstante sein kann. Dies führte zu Algorithmen mit einer stark verbesserten Lauf-zeit, doch das „mapping“ bzw. Abbilden war fehlerhaft. In diesem Paper [14] wurde der ersteechte Linearzeit (1+ε)-Approximationsalgorithmus für das k-means Clustering vorgestellt,wobei diese Proseminar-Arbeit nur Sachverhalte bis zum 2-means Clustering beschreibt undε und k als Konstante betrachtet werden. Weiteres ist in der Seminararbeit von Markus He-berling zu finden, welcher sich weitergehend mit dem k-means Clustering beschäftigt.

Es folgt die Beschäftigung mit bzw. Darstellung von den zugrundeliegenden Sachver-halten, welche sukzessive zum Beweis des „... Simple Linear Time (1+ε)-ApproximationAlgorithm for k-Means Clustering in Any Dimensions“ für k = 2 führt.

1.1 Verwandte Themen

Kumar und andere [14] stellten fest, dass der schnellste exakte Algorithmus für das k-means clustering Problem von Inaba und anderen[12] eingebracht wurde. Diese berücksich-tigten, dass die Anzahl der Voronoi Partitionen von k Punkten in Rd O(nkd) ist und sodas optimale k-means clustering exakt in O(nkd+1) Zeit berechnet werden könnte. Ina-ba und andere haben ebenfalls einen randomisierten (1+ε)-Approximationsalgorithmusfür das 2-means clustering Problem mit Laufzeit von O(n/εd) entwickelt. Matousek[15]soll einen deterministischen (1+ε)-Approximationsalgorithmus für das k-means Problemin Laufzeit von O(nε−2k2dlogkn) entwickelt haben, Badoiu und andere [3] einen (1+ε)-Approximationsalgorithmus für das k-median Problem mit Laufzeit O(2(k/ε)O(1)

dO(1)nlogO(k)n).Letzterer soll erweitert werden können zu einem (1+ε)-Approximationsalgorithmus für dask-means Problem mit gleicher Laufzeit. W. F. de la Vega und andere [7] sollen einen (1+ε)-Approximationsalgorithmus für das k-means Problem erarbeitet haben, welcher gut aufPunkte im hoch dimensionalen Raum anzuwenden sei. Die Laufzeit sei O(g(k, ε)nlogkn)wobei g(k, ε) = exp[(k3/ε8)(ln(k/ε)lnk)] sein soll. Ebenfalls sollen kürzlich Har-Peled undandere[11] einen (1+ε)-Approximationsalgorithmus für das k-means Problem veröffentlichhaben, mit einer Laufzeit von O(n+kk+2ε−(2d+1)klogk+1nlogk 1

ε ). Dieser sei jedoch ziemlichkompliziert und soll sich auf Ergebnisse der algorithmischen Geometrie stützen. Das Wort„exponentiell„ wurde dabei mit der Zahl der Dimension in Verbindung gebracht, so dass diesnur für geringere Dimensionen anwendbar sei.

1.2 Die Leistung von Kumar und anderen[14]

Ein (1+ε)-Approximationsalgorithmus für das k-means Problem wird präsentiert. k undε werden als Konstanten betrachtet. Die Laufzeit soll besser im Vergleich zu allen vor-her bekannten Algorithmen für dieses Problem sein. Der Algorithmus von Har-Peled undMazumdar[11] sei, trotz linear in n, nicht linear bezogen auf die Eingabegröße des Problems,

Page 48: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

40 Holger Bürger

es sei dn (für n Punkte und d Dimensionen). Der Algorithmus ist daher nur für kleinere Di-mensionen besser geeignet und zwar für d = Ω(logn). Der hier vorgestellte Algorithmus seiviel schneller. Selbst die Verwendung des Johnson-Lindenstraus Lemmas mache die Laufzeitnicht vergleichbar, da es seinen eigenen Overhead haben soll. Viele der neueren Algorithmenverwenden Techniken, wie “exponential grid„ oder “scaling„ , welche ihren eigenen Overheadhaben sollen. Beispielsweise Normalisierung in Verbindung mit minimaler Distanz zwischenPunkten verursache extra Kosten in Höhe von Ω(n) pro Punkt, abhängig von dem verwen-deten Rechenmodell. In [3] sollen die Autoren Techniken für das Runden verwendet haben,basierend auf Approximation für den optimalen Wert des k-Schwerpunktes ohne die Kostenfür diesen Prozess zu berücksichtigen. Die in dem jetzigen Algorithmus eingebettete Technikhabe keinen solchen Overhead.

Das 2-means clustering Problem hat auch schon in der Vergangenheit Forschungsin-teresse geweckt. Der Algorithmus von Amit Kumar und anderen [14] stellt einen (1+ε)-Approximationsalgorithmus für das 2-means clustering Problem mit konstanter Wahrschein-lichkeit in O(2(1/ε)O(1)

dn) dar. Dies sei, laut Kumar und anderen, der erste (im Exponenten)dimensionsunabhängige Algorithmus für das Problem, welcher in linearer Zeit zur Eingabe-größe abläuft.

Die Basisidee des Algorithmus sei sehr einfach. Begonnen wird, wie bei Inaba und an-deren [12], mit der Betrachtung einer Menge von Punkten, wobei ihr Schwerpunkt durchStichproben der Größe O(k) sehr gut approximiert werden kann. Es werden alle Teilmengenmit dieser konstanten Größe ausprobiert und deren Schwerpunkte bestimmt. Das bedeutet,dass man eine konstante Anzahl von Punkten dem größten Cluster zuordnet, bevor mankleineren Clustern Punkte zuordnet - dies sei die Vorgehensweise. Das heisst wiederum,dass der Algorithmus einen hohen konstanten Rechenaufwand produziert, aber im Sinnedes O-Kalküls immernoch “simpel„ wirkt.

Der Algorithmus des Papers soll, in Anlehnung an dem von Badoiu und anderen [3], sehreinfach wirken. Beide beginnen mit der Zufallsauswahl von Punkten, jedoch muss der Algo-rithmus von Badoiu und anderen die Größe des kleineren Clusters raten und den Abstandzwischen diesen. Dies verursacht einen Faktor für die Laufzeit von O(logkn). Der Algorith-mus von Kumar und anderen [14] vermeidet dies komplett - dies macht ihn so wesentlicheinfacher.

2 Hauptteil

Von Kumar und anderen wird definiert, dass P eine Menge von n Punkten im euklidischenRaum Rd sei. Weiterhin sei eine Menge von k Punkten K gegeben, welche als Schwerpunktebezeichnet werden. Definiert werden die k-means Kosten von P in Beziehung zu K, ∆(P,K),als

∆(P,K) =∑p∈P

d(p, K)2,

wobei d(p, K) die Distanz zwischen p und dem nächsten Punkt zu p in K beschreibt.Das k-means Problem versucht eine Menge K von Größe k zu finden, so dass ∆(P,K)minimiert ist. Sei ∆k(P ) die Bezeichnung für die Kosten der optimalen Lösung für das k-means Problem in Beziehung zu P . Sollte K eine einelementige Menge sein y, wird ∆(P,K)durch ∆(P, y) ersetzt. Sollte P eine einelementige Menge sein, geschieht dies analog.

Page 49: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

(1+ε)-Approximation Algorithm for 2-Means Clustering 41

Definition 1. Wenn ∆k−1(P ) ≥ (1 + 32ε)∆k(P ), ist die Menge von Punkten P (k, ε)-irreduzibel, sonst ist sie (k, ε)-reduzibel.

Reduzierbarkeit impliziert hauptsächlich, dass nicht die optimale k-means Lösung ge-sucht wird, sondern die (k − 1)-means Lösung. Dies soll nahe an der vorherigen Lösungliegen. Nun werden die Eigenschaften des 1-means Problems betrachtet.

2.1 Eigenschaften des 1-means Problems

Definition 2. Für eine Menge von Punkten P wird der Schwerpunkt c(P ) von P als∑

p∈P p

|P |definiert.

Für jeden Punkt in x ∈ Rd gilt:

∆(P, x) = ∆(P, c(P )) + |P | ·∆(c(P ), x). (2)

D.h. Abstand zwischen einer Menge P und einem Punkt x ist definiert als die Summevom Abstand der Menge P zu seinem Schwerpunkt c(P ) und dem Produkt aus der Anzahlder Elemente von P und dem Abstand zwischen x und dem Schwerpunkt c(P ) von P .

Im Paper wird nun Folgendes festgestellt: Ein Fakt ist, dass jede optimale Lösung fürdas 1-means Problem unter Einbeziehung der Menge von Punkten P als Eingabe, c(P )als Schwerpunkt wählt. Es soll eine weitere wichtige Eigenschaft für jede optimale Lösungdes k-means Problems gefolgert werden können. Angenommen eine optimale Lösung desk-means Problems unter Einbeziehung der Eingabe P sei gegeben. Sei K = x1, . . . , xkeine Menge von Schwerpunkten, welche durch diese Lösung konstruiert wurde. K verursachteine Partitionierung der Menge von Punkten P in k Cluster, nämlich P1, . . . , Pk. Pi ist dieMenge von Punkten für welche der nächste Punkt in K xi ist. In anderen Worten, dieCluster korrespondieren mit den Punkten in den Voronoi-Regionen in Rd in Beziehung zuK. Der gerade genannte Fakt impliziert nun, dass für alle i xi der Schwerpunkt von Pi seinmuss. Diese Feststellung scheint trivial.

Kumar und andere sagen aus, dass das Interesse in schnellen Algorithmen der Berech-nung guter Approximationen für das k-means Problem gilt. Der Fall k = 1 wird zuerstberücksichtigt. Inaba und andere [12] zeigten, dass der Schwerpunkt einer kleinen zufälligenStichprobe von Punkten aus P eine gute Approximation für c(P ) sein kann.

Lemma 1. [12] Sei T eine Menge von m Punkten, erhalten durch die zufällige, unabhängige,gleichmäßige Auswahl von m Punkten aus einer Menge von Punkten P . Dann gilt für jedesδ > 0,

∆(T, c(T )) <

(1 +

1δm

)∆1(P )

mit einer geringsten Wahrscheinlichkeit von 1− δ.

Den Sachverhalt des Lemmas 1 aus [12] haben Kumar und andere als Voraussetzung benutzt.Falls m mit der Eigenschaft 2

ε gewählt wird, erhält man mit einer minimalen Wahrscheinlich-keit von 1/2 eine gute (1 + ε)-Approximation für ∆1(P ), aufgrund der Wahl des Zentrumsvon T gleichzeitg als Schwerpunkt für T und damit der approximierten 1-means Lösungfür P . Also erhält man durch Auswahl einer konstanten Größe schnell eine, im Sinne von

Page 50: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

42 Holger Bürger

Kumar und anderen, gute Approximation für die optimale 1-means Lösung. Würde manδ sehr viel kleiner wählen, würde zwar die Wahrscheinlichkeit größer werden, aber damitauch die Ungenauigkeit. Letzterem könnte man wiederum nur durch die Auswahl von mehrPunkten entgegenwirken.

Daraufhin wird angenommen P ′ sei eine Teilmenge von P und man möchte eine guteApproximation für das optimale 1-means Problem für die Menge P ′ finden. Lemma 1 fol-gend, würde man von P ′ Punkte zur Berechnung auswählen. Ein Problem sei aber, dass P ′

nicht explizit gegeben ist. Das folgende, ebenfalls aus dem Paper stammende Lemma 2 sagtaus, wenn die Größe von P ′ nahe der Größe von P ist, kann man eine leicht größere Anzahlvon Punkten aus P auswählen und hofft, dass diese Zufallsauswahl genug Punkte von P ′

enthält. In dem Paper werden jedoch vorerst folgende Sachverhalte weiter formalisiert.Sei P eine Menge von Punkten und P ′ eine Teilmenge von P , mit der Eigenschaft, dass|P ′| ≥ β|P |, wobei β eine Konstante zwischen 0 und 1 ist. Angenommen man bestimmt eineAuswahl S von P mit der Größe 4

βε . Nun betrachtet man alle möglichen Teilmengen von S,genannt S′, mit der Größe 2

ε .

|P ′| ≥ β · |P | ⇒ |P ′||P | ≥ β

Dann stelle man sich folgende Verhältnisgleichung vor:|P | verhält sich zu 4

βε , wie |P ′| zu x. Dies ergibt dann:

|P ′||P | = x

4βε

Will man nun x ausrechnen, erhält man:

4βε ·

|P ′||P | = 4

βε · β = 4ε

Dabei wurde gleich |P ′||P | durch β ersetzt und man erhielt letztendlich 4

ε . Ziel war es, die1-means Lösung für P ′ zu finden. Wir haben aber nur die Menge P gegeben und wissen,das durch eine zufällige, unabhängige, gleichmäßige Stichprobenauswahl nach Lemma 1 dieLösung approximiert werden kann. Also haben wir durch eine Stichprobenauswahl von Pmit der Größe 4

βε sogar eine größere Stichprobe für die unbekannte Teilmenge P ′ (4ε anstatt

2ε ) zur Verfügung, um das Problem zu lösen.Für jede dieser Teilmengen S′ berechnet man nun den Schwerpunkt c(S′) und betrachtetes als potenzielles Zentrum für die 1-means Probleminstanz von P ′. Anders ausgedrückt,man betrachtet ∆(P ′, c(S′)) für alle Teilmengen S′. Das folgende Lemma soll zeigen, dasseine dieser Teilmengen eine Approximation für eine optimale 1-means Lösung für P ′ ergibt,welche genau genug ist.

Lemma 2. (Superset Sampling Lemma) Das Folgende gilt mit konstanter Wahrscheinlich-keit:

minS′:S′⊂S,|S′|= 2ε∆(P ′, c(S′)) ≤ (1 + ε)∆1(P ′)

Beweis. Mit konstanter Wahrscheinlichkeit enthält S mindestens 2ε Punkte von P ′. Der Rest

folgt aus Lemma 1. ut

Page 51: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

(1+ε)-Approximation Algorithm for 2-Means Clustering 43

Es wird die Standardnotation B(p, r) benutzt, um die offene Kugel mit Radius r umeinen Punkt p zu beschreiben. Es wird angenommen, dass für den Eingabeparameter ε,welcher im Faktor der Approximation enthalten ist, gilt: 0 < ε ≤ 1.

2.2 Ein Linearzeit-Algorithmus für das 2-means Clustering

Theorem 1. Gegeben sei eine Menge von n Punkten P im Rd. Es existiert ein Algorithmus,welcher eine (1 + ε)-Approximation für die optimale 2-means Lösung der Menge P mitkonstanter Wahrscheinlichkeit berechnet. Seine Laufzeit beträgt O(21/ε)O(1)

dn).

Man beachte, dass das ε im Bruch des Exponenten der Laufzeit, wie weiter oben be-schrieben, zwischen 0 und 1 liegt. Das bedeutet der Bruch ist gross, die Laufzeit damit lang,aber sie ist linear zur Eingabe. Kumar und andere beweisen dies wie folgt:

Beweis. Sei α = ε/64. Es kann angenommen werden, das P (2, α)-irreduzibel ist. Aufgrundeines Widerspruchbeweises nimmt man an, dass P (2, α)-reduzibel ist. Dann ist, aufgrundvon Definition 1, ∆1(P ) ≤ (1+ε/2)∆2(P ). Man kann eine Lösung für das 1-means Problemfür P bekommen, in dem man den Schwerpunkt von P in O(nd) Zeit ausrechnet, also denDurchschnitt der Koordinaten pro Dimension. Die Kosten für dieses Problem sind höchstens(1 + ε/2)∆2(P ). So hätte man das Theorem gezeigt, wenn P (2, α)-reduzibel wäre.

Angenommen es gäbe eine optimale 2-means Lösung für P . Seien c1 und c2 die beidenZentren dieser Lösung. Seien P1 die Punkte, welche näher an c1 als an c2 und P2 diePunkte, welche näher an c2 als an c1 sind. So ist c1 der Schwerpunkt von P1 und c2 derSchwerpunkt von P2. Ohne Beschränkung der Allgemeinheit kann angenommen werden,dass |P1| ≥ |P2|. Da |P1| ≥ |P |/2, impliziert Lemma 2, dass wenn man eine Stichprobe Sder Größe O(1

ε ) aus der Menge P nimmt und betrachtet die Menge der Schwerpunkte allerTeilmengen von S der Größe 2

ε , dann hat mindestens einer dieser Schwerpunkte, genanntc′1, die Eigenschaft ∆(P1, c

′1) ≤ (1+α)∆(P1, c1). Da dieser Algorithmus [14] alle Teilmengen

von S durchläuft, kann angenommen werden, dass solch ein Punkt c′1 gefunden wurde. Seit die Distanz zwischen c1 und c2, also d(c1, c2) = t.

Lemma 3. d(c1, c′1) ≤ t/4

Beweis. Aufgrund eines Widerspruchbeweises wird angenommen, dass

d(c1, c′1) > t/4

ist. Gleichung 2 impliziert

∆(P1, c′1)−∆(P1, c1) = |P1|∆(c1, c

′1) ≥

t2|P1|16 .

Bemerkung: x aus Gleichung 2 ist hier c′1 und ∆(P1, c1) wurde von der Gleichung sub-trahiert. t2|P1|

16 entsteht aus Gleichung 1, so ist ∆(c1, c′1) = d(c1, c

′1)

2 und dies ist wiederumlaut Annahme ≥ (t/4)2 = t2

16 . ∆(c1, c′1) wurde also im rechten Teil durch t2

16 substituiert.Man weiss ebenfalls, dass die linke Seite höchstens α∆(P1, c1) beträgt. Daraus ergibt

sich t2|P1| ≤ 16α∆(P1, c1). Gleichung 2 nochmal angewendet ergibt weiterhin

Page 52: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

44 Holger Bürger

∆(P1, c2) = ∆(P1, c1) + t2|P1| ≤ (1 + 16α)∆(P1, c1).

Daher ist ∆(P, c2) ≤ (1 + 16α)∆(P1, c1) + ∆(P2, c2) ≤ (1 + 16α)∆2(P ).Dies widerspricht dem Fakt, das P (2, α)-irreduzibel ist. ut

Nun wird die Kugel B(c′1, t/4) betrachtet.Das vorhergehende Lemma impliziert, dass sich diese Kugel in der Kugel B(c1, t/2) mit

0 t/4

c’c1 1

3t/4 tt/2

Abb. 1. Verhältnis zwischen B(c′1, t/4) zwischen B(c1, t/2)

Radius t/2 und Mittelpunkt c1 befindet. So beinhaltet P1 B(c′1, t/4). Da nach dem Punktc2 gesucht wird, können die Punkte dieser Kugel gelöscht werden und es wird gehofft, dassdie verbleibende Menge von Punkten eine guten Anteil an Punkten von P2 enthält. In demzugrundeliegenden Paper wird dies als nächstes bewiesen. Sei P ′

1 die Menge von PunktenP1 − B(c′1, t/4). Sei P ′ die Menge P ′

1 ∪ P2. Wie gerade erwähnt ist P2 Teilmenge von P ′.

Behauptung. |P2| ≥ α|P ′1|

Beweis. Aufgrund eines Widerspruchbeweises wird angenommen, dass|P2| ≤ α|P ′

1| ist.

Beachte∆(P1, c

′1) ≥ ∆(P ′

1, c′1) ≥

t2|P ′1|

16

Aus ∆(P1, c′1) ≥ (1 + α)∆(P1, c1) folgt

t2|P ′1| ≤ 16(1 + α)∆(P1, c1) (3)

Weiterhin

∆(P, c1) = ∆(P1, c1) + ∆(P2, c1)= ∆(P1, c1) + ∆(P2, c2) + t2|P2|≤ ∆(P1, c1) + ∆(P2, c2) + 16α(1 + α)∆(P1, c1)≤ (1 + 32α)∆(P1, c1) + ∆(P2, c2)≤ (1 + 32α)∆2(P )

folgt die 2. Gleichung aus 2, während die 3. Ungleichung aus 3 und dem Sacherverhalt

Page 53: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

(1+ε)-Approximation Algorithm for 2-Means Clustering 45

|P2| ≥ α|P ′1| folgt. Dies widerspricht jedoch dem Fakt das P (2, α)-irreduzibel ist. Dies

beweist die Behauptung. ut

Kumar und andere kombinieren nun Lemma 1 und die vorhergehende Behauptung undimplizieren damit, dass wenn eine Stichprobe von O( 1

α2 ) Punkten von P ′ genommen wirdund man die Schwerpunkte aller Teilmengen von Größe 2

α dieser Stichprobe betrachtet, dannsollte mit konstanter Wahrscheinlichkeit ein Punkt c′2 gefunden werden, für den ∆(P2, c

′2) ≤

(1+α)∆(P2, c2) zutrifft. Aufgrund dessen finden sie die Schwerpunkte c′1 und c′2, welche dieVorraussetzungen für das Lemma 3 erfüllen.

Das einzige Problem besteht darin, dass der Parameter t nicht bekannt ist. Dieser muss“geraten„ werden, wobei die Eigenschaft des Algorithmus, dass er nur lineare Zeit zur Ein-gabe verbraucht, nicht verletzt werden dürfe.

Sie schrieben, das angenommen werden darf, dass c′1 (unabhängig von t) gefunden wur-de. Es müsse von P ′ (alle Punkte der Menge P , außer denen, welche innerhalb der KugelB(t/4,c′1) lagen) eine Stichprobe genommen werden. Angenommen man kenne den Parame-ter i, so dass n

2i ≤ |P ′| ≤ n2i−1 gilt. Betrachte man nun die Punkte in P in absteigender

Reihenfolge der Distanz zu c′1. So seien Q′i die ersten n

2i−1 Punkte in dieser Sequenz. Manbeachte, dass P ′ eine Teilmenge von Q′

i ist und |P ′| ≥ |Q′i|/2. Ebenfalls kann Q′

i in linearerZeit gefunden werden, da man den Punkt an der Position n

2i−1 in linearer Zeit finden kann.Aus |P2| ≥ α|P ′| ergibt sich |P2| ≥ α|Q′

i|/2. Folglich impliziert Lemma 1, dass es ausrei-chend ist O( 1

α2 ) Punkte von Q′i zu nehmen, um c′2 mit konstanter Wahrscheinlichkeit zu

lokalisieren.Ein Problem sei jedoch, dass nun der Wert von i unbekannt ist. Alles auszuprobieren

kostet O(n log n) Zeit, unter der Bedingung, dass α und d als Konstante betrachtet wer-den. Approximierende Distanzsuche könne ebenfalls nicht verwendet werden kann, da dieVorverarbeitung ebenfalls O(n log n) Zeit brauchen würde.

Die Idee der Stichprobennahme und das Raten des Wertes i wurde kombiniert. Derzugrundeliegende Algorithmus verfährt wie folgt: Er probiert Werte für i in der Reihenfolge0, 1, 2, . . . . Mit der Iteration von i wird die Menge Q′

i gefunden. Man beachte, dass Q′i+1

eine Teilmenge von Q′i ist. Genauer betrachet ist Q′

i+1 die Hälfte von Q′i und weiter von c′i

entfernt. So wird in Iteration (i + 1) begonnen durch Stichprobenentnahme aus Menge Q′i,

anstelle von P ′ um den Punkt c′2 zu finden. Folglich wird Q′i+1 in linearer Zeit zu |Q′

i+1|gefunden.

Die folgende Grafik soll nocheinmal den Sachverhalt für n=8 verdeutlichen. Die Rahmensind jeweils mit dem Wert für i beschriftet.

t

c’1

i=2 i=0i=3 i=1

Abb. 2. Punkte der Menge Q′i für n=8 und verschiedene i

Page 54: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

46 Holger Bürger

Die weitere Iteration von i führt außerdem zu der Summe ∆(P −Q′i+1, c

′1). Weil ∆(P −

Q′i+1, c

′1) = ∆(P −Q′

i, c′1) + ∆(Q′

i −Q′i+1, c

′1) ist, kann ∆(P −Q′

i+1, c′1) in Interation i + 1

in linearer Zeit zu Q′i+1 berechnet werden. Dies wird benötigt, da Kumar und andere c′2 in

Iteration i+1 finden. Dann wird die 2-means Lösung berechnet, wenn alle Punkte P −Q′i c′1

zugewiesen sind und die Punkte in Q′i dem näheren von c′1 und c′2 zugewiesen wurden. Dies

wird in linearer Zeit zu |Q′i+1| getan, wenn die Beträge zu ∆(P −Q′

i, c′1) für alle i bestimmt

wurden.Kumar und andere merken an, dass daraufhin ersichtlich ist, dass die Iteration i lineare

Zeit zu |Q′i| benötigt. Da sich der Betrag von |Q′

i| um Faktor 2 verringert, beträgt diegesamte Laufzeit für einen gegebenen Wert von c′1 O(21/αO(1)

dn). Da es für c′1 auch nurO(21/αO(1)

) Möglichkeiten gibt, ist die Laufzeit konstant.

Behauptung. Die Kosten ∆ des Algorithmus liegen zwischen ∆2(P ) ≤ ∆ ≤ (1 + α)∆2(P ).Nun folgt der letzte Beweis, wortwörtlich übersetzt.

Beweis. ∆2(P ) ≤ ∆ ist offensichtlich, da jedem Punkt eines der beiden Zentren zugeordnetwird, unter damit verbundenen Kosten. Nun wird die Menge von Zentren betrachet, wo-bei jedes Zentrum ein (1 + α)-approximierter Schwerpunkt seines entsprechenden Clustersist. Wenn jeder Punkt einem approximierten Schwerpunkt eines entsprechenden Clusterszugeordnet wird, folgt daraus, dass ∆ ≤ (1 + α)∆2(P ) ist. Wenn die minimalen KostenC betrachtet werden, können die konkreten Kosten nur besser sein als die Kosten diesesAlgorithmus [14], da nur approximierte Schwerpunkte verwendet werden, aufgrund der inBeziehung stehenden Voronoi-Partitionen. werden. So ergibt sich ∆(C) ≤ ∆ ≤ (1+α)∆2(P ).ut

ut

3 Schluß

Zusammenfassend ist zu sagen, dass dieser Algorithmus im Vergleich zu den anderen, inder Einleitung angesprochenen Algorithmen tatsächlich sehr einfach wirkt. Als erstes wurdefestgestellt, dass die maximalen Abstände von Punkten zu ihren Schwerpunkten zu mini-mieren sind. Dann wurde der Sachverhalt verwendet, dass es möglich ist, bei einer Mengevon Punkten P , für eine unbekannte Untermenge P ′ eine gute Approximation durch dasDurchprobieren aller möglichen Teilmengen bestimmter Größe von P für das 1-means Pro-blem zu finden. Daraufhin wurde dem ersten größeren Cluster viele Punkte zugeordnet undeinem weiteren Cluster Punkte durch Zufallsauswahl zugeordnet, dies mit einer linearenLaufzeit zur Eingabegröße im Sinne des O-Kalküls. Jedoch wurde festgestellt, dass dieserAlgorithmus einen starken konstanten Rechenaufwand produziert. Das die “Brauchbarkeit„dieses Algorithmus für kleinere Dimensionen und Eingabegröße eher gering ist, wird in derSeminararbeit von Markus Heberling des gleichen Seminars noch näher erläutert.

Literaturverzeichnis

1. S. Arora, P. Raghavan und S. Rao, 1998, Approximation schemes for euclidean k-medians and relatedproblems. In Proceedings of the thirtieth annual ACM symposium on Theory of computing, Seite 106-113.ACM Press.

Page 55: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

(1+ε)-Approximation Algorithm for 2-Means Clustering 47

2. V. Arya, N. Garg, R. Khandekar, K. Munagala und V. Pandit, 2001, Local search heuristic for k-medianand facility location problems. In Proceedings of the thirty-third annual ACM symposium on Theory ofcomputing, Seite 21-29. ACM Press.

3. M. Badoiu, S. Har-Peled and P. Indyk, 2002, Approximate clustering via core-sets. In Proceedings ofthe thirty-fourth annual ACM symposium on Theory of computing, Seite 205-257. ACM Press.

4. M. Bern und D. Eppstein, 1997, Approximation algorithms for geometric problems. Seite 296-345.5. A. Broder, S. Glassman, M. Manasse und G. Zweig, 1997, Syntactic clustering of the web. In Proceedings

of the 6th International World Wide Web Conference.6. I. N. Bronstein, K. A. Semendjajew, G. Musiol und H. Mühlig, 2001, Taschenbuch der Mathematik, 5.

überarbeitete und erweiterte Auflage, Seite 624. Verlag Harri Deutsch.7. W.F. de la Vega, M. Karpinski, C. Kenyon und Y. Rabani, 2003, Approximation schemes for clustering

problems. In Proceedings of the thirty-fifth annual ACM symposium on Theory of computing, Seite 50-58.ACM Press.

8. S. Deerwester, S. Dumais, G. Furnas, T. Landauer und R. Harshman, 1990, Indexing by latent semanticanalysis.

9. R. O. Duda, P. E. Hart und D. G. Stork, 2000, Pattern Classification. Wiley-Intersience Publication.10. C. Faloutsos, R. Barbar, M. Flickner, J. Hafner, W. Niblack, D. Petkovic und W. Equitz, 1994, Efficient

and effective querying by image content. J. Intell. Inf. Syst., 3(3-4):231-262.11. S. Har-Peled and S. Mazumdar, 2004, On coresets for k-means and k-median clustering. In Proceedings

of the thirty-sixth annual ACM symposium on Theory of computing, Seite 291-300. ACM Press.12. M. Inaba, N. Katoh, und H. Imai, 1994, Applications of weighted voronoi diagrams ans randomization

to variance-based k-clustering: (extended abstract). In Proceedings of the tenth annual symposium onComputational geometry, Seite 332-339. ACM Press.

13. S. Kolliopoulos and S. Rao, 1999, A nearly linear time approximation scheme for the euclidean k-mediansproblem. In Proceedings of the 7th European Symposium on Algorithms, Seite 326-371.

14. Amit Kumar and Yogish Sabharwal and Sandeep Sen, 2004, A Simple Linear Time (1 + ε) - Approxi-mation Algorithm for k-Means Clustering in Any Dimensions. In Proceedings of the 45th Annual IEEESymposium on Foundations of Computer Science, Seite 454-462.

15. J. Matousek, 2000, On approximate geometric k-clustering. In Discrete and Computational Geometry,Seite 61-84.

Page 56: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide
Page 57: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Skalierbare Peer-to-Peer-Netzwerke

Andreas Vogelsang

Universität Paderborn [email protected]

Zusammenfassung. Peer-to-Peer-Netzwerke (P2P-Netzwerke) verursachen allein in Deutschland inzwi-schen über 69% des Verkehrsaufkommens im Internet [4]. Besonders die große Anzahl an Teilnehmern unddie hohe Inhomogenität der Teilnehmer untereinander, macht es schwierig ein P2P-Netzwerk zu konzipieren,das in Bezug auf eine Datumssuche gut skalierbar ist. In dieser Arbeit wird, neben einer Einführung in dieWelt der P2P-Netzwerke, mit dem Content-Adressable Network (CAN) ein P2P-Netzwerk vorgestellt, dasunter Verwendung von Distributed Hash Tables eine effiziente und gut skalierbare Datumssuche bereitstellt.

1 P2P-Netzwerke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

1.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501.2 Entstehung, Geschichte, Vorteile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501.3 Napster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511.4 Gnutella . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

2 DHT – Distributed Hash Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

2.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552.2 Hash Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562.3 Distributed Hash Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

3 CAN – Content-Addressable Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

3.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593.2 Verwendung von DHT in CAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593.3 Funktionsweise und Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593.4 Verbesserungsmöglichkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663.5 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

1 P2P-Netzwerke

In diesem Kapitel soll eine Einführung in das Thema P2P-Netzwerke gegeben werden. Nebeneiner Definition sowie Daten zur Entwicklung und Geschichte werden mit Napster undGnutella zwei bekannte und bedeutende Netzwerke vorgestellt. Abbildungen und Inhaltsind angelehnt an [5].

Page 58: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

50 Andreas Vogelsang

1.1 Einleitung

Als Peer-to-Peer Netzwerke (P2P-Netzwerke) werden Netzwerke bezeichnet, in denen al-le Teilnehmer gleichbehandelt werden. Das Netzwerk verwaltet und organisiert sich voll-ständig selbst ohne zentrale Instanz oder höhergestellte Teilnehmer. Die Teilnehmer einesP2P-Netzwerks werden als Peers (dt.: Gleichrangige, Ebenbürtige) bezeichnet. Diese Ideesteht im Gegensatz zu der vorherrschenden Client-Server-Netzwerk-Struktur, bei der jederTeilnehmer entweder die Rolle des Dienstanbieters (Server) oder die des Dienstkonsumen-ten (Client) annimmt. Die Verwaltung des Netzwerkes wird dabei meistens ausschließlichvon den Servern übernommen. Diese Rollenverteilung wird in einem P2P-Netzwerk derartaufgebrochen, dass jeder Teilnehmer gleichzeitig die Rolle des Servers und des Clients an-nehmen kann. Daraus folgt auch, dass die Verwaltung des Netzwerkes von allen Teilnehmerngleichermaßen übernommen wird.Ein P2P-Netzwerk ist gut skalierbar, wenn es bei steigender Teilnehmer-, oder Datenlastnicht übermäßig an Leistung verliert, oder gar ausfällt. Der Begriff Robustheit beschreibtdas Verhalten des Netzwerks bei ausfallenden Teilnehmern, oder anderen unerwarteten Er-eignissen.P2P-Netzwerke sind in der Regel Overlay Netzwerke, die auf das bestehende Internet aufge-setzt werden. Das heißt, auf die bestehende Netzwerkstruktur des bekannten Internets wirdauf Anwendungsebene eine zusätzliche Netzwerkstruktur aufgesetzt, die das P2P-Netzwerkdarstellt. Dieses kann zu Verwirrungen führen, wenn man über Eigenschaften des P2P-Netzwerks spricht, denn das P2P-Netzwerk ist unabhängig von dem darunter liegendenInternet zu betrachten. So können zum Beispiel zwei unmittelbar benachbarte Teilnehmereines P2P-Netzwerks im darunter liegenden Internet viele tausend Kilometer oder Router-hops entfernt sein.

1.2 Entstehung, Geschichte, Vorteile

Das erste Netzwerk, das als P2P-Netzwerk bekannt wurde, war Napster, welches Shawn„Napster“ Fanning 1999 herausbrachte. Die Software, deren ursprüngliche Aufgabe die Be-reitstellung eines File-Sharing-Systems war, erlangte schnell Popularität, da sie von vielenmissbraucht wurde um urheberrechtlich geschützte Musik bereitzustellen oder herunterzula-den. Die immer weiter steigende Beliebtheit führte zusammen mit den sinkenden Zahlen derCD-Verkäufe dazu, dass die Musikindustrie immer stärkeren juristischen Druck auf die Be-treiber von Napster ausübte, was schließlich Ende 2000 zur Schließung dieses P2P-Netzwerksführte. Ironischerweise hing das abrupte Ende umittelbar mit der Tatsache zusammen, dassNapster kein P2P-Netzwerk im eigentlichen Sinne war, sondern eine zentrale Instanz zurVerwaltung der Indexdaten hatte. Mehr dazu in Kapitel 1.3.Nach dem Scheitern von Napster versuchten viele Entwickler, den Kerngedanken der P2P-Netzwerke stärker in eine Implementierung einfließen zu lassen. Ein Ergebnis war das Gnu-tella Netzwerk, dessen Client-Software im Jahr 2000 von Justin Frankel zum kostenlosenDownload freigegeben wurde. Da dieses Netz völlig ohne zentrale Instanzen auskommt, istes praktisch unangreifbar, denn es existiert, sobald nur ein Teilnehmer im Netz ist. Aus-führlicher wird Gnutella im Kapitel 1.4 beschrieben.Im Laufe der Jahre kamen immer mehr Protokolle und Implementierungen auf den Markt,die immer leistungsfähigere P2P-Netzwerke zur Verfügung stellten.

Page 59: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Skalierbare Peer-to-Peer-Netzwerke 51

Im Jahr 2008 werden P2P-Netzwerke zu verschiedensten Zwecken verwendet. Neben P2P-File-Sharing Netzen wie Bittorrent [1] existieren auch P2P-VoIP-Netze wie Skype [2] oderP2P-Netzwerke, die als Ziel haben, die Anonymität und somit das Grundrecht auf Meinungs-äußerung zu sichern wie z.B. das Freenet [3]. Studien haben ergeben, dass in Deutschlandüber 69% des Verkehrsaufkommens im Internet über P2P Protokolle verursacht werden [4].

1.3 Napster

Einleitung

Napster war das erste als P2P-Netzwerk bezeichnete Netzwerk. Im Juni 1999 stellte Shawn„Napster“ Fanning eine Beta-Version der zum Netz gehörigen Client Software zum kostenlo-sen Download bereit. Durch das Engagement eines Freundes von Fanning wurde das Netz,welches ursprünglich ein File-Sharing-System bereitstellen sollte, zu einem Portal zur Ver-breitung von Musikdateien. Diese Funktionalität brachte der Software eine hohe Popularitätund machte sie bereits im Herbst 1999 zum Download des Jahres [5].Die einfache und schnelle Verbreitung von Musikdateien über Napster zog allerdings zahl-reiche Verstöße gegen das Urheberrecht nach sich, so dass Napster Ende 2000 unter demjuristischen Druck der Musiklabels geschlossen werden musste. Im Anschluss ging Fanningeinen Kooperationsvertrag mit Bertelsmann Ecommerce ein und vermarktet seitdem einClient-Server-basiertes kommerzielles File-Sharing-System unter dem Namen Napster.

Funktionsweise

Abb. 1. Die Funktionsweise von Napster

Page 60: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

52 Andreas Vogelsang

So rasant der Popularitätsanstieg von Napster war, so einfach ist die Funktionsweise.Wie Abbildung 1 zeigt, melden sich alle Teilnehmer des Netzwerks an einem Server an.Eine Dateianfrage (Query) wird von einem Client zum Beispiel in Form des zu suchendenDateinamens an den Server übermittelt. Auf dem Server sind Informationen zu der entspre-chenden Datei gespeichert. Unter anderem besitzt der Server eine Liste von Netzteilnehmern,die diese Datei lokal bei sich gespeichert haben. Der Server schickt dem anfragenden Clienteine Reply-Nachricht als Antwort, die eine Liste mit allen Clients enthält, die die gesuchteDatei bereitstellen. Die gesuchte Datei kann nun direkt von den Teilnehmern heruntergela-den werden.

Evaluierung

Napster war zwar das erste Netzwerk, das unter dem Namen P2P-Netzwerk bekannt wurde,aber nach der in Kapitel 1.1 gegebenen Definition handelt es sich bei Napster nicht umein reines P2P-Netzwerk. Genauer gesagt entspricht lediglich der direkte Dateidownloadvon einem anderen Teilnehmer des Netzes der Definition. Die Suche nach einer bestimmtenDatei und das Herausgeben der Kontaktdaten zu Besitzern dieser Datei wird über einezentrale Instanz, den Server, organisiert. Gerade dieser Umstand machte es möglich, dassNapster von einem auf den anderen Tag geschlossen werden konnte. Nachdem die Server,die für die Dateisuche zuständig waren, abgeschaltet wurden, konnte kein Teilnehmer desNetzes mehr eine erfolgreiche Suchanfrage starten.

Stärken

Napster ist eine vergleichsweise einfache Möglichkeit, ein schnelles und effizientes File-Sharing-System zu implementieren. Durch die Client-Server-Struktur ist es für die Betreibereinfach zu organisieren und zu koordinieren. Wenn eine Datei im Netzwerk vorhanden ist,dann wird sie durch die Dateisuche auch gefunden und kann direkt heruntergeladen werden.

Schwächen

Die großen Nachteile der in Napster genutzten Client-Server-Struktur liegen in den Be-reichen Robustheit und Skalierbarkeit. Bei Ausfall des verwendeten Servers ist das ganzeNetz funktionsunfähig. Es handelt sich also bei dem Server um einen sogenannten „singlepoint of failure“. Das Netz ist an dieser Stelle von außen besonders angreifbar. Ebenso kannein gesteigertes Datei- oder Teilnehmeraufkommen den Server, der diesen verwalten muss,überlasten und so ebenfalls zu einem Zusammenbruch des Netzes führen.

Erkenntnisse

Die hohe Popularität Napsters ließ erahnen, welche Möglichkeiten P2P-Netzwerke bieten.Viele Wissenschaftler und Firmen forschten in Folge an weiterentwickelten Netzwerken.Dabei wurden die bei Napster aufgetauchten Schwächen schnell zu Kernfeldern der Wei-terentwicklung. Vor allem die Entwicklung einer verteilten Indexsuche, die es ermöglicht,Dateien ohne eine zentrale Instanz im Netzwerk effizient zu finden, ist eine der wichtigstenProblemstellungen beim Entwurf eines P2P-Netzwerks.

Page 61: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Skalierbare Peer-to-Peer-Netzwerke 53

1.4 Gnutella

Einleitung

Im März 2000 stellten Justin Frankel und Tom Pepper von der Firma Nullsoft das Gnutella-Netzwerk [6] vor. Bei dem Versuch, die Schwächen des in Kapitel 1.3 vorgestellten Napsterauszumerzen, entstand ein P2P-Netzwerk, das diesen Namen auch in allen Teilen des Netzesverdient. Wie Napster auch ist Gnutella ein reines File-Sharing-System und bietet daher vonder Funktionsweise wenig Innovatives. Die Netzwerkstruktur und die Indexsuche jedoch setztsich deutlich von der in Napster ab.

Funktionsweise

Jeder Teilnehmer des Gnutella Netzwerkes verwaltet eine Menge von Nachbarknoten. Umeine solche Menge zu erhalten, kontaktiert ein neuer Peer des Netzwerkes eine Reihe vonPeers, deren Adressen er durch eine Initialliste, die mit der Clientsoftware ausgeliefert wird,erhält. Der Kontakt wird hergestellt, indem der neue Peer eine sogenannte Ping-Nachrichtnacheinander an die Peers der Initialliste schickt. Der erste Peer der Liste, der aktiv ist,antwortet mit einer Pong-Nachricht und leitet die Ping-Nachricht an alle Peers seiner Nach-barmenge weiter. Diese verfahren in derselben Weise bis zum k -nächsten Nachbarn desersten kontaktierten Peers. Pong-Nachrichten werden auf dem selben Weg zurückgesendet,wie die dazu gehörige Ping-Nachricht. Der neue Peer erhält so durch den Empfang vonPong-Nachrichten eine Liste von aktiven Peers. Aus diesen Peers sucht sich der neue Peerzufällig m Peers aus, die dann seine Nachbarschaft definieren. Der Enstehungsprozess derGnutella-Netzwerkstruktur ist also völlig zufällig und bedarf keiner zentralen Instanz (wieetwa bei einem Server) außer dem sogenannten TTL-Feld (time to live), das die Tiefe k derRekursion festlegt, indem es bei jeder Ping-Nachrichten-Weiterleitung um eins verringertwird.Die Dateisuche ist analog zum Anmeldeprozess. Eine Query-Nachricht wird rekursiv an alleNachbarn bis zur Tiefe k geschickt und von einem Peer p mit einer QueryHit-Nachrichtbeantwortet, wenn die gesuchte Datei von p bereitgestellt werden kann. Der Initiator derSuche kann die Datei dann direkt von Peers herunterladen, die ihm mit einem QueryHitgeantwortet haben (siehe auch Abbildung 2). In Algorithmus 4 und 5 ist die Indexsuche vonGnutella in Pseudo-Code angegeben.

Algorithmus 4 Dateisuche in Gnutella(1): Suche(Datei x,Knoten p)Vorbedingung: Knoten p sucht Datei x. Sei N die Menge der Nachbarn von p. Download(p′, x) startet

den direkten Download der Datei x vom Knoten p′.for all n ∈ N do

send Query(p, x, TTL) to nwait until receipt of a QueryHit or timeoutif receipt a QueryHit(p′, x) then

download(p′, x)

Page 62: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

54 Andreas Vogelsang

Algorithmus 5 Dateisuche in Gnutella(2): Empfang eines Query(Knoten p, Datei x, intTTL) bei einem Knoten p′

Vorbedingung: Knoten p′ hat Query(p, x, TTL) von Knoten p mit der Anfrage nach Datei x und time-to-live Wert TTL empfangen. Sei DB die lokale Datenbasis des Knotens p′ und N die Menge der Nachbarnvon p′.if x ∈ DB then

send QueryHit(p′, x) to pif TTL 6= 0 then

for all n ∈ N dosend Query(p′, x, TTL− 1) to n

while not timeout doOn receipt of a QueryHit(q, x) send QueryHit(q, x) to p

Abb. 2. Die Dateisuche in Gnutella. Eine Query-Nachricht mit TTL-Wert 2 wird rekursiv an alle Nachbarnweitergeleitet (a). Peers, die die gesuchte Datei bereitstellen können antworten mit einer QueryHit-Nachricht(b). Anschließend kann die gesuchte Datei direkt heruntergeladen werden (c).

Evaluierung

Wie beschrieben kommt das Gnutella Netzwerk gänzlich ohne strukturierende oder orga-nisierende Instanzen aus, was es zum ersten P2P-Netzwerk im eigentlichen Sinne macht.Durch die Vermeidung eines dedizierten Servers löst Gnutella eines der großen Problemevon Napster. Auch die Indexsuche als völlig dezentralisierter Algorithmus wurde in Gnutel-la zum ersten Mal umgesetzt. Diese Eigenschaften machen das Gnutella Netzwerk von außenpraktisch unangreifbar, da das Netzwerk besteht und funktioniert, sobald ein Teilnehmer

Page 63: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Skalierbare Peer-to-Peer-Netzwerke 55

im Netzwerk ist. Dass es dennoch möglich ist, das Netz so zu stören, dass Funktionen nurnoch eingeschränkt nutzbar sind, wird im Folgenden noch erklärt.

Stärken

Die Stärke von Gnutella liegt eindeutig in seiner verteilten Netzwerkstruktur, die es extremrobust macht. Außerdem ist sie sehr gut skalierbar, da viele Knoten aufgenommen werdenkönnen, ohne dass die Leistungsfähigkeit des Gesamtsystems darunter leidet.

Schwächen

Die Schwächen von Gnutella liegen in der verteilten Indexsuche, die im Gegensatz zur Netz-werkstruktur nicht gut skalierbar ist. Da die Suche nach einem Datum durch das TTL-Feldtiefenbeschränkt ist, wird ein Datum, das im Netzwerk faktisch vorhanden ist, nicht sichergefunden. Nur, wenn das Datum von einem der k-nächsten Nachbarn bereitgestellt werdenkann, findet die Indexsuche das Datum auch. Eine Erhöhung des TTL-Feldes, um diesesProblem zu umgehen, verstärkt nur noch die zweite gravierende Schwäche. Da es in keinsterWeise klar ist, in welcher Richtung des Netzwerkes sich ein Datum befindet, verursacht dieIndexsuche ein sehr hohes Nachrichtenaufkommen zwischen Knoten. Das Netzwerk wird mitSuchanfragen regelrecht geflutet. Böswillige Teilnehmer, die besonders viele Suchanfragenstellen, können so einzelne Netzwerkteilnehmer überfordern und das Netzwerk beträchtlichstören.

2 DHT – Distributed Hash Tables

In diesem Kapitel sollen Distributed Hash Tables (DHT) als besonders geeignete verteilteDatenstruktur für eine effiziente Indexsuche in P2P-Netzwerken vorgestellt werden. Abbil-dungen und Inhalt sind angelehnt an [5] und [8].

2.1 Motivation

Mitentscheidend für den Erfolg eines P2P-Netzwerks ist eine effiziente Datensuche inner-halb des Netzwerkes. Aus den Erfahrungen von Napster kann gefolgert werden, dass nureine verteilte Datenstruktur für P2P-Netzwerke Sinn macht, da sie ohne zentrale Instanzenauskommt und so extrem robust und angriffssicher ist. Dieses Konzept der verteilten Daten-struktur wird bereits im Gnutella-Netzwerk verwendet, jedoch auf Kosten einer ineffizientenSuche auf den Daten. Daten werden im Gnutella Netzwerk nicht zwangsläufig gefunden unddie Suche nach ihnen verursacht ein hohes Nachrichtenaufkommen. Eine Datenstruktur, inder jeder Teilnehmer wüsste, wo er nach einem Datum suchen muss, würde eine gute Grund-lage für eine effiziente Suche bilden. Ebenso wäre es wünschenswert, wenn Daten nahezuauf alle Peers gleichverteilt wären, damit nicht das Problem der Überlastung einzelner Peersmit sehr vielen Daten entsteht.

Page 64: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

56 Andreas Vogelsang

2.2 Hash Tables

Eine Datenstruktur, die die genannten Anforderungen sehr gut erfüllt, sind Hash Tabel-len. Sie werden in zahlreichen Software-Systemen verwendet und gehören zu der Grund-ausstattung moderner Betriebssysteme. In Hash Tabellen erfolgt die Verteilung von Datenüber eine Hash Funktion h : K → V, die jedem Datum unter Verwendung eines bestimmtenSchlüssels (Key) k ∈ K eine scheinbar zufällige Position (Value) v ∈ V zuweist.Eine der einfachsten Hash Funktionen ist die Modulo-Funktion h(k) = k mod a, die einemKey k den Wert zuweist, der als Rest bei einer Division von k durch a entsteht. Typischer-weise ist a gleich der Größe des Wertebereiches V. Abbildung 3 zeigt, wie Keys mit Hilfeder Modulo-Funktion auf Werte und somit auf Positionen abgebildet werden. Werden 2 ver-schiedene Keys auf einen Wert abgebildet, also gilt h(k1) = h(k2), k1 6= k2 spricht man voneiner Kollision. In der Praxis treten solche Kollisionen jedoch kaum auf, wenn ein ausrei-chend großer Wertebereich gewählt wird. Die Modulo-Funktion ist im allgemeinen als HashFunktion ungeeignet, da erreicht werden soll, dass Daten gleichmäßig auf den Wertebereichverteilt werden und folglich ähnliche Keys auf sehr unterschiedliche Werte abgebildet wer-den müssen.Dieses Konzept lässt sich auf Peer-to-Peer-Netzwerke übertragen, indem der Wertebereichals Menge der Peers aufgefasst wird und die Hash Funktion Indexdaten von Dateien aufeinen bestimmten Peer abbildet. Benachbarte Elemente des Wertebereichs, also Peers sinddabei jeweils verbunden (siehe Abbildung 3).Diese Umsetzung bietet allerdings einige Nachteile. Da jeweils nur benachbarte1 Peers ver-

Abb. 3. Die Hash Funktion h(k) = k mod 5 bildet die Keys k = 23, 15, 7, 3 nacheinander auf den Wer-tebereich V = 0, 1, 2, 3, 4 ab. Elemente des Wertebereichs können als Peers und Keys als Indexdateninterpretiert werden.

bunden sind, steigt die Suchzeit mit der Anzahl der teilnehmenden Peers linear. Ebenso1 im Sinne der Anordung im Wertebereich

Page 65: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Skalierbare Peer-to-Peer-Netzwerke 57

verhält es sich mit dem Hinzufügen und dem Entfernen von Peers, bei dem die Neunum-merierung lineare Zeit beansprucht. Der schwerwiegenste Nachteil ist jedoch, dass beimHinzufügen oder Entfernen von Peers die Hash Funktion angepasst werden muss, was imschlechtesten Falle zu einer Umsortierung aller Key-Value-Paare führt.

2.3 Distributed Hash Tables

Distributed Hash Tables (DHT) sind in der Lage, die Umsortierung von Key-Value-Paarenbeim Hinzufügen oder Entfernen von Peers auf einen lokalen Bereich der Hash Table zubeschränken. Dazu wird der Bildbereich in ein kontinuierliches Intervall geändert. Wirdbeispielsweise das Intervall [0,1) gewählt, sieht die geänderte Hash Funktion wie folgt aus:h : K → [0, 1). Diese Hash Funktion bildet die Keys k ∈ K der Daten auf einen Punkt desIntervalls ab. Anders als bei den zuvor vorgestellten Hash Tables wird nun den Peers einesP2P-Netzwerks nicht genau ein Element des Bildbereichs der Hash Funktion zugeordnetsondern ein ganzer Bereich. Der Peer ist dann zuständig für alle Daten, deren Key von derHash Funktion auf den Bereich des Peers abgebildet wird.Wird nun ein Peer hinzugefügt, wird diesem eine zufällige Position im Bildbereich zuge-ordnet. Der bisher für diese Position zuständige Peer teilt seinen Zuständigkeitsbereich undübernimmt nur einen Teil des Bereiches, während der andere Teil vom hinzugefügten Peerübernommen wird (siehe Abbildung 4). Ebenso verhält es sich beim Entfernen eines Peers.Der Bereich des entfernten Peers wird einfach durch einen benachbarten Peer mit übernom-men.Somit verursacht das Hinzufügen und Entfernen von Peers in eine DHT nur lokale Ände-rungen der Key-Value-Paare und ist daher deutlich besser für P2P-Netzwerke geeignet alsHash Tables. Diese Eigenschaft wird auch Konsistenz genannt.

Abb. 4. Nacheinander werden Peers der DHT hinzugefügt, indem sie eine zufällige Position zugewiesenbekommen. Der bisher für diese Position zuständige Peer teilt sich nun den Zuständigkeitsbereich mit demneu hinzugefügten Peer.

Page 66: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

58 Andreas Vogelsang

Lemma 1. In einer DHT der Größe m mit n Teilnehmern hat der Zuständigkeitsbereichmit hoher Wahrscheinlichkeit (≥ 1− n−c) höchstens die Größe O(m

n log n) und mindestensdie Größe Ω( m

nc ) (für eine Konstante c ≥ 0).

Beweis. Für die untere Schranke betrachten wir einen Peer pi, der einen solchen minimalenBereich der Größe m

nc verwaltet. Die Wahrscheinlichkeit, dass ein neuer Peer auf diesenBereich abgebildet wird und somit den Bereich von pi verkleinert, ist gegeben durch

P (Peer wird in Bereich von pi abgebildet) =Größe des Bereichs von pi

Größe der DHT

=mnc

m

=m

mnc

=1nc

= n−c

Beim Hinzufügen von n Peers kann dieser Bereich maximal n mal geteilt werden, wodurchdie Wahrscheinlichkeit für eine weitere Verkleinerung beschränkt ist durch n−c+1.Für die obere Schranke betrachten wir die Wahrscheinlichkeit, dass kein Peer einem festenBereich der Größe B = O(m

n log n) = cmn log n zugeordnet wird und somit ein Peer zuständig

ist für einen Bereich größer als dieser. Die Wahrscheinlichkeit, dass ein Peer dem Bereich Bzugeordnet wird, ist gegeben durch

P (ein Peer wird dem Bereich B zugeordnet) =Größe von B

Größe der DHT

=cm

n log n

m

=c log n

n

Somit ist die Wahrscheinlichkeit, dass ein Knoten nicht dem Bereich B zugeordet wird1 − c log n

n . Für die Wahrscheinlichkeit, dass B nach Einfügen von n Knoten immer nochungeteilt bleibt, gilt somit

P (kein Peer teilt B) =(

1− c log n

n

)n

≤ e−c log n

nn

≤ n−c

Also ist die Wahrscheinlichkeit, dass ein Bereich der Größe B von n Peers nicht unterteiltwird, sehr gering und somit sind die Zuständigkeitsbereiche der Peers in einer DHT mit sehrhoher Wahrscheinlichkeit nicht größer als O(m

n log n). ut

Geht man davon aus, dass die Daten gleichverteilt auf die ganze DHT sind, dann ist dieMenge an Daten, die ein Peer verwaltet proportional zur Größe seines Zuständigkeitsberei-ches. Da die durchschnittliche Größe eines Bereiches der DHT m

n beträgt, folgt aus Lemma1, dass ein Peer maximal nur log n mal mehr Daten verwaltet als der Durchschnitt.

Page 67: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Skalierbare Peer-to-Peer-Netzwerke 59

3 CAN – Content-Addressable Network

In diesem Kapitel soll gezeigt werden, wie Distributed Hash Tables in P2P-Netzwerkenverwendet werden können um eine effiziente Indexsuche zu gewährleisten. Dieses soll amBeispiel des Content-Addressable Network (CAN) erläutert werden. Abbildungen und Inhaltsind angelehnt an [5] und [7].

3.1 Einleitung

Das Content-Addressable Network (CAN) war das erste P2P-Netzwerk, das mit Hilfe vonDistributed Hash Tables eine effiziente Datensuche ermöglicht. Es wurde im Jahr 2000von Sylvia Ratnasamy, Paul Francis, Mark Handley, Richard Karp und Scott Shenker ineinem Paper [7] vorgestellt. Die Verwendung von DHT ist mittlerweile zum Standard inskalierbaren P2P-Netzwerken geworden.

3.2 Verwendung von DHT in CAN

In einem CAN wird eine Hash Funktion h : K → Q,Q = [0, 1)× [0, 1) eingesetzt, die Daten-keys k ∈ K auf eine kontinuierliche quadratische Fläche abbildet. Die Hash Funktion sorgtdafür, dass Daten gleichmäßig auf die Fläche verteilt werden. Weiterhin wird die quadrati-sche Fläche so partitioniert, dass jeder teilnehmende Peer für genau ein von mindestens n,idealerweise gleich großen Rechtecken zuständig ist. Ein Peer verwaltet nun alle Daten, des-sen Key auf die Fläche des Peers abgebildet wird. Offensichtlich wird hier das Konzept derin Kapitel 2.3 vorgestellten DHT auf den 2-dimensionalen Raum übertragen. Eine möglicheVerteilung von Peers und Daten auf eine quadratische Fläche im CAN zeigt Abbildung 5.

3.3 Funktionsweise und Analyse

Um die Funktionsweise eines CAN zu verstehen, sollen hier die grundlegenden Operationenauf einem CAN beschrieben werden. Dabei soll der Schwerpunkt mehr auf den grundsätz-lichen Ideen hinter den Operationen liegen und nicht so sehr auf Implementationsdetails.

Einfügen von Peers

Wird ein Peer pneu in ein CAN eingefügt, wählt er eine zufällige Position auf der FlächeQ. Durch ein Verfahren, dass später erklärt wird, kontaktiert pneu den Peer palt, der bisherfür diese Position zuständig war. Nun wird der Zuständigkeitsbereich von palt in der Mittegeteilt. Ist der Bereich ein Quadrat wird entlang der y-Achse geteilt sonst entlang der x-Achse. Die beiden entstehenden Flächen werden von jeweils einem Peer übernommen (sieheauch Abbildung 6).Durch dieses Einfügeverfahren wird sichergestellt, dass sich die verteilte Datenstruktur nurin einem kleinen lokalen Bereich ändert, da sich lediglich der Zuständigkeitsbereich einesKnotens ändert. Diese Eigenschaft wird Konsistenz genannt und gibt der DHT auch denBeinamen Consistent Hashing.Im Unterkapitel Netzwerkstruktur und Routing wird gezeigt, dass sich beim Einfügen vonKnoten die Netzwerkstruktur des CAN ebenfalls nur lokal verändert.

Page 68: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

60 Andreas Vogelsang

Abb. 5. Ein CAN mit Peers und Daten verteilt auf eine quadratische Fläche Q = [0, 1)× [0, 1).

Einfügen von Daten

Das Einfügen von Daten erfolgt analog zum Einfügen von Peers. Ein neu einzufügendesDatum d1 bekommt von der Hash Funktion eine zufällige Position (x, y) auf der Fläche Qdes CAN zugewiesen. Der Peer p, in dessen Zuständigkeitsbereich der Punkt (x, y) liegt,ist dann zuständig für das neue Datum d1. Zuständig heißt in diesem Fall, er verwaltetMeta-Daten, die zum Download des Datums d1 nötig sind 2.Offensichtlich ist die Menge an Daten, die ein Peer verwalten muss, proportional zur Fläche,für die er zuständig ist. Zwar ist für den Einstieg eines neuen Peers jeder Punkt der Flächegleichwahrscheinlich, eine völlig gleichmäßige Verteilung der Fläche auf alle Peers ist jedochsehr unwahrscheinlich. Dennoch lässt sich die Größe des Zuständigkeitsbereiches eines Peersnach oben hin beschränken.

Lemma 2. Sei PR,n die Wahrscheinlichkeit, dass ein Rechteck R mit Fläche A(R) nachEinfügen von n Peers nicht unterteilt wird. Dann gilt

PR,n ≤ e−nA(R)

Beweis. Wir betrachten ein Rechteck R mit Fläche q = A(R) Die Wahrscheinlichkeit, dassein Peer beim Einfügen eine Position außerhalb von q zugewiesen wird, ist 1 − q, da für2 z.B. eine Liste mit IP-Adressen aller Netzwerkteilnehmer, die das Datum zur Verfügung stellen

Page 69: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Skalierbare Peer-to-Peer-Netzwerke 61

Abb. 6. Durch mehrfaches Einfügen von Peers wird die Fläche des CAN immer weiter unterteilt.

die Gesamtfläche Q gilt A(Q) = 1. Diese Warscheinlichkeit ist unabhängig von andereneingefügten Peers. Daher gilt für die Wahrscheinlichkeit, dass n Peers eine Position außerhalbvon q zugewiesen bekommen (1− q)n. Es gilt für alle m > 0:(

1− 1m

)m

≤ 1e

Es folgtPR,n = (1− q)n =

((1− q)

1q

)nq≤ e−nq = e−nA(R)

und somit das Lemma. ut

Page 70: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

62 Andreas Vogelsang

Theorem 1. In einem CAN wird es nach dem Einfügen von n Peers mit hoher Wahrschein-lichkeit, d.h. mit Wahrscheinlichkeit ≥ 1 − n−c für eine Konstante c > 0, kein Rechteck Rmit Fläche A(R) ≥ 2c ln n

n geben.

Beweis. Sei Ri ein Rechteck mit Fläche A(Ri) = 2−i. Für die Wahrscheinlichkeit, dass einRechteck Ri von 2ci lnn nicht geteilt wird, gilt nach Lemma 2:

PRi,c2i ln n ≤ e−A(Ri)c2i ln n

= e−2−i2ic ln n

= e−c ln n

= n−c

Es genügen also c2i lnn Peers, um Ri mit Wahrscheinlichkeit 1 − n−c zu teilen. Damit einRechteck Ri+1 überhaupt entsteht, muss das entsprechende Rechteck Ri geteilt werden. Wirbetrachten das Einfügen weiterer neuer Peers nun staffelweise für i = 1, 2, . . . , log n

2c ln n . InStaffel i werden c2i lnn neue Peers eingefügt. Diese teilen das umschließende Rechteck Ri

eines Rechtecks mit hoher Wahrscheinlichkeit.Es wird also in der Staffel i = log n

2c ln n , mit hoher Wahrscheinlichkeit, ein RechteckRlog n

2c ln nmit der Größe

A(Rlog n

2c ln n

)= 2− log n

2c ln n = 2clnn

n

geteilt.Werden die Peers, die in den Staffeln hinzugefügt werden, zusammengezählt, ergibt sich:

log n2c ln n∑

i=1

c2i lnn = c(lnn)log n

2c ln n∑i=1

2i

≤ c(lnn)2n

2c lnn= n

Damit wird ein bestimmtes Rechteck der Größe 2c ln nn mit Wahrscheinlichkeit n−c log n von

n Peers nicht geteilt. Von diesen Rechtecken gibt es höchstens n Stück. Damit ist die Wahr-scheinlichkeit, dass eines dieser Rechtecke ungeteilt bleibt, höchstens n · n−c log n ≤ n−c+2.Wählt man also c groß genug, so kann jede polynomiell kleine Fehlerwahrscheinlichkeit er-reicht werden. ut

Theorem 1 zeigt, dass ein Rechteck nach Einfügen von n Peers mit hoher Wahrscheinlichkeitnicht größer ist als 2c ln n

n . Da die Größe eines Rechtecks im Durchschnitt 1n ist, sagt Theorem

1 aus, dass ein Peer mit hoher Wahrscheinlichkeit nicht mehr als das 2c(lnn)-fache an Datenverwaltet als der Durchschnitt.

Netzwerkstruktur und Routing

Für den Einfüge- und Suchalgorithmus in P2P-Netzwerken muss eine Graphenstruktur aufden Peers des Netzes etabliert werden. In CAN geschieht dies, indem Peers orthogonal

Page 71: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Skalierbare Peer-to-Peer-Netzwerke 63

benachbarter Rechtecke miteinander verbunden werden. Zusätzlich werden sogenannte To-rus-Kanten eingefügt, die Rechtecke gleicher Höhe am rechten bzw. linken Rand verbinden.Analog werden Rechtecke des oberen und unteren Rands, die übereinander liegen, mit-einander verbunden. Durch diese Torus Kanten wird die durchschnittliche Entfernung vonPeers im Graphen halbiert. In allen Abbildungen dieser Arbeit werden jedoch aus Grün-den der Übersichtlichkeit keine Torus Kanten eingezeichnet (siehe Abbildung 7). Bei einervöllig gleichmäßigen Unterteilung des Quadrats Q ergibt sich ein Netzwerkdurchmesser vonO(√

n) für n Peers.Für die folgende Betrachtung nehmen wir an, dass die Kanten zwischen Peers immer vom

Abb. 7. Ein CAN mit Netzwerkstruktur

kleineren zum größeren Rechteck ausgerichtet sind und bei gleicher Größe in zufälliger Rich-tung. Jedes Rechteck hätte dann den maximalen Ausgangsgrad von vier Kanten, da jedeKante zu einem größeren oder gleichgroßen Rechteck führt. Insgesamt existieren dadurchmaximal 4n Kanten im ganzen Graphen. Da jede Kante zwei Peers miteinander verbindet,haben die Peers einen durchschnittlichen Grad von höchstens acht Kanten. Insbesondere istdieser Grad konstant und nicht abhängig von den Knoten n im Netzwerk. Diese Tatsacheträgt wesentlich dazu bei, dass ein CAN sehr gut skalierbar ist.Die Suche nach einem Datum in einem CAN läuft dann in zwei Schritten ab. Zunächst wirdmit Hilfe der Hash Funktion die Position des Datums in der Fläche Q bestimmt. Danachwird die Suchanfrage solange an den Nachbarnpeer weitergeleitet, dessen Rechteck in derx− oder y−Richtung näher an der Position des Datums liegt, bis der Peer erreicht ist, indessen Zuständigkeitsbereich die Position des Datums liegt. Dieses Routing-Verfahren wird

Page 72: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

64 Andreas Vogelsang

neben der Datumssuche auch verwendet, um neu einzufügende Peers an die von ihnen zu-fällig gewählte Position zu routen. Dort treten sie dann in Kontakt mit dem bisher für denPunkt zuständigen Peer.Wie bei der Aufteilung der Zuständigkeitsbereiche hat das Einfügen eines Peers in derNetzwerkstruktur ebenfalls nur lokale Auswirkungen. Lediglich der Knoten, dessen Bereichgeteilt wird, und seine unmittelbaren Nachbarn müssen ihre Nachbarschaftsumgebung an-passen. In Bezug auf die Netzwerkstruktur handelt es sich also ebenfalls um konsistentesHashing. Ein Ablauf der Routing-Routine ist in Abbildung 8 abgebildet.

Abb. 8. Routing in CAN. Die Suchanfrage von Peer p1 nach Datum d1 wird über die Peers p2, p3, p4, p5 anden für das Datum zuständigen Peer p6 weitergeleitet.

Entfernen von Peers, Defragmentierung

Gerade in P2P-Netzwerken spielt Robustheit eine große Rolle, da häufig Peers ohne Vorwar-nung das Netz verlassen oder ausfallen. Aus diesem Grund gibt es im CAN einen take-overMechanismus. Ein Knoten sendet in regelmäßigen Zeitabständen seine Position und seineNachbarschaft an seine Nachbarn. Bleibt eine solche Update-Message aus, wird ein solcherKnoten als fehlerhaft entdeckt. Jeder Knoten, der einen fehlerhaften Knoten entdeckt hat,startet einen Countdown-timer, der proportional zur Größe des Zuständigkeitsbereiches ist.Aus diesem Grund läuft der timer des Nachbarknotens mit der kleinsten Fläche am ehestenab. Dieser übernimmt dann zusätzlich den Bereich des ausgefallenen Knotens und benach-richtigt die übrigen Nachbarn über die Veränderung (siehe Abbildung 9).Durch diesen Mechanismus ist es möglich, dass ein Knoten mehr als ein Rechteck verwal-

Page 73: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Skalierbare Peer-to-Peer-Netzwerke 65

Abb. 9. Der Bereich eines ausgefallenen Peers p0 wird von dem Nachbarpeer p1 mit dem kleinsten Bereichübernommen.

tet. Als Konsequenz kann eine sehr starke Fragmentierung des Netzes entstehen. Um dieserFragmentierung entgegenzuwirken, wird von Zeit zu Zeit ein Defragmentierungsalgorithmusdurchgeführt. Um diesen Algorithmus besser zu veranschaulichen ist es sinnvoll, das CANals Binärbaum darzustellen. Die Wurzel des Baumes ist die ursprüngliche Fläche Q. Ein

Page 74: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

66 Andreas Vogelsang

Knoten im Baum hat als Kinder die beiden Rechtecke, in die es unterteilt wurde. Ist einRechteck nicht unterteilt, so ist es im Baum ein Blatt und verbunden mit dem Peer, der fürdas Rechteck zuständig ist. Der zur Abbildung 9 (b) passende Binärbaum ist in Abbildung10 dargestellt.Während der Defragmentierungsroutine versucht ein Peer, der mehr als ein Rechteck ver-

Abb. 10. Der zu Abbildung 9 (b) passende Binärbaum

waltet, das kleinste von ihm verwaltete Rechteck an einen anderen Peer abzugeben. Sei Adieses kleinste Rechteck eines Peers p0. Dann ist A in der Binärbaumdarstellung ein Blatt.Zur Defragmentierung wird der Bruderbaum B des Rechtecks A betrachtet. Im einfachenFall ist B ebenfalls nur ein Blatt, das von einem Peer p1 verwaltet wird. Dann werden A undB miteinander verschmolzen und sie werden zusammen von p1 verwaltet (siehe Abbildung11).Ist B kein Blatt, wird im Teilbaum B mit Hilfe einer Tiefensuche nach zwei benachbartenBlättern gesucht 3. Diese beiden Blätter werden zu einer Fläche verschmolzen und von ei-nem der beiden zuständigen Peers übernommen. Der übrig gebliebene Peer übernimmt dasRechteck A von p0 (siehe Abbildung 12).In beiden Fällen wird der Grad der Fragmentierung verringert.

3.4 Verbesserungsmöglichkeiten

Durch verschiedene Verbesserungen des CAN können einige Metriken verbessert werden. Wirbetrachten bei den folgenden Konzepten nur Veränderungen des Netzwerkdurchmessers, derRobustheit und des Knotengrades.3 Dieses existiert, da ein Knoten des Baumes immer genau 0 oder 2 Kinder hat.

Page 75: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Skalierbare Peer-to-Peer-Netzwerke 67

Abb. 11. Einfacher Fall der Defragmentierung. p0 gibt das Rechteck A an p1 ab.

Abb. 12. Schwieriger Fall der Defragmentierung. Per Tiefensuche wird nach zwei benachbarten Blätterngesucht. Diese werden verschmolzen und von einem der zuständigen Peers übernommen. Der andere Peerübernimmt das Rechteck A.

Dimensionen

Bisher haben wir das CAN als eine 2-dimensionale Fläche angesehen. Dabei lag der Netz-werkwerkdurchmesser beiO(n

12 ). Wird das CAN auf einen 3-dimensionalen Würfel erweitert

wird der Netzwerkdurchmesser auf O(n13 ) verringert. Im allgemeinen Fall gilt für den Netz-

werkdurchmesser O(n1d ) bei Verwendung von d Dimensionen. Auf der anderen Seite gilt

jedoch für den Knotengrad O(d), da bei Verwendung von höheren Dimensionen (z.B. in

Page 76: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

68 Andreas Vogelsang

einem Würfel) jeder Peer mehr Nachbarn hat. Abbildung 13 stellt dar, wie sich die Verwen-dung von mehreren Dimensionen auf die Routingdistanz auswirkt.

Abb. 13. Verwendung von mehreren Dimensionen und ihr Einfluss auf die Routingdistanz

Realitäten

Eine weitere Möglichkeit der Verbesserung ist das gleichzeitige Betreiben von mehrerenCAN Netzwerken auf gleichen Daten und Peers. Durch die Verwendung von mehreren ver-schiedenen Hash Funktionen entstehen verschiedene Anordnungen von Peers und Daten injeweils einem Netzwerk. Diese Netzwerke werden Realitäten genannt. Die Verwendung vonr Realitäten erhöht die Robustheit, da bei Ausfall eines Netzes immer noch r − 1 weitereNetzwerke zur Verfügung stehen. Für den Netzwerkdurchmesser kann gezeigt werden, dassdieser nur noch O(log n) beträgt. Für das Routing ist dies allerdings nur eingeschränktnützlich, da der kürzeste Weg nicht mehr unbedingt bekannt ist. Eine gewisse Verkürzungdes Routing-Weges ist jedoch empirisch messbar zu erkennen. Durch die Verwendung von rRealitäten erhöht sich allerdings der Knotengrad um den Faktor r. Abbildung 14 stellt dar,wie sich die Verwendung von mehreren Realitäten auf die Routingdistanz auswirkt.

Latenzoptimiertes Routing

Wenn wir bisher von Weglängen beim Routing gesprochen haben, waren immer Wege imCAN gemeint. Allerdings sagt die Netzwerkstruktur nichts über die darunterliegende Netz-werkstruktur z.B. des Internets aus. Ein benachbarter Peer im CAN kann theoretisch auf der

Page 77: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Skalierbare Peer-to-Peer-Netzwerke 69

Abb. 14. Verwendung von mehreren Realitäten und ihr Einfluss auf die Routingdistanz

anderen Seite der Erde liegen (siehe auch Kapitel 1.1). Dadurch können beim Routing hoheLatenzzeiten enstehen. Ein Konzept, um dies zu verhindern, ist das sogenannte Überladenvon Rechtecken. Während bisher immer ein Peer für ein Rechteck verantwortlich war, wer-den nun bis zu MaxPeers Peers einem Rechteck zugeordnet. Die Netzwerkstruktur wirddahingehend geändert, dass Verbindungen zu allen Peers eines Nachbarrechtecks gehaltenwerden. Der Knotengrad erhöht sich dadurch nur um den additiven Term MaxPeers−1.Beim Routing kann nun immer der Nachbarpeer mit der niedrigsten Latenz gewählt wer-den4. Zusätzlich zur Latenzoptimierung wird die Robustheit erhöht, da nun, statt nur einemPeer, MaxPeers Peers eine Kopie des Datums bereitstellen. Außerdem verringert sich derNetzwerkdurchmesser, da mehr Peers das Netzwerk betreten müssen, bis ein Rechteck un-terteilt wird. So besteht ein CAN mit n Peers nur noch aus

⌈n

MaxPeers

⌉Rechtecken.

Eine weitere Möglichkeit, die Latenzzeiten zu reduzieren, ist, die Netzwerkstruktur an dietopologische Struktur des Internets anzupassen. Dies ist allerdings zur Zeit nicht trivial, daes schwierig ist, Ortsinformationen über z.B. die IP-Adresse herauszufinden.

3.5 Zusammenfassung

Die Entwicklung des Content-Adressable Network war in der Weiterentwicklung der P2P-Netzwerke ein großer Schritt nach vorne. Zum ersten Mal wurde das Konzept der DistributedHash Tables in einem P2P-Netzwerk verwendet und so konnte garantiert werden, dass einDatum, das im Netzwerk vorhanden ist, auch gefunden wird. Zudem ist das CAN sehr gutskalierbar, da der Knotengrad konstant und unabhängig von der Anzahl der teilnehmenden

4 Die Latenz im Internet kann über ICMP Echo Requests ermittelt werden.

Page 78: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

70 Andreas Vogelsang

Peers ist und der Netzwerkdurchmesser bei einem 2-dimensionalen CAN mit n Teilnehmernnur bei O(

√n) liegt. Mit Hilfe von Verbesserungen kann die durchschnittliche Pfadlänge

sogar auf O(log n) verringert werden. Allerdings ist dann der Knotengrad nicht mehr unab-hängig von der Anzahl der Teilnehmer [7].Trotzdem konnte sich das CAN in der Praxis nicht durchsetzen, da kurze Zeit später mitChord [9] und Pastry [10] P2P-Netzwerke vorgestellt wurden, die noch bessere Werte bezüg-lich Knotengrad und Routing Zeit aufwiesen. Ein weiterer Nachteil, den alle P2P-Netzwerkehaben, in denen Daten mittels einer Hash Funktion zufällig verteilt werden, ist, dass einebestehende Ordnung auf den Daten (z.B. eine lexikographische Ordnung nach Dateinamen)nicht erhalten bleibt. Bereichsanfragen sind dadurch nicht sehr effizient. Auf diese Problem-stellung wird im zugehörigen Seminar eingegangen.

Literaturverzeichnis

1. Bittorrent.org (2006) Bittorrent Protocol Specification. http://bittorrent.org/protocol.html2. Baset SA, Schulzrinne H (2004) An analysis of the skype peer-to-peer internal telephony protocol.

http://arxiv.org/abs/cs/04120173. Clarke I, Sandberg O, Wiley B, Hong TW (2000) Freenet: A distributed anonymous information storage

and retrieval system. In: International Workshop on Design Issues in Anonymity and Unobservability.311–320

4. ipoque GmbH (2007) Internetstudie 2007. Die Auswirkungen von P2P-Filesharing, Voice over IP, Skype,Joost, Instant Messaging, One-Click Hosting und Mediastreaming wie YouTube auf das Internet. http://www.ipoque.de/userfiles/file/p2p_study_2007_abstract_de.pdf

5. Mahlmann P, Schindelhauer C (2007) Peer-to-Peer-Netzwerke. Springer, Berlin Heidelberg New York6. Clip2 (2001) The Gnutella Protocol Specification v0.4. http://www9.limewire.com/developer/gnutel-

la_protocol_0.4.pdf7. Ratnasamy S, Francis P, Handley M, Karp R, Shenker S (2001) A scalable content-adressable network

In: Computer Communication Review. Volume 31., Dept. of Elec. Eng. and Comp. Sci., University ofCalifornia, Berkeley 161–172

8. Mahlmann P, Schindelhauer C (2004) Algorithmen für Peer-to-Peer-Netzwerke, Vorlesungsskript,Universität Paderborn. http://wwwcs.upb.de/cs/ag-madh/WWW/Teaching/2004SS/AlgoP2P/Skrip-t/skript-04-4.pdf

9. Stoica I, Morris R, Karger D, Kaashoek F, Balakrishnan H. (2001) Chord: A scalable Peer-to-Peerlookup service for internet applications. In: Guerin R, ed.:Proceedings of the ACM SIGCOMM 2001Conference (SIGCOMM-01). Volume 31, 4 of Computer Communication Review., New York, ACMPress 149–160

10. Plaxtron CG, Rajaraman R, Richa A (1997) Accessing nearby copies of replicated objects in a distri-buted environment. In: 9th Annual Symposium om Parallel Algorithms and Architectures (SPAA ’97),New York, Association for Computer Machinery 311–320

Page 79: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Eine Einführung in kinetische Datenstrukturen

Peter Kling

Universität Paderborn

Zusammenfassung. Zu vielen Problemen gibt es heutzutage effiziente Algorithmen, die diese lösen unddem Nutzer bestimmte Attribute — wie z.B das nächste Paar einer Punktemenge im Raum — berechnen. Inmodernen Anwendungen müssen solche statischen Probleme im Allgemeinen nicht nur einmal gelöst werden.Vielmehr werden sie in kontinuierliche Problemstellungen übertragen, indem die gegebene Problematik überdie Zeit animiert wird. Diese kontinuierliche Problemstellung wirft neue Fragen auf, wie z.B. die Häufigkeiteiner notwendigen Neuberechnung solcher Attribute.

Die hier vorgestellte Idee der kinetischen Datenstrukturen versucht ein allgemeines Konzept aufzubauen,um diesem Übergang von einer statischen in eine kontinuierliche Situation gerecht zu werden.

1 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721.2 Aufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

2 Unterschiede zum klassischen Ansatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

3 Kinetische Datenstrukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

3.1 Grundaufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753.2 Begriffe und Definitionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

4 Anwendung kinetischer Datenstrukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

5 Davenport-Schinzel Sequenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

5.1 Definitionen und Begriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835.2 Verbindung zu kinetischen Prioritätswarteschlangen . . . . . . . . . . . . . . . . . . . . . . . . . . 84

6 Fazit und Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

1 Einführung

Dieses Kapitel soll dem Leser eine Idee davon geben, was kinetische Datenstrukturen prin-zipiell darstellen und deren Nutzen motivieren. Anschließend wird der Aufbau dieser Arbeiterläutert.

Page 80: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

72 Peter Kling

1.1 Motivation

Die Modellierung realer Probleme erfordert häufig kontinuierliche Modelle. Diese enthaltenihrer Natur nach eine überabzählbare Menge an Informationen. Als Anwender ist man abermeist nur an einigen wenigen Attributen interessiert. So möchte man bei der Simulation einesAutorennens beispielsweise die aktuelle Position der einzelnen Fahrer, deren Geschwindig-keit oder den Erstplatzierten kennen. Wie man an diesem einfachen Beispiel bereits sieht,können solche Attribute ganz unterschiedlicher Natur sein. Während die Geschwindigkeitder einzelnen Fahrer kontinuierlich von der Zeit abhängt, ist das Attribut „Erstplatzierter“während der gesamten Simulation nur endlich vielen Änderungen unterworfen. Es ist alsodiskret. Insbesondere bei diskreten Attributen kann man den Effekt der zeitlichen Kohärenz 1

ausnutzen.Kinetische Datenstrukturen stellen ein Konzept dar, bestimmte Attribute solch konti-

nuierlicher Modelle zu berechnen und während der betrachteten Zeitspanne aufrecht zuerhalten. Obwohl sich der Ansatz dabei auf diskrete Attribute konzentriert, ist zu beden-ken, dass man kontinuierliche Attribute oft durch eine diskrete Beschreibung ausdrückenkann. So kann die Bahn eines sich bewegenden Objektes beispielsweise durch Trajektorien2

analytisch beschrieben werden. Diese Trajektorien können diskret angegeben werden (sieheAbbildung 1). Eine Änderung der Trajektorie kann dann über eine kinetische Datenstrukturals diskretes Attribut verwaltet werden.

x

y

Abb. 1. Kontinuierliche Objektbahn als diskretes Attribut (Funktionsgleichung): τ : R → R2, t 7→(sin(t), cos(t)).

1.2 Aufbau

Vor einer formalen Einführung der Begrifflichkeit, werde ich in Abschnitt 2 zunächst einekurze Erläuterung eines klassischen Lösungsansatzes geben und diesen mit der Idee kine-tischer Datenstrukturen vergleichen. In Abschnitt 3 folgt die formale Einführung, welcheanschließend in Abschnitt 4 anhand eines Beispiels vertieft wird. Abschnitt 5 stellt eini-ge wichtige Begriffe und Ergebnisse zur Verfügung, welche in der Analyse des Beispiels

1 Zeitliche Kohärenz im Diskreten beschreibt den Effekt, dass ein Attribut zu einem Großteil der Simulationseinen Wert nicht ändert.

2 Bahnkurven

Page 81: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Eine Einführung in kinetische Datenstrukturen 73

gebraucht werden, allerdings nicht spezifisch für kinetische Datenstrukturen sind. Abschlie-ßend folgt in Abschnitt 6 eine kurze Zusammenfassung der Ergebnisse sowie ein Ausblickauf fortgeschrittenere Anwendungen.

2 Unterschiede zum klassischen Ansatz

Ein typisches Einsatzgebiet kinetischer Datenstrukturen stellt die Simulation kontinuierli-cher Systeme dar. Jedoch gibt es natürlich auch einen klassischen Ansatz zur Simulationsolcher Systeme. Im Folgenden sollen beide Ansätze verglichen werden. Außerdem wird derUnterschied zwischen kinetischen und dynamischen Datenstrukturen erläutert werden.

Klassische Simulation

Der klassische Ansatz ein System zu simulieren, welches zeitlichen Veränderungen ausge-setzt ist, basiert auf einer einfachen Diskretisierung der Zeit sowie auf der Annahme, dassbei kleiner Diskretisierung eine starke zeitliche Kohärenz vorliegt. Wir betrachten als Bei-spiel ein System sich in der Ebene bewegender Objekte (vgl. Abbildung 2). Die Objektebewegen sich mit konstanter Geschwindigkeit in verschiedene Richtungen. Wir können diePosition der Objekte zu einem beliebigen Zeitpunkt anhand dieser Daten und einer gege-benen Ausgangslage bestimmen. Nun wählt man eine globale Zeiteinheit ∆t, welche dieGranularität der Simulation bestimmt. Nach jeder vergangenen Zeiteinheit werden die Po-sitionen der Objekte neu berechnet. Wie in Abbildung 2 zu sehen ist, kann es dabei zu einerKollision kommen. In diesem Fall müssen die Bewegungsvektoren neu berechnet werden.Die Genauigkeit der Simulation hängt hierbei stark von der Wahl der Zeiteinheit ab: jegrößer man ∆t wählt, desto geringer wird die zeitliche Kohärenz. Man übersieht bestimmteSystemänderungen (vgl. Abbildung 3). Eine zu kleine Wahl führt dazu, dass ein Großteilder Simulationszeit für unwichtige Berechnungen verschwendet wird.

x

y

x

y

Abb. 2. Bei richtiger Wahl von ∆t kommt es zur Kollision.

Page 82: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

74 Peter Kling

x

y

x

y

Abb. 3. Wählt man ∆t zu groß, wird die Kollision „übersehen“.

Bedenkt man, dass in vielen Simulationen die Trajektorien von Objekten und deren Zu-sammenwirkung durch Differentialgleichungen gegeben sind, zeigt sich ein Vorteil dieser Artder Simulation: Differentialgleichungen müssen im Allgemeinen numerisch gelöst werden,was durch eine feine Diskretisierung der Zeit geschieht. Die Feinheit dieser Diskretisierungkann nun natürlich auch als globale Zeiteinheit genutzt werden.

Kinetische Simulation

Eine Simulation mit Hilfe einer kinetischen Datenstruktur verfolgt einen lokaleren Ansatz.Im klassischen Ansatz wird durch die global gegebene Zeiteinheit jedes Objekt gleich be-handelt. Man stelle sich eine Szene mit einer Schildkröte und einer Gewehrkugel vor. DieGewehrkugel soll eine Fensterscheibe zerschlagen. Es stellt sich die Frage nach der Wahl von∆t. Die schnelle Gewehrkugel benötigt offenbar ein sehr kleines ∆t – bei zu großer Wahlwürde sie durch die Fensterscheibe hindurch fliegen, ohne diese zu zerstören. Ein kleines ∆tbedeutet aber unnötig viel Simulationsaufwand für die langsame Schildkröte.

Im Grunde hat man bei der numerischen Lösung von Differentialgleichungen das selbeProblem. Deshalb werden hier adaptive Verfahren genutzt, die versuchen die Größe derZeiteinheit an die aktuelle Situation anzupassen. Kinetische Datenstrukturen bieten einenähnlichen Ansatz, arbeiten allerdings ereignisbasiert. Statt eine globale Zeiteinheit festzule-gen und nach jedem Zeitschritt alle betrachteten Attribute auf Änderungen zu überprüfen,wird eine Ereignis-Warteschlange erstellt. Diese enthält Ereignisse in der Zukunft, die es ab-zuarbeiten gilt und welche wiederum neue Ereignisse auslösen können. Ein Ereignis tritt ein,wenn sich ein Attribut ändert. Die Leistung kinetischer Datenstrukturen besteht hierbei inder effizienten Verwaltung und Aufrechterhaltung der dazu notwendigen Datenstrukturen.

Es ist wichtig zu bemerken, dass an dieser Stelle eine schwerwiegende und weitreichendeVoraussetzung an das Anwendungsgebiet gestellt wird. Die zu berechnenden – also inter-essanten – Ereignisse liegen in der Zukunft. Die Berechnung der Eintrittspunkte solcherEreignisse ist im Allgemeinen nicht trivial, oft sogar nicht möglich. Eine Möglichkeit mit

Page 83: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Eine Einführung in kinetische Datenstrukturen 75

solchen Situationen dennoch umzugehen, besteht darin geeignete Approximationen zu ver-wenden.

Kinetik vs. Dynamik

Kinetik und Dynamik sind zwei eng zusammenhängende Begriffe. Umso wichtiger ist es,sich klar zu machen wo der Unterschied zwischen kinetischen und dynamischen Datenstruk-turen liegt. Während kinetische Datenstrukturen helfen sollen, bestimmte Attribute einesSystems über eine zeitliche Veränderung aufrecht zu erhalten, befassen sich dynamischeDatenstrukturen mit der Problematik einen gegebene Datensatz an eine Veränderung desSystems anzupassen. Typische Beispiele für dynamische Datenstrukturen sind sortierte Fol-gen, welche die Sortierung beim Einfügen oder Entfernen eines Elementes aufrecht erhalten.

Der Unterschied wird besonders deutlich, wenn man kinetische Datenstrukturen betrach-tet, die zusätzlich dynamische Eigenschaften haben. Neben der allgemeinen zeitlichen Ver-änderung der Attribute eines Systems können hier Objekte das System betreten oder verlas-sen. In Abschnitt 3.2 wird der Begriff (δ, n, m)-Szenario eingeführt werden, in dem derartigedynamische Effekte eine Rolle spielen. Auch in der Analyse des Kinetic Tournament in Ab-schnitt 4 werden dynamische Effekte — anhand solcher (δ, n, m)-Szenarien — berücksichtigtwerden. Für eine genauere Beschreibung sei hier auf die Begriffserklärungen in Abschnitt3.2 verwiesen.

3 Kinetische Datenstrukturen

Es soll nun eine formalere Definition kinetischer Datenstrukturen gegeben werden. Dazuwird zunächst der grundlegende Aufbau einer kinetischen Datenstruktur erläutert sowieein Überblick über den Ablauf einer Simulation anhand einer kinetischen Datenstrukturgegeben. Anschließend werden einige Begriffe definiert und teilweise an Beispielen nähererläutert.

3.1 Grundaufbau

Kinetische Datenstrukturen sollen also ausgewählte diskrete Attribute in einem kontinu-ierlichen System aufrecht erhalten. Für ein gegebenes Attribut, welches in der kinetischenDatenstruktur verwaltet werden soll, besteht das grundsätzliche Verfahren der Kinetisierungim wesentlichen aus folgenden Schritten:

1. Betrachte einen (statischen) Algorithmus zur Berechnung des Attributes.2. Umwandlung des Algorithmus in einen Gültigkeitsbeweis für das Attribut.3. „Animieren“ des Beweises.

Der letzte Punkt enthält den Kerngedanken kinetischer Datenstrukturen: es reicht nicht,einen Beweis dafür zu haben, dass ein aktueller Attributwert korrekt ist. Vielmehr musserkannt werden, wann so ein Beweis fehlschlägt (also sich das betrachtete Attribut veränderthat3) und der Beweis muss an die sich veränderten Verhältnisse angepasst werden. Die Kunst

3 Oder besser noch: wann es fehlschlagen wird!

Page 84: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

76 Peter Kling

besteht gerade darin, Beweise zu finden, mit denen man diese beiden Kriterien effizienterfüllen kann4.

Eine Kinetische Datenstruktur bietet dem Benutzer zwei fundamentale Operationen zumZugriff auf die verwalteten Daten:

query Die query-Operation dient der Rückgabe eines bestimmten Attributes.update Die update-Operation aktualisiert den internen Zustand der kinetischen Daten-

struktur.

Die zwei wesentlichen strukturellen Komponenten einer kinetischen Datenstruktur sinddie Gültigkeitsbeweise der Attribute sowie die Ereigniswarteschlange. Nach der Erstellungdes Gültigkeitsbeweises — welcher aus sogenannten Zertifikaten besteht — wird berechnet,wann und aus welchem Grund er als nächstes Fehlschlagen wird. Diese Ereignisse werdenin der Ereigniswarteschlange verwaltet und nach und nach abgearbeitet. Dabei kann einEreignis wiederum neue Ereignisse auslösen. Der Ablauf ist in Abbildung 4 verdeutlicht.

update

Ereignis

Gültigkeits-beweis

Zertifkat Fehlschlag

Aktualisierung

Beweis Aktualisierung

Attribut Aktualisierung

Abb. 4. Ablauf der Simulation mit Hilfe einer kinetischen Datenstruktur.

3.2 Begriffe und Definitionen

Gegeben sei ein zu simulierendes System mit einer Objektmenge S. Das System kann zueinem bestimmten Zeitpunkt t ∈ R≥0 durch eine Funktion π : S → V beschrieben werden,die jedem Objekt aus S eine Position im betrachteten Vektorraum V zuordnet (z.B. V =R2). Wir bezeichnen π als Konfiguration und Π := π|π ist Konfiguration als die Mengealler Konfigurationen. Wir beginnen mit der Definition von Attributen:

4 In diesem Zusammenhang spricht man auch von einem Beweisschema; es handelt sich eher um einen„Bauplan“ für einen Beweis als um einen Beweis selbst.

Page 85: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Eine Einführung in kinetische Datenstrukturen 77

Definition 1 (Attribut). Ein Attribut ist eine Funktion, die einer Konfiguration π ∈ Πeine kombinatorische Beschreibung zuordnet.

Attribute beschreiben also diskrete5 Eigenschaften des Systems zu einem bestimmtenZeitpunkt. Beispiele für Attribute sind z.B. das nächste Paar oder die konvexe Hülle einerPunktmenge (siehe Abbildung 5).

a bc

d

e

Abb. 5. Attribut „nächstes Paar“: (c, d); Attribut „konvexe Hülle“: (a, e, b)

Um die Gültigkeit von Attributen zu untersuchen, werden sogenannte Zertifikate einge-führt. Sie dienen der Überprüfung bestimmter Eigenschaften für ein k-Tupel s ∈ Sk (k ∈ N)von Objekten.

Definition 2 (Zertifikat). Zertifikate sind Funktionen zs : Π → R und können drei ver-schiedene Zustände beschreiben. Ein Zertifikat zs : Π → R heißt:

• gültig für eine Konfiguration π ∈ Π, falls zs(π) > 0 gilt• ungültig für eine Konfiguration π ∈ Π, falls zs(π) < 0 gilt• degeneriert für eine Konfiguration π ∈ Π, falls zs(π) = 0 gilt

Man beachte, dass ein Zertifikat immer bezüglich bestimmter Objekte definiert ist. Siesind die Grundbausteine für die Gültigkeitsbeweise von Attributen.

Definition 3 (Gültigkeitsbeweis). Ein Gültigkeitsbeweis L ist eine endliche Menge vonZertifikaten6. Wir bezeichnen L als gültig für eine Konfiguration π, falls alle z ∈ L gül-tig in π sind. Ist ein z ∈ L ungültig (degeneriert), so bezeichnen wir ganz L als ungültig(degeneriert).

Gültigkeitsbeweise dienen der Zertifizierung von Attributen. Sie machen also eine Aus-sage über die Gültigkeit eines Attributwertes. Es gibt zwei verschiedene Arten von Gültig-keitsbeweisen. Zu deren Erläuterung wird allerdings zunächst folgender Begriff benötigt:

Definition 4 (Szenario). Ein Szenario (πt)t∈[0,1] ist ein Weg7 im Konfigurationsraum Π.

5 Diskret in dem Sinne, dass sich die kombinatorische Beschreibung während der Simulation nur endlichoft ändert.

6 Man kann L auch als Funktion Π → Rd auffassen, wobei d die Anzahl der Zertifikate des Gültigkeitsbe-weises beschreibt.

7 Ein Weg ist eine auf einem geschlossenen Intervall (hier [0, 1]) definierte stetige Abbildung.

Page 86: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

78 Peter Kling

Ein Szenario beschreibt also stetige Bewegungen der Objekte. Man sagt nun ein Gültig-keitsbeweis L zertifiziert ein Attribut A in einer Konfiguration π:

• stark, falls ∀π′ ∈ Π : L gültig für π′ ⇒ A(π) = A(π′).• schwach, falls für alle Szenarien (πt)t∈[0,1] mit π0 = π und L ist gültig für alle πt gilt:

A(πt) = A(π) ∀t ∈ [0, 1].

In beiden Fällen muss L auch gültig für die Konfiguration π sein. Anschaulich lassensich diese Begriffe anhand von Abbildung 6 erklären. Wir bezeichnen die Menge ML = π ∈Π|L ist gültig für π als die Menge der von L induzierten Konfigurationen.

Abb. 6. Die markierten Bereiche stellen die durch L induzierten Konfigurationen dar.

Starke Zertifizierung bedeutet, dass A in allen von L induzierten Konfigurationen denselben Wert annimmt, also auf ganz ML konstant ist. Schwache Zertifizierung hingegenbenötigt nur, dass A auf einem8 wegzusammenhängenden Teilgebiet von ML konstant ist.

Im Verlauf der Simulation kann es theoretisch vorkommen, dass mehrere Ereignissegleichzeitig eintreffen. Dies erschwert Analyse und Implementierung, da das Verhalten indiesem Fall undefiniert ist. Deshalb wollen wir nur Konfigurationen betrachten, die in all-gemeiner Lage sind:

Definition 5. Wir sagen eine Konfiguration befindet sich in in allgemeiner Lage, wenn indieser Konfiguration höchstens eines der betrachteten Zertifikate degeneriert ist.

Degenerierte Zustände von Zertifikaten sind gerade die interessanten Momente. Hier kannsich der Wert eines bestimmten Attributes ändern. Durch die Beschränkung auf diese Artvon Konfigurationen9 kann Mehrdeutigkeit vermieden werden.

Ein weiterer zentraler Begriff ist der des Beweisschemas:8 Und zwar auf dem, das die Konfiguration π enthält.9 Diese Annahme ist durchaus vertretbar, da in einem kontinuierlichen System bereits eine infinitesimale

Änderung ausreichen wird, um die degenerierten Zertifikate zu trennen.

Page 87: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Eine Einführung in kinetische Datenstrukturen 79

Definition 6 (Beweisschema). Ein Beweisschema für ein Attribut A weißt allen Konfi-gurationen in allgemeiner Lage einen Gültigkeitsbeweis zu, der A in der jeweiligen Konfigu-ration zertifiziert (stark oder schwach).

Ein Beweisschema erlaubt es uns also Gültigkeitsbeweise für Attribute und Konfigura-tionen zu „erstellen“.

Die nächsten beiden Begriffe sind zentrale Gesichtspunkte in der Analyse kinetischerDatenstrukturen, da sie gewisse Aspekte der Effizienz eben dieser beschreiben.

Definition 7 (Lokalität). Die Lokalität eines Beweisschemas beschreibt die maximale An-zahl an Zertifikaten, an denen ein beliebiges Objekt in einem Gültigkeitsbeweis des Schemasbeteiligt ist.

Mit diesem Begriff kann der Aufwand beschrieben werden, der nötig ist um den Zustandder kinetischen Datenstruktur an die Änderung einer Trajektorie10 anzupassen. Ist L dieLokalität des verwendeten Beweisschemas und beschreibt c die Kosten ein Element aus derEreigniswarteschlange zu entfernen und hinzuzufügen, so ist dieser Aufwand gegeben durchO(cL).

Definition 8 (Antwortzeit). Beschreibt die worst-case Berechnungszeit, um ein Ereig-nis aus der Ereigniswarteschlange vollständig zu bearbeiten. Dies umfasst insbesondere dieAnpassung des aktuellen Gültigkeitsbeweises und die nötigen Aktualisierungen in der Ereig-niswarteschlange selbst.

Im Hinblick auf die Analyse kinetischer Datenstrukturen ist es notwendig, die Szenarien,insbesondere die Art der zugelassenen Trajektorien, genauer zu beschreiben. Wir werdenuns deshalb in der Analyse auf folgende Szenarien-Klassen einschränken:

Definition 9 ((δ, n)-Szenario). Ein Szenario (πt)t∈[0,1] bezüglich n Objekten, so dass dieTrajektorie t 7→ πt(s) eines Objektes s ein Vektor von Polynomen in t vom Grade höchstensδ ist, heißt (δ, n)-Szenario.

Definition 10 ((δ, n, m)-Szenario). (δ, n, m)-Szenarien beschreiben ein dynamisches Sze-nario, d.h. die beteiligten Objekte bewegen sich nicht nur, sondern es können auch Objektehinzugefügt oder entfernt werden. Zur Modellierung erweitern wir den Vektorraum V um einSondersymbol ω. Ein Objekt s mit π(s) = ω in einer Konfiguration π wird als nicht sichtbarbetrachtet. Ein Szenario (πt)t∈[0,1] auf einer Objektmenge S mit Positionen in R ∪ ω istein (δ, n, m)-Szenario, falls:

• ∀s ∈ S ist γs : t 7→ πt(s) auf allen Intervallen I ⊆ [0, 1] mit ω /∈ γs(I) ein Polynom vomGrade höchstens δ

•∑

s∈S |I ⊆ [0, 1]|I ist maximales Intervall mit ω /∈ γs(I)| = m• |s ∈ S|πt(s) 6= ω| ≤ n ∀t ∈ [0, 1]

In einem (δ, n, m)-Szenario dürfen also maximal n Objekte gleichzeitig sichtbar sein,und es gibt insgesamt m verschiedene Bewegungsabschnitte, auf denen die TrajektorienPolynome sind. In der Analyse gehen wir bei (δ, n, m)-Szenarien davon aus, dass m = |S|

10 z.B. nach einer Kollision zweier Objekte

Page 88: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

80 Peter Kling

gilt, also m der Anzahl aller betrachteten Objekte entspricht. Damit ist jedes Objekt ingenau einem Zeitintervall sichtbar11.

Anhand dieser Typen von Szenarien kann man die Effizienz einer kinetischen Daten-struktur analysieren. Darunter verstehen wir die gesamten Berechnungskosten, welche beider Simulation eines gegebenen Szenarios anfallen.

4 Anwendung kinetischer Datenstrukturen

Es soll nun eine einfache eindimensionale Anwendung für kinetische Datenstrukturen unter-sucht werden. Wir betrachten für eine endliche Menge S von reellen Zahlen das Maximum-Attribut. Ausgehend von einem statischen Lösungsansatz konstruieren wir eine kinetischeVariante, die das Maximum der Menge S über zeitliche Änderungen hinweg aufrecht erhält.Eine solche kinetische Datenstruktur bezeichnen wir als kinetische Prioritätswarteschlange.Die hier vorgestellte kinetische Prioritätswarteschlange heißt Kinetic Tournament.

Kinetic Tournament

Ausgangspunkt ist ein rekursiver Algorithmus zur Berechnung des Maximums (siehe Al-gorithmus 6). Die Ausgangsmenge S wird in zwei in etwa gleich große Hälften geteilt, aufdenen rekursiv das Maximum bestimmt wird. Die Ergebnisse werden schließlich verglichenund das größere von beiden zurück geliefert.

Algorithmus 6 RecursiveMaximum(S = (s1, s2, . . . , sn))1: if n = 1 then2: return s1

3: else4: k = dn

2e

5: m1 = RecursiveMaximum(s1, . . . , sk)6: m2 = RecursiveMaximum(sk+1, . . . , sn)7: return max(m1, m2)

Wir wollen zunächst ein geeignetes Beweisschema aus diesem Algorithmus extrahieren.Dazu stellen wir den Ablauf des Algorithmus in Form eines Turnierbaumes dar (siehe Ab-bildung 7). Um die Rundungsoperation in Zeile 4 in der Analyse zu vermeiden, füllen wirdie Objektmenge S mit dem Sentinel −∞ solange auf, bis |S| eine Zweierpotenz ist.

So ein Turnierbaum beschreibt für eine gegebene Objektmenge, wie die einzelnen Verglei-che im Algorithmus (Zeile 7) jeweils ausfallen. Jeder innere Knoten zusammen mit seinenzwei Kindern entspricht dabei genau einem Aufruf von Zeile 7 und je tiefer im Baum derKnoten liegt, desto größer ist die Rekursionstiefe des zugehörigen Aufrufes. Das Ergebnisdes Vergleichs der beiden Kinderknoten wird im Vaterknoten gespeichert. Die Wurzel desBaumes stellt schließlich das Maximum der Objektmenge dar.

Ein Turnierbaum kann nun offensichtlich als Gültigkeitsbeweis für die kinetische Priori-tätswarteschlange benutzt werden. Die einzelnen Zertifikate entsprechen den inneren Knoten11 Dies vereinfacht die Analyse, ohne tatsächlich eine Einschränkung darzustellen: schließlich kann man

einfach verschiedene Objekte identifizieren und so auch Objekte betrachten, welche mehrmals auftauchenund wieder verschwinden.

Page 89: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Eine Einführung in kinetische Datenstrukturen 81

b

b c

c -∞a b

Abb. 7. Ein Turnierbaum (mit Sentinel) für S = a, b, c und a < b, c < b.

des Baumes, genauer gesagt dem Vergleich der beiden Kinder so eines Knotens. Zusammenbeschreiben diese inneren Knoten das Maximum offensichtlich eindeutig, es handelt sichhierbei also um Gültigkeitsbeweise mit starker Zertifizierung (vgl. Abschnitt 3.2). Es istzu bemerken, dass der Turnierbaum innerhalb eines Szenarios immer der gleiche ist; ver-schiedene Gültigkeitsbeweise innerhalb eines Szenarios unterscheiden sich nur im Inhalt derKnoten.

Die beschriebene Konstruktion des Turnierbaumes ergibt ein Beweisschema, erlaubt siees doch für jede Konfiguration (in allgemeiner Lage) einen entsprechenden Gültigkeitsbeweisanzugeben. Die darauf basierende kinetische Datenstruktur wollen wir im Folgenden als Ki-netic Tournament bezeichnen. Nun können wir bereits zwei einfache Ergebnisse festhalten:

Lemma 1. Das oben beschriebene Beweisschema hat Lokalität O(log(n)) und Größe12 O(n).

Beweis. Bei einem Turnierbaum handelt es sich offenbar um einen ausgeglichenen binärenBaum mit O(n) Blättern und Höhe blog(n)c. Die Zertifikate eines beliebigen Gültigkeitsbe-weises, also eines Turnierbaumes, sind gerade dessen inneren Knoten. Die Anzahl an Knoteneines ausgeglichenen binären Baumes ist O(n), folglich ist auch die Größe des Beweisschemaslinear in n.

Jedes Objekt o ∈ S ist durch ein Blatt des Turnierbaumes gegeben. Die Zertifikate, andenen dieses Objekt beteiligt ist, sind gerade alle Zertifikate auf dem Pfad vom zugehörigenBlatt zur Wurzel, für die das Objekt das Maximum darstellt. Die Länge dieses Pfades istdurch die Höhe des Baumes beschränkt. Folglich ist die Lokalität O(log(n)). ut

Die Größe des Beweisschemas liefert uns gleichzeitig die maximale Anzahl an Elementen,die in der Ereigniswarteschlange verwaltet werden müssen. Ein Ereignis kann schließlich nurdurch den Fehlschlag eines Zertifikates ausgelöst werden. Insbesondere erhalten wir folgendesErgebnis:

Korollar 1. Die Größe der Ereigniswarteschlange ist linear in n. Insbesondere benötigtdas Hinzufügen bzw. Entfernen eines Ereignisses in die Ereigniswarteschlange AufwandO(log(n)).12 Die Größe eines Beweisschemas ist die maximale Anzahl an Zertifikaten in einem Gültigkeitsbeweis des

Beweisschemas.

Page 90: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

82 Peter Kling

Die Effizienz einer mit diesem Beweisschema ausgestattete kinetische Datenstruktur sollim Folgenden anhand eines (δ, n, m)-Szenarios analysiert werden. Falls ein Objekt unsichtbarwird, ersetzen wir es im Baum durch den Sentinel −∞. Wird ein Objekt sichtbar, ersetzenwir ein beliebiges Blatt mit Inhalt −∞ durch das Objekt13.

Zunächst untersuchen wir die Antwortzeit dieser Datenstruktur.

Lemma 2. Kinetic Tournament hat Antwortzeit O(log2(n)).

Beweis. Ein Ereignis bedeutet das Fehlschlagen von genau einem Zertifikat (Erinnerung:wir betrachten Konfigurationen in allgemeiner Lage). Das heißt, dass sich das Ergebnis desVergleichs am zugehörigen inneren Knoten v möglicherweise verändert hat. Das neue Ma-ximum muss im Turnierbaum weiter nach oben propagiert werden. Insbesondere müssennur Knoten auf dem Pfad von v zur Wurzel aktualisiert werden. Die Anzahl der Aktualisie-rungen liegt also in O(log(n)). Jeder solchen Aktualisierung entspricht das Entfernen undHinzufügen je eines Ereignisses in die Ereigniswarteschlange, was wiederum Zeit O(log(n))benötigt (Korollar 1). Zusammen ergibt sich die Antwortzeit zu O(log2(n)). ut

Nun wollen wir die Effizienz des Kinetic Tournament untersuchen. Wir greifen dazu aufdie Davenport-Schinzel Sequenzen zurück. Für den geneigten Leser enthält Abschnitt 5 dienötigen Definitionen sowie einige wichtige Ergebnisse, die im Folgenden benutzt werden.Zum Verständnis sollte man insbesondere Definition 13 sowie Korollar 3 beachten.

Theorem 1. Kinetic Tournament hat in einem (δ, n, m)-Szenario Effizienz O(λδ+2(m) log2(n)).

Beweis. Wir müssen die gesamten anfallenden Berechnungskosten für das betrachtete Sze-nario abschätzen. Das Eintreten eines Ereignisses führt zu der Aktualisierung des derzeitigenGültigkeitsbeweises. Wie im Beweis von Lemma 2 gezeigt wurde, bedeutet eine solche Ak-tualisierung die Änderung von (möglicherweise mehreren) Zertifikaten. Betrachtet man denTurnierbaum, entspricht eine solche Zertifikatänderung dem Wechsel des Inhaltes an ei-nem inneren Knoten. Jede solche Zertifikatänderung bewirkt wiederum die Entfernung undHinzufügung eines Ereignisses in der Ereigniswarteschlange. Es wird nun gezeigt, dass dieAnzahl µ der Änderungen in allen Knoten des Baumes durch λδ+2(m)blog(n)c beschränktist. Dies liefert schließlich zusammen mit Korollar 1 die Behauptung.

Sei dazu zunächst v ein beliebiger Knoten des Turnierbaumes T und bezeichne Tv den inv gewurzelten Teilbaum von T . Mit µv wollen wir die Anzahl der Änderungen des Inhaltesvon v während des Szenarios bezeichnen (es gilt also µ =

∑v∈T µv).

Es bezeichne Sv ⊆ S die Teilmenge der betrachteten Objekte, die während des gegebenenSzenarios in Tv auftauchen. Setze außerdem nv = |Sv|. Betrachtet man das Szenario einge-schränkt auf den Baum Tv und die zugehörige Objektmenge, stellt der Inhalt des Knotens vzu jedem Zeitpunkt das Maximum des eingeschränkten Szenarios dar. Nun liefert Korollar3 aus Abschnitt 5.2 die Abschätzung:

µv < λδ+2(nv) (1)

13 So ein Blatt existiert hier immer, da der Baum in einem (δ, n, m)-Szenario maximal n Blätter mit Wert6= −∞ haben kann, und wir die restlichen Blätter anfangs mit Sentinels aufgefüllt haben.

Page 91: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Eine Einführung in kinetische Datenstrukturen 83

Bezeichnet Li die Menge aller Knoten der Höhe i im Baum T , so gilt offensichtlich∑v∈Li

nv = m 14. Zusammen mit Gleichung (1) und Lemma 3 (aus Abschnitt 5.1) liefertdies folgende Abschätzung für die Anzahl der Änderungen in allen Knoten der Höhe i:∑

v∈Li

µv <∑v∈Li

λδ+2(nv) ≤ λδ+2(m) (2)

Summation über alle blog(n)c Ebenen des Turnierbaumes liefert damit µ ≤ blog(n)cλδ+2(m).Zusammen mit den Kosten einer Zertifikatänderung (siehe Korollar 1) liegt die Effizienz da-mit schließlich in O(λδ+2(m) log2(n)).

ut

5 Davenport-Schinzel Sequenzen

Die Abschätzungen in der Analyse des Kinetic Tournament (siehe Abschnitt 4) machenGebrauch von den sogenannten Davenport-Schinzel Sequenzen. Obwohl diese nicht spezifischfür kinetische Datenstrukturen sind, sollen sie der Vollständigkeit halber hier kurz vorgestelltund erläutert werden. Für eine detailliertere Untersuchung sei auf [1] verwiesen.

5.1 Definitionen und Begriffe

Bevor die Davenport-Schinzel Sequenzen eingeführt werden können, benötigen wir zunächstfolgenden Begriff:

Definition 11. Sei σ = (σ1, σ2, . . . , σm) eine endliche Folge in Z. Dann heißt σ nicht wie-derholend, falls σi 6= σi+1 ∀1 ≤ i < m.

Nun kann eine Davenport-Schinzel Sequenz wie folgt definiert werden:

Definition 12. Seien n, s ∈ N und σ = (σ1, σ2, . . . , σm) eine endliche Folge von natürlichenZahlen mit σi ∈ 1, 2, . . . , n ∀1 ≤ i ≤ m. Dann heißt σ eine (n, s)-Davenport-SchinzelSequenz, falls jede sich nicht-wiederholende Teilfolge von σ bestehend aus maximal zweiunterschiedlichen Zahlen höchstens die Länge s + 1 besitzt.

Es mag zunächst fraglich erscheinen, inwiefern dieser Begriff bei einer Abschätzung imZusammenhang mit der kinetischen Prioritätswarteschlange behilflich sein kann. Tatsächlichist es weniger die Davenport-Schinzel Sequenz an sich, die hier von Interesse ist. Vielmehrinteressiert uns, wie lang eine solche Sequenz bei gegebenen Parametern höchstens werdenkann.

Definition 13. Es bezeichne λs(n) die Länge einer längsten (n, s)-Davenport-Schinzel Se-quenz.

Bevor der Zusammenhang mit der kinetischen Prioritätswarteschlange erläutert wird,soll noch folgendes Ergebnis festgehalten werden:14 Ein Objekt wird genau für ein Zeitintervall sichtbar und kann von dem Blatt in dem es erscheint nur

„nach oben“ wandern. Betrachtet man benachbarte Teilbäume, kann ein Objekt insbesondere nicht denTeilbaum wechseln.

Page 92: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

84 Peter Kling

Lemma 3. Seien s, n, m ∈ N. Dann gilt:

λs(n) + λs(m) ≤ λs(n + m)

Beweis. Man betrachtet dazu zwei Davenport-Schinzel Sequenzen die gerade Länge λs(n)bzw. λs(m) haben. Addition von n auf alle Komponenten der zweiten Folge und Konkatenati-on beider Folgen liefert eine (n+m, s)-Davenport-Schinzel Sequenz der Länge λs(n)+λs(m).Es folgt die Behauptung. ut

5.2 Verbindung zu kinetischen Prioritätswarteschlangen

Die Abschätzungen aus Kapitel 4, welche auf die Davenport-Schinzel Sequenzen zurückgreifen, schätzen ab wie oft bei einer gegebenen Familie (fi)n

i=1 von Polynomfunktionen15

die Funktion, die das Maximum darstellt, wechseln kann. Dieser Abschnitt soll aufzeigen,wo genau in der Betrachtung der kinetischen Prioritätswarteschlange aus Kapitel 4 dieDavenport-Schinzel Sequenzen ein Rolle spielen.

Definition 14. Sei (fi)i∈I eine Familie von Funktionen der Form fi : Rd → R (d ∈ N,I Indexmenge). Dann heißt F := supi∈I(fi) die obere Kontur (engl.: upper envelope) derFunktionenfamilie16.

Wir interessieren uns insbesondere für den Fall einer endlichen Indexmenge (also I =1, 2, . . . , n für ein n ∈ N) und dass alle fi Polynome in einer Variablen vom Grade höchs-tens δ ∈ N sind. Diese Situation liegt in einem einfachen eindimensionalen (δ, n)-Szenario(vgl. Abschnitt 3.2) vor: die Trajektorien der einzelnen Objekte entsprechen den Funktionenfi (vgl. Abbildung 8). Die obere Kontur der Trajektorien enthält offensichtlich die Informa-tion, welches Objekt zu welchem Zeitpunkt das Maximum darstellt. Vernachlässigt man dieZeiten, zu denen ein Wechsel stattfindet, kann die obere Kontur als endliche Indexsequenzcodiert werden: die Folge gibt den Index der Funktion an, welche gerade das Maximumdarstellt.

Wie sich heraus stellt, ist so eine Indexsequenz für n Funktionen vom Höchstgrad δgerade eine (n, δ)-Davenport-Schinzel Sequenz.

Lemma 4. Sei (fi)ni=1 eine endliche Familie von n Funktionen wobei die Funktionen fi :

R → R Polynome vom Grade höchstens δ seien. Weiterhin sei σ = (σ1, σ2, . . . , σr) r ∈ Ndie Indexsequenz zur oberen Kontur von (fi)n

i=1. Dann ist σ eine (n, δ)-Davenport-SchinzelSequenz.

Beweis. Sei σ′ eine beliebige, sich nicht wiederholende Teilfolge von σ bestehend aus maxi-mal zwei unterschiedlichen Zahlen i und j. Es ist zu zeigen: σ′ hat höchstens Länge δ + 1.

Für i = j ist die Aussage trivial (da σ′ nicht wiederholend ist). Sei also i 6= j. Betrach-te die zu den Indizes gehörenden Funktionen fi und fj . Beides sind Polynome und habenhöchstens Grad δ, d.h. fi − fj hat auch höchstens Grad δ und damit maximal δ Nullstel-len. Folglich wechselt die Funktion, die max(fi, fj) darstellt, höchstens δ-mal. Insbesonderekönnen fi und fj in der oberen Kontur maximal δ-mal wechseln. D.h. σ′ hat höchstens dieLänge δ + 1. ut15 Jede Funktion fi entspricht dabei gerade der Trajektorie eines Objektes.16 Analog kann die untere Kontur (engl.: lower envelope) definiert werden.

Page 93: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Eine Einführung in kinetische Datenstrukturen 85

obere Kontur

f4

f3

f2

f1

Zeit

R

0 1

Abb. 8. Funktionenfamilie (Trajektorien) mit oberer Kontur. Zugehörige Indexsequenz: (1, 2, 4)

Damit stellt nun λδ(n) als maximale Länge einer (n, δ)-Davenport-Schinzel Sequenz ins-besondere eine obere Schranke für die Anzahl der möglichen Änderungen des Maximums ineinem (δ, n)-Szenario für kinetische Prioritätswarteschlangen dar.

Korollar 2. In einer kinetischen Prioritätswarteschlange ist die Anzahl der Änderungen desMaximums in einem (δ, n)-Szenario durch λδ(n) beschränkt.

Für den etwas komplizierteren Fall eines (δ, n, m)-Szenarios kann ein ähnliches Resultaterziehlt werden:

Korollar 3. In einer kinetischen Prioritätswarteschlange ist die Anzahl der Änderungen desMaximums in einem (δ, n, m)-Szenario durch λδ+2(m) beschränkt.

Lemma 4 lässt sich nicht direkt auf diesen Fall übertragen. Probleme macht insbesonderedie Tatsache, dass die Funktionen hier nur stückweise stetig sind. Folgende Beobachtungenhelfen allerdings ein analoges Lemma zu beweisen, aus dem direkt Korollar 3 folgt:

• Es sind genau m Trajektorien fi : R→ R ∪ ω (1 ≤ i ≤ m) zu betrachten.• Jede Trajektorie fi ist auf genau einem Intervall I ungleich ω (die Zeitspanne, in der das

zugehörige Objekt sichtbar ist).• Je zwei Trajektorien fi, fj (i 6= j) schneiden sich maximal δ-mal. Zusätzlich gibt es

zwei weitere Stellen, an denen sich die obere Kontur hinsichtlich fi und fj ändern kann:der Zeitpunkt, zu dem die zweite Funktion sichtbar wird und der Zeitpunkt, zu dem dieerste der beiden Funktionen wieder unsichtbar wird. Insgesamt hat man also höchstensδ + 2 viele Stellen, an denen die Funktion, die max(fi, fj) darstellt, wechseln kann.

Da der entsprechende Beweis mit diesen Beobachtungen analog zu dem von Lemma 4geführt werden kann, wird hier auf ihn verzichtet.

Page 94: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

86 Peter Kling

6 Fazit und Ausblick

Ich habe in dieser Arbeit den Begriff der kinetischen Datenstruktur eingeführt und an ei-nem eindimensionalen Beispiel — der kinetischen Prioritätswarteschlange — vorgestellt.Die vorgestellten Ergebnisse basieren dabei auf einer Arbeit von Julien Basch [2]. Gänzlichausgelassen wurden bisher Beispiele höherer Dimension. Ein Beispiel für zweidimensiona-le Anwendungen sind z.B. die konvexe Hülle oder das nächste Paar einer Punktmenge inder Ebene (vgl. auch Abbildung 5). Einen detaillierteren Einblick in das Thema sowie eineAnalyse solch höher dimensionaler Beispiele kann in [3] gefunden werden.

Kinetische Datenstrukturen versprechen eine effiziente Möglichkeit viele (geometrische)Probleme in veränderlichen Systemen zu lösen. Die ereignisbasierte Arbeitsweise hat ge-genüber der klassischen zeitbasierten Simulation den Vorteil, dass der Tradeoff zwischenEffizienz und Genauigkeit bei weitem nicht so stark ausgeprägt ist. Allerdings stellen ki-netische Datenstrukturen auch hohe Anforderungen an das Anwendungsgebiet. So müssenfür die hier beschriebenen Anwendungen die Trajektorien der Objekte im Voraus bekanntsein. Auch dürfen diese — um eine aussagekräftige Analyse durchführen zu können — nichtvon beliebiger Gestallt sein, sondern sollten polynominell in dem Zeitparameter sein. Es sollaber nicht unerwähnt bleiben, dass man auch diese Probleme mit kinetischen Datenstruktu-ren adressieren kann. So können kompliziertere Trajektorien z.B. durch Spline-Interpolation(siehe [5]) stückweise durch Polynome beschrieben werden. Sind die Trajektorien nicht be-kannt, kann versucht werden durch Extrapolation Schätzungen für zukünftige Ereignisse zubestimmen.

Tatsächlich handelt es sich bei dem vorgestellten Konzept nicht um ein rein theore-tisches. So enthält beispielsweise die Bibliothek CGAL17 Implementierungen kinetischerDatenstrukturen für einige ein- bis dreidimensionale Probleme. Eine Beschreibung und Bei-spielanwendungen können in [4] gefunden werden.

Literaturverzeichnis

1. Pankaj K. Agarwal and Micha Sharir (1995) Davenport-Schinzel sequences and their geometric appli-cations. Technical Report DUKE-TR-1995-21, Department of Computer Science, Duke University

2. Julien Basch and Leonidas J. Guibas (1999) Kinetic data structures.3. Sabine Naewe (2007) Kinetische Datenstrukturen für zweidimensionale Probleme. Seminararbeit, Uni-

versität Paderborn4. Daniel Russel (2007) Kinetic data structures. In CGAL Editorial Board, editor, CGAL User and

Reference Manual. 3.3 edition5. Hans R. Schwarz and Norbert Koeckler (2004) Numerische Mathematik, Seiten 104–124, 5. überarbei-

tete Auflage Teuber6. Cgal. Computational Geometry Algorithms Library. http://www.cgal.org.

17 Computational Geometry Algorithms Library, siehe [6].

Page 95: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Das Steinerbaumproblem - Ein klassisches Problem derGraphentheorie

Linda Röhrkohl

Universität Paderborn [email protected]

Zusammenfassung. Das Steinerbaumproblem ist ein klassisches NP-vollständiges Problem der Graphen-theorie. In dieser Ausarbeitung wird dieses Problem erläutert und eine vollständige Komplexitätsanalysedurchgeführt. Anschließend werden Spezialfälle des Steinerbaumproblems, allesamt bekannte graphentheo-retische Probleme, motiviert und Algorithmen zu ihrer Lösung präsentiert. Desweiteren werden zwei Algo-rithmen untersucht, mit denen sich das Steinerbaumproblem exakt lösen lässt. Da diese Algorithmen fürdie meisten Probleminstanzen exponentielle Laufzeit besitzen, wird abschließend ein Approximationsalgo-rithmus mit Güte 2 vorgestellt.Durch wiederholende, grundlegende Definitionen, soll es auch den Lesern, die sich als Amateure auf demGebiet der theoretischen Informatik betrachten, möglich sein dem vermittelten Inhalt einfach zu folgen.

1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

2 Graphentheoretische Defintionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

3 Das Steinerbaumproblem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

4 Die Komplexität des Steinerbaumproblems . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

5 Spezialfälle des Steinerbaumproblems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

5.1 Das Problem des kürzesten Weges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 935.2 Minimale Spannbäume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

6 Exakte Algorithmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

6.1 Der Enumerations-Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976.2 Die Idee des Dreyfus-Wagner Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

7 Approximationsalgorithmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

7.1 Ein einfacher Algortihmus mit Approximationsgüte 2 . . . . . . . . . . . . . . . . . . . . . . . . . 1027.2 Verbesserung der Laufzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

8 Offene Fragen - Ein Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

1 Einleitung

Das Steinerbaumproblem ist ein Problem der Graphentheorie. Es besitzt jedoch viele prak-tische Anwendungsbereiche, wie z.B. die Netzwerktheorie oder die Modernisierung von Stre-ckennetzen.

Page 96: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

88 Linda Röhrkohl

Diese Ausarbeitung ist angelehnt an die Kapitel 1 bis 6 von [1].Zur ersten Veranschaulichung des Steinerbaumproblems kann man als Beispiel den dreispu-rigen Ausbau eines vorhandenen zweispurigen Autobahnnetzes nennen. Da es aus Kosten-gründen nicht möglich ist alle Autobahnen dreispurig umzubauen, macht die Regierung dieEinschränkung, dass es nur möglich sein solle, von jeder Großstadt in jede andere Großstadtüber dreispurige Autobahnen zu gelangen. Für die Straßenplaner gilt es somit, die Verbin-dungen im Autobahnnetz zu identifizieren, über die man alle Großstädte erreichen kann unddie alles in allem eine minimale Gesamtlänge besitzen. Denn nur so können die Kosten fürdas gesamte Projekt minimiert werden.Betrachtet man den Bereich der Netzwerktechnik, so kann man sich vorstellen, dass esverschiedene Teilnehmer gibt, die über ein Netzwerk miteinander kommunizieren wollen.Teilweise sind die Teilnehmer direkt miteinander vernetzt, es gibt aber auch Kreuzungs-punkte in denen Leitungen von verschiedenen Teilnehmer zusammentreffen. Jeder Leitun-gabschnitt hat eine individuelle Übertragungszeit. Die Teilnehmer können Nachrichten, diesie von anderen Teilnehmern empfangen an andere Teilnehmer weiterleiten. Um die schnells-te Kommunikation aller Teilnehmer untereinander zu ermöglichen, ist es nötig das Teilnetzzu finden, an dem alle Teilnehmer angeschlossen sind und das eine minimale Gesamtüber-tragungszeit unter allen möglichen Teilnetzen besitzt.

2 Graphentheoretische Defintionen

Zunächst ist es nötig einige Begriffsklärungen vorzunehmen.In dieser Ausarbeitung werden stets ungerichtete Graphen betrachtet. Wird im Folgendenvon einer Kante (x, y) oder einer Weglänge p(x, y) gesprochen, so impliziert dieses stets, dassauch die Kante (y,x) bzw. die Weglänge p(y,x) gemeint ist.Außerdem wird zwischen Graphen G = (V,E) und Netzwerken N = (V,E, l) unterschie-den. Als Netzwerke werden hierbei gewichtete Graphen mit nichtnegativer Gewichtsfunk-tion l : E(N)→ R≥0 bezeichnet.Ein Baum ist ein zusammenhängender, kreisfreier Graph. Gibt es einen Baum, der alleKnoten eines Graphen umfasst, so wird dieser Spannbaum genannt.Für zwei Knoten x und y bezeichnet p(x, y) stets die Länge des kürzesten Weges von x nachy.

3 Das Steinerbaumproblem

Formalisiert man die in der Einleitung vorgestellten Problembeschreibungen, so gelangt manzu folgendem Ergebnis:Das Steinerbaumproblem behandelt die Fragestellung des Findens eines minimalen Teilgra-phen zu einem Graphen G = (V,E), der alle Knoten k ∈ K einer Terminalmenge K ⊆ Vbeinhaltet.

Definition 1 (Steinerbaum).Ein Teilgraph T von G heißt Steinerbaum für K (K ⊆ V (T )), wenn T ein Baum ist, deralle Knoten aus K enthält, sodass alle Blätter von T Knoten aus K sind. Knoten aus Kheißen Terminale und Knoten aus V (T ) \K heißen Steinerpunkte von T .

Page 97: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Das Steinerbaumproblem - Ein klassisches Problem der Graphentheorie 89

Betrachtet man die Problemstellung als Optimierungsproblem, so gilt es den Steinerbaummit minimalem Gewicht zu finden.In ungewichteten Graphen gilt es somit den Steinerbaum mit minimaler Kantenzahl zuidentifizieren, was zu folgender Problemdefintion führt:

Definition 2 (Minimales Steinerbaumproblem in Graphen).Gegeben: Ein zusammenhängender Graph G = (V,E) und eine Menge von Terminalen(K ⊆ V ).Gesucht: Ein Steinerbaum T für K so, dass |E(T )| = min|E(T ∗)| |T ∗ ist ein Steinerbaumfür K in G.

Betrachtet man hingegen Netzwerke, so minimiert man nicht die Kantenanzahl, sondern dasGesamtgewicht des Steinerbaums. Dieses spiegelt die folgende Problemdefinition wieder:

Definition 3 (Minimales Steinerbaumproblem in Netzwerken).Gegeben: Ein zusammenhängendes Netzwerk N=(V,E,l) und eine Menge von Terminalen(K ⊆ V ).Gesucht: Ein Steinerbaum T für K so, dass l(T ) = minl(T ∗) |T ∗ ist ein Steinerbaum fürK in N.

Bei diesen Definitionen sollte auffallen, dass das Steinerbaumproblem in Graphen ein Spe-zialfall des Steinerbaumproblems in Netzwerken ist. Wählt man nämlich l(e) = 1 für allee ∈ E, so kann man einfach eine Probleminstanz des Steinerbaumproblems in Graphen ineine Instanz für das Steinerbaumproblem in Netzwerken transformieren.

4 Die Komplexität des Steinerbaumproblems

Die Untersuchung der Komplexität des Steinerbaumproblems erfordert, dass das Optimie-rungsproblem in ein Entscheidungsproblem transformiert wird.Dazu wird die Problemstellung in der Weise abgeändert, dass nicht mehr eine maximaleoder minimale Lösung gesucht wird, sondern entschieden werden soll, ob es eine Lösunggibt, die eine entsprechende Schranke einhält.Für die Formulierung des Steinerbaumproblems in Graphen als Entscheidungsproblem er-gibt sich dann die folgende Definiton:

Definition 4 (Steinerbaumproblem in Graphen).Gegeben: Ein zusammenhängender Graph G=(V,E), eine Menge von Terminalen (K ⊆ V )und eine ganze Zahl B.Frage: Existiert ein Steinerbaum T für K mit |E(T )| ≤ B?

Zunächst werden nun die nötigen Definitionen und Grundlagen, die für eine Komplexi-tätsanalyse nötig sind, wiederholt, wobei von einer vorherigen Kenntnis der Leser ausgegan-gen wird.

Ein grundlegendes Entscheidungsproblem ist das Satisfiability-Problem, das wie folgtdefiniert ist:

Page 98: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

90 Linda Röhrkohl

Definition 5 (Satisfiability).Gegeben: Eine boolsche Formel F in konjuktiver Normalform.Frage: Gibt es eine gültige Variablenbelegung, die F erfüllt?

Betrachtet man nicht beliebige Formeln in konjunktiver Normalform, sondern beschränktman die Anzahl Literale einer Klausel, so ergibt sich das kSAT-Problem.

Definition 6 (k-Satisfiability(kSAT)).Gegeben: Eine boolsche Formel F in konjuktiver Normalform, bei der jede Klausel maximalk Literale besitzt.Frage: Gibt es eine gültige Variablenbelegung, die F erfüllt?

In der Komplexitätstheorie geht es darum, den zur Lösung eines Entscheidungsproblemsminimal benötigten Ressourcenbedarf zu bestimmen. Ressourcen können hierbei beispiels-weise Laufzeit oder Speicherbedarf sein.Die Klassen P und NP fassen beispielsweise die Probleme zusammen, die in polynomiellerZeit entschieden werden können. In P sind die Probleme, die durch deterministische Turing-maschinen, in NP die, die durch nichtdeterministische Turingmaschinen in polynomiellerZeit entschieden werden können.

Für ein Entscheidungsproblem Π = (I, Sol) ( mit I ist die Menge der Instanzen, die inpolynomieller Zeit entscheidbar sind und Sol, die Menge der Entscheideungen die für dieseInstanzen getroffen werden) bedeutet dies, dass es in NP ist, genau dann, wenn

1. die Größe der Lösung einer Instanz polynomiell abhängig ist von der Größe der Instanzselber. Es existiert also ein Polynom p mit |x| ≤ p(|I|) ∀I ∈ I und x ∈ Sol(I).

2. ein Algorithmus A und ein Polynom q existieren so, dass für alle I ∈ I gilt

a) Wenn Sol(I) 6= ∅, dann gibt es ein x0 ∈ Sol(I), sodass A die Eingabe (I, x0) in Zeitq(|I|) akzeptiert.

b) Wenn Sol(I) = ∅, dann verwirft A für jedes x ∈ Σ∗ die Eingabe (I, x) in Zeit q(|I|).

Um die Komplexität zu analysieren wird zudem das Mittel der polynomiellen Reduktionbenötigt.

Definition 7. Ein Entscheidungsproblem Π = (I, Sol) heißt polynomiell auf ein anderesEntscheidungsproblem Π∗ = (I∗, Sol∗) reduzierbar, Π ≤p Π∗, falls es eine Funktion f :I → I∗ gibt, die in polynomieller Zeit berechenbar ist und für die gilt

∀I ∈ I : Sol(I) 6= ∅ ⇐⇒ Sol∗(f(I)) 6= ∅

Die polynomielle Reduktion macht es nun möglich, die schwierigsten Probleme in NPzu beschreiben.

Definition 8. Ein Entscheidungsproblem Π∗ ist NP-vollständig genau dann, wenn Π∗ ∈NP und ∀Π ∈ NP : Π ≤p Π∗.

Im Jahre 1971 zeigte der kanadische Wissenschaftler Stephen Cook, dass Satisfiability inNP ist und sich auf alle anderen Probleme in NP reduzieren lässt [2]. Hiermit bewies erdas Theorem 1.

Theorem 1. Satisfiability ist NP-vollständig.

Page 99: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Das Steinerbaumproblem - Ein klassisches Problem der Graphentheorie 91

Mittels dieses fundamentalen Satzes ist es nun möglich die NP-Vollständigkeit vielerEntscheidungsprobleme durch polynomielle Reduktion auf SAT zu zeigen. Denn wenn sichalle Probleme in NP polynomiell auf SAT reduzieren lassen und gezeigt werden kann, dasssich SAT auf ein anderes Problem polynomiell reduzieren lässt, so folgt aus der Transitivitätder polynomiellen Reduktion, dass sich alle Problem in NP auf dieses Problem polynomiellreduzieren lassen.

Korollar 1. 3SAT ist NP-vollständig.

Beweis. 3SAT ist offensichtlich in NP, denn für eine gegebene Variablenbelegung ist eseinfach zu entscheiden, ob sie eine Formel in konjunktiver Normalform erfüllt oder nicht.SAT lässt sich einfach polynomiell auf 3SAT reduzieren, denn jede Boolsche Formel F inkonjunktiver Normalform lässt sich in eine Formel F3 mit 3 Literalen pro Klausel umstellen.Dieses funktioniert wie folgt:Jede Klausel C = (l1 ∨ ... ∨ lk) mit k > 3 in F ersetze durch die Klauseln C3 = (l1 ∨ l2 ∨y1)∧ (y1∨ l3∨y2)∧ ...∧ ((yk−3∨ lk−1∨ lk) in F3. F3 ist so genau dann erfüllt, wenn F erfülltist.

ut

Zur Zeit ist kein Algorithmus bekannt, der jede Instanz des Steinerbaumproblems inpolynomieller Zeit löst. Dieses ist, da allgemein angenommen wird, dass P 6= NP gilt, nichtverwunderlich, denn:

Theorem 2. Das Steinerbaumproblem in Graphen ist NP-vollständig.

Beweis. Es ist offensichtlich, dass das Steinerbaumproblem in NP liegt, denn es ist trivialeinen Algorithmus anzugeben, der prüft ob eine gegebene Lösung zulässig ist und die gefor-derte Schranke erfüllt.Somit gilt es nun, die zweite Bedingung für NP-Vollständigkeit zu beweisen: Das Steiner-baumproblem ist schwerer als alle anderen Probleme in NP. Dazu reduzieren wir 3SAT aufdas Steinerbaumproblem.Seien x1, ..., xn die Variablen und K1, ...,Km die Klauseln einer zufälligen 3SAT -Instanz F.Es ist also nötig einen Graphen G = (V,E), eine Terminalmenge K und eine Grenze B sozu konstruieren, dass G genau dann einen Steinerbaum T für K beinhaltet, der maximalLänge B besitzt, wenn die gegebene 3SAT -Instanz erfüllbar ist.G wird wie folgt aufgebaut:Seien u und v zwei Knoten, die über einen Literal-Pfad P(siehe Abbildung 1) miteinander

Abb. 1. Transformation von 3SAT in das Steinerbaumproblem: Der Literal-Pfad [1, S.52]

verbunden sind. Dieser Pfad besitzt als Knoten die Literale aus F in negierter und unne-gierter Form. Es ist über den Pfad P nur möglich von u nach v zu gelangen, wenn für

Page 100: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

92 Linda Röhrkohl

jedes Literal aus F der negierte oder der unnegierte Knoten ein Mal passiert wird. Für jedeKlausel Ki von F sei Ci ein Knoten, der über Pfade zu allen Literalen verbunden ist, die inKi vorkommen. Dieses wird in Abbildung 2 illustriert. Jeder dieser Pfade erhält die Länget = 2n + 1.Die Terminalmenge ist K = u, v ∪ C1, ..., Cm und B = 2n + tm.

Abb. 2. Die Graphenkonstruktion für die Klausel Ki = x2 ∨ xj ∨ xn. Die gestrichelten Linien stellen Pfadeder Länge t = 2n + 1 von Ci zu den entsprechenden Knoten des Literal-Pfads dar. [1, S.52]

Es sind nun zwei Richtungen zu zeigen.3SAT-Instanz F ist erfüllbar =⇒ Es gibt einen Steinerbaum T in G mit Länge≤ B:Ist F erfüllbar, dann besteht der Steinerbaum zunächst aus einem (u, v)-Pfad P, der eine er-füllende Variablenbelegung repräsentiert. Ist xi in F wahr, dann ist xi ∈ P , sonst ist xi ∈ P .Der (u, v)-Pfad hat somit die Länge 2n. Jeder Klauselknoten Ci, (1 ≤ i ≤ m), kann mit Püber einen Pfad der Länge t verbunden werden. Somit erhält man einen Steinerbaum derLänge 2n + tm = B;

Es gibt einen Steinerbaum T in G mit Länge ≤ B =⇒ es gibt eine erfüllendeVariablenbelegung für die 3SAT-Instanz:Jede Klausel Ci muss offensichtlich mit dem Literal-Pfad verbunden werden.Annahme: Es gibt eine Klausel Ci0 , die mit dem Literal-Pfad über mindestens zwei ihrerPfade verbunden ist. Dann gilt aber |E(T )| ≥ (m + 1)t = 2n + 1 + mt > B. Dies ist einWiderspruch und die getroffene Annahme kann nicht gelten.Somit müssen u und v über den Literal-Pfad miteinander verbunden sein was mindestens2n Kanten bedeutet. Da jede Klausel einen Pfad mit Gewicht t benötigt um Ci mit demLiteral-Pfad zu verbinden, muss der Literal-Pfad genau 2n Kanten beinhalten. Somit re-präsentiert der (u, v)-Pfad eine erfüllende Variablenbelegung.Da die Konstruktion des Graphen offensichtlich in polynomieller Zeit erfolgen kann gilt

Page 101: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Das Steinerbaumproblem - Ein klassisches Problem der Graphentheorie 93

3SAT ≤p Steinerbaumproblem in Graphen.ut

5 Spezialfälle des Steinerbaumproblems

In diesem Kapitel werden zwei Spezialfälle des Steinerbaumproblems in Bezug auf die beson-dere Kardinalität der Terminalmenge vorgestellt. Beide Spezialfälle sind berühmte Problemeder Graphentheorie.Ist N = (V,E, l) ein Netzwerk und K ⊆ V die Terminalmenge, dann entspricht das Stei-nerbaumproblem im Fall von |K| = 2, also z.B. K = s, t, dem Problem des Findens deskürzesten Weges von s nach t in N . Gilt hingegen K = V , d.h. alle Knoten des Netzwerkssind auch Terminale, so ist das Problem äquivalent mit der Bestimmung eines minimalenSpannbaumes für N . Beide Problemstellungen und die bekanntesten Algorithmen zu ihrerLösung werden im Folgenden vorgestellt.

5.1 Das Problem des kürzesten Weges

Beim Problem des kürzesten Weges betrachtet man ein Netzwerk N = (V,E, l) und zweiKnoten s, t ∈ V . Es gilt einen kürzesten Weg von s nach t in G zu bestimmen.

Der Algorithmus nach Dijkstra

Ein Algorithmmus zur Lösung des Problems des kürzesten Weges wurde im Jahr 1959 vonEdsger W. Dijkstra entwickelt. [3]Die Idee des Algorithmus ist die Folgende:Die Knotenmenge V lässt sich in jeder Runde, die der Algorithmus durchläuft, in dreidisjunkte Teilmengen aufsplitten. Die erste Menge, im Folgenden mit W bezeichnet, enthältdie Knoten die vom Startknoten s erreichbar sind und deren kürzeste Distanz von s bereitsbestimmt wurde.Die zweite Menge fasst die Knoten x ∈ V \W zusammen, die über eine Kante e=(w,x) voneinem Knoten w ∈ W erreichbar sind. Dieses sind die Knoten um die der kürzester Pfadsukzessive erweitert wird.In der dritten Menge sind die Knoten, die weder zur ersten noch zur zweiten Menge gehören.Die Funktion d : V (N) → N gibt die jeweils aktuelle minimale Distanz des Knoten v vons an. Die Funktion π : V (N) → V (N) gibt den Vorgängerknoten des Knotens v an überden er auf dem kürzesten Weg von s erreicht wird. Bei Initialisierung erhält jeder Knotenv ∈ V \s die Distanz d[v] =∞ zugewiesen. Es gilt d[s] = 0 und π[s] = nil.So lange wie der Zielknoten t nicht in W ist, also kein kürzester Weg von s nach t gefundenwurde, nimmt der Algorithmus den Knoten x aus V \W , der die kürzeste Entfernung d[x]besitzt und fügt ihn zu W hinzu. Für alle Nachbarn y dieses Knotens, die nicht bereits inW sind, wird geprüft, ob ihre Entfernung d[y] durch den Weg über x und die Nutzung derKante (x, y) ∈ E verringert werden kann. Ist dieses der Fall, so wird ihre Distanz d[y] undihr Vorgänger π[y] entsprechend geändert.

Theorem 3. Dijkstras Algorithmus ist korrekt und kann mit Laufzeit O(m + n log n) im-plementiert werden.

Page 102: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

94 Linda Röhrkohl

Algorithmus 7 DIJKSTRAS ALGORITHMUSVorbedingung: Ein zusammenhängendes Netzwerk N=(V,E,l) und zwei Knoten s, t ∈ V .Ausgabe: Ein kürzester (s,t)-Pfad in N.

InitialisierungW := ∅; d[s]:=0; π[s] :=nil;for all v ∈ V \s do

d[v] =∞while t /∈W do

Wähle x0 ∈ V \W mit d[x0] = mind[v]|v ∈ V \W;W := W ∪ x0for all v ∈ Γ (x0) ∩ (V \W ) do

if d[v] > d[x0] + l(x0, v) thend[v] = d[x0] + l(x0, v)π[v] := x0

Beweis. Um die Korrektheit zu zeigen werden folgende Schleifeninvarianten gewählt, dienach jeder Iteration der while-Schleife gelten:

1. Für alle v ∈ W ist d[v] die Länge eines kürzesten (s, v)-Pfades und es existiert (wenns 6= v) ein kürzester (s, v)-Pfad, der mit der Kante (π[v], v) endet.

2. Für alle v ∈ V \W , mit d[v] < ∞, ist d[v] die Länge eines kürzesten (s,v)-Pfades imNetzwerk N [W ∪v], dass durch die Knotenmenge W ∪v induziert wird. Es existiertein kürzester (s,v)-Pfad, der mit der Kante (π[v], v) endet.

Trivialerweise gelten 1. und 2. nach der Initialisierung. Somit reicht es zu zeigen, dass, wenn1. und 2. zu Beginn einer Iteration der while-Schleife gelten, sie auch am Ende der Iterationgelten. Aus diesem Grunde betrachte man den Knoten x0 der zu W hinzugefügt wird. NachInvariante 2. existiert ein (s, x0)-Pfad P in N [W ∪ v], der mit (π[v], v) endet und derLänge l(P ) = d[x0] besitzt.Sei P ′ ein beliebiger (s, x0)-Pfad, der nicht vollständig in N [W ∪ x0] liegt. Dann enthältP ′ einen Knoten y /∈ W ∪ x0. Aufgrund der Wahl von x0 als Knoten mit minimalemd[v] und der Tatsache, dass alle Kantenlängen nichtnegativ sind, kann man folgern, dassl(P ) = d[x0] ≤ d[y] ≤ l(P ′). Somit gilt 1. für die neue Menge W ∪ x0. Die d-Werte vonKnoten werden in der for-Schleife nur geändert werden, wenn man den Knoten über einenkürzeren Pfad, der über x0 führt erreichen kann. Dann werden die d-Werte dieser Knotengenau auf diesen kürzere Pfadlänge geändert und x0 der entsprechende Vorgänger. Hiermitfolgt direkt, dass 2. ebenso gilt.Betrachtet man die Laufzeit so stellt man direkt fest, dass die Wahl des x0 der zeitaufwän-digste Schritt des Algortihmus ist. Sie ist abhängig von der Implementierung. Speichert mandie d-Werte in einem Array so dauert die Suche nach dem besten x0 Zeit von O(n). Da diewhile-Schleife bis zu (n− 1)-mal durchlaufen wird, würde für diese Verwaltung der d-Werteeine Laufzeit von O(n2) folgen.Eine bessere Laufzeit erreicht man, wenn man eine Priority Queue als Speicherstruktur fürdie d-Werte nutzt. Verwendet man beispielsweise einen Fibonacci Heap, wie er in [4] vorge-stellt wird, erreicht man eine Laufzeit von O(m + n log n). Die Initialisierung benötig ZeitO(n). Dann werden maximal n− 1 Extract-Min Operationen zur Findung des x0 benötigtund maximal m Decrease-Key Operationen. Die Veränderung der Werte der Nachbarknotenkann in Zeit O(m) geschehen, da jede Kante maximal zweimal betrachtet wird.

ut

Page 103: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Das Steinerbaumproblem - Ein klassisches Problem der Graphentheorie 95

Anmerkung 1. Ändert man die Terminierungsbedingung der while-Schleife von t /∈ W zuW 6= V so berechnet Dijkstras Algorithmus die kürzeste Distanz des Knotens s zu allenanderen Knoten innerhalb der gleichen Laufzeitbeschränkung. Es gilt somit offensichtlichdas folgende Theorem.

Theorem 4. Sei N=(V,E,l) ein Netzwerk und s ∈ V . Dann kann man kürzeste Wege von szu allen Knoten v ∈ V in Zeit O(m + n log n) berechnen.

ut

5.2 Minimale Spannbäume

Betrachtet man ein Netzwerk N = (V,E, l), so besteht das Problem des minimalen Spann-baums für N darin, einen Baum T in N zu finden, der alle Knoten v ∈ V beinhaltet, für denalso gilt V (T ) = V und der dabei minimales Gewicht besitzt. Für T muss folglich gelten:∑

e∈E(T ) l(e) ist minimal.

Der Algorithmus von Jarnik und Prim

Ein Algorithmus zur Lösung dieses Problems wurde von Jarnik und Prim entwickelt. [5] DieIdee dieses Algorithmus ist ähnlich der, des Algortihmus von Dijkstra zur Berechnung deskürzesten Weges.Im Algorithmus wird zunächst ein beliebiger Knoten s ∈ V ausgewählt und dem Spann-baum T hinzugefügt. Alle Knoten, die zum Spannbaum gehören werden in der Menge Wzusammgengefasst. Die Menge F ⊆ E enthält die Kanten von N , die den Spannbaum Tbilden. Die Funktion d : V (N) → N gibt die Distanz des Knoten v zu einem Knoten ausW zum jeweiligen Zeitpunkt des Algorithmus an. Die Funktion π : V (N)→ V (N) gibt denVorgängerknoten des Knotens v an, über den er beim Aufbau des minimalen Spannbaumsvon einem Knoten aus W erreicht wird. In jeder Runde wird der Knoten x0 ∈ V \W zu Whinzugefügt, der die kürzeste Distanz von einem Knoten w ∈W besitzt. Die Kante, über dieder Knoten erreicht wird, wird in F ergänzt. So fährt der Algorithmus fort bis alle Knotenaus V in W enthalten sind und somit zum Spannbaum gehören.

Algorithmus 8 JARNIK-PRIM ALGORITHMUSVorbedingung: Ein zusammenhängendes Netzwerk N=(V,E,l).Ausgabe: Ein minimaler Spannbaum T=(V,F) für N.

InitialisierungWähle beliebiges s ∈ VW := ∅; F := ∅; d[s] := 0; π[s] :=nil;for all v ∈ V \s do

d[v] =∞while W 6= V do

Wähle x0 ∈ V \W mit d[x0] = mind[v]|v ∈ V \W;W := W ∪ x0; F := F ∪ (x0, π[x0]);for all v ∈ Γ (x0) ∩ (V \W ) do

if d[v] > l(x0, v) thend[v] = l(x0, v)π[v] := x0

Page 104: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

96 Linda Röhrkohl

Theorem 5. Der Jarnik-Prim Algortihmus ist korrekt und kann mit Laufzeit O(m+n log n)implementiert werden.

Beweis. Die Korrektheit des Algorithmus zeigen wir mittels drei Schleifeninvarianten, dienach jeder Iteration der while-Schleife gelten:

1. Die Kanten in F bilden einen Spannbaum für die Knoten in W2. Für alle v ∈ V \W gilt

d[v] = minl(x, v)|x ∈W und (x, v) ∈ E

undd[v] = l(π[v], v).

Der Wert d[v] repräsentiert also die Länge der kürzesten Kante, die v mit den Knotenin W verbindet und (π[v], v) ist eine solche Kante.

3. Es existiert ein minimaler Spannbaum T ∗ = (V, F ∗) mit F ⊆ F ∗.

Trivialerweise gelten 1.-3. nach der Initialisierung. Nun nehmen wir an, dass 1.-3. zu Beginneiner Interation gelten, dann kann man einfach sehen, dass 1. und 2. auch am Ende derIteration mit neuer Menge W gelten. Der Beweis verläuft analog zum Beweise von DijkstrasAlgorithmus. Um 3. zu zeigen sei T ∗ = (V, F ∗) ein minimaler Spannbaum, der den (alten)Spannbaum F beinhaltet. Der Fall, dass (x0, π[x0]) in F ∗ enthalten ist, ist trivial. Ist diesesnicht der Fall, dann existiert ein Pfad P in T ∗ der π[x0] und x0 verbindet. Da π[x0] in Wist und x0 nicht, muss der Pfad P mindestens eine Kante (y,z) enthalten bei der gilt y ∈Wund z /∈W . Aufgrund der Wahl von x0 und Invariante 2 weiss man, dass

l(π[x0], x0) = d[x0] ≤ d[z] ≤ l(y, z).

Sei nun F := (F ∗ \ (y, z))∪ (π[x0], x0). Dann ist T = (V, F ) ein Spannbaum der Länge

l(T ) = l(T ∗)− l(y, z) + l(π[x0], x0) ≤ l(T ∗).

Dann ist T ein minimaler Spannbaum und F beinhaltet, wie behauptet, die neue MengeF := F ∪ (π[x0], x0). Somit ist der Algorithmus korrekt.Die Zeitkomplexität von O(m + n log n) erreicht man wenn man als Speicherstruktur fürdie d-Werte Fibonacci-Heaps verwendet. Dann dauert die Initialisierung Zeit von O(n). Injeder Iteration der while-Schleife wird zur Bestimmung des x0 eine Extract-Min-Operationund maximal m Decrease-Key-Operationen durchgeführt. Da es maximal n− 1 Durchläufeder Schleife gibt, ergibt sich eine Gesamtlaufzeit von O(m + n log n).

ut

Die Idee des Algorithmus von Kruskal

Einen anderen Ansatz zur Lösung des Problems liefert der Algortihmus von Kruskal. [6]Dieser Algorithmus funktioniert nach der Greedy-Strategie. Alle Kanten e ∈ E werdenensprechend ihres Gewichts l(e) austeigend sortiert. Der Algorithmus prüft in jeder Iterationfür die Kante, die unter den verbleibenden Kanten minimales Gewicht hat, ob ihr Hinzufügenzu F einen Kreis in T ergeben würde. Ist dieses der Fall, so wird die Kante verworfen,andernfalls wird sie zu F hinzugefügt. Kruskals Algorithmus kann so implementiert werden,dass seine Laufzeit durch die Zeit, die für das Sortieren der Kanten benötigt wird, dominiertwird. Das Sortiern ist in Lauzeit O(m log n) möglich.Auf den Korrektheitsbeweis wird an dieser Stelle verzichtet.

Page 105: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Das Steinerbaumproblem - Ein klassisches Problem der Graphentheorie 97

Algorithmus 9 KRUSKALS ALGORITHMUSVorbedingung: Ein zusammenhängendes Netzwerk N=(V,E,l).Ausgabe: Ein minimaler Spannbaum T=(V,F) für N.

InitialisierungSortiere die Kanten so, dass l(e1) ≤ ... ≤ l(em).Sei F := ∅.Aufbau des Spannbaumsfor i := 1 to m do

if (V, F ∪ ei) ist kreisfrei thenF := F ∪ ei.

6 Exakte Algorithmen

Im letzten Abschnitt wurde gezeigt, dass es für Spezialfälle der Terminalmenge K Algortih-men gibt, die das Steinerbaumproblem in Netzwerken exakt und in polynomieller Laufzeitlösen.In diesem Abschnitt werden nun Algorithmen vorgestellt, die das Steinerbaumproblem exaktlösen. Ihre Laufzeit ist im Allgemeinen exponentiell. Sie kann aber auch polynomiell sein,wenn entweder davon ausgegangen werden kann, dass die die Anzahl der Nicht-Terminale|V | − |K| oder die Anzahl der Terminale |K| konstant ist.Die erste Idee für einen solchen exakten Algorithmus ist sehr einfach:Zähle alle Teilmengen E′ ⊆ E der Kanten von N auf, prüfe ob sie einen Steinerbaum für Kbilden und behalte die Menge, die den kleinsten Baum bildet.Dieser Algortihmus ist offensichtlich korrekt, aber natürlich nicht sonderlich effizient. SeineLaufzeit ist sogar exponentiell abhängig von der Anzahl der Kanten |E|. Die Algorithmen,die im Folgenden vorgestellt werden, funktionieren nach ähnlichen Prinzipien, sind allerdingsdeutlich effizienter.

6.1 Der Enumerations-Algorithmus

Betrachtet man das Steinerbaumproblem für Netzwerke, so kann es nach Definition in einemSteinerbaum für K in N bis zu |V \K| Steinerpunkte, also Knoten v ∈ V \K geben.Da alle Blätter von T Terminale sind lässt sich die Anzahl Steinerpunkte, die einen Gradvon mindestens 3 haben und somit einen Kreuzungspunkt in T bilden, beschränken.Diese Tatsache wird der im Folgenden beschriebene Enumerations-Algortihmus ausnutzen.[7][8]

Lemma 1. Ein Steinerbaum T für eine Terminalmenge K mit |K| = k beinhaltet maximalk − 2 Steinerpunkte mit Grad von mindestens 3.

Beweis. Sei s2 die Anzahl Steinerpunkte in T , die einen Grad 2 haben und s3 die AnzahlSteinerpunkte, die einen Grad von mindestens 3 haben.Die Anzahl der Knoten des Steinerbaums ergibt sich somit als |V (T )| = k+s2 +s3. Hiermitund aus der Tatsache, dass T ein Baum ist, folgt für die Summe der Knotengrade allerKnoten von T ∑

v∈V (T )

dT (v) = 2|E(T )| = 2(|V (T )| − 1) = 2(k + s2 + s3 − 1).

Page 106: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

98 Linda Röhrkohl

Aus der Defintion von s2 und s3 folgt andererseits∑v∈V (T )

dT (v) =∑v∈K

dT (v)︸ ︷︷ ︸≥k

+∑

v∈V (T )\K

dT (v)

︸ ︷︷ ︸≥2s2+3s3

≥ k + 2s2 + 3s3.

Durch Gleichsetzung folgt somit s3 ≤ k − 2.ut

Es seien nun u und w zwei Kreuzungspunkte in T , also zwei Knoten mit Grad von mindes-tens 3, die über einen Pfad P miteinander verbunden sind.Da T ein minimaler Steinerbaum ist folgt, dass P ein kürzester (u,w)-Pfad ist, wenn alleKnoten auf P den Grad 2 besitzten und keine Terminale sind.Die Steinerpunkte mit Grad 2 eines minimalen Steinerbaum liegen folglich immer auf einemkürzesten Weg von einem Terminal zu einem anderen Terminal, von einem Terminal zueinem Kreuzungspunkt, oder von einem Kreuzungspunkt zu einem Kreuzungspunkt in T .Das sogenannte (vollständige) Distanz-Netzwerk von N, D(N) = (V,ED, lD), definiert fürjedes Knotenpaar u, v ∈ V die kürzeste Distanz voneinander. Es ist also definiert als ED =V × V und lD(u, v) = p(u, v), mit p(u, v) ist die Länge des kürzesten Pfades von u nach vin N.Das Distanznetzwerk kann in polynomieller Zeit berechnet werden, indem beispielsweise derAlgorithmus von Dijkstra für jeden Knoten v ∈ V einmal ausgeführt wird.Aus den bisherigen Ergebnissen gelangt man zu der Aussage, dass sich der minimale Stei-nerbaum T für N einfach in polynomieller Zeit berechnen lässt, wenn man die Menge seinerKreuzungspunkte S kennt. In diesem Fall bestimmt man zunächst das vollständige Distanz-netzwerk D(N). In dem Teilnetzwerk von D(N), dass von den Knoten K ∪ S induziertwird, berechnet man einen minimalen Spannbaum TSp. Dieser beinhalt alle Terminale Kund alle Kreuzungspunkte des minimalen Steinerbaums. Um letztendlich den minimalenSteinerbaum zu bekommen müssen die Kanten e = (u, v) ∈ E(TSp), die schließlich denkürzesten Pfad von u nach v repräsentieren, noch durch den tatsächlichen kürzesten Wegvon u nach v in N ersetzt werden.Der Enumerations-Algorithmus nutzt nun die Tatsache, dass die Anzahl der Kreuzungs-punkte |S| durch den Wert k − 2 beschränkt ist und führt die Berechnung des minimalenSpannbaums für alle entsprechenden Kreuzungspunktemengen durch. Der kleinste minimaleSpannbaum wird schließlich in den zugehörigen minimalen Steinerbaum T transformiert.

Algorithmus 10 ENUMERATIONS ALGORITHMUSVorbedingung: Ein zusammenhängendes Netzwerk N = (V, E, l) und eine Terminalmenge K ⊆ V .Ausgabe: Ein minimaler Steinerbaum T für N .1: Berechne das Distanz-Netzwerk D(N) = (V, ED, lD) und speichere für jede Kante (u, v) ∈ ED den

kürzesten (u, v)-Pfad in N.2: Berechne für alle S ⊆ V \K mit |S| ≤ k− 2 einen minimalen Spannbaum TSp für das Teilnetzwerk von

D(N), das von K ∪ S induziert wird.3: Transformiere den kleinsten der Spannbäume TSp, die in Schritt 2 berechnet wurden, in einen Steiner-

baum T in N .

Page 107: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Das Steinerbaumproblem - Ein klassisches Problem der Graphentheorie 99

Theorem 6. Der Enumerations-Algorithmus berechnet einen minimalen Steinerbaum. Erkann so implementiert werden, dass seine Laufzeit beschränkt ist von O(n2 log n + nm +minnk−2, 2n−k · k2).

Beweis. Die Korrektheit des Algorithmus folgt unmittelbar aus den zuvor gemachten Be-merkungen. Die Laufzeit ergibt sich aus den einzelnen Schritten. Schritt 1, die Berechnungdes Distanz-Netzwerks, kann in Zeit O(n2 log n + nm) geschehen indem man Dijkstras Al-gortihmus n mal ausführt.In Schritt 2 berechnet man einen minimalen Spannbaum (mit maximal 2k-2 Knoten) fürmaximal

∑k−2i=0

(n−k

i

)≤ minnk−2, 2n−k verschiedene Mengen K ∪ S. Da jede dieser Be-

rechnungen in Zeit O(k2) gemacht werden kann, indem man den Algortihmus von Jarnikund Prim verwendet, dauert Schritt 2 maximal O(minnk−2, 2n−k · k2) Zeit. In Schritt 3wird nur noch der kleinste minimale Spannbaum TSp in einen Steinerbaum transformiert.Da jede Kante des Netzwerks N maximal in einem kürzesten Pfad, also einer Kante in TSp

enthalten sein kann, kann Schritt 3 in Zeit O(m) erledigt werden.ut

Aus diesem Beweis kann man weiterhin folgern, dass die Laufzeit des Algorithmus poly-nomiell beschränkt in der Größe des Netzwerks ist, wenn man nur Instanzen des Problemsbetrachtet, in denen die Anzahl der Nicht-Terminale von einer festen Konstante begrenzt ist.Denn so ist es möglich über alle Teilmengen S ⊆ V \K in polynomieller Zeit zu enumerieren.

Korollar 2. Sei C ∈ N beliebig, aber fest. Dann berechnet der Enumerations-Algorithmusfür alle Netzwerke N = (V,E, l) und Terminalmengen K ⊆ V mit |V \ K| ≤ C einenminimalen Steinerbaum in Zeit O(n2 log n + nm).

6.2 Die Idee des Dreyfus-Wagner Algorithmus

Nachdem im letzten Abschnitt ein Algorithmus vorgestellt wurde, der das Steinerbaumpro-blem bei konstanten Nicht-Terminalmengen in polynomieller Zeit optimal löst, wird nun dieIdee eines Algorithmus vorgestellt, der bei konstanten Terminalmengen die optimale Lösungin polynomieller Zeit berechnet.Der Dreyfus-Wagner-Algorithmus [9] arbeitet nach dem Prinzip der dynamischen Program-mierung. Hierbei berechnet er die Länge eines minimalen Steinerbaums für eine Terminal-menge K, aus den Längen der Steinerbäume für alle echten Teilmengen K’ von K.Zunächst werden also die Steinerbäume für alle 2-elementigen Teilmengen von K berech-net. Aus diesen Ergebnissen lassen sich die Steinerbäume für alle 3-elementigen Teilmengenberechnen bis schließlich ein minimaler Steinerbaum für die gesamte Terminalmenge K be-rechnet wird.Im Folgenden sei für X ⊆ K und v ∈ V \X der Wert s(X ∪v) die Länge eines minimalenSteinerbaums für X ∪ v. sv(X ∪ v) sei die Länge eines minimalen Steinerbaums fürX ∪ v in dem v mindestens den Grad 2 besitzt. Gibt es einen solchen Steinerbaum nicht,ergibt sich die Länge nach Definition als sv(X ∪ v) = ∞. Die Werte s(X ∪ v) undsv(X ∪ v) können rekursiv berechnet werden, was folgendes Lemma zeigt:

Lemma 2. Sei X ⊆ K, X 6= ∅ und v ∈ V \X. Dann ist

Page 108: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

100 Linda Röhrkohl

sv(X ∪ v) = min∅6=X′(X

s(X ′ ∪ v) + s((X \X ′) ∪ v)

und

s(X ∪ v) = minminw∈Xp(v, w) + s(X), min

w∈V \Xp(v, w) + sw(X ∪ w).

Beweis. Um die erste Gleichung zu zeigen, betrachtet man den minimalen Steinerbaum Tfür eine Teilmenge X von K und einen Knoten v aus V \ X mit Grad von mindestens 2.Die Länge des minimalen Steinerbaums ist somit sv(X ∪v). T kann man am Knoten v inzwei disjunkte Steinerbäume trennen, von denen der eine die Knotenmenge X ′ ∪ v undder andere die Knotenmenge X \ X ′ ∪ v umfasst. Beide Steinerbäume enthalten v mitGrad ≥ 1. Die Länge des gesamten Steinerbaums sv(X ∪ v) erhält man nun, indem mandie Längen der beiden kleineren Steinerbäume addiert. Minimiert man über alle nichtleeren,echten Teilmengen X ′, so erhält man die erste Gleichung. Dieses wird durch die Abbildung3 verdeutlicht.Um die 2. Gleichung zu zeigen sei T ein minimaler Steinerbaum für X ∪ v, bei dem der

Abb. 3. Beweis der 1. Gleichung der Dreyfus-Wagner-Rekursion. [1, S.79]

Grad von v keiner Beschränkung unterliegt. Für ein Blatt u in T sei Pu der längste Pfad inT, der in u beginnt und auf dem alle inneren Knoten den Grad 2 besitzen und zudem nichtin K liegen. Es sind nun 3 Fälle zu unterscheiden. Minimiert man über alle 3 Fälle, erhältman die Gültigkeit von Gleichung 2.Fall 1: v hat Grad von mindestens 2. Dann ist s(X ∪v) = sv(X ∪v). Dieser Fall wirddurch Wahl von w = v eingeschlossen.Fall 2: v ist ein Blatt in T und Pv endet in einem Knoten w ∈ X. Dann ist T dieVereinigung eines minimalen Steinerbaums für X und eines kürzesten (v, w)-Pfades. Alsogilt s(X ∪ v) = p(v, w) + s(X).Fall 3: v ist ein Blatt in T und Pv endet in einem Knoten w /∈ X. Dann hat w einen Gradvon mindestens 3. Also ist T in diesem Fall die Vereinigung eines minimalen Steienerbaumsfür X ∪ w in dem w mindenstens den Grad 2 besitzt und einem kürzesten (v, w)-Pfad.Also gilt s(X ∪ v) = p(v, w) + sw(X ∪ w).Diese 3 Fälle werden durch Abbildung 4 illustriert.

ut

Page 109: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Das Steinerbaumproblem - Ein klassisches Problem der Graphentheorie 101

Abb. 4. Beweis der 2. Gleichung der Dreyfus-Wagner-Rekursion. [1, S.79]

Der Dreyfus-Wagner-Algorithmus berechnet mit der Rekursionsformel von Lemma 2 dieLänge eines minimalen Steinerbaums. Diese ergibt sich für ein beliebiges v ∈ K als s(K) =s((K \ v) ∪ v).

Algorithmus 11 DREYFUS-WAGNER ALGORITHMUSVorbedingung: Ein zusammenhängendes Netzwerk N=(V,E,l) und eine Terminalmenge K ⊆ V .Ausgabe: Die Länge eines minimalen Steinerbaum T für K

Initialisierungfor all v, w ∈ V do

berechne p(v,w);for all x, y ⊆ K do

s(x, y) := p(x, y);Rekursionsausführung analog zu Lemma 2for i := 2 to k − 1 do

for all X ⊆ K mit |X| = i und alle v ∈ V \X dosv(X ∪ v) = min∅6=X′(Xs(X ′ ∪ v) + s((X \X ′) ∪ v)

for all X ⊆ K mit |X| = i und alle v ∈ V \X dos(X ∪ v) = minminw∈Xp(v, w) + s(X), minw∈V \Xp(v, w) + sw(X ∪ w)

Theorem 7. Der Dreyfus-Wagner Algorithmus berechnet die Länge eines minimalen Stei-nerbaums in O(3kn + 2kn2 + n2 log n + nm)Schritten.

Beweis. Die Korrektheit des Algorithmus folgt durch Lemma 2. Die Laufzeit ergibt sichdurch n-malige Ausführung von Dijkstras Algorithmus (O(n2 log n + nm)) und die AnzahlBerechnungen in der ersten und zweiten Rekursionsgleichung. Die Anzahl der Berechnungender ersten Rekursionsformel ist abhängig von den Möglichkeiten v,X ′ und X zu wählen. Dajedes Terminal zu genau einer der Mengen X ′, X \X ′ und K \X gehört, sind sie begrenztdurch O(3kn). Anhand der Anzahl Möglichkeiten X und v zu wählen ergibt sich, dass diezweite Rekursionsformel für O(2kn) Tupel ausgeführt werden muss. Da für jedes Tupel nBerechnungen nötig sind führt dieses zum Summanden O(2kn2).

ut

Möchte man nicht nur die Länge eines minimalen Steinerbaums berechnen, sondern denSteinerbaum an sich, so muss man neben den Längenberechnungen auch die Knoten undKanten speichern, für die sich die entsprechenden Längen ergeben und sie am Schluss zu ei-nem Steinerbaum zusammenfügen. Die Lösungsidee, des Dreyfus-Wagner-Algorithmus solltenun erkannt sein. Es ergibt sich für ihn abschließend folgendes Korollar:

Korollar 3. Sei C ∈ N beliebig, aber fest. Dann berechenet der Dreyfus-Wagner-Algorithmusfür alle Netzwerke N=(V,E,l) und Terminalmengen K ⊆ V mit |K| ≤ C einen minimalenSteinerbaum in Zeit O(n2 log n + nm).

Page 110: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

102 Linda Röhrkohl

7 Approximationsalgorithmen

Da das Steinerbaumproblem NP-vollständig ist, ist es solange nicht möglich einen poly-nomiellen Algorithmus zu finden, der das Problem exakt löst, wie nicht P = NP bewiesenwurde.Auch kann besonders in praktischen Anwendungen nicht immer vorausgesetzt werden, dassdie Kardinalität der Terminalmenge bzw. der Nichtterminalmenge konstant ist und die In-stanz des zugrundeliegenden Netzwerks hinreichend klein ist um einen der vorgestelltenexakten Algorithmen zur Lösung des Problems in Betracht zu ziehen.Um dennoch in polynomieller Zeit an gute Lösungen des Problems zu gelangen verwendetman sogenannte Approximationsalgorithmen.Approximationsalgorithmen sollen nicht zwingend die optimale Lösung liefern, sondern eineLösung, die möglichst einen Wert besitzt, der nah am Optimum liegt. Die Qualität einesApproximationsalgorithmus wird durch die Approximationsgüte angegeben.Die Approximationsgüte eines Approximationsalgorithmus gibt an, um wieviel schlechtereine Lösung des Algortihmus maximal, im Vergleich zur optimalen Lösung des Problemsist. Das Maximum wird hierbei über alle Instanzen des Problems bestimmt.Bezeichnet lopt(I) den Wert einer optimalen Lösung für eine Instanz Iund l(I), der Wert derLösung, die der Algorithmus für die Instanz I bestimmt, dann ist die Approximationsgüteg für ein Minimierungsproblem definiert durch

g = max l(I)lopt(I)

| I ist Instanz des Problems.

Im Fall des Steinerbaumproblems ist die Approximationsgüte definiert durch den maxima-len Quotienten der Länge des Steinerbaums, den der Algorithmus ermittelt und der Längedes minimalen Steinerbaums. Hierbei werden alle Instanzen des Steinerbaumproblems be-trachtet.

7.1 Ein einfacher Algortihmus mit Approximationsgüte 2

In diesem Abschnitt wird ein Approximationsalgorithmus für das Steinerbaumproblem mitApproximationsgüte 2 vorgestellt. Dieser Algorithmus liefert also im schlechtesten Fall einenSteinerbaum, der doppelt so lang wie der minimale Steinerbaum ist.Um diese Approximationsgüte zu erreichen nutzt der Algorithmus einen Zusammenhangder Länge des minimalen Steinerbaum mit der Länge des minimalen Spannbaums für K imzugehörigen vollständigen Distanznetzwerk ND = (K, ED, lD). Dieser Zusammenhang wirddurch das folgende Lemma wiedergespiegelt:

Lemma 3. Sei N = (V,E, l;K) ein Steinerbaumproblem. Dann erfüllt jeder minimaleSpannbaum T im vollständigen Distanz-Netzwerk ND = (K, ED, lD)

lD(T ) ≤ (2− 2k) · smt(N),

mit k = |K| ist die Kardinalität der Terminalmenge und smt(N), die Länge des minimalenSteinerbaums für K in N.

Page 111: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Das Steinerbaumproblem - Ein klassisches Problem der Graphentheorie 103

Beweis. Sei Topt ein minimaler Steinerbaum in N. Betrachtet man Topt im Gesamtnetzwerkeingebettet und den Weg W um Topt herum (wie in Abbilung 5), dann passiert man auf Wjedes Terminal mindestens einmal und läuft zweimal entlang jeder Kante. Die Länge vonW ist somit doppelt so groß wie die Länge von Topt, also l(W ) = 2 · smt(N).Sei t die Anzahl Blätter von Topt, dann gibt es in W t ≤ k Pfade zwischen aufeinander-

Abb. 5. Illustration des Beweises des Lemma. Der Weg W besteht aus den Pfaden 1-2, 2-3, ...,7-8 und 8-1.Um den Weg W ′ zu erhalten entfernt man den Pfad von 7 nach 8. [1, S.88]

folgenden Blättern in Topt. Entfernt man den längsten dieser Pfade, so ist die Länge desverbleibenden Wegs l(W ′) maximal (1− 1

t )-mal so groß wie l(W ). Dieses ist der Fall, wennalle t Pfade die gleiche Länge besitzen.Nun ist offensichtlich, dass man indem man dem Weg W ′ folgt einen Spannbaum für K inND konstruiert, der sogar ein Pfad ist. Die Länge dieses Spannbaum ist maximal l(W ′). Dat ≤ k gilt, folgt somit

lD(T ) ≤ l(W ′) ≤ (1− 1k) · l(W ) = (1− 1

k) · 2smt(N) = (2− 2

k) · smt(N).

ut

Da ein minimaler Spannbaum nach Theorem 5 in polynomieller Zeit berechenbar ist undein minimaler Spannbaum im vollständigen Distanznetzwerk einen minimalen Steinerbaummit Güte 2 approximiert, kann man diesen Spannbaum dazu nutzen einen Steinerbaum zukonstruieren, der maximal zweimal so lang ist wie der minimale Steinerbaum für dieses Netz-werk. Auf diese Weise berechnet der folgende MSP-Algorithmus [10] einen approximiertenSteinerbaum.Das Beispiel in Abbildung 6 illustriert die verschiedenen Schritte des Algorithmus. Außer-dem macht es deutlich, dass die Schritte 4 und 5 für die Probleminstanzen benötigt werdenbei denen das Teilnetzwerk N [TD] nicht kreisfrei ist. Um aus N [TD] einem Steinerbaumzu erzeugen muss folglich mindestens noch eine Kante entfernt werden. Aus diesem Grundberechnet man in Schritt 4 erneut einen minimalen Spannbaum. Besitzt dieser Blätter, diekeine Terminale sind, sind die Kanten zu ihnen für einen Steinerbaum ebenfalls unnötig undwerden daher entfernt.

Theorem 8. Sei N = (V,E, l;K) ein Netzwerk. Dann berechnet der MST-Algorithmus inpolynomieller Zeit einen Steinerbaum SK für N so, dass gilt

l(SK) ≤ (2− 2k) · smt(N).

Page 112: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

104 Linda Röhrkohl

Algorithmus 12 MSP-ALGORITHMUSVorbedingung: Ein zusammenhängendes Netzwerk N=(V,E,l) und eine Terminalmenge K ⊆ V .Ausgabe: Ein minimaler Steinerbaum SK für N.1: Berechne das Distanz-Netzwerk ND = (K, ED, lD) und speichere für jede Kante (u, v) ∈ ED den kür-

zesten (u,v)-Pfad in N.2: Berechne einen minimalen Spannbaum TD in ND.3: Transformiere TD in ein Teilnetzwerk N [TD] von N indem jede Kante von TD durch den entsprechenden

kürzesten Pfad in N ersetzt wird.4: Berechne einen minimalen Spannbaum T für das Teilnetzwerk N [TD].5: Transformiere T in einen Steinerbaum SK für N, indem nach und nach die Blätter aus T entfernt werden,

die keine Terminale sind.

Abb. 6. Illustration der verschieden Schritte des MST-Algorithmus. [1, S.90]

Beweis. Aufgrund von Lemma 3 gilt l(TD) ≤ (2 − 2k ) · smt(N). Da l(TD) in Schritt 3

unverändert bleibt, TD in Schritt 4 höchstens zu T verkleinert wird und T in Schritt 5ebenfalls höchtens noch zu SK verkleinert wird, gilt l(TD) ≥ l(T ) ≥ l(SK). Somit ist auchdie Länge des approximierten Steinerbaum SK höchstens (2 − 2

k )-mal so groß wie es derminimale Steinerbaum ist.

ut

Die Laufzeitanalyse des Algorithmus zeigt dass die Berechnung des Distanz-Netzwerks ND

der zeitaufwendigste Schritt ist, denn hierzu muss für alle k Terminale die Berechnung derkürzesten Wege zu allen anderen Knoten erfolgen, was jeweils maximal Zeit von O(n log n+m) benötigt. Die Berechnung der Spannbäume ist jeweils in Zeit O(n log n + m) möglich.Für den Worst-Case k = |V | erhält man für den MSP-Algorithmus also eine Laufzeit vonO(n2 log n + nm).

7.2 Verbesserung der Laufzeit

Um die Laufzeit des MSP-Algorithmus zu verbessern, muss man den zeitaufwendigstenSchritt, die Berechnung des vollständigen Distanznetzwerks überdenken.Hierzu schlug der deutsche Informatiker Kurt Mehlhorn im Jahre 1988 vor, statt des voll-ständigen, ein neuartiges Distanznetzwerk N∗

D = (K, E∗D, l∗D) zu verwenden.[11] In diesem

Netzwerk sollen alle Knoten v ∈ V in verschiedene Komponenten aufgeteilt werden. Jedes

Page 113: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Das Steinerbaumproblem - Ein klassisches Problem der Graphentheorie 105

Terminal s ∈ K entspricht einer Gruppe Ψ(s). Alle anderen Knoten v ∈ V \ K gehörenzu der Gruppe des Terminals zu dem sie die minimale Distanz p(s, v) besitzen. Haben siezu mehreren Terminalen die gleiche minimale Distanz, so werden sie einer beliebigen dieserGruppen zugeordnet.E∗

D beinhaltet genau dann eine Kante zwischen zwei Komponentenknoten, wenn es in Eeine Kante gibt, die zwei Knoten aus den beiden Komponenten miteinander verbindet. InE∗

D sind sozusagen die Kreuzungskanten zweier Komponenten. Das Gewicht einer Kante istder minimale Wert eines Pfades über den zwei Terminale miteinander verbunden werdenkönnen. Formal bedeutet dies:

N∗D = (K, E∗

D, l∗D) mit

(x, y) ∈ E∗D ⇐⇒ ∃(u, v) ∈ E mit u ∈ Ψ(x) und v ∈ Ψ(y),

l∗D(x, y) = minp(x, u) + l(u, v) + p(v, y)|u ∈ Ψ(x), v ∈ Ψ(y), (u, v) ∈ E.

Ein solches Neztwerk lässt sich schnell berechnen. Man fügt in das ursprüngliche NetzwerkN einen Knoten s0 ein, den man mit allen Terminalen s ∈ K über eine Kante mit Gewicht0 verbindet. Dann berechnet man mit einer Ausführung von Dijkstras Algorithmus die kür-zesten Wege von s0 zu allen Knoten v ∈ V . Der erste Knoten, der auf dem kürzesten Wegvon s0 zu v passiert wird, ist offensichtlich das Terminal s, zu dem v die kürzeste Distanzbesitzt und in dessen Gruppe Ψ(s) v somit gehört. Die Pfadlängen p(s, v) aller Knoten zuden entsprechenden Terminalen werden durch die Ausführung von Dijkstras Algorithmusautomatisch mit berechnet, denn sie entsprechen der kürzesten Pfadlänge p(s0, v).Die Berechnung von E∗

D und l∗D ist anschließend einfach und kann im Vergleich zur Be-rechnung der Komponenten vernachlässigt werden. Es ergibt sich also für die Berechnungdes Netzwerkes N∗

D die Laufzeit O(n log n + m) durch einmaliges Ausführen von DijkstrasAlgorithmus. Mehlhorn bewies anschließend, dass jeder minimale Spannbaum in N∗

D auchin minimaler Spannbaum in ND ist. Transformiert man diesen Spannbaum anschließend inden Teilgraphen von N, erhält man einen Steinerbaum für K in N, der der gleichen Ap-proximationsgüte wie der MSP-Algorithmus genügt, aber nur eine Laufzeit O(n log n + m)benötigt. Mehlhorns Algorithmus sieht folgendermaßen aus:

Algorithmus 13 MEHLHORNS-ALGORITHMUSVorbedingung: Ein zusammenhängendes Netzwerk N=(V,E,l) und eine Terminalmenge K ⊆ V .Ausgabe: Ein minimaler Steinerbaum SM für N.1: Berechne das Distanz-Netzwerk N∗

D = (K, E∗D, l∗D).

2: Berechne einen minimalen Spannbaum T ∗D in N∗

D.3: Transformiere T ∗

D in einen Steinerbaum SM := N [T ∗D] für N, indem jede Kante von T ∗

D durch denentsprechenden Pfad in N ersetzt wird.

8 Offene Fragen - Ein Ausblick

In dieser Arbeit wurde das klassische Steinerbaumproblem ausführlich untersucht. Kom-plexität, Spezialfälle und Lösungsansätze wurden betrachtet. Es wurden sowohl exakte als

Page 114: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

106 Linda Röhrkohl

auch approximative Lösungsansätze vorgestellt, doch es sind sicherlich auch noch Frage-stellungen unbeachtet geblieben. Sind die exakten Lösungsansätze für einen Einsatz in derPraxis überhaupt zu verwenden, oder ist es unrealistisch anzunehmen dass die Terminal-menge oder die Nichtterminalmenge konstant bleibt? Gibt es Approximationsalgorithmen,die eine bessere Güte als 2 besitzen? Wie berechnet man Steinerbäume in Netzwerken, indenen sich die Strukturen ständig verändern können? Hier wären beispielsweise Computer-netze zu nennen, in denen Computer die Terminale und Router die Nicht-Terminale bildenkönnen und in denen die Computer sich am Netz an- und abmelden können. Alles diesessind Fragen, mit denen sich die Forschung bereits befasst hat und auf die in einer Vielzahlvon Papern eingegangen wird. Unter anderem waren dieses auch Fragen aus dem Gebiet derdynamischen Steinerbäume, die die Seminarausarbeitung betrachtet.

Literaturverzeichnis

1. Prömel H. J., Steger A. (2002) The Steiner Tree Problem. A Tour through Graphs, Algorithms, andComplexity. Vieweg, Braunschweig/Wiesbaden

2. Cook S. A. (1971) The complexity of theorem-proving procedure. In: 3rd Annual Symposium on Foun-dations of Computer Science: 431–439

3. Dijkstra E. (1959) A note on two problems in connexion with graphs. In: Numerische Mathematik 1,Springer, Berlin Heidelberg New York, 269–271

4. Fredman M., Tarjan R. (1987) Fibonacci heaps and ther uses in improved network optimization algo-rithms. J. ACM 34: 596–615

5. Prim R. (1957) Shortest connection networks and some generalizations. Bell Systems Technical Journal36: 1389–1401

6. Kruskal J. (1956) On the shortest spanning subtree of a graph and the traveling salesman problem.Proceedings of the American Mathematical Society 7: 48–50

7. Hakimi S. (1971) Steiner’s problem in graphs and its applications. Networks Vol. 1, Nr.2: 113–1338. Lawler E. (1976) Combinatorial Optimization: Networks and Matroids. Holt, Rinehart and Winston,

New York9. Dreyfus S., Wagner R. (1972) The Steiner problem in graphs. Networks Vol. 1: 195–207

10. Kou L., Markowsky G., Berman, L. (1981) A fast algorithm for Steiner trees. Acta Inform. 15: 141–14511. Mehlhorn K. (1988) A faster approximation algorithm for the Steiner problem in graphs. Inform.

Process. Lett 27: 125–128

Page 115: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Aspektgraphen und Verdeckung

Michael Kruse

Universität Paderborn [email protected]

Zusammenfassung. In dieser Ausarbeitung wird eine Repräsentation eines Objektes oder einer ganzenSzene einer 3D-Computergrafik vorgestellt, der so genannte Aspektgraph. Ein Aspektgraph beschreibt Ei-genschaften der Szene, die von der Position des Betrachters abhängig ist. Die zu wählenden Eigenschaftensind von Anwendung abhängig. Die hier gewählte Eigenschaft ist die Sichtbarkeit von Elementen der Szenevon der Betrachterposition aus gesehen. Dazu werden zwei Algorithmen vorgestellt. Zum einen die naiveHerangehensweise und zum Anderen der Algorithmus von Plantinga und Dyer aus der Veröffentlichung [1].Zum besseren Verständnis werden bei Algorithmen zuerst auf 2D-Grafiken mit orthographischer Projektionangewandt, um sie dann auf 3D-Grafiken in orthographischer und perspektivischer Projektion zu verallge-meinern. Für alle Fälle wird die Größenkomplexität der nötigen Strukturen und die Zeitkomplexität beiderAlgorithmen gezeigt.

1 Anwendungen und Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

1.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1081.2 Beispielanwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1081.3 Definitionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

2 Verdeckung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

3 2D-Rendering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

3.1 Perspektivische Projektion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1113.2 Ereignisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1123.3 Orthographische Projektion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1143.4 Der naive Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1153.5 Der Algorithmus von Plantinga und Dyer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

4 3D-Rendering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

4.1 Ereignisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1184.2 Orthographische Projektion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1204.3 Perspektivische Projektion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1214.4 Maximale Größe eines Aspektgraphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1214.5 Minimale Größe eines Aspektgraphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1224.6 Der naive Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234.7 Der Algorithmus von Plantinga und Dyer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

5 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

Page 116: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

108 Michael Kruse

1 Anwendungen und Definition

1.1 Einleitung

Das Informatik-Fachgebiet Computergrafik beschäftigt sich mit dem Abbilden von 3D-Objekten oder 3D-Szenen auf eine 2D-Bildfläche (Projektion). Je nachdem in welcher Positi-on sich ein Betrachter relativ zum Objekt befindet, hat das Objekt eine andere Darstellung.In dieser Ausarbeitung wird die Darstellung eines Objektes zumeist auf die topologischeErscheinung von einem bestimmten Sichtpunkt, auch Aspekt genannt, reduziert.

Ein Aspektgraph speichert die Darstellungen eines Objektes oder einer Szene und welcheineinander übergehen können. Eine weitere Datenstruktur namens VSP beschreibt, wannsich der Aspekt ändert. Unter anderem können diese Informationen dazu genutzt werden,alle sichtbaren Elemente der Szene zu bestimmen. Dies ist der Schwerpunkt dieser Ausar-beitung.

1.2 Beispielanwendungen

Objekterkennung in Bildern

Auf einer Rastergrafik ist ein Objekt abgebildet, z.B. auf einer Fotografie. Ein Compu-terprogramm, welchem möglichst viele Ansichten (bzw. Aspekte) dieses Objektes bekanntsind, kann das abgebildete Objekt mit den bekannten Aspekten vergleichen. Bei genügenderÄhnlichkeit gilt das Objekt als erkannt.

Billboarding

Ein Billboard ist ein 2D-Bild innerhalb einer 3D-Computergrafik. Die Normale des Billboardsist dabei immer zum Betrachter gerichtet, so dass das Objekt von allen Seiten gleich aussieht.In älteren Computerspielen wurde dies z.B. für Bäume genutzt.

Statt immer das gleiche Bild darzustellen kann es der Perspektive des Betrachters ange-passt werden. Dazu kann das passende Bild im zugehörigen Aspektgraphen abgespeichertund bei der zugehörigen Ansicht verwendet werden.

Diese Technik wurde bereits beim PC-Spiel Wolfenstein 3D [2] eingesetzt (Abb. 1). Aufdem linken Bild ist je ein Soldat von vorne und hinten abgebildet. Dies sind vordefinierte2D-Grafiken. Die Grafik wird ausgetauscht, wenn sich der Sichtwinkel ändert (rechtes Bild).

Abb. 1: Screenshots aus dem PC-Spiel Wolfenstein 3D [2]

Als Aspektgraph modelliert würde eine Grafik für jeden Knoten des Aspektgraphenserstellt werden. Einer Kante wird gefolgt und damit die Grafik des Billboards ausgetauscht,wenn der andere Aspekt dem aktuellen Aspekt ähnlicher ist.

Page 117: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Aspektgraphen und Verdeckung 109

In Wolfenstein 3D wurden sicherlich keine Aspektgraphen genutzt, sondern die Differenzzwischen der Sichtrichtung der Spielers und der des Soldaten. Daher kann sich die Grafikändern, wenn sich der Spieler nur dreht.

Occlusion-Culling

Culling bezeichnet das Entfernen von Elementen aus 3D-Szenen, die nicht auf der Pro-jektion erscheinen. Occlusion-Culling (eng. Occlusion = Verdeckung) dementsprechend dasEntfernen von Elementen, die von weiteren Elementen verdeckt werden und daher nicht aufder Projektion erscheinen. In der Computergrafik sind mit Elementen normalerweise ganzeObjekte gemeint, die vollständig oder gar nicht aus der Szene entfernt werden.

Ein Aspektgraph kann die sichtbaren Elemente für jede Betrachterposition speichern, eswerden dann nur diese Elemente gerendert.

1.3 Definitionen

Definition 1 (Aspektgraph). Ein Aspektgraph ist ein ungerichteter Graph G = (V,E),in dem die Knoten v ∈ V einen Aspekt einer Szene oder eines Objekts entsprechen und dieKanten e ∈ E die möglichen Übergänge zwischen diesen.

Zur Verdeutlichung ein Beispiel: Gegeben sei ein Würfel (Abb. 2). Von diesem gibt es 3Projektionen: Mit einer sichtbaren Seite (A), mit zwei sichtbaren Seiten (B) und mit dreisichtbaren Seiten (C).

A B CAbb. 2: Ausgewählte Aspekte eines Würfels

Der Aspektgraph zu diesen Ansichten besteht aus drei Knoten, für jede Ansicht eine(Abb. 2). Angenommen, die Projektion kann nicht direkt über eine Ecke des Würfels wech-seln, so dass 2 Flächen auf einmal sichtbar werden, sondern nur indirekt über die Kantendes Würfels. Unter dieser Voraussetzung sieht der Aspektgraph wie in Abb. 3 aus.

Abb. 3: Aspektgraph der 3 Ansichten von Abb. 2

2 Verdeckung

Im Folgenden sollen die sichtbaren Objektmerkmale (Ecken, Kanten, Seitenflächen, Poly-eder) zu jeder Betrachterposition im Aspektgraphen gespeichert werden. Die Bestimmung

Page 118: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

110 Michael Kruse

soll dabei genau sein, d.h. zu jeder Betrachterposition soll genau ermittelt werden können,welche Merkmale sichtbar sind und welche nicht. Dies soll nun näher definiert werden.

Definition 2 (Objektraum, Bildraum, Sichtraum). Die Eingabe besteht aus ein odermehreren Objekten (Szene) im Objektraum. Diese sollen in den Bildraum niedrigerer Di-mension abgebildet werden. Als weiterer Eingabeparameter dient die Position des Betrachters(eng. Viewpoint) im Sichtraum (eng. Viewpoint Space).

Definition 3 (Labeled Image Structure Graph (LISG)). Der Labeled Image Struc-ture Graph (aus [4]) ist eine Darstellung der Abbildung im Bildraum als Graph GLISG =(VLISG, ELISG). Eine Ecke des Objekts erscheint im LISG, wenn er in der Abbildung sicht-bar ist. Ecken werden so miteinander durch Kanten verbunden, wie sie im Bildraum sicht-bar sind. Sollten sich zwei Kanten im Bildraum schneiden, wird als Schnittpunkt ein neuerKnoten eingeführt. Dieser wird T-Junction genannt. Ecken, Kanten und Seitenflächen imObjektraum können Bezeichner (eng. label) gegeben werden, die dann auch im LISG er-scheinen.

Da der LISG nach Definition ein Graph ist, haben die Ecken keine Koordinaten imBildraum, er beschreibt nur die Struktur. Die Bezeichner können aber sicherstellen, dassElemente aus dem Objektraum im LISG identifiziert werden können.

Es kann zwischen zwei Typen von LISGs unterschieden werden: der transparente LISGund der verdeckende LISG (eng. opaque LISG). Im transparenten LISG sind alle Seiten-flächen durchsichtig und daher sind alle Ecken und Kanten des Objektraumes zu sehen(Abb. 4).

Bildraum LISGAbb. 4: Transparente Abbildungen

Bei dem verdeckenden LISG werden die Seitenflächen mit berücksichtigt (Abb. 5). Eckenwerden durch Flächen entweder ganz oder gar nicht verdeckt. Kanten können auch nur teil-weise verdeckt werden. An den Schnittpunkten zwischen verdeckter Kante und verdeckenderFläche entsteht dabei ein neuer Knoten, denn eine Kante eines Graphen kann nicht an eineranderen Kante enden. Dieser neuer Knoten, der keine Abbildung einer Ecke des Objektesist, wird T-Junction genannt.

Page 119: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Aspektgraphen und Verdeckung 111

Bildraum

T-Junction

LISGAbb. 5: Verdeckende Abbildungen

Für die Betrachtung von Sichtbarkeit ist nur der Teil der Topologie eines Objektes imBildraum interessant, der die sichtbare Struktur an einer Betrachterposition bestimmt. Inden folgenden Abschnitten wird ein Aspekt durch die zugehörige Topologie bestimmt. Fürdiesen Zweck wird die Äquivalenz zweier Topologien (bzw. Aspekte) wie folgt definiert:

Definition 4 (Äquivalenz von Topologien im Bildraum). Zwei Topologien sind äqui-valent, wenn die zugehörigen LISGs isomorph sind. Haben Ecken und Kanten Bezeichnun-gen, so muss der zugehörige Isomorphismus auch zwischen den Ecken und Kanten mit dengleichen Bezeichnern abbilden.

Ein Aspektgraph beinhaltet nicht, wann eine Änderung der Betrachterposition eine Än-derung des Aspektes zur Folge hat. Diesen Zweck erfüllt die folgende Struktur.

Definition 5 (Viewpoint Space Partition (VSP)). Ein Viewpoint Space Partition isteine Partitionierung des Sichtraumes in maximal große Regionen in denen die Topologieäquivalent sind. Regionen sind zusammenhängend, d.h. zwei maximale Regionen mit äqui-valenter Topologie, die aber nicht zusammenhängend sind, bleiben zwei unterschiedliche Re-gionen.

Der VSP ist zum Aspektgraphen dual, d.h. die Partitionen (bzw. Regionen) des VSPsind die Ecken des Aspektgraphen und umgekehrt, denn innerhalb einer Region ist immerderselbe Aspekt zu sehen.

3 2D-Rendering

Der zweidimensionale Objektraum ist einfacher zu verstehen als der dreidimensionale, des-halb sollen die Konzepte zuerst im zweidimensionalen Raum gezeigt und dann auf dendreidimensionalen übertragen werden.

3.1 Perspektivische Projektion

Bei der perspektivischen Projektion (oder auch Zentralprojektion) ist der Objektraum auchder Sichtraum, da sich der Betrachter in der Szene befindet. Da der Objektraum bereitszweidimensional ist, muss der Bildraum eindimensional sein. Die Projektionsfläche soll ein

Page 120: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

112 Michael Kruse

Kreis um den Betrachter sein, somit hat er eine Rundumsicht. Die Bildkoordinate ist eineBogenlänge auf dem Projektionskreis, also ein Winkel.

Dimensionen KoordinatenObjektraum 2D (x, y)Sichtraum 2D (u, v)Bildraum 1D (α)

Tabelle 1: Kenndaten perspektivischer 2D-zu-1D-Projektion

3.2 Ereignisse

Der Übergang von einer Region des VSP zu einer anderen wird (nach [5]) Ereignis genannt.Wenn der Betrachter die Position wechselt, ist das Ereignis, dass sich der Aspekt (bzw. dieTopologie) ändert. Der Bereich des VSP, in der sich der Aspekt ändert, wird auch kritischeRegion genannt.

Im zweidimensionalen Raum bedeutet ein Ereignis, dass zwei Ecken im transparentenLISG ihre Position tauschen, zu sehen in Abb. 6. Es wird daher VV-Ereignis (VV für eng.Vertex-Vertex) genannt. Im mittleren LISG sind beide Ecken an der gleichen Position, imverdeckenden LISG wäre nur eine Ecke (im Beispiel „B“) zu sehen, die die andere verdeckt.Danach wird die Ecke A durch eine Kante verdeckt, in der Abbildung angedeutet durchausgrauen.

A B AB AB

Abb. 6: Überquerung einer kritischen Region

Werden eine oder beide Ecken durch eine weitere Kanten verdeckt, so gibt es zwar eine(pseudo-)kritische Region, aber kein Ereignis, da die Topologien äquivalent sind. Das Ereig-nis selbst wird verdeckt. Kritische Regionen, dessen Sichtbarkeit noch nicht geprüft wurde,werden auch potenzielle kritische Regionen genannt.

Als weiteres Beispiel ändert der Betrachter in Abb. 7a seine Position wie in Abb. 7b.Abb. 8 zeigt die zugehörigen Projektionen einer solchen Szene. Die Knoten aus dem Objek-traum sind teilweise beschriftet. Daraus resultieren die zugehörigen LISGs in Abb. 9, dieeindimensional angeordnet sind. Von der einen zur anderen Position erscheinen gleich zweineue Ecken, die vorher verdeckt waren, d.h. es wurden gleich mehrere kritische Regionenüberquert.

Page 121: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Aspektgraphen und Verdeckung 113

A

(a)

A

B

C

(b)Abb. 7: 2D-Objektraum

A A BC

Abb. 8: Rendering durch Wolfenstein 3D [2]

A A B C

Abb. 9: LISGs

Der VSP der gesamten Szene lässt sich berechnen. Zu der Arbeit [3] gehört ein Pro-gramm, welches den VSP für den zweidimensionalen perspektivischen Fall berechnen kann.Abbildung 10 zeigt den berechneten VSP des vorigen Beispiels. Die gelben Strecken sinddie Kanten des Objektraumes und die schwarze Linien stellen die potentiellen kritischenRegionen dar. In Regionen mit gleicher Färbung sind die gleiche Anzahl Kanten sichtbar.Je heller die Farbe, desto mehr sichtbare Kanten.

Abb. 10: 2D-VSP erstellt mit dem Programm aspect.jar [3]

Page 122: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

114 Michael Kruse

3.3 Orthographische Projektion

Bei der orthographischen Projektion (oder auch Parallelprojektion) befindet sich der Be-trachter anschaulich unendlich weit von der Szene entfernt, so dass alle Sichtlinien parallelverlaufen. Zur Angabe der Betrachterposition reicht daher der Winkel dieser Sichtlinien.Dieser kann entweder als Bogenlänge (θ) oder als normierter Vektor (a, b) = (cos θ, sin θ)angegeben werden. Durch die Normierung bleibt der dadurch definierte Raum eindimensio-nal. Das hat den Vorteil, dass für weitere Berechnungen keine trigonometrischen Funktionenbeachtet werden müssen. Die Projektionsfläche ist ein Kreis mit unendlichem Radius, derdie gesamte Szene umschließt.

Dimensionen KoordinatenObjektraum 2D (x, y)Sichtraum 1D (θ) oder (u, v) mit |(u, v)| = 1Bildraum 1D (s)

Tabelle 2: Kenndaten orthographischer 2D-zu-1D-Projektion

Abb. 11a zeigt die kritischen Regionen eines Objektes. Gestrichelte Linien deuten ver-deckte Ereignisse an. Abb. 11b zeigt den VSP auf dem unendlich weit entfernten Projekti-onskreis. Eine vereinfachte Version ist Abb. 12.

(a) (b)Abb. 11: Objekt unter orthographischer Projektion

Abbildung 12a zeigt ein einfaches Beispielobjekt mit nur zwei Kanten. Die Linien zeigendie kritischen Regionen. In Abb. 12b ist der VSP mit seinen Regionen eingezeichnet.

Page 123: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Aspektgraphen und Verdeckung 115

A

BC

(a)

A

BC

(b)Abb. 12: Einfaches Objekt unter orthogonaler Projektion

3.4 Der naive Algorithmus

Der VSP und der Aspektgraph einer Szene soll nun berechnet werden. Dafür soll zuerst eineinfacher Ansatz verwendet werden.

Algorithmus 14 Naiver Algorithmus zur Berechnung des Aspektgraphen unter orthogo-naler 2D-Projektion

for jede Kombination (e1, e2) zweier Ecken doBestimme die Linie durch beide PunkteBestimme die beiden Schnittpunkte der Linie auf dem Projektionskreis

Sortiere alle Schnittpunkte nach ihrer Koordinatefor jede Region r zwischen zwei aufeinander folgenden Schnittpunkten do

Erstelle den LISG für einen Punkt innerhalb der Region rFüge einen neuen Knoten v mit diesem LISG dem Aspektgraphen hinzu

for alle Knoten v und v′, dessen Regionen nebeneinander liegen doif die LISGs von v und v′ sind äquivalent then

Vereinige beide Knotenelse

Verbinde v und v′ durch eine Eckereturn den Aspektgraphen

Theorem 1 (Laufzeit des naiven 2D-Algorithmus). Die Laufzeit des Algorithmus 14beträgt O(n4)

Beweis. Es gibt m = n(n−1)2 Kombinationen zweier Ecken und die doppelte Anzahl von

Schnittpunkten mit der Projektionsfläche sowie Regionen zwischen diesen, also O(n2).Ein Vergleichssortierer sortiert diese in O(m log m) = O(n2 log n2). Die Laufzeit für dasErstellen des LISG mit Bestimmung der Verdeckung eines Elementes mit allen ande-ren beträgt O(n2) (hidden line removal-Algorithmus), für alle Regionen zusammen alsoO(mn2) = O(n4).

Page 124: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

116 Michael Kruse

Jede Region hat genau 2 Nachbarregionen und das Vergleichen benötigt nur lineare Lauf-zeit, sofern alle Ecken eindeutige Bezeichner haben. Das Vergleichen aller Nachbarregionenbenötigt also O(mn) = O(n3). Der höchste Aufwand beträgt damit O(n4). ut

3.5 Der Algorithmus von Plantinga und Dyer

Hier soll ein Algorithmus mit besserer Laufzeit als der in Abschnitt 3.4 gezeigt werden,wie er in [1] für 3D vorgestellt wurde. Der „Trick“ dabei ist, den Aspektgraphen vor demVSP zu berechnen. Dafür wird ein neuer Raum eingeführt, der so genannte Aspektraum.Bei der orthogonalen 2D-Projektion kann so eine Laufzeit von O(n3) (statt O(n4)) für dieBerechnung des VSP erreicht werden.

Definition 6 (Der Aspektraum (ASP)). Der Aspektraum ist das kartesische Produktaus Sichtraum V und Bildraum I. Ein Element belegt einen Punkt des Aspektraumes (v, i) ∈V × I, wenn es aus der Betrachterposition v ∈ V an der Position i ∈ I des Bildes sichtbarist.

Bei der zweidimensionalen orthographischen Projektion haben sowohl Sichtraum als auchder Bildraum eine Dimension von eins. Folglich hat der Aspektraum zwei Dimensionen. EinPunkt im Aspektraumes soll mit (θ)× (s) = (θ, s) beschrieben werden.

Abbildung 13 zeigt die LISGs (vertikal ausgerichtet) des Objektes von Abb. 12 in 45°-Schritten. Die vertikale Achse zeigt demnach den Bildraum und die horizontale Achse denSichtraum. Die Verläufe der Ecken A (rot), B (blau) und C (Olivfarben) sind linear appro-ximiert. Hervorzuheben ist, dass B zwischen 135° und 180° sowie A zwischen 270° und 315°verdeckt wird.

θ0° 90° 135° 180° 270° 315° 360°45° 235°

A

B

C

Abb. 13: Die LISGs von Abb. 12

Wie man nicht schwer erkennen kann handelt es sich bei A um eine cos-Kurve undbei B um eine (− sin)-Kurve. Kennzeichnet man nicht die Ecken, sondern die Kanten imAspektraum, so ergeben sich Flächen wie in Abb. 14. Die Kante CA ist rot und die KanteCB blau markiert.

Page 125: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Aspektgraphen und Verdeckung 117

Abb. 14: Der Aspektraum zu Abb. 12

Aus dieser Beobachtung lässt sich ein Algorithmus bauen. Für dreidimensionales Rende-ring werden in Abschnitt 4.7 ein paar mehr Details erläutert.

Algorithmus 15 Berechnung des Aspektraumes für orthogonale 2D-Projektionfor jede Kante e im Objektraum do

A← Fläche von e im Aspektraumfor jede bereits vorhandene Fläche B im Aspektraum do

if A verdeckt B thenB ← B \A

if A wird von B verdeckt thenA← A \B (und aktualisiere A im Aspektraum)

Füge B zum Aspektraum hinzu

Es soll nun die Größe des Aspektraumes bestimmt werden. Bei den Position der Ecken imAspektraum handelt es sich immer um Sinuskurven mit unterschiedlichen Phasen (Winkelzum Ursprung) und Amplituden (Entfernung zum Ursprung). Zwei solcher Kurven habenmaximal 2 Schnittpunkte. Angenommen, das Objekt habe O(n) Ecken (und Kanten), dannhaben diese bis zu O(n2) Schnittpunkte im Aspektgraphen. Da dieser außerdem planar ist,gibt es auch nur höchstens O(n2) Kanten und Regionen, was damit die Obergrenze derKomplexität des Aspektgraphen darstellt.

Das Kombinieren zweier Aspekträume benötigt O(nm), wobei m und n die Größe erbeiden Aspekträume sind. Das sukzessive Hinzufügen von Aspekträumen der Größe O(n)zum gemeinsamen Aspektraum der Größe O(n2) benötigt eine amortisierte Laufzeit vonO(n3). Um auch den VSP zu bestimmen reicht es aus, die Bildkoordinate i wegzulassen(Abb. 15). Der verbliebene Raum ist eindimensional und die Ecken müssen höchstens noch

Page 126: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

118 Michael Kruse

nach ihrer Sichtraumkoordinate sortiert werden, was O(n2 log n2) benötigt. Jedes maximaleIntervall zwischen diesen Ecken ergeben genau einen Knoten im Aspektgraphen.

Abb. 15: Vom Aspektraum zum VSP unter Weglassung der Bildkoordinate

4 3D-Rendering

Das 2D-Rendering-Kapitel wurde zur Veranschaulichung eingeschoben. In diesem Kapitelsoll es um das „normale“ Projizieren von 3D-Szenen auf eine 2D-Projektionsfläche gehen.Dabei gibt es ein paar Unterschiede, wie die Natur von Ereignissen.

4.1 Ereignisse

Im dreidimensionalen gibt es 2 Ereignistypen. Zum einen gibt es die Möglichkeit, dass einElement hinter einer Seitenfläche verschwindet oder auftaucht, der Beginn oder das Endeeines verdeckenden Polygons wird durch eine Kante beschränkt. Nur Ecken kommen für dasandere Element in Frage da sie den Beginn oder das Ende der anderen Elemente markieren.Deshalb wird dieses EV-Ereignis („EV“ für eng. edge-vertex) genannt.

Zu Beachten ist, dass es keine Rolle spielt, auf welcher Seite der Kante oder Ecke sich dieSeitenfläche befindet, in jedem Fall wird ein Ereignis erzeugt. Abbildung 16 illustriert davonein paar Möglichkeiten. Die erzeugte potenzielle kritische Region ist eine Ebene durch dieKante und die Ecke, in den Abbildungen blau-transparent angedeutet.

Page 127: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Aspektgraphen und Verdeckung 119

Abb. 16: Ausprägungen von EV-Ereignissen

Der zweite Typ sind die EEE-Ereignisse („EEE“ für eng. edge-edge-edge). Dabei führtdie Sichtlinie an drei unterschiedlichen Kanten vorbei, die sich vom Betrachter aus gesehenin einem Punkt schneiden (Abb. 18a und 17b). Der LISG ändert sich an dieser Stelle, weilsich ein oder mehrere T-Junctions auf andere Kanten verschieben (Abb. 17 (a) und (c)).Es spielt auch hier prinzipiell keine Rolle, auf welche Seite der Kanten die Seitenfläche zusehen ist.

(a)

(b)

(c)Abb. 17: Ein EEE-Ereignis aus der Betrachterperspektive

Es soll nun die kritische Region bestimmt werden, welche durch ein EEE-Ereignis erzeugtwird. Seien 3 Kanten gegeben. Kante 1 verbindet die Punkte p11 und p12, Kante 2 die Punktep21 und p22, Kante 3 die Punkte p31, p32. Die Sichtlinie schneidet jede dieser Kanten. Seinun p ein Punkt auf der ersten Kante, die die Sichtlinie kreuzt (Gleichung 1, Abb. 18b zeigtdrei solcher Sichtlinien).

p =p11 + s(p12 − p11) (1)

(a) (b) (c)Abb. 18: EEE-Ereignis

Seien dann n2 und n3 die Normalen zweier Ebenen, die jeweils den Punkt p und dieKante p21p22 bzw. p31p32 enthalten (Gleichung 2).

n2 =(p21 − p)× (p21 − p22)n3 =(p31 − p)× (p31 − p32)

(2)

Die Schnittlinie dieser beiden Ebenen entspricht der gesuchten Sichtlinie, die den Punktp enthält sowie die beiden anderen Kanten kreuzt. Der Richtungsvektor ergibt sich durch

Page 128: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

120 Michael Kruse

das Kreuzprodukt beider Normalen (Gleichung 3). Als Ortsvektor eignet sich der Punkt p.Die sich ergebende Geradengleichung 4 ist linear abhängig von t und quadratisch von s.Interpretiert man diese als Parameter eine bivarianten Funktion, so erhält man die Formelfür die Fläche der (potentiellen) kritischen Region.

d =n2 × n3 (3)

q =p + td

=p11 + s(p12 − p11)+ t(((p21 − (p11 + s(p12 − p11)))× (p21 − p22))× ((p31 − (p11 + s(p12 − p11)))× (p31 − p32)))

=f(t, s)

(4)

Damit sind die Regionen des VSP nicht unbedingt Polyeder, die durch gerade Flächenbegrenzt werden. Abbildung 18c zeigt die kritische Region für das gegebene Beispiel grau-transparent.

Wie zwei quadratische univariante Funktionen nur höchstens 2 Schnittpunkte haben, sohaben zwei bivariante Funktionen nur höchsten 2 (quadratische) Schnittkurven. Dadurch,dass es zwei Schnittkurven und -punkte geben kann, ändert sich jedoch nicht die Methodikder Berechnung des VSP oder Aspektgraphen. Die asymptotische Laufzeit für die Berech-nung bleibt gleich. Zur Vereinfachung werden daher in den folgenden Abschnitten Begriffeverwendet, die eigentlich nur auf Polytope zutreffen.

Man kann ein EV-Ereignis auch als Spezialfall des EEE-Ereignisses ansehen: Wenn sichzwei der Kanten eines EEE-Ereignisses in einem Punkt schneiden, so entsteht dort eineEcke. Zusammen mit der dritten Kante bildet diese das EV-Ereignis. Deshalb genügt dieBetrachtung das EEE-Ereignisses.

4.2 Orthographische Projektion

Für die orthographische 3D-zu-2D-Projektion (3D-Parallelprojektion) werden für den Sicht-raum zwei Winkel für die Sichtlinien benötigt, z.B. θ für die XZ-Achse und ϕ für die XY-Achse. Alternativ kann ein normierter Richtungsvektor der Sichtrichtung angegeben werden.Der Bildraum bleibt jedoch durch zwei kartesische Koordinaten bestimmt.

Anschaulich ist der Sichtraum eine Sphäre mit unendlichem Durchmesser um die Szeneim Objektraum. Die Projektionsfläche und damit der Bildraum ist eine Ebene, die die Sphäream gewählten Sichtpunkt tangiert.

Dimensionen KoordinatenObjektraum 3D (x, y, z)Sichtraum 2D (θ, ϕ) oder (u, v, w) mit |(u, v, w)| = 1Bildraum 2D (s, t)

Abb. 19: Kenndaten orthographischer 3D-zu-2D-Projektion

Abbildung 20 zeigt einen gerenderten Tetraeder, seinen VSP auf der Projektionsphäreund den zugehörigen Aspektgraph. Regionen des VSP und Knoten des Aspektgraphen sindgrün markiert, wenn 3 Seitenflächen zu sehen sind, blau bei 2 Seitenflächen und grün beinur einer sichtbaren Seitenfläche.

Page 129: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Aspektgraphen und Verdeckung 121

Objektraum VSP AspektgraphAbb. 20: Ein Tetraeder unter orthographischer Projektion

4.3 Perspektivische Projektion

Analog kann man die perspektivische 3D-zu-3D-Projektion (3D-Zentralprojektion) betrach-ten. Der Sichtraum ist eine Position des Betrachters innerhalb des Objektraumes und somitdreidimensional. Die Projektionsfläche soll eine Sphäre um den Betrachter sein, daher kannein Punkt im Bildraum mit zwei Winkeln angegeben werden.

Dimensionen KoordinatenObjektraum 3D (x, y, z)Sichtraum 3D (u, v, w)Bildraum 2D (α, β)

Abb. 21: Kenndaten perspektivischer 3D-zu-2D-Projektion

4.4 Maximale Größe eines Aspektgraphen

Sei eine Szene oder ein Objekt mit v Ecken, e Kanten und a Flächen gegeben und sein = max v, e, a. Allgemeiner beschrieben handelt es sich einfach um ein Objekt der GrößeO(n). Weiterhin soll angenommen werden, dass bei Schnitten immer der „Normalfall“ zu-trifft. Sonderfälle wie parallele Geraden und Flächen sowie dass zwei Geraden oder Flächenidentisch fallen werden ausgeblendet. Zwei Geraden haben immer einen Schnittpunkt undzwei Flächen immer eine Schnittgerade um Sonderfälle nicht einzeln behandeln zu müssen.Sie gelten als well-behaved [4].

Theorem 2 (Maximale Größe bei orthographischer Projektion). Der Aspektgraphhat bei orthographischer 3D-Projektion maximal O(n6) Ecken und Kanten, wobei n die An-zahl der Ecken, Kanten und Flächen der abgebildeten Objekts ist.

Beweis. Die Größe des VSP hängt primär von der Anzahl der Ereignisse ab. Für den all-gemeineren Fall der EEE-Ereignisse müssen 3 Ecken kombiniert werden. Es gibt O(n3)solcher Kombinationen, die zusammen ein EEE-Ereignis erzeugen können. Dies sind diepotentiellen kritischen Regionen in Form von quadratischen Flächen.

Abgebildet auf den Sichtraum – die unendlich große Sphäre um das Objekt – werden dieseauf quadratische Kurven abgebildet (die Schnittmenge mit dieser Sphäre). Zwei quadratischeKurven haben maximal 2 Schnittpunkte und somit gibt es insgesamt O(2n3n3) = O(n6)

Page 130: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

122 Michael Kruse

Schnittpunkte aller Kombinationen zweier Kurven. Da der dadurch entstandene Graph vonSchnittpunkten und verbindende Kurven planar ist, gibt es auch höchstens O(n6) Kantenund Regionen. Damit hat auch der Aspektgraph eine Größe von O(n6), denn dieser ist zumVSP dual. ut

Theorem 3 (Maximale Größe bei perspektivischer Projektion). Der Aspektgraphhat bei perspektivischer 3D-Projektion maximal O(n9) Ecken und Kanten, wobei n die Anzahlder Ecken, Kanten und Flächen des abgebildeten Objektes ist.

Beweis. Auch hier gibt es O(n3) Kombinationen dreier Kanten und somit O(n3) EEE-Ereignisse. Im dreidimensionalen Raum werden drei Ebenen benötigt, um einen Schnitt-punkt zu erzeugen. Zwei quadratische Flächen haben bis zu zwei Schnittkurven. Mit einerweiteren quadratischen Fläche haben diese Kurven je bis zu 2 Schnittpunkte. Somit gibt esO(4(n3)3) = O(n9) Schnittpunkte mit allen Kombinationen dreier EEE-Ereignisse.

Man betrachte nun eine einzelne kritische Region eines EEE-Ereignisses. Alle anderenO(n3) kritischen Regionen bilden O(n3) Schnittkurven auf der einzelnen kritischen Region.Wie bei der orthographischen Projektion bilden diese einen planaren Graph mit O(n6) Ecken(die Schnittpunkte der Kurven), Kanten und Flächen. Alle O(n3) haben dann zusammenO(n3) ·O(n6) = O(n9) Ecken, Kanten und Flächen.

Jede Fläche hat auf beiden Seiten eine räumliche Region (Zelle). Mit den O(n9) Flächengibt es also höchstens O(2n9) = O(n9) Zellen im VSP. Wegen der Dualität ist auch derAspektgraph von der Größenordnung O(n9). ut

Sollte man für jeden Knoten des Aspektgraphen auch speichern, welche Flächen sichtbarsind (z.B. den LISG), so erhöht sich der Speicherbedarf für jeden Knoten entsprechend umO(n) oder O(log n)[4].

4.5 Minimale Größe eines Aspektgraphen

In diesem Abschnitt soll gezeigt werden, dass Szenen mit dieser Komplexität auch wirklichgibt (und eigentlich auch der Regelfall ist).

Theorem 4 (Worst-Case-Größe bei orthographischer Projektion). Die Worst-Case-Komplexität eines Aspektgraphen bei orthographischer Projektion ist Ω(n6)

Beweis. Gegeben sei folgendes Objekt: n vertikale Streifen mit gleicher Breite (rot in derAbbildung 22a) und davor n horizontale Streifen (grün), welche ein Gitter bilden. Die verti-kalen Streifen sind dabei leicht gedreht, so dass sie nicht ganz orthogonal zu den horizontalenStreifen sind. Weiter davor befinden sich wiederum n vertikale Streifen (grau) mit kleinerenSichtschlitzen. Diese sollen gerade so groß sein, dass eine vollständige Kante der leicht ge-kippten vertikalen Streifen zu sehen ist, aber es kann niemals das Gitter durch zwei Schlitzegleichzeitig beobachtet werden. Die Ausdehnung der Streifen nach hinten sei vernachlässig-bar.

Die Kanten der vertikalen Streifen, der horizontalen Streifen und der Sichtschlitze könnensich von bestimmten Positionen des Betrachters aus scheinbar in einem Punkt schneiden,was zuvor EEE-Ereignis genannt wurde. Bewegt sich nun der Betrachter in horizontalerRichtung, so bekommt er folgende EEE-Ereignisse mit: Das Gitter hat (n − 1)2 Löchermit jeweils 4 Ecken. Mit jedem Sichtschlitz schneidet sich jede dieser Ecken an den denSeitenkanten des Schlitzes zwei mal. Einmal beim Auftauchen vor einem Streifen und ein

Page 131: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Aspektgraphen und Verdeckung 123

weiteres mal beim verdeckt werden durch den nächsten Streifen. Da es n − 1 Sichtschlitzegibt, ändert sich der LISG 2(n−1)3 = Θ(n3) mal, da jedesmal T-Junctions erscheinen oderverschwinden.

Stellt man bei orthogonaler Projektion zwei solcher Streifenmuster nebeneinander, einesdavon um 90° gedreht (Abb. 22a), so schneiden sich alle vertikalen kritischen Regionen deseinen mit den horizontalen kritischen Regionen des anderen. Beide haben Θ(n3) kritischeRegionen, so dass es insgesamt Θ(n6) Schnittpunkte und Regionen auf der Projektionssphäregibt und somit Θ(n6) Knoten im zugehörigen Aspektgraphen. ut

(a) (b)Abb. 22: Beispiele mit maximaler asymptotischer Größe des Aspektgraphen

Theorem 5 (Worst-Case-Größe bei perspektivischer Projektion). Die Worst-Case-Komplexität eines Aspektgraphen bei perspektivischer Projektion ist Ω(n9)

Beweis. Für die perspektivische Projektion benötigt man 3 solcher Streifenmuster, angeord-net wie in Abbildung 22b. Der Betrachter befindet sich zwischen allen Sichtschlitzen. Er kannsich vertikal, horizontal und nach vorn und hinten bewegen und jedesmal überquert er bis zuΘ(n3) kritische Regionen. Alle kritischen Regionen aller drei Streifenmuster treffen sich inΘ((n3)3) Punkten. Dies entspricht einer Anzahl von Θ(n9) Knoten im Aspektgraphen. ut

4.6 Der naive Algorithmus

Wie für die 2D-Projektion soll hier exemplarisch nur der orthographische Fall behandeltwerden. Der perspektivische Fall folgt jedoch dem gleichen Schema.

Page 132: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

124 Michael Kruse

Algorithmus 16 Naiver Algorithmus zur Berechnung des Aspektgraphen unter orthogo-naler 3D-Projektion

for jede Kombination (e1, e2, e3) dreier Kanten doBerechne kritische RegionBerechne Schnittkurve mit der Projektionssphäre

for jede Kombination (g1, g2) zweier Kurven auf der Projektionsfläche doFinde Schnittpunkt(e) zwischen g1 und g2

Verbinde Punkt(e) mit den bisher gefundenen NachbarpunktenMit einem Graphensuchalgorithmus finde alle Regionen im Graphenfor jede gefundene Region r do

Erstelle den LISG für einen Punkt innerhalb der Region rFüge einen neuen Knoten v mit diesem LISG dem Aspektgraphen hinzuFüge eine Kante mit jedem Knoten einer Nachbarregion hinzufor jeden Nachbarknoten v′ do

if die LISGs von v und v′ sind äquivalent thenVereinige beide Knotenbreak for

Theorem 6 (Laufzeit des naiven 3D-Algorithmus). Die Laufzeit des Algorithmus 16ist O(n10) unter orthographischer Projektion.

Beweis. Die erste for-Schleife wird m = O(n3)-mal durchlaufen, da es so viele Kombinatio-nen dreier Kanten gibt. Projiziert auf die Projektionssphäre ergeben dies m Kurven. JedeKurve kann jede andere bis zu vier mal schneiden, so dass es q = O(4m2) = O(n6) Schnitt-punkte gibt. Ein Graphensuchalgorithmus kann alle Regionen in linearer Laufzeit bezüglichq finden. Das Erstellen des LISG mit Verdeckung für an einer Betrachterposition innerhalbeiner Region ist mit einem hidden-line-removal-Algorithmus in O(n2) möglich. Eine Regionkann durch alle O(m) Kurven begrenzt werden und sie von einer anderen Region trennen,so das es O(m) Nachbarregionen gibt. Ein LISG hat O(n) Elemente, diese miteinander aufÄquivalenz zu vergleichen kostet O(n) für jede Nachbarregion. Die letzte äußere Schleife hatalso eine Laufzeit von q(O(n2) + mO(n)) = O(n6(n2 + n3n)) = O(n10).

Verfolgt man das gleiche Schema für den perspektivischen Fall, so erhält man eine Lauf-zeit von O(n13). Damit ist die Laufzeit in beiden Fällen um das O(n4)-fache größer alsdie Ausgabegröße. Dass das auch besser geht zeigt, wie beim 2D-Fall auch, der folgendeAlgorithmus im nächsten Abschnitt.

4.7 Der Algorithmus von Plantinga und Dyer

Wie bei Anwendung auf das 2D-Rendering ist der Trick dabei, den Aspektgraphen vor demVSP zu berechnen. Dabei werden die Objekte wieder in den Aspektraum übertragen. Dieserist (θ, ϕ, s, t) für orthogonale und (u, v, w, α, β) für die perspektivische Projektion und somit4-dimensional (bzw. 5-dimensional).

Die orthogonale Projektion besteht im Wesentlichen aus einer Rotation des Objektrau-mes und dann dem Weglassen der dritten Koordinate. Verdeckungen werden noch nichtberücksichtigt. Stellt man die Sichtrichtung nicht mit zwei Winkeln dar, sondern mit einemRichtungsvektor, ergibt sich die Abbildungsmatrix 5. w ist dabei der normierte Richtungs-vektor, v ein normierter zu w orthogonaler Vektor und u = w × v. v wird in der Com-putergraphik auch up-Vektor genannt. Er bestimmt die Rotation des Bildes und ist zurBerechnung des LISG nicht von Bedeutung.

Page 133: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Aspektgraphen und Verdeckung 125(st

)=(

1 0 00 1 0

)ux uy uz

vx vy vz

wx wy wz

xyz

(5)

Eine Ecke im Objektraum ergibt übertragen in den Aspektraum einen Grat (2D inorthographischer, 3D bei perspektivischer Projektion), da er ohne Überdeckung von über-all sichtbar ist und im Bildraum als ein Punkt (0D) erscheint. Analog ist eine Kante imObjektraum eine Facette (3D in orthographischer, 4D in perspektivischer Projektion) imAspektraum. Eine Seitenfläche des Objektraumes (die andere Elemente verdecken kann)ist eine volldimensionale Zelle im Aspektraum. Zu den Begriffen Peak, Grat, Facette undZelle siehe auch Tabelle 3. Auch wenn die Elemente keine Polytope sein müssen, sollen dieseBegriffe hier verwendet werden.

Dimension 3D-Raum 4D-Raum 5D-Raum0D Ecke, Punkt Punkt Punkt1D Kante, Linie Linie, Peak Linie2D Polygon, Seitenfläche Grat, Polygon Polygon, Peak3D Polyeder Facette, Polyeder Grat, Polyeder4D Zelle, Polychor, 4-Polytop Facette, Polychor5D Zelle, 5-Polytop

Tabelle 3: Benennung von Elementen in höherdimensionalen Räumen

Der Aspektraum lässt sich berechnen, indem man alle Seitenflächen des Objektraumeskonsekutiv dem Aspektraum hinzufügt (Algorithmus 17). Eine Seitenfläche unterteilt denRaum in zwei Halbräume. Elemente im Halbraum hinter der Seitenfläche können verdecktwerden, während Elemente im vorderen Halbraum die Fläche verdecken können (Die Rück-seite der Seitenfläche soll durchsichtig sein). Daher müssen die sich im Aspektraum über-lappenden Elemente voneinander subtrahiert werden. Die Seitenfläche wird von den vonden Elementen im hinteren Halbraum und die Elemente des vorderen Halbraums von derSeitenfläche subtrahiert.

Algorithmus 17 Berechnung des Aspektraumes für 3D-Projektion1: A← leerer Aspektraum2: for jedes Polygon a im Objektraum do3: B ← Ausdehnung von a als Polytop des Aspektraumes4: Avorne ← A ∩ Halbraum auf der Vorderseite von a5: Ahinter ← A ∩ Halbraum auf der Rückseite von a6: Ahinter ← Ahinter \B7: B ← B \Avorne

8: A← Avorne ∪Ahinter ∪B9: return A

Die Mengenoperationen sind nicht ganz trivial. Alle Elemente im Aspektraum könnendurch Facetten beschrieben werden. Alle Zellen werden durch Facetten begrenzt. Facet-ten sind ihrerseits Repräsentationen von Kanten des Bildraumes. Zwei Facetten schneidensich in einem Grat und repräsentieren somit einen Punkt. Drei Facetten schneiden sich ineinem Peak und entsprechen einem EEE-Ereignis. Vier Facetten schneiden sich in einem

Page 134: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

126 Michael Kruse

Punkt (bzw. Linie) und entsprechen einem Element, welches einen Punkt auf der Bildebenedarstellt, der nur bei einem ganz bestimmten Ansichtswinkel zu sehen ist.

Im 5D-Raum könnten sich auch fünf Facetten in einem Punkt schneiden. Dies entsprächeeinem Punkt auf der Bildfläche, welcher nur an einer ganz bestimmten Betrachterpositionzu sehen wäre. Wenn es diesen Punkt allerdings gibt, so kann sich der Betrachter auf derSichtlinie zum Punkt beliebig vor und zurück bewegen, ohne den Punkt aus den Augen zuverlieren, ein Widerspruch. Ein solches Ereignis kann es daher nicht geben.

Der Aspektraum hat also O(n) Facetten, O(n2) Grate, O(n3) Peaks und höchstens O(n4)Punkte (bzw. Linien) entsprechend der Anzahl von Kombinationen von Facetten. Wie diezugehörigen EEE-Ereignisse sind die Peaks von den Aspektraumkoordinaten quadratischabhängig. Entsprechend sind die Punkte (bzw. Linien) Funktionen dritten Grades. Nunkann auch die Laufzeit des Algorithmus bestimmt werden.

Theorem 7 (Laufzeit des Algorithmus von Plantinga und Dyer). Die Laufzeit desAlgorithmus 16 ist bei orthographischer und perspektivischer Projektion O(n5)

Beweis. O(n) Elemente werden konsekutiv dem Aspektraum hinzugefügt. In [6] wird gezeigt,dass die Laufzeit für das Vereinigen zweier Aspekträume O(nm) beträgt, n und m sind diejeweiligen Größen der Aspekträume. Das Vereinigen aller Aspekträume zu einem Aspektraumder Größe O(n4) ist in O(n5) möglich. ut

Aus dem Aspektraum kann auch der VSP bestimmt werden. Wie vorher gezeigt hat derVSP – wie auch der Aspektgraph – eine Komplexität von Θ(n6) (bzw. Θ(n9)), der Aspek-traum jedoch nur O(n4). Das resultiert daraus, dass der Aspektraum auf den Sichtraumabgebildet wird indem die Bildkoordinaten entfernt werden. Durch diese Operation kann esdeutlich mehr Schnitte zwischen den Elementen geben.

Die O(n3) Peaks (Linien) im orthogonalen Aspektraum sind Linien im Sichtraum, diesich in O((n3)2) = O(n6) Punkten schneiden können. Die O(n4) Linien im perspektivischenAspektraum könnten sich in O((n4)2) = O(n8) Schnittpunkten treffen, aber die O(n3) Peaks(Flächen) in O((n3)3) = O(n9) Punkten.

Die die O(n6) (bzw. O(n9)) Schnittpunkte im Sichtraum der O(n3) Peaks lassen sichnach [1] mittels binärer Suche in nur O(log n) zum VSP hinzufügen. Das ergibt eine Ge-samtlaufzeit von O(n6 log n) für die orthographische und O(n9 log n) für die perspektivischeProjektion. Um den VSP in den dualen Aspektgraphen zu konvertieren ist nur noch lineareLaufzeit nötig, der jeweilige Aspekt (z.B. der LISG) wurde damit aber noch nicht bestimmt.Dies kann wie beim naiven Algorithmus auch in O(n2) pro Knoten des Aspektgraphen ge-schehen.

5 Fazit

Ein Aspektgraph bietet eine Möglichkeit, Sichtbarkeiten einer Szene in einer Datenstruk-tur zu speichern. Die Laufzeit und der Speicherplatzbedarf der hier vorgestellten Methodezur genauen Bestimmung der Sichtbarkeit jedes einzelnen Elementes ist zwar polynomiellbezüglich der Anzahl der Elemente in der Szene, für praktische Einsätze in der Computer-graphik aber viel zu hoch (vgl. Tabelle 4). Selbst durch den hier vorgestellten Algorithmusvon Plantinga und Dyer verbessert sich das nicht wesentlich. Für bestimmte Anwendungenjedoch, wie z.B. Echtzeitgrafik, ist lineare Laufzeit ein Muss. In diesem Anwendungsgebiet

Page 135: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Aspektgraphen und Verdeckung 127

ergäbe es jedoch auch keinen Sinn, die Sichtbarkeit auf jede Ecke genau zu Bestimmen.Daher kann man überlegen, wie der Aspektgraph approximiert werden kann.

Tabelle 4 fasst die Strukturgrößen und Berechnungslaufzeiten zusammen. Mit dem Zu-satz konvex markierte Zeilen treffen auf den Spezialfall mit einem konvexen Polyeder imObjektraum zu. Die Daten sind teilweise aus [1] entnommen.

Rendermodus Größe des VSP Naiver Ansatz Erreichbar2D orthographisch O(n2) O(n4) O(n3)2D perspektivisch O(n4) O(n7) O(n4 log n)3D orthographisch konvex O(n2) O(n7) O(n2)3D perspektivisch konvex O(n3) O(n9) O(n3)3D orthographisch O(n6) O(n10) O(n6 log n)3D perspektivisch O(n9) O(n13) O(n9 log n)Tabelle 4: Vergleich der Größe und Berechnungslaufzeit eines VSP

Literaturverzeichnis

1. Plantinga WH, Dyer CR (1990) Int J Comput Vision, Volume 5, Number 2: 137–1602. id Software, Apogee Software Ltd (1992) Wolfenstein 3D.3. Matthias H (2007) Parametrisierte Generierung und automatische Bewertung virtueller Szenen. Di-

plomarbeit, University of Paderborn, Paderborn 20074. Schiffenbauer RD (2001) A survey of aspect graphs. PhD thesis, Polytechnic University of Brooklyn,

New York5. Koendrick JJ, van Doorn AJ (1976) Biological Cybernetics 24: 51–596. Plantinga WH, Dyer CR (1990) The aspect representation. In: Technical Report 684. University of

Wisconsin-Madison, Wisconsin-Madison

Page 136: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide
Page 137: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Teil II

Seminar

Page 138: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide
Page 139: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Cell to Cell Visibility in PVS Systemen

André Gärtner

Universität Paderborn

Zusammenfassung. Um das Sichtbarkeitsproblem in Architekturen zu lösen, werden Räume in Zellenaufgeteilt und über Portale miteinander verbunden. Diese Arbeit erklärt, wie man durch Berechnung vonStabbing Lines, die durch die Portale gelegt werden, die Sichtbarkeit sowie Schatten, der durch lichtblockie-rende Objekte (z.B. Wände) entsteht, innerhalb der Zellen bestimmt werden kann. Dazu wird eine Methodegezeigt, wie sich das Problem auf den Schnitt von Kanten eines fünfdimensionalen Polytops mit vierdimen-sionalen Hyperebenen übertragen läßt. Die Übertragung erfolgt mit Hilfe von Plücker-Koordinaten.

1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

2 Plücker-Koordinaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

3 Berechnung der Stabbing Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

4 Stabbing von 3D Portal-Sequenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

4.1 Penumbra und Antipenumbra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1384.2 Oberflächen und Schneisen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1394.3 Grenz- und innenseitige Schneisen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1404.4 Zweidimensionales Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1414.5 EEE Schneisen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1424.6 VE Schneisen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1434.7 Containment Funktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

5 Berechnung des Antipenumbra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

5.1 Algorithmus am Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

6 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

1 Einleitung

In der Computergraphik ist ein häufiges Problem, die Sichtbarkeit verschiedener Objekte zubestimmen. Dies ist z.B. der Fall, wenn man innerhalb einer Szene entscheiden muss, wasvon einem bestimmten Standpunkt aus sichtbar ist. Die Berechnung, ob ein Objekt von dortaus sichtbar ist, ist zeitaufwendig und daher insbesondere für komplexe Architekturen oderVideospiele, in denen viele Objekte durch Wände verdeckt sind, nur eingeschränkt oder gar

Page 140: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

132 André Gärtner

nicht in Echtzeit möglich. Man versucht daher präventiv die Menge der potentiell sichtbarenObjekte (engl. Potentially Visible Set, PVS ) zu bestimmen und alle nicht sichtbaren Objekteauszusortieren, so dass zur Laufzeit nur noch eine kleine Teilmenge aller Objekte gerendertwerden muss.

Gelöst wurde dieses Problem von Teller und Séquin [5, 6] für den zweidimensionalenRaum. Räume eines Gebäudes werden dabei in Zellen aufgeteilt, die über durchsichtigePortale miteinander verbunden sind. Zwischen einzelnen Zellen besteht genau dann eineSichtbarkeit, wenn durch eine Sequenz von Portalen eine Gerade (engl. Sightline oder Stab-bing line) hindurch gelegt werden kann. Auf diese Weise können nun für jede Zelle dievon dort aus sichtbaren Zellen bestimmt werden, so dass die Anzahl der zur Laufzeit zubetrachtende Objekte auf die in diesen Zellen befindlichen Objekte verringert werden kann.

Dieses Vorgehen lässt sich auch im dreidimensionalen Raum, durch Suchen einer Stab-bing Line, die durch eine Sequenz aus Portalen in der Form konvexer orientierter Polygoneverläuft (Abb. 1), anwenden. Übertragen läßt sich das Problem auf den Schnitt der Kanteneines fünfdimensionalen Polytops mit einer vierdimensionalen Hyperebene1. Die Übertra-gung erfolgt mit Hilfe von Plücker-Koordinaten [3, 6], die die Darstellung einer Geraden desR3 als Punkt oder Hyperebene des fünfdimensionalen projektiven Raumes ermöglichen.

Ein weiterer Anwendungsbereich, der die Suche nach Stabbing Lines ausnutzt, ist die Be-rechnung von Licht und Schatten, wie sie in einer weiteren Arbeit von Teller [2, 6] beschrie-ben wird. Versteht man die Stabbing Lines nicht als Sichtlinien sondern als Lichtstrahlen, sokann auf diese Weise berechnet werden, wie viel Licht auf ein Objekt fällt. Je nachdem, obLichtstrahlen ganz, teilweise oder gar nicht durch andere Objekte verdeckt werden, befindetsich das Objekt entweder in einem Schatten oder Halbschatten oder aber ist voll erleuchtet.

Abb. 1. Stabbing Line durch vier unterschiedliche Polygone

2 Plücker-Koordinaten

Zur Darstellung von Punkten im projektiven Raum werden homogene Koordinaten ver-wendet. Punkte des euklidischen Raums Rn werden dazu im projektiven Raum Pn durchein (n + 1)-Tupel beschrieben, indem den n ursprünglichen Koordinaten eine zusätzlicheKoordinate w hinzugefügt wird, wobei w eine reele Zahl mit w 6= 0 ist. In der Computer-

1 Eine Hyperebene ist das Äquivalent zu einer Ebene in höher-dimensionale Räumen. Sie teilt diesen Raumin zwei Hälften.

Page 141: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Cell to Cell Visibility in PVS Systemen 133

graphik wird zumeist w = 1 gewählt, so dass der Punkt (x, y, z) des R3 auf (x, y, z, 1) imP 3 abgebildet wird.

Ein geordnetes Paar voneinander verschiedener Punkte p = (px, py, pz) und q =(qx, qy, qz) definiert eine gerichtete Gerade l im R3. Im projektiven Raum P 3 kann diesals 2 x 4 Matrix dargestellt werden: (

px py pz 1qx qy qz 1

)Durch Plücker-Koordinaten [7] ist es möglich diese Darstellung auf ein 6-Tupel Πl =

(πl0, πl1, πl2, πl3, πl4, πl5) abzubilden, das diese Gerade ebenfalls eindeutig beschreibt. Dazuwerden die Determinanten der sechs 2 x 2 Untermatrizen berechnet und wie folgt den πi

zugeordnet:

πl0 = pxqy − qxpy

πl1 = pxqz − qxpz

πl2 = px − qx

πl3 = pxqy − qxpy

πl4 = pz − qz

πl5 = qy − py

Die Elemente des so entstandene 6-Tupels können als homogene Koordinaten eines Punk-tes im P 5 (dem Plücker-Raum) aufgefasst werden. Eine Gerade im R3 entspricht somiteinem Punkt im P 5. Durch Permutation der einzelnen Koordinaten erhält man den Vek-tor (π4, π5, π3, π0, π1, π2), mit dem sich eine Hyperebene im R5 beschreiben lässt, die alleGeraden enthält, die die ursprüngliche Gerade im R3 schneiden. Die Untersuchung der ge-genseitigen Lage zweier Geraden im R3 lässt sich nun auf die Überprüfung der Lage eineshomogenen Punktes (als Repräsentant der einen Gerade) zu einer Hyperebene (als Reprä-sentant der anderen Gerade) im P 5 zurückführen.

Wenn a und b zwei gerichtete Gerade sind, und Πa, Πb die korrespondierenden PlückerDarstellungen, kann eine Relation side(a, b) als permutiertes inneres Produkt definiert wer-den:

Πa Πb = πa0πb4 + πa1πb5 + πa2πb3 + πa4πb0 + πa5πb1 + πa3πb2

Mit Hilfe dieser Relation kann bestimmt werden, wie die beiden Geraden zueinanderliegen (Abb. 2). Gilt side(a, b) < 0, so läuft die Gerade b dem Uhrzeigersinn an a vorbei,wenn man auf die Spitze der gerichteten Geraden a schaut. Für side(a, b) > 0 läuft bgenau entgegengesetzt an a vorbei (Rechte-Hand-Regel). In beiden Fällen sind die Gradenwindschief zueinander. Gilt hingegen side(a, b) = 0, so sich beide Geraden koplanar, d.h.sie scheiden sich oder aber sie sind parallel.

Jede gerichtete Gerade in 3D-Raum korrespondiert mit einen Punkt im Plücker-Raum,aber nicht umgekehrt. Nur die Punkte Π, die der quadratischen Relation genügen

Π Π = 0

korrespondieren zu realen Geraden im 3D-Raum. Bei allen anderen Punkten handelt esum imaginären Gerade (Geraden mit komplexen Koeffizienten).

Page 142: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

134 André Gärtner

Abb. 2. Anordnungen von Geraden im 3D-Raum und ihre Entsprechung im 5D-Raum

Abb. 3. Anordnungen von Geraden im 3D-Raum und ihre Entsprechung im P 5

Graphisch kann man sich die Punkte, die die obige quadratische Gleichung erfüllen, alseine 4-dimensionale, durch eine Linie begrenzte Fläche im P 5 (ein so genannten Plücker-Quadrik) vorstellen, oder - in den R3 übertragen - als einen einschaligen Hyperboloiden(Abb. 3).

Im Folgenden wird für die Abbildung einer gerichteten Geraden l des R3 auf Plücker-Koordinaten die Funktion Π : l 7→ Π(l) verwendet. Für die Rückübertragung von Punkten,die auf der Plücker-Quadrik liegen, dient die Funktion L : Π 7→ l(Π).

3 Berechnung der Stabbing Lines

Angenommen, eine Szene besteht aus einer beliebigen Anzahl konvexer orientierter Polygo-ne, die jeweils ein Portal repräsentieren. Insgesamt besitzen diese Polygone n Kanten (auchGeneratorkanten genannt). Jede Kante Ek mit kε1, ..., n dieser Polygone ist durch ein Seg-ment einer gerichtete Gerade ek bestimmt. Da die Polygone orientiert sind, kann jede dieserGeraden ek so orientiert werden, dass eine durch die Portal gelegte Stabbing Line s zu jederdieser Geraden ek im gleichen Verhältnis verlaufen muss (Abb. 4). In einem rechtsgerich-teten Koordinatensystem bedeutet dies, dass s die Relation side(s, ek) ≥ 0 mit kε1, ..., nerfüllen muss.

Die zu ek korrespondierende Hyperebene hk ist definiert als:

hk = xεP 5 : xΠk = 0

Page 143: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Cell to Cell Visibility in PVS Systemen 135

Abb. 4. Verlauf der Stabbing Line s entlang der Kanten eines Polygons

Für jede Stabbing Line s mit side(s, ek) ≥ 0 gilt daher S Πk ≥ 0, wobei S die Dar-stellung von s in Plücker-Koordinaten ist. Im P 5 muss sich der Punkt S folglich in oderoberhalb der Hyperebenen hk befinden (Abb. 5). Bezeichnet h+

k den durch hk abgeschlosse-nen Halbraum, dann liegt S innerhalb oder auf der Grenze des konvexen Polytops

⋂k h+

k ,das durch diese Hyperebenen gebildet wird.

Abb. 5. Lage von S = Π(s) zu den Hyperebenen hk

Die Oberflächenstruktur eines konvexen Polytops⋂

k h+k (die konvexe Hülle) besitzt eine

Worst-Case Komplexität quadratisch zu der Anzahl der definierenden Halbräume [8] undkann durch einen randomisierten Algorithmus in O(n2) berechnet werden [9].

Allerdings ist es nicht ausreichend, einen Punkt innerhalb des durch die Hyperebenengebildeten Polytops zu finden, da nicht alle Punkte innerhalb dieses Polytops tatsächlicheiner Gerade im R3 entsprechen. Eine solche Gerade existiert genau dann, wenn es einenPunkt x gibt, der sich sowohl innerhalb oder auf der Grenze des konvexen Polytops befindet(xΠk ≥ 0,∀k) und zugleich auch auf einer Plücker-Quadrik liegt (x x = 0).

Gesucht ist somit die Schnittmenge der Plücker-Quadrik mit dem durch⋂

k h+k begrenz-

ten Polytop. Diese Menge lässt sich durch die folgende Überlegung weiter einschränken:Existiert eine - durch eine Reihe von Polygonen - durchgehende Gerade, die keine der Po-lygonkanten berührt, so lässt sich diese Gerade derart verschieben, dass sie zunächst eineKante, dann zwei, drei und schließlich vier Kanten berührt. Die Menge der so gebildetenStabbing Lines wird Extremal genannt (dazu mehr in Kapitel 4).

Die Anzahl von vier Kanten ergibt sich aus der Tatsache, dass eine Geraden im dreidi-mensionalen Raum gerade durch die Bestimmung von vier Freiheitsgrade spezifiziert wird.

Page 144: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

136 André Gärtner

So kann eine Gerade z.B. durch Angabe zweier Abschnitte auf zwei vorgegebenen Koordina-tenebenen bestimmt werden, wofür jeweils zwei Koordinaten ausreichen. Alternativ könnenfür die Abdeckung der Freiheitsgrade auch vier Geraden (eben die Polygonkanten) verwen-det werden, die die gesuchte Gerade scheiden. Diese Gerade verläuft dann entweder durchdie Vertices2 zweier Polygone, durch den Vertex eines Polygons und die windschiefe Kan-ten zweier anderer Polygone oder aber durch die windschiefen Kanten von vier verschiedenPolygonen.

Abb. 6. Schnitt einer aus vier Hyperebenen Πk gebildeten fünfdimensionalen Linie L mit dem Plücker-Quadrik

Betrachtet man je vier dieser Geraden als Hyperebenen im Plücker-Raum, so spezifiziertihre Schnittmenge eine Gerade L des fünfdimensionalen Raumes. Die so gebildete Geradeentspricht einer Kante des durch

⋂k h+

k begrenzten Polytops. Zur Ermittlung aller extre-malen Stabbing Lines reicht es also aus, die Geraden durch die Kanten dieses Polytops mitder entsprechenden Plücker-Quadrik zu schneiden (Abb. 6). Analog zum dreidimensiona-len Raum ergeben sich hieraus null, ein, zwei oder unendlich viele Schnittpunkte, die denextremalen Stabbing Lines entsprechen (Abb. 7).

Abb. 7. Zwei Schnittgeraden durch vier generische Linien im R3

Die Berechnung einer durch vier Geraden festgelegten Gerade [4] erfolgt daher in zweiSchritten. Als erstes muss aus allen vier Geraden lk (bzw. ihre entsprechenden Hyperebe-

2 Einzahl: Vertex, ist ein Grundbaustein der polygonalen Modellierung: Zwei Vertices ergeben zusammendie Endpunkte einer Linie, drei Vertices definieren ein Dreieck, usw.

Page 145: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Cell to Cell Visibility in PVS Systemen 137

nen) eine Gerade l des fünfdimensionalen Raumes bestimmt werden. Diese Gerade l wirdanschließend mit dem Plücker-Quadrik geschnitten, d.h. sie muss die Gleichung l l = 0erfüllen.

Der erste Schritt beruht auf der Singulärwertzerlegung von Matrizen [10, 11]. Diese wirdauf eine Matrix M , bestehend aus den vier Hyperebenen Πk, angewendet, die zu vier Poly-gonkanten lk korrespondieren, um den Kern dieser Matrix zu bestimmen:

M =

Π04 Π05 Π03 Π00 Π01 Π02

Π14 Π15 Π13 Π10 Π11 Π12

Π24 Π25 Π23 Π20 Π21 Π22

Π34 Π35 Π33 Π30 Π31 Π32

Nach der Anwendung der Singulärwertzerlgung kann M als das Produkt dreier Matrizen

als UΣV T geschrieben werden, wobei U eine orthogonale 4x4 Matrix, Σ eine diagonale 4x6Matrix und V eine 6x6 Matrix ist:

M = UΣV T =

u00 · · · π03...

. . ....

u30 · · · π33

σ0 0 0 0 0 00 σ0 0 0 0 00 0 σ0 0 0 00 0 0 σ0 0 0

u00 · · · π05

.... . .

...u50 · · · π55

Die Werte der Diagonalen von Σ ergeben sich dabei aus den Eigenwerten von M . Die

Anzahl der von 0 verschiedenen Zeilen bestimmt dabei den Rang der Matrix. Jede dieservon 0 verschiedenen Zeilen korrespondiert mit einer Spalte in V und bilden in Kombinationden Kern der Matrix M . Dieser enthält die Plücker-Koordinaten der Geraden, die die vierGeraden schneiden, aus denen M gebildet wurde.

Sind alle Zeilen in Σ von 0 verschieden (d.h. linear unabhängig) dann hat M den Rang4. Die letzten beiden Zeilen von V bilden dann den Kern von M . Benennt man diese beidenZeilen mit F und G, dann lässt sich eine Abbildung Λ : P 7→ P 5 mit

Λ(t) ≡ F + tG

definieren. Aus der Kern-Eigenschaft geht nun hervor, dass Λ(t)Πk = 0 für 0 ≤ k ≤ 3gilt. Da es sich bei Λ um eine injektive Funktion handelt, besteht ein Isomorphismus zwi-schen P und der Menge aller realen und imaginären Geraden, die durch je vier Polygonkantenspezifizierten sind. Die Menge der tatsächlich vorhandenen Schnittgeraden im R3 korrespon-diert daher mit den Nullstellen der quadratischen Gleichung Λ(t) Λ(t) = 0. Diese lässtsich durch Einsetzen der obigen Definition für Λ nach

F Ft2 + 2F Gt + GG = 0

auflösen. Für die Diskriminante d dieser Gleichung ergibt sich (FG)2−(FF )∗(GG).Daraus folgt für d < 0, dass keine Schnittgerade im R3 existiert. Für d = 0 gibt es genaueine Schnittgerade und für d > 0 zwei. Gilt hingegen (unabhängig von t) (F F )2 + (F G)2 + (G G)2 = 0, dann gibt es unendlich viele Lösungen für die Gleichung und somitgenau so viele Schnittgeraden im R3.

Hat M den Rang 3 (die letzten drei Zeilen von V bilden den Kern von M), dann ergibtsich in diesem Fall Λ(u, v) : P 2 7→ P 5 mit

Page 146: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

138 André Gärtner

Λ(u, v) = uF + vG + H.

F , G und H entsprechen dann den letzten drei Zeilen der Matrix V . Auch die hierdurchbestimmten Geraden müssen wieder die quadratische Gleichung Λ Λ = 0 erfüllen. DasErgebnis dieser Gleichung hängt jetzt jedoch von zwei Parametern ab. Ergeben sich alsLösung zwei Geraden, dann wird die Menge der Schnittgeraden durch zwei ein-parametrigeGeradenscharen gebildet. Andernfalls kann die Funktion durch eine einzelne Variable t pa-rametrisiert werden. Daraus ergibt sich dann für u(t) und v(t) die Menge der Schnittgeradenals L(u(t)F + v(t)G + H).

Die Bestimmung der Schnittgeraden für Matrizen mit Rang 2 oder 1 erfolgt analog aufder Basis von drei bzw. vier Parametern.

4 Stabbing von 3D Portal-Sequenzen

Im vorherigen Kapitel wurde gezeigt, wie man die Lage von Stabbing Lines innerhalb vonPortalen berechnet. Nun wird ein Algorithmus vorgestellt, wie man mit Hilfe dieser Stab-bing Lines Licht und Schatten berechnen kann. Versteht man die Stabbing Lines nicht alsSichtlinien sondern als Lichtstrahlen, so kann auf diese Weise berechnet werden, wie vielLicht auf ein Objekt fällt. Diese Methode wird sowohl für den 2D als auch für den 3D Fallvorgestellt und analysiert.

4.1 Penumbra und Antipenumbra

Angenommen ein Flächenlicht strahlt in einer Szene mit mehrere Occludern3. Diese Occludererzeugen einen Schatten und verhindern so, dass Licht bestimmte Regionen in der Szeneerreicht. Jeder Punkt in der Szene läßt sich somit im Bezug zur Lichtquelle charakterisieren.Abbildung 8 zeigt ein zweidimensionales Beispiel. Wenn ein Punkt nichts von der Lichtquelle”sehen” kann, sagt man, dass der Punkt im Umbra (Schatten) liegt. Kann ein Punkt hingegenetwas, aber nicht alles, von der Lichtquelle ”sehen”, sagt man, dass dieser im Penumbra(Halbschatten) liegt. Wenn keins der beiden Situationen zutrifft, wird der Punkt von derganzen Lichtquelle bestrahlt.

Abb. 8. Umbra und Preumbra eines Occluder im 2D-Raum

Stellt man sich vor, das die Occluder durch konvexe Portale bzw. transparente Ebe-nen ersetzt werden, kann man jeden Punkt komplementär charakterisieren. Als Antiumbra3 Ein Objekt das den Durchfall von Licht teilweise oder komplett verhindert

Page 147: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Cell to Cell Visibility in PVS Systemen 139

definiert man den Lichtkegel (auch als Volume bezeichnet), von dem aus die Lichtquellekomplett einsehbar ist (Abb. 9). Für eine gegebene Lichtquelle und eine Menge von Por-talen oder Occludern definiert sich Umbra als das räumliche Komplement der Vereinigungvon Antiumbra und Antipenumbra. Ähnlich ist Antiumbra das Komplement der Vereinigungvon Umbra und Penumbra.

Abb. 9. Antiumbra und Antipenumbra durch eine Portal-Sequenz

Man möchte nun die beleuchteten Bereiche einer Lichtquelle (im Folgenden immer daserste Portal der Sequenz) innerhalb einer erreichten Zelle durch eine Gerade, die die Sequenzdurchdringt, charakterisieren. Die Charakterisierung für den Bereich einer Sequenz mit ei-nem Portal ist trivial. In diesem Fall, ist das Antipenumbra die ganze Halbebene hinter demPortal, die Nachbarzelle der Quellzelle ist. Durch die Konvexität der Zellen liefert es genaudas Volumen der erreichten Zelle. Berechnungen des Antipenumbra für Portalsequenzen mitzwei oder mehr Portalen, beziehen Schnitte zwischen Vertices und Kanten von Portalen mitein. Es wird im weiteren dieses Kapitels gezeigt, dass dies lineare und quadratische Primitiveeinschließt um das beleuchtete Volumen korrekt zu beschreiben.

In Kapitel 3 wurden die Portale als orientiert dargestellt. In zwei Dimensionen bedeutetdas, dass jedes Portal vom Sichtpunkt eines Portal traversierenden Lichtstrahls, ein ”lin-kes” und ”rechtes” Ende besitzt. Im R3 bedeutet die Portal-Orientierung, dass das Portal-Polygon, gesehen als eine geordnete Sequenz von Punkten, vom Sichtpunkt eines Betrachtersauf die Lichtquelle, im Uhrzeigersinn erscheint.

4.2 Oberflächen und Schneisen

Es gibt drei Arten von extremalen Stabbing Lines: Vertex-Vertex Geraden (kurz: VV),Vertex-Edge-Edge Geraden (kurz: VEE) und vierfach Edge Geraden (kurz: 4E). Stellen wiruns vor, dass man eine extremale Stabbing Line (egal von welchem Typ) durch Lockerungvon genau einer der vier Freiheitsgrade von der ursprünglichen Position weg schiebt (vgl.Abb. 10). Die Oberfläche, oder Schneise (engl. Swath), die durch die Verschiebung entsteht,ist planar oder gebogen wie eine Schar. Schneisen, wie VE oder EEE Geraden, werden EventSurfaces genannt.

Abbildung 10-i zeigt eine extremale VV Stabbing Line, die an vier Kanten A, B, Cund D gebunden ist. Durch Lockerung der Beschränkung an C erhält man eine VE Schneise(planar), die über A, B und D gespannt ist. Kommt die Schneise an ein Hindernis (in diesemFall: Kante E), so terminiert diese als eine VV Gerade, die über A, B, D und E gespannt ist.Abbildung 10-ii zeigt eine extremale 4E Stabbing Line, die an die Kanten A, B, C und D

Page 148: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

140 André Gärtner

Abb. 10. Verschiebung einer Stabbing Line, die im 3D eine planare VE Schneise (i) oder eine quadratischeEEE Fläche (ii) generiert

gebunden ist. Die Lockerung der Beschränkung an A produziert eine EEE Schneise (Schar),die über B, C und D gespannt ist. In dem Beispiel trifft die Gerade auf die Ecke E und stopals VEE Gerade.

Bedenken wir nun die gleiche Situation im 5D-Raum, gegeben durch eine Plücker Trans-formation (Abb. 11). Extremale Geraden bilden auf einzelne Punkte in Plücker Koordinatenab und zwar die Schnittpunkte der Kanten bzw. die 1D-Flächen des Polytops

⋂k h+

k mitder Plücker-Quadrik. Da Schneisen zur ein-parametrischen Geradenfamilie gehören, korre-spondieren diese zu Kurven in Plücker-Koordinaten. Diese Kurven sind die Spuren (engl.Traces) oder Schnittpunkte der 2D-Fläche des Polytops mit der Plücker-Quadrik und daherkegelförmig. Die 3D Schneisen, die zu den 5D kegelförmigen Spuren korrespondieren, nenntman auch extremale Schneisen. Alle Schneisen haben drei Generatorgeraden und somit dreiGeneratorkanten, die von Elementen der Portal Sequenzen entstehen.

Abb. 11. Spuren (Schnittpunkte) von Extremalen auf dem Plücker-Raum

4.3 Grenz- und innenseitige Schneisen

Eine 1D-Geradenfamilie kann extremal im 5D sein, solange sie komplett im Antipenumbraliegt (im 3D-Raum). Sobald extremale Stabbing Lines in dem Inneren des Antipenumbra

Page 149: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Cell to Cell Visibility in PVS Systemen 141

liegen, sind auch extremale Schneisen im Inneren. Eine extremale Schneise die auf der Gren-ze des Antipenumbra liegt wird als Grenzschneise (engl. Boundary Swath) definiert. Alleanderen extremalen Schneisen sind innenseitig (engl. internal). Untersuchungen der 2D-Flächen des Polytops

⋂k h+

k liefern alle extremalen Schneisen. Es ist dabei wichtig, dieseUnterscheidung zwischen Grenzschneisen und innenseitigen Schneisen zu machen. Diese Un-terscheidung kann nur lokal gemacht werden, durch Untersuchung der drei Generatorkantenund ihrer Generator-Polygone. Nur durch Berücksichtigung dieser konstanten Anzahl vongeometrischer Begrenzungen wird im Folgenden gezeigt, wie man berechnen kann, ob eineStabbing Line auf ”beiden Seiten” existieren kann. Wenn das der Fall sein sollte, kann dieSchneise nichts zu der Antipenumbra Grenze betragen und sie wird als innenseitig klassifi-ziert.

4.4 Zweidimensionales Beispiel

Die Begriffe für Grenz- und innenseitige Schneisen lassen sich am einfachsten am zweidi-mensionalen Beispiel erklären (Abb. 12). Portale und die Lichtquelle sind Geradensegmente.Die über Kreuz verlaufenden Geraden, die die Portalsequenz durchdringen, enthalten eineextremale Schneise (im 2D ein Geradensegment), wo eine beschränkte Stabbing Line (z.Bdurch Portal Endpunkte) vorkommen kann. Die dargestellte Fläche hinter dem letzten Por-tal ist eine konvexe Fläche, die durch die zwei überkreuzenden Kanten und das Portal selbstaufgespannt wird. Diese Kanten sind solange Grenzschneisen im 2D, wie sie den Antipenum-bra Bereich von dem unbeleuchteten Bereich voneinander trennen. Die restlichen Kantensind gültige Stabbing Lines aber innenseitige Schneisen.

Abb. 12. Schneisen eines 2D-Beispiels

Um dies etwas genauer zu verstehen, stellt man sich eine nicht überkreuzende Kante Evor, die langsam von den begrenzenden Punkten p und q rund herum wegbewegt wird (Abb.13). Die Grenzpunkte der Portale liegen dabei auf der selben Seite von E. In dem Beispielwird nun die Gerade um den Punkt p gedreht, die nur ins innere des mittleren Portalswandern kann. Daraus ergibt sich, das die Kante E in dem unteren Bereich des letztenPortals wandert (gestrichelte Linie). Dreht man die Kante E um den Punkt q, so wandertdie Kante in den oberen Bereich des letzten Portals (gepunktete Linie). Solange E gültigeStabbing Lines erlaubt (egal ob nach oben oder unten), kann diese keine beleuchteten vonnicht-beleuchteten Region separieren. Die Schnittgerade gilt somit als innenseitige Schneise.

Betrachten wir jetzt die Situation noch für eine überkreuzende Kante E (Abb. 14). DiePortal Endpunkte p und q liegen also auf der entgegengesetzten Seite von E. Dreht man

Page 150: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

142 André Gärtner

Abb. 13. innenseitige Schneise einer Portalsequenz

die Gerade nun um diese Punkte, wandert diese nur in eine Richtung des jeweiligen Portals.Dies liefert nur Geraden auf einer Seite von E (die beinhaltende Seite des Antipenumbra).E wird in diesem Fall Grenzschneise bezeichnet.

Abb. 14. Grenzschneise einer Portalsequenz

4.5 EEE Schneisen

Im Dreidimensionalen, können innenseitige und Grenzschneisen folgendermaßen unterschie-den werden. Angenommen, drei Generatorkanten A, B und C bilden eine Basis für eineEEE-Schneise. Über diese Geraden wird eine Gerade L an den Punkten a, b und c gespannt(Abb. 15-i). An diesen Punkten erheben sich drei Vektoren Na, Nb und Nc senkrecht zu Lund den Generatorkanten. Wichtig ist dabei, dass die Richtung so gewählt wird, dass manein positives Skalarprodukt mit einem ins Portal gerichteten Vektor erhält.

Man sagt, dass drei koplanare Vektoren enthalten (engl. contained) sind, wenn ein an-derer Vektor existiert, dessen Skalarprodukt mit allen drei Vektoren strikt positiv ist. EineSchneise ist innenseitig, genau dann wenn dessen korrespondierende Ni enthalten sein kön-nen. Angenommen die Ni können wie in Abbildung 15 enthalten sein, dann hat ein Vektorein positives Skalarprodukt mit den Ni (zeigend in Richtung des grauen Bereichs wie in Abb.15-ii), und man teilt die Konfiguration mit einer Ebene, die L und diesen Vektor beinhaltet.

Die Spur (Schnitt) der Schneise auf dieser Ebene ist die Stabbing Line L, welche dieTeilungsebene in zwei Bereiche L+ und L− partitioniert (Abb. 15-iii). L kann in winzigenSchritten bewegt werden, z.B. um Punkt a. Das Innere der zwei Portale erlaubt L nur in dieRichtung L+ zu drehen (gepunktete Stabbing Lines). Analog entstehen die Stabbing Lines

Page 151: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Cell to Cell Visibility in PVS Systemen 143

Abb. 15. Eine innenseitige EEE-Schneise (i), herunter geschaut an L (ii) und in Richtung L traversiert (iii)

(gestrichelt) im L− wenn man um Punkt c dreht. Auf Grund der Tatsache, dass StabbingLines in beide Richtungen gehen, kann es keine Grenzschneise sein.

Abb. 16. Eine Grenz-EEE-Schneise (i), herunter geschaut an L (ii) und in Richtung L traversiert (iii)

Im Vergleich, kann Ni in Abbildung 16 nicht enthalten sein. Jeder Vektor hat mit denanderen Vektoren ein negatives Skalarprodukt. Angenommen es gibt ein negatives Skalar-produkt mit Nc und man teilt die Konfiguration mit einer Ebene, die L und einen solchenVektor beinhaltet (Abb. 16-iii). Eine Drehung um den Punkt b generiert Stabbing Linesim L− (gepunktet) und so auch eine Drehung um Punkt c. Diese Konfiguration liefert alsokeine Stabbing Lines im L+. Solange dies für irgendeine Teilungsebene für L zutrifft, ist dieSchneise eine Grenzschneise.

4.6 VE Schneisen

Angenommen die Schneise ist von Type VE. Dies ist ein Spezialfall einer EEE Konstruktion,in der zwei der drei Kanten involviert sind. Es ist nötig diesen Fall gesondert zu betrachten,da es das einfache Verhalten der Containment-Funktion erklärt (dazu mehr im nächstenUnterkapitel).

In Abbildung 17 sind die Generatorkanten A und B gegeben, die die VE Schneise amVertex v definieren, sowie eine Kante C, die zwei Generator-Polygone P und Q, eine Ebene

Page 152: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

144 André Gärtner

durch C und die Gerade S. Orientiere S so, dass Q über dieser Geraden liegt (S+). SolangeQ konvex ist, ist dieses immer möglich. S teilt den Raum hinter der Ebene von Q in zweiRegionen S+ und S−. Wenn Stabbing Lines in einer dieser Regionen existieren können, istdie Schneise eine Grenzschneise. Dies ist möglich, genau dann wenn S eine Teilungsebenevon P und Q ist bzw. sich Polygon P komplett unter S befindet.

Abb. 17. Grenz- (i) und innenseitige (ii) VE-Schneise

Angenommen S teilt Polygon P und Q voneinander und man wählt eine Schnittgeradeder Schneise, die so wegbewegt wird, dass diese sich vom Schneisen-Vertex v löst, aber nochbei Kante C verbleibt. Der bewegende Linienschnitt mit P kann dann nur unter S liegen(Abb. 17-i). Folglich müssen alle Stabbing Lines den Bereich S+ unter der Ebene von Qschneiden. Ähnliches Verhalten ergibt sich, wenn man die Stabbing Line von C ins Innerevon Q wegbewegt und weiter an v gebunden bleibt. Die Schneise liefert nur Stabbing Linesim S+ und ist somit eine Grenzschneise.

Zum Vergleich sei angenommen, das die Ebene S P und Q nicht teilt, so dass die KantenA und B im S+ liegen (Abb. 17-ii). Wieder bewegt man eine Schneise so dass sie vom Vertexv losgelöst kommt, aber bei Kante C bleibt. Wenn die Gerade (gestrichelt) nach A überEbene S wandert, wird diese sich mit der Region S− hinter der Ebene von Q schneiden.Sollte Kante B unter S liegen, würde die Bewegung nach B Stabbing Lines (gepunktet) imS+ produzieren. Wenn A und B unter S liegen, liegen die Geraden bei v und schneiden dasInnere von Q. Die Schneise liefert Stabbing Lines, die in S− und S+ liegen und kann somitkeine Grenzschneise sein.

Sei darauf hingewiesen, dass die drei-Vektor Konstruktion für EEE Schneisen auch fürdiese degenerierte Einstellung einsetzbar ist.

4.7 Containment Funktion

Die Containment-Funktion ist ein Kriterium um zwischen Grenz- und innenseitigen Schnei-sen zu unterscheiden. Dies trifft nur auf eine einzelne Stabbing Line zu, nicht aber auf eineganze Schneise. Praktischer Weise liefert die Auswertung der Containment-Funktion aufeinen Teil der Schneise aber Resultate. Grund dafür ist, dass die Konfiguration der Nor-malen, die von den Portalkanten ausgehen, erhalten bleiben. Um zu zeigen wieso das soist, stellt man sich eine Konfiguration von drei koplanaren Vektoren Na, Nb und Nc vor.Angenommen, die Konfiguration ändert ständig von beinhaltend zu nicht beinhaltend (z.B.

Page 153: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Cell to Cell Visibility in PVS Systemen 145

durch Drehung des Vektors Nc) wie in Abbildung 18. An dem Moment wo Nc die Grenze(gepunktete Linien) überschreitet, muss Nc und einer von Na oder Nb antiparallel sein.

Abb. 18. Containment und Non-Containment, mit bewegendem Nc für feste Na und Nb

Damit dies in der EEE-Schneisen-Konstruktion passiert, müssen zwei oder drei Genera-torkanten koplanar sein. Ähnlich bei einer VE-Schneisen-Konstruktion, muss ein Kantenpaarkoplanar sein. Die Generatorkanten sind aber fest, nur die Verschiebungsgeraden variieren.Folglich wird nur durch Verschiebung einer extremalen Geraden entlang einer Schneise einesich ständig ändernde Vektorkonfiguration generiert. Der Containment des Vektors ist einekonstante Funktion.

5 Berechnung des Antipenumbra

Der benötigte rechnerische Mechanismus für die Berechnung des Antipenumbra ist nun voll-ständig. Folgende Annahmen werden getroffen: Eingabe ist eine Liste von m orientiertenPolygonen P1...Pm (gegeben als Liste von n Kanten). Das erste Polygon P1 ist die Licht-quelle, die restlichen sind Löcher (Portale). Die Polygone sind disjunkt und so geordnet,dass der negative Halbraum definiert durch die Ebene von Pi alle Polygone Pj , i < j ≤ mbeinhaltet.

Der Algorithmus wandelt jede gerichtete Kante in eine Hyperebene in Plücker-Koordinatenum und ermittelt dann die gemeinsamen Schnitte der sich ergebenden Halbräume, ein kon-vexes 5D Polytop. Wenn kein Schnitt vorliegt, oder das Polytop keinen Schnitt mit derPlücker-Fläche hat, gibt es kein Antipenumbra. Gibt es Schnitte, wird die Polytop-Strukturnach Spuren von Grenzschneisen (Schnitt von 1D-Flächen (Kanten) und 2D-Flächen (Drei-ecke) mit der Plücker-Quadrik) abgesucht (Abb. 11). Diese Spuren sind mit einer Schleifeverknüpft, welche mit Komponenten der Antipenumbra-Grenze korrespondieren. Es kannmehrere Schleifen geben, da der Schnitt der Polytop-Grenze mit der Plücker-Quadrik meh-rere Komponenten haben kann.

Jede Schleife besteht aus wechselnden Polytop-Kanten und -Dreiecken mit der Plücker-Quadrik (vgl. Abb. 19). Jede Kante, die sich mit der Plücker-Fläche schneidet ist ein Dualeiner extremalen Stabbing Line im R3. Der Schnitt zwischen Dreieck und der Plücker-Quadrik ist ein Dual einer extremalen Schneise. Die Vorkommnis von Kanten und Dreieckenauf dem Polytop impliziert so die Adjazenz von korrespondierenden Linien und Schneisenim 3D. Das Übergehen einer Kante von einem Dreieck zum nächsten auf einem Polytopist äquivalent zum Übergehen von extremalen Stabbing Lines zwischen zwei extremalen

Page 154: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

146 André Gärtner

Abb. 19. Schleife über Polytope-Kanten und -Dreiecke

Schneisen im 3D. Folglich kann der Algorithmus von 2D-Fläche zu 2D-Fläche der Polytop-Fläche ”gehen”, nur durch Überquerung der 1D-Flächen Vorkommnisse.

Jeder vorgefundene Kegel im 5D impliziert drei Generatorkanten im 3D, die in konstan-ter Zeit auf Containment untersucht werden (man beachte, das die Containment-Achse,Gerade L in Abb. 16, als Dual irgendeiner Überschneidung der Dreieckskanten mit derPlücker-Quadrik genommen werden kann). Kegel, deren Dual-Kanten enthalten sind, sindDuale von innenseitigen Schneisen (andernfalls sind sie Duale von Grenzschneisen). Sobalddie Oberflächenstruktur des Polytops traversiert ist und die Grenzschneisen ermittelt sind,werden diese ausgegeben. Wenn eine Schleife durchlaufen ist, wird die Suche an einer nochungeprüften Kante fortgesetzt. Jede geschlossene Schleife im 5D dieser Methode, ist dasDual der Grenze einer verbundenen Komponente des Antipenumbra im 3D.

Algorithmus 18Eingabe der gerichteten Kanten Ek der Polygone P1...Pm

gerichtete Kanten in gerichtete Geraden ek konvertierenek in Plücker Halbräume hk = Π(ek) transformieren5D Polytop

⋂k h+

k berechnen2D-Flächen Schnitte von

⋂k h+

k mit der Plücker Oberfläche ermittelnExtremale Schneisen als Grenz- oder innenseitige Schneisen klassifizierenfür alle durch DFS gefundene Komponenten des Antipenumbra

traversiere Grenz-2D-Flächen von⋂

k h+k

bilde jede gefundene Spur auf eine 3D Grenzschneise abAusgabe der Schneisen als quadratische Oberfläche

5.1 Algorithmus am Beispiel

Um die Komplexität des Algorithmus zu verdeutlichen, wurde dieser von Teller in der Pro-grammiersprache C und FORTRAN-77 auf einer 20-MIP Silicon Superworkstation imple-mentiert. Um die konvexe Hülle von n Hyperebenen im 5D zu berechnen, wurden Algo-rithmen verwendet, die von Allan Wilks, Allen McIntosh und Michael Hohmeyer geprägtworden sind [2].

Abbildung 20 zeigt eine Menge von Polygonen mit n = 15, wobei das erste Polygondie Lichtquelle darstellt. Die Antipenumbra Berechnung braucht bei zwei CPUs nur wenigeSekunden. Das Polytop

⋂k h+

k , entstanden aus 15 Halbräumen im 5D, hat 80 Fassetten, 1862D-Flächen (Dreiecke) und 200 1D-Flächen (Kanten). Von den 186 Dreiecken werden 78

Page 155: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Cell to Cell Visibility in PVS Systemen 147

Abb. 20. Ein Lichtquelle mit drei Portalen (i) und den sich daraus ergebenden VE- (rot), EEE-Schneisen(grün) (ii)

Dual-Spuren auf der Plücker-Quadrik induziert und somit auch 78 extremale Schneisen ge-neriert. Von den 78 Schneisen sind 62 innenseitig und 16 grenzend (Abb. 20-ii). Von den 16Grenzschneisen sind 10 VE- (rot) und 6 EEE-Schneisen (grün). Von den 200 Kanten schnei-den 39 den Plücker-Quadrik und liefern die extremalen VV, VEE und 4E Stabbing Lines(Abb. 21). Man beachte, dass die extremalen Stabbing Lines die Form der Antipenumbra-Grenze gestalten.

Abb. 21. 39 Extremale Stabbing Lines (i) prägen die Antipenumbra-Grenze (ii)

6 Fazit

Teller hat gezeigt, dass sich der Schatten - entstehend durch ein Lichtquelle - durch eine Por-talsequenz mit n Kanten mit einem erwarteten Aufwand von O(n2) berechnen läßt. Beschrie-ben wurde das Antipenumbra als ein Volumen begrenzt durch die Regionen von quadrati-schen und planaren Flächen und gezeigt, dass jede Schneise oder Anteil der Antipenumbra-Grenze im 3D durch einen Schnitt einer fünfdimensionalen konvexen Hülle mit einer vierdi-mensionalen Fläche, der Plücker-Quadrik, entsteht. Dieser Algorithmus ist an die Berech-nung von Aspekt Graphen angelehnt, die Bereiche mit qualitativ unterschiedlichen Sichteneiner Lichtquelle in einer Szene trennen.

Es wurde eine Implementierung einer Antipenumbra-Berechnung über mehrere Polygon-sequenzen demonstriert. Wie Teller beschreibt, wurde der Algorithmus durch ein Sichtbar-keitsprojekt, der statisches und Volumen-basierendes Culling im Dreidimensionalen umfass-te, angeregt. Der Aufwand zur Bestimmung des Antipenumbra und somit auch der Stabbing

Page 156: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

148 André Gärtner

Lines lohnt sich insbesondere dann, wenn eine Szene einen Vielzahl verdeckter Objekte auf-weist, wie es z.B. auf das Innere von Gebäuden, dicht bebaute Innenstädte oder ähnlicheszutrifft. Werden so bereits im Vorhinein für jede Zelle die von dieser aus potentiell sichtba-ren Zellen bestimmt, verringert sich der Aufwand für das Culling und Rendering erheblich,da viele Objekte aus nicht sichtbaren Zellen nicht mehr betrachtet werden müssen.

Damit die Berechnung des Antipenumbra und Stabbing Lines überhaupt möglich wurde,wurde ein Verfahren gezeigt, mit dem sich der Schnitt von Kanten eines fünfdimensionalenPolytops mit einer vierdimensionalen Hyperebene berechnen läßt. Die Übertragung erfolgtmit Hilfe von Plücker-Koordinaten, die die Darstellung von Geraden des R3 als Punkte oderHyperebenen des fünfdimensionalen projektiven Raumes ermöglichen.

Literaturverzeichnis

1. Seth Teller und Pat Hanrahan, 1993, Global visibility algorithms for illumination computations, Inter-national Conference on Computer Graphics and Interactive Techniques, Seiten: 239 - 246.

2. Seth J. Teller, 1992, Computing the antipenumbra of an area light source, ACM SIGGRAPH ComputerGraphics, Volume 26 - Issue 2, Seiten: 139-148.

3. Seth J. Teller und Michael E. Hohmeyer, 1992, Stabbing Oriented Convex Polygons in RandomizedO(n2) Time, Technischer Bericht, Computer Science Department, U.C. Berkeley.

4. Seth J. Teller und Michael E. Hohmeyer, 1992, Computing the lines piercing four lines, TechnischerBericht, Computer Science Department, U.C. Berkeley.

5. Seth J. Teller und Carlo H. Séquin, 1991, Visibility preprocessing for interactive walkthroughs, ACMSIGGRAPH Computer Graphics, Volume 25 - Issue 4, Seiten: 61-68.

6. Seth J. Teller, 1992, Visibility Computations in Densely Occluded Polyhedral Environments, Disserta-tion, Computer Science Department, U.C. Berkeley, Seiten: 70-99.

7. Jorge Stolfi, 1989, Primitives for computational geometry, Technischer Bericht 36, DEC SRC, Seiten:189-197.

8. Branko Grünbaum, 1967, Convex Polytopes, Wiley-Interscience, New York.9. Kenneth L. Clarkson und Peter W. Shor, 1989, Applications of random sampling in computational

geometry II, Discrete Computational Geometry, Seiten: 387-421.10. Wikipedia, Begriff: Singulärwertzerlegung, Stand: Jan. 2008,

http://de.wikipedia.org/wiki/Singul%C3%A4rwertzerlegung.11. Gene H. Golub und Charles F. Van Loan, 1989, Matrix Computations, John Hopokins University Press.

Page 157: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Hohe Verfügbarkeit in skalierbaren verteilten Hashingdateienmit Mirroring

Marco Müller

Universität Paderborn [email protected]

Zusammenfassung. Heutzutage findet die Datenhaltung in Softwareprojekten nicht mehr nur auf einemComputer statt, sondern ist oftmals in einem Netz aus mehreren Computern verteilt und besteht aus einergroßen Anzahl von Daten. Allerdings ist es dann nicht gewährleistet, dass alle Computer des Netzes auchimmer verfügbar sind. Mirroring ist ein bekanntes Konzept, um diesem Problem zu begegnen. In dieserArbeit soll dieses Konzept in das LH*-Schema, ein Hashingverfahren für skalierbare, verteilte Dateien,integriert werden. Dabei sollen Ausfälle von einem oder mehreren Computern so abgefangen werden, dass dieDaten trotzdem verfügbar bleiben, ohne dabei die sonstigen Eigenschaften zu verlieren. Die hier vorgestelltenSchemata erreichen immer noch sowohl eine ähnliche Zugriffszeit, als auch eine ähnliche Skalierbarkeit wiedas LH*-Schema. Der Preis dafür sind ein höherer Speicherbedarf und ein erhöhter Bedarf an Nachrichtenzur Kommunikation. Die verschiedenen Schemata haben unterschiedliche Eigenschaften, die sich aus denAnforderungen ergeben. Dies schlägt sich vor allem in den Kosten für die Wiederherstellung nach einemAusfall nieder.

1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

1.1 Lineares Hashing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

2 Das LH*-Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

2.1 Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1542.2 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1552.3 Weitere Eigenschaften des LH*-Schemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

3 Das LH*-Schema mit Mirroring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

3.1 Allgemeine Eigenschaften von LH* mit Mirroring . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1583.2 Besonderheiten des SA-Mirrors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1603.3 Besonderheiten des SD-Mirrors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

4 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

1 Einleitung

Hashing als eine Möglichkeit, große Datenmengen zu speichern, wird heutzutage in vielenBereichen der Informatik eingesetzt. Durch die schnellen Zugriffszeiten und den geringenSpeicherbedarf, den Hashingverfahren im Gegensatz zu Algorithmen, die Baumstrukturen

Page 158: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

150 Marco Müller

verwenden, besitzen, sind solche Verfahren sehr attraktiv für z.B. die Indexierung von Ta-bellen in einer Datenbank. Allerdings muss beim statischen Hashing im Vorfeld klar sein,wie groß der Wertebereich zu wählen ist, da es sonst zu vielen Kollisionen kommt und dieZugriffszeit zu sehr erhöht wird. Um diesem Problem entgegenzutreten, wurden dynamischeHashingverfahren entwickelt, die den Wertebereich dynamisch erweitern. Das bekanntesteunter ihnen ist das Lineare Hashing [Lit80].Diese Verfahren operieren auf dem Arbeitsspeicher eines Rechners und lagern, wenn nötig,Teile des Bildbereichs auf Festplatten oder ähnliche Medien aus. Allerdings sind heutzu-tage die Zugriffszeiten auf eine Festplatte höher als auf den Arbeitsspeicher eines anderenComputers. Demnach ergeben sich Vorteile bezüglich der Zugriffszeit, wenn man Hashing-verfahren auf verteilte Systeme oder auf Computercluster ausweitet. Ein Verfahren, dasssich dieser Problemstellung widmet, ist das LH*-Schema [Lit93]. Dieses wird in dieser Ar-beit näher beleuchtet. Allerdings gilt es bei der Realisierung von z.B. Software für Bankennoch eine Komponente zu beachten: die Verfügbarkeit. In einem verteilten System kannes zu Ausfällen einzelner Knoten kommen, sei es durch Stromausfälle, temporäre Ausfällevon Teilen des Arbeitsspeichers, Wartungsarbeiten oder ähnliches. Das kann dazu führen,dass ein Computer nicht verfügbar ist, auf dem gerade ein Hashwert gespeichert werden soll,bzw. sich ein Hashwert befindet, nach dem gesucht wird. Solche Ausfälle müssen abgefangenwerden. In dieser Arbeit soll dazu das Mirroring als zusätzliche Funktion des LH*-Schemasvorgestellt werden.Im folgenden Abschnitt werden die Grundprinzipien des Linearen Hashing, auf dem dasLH*-Schema aufbaut, vorgestellt. Die Kapitel 2 und 3 beschäftigen sich dann mit dem LH*-Schema und wie man Mirroring in dieses integrieren kann, ohne seine sonstigen Vorzüge zuverlieren. Abschließend wird ein Fazit gezogen.

1.1 Lineares Hashing

Das Lineare Hashing ist die am häufigsten genutzte Möglichkeit des dynamischen Hashings.Es verwendet dabei das verzeichnislose Schema des dynamischen Hashings und erweitert dieHashtabelle in jedem Schritt um lediglich einen Slot. Die zugrunde liegende Datenstrukturbilden sogenannte Tries, eine spezielle Art von Bäumen, bei denen ein Durchlauf dadurchcharakterisiert ist, dass an den Kanten jeweils ein Zeichen des Alphabets hinzugenommenwird. Ein Knoten ist durch den Pfad zu ihm kodiert. Eine genauere Beschreibung von Triesfindet sich in [Enb88].Um Lineares Hashing effizient durchführen zu können, müssen bestimmte Anforderungenan die verwendete Hashfunktion gestellt werden. Der Wertebereich der Schlüssel muss dy-namisch veränderbar sein. Die am häufigsten genutzte Methode, dies zu erreichen, ist einebinäre Kodierung des Schlüssels. Durch Hinzunahme eines Bits wird der Schlüssel erwei-tert und der Bildbereich vergrößert. Das Reduzieren des Bildbereich geschieht analog. Sowird beispielsweise ein Slot, der zunächst durch den Schlüssel 00 adressiert wird, nach einerErweiterung des Schlüssels mit dem Schlüssel 000 adressiert. Soll der Bildbereich reduziertwerden, so wird ein Bit, analog dem Vergrößern des Bildbereichs, entfernt.Um zu gewährleisten, dass die schon vorhandenen Schlüssel/Werte-Paare weiterhin benutztwerden können und keine neue Berechnung durchgeführt werden muss, werden mehrere Has-hfunktionen hi benutzt, die jeweils den Adressraum 0, 1, ..., 2i − 1 abdecken, wobei i einebeliebige natürliche Zahl ist. Bei der Gestaltung der Hashfunktionen ist zu beachten, dass

Page 159: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Skalierbare verteilte Hashingverfahren mit Mirroring 151

für jeden Hashwert hi(k) immer eine der folgenden Gleichungen gilt:

hi(k) = hi−1(k)

hi(k) = hi−1(k) + 2i−1

Da alle Schlüssel von der Form hi(k) = bi−1...b1b0 sind, mit b ∈ 0, 1, kann der Adress-raum der Schlüssel erweitert werden, ohne dass die bisherigen Werte neu berechnet werdenmüssen. In der Handhabung gibt es einige Unterschiede zwischen dem verzeichnisorientier-ten und dem verzeichnislosen Verfahren, auf die ich nicht näher eingehen möchte (vgl. dazu[Enb88]). Für das Lineare Hashing ist nur das verzeichnislose Verfahren relevant. Dazu wirdeine Variable, im Folgenden p genannt, eingeführt, die als sogenannter Split-Pointer fun-giert. Kommt es zu einem Überlauf, so wird der Slot gesplittet, auf den p gerade zeigt.Dabei ist zu beachten, dass dies nicht notwendigerweise der Slot sein muss, der den Über-lauf ausgelöst hat. Auch wird lediglich ein Slot zum Bildbereich hinzugefügt, es findet keineVerdopplung des Bildbereichs statt, wie man es beim Hinzufügen eines Bits erwarten wür-de. Dadurch wird gewährleistet, dass durch schlechte Wahl der Schlüssel der Bildbereichnicht unnötig groß wird, was bei einem Hinzufügen des zusätzlichen Bits zu allen Slots derFall wäre. Als Ergebnis wird im Schnitt eine Auslastung von 60% erreicht(vergleiche dazu[Lit80]). Abbildung 1 auf Seite 153 soll die Expansion verdeutlichen. Sei s die Anzahl Slotsbeim Start der i-ten Expansion. Es gilt: s = 2i und die momentan genutzte Hashfunktion seihi(k). w, x, y und z bezeichnen hier sogenannte Überlaufslots, die genutzt werden, wenn einSlot überläuft, der nicht im nächsten Schritt gesplittet wird. Im Beispiel gibt es vier Slots,demnach sind s = 4, i = 2 und die verwendete Hashfunktion ist h2(k). Der Split-Pointer pzeigt auf den Slot 0, da wir uns am Beginn der zweiten Expansionsphase befinden (Beispielin Abbildung 1, Position (a) ). Nehmen wir nun an, Slot b läuft über. Es wird nach demletzten Slot (in diesem Fall nach d) ein neuer Slot eingefügt und der Slot, auf den p zeigt,in diesem Fall Slot a, wird auf a und A aufgeteilt. Dann wird p inkrementiert. Um denÜberlauf von b abzufangen, wird ein Überlaufslot eingeführt, in diesem Beispiel w, der dieWerte, die über die Kapazität des Slots hinausgehen, speichert. Nun ergibt sich das Bild,das Position (b) im Beispiel zeigt. Um zu unterscheiden, ob ein Wert in Slot a oder in SlotA gespeichert werden soll, wird ein zusätzliches Bit benötigt. Nun wird also hi+1(k) zurAdressierung für diese beiden Slots verwendet. Für alle übrigen Slots wird weiterhin hi(k)verwendet. Im Allgemeinen gilt für die Adressierung der Slots folgender Algorithmus:

begini f hi(k) ≥ p then s l o t := hi(k)

e l s e s l o t := hi+1(k) ;i f necessary , chase the over f l ow chain

end

Listing 1. Adressierung der Slots [Enb88]

Page 160: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

152 Marco Müller

Alle Slots links vom Split-Pointer p werden also mit hi+1(k) adressiert, alle rechts von pbis zur Grenze s− 1 (der letzte Slot, der noch mit i Bits adressierbar ist) werden weiterhinmit hi(k) adressiert.Nun läuft der Slot d über und Slot b, inklusive seines Überlaufslots w, wird aufgeteilt aufb und B. Die Werte, die zum Überlauf von Slot d geführt haben, werden im Überlaufslot xgespeichert. Man erkennt, dass es einen Zusammenhang zwischen dem Slot, auf den p zeigt(derjenige, der gesplittet wird), und dem neuen Slot gibt. Der neue Slot lässt sich immerdurch s + p adressieren. Im nächsten Schritt läuft erneut d (bzw. der Überlaufslot x) über,was dazu führt, dass c gesplittet wird und ein zweiter Überlaufslot, hier y, eingeführt wer-den muss (siehe Position (d) im Beispiel). Im letzten Schritt für diese Expansionsstufe sollSlot B überlaufen. Nun wird d mit seinen beiden Überlaufslots gesplittet. Da nun nach demInkrementieren von p gilt: p = s wird p wieder auf 0 gesetzt, was signalisiert, dass dieserExpansionsschritt beendet ist. Für alle Slots wird nun hi+1(k) zur Adressierung verwendet.Nun wird i inkrementiert, s = 2i neu berechnet und die Grenze für den nächsten Expan-sionsschritt (s− 1) wird ebenfalls neu berechnet. Dies führt zur Position (e) im Beispiel. pist wieder bei 0, i hat den Wert 3 und s den Wert 8. Zur Adressierung wird ausschließlichh3(k) verwendet.Es besteht die Möglichkeit, durch Wahl von anderen Strategien, was das Splitten der Slotsangeht, eine Verbesserung herbeizuführen. Dazu kann man sich überlegen wann ein Slotgesplittet und ein neuer Slot eingeführt wird, aber auch wie ein Slot gesplittet wird. Diessoll hier nicht weiter erläutert werden, nachzulesen sind diese Möglichkeiten in [Enb88].

2 Das LH*-Schema

LH* stellt eine Erweiterung des Linearen Hashing dar. Im Gegensatz zum Linearen Hashing,welches auf einem Prozessor läuft, ist eine LH*-Datei auf mehreren Computern verteilt. Da-bei existiert keine zentrale Instanz, die alles koordiniert. Man unterscheidet zwischen Clients,die Schlüssel suchen, bzw. einfügen und Servern, die die Schlüssel und die dazugehörigenWerte speichern. Zur Kommunikation der Clients mit den Servern werden Nachrichten aus-getauscht. Auf die Besonderheiten der einzelnen Komponenten wird später näher eingegan-gen. Um solch ein Netzwerk umsetzen zu können, werden bestimmte Anforderungen an diezugrundeliegende Datenstruktur gestellt [Lit93]:

1. Eine Datei wird nur schrittweise erweitert und auch nur, wenn alle Server, die sich geradein Benutzung befinden, zu einem gewissen Grad ausgelastet sind.

2. Es existiert keine zentrale Steuerungseinheit, die zunächst benachrichtigt werden muss.3. Keine Operation (Suchen, Einfügen, Splitten usw.) benötigt atomare Ausführungen un-

ter verschiedenen Clients.

Datenstrukturen, die diese Anforderungen erfüllen, werden auch SDDS1 [Lit93] genannt.Anforderung 1 ist intuitiv klar und galt schon beim Linearen Hashing. Anforderung 2 istessentiell, um mit weniger Nachrichten auszukommen und für die Größe der LH*-Datei nichtdurch die Größe der zentralen Instanz beschränkt zu sein. Anforderung 3 ist unverzichtbar,da nicht garantiert werden kann, dass zu jedem Zeitpunkt alle Clients verfügbar sind. Umsolch eine SDDS effizient nutzen zu können, müssen möglichst wenige Nachrichten zum Ein-fügen, bzw. Suchen eines Schlüssels gebraucht werden und die Auslastung sollte möglichst1 Scalable Distributed Data Structure

Page 161: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Skalierbare verteilte Hashingverfahren mit Mirroring 153

Abb. 1. Beispiel für Lineares Hashing

Page 162: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

154 Marco Müller

hoch sein. Beides ist beim LH*-Schema gegeben, wie später gezeigt wird. Eine LH*-Dateiwird auf mehreren Servern gespeichert. Dabei wird auf jedem Server genau ein Slot gespei-chert, und zwar in dessen Arbeitsspeicher. Eine LH*-Datei expandiert genau so wie eineDatei beim Linearen Hashing. Da es genauso viele Server wie Slots gibt, ist dies ohne wei-teres möglich. Genau wie beim Linearen Hashing hat jeder Slot ein Expansionslevel i undes gibt einen Split-Pointer p, der auf einen Slot zeigt.In den folgenden Abschnitten 2.1 und 2.2 wird näher auf die beiden Komponenten desLH*-Schemas, die Clients und die Server eingegangen.

2.1 Clients

Clients manipulieren eine LH*-Datei, indem sie mit einem Server über Nachrichten kommu-nizieren. Sie fügen Schlüssel ein oder suchen nach Schlüsseln. Da es viele Clients gibt, dievon der Existenz anderer Clients nichts wissen und unabhängig voneinander die LH*-Dateiverändern können, verändert ein Client die Datei, ohne dass andere Clients davon erfahren.Man könnte eine zentrale Instanz einführen, die die beiden Werte, das Expansionslevel iund den Split-Pointer p, verwaltet und alle Clients informiert, oder jeder Client benutzteine eigene Kopie. Letzteres führt dazu, dass die Clients unterschiedliche Werte für ihreKopien haben. Diese sind im Regelfall nicht die Werte der Datei. Beides ist nicht optimal,aber im weiteren Verlauf wird die zweite Variante verwendet.Im nächsten Abschnitt soll näher auf die Adressberechnung des Clients eingegangen werden.Im darauffolgenden Abschnitt wird das Verfahren zum Anpassen der Werte eines Clients andie der LH*-Datei näher erläutert.

Adressierung

Da die Clients alle unterschiedliche Werte von i und p haben können, besitzen alle eineKopie der beiden Werte, im Folgenden als i′ und p′ bezeichnet. Mit diesen Kopien berechnetjeder Client den Hashwert für den Schlüssel mit demselben Algorithmus wie beim LinearenHashing (siehe Listing 1 auf Seite 151). Da die Kopien des Clients aber typischerweise nichtden tatsächlichen Werten entsprechen, kann es sein, dass die Berechnung des Hashwertesfalsch war. In diesem Fall würde dieser Fehler durch die Server entdeckt werden (genaueresdazu findet sich in Kapitel 2.2) und eine IAM2 wird an den Client geschickt. Im folgendenAbschnitt wird darauf näher eingegangen. Ist der berechnete Wert korrekt, bleibt dieseNachricht aus, auch wenn i′ und p′ nicht i und p entsprechen.

Anpassung der eigenen Kopie

Wenn ein Client eine falsche Kopie der Werte hat und somit einen falschen Server an-spricht, so wird eine Nachricht von diesem Server an den Client geschickt, die sogenannteIAM. Durch diese Nachricht werden die Kopien i′ und p′ neu gesetzt und nähern sich dentatsächlichen i und p an (Die übermittelten Werte müssen nicht den tatsächlichen entspre-chen, da der Server, der zuerst vom Client angesprochen wird, seine Werte übermittelt, nichtderjenige, wo der Hashwert tatsächlich gespeichert ist). Dies sorgt dafür, dass Nachrichtennur übermittelt werden, wenn es zwingend notwendig ist, denn auch wenn die Kopien falsch

2 Image Adjustment Message

Page 163: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Skalierbare verteilte Hashingverfahren mit Mirroring 155

sind, aber trotzdem die richtige Adresse berechnet wird, wird keine Nachricht gesendet. DasResult sind weniger Fehler bei der Adressierung, denn mit jedem Fehler, den ein Clientmacht, werden seine Kopien erneuert und den tatsächlichen Werten angenähert, sofern einClient aktiv genug ist. Ein Client, der kaum Schlüssel sucht, bzw. Schlüssel einfügen möchte,verpasst natürlich viele Änderungen an der Datei und wird demnach mehr Fehler bei derAdressierung haben, als ein Client, der häufiger aktiv ist. Listing 2 zeigt den Algorithmuszum Anpassen der Kopien eines Clients. Dabei sind i das Expansionslevel der LH*-Datei, i′

die Kopie des Clients, p′ der Split-Pointer des Clients und a die Adresse des Servers bzw. desSlots. Die beiden Schritte decken die beiden möglichen Fälle ab: einmal, dass der adressierteSlot schon gesplittet wurde (Schritt 1), und dass der adressierte Slot noch nicht gesplittetwurde (Schritt 2). In jedem der beiden Fälle entspricht das Expansionslevel i′ nun dem derDatei. Lediglich der Split-Pointer kann von dem der Datei abweichen.

1 : i f i > i′ then i′ ← i− 1 , p′ ← a + 1 ;2 : i f p′ ≥ 2i′ then p′ ← 0 , i′ ← i′ + 1 ;

Listing 2. Adjustment Algorithmus [Lit93]

2.2 Server

Server speichern Schlüssel mit den dazu korrespondierenden Werten. Dabei ist auf jedemServer genau ein Slot gespeichert. Server bekommen von Clients Nachrichten mit den einzu-fügenden Schlüsseln, bzw. Schlüsseln, nach denen gesucht wird. Wie im vorigen Abschnitterläutert, kann es vorkommen, dass ein Server eine Nachricht erhält, die eigentlich nichtfür ihn bestimmt ist. Deshalb überprüft jeder Server, ob er der richtige Empfänger derNachricht ist und leitet die Nachricht an einen anderen Server weiter, falls er nicht der rich-tige Empfänger ist. Der genaue Ablauf dieses Prozesses wird im nächsten Abschnitt nähererläutert.

Adressierung

Jeder Server berechnet nach Erhalt einer Nachricht vom Client die Adresse neu, um zuüberprüfen ob er der richtige Empfänger ist. Wenn nicht, berechnet er die Zieladresse neuund leitet die Nachricht an die neue Adresse weiter. Dann schickt er eine IAM an den Client,der die Anfrage gestellt hatte. Diese IAM enthält den aktuellen Wert des Servers für dasExpansionslevel. Die Weiterleitung der Nachricht an einen weiteren Server findet höchstenszweimal statt, wie später noch gezeigt wird. Da ein Server den Wert des Split-Pointers pnicht kennt, kann er nicht den Algorithmus verwenden, den der Client benutzt (Listing 1auf Seite 151). Er verwendet folgenden Algorithmus:

a′ ← hi(C) ;i f a′ 6= a then

a′′ ← hi− 1(C)i f a′′ > a and a′′ < a′ then a′ ← a′′ ;

Listing 3. Adressberechnung des Servers [Lit93]

Page 164: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

156 Marco Müller

Dabei ist i das Expansionslevel des Servers und a′ die neu berechnete Adresse für denSchlüssel C, sowie a die vom Client berechnete und übermittelte Adresse. Sollte bei der Be-rechnung herauskommen, dass a′ = a gilt, so ist der Server der richtige Empfänger und führtdie Anfrage vom Client aus. Ansonsten wird die Nachricht an den Server mit der Adressea′ weitergeleitet. Dieser führt wiederum den Algorithmus aus und sendet die Nachricht ge-gebenenfalls weiter. Spätestens dann wird, wie oben erwähnt, der richtige Server gefunden.Dies verdeutlicht folgender Satz [Lit93]:

Theorem 1. Der Algorithmus aus Listing 3 auf Seite 155 findet die richtige Adresse fürjeden Schlüssel C, der mit dem Algorithmus aus Listing 1 auf Seite 151 berechnet wurde.Dabei wird C höchstens zweimal weitergeleitet.

Beweis zu Theorem 1:Sei a die Adresse des Servers, der C vom Client empfangen hat, j sei das Expansionsleveldes Servers mit Adresse a und i das Level der Datei, sowie i′ das Level des Clients. MitLevel(a) wird das Expansionslevel des Servers mit der Adresse a bezeichnet. Wenn gilt: a= a′ = hj(C), so ist a die richtige Adresse für C und der Algorithmus terminiert. Sonstsei a′′ = hj−1(C). Nun gibt es zwei Möglichkeiten: (i.) n ≤ a < 2i oder (ii.) a < n odera ≥ 2i. Zunächst zu (i.): Dann gilt: j = i. Angenommen a′′ 6= a (Im Fall a′′ = a würde dieNachricht zu a′ weitergeleitet werden und a′ wäre die richtige Adresse),⇒ Nachricht wird weitergeleitet an a′′ und es gilt: i′ < j − 1 und a′′ > a, sowie Level(a′′) =j = i und a′′ = hLevel(a′′)−1(C). Nun gilt entweder: a′′ = a′ = hi(C) und a′′ ist die richtigeAdresse für C oder: a′′ < a′. Dann ist Level(a′) = i und a′ ist die richtige Adresse für C.Somit gibt es in jedem Fall von (i.) höchstens zwei Weiterleitungen.Nun zu (ii.): Dann gilt: j = i + 1 und a′′ ≥ a. Angenommen a′′ > a (Im Fall a′′ = a würdedie Nachricht zu a′ weitergeleitet werden und a′ wäre die richtige Adresse),⇒ Nachricht wird weitergeleitet an a′′ und Level(a′′) = i oder Level(a′′) = i + 1. Im FallLevel(a′′) = i + 1 gilt: hLevel(a′′)(C) = a′′ und a′′ ist somit die richtige Adresse für C. Sonstgilt: a′′ = hLevel(j)−1(C). Sei nun a′ = a′′,⇒ a′′ ist die Adresse für C. Ansonsten gilt: a′ > a′′

und a′ ≥ 2i, ⇒ Level(a′) = i + 1 und a′ ist die richtige Adresse für C. Somit gibt es auchin Fall (ii.) höchstens zwei Weiterleitungen.

Der Algorithmus aus Listing 3 auf Seite 155 verwendet diese Beweisführung zur Berech-nung von a′′, bzw. a′. Darüber hinaus gibt es Möglichkeiten, den Algorithmus zu verbessern.Beispielsweise könnte man die Berechnung von a′′ verwenden, um herauszufinden, ob Cschon einmal weitergeleitet wurde. Dadurch könnte man sich die Berechnung von a′′ beimzweiten Empfänger sparen.

2.3 Weitere Eigenschaften des LH*-Schemas

Splitten von Slots

Wie schon weiter oben erwähnt, erfolgt die Expansion genauso wie beim linearen Hashing.Um das Splitten eines Slots durchzuführen, wird ein Koordinator eingesetzt, der die aktu-ellen Werte i und p der LH*-Datei verwaltet und ändert. Das Splitten kann wieder kon-trolliert (z.B. abhängig von der Auslastung) oder unkontrolliert (z.B. bei jeder Kollision)

Page 165: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Skalierbare verteilte Hashingverfahren mit Mirroring 157

durchgeführt werden. Jeder Slot, der ein Splitten auslöst, schickt eine Nachricht an diesenKoordinator. Dieser schickt die Nachricht weiter an den Slot, auf den p gerade zeigt undaktualisiert seine Werte nach demselben Schema wie beim Linearen Hashing. Der Server,der die Nachricht zum Splitten erhält (mit Expansionslevel i), führt folgende Schritte durch[Lit93]:

(a) Erstellen des neuen Slots mit der Adresse p + 2i mit Expansionslevel i + 1.(b) Splitten der enthaltenen Werte mit der Funktion hi+1 auf den eigenen und den neuen

Slot.(c) Sein eigenes Expansionslevel um einen erhöhen.(d) Den Koordinator benachrichtigen, dass der Split vollzogen wurde.

Durch Schritt (d) wird die Sichtbarkeit der Splits serialisiert. Wenn solche Splits fürClients sichtbar wären, die falsche Kopien von i und p haben, könnte eine Adresse berechnetwerden, die außerhalb der Datei liegen würde, was die Korrektheit des Algorithmus zumAnpassen der kopierten Werte (Algorithmus 2 auf Seite 155) beeinträchtigen würde. WeitereMöglichkeiten existieren, um das Splitten zu variieren [Lit93], beispielsweise ohne einenKoordinator.

Güte

Die Güte des LH*-Schemas wird durch die Anzahl der Nachrichten, die zum Einfügen, bzw.Suchen eines Schlüssels erforderlich sind, ermittelt. Beim Suchen sind im besten Fall zweiNachrichten nötig (eine zum Senden des zu suchenden Schlüssels und eine zum Empfangender Informationen) und im schlechtesten Fall werden noch zwei Nachrichten benötigt, umdie Suchanfrage weiterzuleiten. Beim Einfügen eines Schlüssels sind mindestens eine, wennder Client die richtige Adresse berechnet, und höchstens drei Nachrichten, falls die Anfragezweimal weitergeleitet wird, nötig. In [Lit93] wurden Simulationen durchgeführt, um zuevaluieren, wieviele Nachrichten im Schnitt benötigt werden und wie sich die Fehlerrateverhält. Dabei wurde beobachtet, dass die Nachrichtenzahl steigt, wenn die Kapazität einesSlots geringer ist und dass die Zahl sich dem Minimum von zwei, bzw. einer Nachrichtannähert. Was ebenfalls beobachtet wurde ist, dass die durchschnittliche Fehlerrate ca.log2(k) entspricht, wobei k die Anzahl der Slots darstellt. Darüber hinaus haben aktiveClients einen deutlichen Vorteil, was die Fehlerrate angeht, als weniger aktive Clients. Diesist intuitiv erkennbar, da aktive Clients ihre Kopien seltener anpassen müssen als inaktiveClients.Abschließend sei noch zu sagen, dass die Auslastung einer LH*-Datei immer zwischen 65%und 95% liegt (siehe dazu [Lar80]).

3 Das LH*-Schema mit Mirroring

Für gewisse Anforderungen, z.B. Bank-Applikationen, ist es unerläßlich, dass die gespei-cherten Daten immer verfügbar sind. Dies gilt auch für das Speichern mittels Hashing. DasLH*-Schema - wie es im vorangegangenen Kapitel vorgestellt wurde - garantiert dies jedochnicht. Wenn man beispielsweise davon ausgeht, dass die Wahrscheinlichkeit pd, dass ein Slotverfügbar ist, bei 99% liegt und die Ausfälle der einzelnen Slots unabhängig voneinander

Page 166: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

158 Marco Müller

sind, so ist die Wahrscheinlichkeit, dass die gesamte LH*-Datei verfügbar ist bei pF = pNd ,

mit N = Anzahl Slots in der Datei. Ein Vorteil des LH*-Schemas, die Skalierbarkeit, wirdso abgeschwächt, da bereits ab einer Slotanzahl von 1000 die Wahrscheinlichkeit, dass dieDatei verfügbar ist bei pF = 0,00004 liegt, also bei nahezu 0%. Trotz der Vorteile, die LH*sonst bietet, ist diese Wahrscheinlichkeit für Applikationen, die mit großen Datenbeständenarbeiten, nicht tragbar, da sie entweder auf die Skalierbarkeit oder auf die Verfügbarkeitverzichten müssten.Mirroring ist ein beliebte Technik, um eine hohe Verfügbarkeit zu erreichen, und findet schonin unterschiedlichen Bereichen Anwendung. Schon unter der Annahme, dass es zwei Slotsgibt, die dieselbe Information tragen, vergrößert sich die Wahrscheinlichkeit für die Verfüg-barkeit enorm. So ist die Wahrscheinlichkeit für einen Slot pc = (1−(1−pd)2) = 0,9999. Für1000 Slots ergibt sich für die Datei eine Wahrscheinlichkeit von pF = (1−(1−pd)2)N = 91%.Das ist wesentlich besser als ohne Mirroring und für die oben erwähnten Applikationen trag-bar. Natürlich muss dafür gesorgt werden, dass die Vorteile des LH*-Schemas nicht verlorengehen. Eine Möglichkeit wäre, das Mirroring auf der Ebene der Server durchzuführen undjeden Server zu spiegeln. Dadurch würde keine Anpassung des LH*-Schemas notwendig wer-den, da es für jeden Key weiterhin eine Adresse zum Speichern gibt. Allerdings sind solchekomplizierten Server sehr teuer im Vergleich zu den konventionellen Servern, die zahlreichproduziert werden. Außerdem sind sie nicht gegen unvorhergesehene Ereignisse wie Strom-ausfälle oder Brände gesichert. Eine weitere Möglichkeit ist, das Mirroring auf der Ebenedes LH*-Schemas durchzuführen. Dann müssen Anpassungen vorgenommen werden, z.B.müssen alle Kopien eines Slots verschiedene Adressen haben und diese müssen anderenKomponenten sichtbar sein. Dadurch lassen sich die oben genannten Nachteile von Mirro-ring auf Server-Ebene lösen.Das LH*-Schema, wie es in Kapitel 2 vorgestellt wurde, soll in diesem Kapitel um Mirroringerweitert werden, um eine größtmögliche Verfügbarkeit zu garantieren. Dabei sind folgendeEigenschaften wünschenswert [Lit96]:

1. Verfügbarkeit aller Daten trotz des Ausfalls eines Knotens2. Verfügbarkeit aller Daten in den meisten Fällen bei Ausfällen mehrerer Knoten3. Verfügbarkeit der meisten Daten bei Ausfällen eines Knotens in jedem Mirror4. Balancierte Auslastung nach Ausfällen5. Effiziente Wiederherstellung nach Ausfällen

Es werden zwei verschiedene Arten von Schemata, die LH* um Mirroring erweitern, vor-gestellt. In Kapitel 3.2 wird der Structurally-Alike Mirror (SA-Mirror) vorgestellt und inKapitel 3.3 die beiden Arten des Structurally-Dissimilar Mirror (SD-Mirror), der loosely-coupled SD-Mirror und der minimally coupled SD-Mirror. In Abbildung 2 werden dieseschematisch dargestellt. Der nächste Abschnitt beschäftigt sich mit allgemeinen Eigenschaf-ten, die ein LH*-Schema mit Mirroring haben muss.

3.1 Allgemeine Eigenschaften von LH* mit Mirroring

Zunächst sei festgelegt, dass es zwei LH*-Dateien gibt, im weiteren F1 und F2 genannt,die als Mirror bezeichnet werden. Sie sind gespiegelt, jede Änderung an der einen Dateiwird sofort an der anderen durchgeführt. Beide Dateien haben gleich viele Slots und einenLH*-Koordinator (vgl. Abschnitt 2.3), der das Splitten durchführt.

Page 167: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Skalierbare verteilte Hashingverfahren mit Mirroring 159

Abb. 2. Die verschiedenen Typen der LH*-Mirror: (a) SA-Mirror, (b) loosely-coupled SD-Mirror, (c) mi-nimally coupled SD-Mirror

Jeder Server und jeder Client ist in der Lage, die Slots selbstständig zu lokalisieren, um dieKopie zu finden, falls ein Slot nicht verfügbar ist. Dabei müssen die beiden Dateien nichtgleich aufgebaut sein. Im Allgemeinen gilt für einen Schlüssel c, der in Datei F1 in Slot dgespeichert ist und in Datei F2 in Slot d′, dass d 6= d′ ist. Es werden also nicht dieselbenHashfunktionen genutzt, aber der Aufbau beider Dateien ist sowohl für die Server, als auchfür die Clients transparent.Jeder Mirror hat seine eigenen Clients und jeder Client hat einen primären Mirror, auf dener immer zugreift. Zugriffe auf den jeweils anderen Mirror, den sekundären Mirror, werdennur im Ausnahmefall realisiert. Dies geschieht sobald der Slot des primären Mirrors ausfällt.Ein Client, der den Mirror F1 als primären hat, wird auch F1-Client genannt.Sollte ein Server ausfallen und somit ein Slot nicht verfügbar sein, so muss dieser wieder-hergestellt werden, sobald er wieder verfügbar ist. Dazu wird dem LH*-Koordinator eineFunktion hinzugefügt, die das Wiederherstellen übernimmt. Für die Wiederherstellung gibtes zwei Ansätze [Lit96]:

• Die Wiederherstellung wird solange verzögert, bis der nicht verfügbare Slot wieder ver-fügbar ist. In dieser Zeit wird eine Kopie aller Schlüssel, die in diesem Slot eingefügtwerden sollen, angelegt.

• Ein neuer Slot, auch Spare genannt, wird sofort angelegt.

Durch den Spare wird eine höhere Verfügbarkeit erreicht, allerdings benötigt man auchmehr Speicher. Dies könnte in manchen Applikationen zu Problemen führen. Im weiterenVerlauf wird die interessantere Möglichkeit mit den Spares näher untersucht.

Page 168: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

160 Marco Müller

3.2 Besonderheiten des SA-Mirrors

Beim SA-Mirror (Structurally-Alike Mirror) sind beide Mirrors strukturell gleich. Sie ha-ben dieselbe Slotgröße, verwenden ähnliche Hashfunktionen und dieselben Verfahren, um dieAuslastung zu kontrollieren. Änderungen an einem Mirror werden dem anderen so schnellwie möglich mitgeteilt. Dies übernimmt der Server mit der richtigen Adresse für die gesen-dete Anfrage. Den zu einem Slot korrespondierenden Slot des anderen Mirror nennt manBuddy. Das führt dazu, dass ein Schlüssel in beiden Mirrors in den Slot mit derselben Num-mer gespeichert wird. Dies unterscheidet sich von der ursprünglichen Annahme. Dadurchwird die Weiterleitung von Anfragen durch die Clients über die Mirrors vereinfacht und isteffizienter, da ein Server eine Anfrage an seinen Buddy typischerweise ohne Fehler bei derAdressierung, bzw. Weiterleitung an einen anderen Server durchführen kann.Weiterhin werden Splits nach derselben Abfolge von Anfragen durchgeführt, egal ob sievon einem F1-Client oder einem F2-Client vorgenommen wurden. Dabei werden benötigteSplits unabhängig von dem jeweils anderen Mirror entdeckt und durchgeführt. Ein Server,der einen Split entdeckt, leitet die Anfrage an seinen Buddy weiter und leitet den Splitein, unabhängig von den Aktionen, die sein Buddy veranlasst. Dieser wird typischerweiseseinerseits einen Split einleiten. Durch Fehler bei der Propagierung der Anfrage oder durchverschiedene Splitzeiten kann es vorkommen, dass ein Slot in einem Mirror existiert, derim anderen Mirror noch nicht existiert. Durch diese Asynchronizität könnte ein Client eineAnfrage an einen Server stellen, dessen Slot noch nicht existiert. Dies kann dadurch gesche-hen, dass ein Client eine IAM von einem Server bekommt, der gerade gesplittet hat undder korresponierende Buddy seinen Split noch nicht vollzogen hat. Wenn der Client nuneine Anfrage an den anderen Mirror stellt und den Buddy des gerade erzeugten Slots alsAdresse ausmacht, so tritt der oben erwähnte Fall ein. Nun sendet der Client die Anfra-ge an den Eltern-Server (derjenige, der das Splitten veranlassen müsste). Dieser wiederumsendet die Anfrage an den eigentlichen Server, sobald dessen Slot erzeugt wurde. Sollte derEltern-Server nicht verfügbar sein, so wird der Koordinator informiert.Allgemein sieht das Verfahren des Clients folgendermaßen aus: Ein Client berechnet dieAdresse für den Server, der seine Anfrage bearbeiten soll, nach dem LH*-Schema (vgl. Ka-pitel 2) und schickt diese dann an diesen Server, beispielsweise Adresse a. Wenn es sichum einen F1-Client handelt, wird dieser Server zur F1-Datei gehören. Existiert der Slotvon Adresse a nicht, so wird die Anfrage an den Eltern-Server gesendet. Sollte der Clienterfahren, dass a nicht verfügbar ist, so wird die Anfrage an den Buddy a′ gesendet. Dieserverarbeitet die Anfrage dann. Solange der Client keine Benachrichtigung bekommt, dass awieder verfügbar ist, wird er nun immer a′ benachrichtigen, anstelle von a, sofern er dieseAdresse berechnet. Bekommt er eine Mitteilung, dass a wieder verfügbar ist, aktualisiert erseine Zuordnungstabelle.Wie schon beim LH*-Schema erwähnt, kann der Client einen Fehler bei der Adressierungbegehen. Dann wird die Anfrage weitergeleitet. Bei einem SA-Mirror gibt es zusätzlich zuden Möglichkeiten des LH*-Schemas, wie eine Anfrage propagiert wird, weitere Möglich-keiten, da die Anfrage zwischen den beiden Mirrors propagiert werden kann. Jeder Server- nehmen wir an, er gehört zu einer F1-Datei und hat die Adresse a1 - der eine Anfrageempfängt, überprüft zunächst, ob der Client ein F1-Client, also ein primärer Client ist. Istdem so, wird weiter verfahren wie beim LH*-Schema und die Anfrage wird gegebenenfallsan weitere Server innerhalb der F1-Datei weiter propagiert. Zusätzlich propagiert der Servermit der richtigen Adresse die Nachricht an seinen Buddy weiter, sofern es sich bei der An-

Page 169: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Skalierbare verteilte Hashingverfahren mit Mirroring 161

frage um ein Update handelt. Ist der Client ein sekundärer Client, so überprüft der Serverzunächst, ob sein Buddy a′1 verfügbar ist. Ist dieser verfügbar, versucht a1, die Anfrage ana′1 weiterzuleiten. Dann übernimmt a′1 die Bearbeitung der Anfrage. In jedem Fall wirdeine IAM an den Client geschickt, mit der Information, dass a′1 wieder verfügbar ist, dadies ja ein primärer Server für den Client ist. Diese IAM kann mit einer anderen IAMkombiniert werden, beispielsweise wenn die Anfrage an einen weiteren Server weitergeleitetwürde. Sollte das Senden von a1 an a′1 fehlschlagen, informiert a1 den Koordinator. Ist a′1die richtige Adresse, antwortet der Server auf die Anfrage, ansonsten leitet er die Anfragean einen anderen Server a2 ∈ F1 weiter. Dieser verfährt genauso wie a1. Er überprüft, ober der richtige Empfänger ist und handelt dementsprechend. Sollte a2 nicht verfügbar sein,wird die Anfrage an a′2 gesendet und dieser handelt wie oben beschrieben. Sollte die Anfrageweder von a2 noch von a′2 beantwortet werden können, so wird noch einmal weitergeleitet.Dann ist in jedem Fall die richtige Adresse gefunden (siehe dazu auch Theorem 1 auf Seite156).Der Koordinator, der hier auch als Wiederherstellungs-Manager fungiert, kann ebenfallsentdecken, dass ein Server nicht verfügbar ist, wenn er einen Split veranlassen möchte. Indiesem Fall veranlasst der Koordinator das Erzeugen eines Spares. Dieser Thematik widmetsich der nächste Abschnitt.

Erzeugen eines Spares

Ein Spare wird immer dann erzeugt, wenn ein Server nicht verfügbar ist und auf diesenzugegriffen werden soll. Angenommen der Server mit der Adresse f ist nicht mehr verfüg-bar. Es muss zunächst Speicherplatz für den Spare allokiert werden. Dazu wird zunächstein Knoten s für den Spare gesucht. So ein Knoten besteht überlicherweise aus mehrerenServern. Dann wird eine Tabelle angelegt, in der gespeichert wird, welche Adresse zu wel-chem Server gehört. Nun wird in dieser Tabelle eingetragen, dass Anfragen, die eigentlichfür f bestimmt sind, nun an den Spare in Knoten s gesendet werden. Der Spare nimmt nundie Rolle von Server f ein und empfängt alle Anfragen, die eigentlich für f vorgesehen sind.Die Werte, die bisher in f gespeichert waren, werden vom Buddy von f gesendet. Da dasErzeugen eines Spares im SD-Mirror genauso verläuft, wird es hier nicht weiter beleuchtet,sondern findet in Abschnitt 3.3 statt. Sollte der Server mit der Adresse f wieder verfügbarsein, bevor alle Clients ihre Anfragen für f schon automatisch zum Spare umleiten, wirdeine Anfrage für den „alten“ Speicherort von f vom Knoten, der diesen Speicherort bein-haltet zum Spare umgeleitet und eine IAM wird an den Client zurückgesendet, in der danndie „neue“ Adresse für Server f enthalten ist. So wird dann nach und nach für jeden Clientdie logische Adresse f auf die tatsächliche Speicheradresse vom Spare angepasst und dervorherige Speicherplatz für f kann neu vergeben werden.

Güte

Typisch für Verfahren, die Mirroring nutzen, ist, dass doppelt soviel Speicherplatz erforder-lich ist wie bei einem Verfahren ohne Mirroring. Gibt es keine Fehler, weil ein Slot nichtverfügbar ist, so ändert sich die Anzahl Nachrichten, die verschickt werden, minimal. Füreine Suche bleibt sie genauso wie beim LH*, für das Einfügen wird eine zusätzlich Nach-richt für die Benachrichtigung des Buddys benötigt. Das Splitten eines Slots kostet doppelt

Page 170: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

162 Marco Müller

soviele Nachrichten, da es zwei identische LH*-Dateien gibt.Sollten Fehler, aufgrund von ausgefallenen Servern auftreten, so erhöht sich die Anzahl derNachrichten bei jedem Versuch, einen ausgefallen Server zu erreichen, um zwei.Um einen Spare zu erzeugen, werden typischerweise zwei zusätzliche Nachrichten gebraucht,gemäß dem Fall, die zu kopierenden Werte können in einer Nachricht gesendet werden. Füreinen Verlust von Daten aufgrund des Ausfalls von einem Server in jedem Mirror ergibtsich eine Wahrscheinlichkeit von (1 − pd)2. Falls dies auftritt, würden die Kosten für denVerlust durchschnittlich 0,7 * b Werten betragen, wobei b der Slotgröße entspricht.

3.3 Besonderheiten des SD-Mirrors

Die beiden SD-Mirrors (Structurally-Dissimilar Mirror) haben im Allgemeinen unterschied-liche Eigenschaften, beispielsweise unterschiedliche Slotgrößen oder andere Verfahren umdie Auslastung zu kontrollieren. Die Hashfunktionen, die gewählt werden, müssen sich nichtähneln, auch wenn dies das Erzeugen eines Spares vereinfachen würde. Der Vorteil des SD-Mirrors im Vergleich zum SA-Mirror liegt in der Allgemeingültigkeit, man kann z.B. dieMirrors auf heterogenen Systemen speichern mit unterschiedlichen Speichergrößen.Der Hauptunterschied zwischen dem SA-Mirror und dem SD-Mirror ist jedoch, dass sichein Slot hinsichtlich des SD-Mirrors ebenso verhält wie ein Client, also eine Kopie der bei-den Werten i und p einer LH*-Datei hat und IAM s empfängt.Beim SD-Mirror unterscheidet man zwischen zwei verschiedenen Arten. Diejenigen, diedieselben Hashfunktionen verwenden und Änderungen sofort dem jeweils anderen Mirrormitteilen, werden loosely-coupled SD-Mirror genannt. Diejenigen, die keine Voraussetzun-gen an die Eigenschaften der Mirrors stellen, werden auch minimally coupled SD-Mirrorgenannt. Wie man in Abbildung 2 auf Seite 159 sieht, liegt der Vorteil des loosely-coupledSD-Mirrors darin, dass die Wiederherstellung effizienter geschieht, da die einzelnen Wertenicht so über den zweiten Mirror verteilt sind wie beim minimally coupled SD-Mirror. Inden letzten beiden Abschnitten wird näher auf diese beiden Arten eingegangen.

Loosely-coupled SD-Mirror

Auf der Seite des Clients gibt es im Gegensatz zum SA-Mirror nur einen Unterschied: derClient hat für jeden Mirror eine Kopie von i und p, also typischerweise zwei Kopien. JedeKopie wird aktualisiert, wenn sie zur Berechnung einer Adresse genutzt wird. Typischerweisenutzt ein Client eine Kopie wesentlich häufiger, nämlich die seiner primären Datei. Dies führtdazu, dass die andere Kopie sehr häufig falsche Berechnungen liefert und es somit häufigzu Fehlern kommt, wenn ein Server der primären Datei ausfällt. Dieses Problem hat einSA-Mirror nicht, was sich positiv auf dessen Zugriffszeit auswirkt. Die Rolle der Server istebenfalls ein wenig anders. Da es keine Buddys gibt, wird in jedem Schritt die Berechnungder Adresse durchgeführt, so wie sie bei LH* vorgestellt wurde. Dementsprechend wird eineAnfrage an den anderen Mirror geschickt, wenn der korrekte Server gefunden wurde. Splitssind genau wie beim SA-Mirror asynchron.

Erzeugen eines Spares

Angenommen, es fällt der Slot mit der Adresse n1 in Mirror F1 aus und sein Expansionslevelist j1. Um den Spare effizient erzeugen zu können, müssen im Mirror F2 die Slots, in

Page 171: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Skalierbare verteilte Hashingverfahren mit Mirroring 163

denen die Werte für n1 gespeichert sind, gefunden werden. Da beide Mirrors dieselbenHashfunktionen benutzen, gibt es zwei Möglichkeiten:

1. Die gesuchten Werte befinden sich alle in einem Slot. Dann existiert entweder noch keinSlot, für den gilt n1 = n2 oder das Expansionslevel j2 von n2 ist kleiner als j1 undenthält dann möglicherweise mehr Werte als n1.

2. Die gesuchten Werte sind über mehrere Slots verstreut, das bedeutet, dass j2 > j1 gilt.

Um den 1. Fall abzudecken, kann folgende Formel genutzt werden, um den gesuchtenSlot n2 zu finden:

(n2 = n1) ∨ (n2 = n2,1 = n1 − 2j1−1) ∨ (n2 = n2,1,1 = n2,1 − 2j1−2) ∨ ...(n2 = 0)

Für den 2. Fall müssen mehrere Slots durchsucht werden. Dazu muss n1 selber sowie alleSlots im Teilbaum durchsucht werden. m bezeichnet hier alle Slots, die durchsucht werdenmüssen. Folgende Formel drückt dies aus:

(m = n1) ∨ (m = n1,1 = n1 + 2j1−1) ∨ (m = n1,2 = n1 + 2j1) ∨ ...(m = n1 + 2j2−1)∨(m = n1,1,1 = n1,1 + 2j1) ∨ (m = n1,1,2 = n1,1 + 2j1+1)∨ (m = n1,1,1,1 = n1,1,1 + 2j1+1)....

Typischerweise tritt Fall 1 ein, wenn die Slotgröße b2 von F2 größer ist als die von F1

(b1). Der 2. Fall tritt ein, falls b1 > b2 gilt. Für b1 = b2 handelt es sich um einen SA-Mirror.Die durchschnittliche Anzahl r1 der Slots, die in F2 durchsucht werden müssen, um einenSpare in F1 zu erzeugen, ist dabei (vergleiche dazu auch Bild (b.) in Abbildung 2 auf Seite159):

r1 = Max[1, b1b2

]

Güte

Die Kosten zum Suchen und Einfügen von Schlüsseln, unter der Annahme, dass es keineAusfälle gibt, ist genauso wie beim SA-Mirror. Die Kosten zum Splitten erhöhen sich inF2 um (1 + r1), im Vergleich zu den Split-Kosten von F1. Die Kosten, wenn Serverausfällegeschehen, sind höher als beim SA-Mirror. Wenn eine Propagierung im SA-Mirror eineNachricht benötigt, so werden im loosely-coupled SD-Mirror bei einem gleichen F1 bis zuzwei Nachrichten mehr benötigt. Die exakten Werte müssen noch gefunden werden.Das Erzeugen eines Spares kostet (1 + 2 ∗ r1) Nachrichten, unter der Annahme, dass jeweilseine Nachricht zum Allokieren eines Slots und zum Senden der Werte eines Slots ausreichen.Die Wahrscheinlichkeit für einen Ausfall eines Servers in jedem Mirror ist 1

Min[N1,N2]2, ist

also sehr gut skalierbar. Falls dies auftritt, würden die Ausfallkosten im Durchschnitt 0,7* Min[b1, b2] betragen, was um r1 weniger ist als beim SA-Mirror. Somit würden wenigerWerte ausfallen, als beim SA-Mirror

Minimally coupled SD-Mirror

Die Funktionsweise der Clients und der Server sind genauso wie beim loosely-coupled SD-Mirror, ebenso die Berechnung der Adressen. Das Verfahren zur Erzeugung des Spare ist

Page 172: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

164 Marco Müller

allerdings anders, da die Werte, die in den Spare kopiert werden müssen, auf dem Mirrorverteilt sind. Somit müssen alle Server bzw. Slots durchgegangen werden, um alle Wertezu bekommen. Dadurch erhöhen sich die Kosten für das Wiederherstellen. Die Wahrschein-lichkeit, dass bei einem Ausfall eines Slots und seines korrespondierenden Slots im anderenMirror einige Werte nicht mehr verfügbar sind, ist größer als bei den anderen Verfahren,nahezu 1 bei großen Slots. Dafür fehlen weniger Werte und der Speicherbedarf ist gering.Uniformes Hashing vorausgesetzt, ist die Anzahl der fehlenden Werte approximiert 0,7 *Max[ b1

M2, b2

M1], wobei gilt: M = 2i−1 und i ist das Level des jeweiligen Mirror.

4 Fazit

Die hier vorgestellten Schemata eignen sich alle, um Hashing bei einer guten Skalierbar-keit auf verteilten Systemen anzuwenden. Die drei Schemata, die LH* noch um Mirroringerweitern, erhöhen zudem die Verfügbarkeit der gespeicherten Werte. Sie brauchen zwar we-sentlich mehr Speicherplatz als das zugrundeliegende LH*-Schema, allerdings verliert dieserFaktor immer mehr an Bedeutung, da der Preis für Speicher mit jedem Jahr fällt. Im Ge-gensatz dazu erreichen sie weiterhin eine sehr gute Zugriffszeit, die nahe am Optimum liegt.Die einzelnen Unterschiede der drei Verfahren sind in den Anforderungen, die man an dieSchemata stellt, begründet. Es lassen sich nicht alle Anforderungen zusammen umsetzenund jedes Schema setzt andere Anforderungen um. Der SA-Mirror beispielsweise kommtmit weniger Nachrichten bei der Wiederherstellung von ausgefallenen Servern aus, hat abereine größere Ausfallrate wie der loosely-coupled SD-Mirror.Für zukünftige Arbeiten ist eine detailliertere Analyse der Kosten der hier vorgestelltenSchemata wünschenswert, um einen besseren Vergleich machen zu können. Ebenfalls könnteman sich weitere Varianten vorstellen, die beispielsweise ohne einen Koordinator auskom-men, oder die Technik der Spares verfeinern oder austauschen. Ein weiterer Ansatz wäredie Verwendung von mehr als zwei Mirrors, wie es hier die Fall ist, um evtl. eine höhereVerfügbarkeit zu erreichen.

Literaturverzeichnis

Com77. D. Comer & R. Sethi (1977) The complexity of trie index construction, Journal of the ACM, Vol.24, P. 428-440

Enb88. R. J. Enbody & H. C. Du (1988) Dynamic Hashing Schemes, ACM Computer Surveys, Vol. 20, Nr.2, P. 85-113

Lar80. P.A.Larson (1980) Linear Hashing with partial expansions, ACM Transactions on Database Systems,Vol. 7, No. 4, P. 566-587

Lit80. W. Litwin (1980) Linear Hashing : A new tool for file and table adressing, Sixth InternationalConference on Very Large Data Bases, P. 212-223

Lit93. W. Litwin & M.-A. Neimat & D.A. Schneider (1993) LH* - Linear Hashing for Distributed Files,Proceedings of the 1993 ACM SIGMOD international conference on Management of data, P. 327-336

Lit96. W. Litwin & M.-A. Neimat (1996) High-Availability LH* Schemes with Mirroring, Proceedings ofthe First IFCIS International Conference on Cooperative Information Systems, P. 196-207

Page 173: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Framed-Quadtree-Verfahren zur Bestimmung von kürzestenWegen in 2D-Umgebungen

Benjamin Eikel

Universität Paderborn, [email protected]

Zusammenfassung. Das vorgestellte Verfahren berechnet einen kürzesten Weg in einer zweidimensionalenUmgebung zwischen einem Start- und einem Zielpunkt. Hierbei umgeht es Hindernisse in der Umgebung,die beliebig geformt sein können. Die Berechnung ist schneller als die bei Gitter-basierten Verfahren, abermindestens so genau. Wenn ein kürzester Weg existiert, wird er im Gegensatz zu anderen Quadtree-basiertenVerfahren von diesem Verfahren gefunden, auch wenn die Platzierung der Hindernisse ungünstig ist. Es wirdeine neue Datenstruktur, der Framed-Quadtree, vorgestellt, die eine erweiterte Form eines Quadtrees ist.Diese sorgt für die hohe Effizienz und Genauigkeit des Verfahrens.

Schlüsselwörter: Quadtree, kürzester Weg, Wegeberechnung, Roboter

1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1651.2 Bisherige Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

2 Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

2.1 Datenstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1672.2 Wellenausbreitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1672.3 Ablaufplanung für Eintrittspunkte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1692.4 Bestimmung des kürzesten Weges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

3 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

3.1 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1773.2 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

1 Einleitung

1.1 Motivation

Der hier behandelte Algorithmus findet einen kürzesten Weg in einer bekannten, zweidimen-sionalen Umgebung, der an Hindernissen vorbeiführen muss. Solche Wege sind interessantfür die Wegeplanung von Robotern, für GPS-gestützte Navigationssysteme und den Ent-wurf von integrierten Schaltkreisen. Diese Seminararbeit basiert auf dem Artikel von Chen,Szczerba und Uhran, Jr. [1].

Page 174: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

166 Benjamin Eikel

1.2 Bisherige Verfahren

Dieses Verfahrens vereint die Vorteile von früheren Verfahren, die als Datenstruktur Gitteroder Quadtrees benutzen.

Verfahren mit quadratischen Gitterzellen finden kürzeste Pfade. Allerdings sind sie in-effizient, wenn es große Regionen ohne Hindernisse gibt, da alle Zellen in diesen Regionenbetrachtet werden müssen.

Verfahren, die Quadtrees benutzen, sind allgemein effizienter als Gitter-basierte Verfah-ren. Dies liegt an der Eigenschaft des Quadtrees, große Regionen nicht zwangsläufig weiterunterteilen zu müssen, wie dies beim Gitter geschieht. Solche Verfahren finden aber nichtimmer den kürzesten Weg. Wenn ein Hindernis genau auf den Grenzen zweier Quadranteneines Quadtrees wie in Abbildung 1 liegt, liefern die Verfahren keinen optimalen Weg. EineVerschiebung des Quadtrees funktioniert zwar für ein Hindernis, bei mehreren Hindernissenkann dies aber dazu führen, dass nach der Verschiebung ein anderes Hindernis auf einerGrenze liegt. Außerdem ist der Aufwand für die Neuberechnung des Quadtrees hoch.

Abb. 1. Beispiel, bei dem ein Verfahren mit einem Quadtree nicht den kürzesten Weg findet. Pfad A (rot)ist der von dem Verfahren gefundene Weg, Pfad B (blau) ist der kürzeste Weg. Die Zahl in einer Zelle desQuadtrees sind die Kosten, um von dieser Zelle zum Ziel zu gelangen.

Page 175: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Framed-Quadtree-Verfahren zur Bestimmung von kürzesten Wegen 167

2 Algorithmus

Das im Folgenden vorgestellte Verfahren erhält als Eingabe eine Umgebung mit Hindernis-sen. Die Hindernisse können beliebig beschrieben sein (Vielecke, Gitterzellen oder mathema-tische Funktionen). Aus der Umgebung wird die in Abschnitt 2.1 vorgestellte Datenstrukturerstellt. Hierfür muss lediglich geprüft werden, ob ein Teil eines Hindernisses in einem Qua-drat liegt, was durch Schnittberechnungen erfolgen kann.

2.1 Datenstruktur

Wegen der genannten Nachteile der bisherigen Verfahren wird hier eine neue Datenstruk-tur vorgestellt. Diese Datenstruktur heißt Framed-Quadtree und ist eine Erweiterung desQuadtrees. In einem Quadtree repräsentiert ein Knoten einen quadratischen, zweidimen-sionalen Bereich. Im Framed-Quadtree gibt es drei verschiedene Arten von Knoten. FreieKnoten stehen für einen Bereich, in dem sich keine Hindernisse befinden. Bereiche, in denensich Hindernisse befinden, werden durch Hindernis-Knoten modelliert. Diese beiden Kno-tenarten sind Blätter des Framed-Quadtrees. Die dritte Knotenart, der Mischknoten, istein innerer Knoten des Framed-Quadtrees und beinhaltet vier Kindknoten. Er repräsentiertBereiche, die sowohl frei als auch durch Hindernisse blockiert sind. Die Bereiche werdensolange weiter unterteilt, bis ein Knoten entweder nur aus freien oder blockierten Bereichenbesteht und dann zur ersten oder zweiten Knotenart gehört, oder der Knoten die kleins-te erlaubte Größe (Auflösung) erreicht hat, aber noch Teile des Hindernisses enthält. Imletzten Fall wird der Knoten als Hindernis markiert. Falls es sich anstatt um einen Punktro-boter um einen Roboter mit Ausdehnung handelt, sollte die Auflösung so gewählt werden,dass sich der Roboter durch die kleinstmöglichen Bereiche bewegen kann. Also sollte diekleinstmögliche Größe mindestens so groß wie die Ausdehnung des Roboters sein.

Die Blattknoten des Framed-Quadtrees erhalten zusätzlich einen Rahmen aus quadrati-schen Zellen. Diese Zellen haben die kleinste erlaubte Größe (Auflösung). Der Sinn dieserRahmenzellen liegt in der möglichen Durchquerung des Quadranten durch den Roboter.Wenn der Roboter einen freien Quadranten durchqueren soll, sind nur der Eintrittspunktund Austrittspunkt dieses Quadranten wichtig. Beide müssen auf dem Rand des Quadrantenliegen. Ein Pfad durch den Quadranten kann also festgelegt werden, indem eine Rahmen-zelle als Eintrittspunkt und eine als Austrittspunkt bestimmt wird. Abbildung 2 zeigt einenFramed-Quadtree in graphischer Darstellung und als Baum.

Bei der Berechnung des kürzesten Weges in einem Framed-Quadtree muss erwähnt wer-den, dass dieser nur aus stückweise kürzesten Wegen zusammengesetzt ist. Der Weg durcheinen Quadranten ist wirklich ein kürzester Weg. Allerdings kann ein Roboter beim Über-gang von einer Rahmenzelle eines Quadranten in eine Rahmenzelle eines benachbarten Qua-dranten in nur acht Richtungen gehen, da eine Rahmenzellen höchstens so viele benachbarteRahmenzellen haben kann. Der größte Teil des Weges führt allerdings durch freie Quadran-ten, so dass dieses Problem nicht allzu stark ins Gewicht fällt. Weiterhin kann ein nahezukürzester Weg berechnet werden, indem der gefundene Weg geglättet wird.

2.2 Wellenausbreitung

Zur Berechnung des kürzesten Weges wird ein Verfahren angewandt, das eine Welle begin-nend bei der Anfangsposition des Roboters aussendet. Diese Welle weist jeder freien Zelle

Page 176: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

168 Benjamin Eikel

Abb. 2. Die Beispielsumgebung oben links wird in den Framed-Quadtree oben rechts unterteilt. Die Dar-stellung als Baum ist im unteren Teil zu sehen. Abbildung übernommen aus [1].

des Framed-Quadtrees ähnlich einer Breitensuche einen Distanzwert zu. Dieser Distanz-wert beschreibt die Kosten für den Roboter, diese jeweilige Position vom Startpunkt aus zuerreichen. Es wird die L2-Metrik verwendet. Die Lp-Metrik ist definiert als

distp(a, b) := p

√|ax − bx|p + |ay − by|p [2].

Die L2-Metrik beschreibt im zweidimensionalen Raum R2 also die bekannte Distanz zwi-schen zwei Punkten a, b ∈ R2 mit

dist2(a, b) =√

(ax − bx)2 + (ay − by)2 .

Innerhalb eines Quadranten des Framed-Quadtrees breitet sich die Welle von Rahmen-zelle zu Rahmenzelle aus. Hierbei kann die Ausbreitung von einer Rahmenzelle zu einerRahmenzelle innerhalb desselben Quadranten oder zu einem benachbarten Quadranten er-folgen. Eine Rahmenzelle, die durch eine Rahmenzelle eines benachbarten Quadranten er-reicht wird, heißt Eintrittspunkt. Die Wellenausbreitung kann einen Quadranten mehrfacherreichen und daher kann es mehrere Eintrittspunkte geben. Die maximale Anzahl an Ein-trittspunkten ist die Anzahl an Rahmenzellen eines Quadranten.

Die Wellenausbreitung erfolgt nun rundenweise. Eine WFT (wave frontier table) bein-haltet die aktuell durch die Welle erreichten Quadranten, deren Rahmenzellen noch nicht

Page 177: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Framed-Quadtree-Verfahren zur Bestimmung von kürzesten Wegen 169

vollständig abgearbeitet worden sind. Zu Beginn beinhaltet diese Tabelle nur den Quadran-ten mit der Anfangsposition des Roboters. In jeder Runde wird die Welle nun in benachbarteQuadranten ausgebreitet, welche bei Erreichen zu der Tabelle hinzugefügt werden.

Weiterhin wird eine Kontrollvariable wellenwert benutzt, die in jeder Runde um einserhöht wird. In der i-ten Runde ist der Wert also i. Während einer Iteration i breitetsich die Welle in alle Rahmenzellen aller Quadranten aus der WFT aus, zu denen derkürzeste Weg von der Anfangsposition des Roboters bis zu dieser Rahmenzelle eine Distanzd mit i − 1 < d ≤ i hat. In jeder Runde werden die Eintrittspunkte der Quadrantenaus der WFT betrachtet und die Welle von dort in diesen Quadranten oder benachbarteQuadranten ausgebreitet. Wenn alle Rahmenzellen eines Quadranten und alle benachbartenRahmenzellen einen Distanzwert erhalten haben, dann wird der Quadrant aus der WFTentfernt.

Für die Terminierung gibt es zwei Möglichkeiten. Entweder erreicht die Ausbreitungder Welle den Quadranten, der die Zielposition enthält, oder die WFT ist leer. Wenn dieWFT leer ist und die Welle das Ziel nicht erreicht hat, dann kann der Roboter von seinerAnfangsposition die Zielposition nicht erreichen.

2.3 Ablaufplanung für Eintrittspunkte

Sei n die Seitenlänge eines Quadranten gemessen in der Anzahl der Rahmenzellen. Beieinem Gitter-basiertem Verfahren bestünde ein Quadrant aus n × n Zellen und eine Wel-lenausbreitung in diesem Quadranten benötigte O(n2) Schritte. In einem Framed-Quadtreewird der freie Bereich in der Mitte nicht verwendet und die Welle breitet sich nur über dieRahmenzellen aus. Ein Quadrant hat 4 · n− 4 = O(n) Rahmenzellen.

Definition 1. Sei RQ die Menge von Rahmenzellen eines Quadranten Q in einem Framed-Quadtree. Seien a, b ∈ RQ Eintrittspunkte von Q. Sei dist(y, z) eine Funktion, die einerRahmenzelle y ∈ RQ einen Distanzwert zuweist, wenn sich die Welle von Eintrittspunktz ∈ RQ ausgebreitet hat. Sei RQ(a) = y ∈ RQ|dist(y, a) < dist(y, b). Dann dominiertEintrittspunkt a den Eintrittspunkt b über RQ(a).

RQ(a) ist also eine Menge von Rahmenzellen eines Quadranten Q, zu denen sich die Wellevon Eintrittspunkt a mit einem geringeren Distanzwert ausbreitet hat als von Eintrittspunktb aus.

Ein Quadrant kann mehrere Eintrittspunkte enthalten. Von jedem dieser Eintrittspunktewird die Welle weiter ausgebreitet. Im schlimmsten Fall können alle Rahmenzellen auch Ein-trittspunkte sein. Wenn von jedem dieser Eintrittspunkte aus versucht würde, die Welle zuallen anderen Eintrittspunkten auszubreiten, führte dies zu einer Laufzeit von O(n2). Die imFolgenden vorgestellte Ablaufplanung sorgt dafür, dass für die Wellenausbreitung in einemQuadrant eine Laufzeit in O(n) eingehalten wird. Dafür ist die Beobachtung wichtig, dasseinige Eintrittspunkte nicht betrachtet werden müssen, da sie von anderen Eintrittspunktendominiert werden.

Wenn während einer Runde mehrere Eintrittspunkte derselben Rahmenzelle einen Di-stanzwert zuweisen wollen, dann wird der Rahmenzelle der niedrigste Wert zugewiesen.

Bei den zwei kleinstmöglichen Quadranten mit einer Rahmenzelle oder vier Rahmenzel-len, bei denen kein freier Bereich in der Mitte existiert, wird die Welle zu allen angrenzenden

Page 178: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

170 Benjamin Eikel

Abb. 3. Aufteilung der Rahmenzellen eines Quadranten in vier Seiten.

Rahmenzellen ausgebreitet. Bei diesen Quadranten kann dies in O(1) Zeit durchgeführt wer-den.

Vorerst wird nur noch der Fall betrachtet, dass Eintrittspunkte an einer Seite eines Qua-dranten auftreten. Hierfür werden die Rahmenzellen eines Quadranten wie in Abbildung 3zu sehen aufgeteilt. Wenn eine Ablaufplanung von Eintrittspunkten für eine Seite gelingt,so kann diese für die anderen drei Seiten benutzt werden, indem der Quadrant um 90°, 180°und 270° gedreht betrachtet wird.

Definition 2. Sei RQ die Menge von Rahmenzellen einer bestimmten Seite j eines Qua-dranten Q in einem Framed-Quadtree. Ein Eintrittspunkt a von Q wird blockiert auf Seitej nach Runde iT genannt, wenn es andere Eintrittspunkte von Q gibt, die a über RQ nachRunde iT dominieren. Das bedeutet, dass a nach Runde iT weiteren Rahmenzellen auf Seitej keinen Distanzwert mehr zuweisen kann.

Jeder Eintrittspunkt erhält vier binäre Blockierungsmarkierungen. Diese zeigen an, obder Eintrittspunkt für die jeweilige Seite des Quadranten blockiert ist. In jeder Runde iwerden die Eintrittspunkte überprüft, die mindestens für eine Seite nicht blockiert sindund es wird versucht, den Rahmenzellen auf den nicht blockierten Seite des QuadrantenDistanzwerte von diesen Eintrittspunkten aus zuzuweisen.

Die Eintrittspunkte auf Seite 1 können den Rahmenzellen auf vier Seiten Distanzwertezuweisen. Die Ablaufplanung muss vier Fälle unterscheiden, die den vier Seiten entsprechen.Diese vier Fälle werden im Folgenden einzeln abgehandelt. Hierfür sei Q der betrachteteQuadrant und i die Runde, in welcher der erste Eintrittspunkt Seite 1 von Q erreicht. DerQuadrant Q hat also vor Runde i keine Eintrittspunkte. Es wird gezeigt, wie die notwendigenDatenstrukturen für Runde i aufgebaut werden und wie eine Aktualisierung für die folgendenRunden erfolgt.

Page 179: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Framed-Quadtree-Verfahren zur Bestimmung von kürzesten Wegen 171

Seite 1

In Runde i erreichen k ≥ 1 Eintrittspunkte die Seite 1. Diese k Eintrittspunkte werden ineine Liste eingefügt. In jeder Runde wird diese Liste durchlaufen und die Eintrittspunkteversuchen, die Welle nach links und nach rechts auszubreiten. Falls beide Seiten des Ein-trittspunktes durch kleinere Distanzwerte blockiert sind oder der Rand des Quadrantenerreicht ist, so ist dieser Eintrittspunkt blockiert und wird aus der Liste entfernt. Nachjeder Runde enthält die Liste dann nur nicht blockierte Eintrittspunkte. Falls in späterenRunden neue Eintrittspunkte die Seite 1 erreichen, werden sie an den Anfang der Liste ein-gefügt. Den Rahmenzellen wird nach jeder Runde, wie bereits oben erwähnt, der kleinsteDistanzwert zugewiesen.

Lemma 1. Sei Q ein n × n Quadrant in einem Framed-Quadtree. Die Wellenausbreitungdurch die Eintrittspunkte kann allen Rahmenzellen auf Seite 1 von Q Distanzwerte in Lauf-zeit O(n) zuweisen. Die Laufzeit ist unabhängig von der Anzahl von Eintrittspunkten.

Beweis. Die Eintrittspunkte auf Seite 1 können die Welle zu höchstens einer Rahmenzelleauf der rechten und einer auf der linken ausbreiten. Daher kann zu einer Rahmenzelle b aufSeite 1 die Welle von höchstens zwei Eintrittspunkten ausgebreitet werden. Der Rahmenzellewird der niedrigere Distanzwert zugewiesen. In jeder Runde wird die Welle von einem Ein-trittspunkt zu mindestens einer der O(n) Rahmenzellen ausgebreitet oder der Eintrittspunktwird aus der Liste entfernt. Jeder dieser zwei Fälle benötigt konstante Laufzeit. Da in jederRunde mindestens einer Rahmenzelle ein Distanzwert zugewiesen wird, beträgt die Laufzeitfür Seite 1 O(n).

Seite 2

In diesem Fall wird die Wellenausbreitung von Eintrittspunkten auf Seite 1 zu Rahmenzellenauf Seite 2 betrachtet. Es wird wieder angenommen, dass k ≥ 1 Eintrittspunkte in Runde idas erste Mal auf Seite 1 auftreten. Die Eintrittspunkte werden in eine Liste eingefügt. Weildiese Eintrittspunkte in Runde i auftreten, müssen sie einen Distanzwert zwischen i−1 undi haben. Welche Rahmenzellen auf Seite 2 von Eintrittspunkten auf Seite 1 Distanzwerteerhalten, hängt von der Entfernung zwischen den Rahmenzellen und den Eintrittspunktenab. Daher wird die Liste mit den k Eintrittspunkten nach x-Koordinate sortiert (Festlegungder x-Achse in Abbildung 3). Da die Koordinaten ganzzahlige Werte in einem bekanntenBereich sind, kann eine Sortierung mit dem Bucket-Sort-Algorithmus [3] in linearer Zeiterfolgen.

Lemma 2. Seien a und b zwei verschiedene Eintrittspunkte auf Seite 1 eines Quadranten Qin einem Framed-Quadtree. Sei adw der Distanzwert und ax die x-Koordinate von a. Wennadw ≤ bdw und ax < bx, dann wird b von a auf Seite 2 dominiert und b muss nicht weiterbetrachtet werden.

Beweis. Sei z eine beliebige Rahmenzelle auf Seite 2, der sowohl a als auch b einen Distanz-wert zuweisen wollen. Wenn der Distanzwert von z vom Eintrittspunkt a zugewiesen wird,dann gilt zdw = adw + dist2(a, z). Wenn ax < bx gilt, dann gilt auch dist2(a, z) < dist2(b, z)für jede Rahmenzelle z auf Seite 2. Eine Rahmenzelle erhält von den Eintrittspunkten aund b den kleineren Distanzwert zdw = min adw + dist2(a, z), bdw + dist2(b, z). Wenn nun

Page 180: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

172 Benjamin Eikel

adw ≤ bdw und ax < bx, dann gibt es keine Rahmenzelle auf Seite 2, die von b einen Di-stanzwert erhalten kann, der kleiner ist als der von a. Daher dominiert a den Eintrittspunktb über alle Rahmenzellen auf Seite 2 und b muss nicht weiter betrachtet werden.

Aus der sortierten Liste mit k Eintrittspunkten können nun die Punkte extrahiert werden,die nicht wie in Lemma 2 beschrieben nicht weiter betrachtet werden müssen. Diese neueListe kann durch eine Variante der „dominating maxima of planar points“ [1] in Zeit O(k) =O(n) berechnet werden. Die auf Seite 2 nicht blockierten Eintrittspunkte dieser Liste müssendie Welle nun zu den Rahmenzellen auf Seite 2 ausbreiten. Dies muss erfolgen, ohne dassjeder Eintrittspunkte eine Ausbreitung zu jeder der Rahmenzellen versucht, da dies zu einerzu hohen Laufzeit führt. Daher werden hierzu die Voronoi-Domänen auf Seite 2 berechnet.

Definition 3. Die Voronoi-Domäne V Di(a) auf Seite i eines Eintrittspunktes a auf Seite1 ist ein Bereich von Rahmenzellen auf Seite i, in dem a alle anderen Eintrittspunkte aufSeite 1 dominiert.

Wenn die Voronoi-Domäne auf Seite 2 eines Eintrittspunktes die leere Menge ∅ ist, dannist er blockiert auf Seite 2 und kann aus der Liste der nicht blockierten Eintrittspunkteentfernt werden. Die nicht blockierten Eintrittspunkte p1, p2, . . . , pk′ mit k′ ≤ k befindensich absteigend nach x-Koordinate sortiert in der Liste (p1x > p2x > . . . > pk′x). p1 istder Eintrittspunkt, der am weitesten rechts auf Seite 1 liegt. Die Liste wird nun, beginnendmit p1, durchlaufen und die folgenden Datenstrukturen werden für die bisher betrachteten jEintrittspunkte p1, p2, . . . , pj verwendet, bevor pj+1 betrachtet wird. Erstens die Liste Lj ⊆p1, p2, . . . , pj. Sie enthält einen Eintrittspunkt pγ ∈ p1, p2, . . . , pj genau dann, wenn pγ

nicht von einem Eintrittspunkt aus p1, p2, . . . , pj dominiert wird auf Seite 2. Zweitens dieVoronoi-Domänen auf Seite 2 der Eintrittspunkte aus Lj . Die Liste wird durchlaufen, bis alleVoronoi-Domänen der Eintrittspunkte aus Lk′ berechnet wurden. Zu Beginn kann L1 undV D2(p1) leicht berechnet werden, denn L1 = p1 und V D2(p1) enthält alle Rahmenzellender Seite 2. Nun sollen die Voronoi-Domänen der Eintrittspunkte in Lj+1 aus denen derEintrittspunkte in Lj berechnet werden. Der erste Eintrag in der Liste Lj sei der zuletzthinzugefügte Eintrittspunkt pj′ mit 1 ≤ j′ ≤ j. Es werden jetzt nur die Voronoi-Domänenauf Seite 2 der Eintrittspunkte pj+1 und p′j berechnet. Dies geschieht durch Berechnungder gemeinsamen Grenze zwischen den beiden Voronoi-Domänen. Sei die Rahmenzelle zdiese gemeinsame Grenze auf Seite 2 und seien a, b zwei Eintrittspunkte auf Seite 1. Fürdie Rahmenzelle z auf Seite 2 gilt zx = 0 und für die zwei Eintrittspunkte auf Seite 1 giltay = by = 0. Es muss gelten:

zdw = zdw

⇒ adw + dist2(a, z) = bdw + dist2(b, z) (i)

⇒√

(ax − zx)2 + (ay − zy)2 + adw =√

(bx − zx)2 + (by − zy)2 + bdw

⇒√

a2x + z2

y + adw =√

b2x + z2

y + bdw

Die Werte der Eintrittspunkte ax, adw, bx, bdw sind bekannt und die Gleichung kann für zy

gelöst werden. Bei zwei Lösungen wird nur die positive Lösung benötigt, denn Rahmen-zellen mit negativer y-Koordinate sind nicht vorhanden. Der Wert von zy bestimmt eine

Page 181: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Framed-Quadtree-Verfahren zur Bestimmung von kürzesten Wegen 173

Rahmenzelle z auf Seite 2, welche die gemeinsame Grenze der Voronoi-Domänen von a undb ist.

Jede Voronoi-Domäne auf Seite 2 kann durch zwei begrenzende Rahmenzellen festge-legt werden, eine obere und eine untere Begrenzungszelle. Die untere Begrenzungszellevon V D2(pj′) ist die Rahmenzelle in der unteren, linken Ecke des Quadranten, weil diex-Koordinate der nicht blockierten Eintrittspunkte mit steigendem j abnimmt und pj′ derzuletzt eingefügte Eintrittspunkt ist. Da pj′ , um überhaupt eingefügt zu werden, mindestenseine Rahmenzelle dominieren muss, muss die Voronoi-Domäne mindestens aus der unterstenRahmenzelle auf Seite 2 bestehen. Die Rahmenzelle auf der Grenze zwischen den Voronoi-Domänen gehöre ohne Beschränkung der Allgemeinheit zur Voronoi-Domäne von pj′ . DieListe der Eintrittspunkte Lj+1 und deren Voronoi-Domänen können dann wie folgt berech-net werden.

Fall 1: z ist die Rahmenzelle in der unteren, linken Ecke des Quadranten. Da die Grenzez per Definition zu pj′ gehört, erhält pj+1 keine Voronoi-Domäne auf Seite 2 und wirdnicht zu Lj hinzugefügt, weshalb Lj+1 = Lj gilt. Die Voronoi-Domänen bleiben alsounverändert. Der nächste Eintrittspunkt pj+2 kann betrachtet werden.

Fall 2: zy > 0 und ist nicht oberhalb der oberen Begrenzungszelle der Voronoi-DomäneV D2(pj′). Dann ist die neue untere Begrenzungszelle der Voronoi-Domäne V D2(pj′) dieRahmenzelle z. Die Rahmenzelle direkt unterhalb von z ist die obere Begrenzungszellevon V D2(pj+1) und die Rahmenzelle in der unteren, linken Ecke wird die untere Be-grenzungszelle. Die Voronoi-Domäne von V D2(pj′) wird also verkleinert und V D2(pj+1)erhält die frei gewordenen Rahmenzellen wie in Abbildung 4 zu sehen. Der Eintritts-punkt pj+1 wird zu Lj hinzugefügt; Lj+1 = Lj ∪pj+1. Die Betrachtung kann mit pj+2

fortgesetzt werden.Fall 3: Wenn z oberhalb der oberen Begrenzungszelle der Voronoi-Domäne V D2(pj′) ist,

dann wird pj′ von pj+1 dominiert auf Seite 2 und pj′ wird aus Lj entfernt. Der nächsteEintrittspunkt in Lj sei pj′′ . Die untere Begrenzungszelle der Voronoi-Domäne V D2(pj′′)sei dann nun die untere, linke Rahmenzelle des Quadranten. Der gesamte Vorgang wirdnun für pj+1 und pj′′ anstelle von pj′ wiederholt. Wenn der Vorgang schlussendlichterminiert und pj+1 in Lj+1 enthalten ist, kann mit pj+2 fortgefahren werden.

Die Berechnung der begrenzenden Rahmenzelle z kann in konstanter Zeit erfolgen. In Fall1 geschieht nichts, im zweiten Fall wird pj+1 zu Lj+1 hinzugefügt und im dritten Fall wirdein Eintrittspunkt aus Lj entfernt. Alle drei Operationen benötigen konstante Zeit. In einerRunde i werden zuerst die Eintrittspunkte sortiert, dann die blockierten Eintrittspunkteentfernt und anschließend die Liste der Eintrittspunkte Lk′ durchlaufen, um die Voronoi-Domänen auf Seite 2 zu berechnen. Die ersten beiden Operationen benötigen O(n) Zeit, derDurchlauf der Liste mit der Aktualisierung der Voronoi-Domänen benötigt O(k) Zeit. Wennalso k neue Eintrittspunkte in einer Runde i auftreten, ist die Laufzeit zur VerarbeitungO(n + k) = O(n).

Nachdem in Runde i die ersten k Eintrittspunkte aufgetreten sind, können in folgendenRunden i + j, j ≥ 1 neue Eintrittspunkte auf Seite 1 auftreten. Die bestehenden Daten-strukturen können dann aktualisiert werden. Angenommen in Runde i + j treten m neueEintrittspunkte auf.

Page 182: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

174 Benjamin Eikel

Abb. 4. Zweiter Fall: Neue Voronoi-Domäne für pj+1 durch Verkleinerung der Voronoi-Domäne von pj′ .

Lemma 3. Sei b der am weitesten links liegende Eintrittspunkt auf Seite 1 in oder vorRunde i + j − 1, j ≥ 1 in einem Quadranten eines Framed-Quadtrees. Ein in Runde i + jauftretender Eintrittspunkt e auf Seite 1 wird dominiert auf Seite 2 wenn ex > bx.

Beweis. Da b schon vor Runde i + j aufgetreten ist und e erst in Runde i + j auftritt, mussfür die Distanzwerte edw > bdw gelten. Lemma 2 besagt, dass e von b dominiert wird, wennbdw ≤ edw und bx < ex. Wenn also auch ex > bx gilt, dominiert b den Eintrittspunkt ebezüglich Seite 2.

Sei b der Eintrittspunkt auf Seite 1, der vor Runde i + j aufgetreten ist und der am wei-testen links liegt. Aufgrund des Lemmas 3 können in einer Runde alle Eintrittspunkte, dierechts von b auftreten, sofort verworfen werden. Sei Ei+j die Menge der anderen Eintritts-punkte, also diejenigen, die links von b aufgetreten sind. Sei b′ ∈ Ei+j der Eintrittspunkt,der am weitesten links liegt. Mit einem Bucket-Sort in dem Intervall b′x bis bx können dieEintrittspunkte aus Ei+j in Laufzeit O(bx − b′x + 1) sortiert werden. Die nach Lemma 2dominierten Eintrittspunkte können dann entfernt werden, was Zeit O(m) benötigt. Diedann entstehende Menge sei E′

i+j . Für die Eintrittspunkte aus dieser Menge müssen nundie vor dieser Runde berechneten Voronoi-Domänen aktualisiert werden. Hierfür kann dasoben beschriebene Verfahren für Runde i verwendet werden, mit dem man die Menge E′

i+j

durchläuft. Die Operation für jeden Eintrag der Menge benötigt konstante Laufzeit, diegesamte Aktualisierung benötigt Laufzeit O(m).

In jeder Runde der Wellenausbreitung ab Runde i + 1 versucht jeder Eintrittspunkt aufSeite 1 den Rahmenzellen auf Seite 2, die in der eigenen Voronoi-Domäne sind, einen Distanz-wert zuzuweisen. Dies kann nur erfolgen, wenn der zuzuweisende Distanzwert kleiner odergleich wellenwert ist. Das Verfahren wird so lange fortgesetzt, bis die obere Begrenzungszel-le einer Voronoi-Domäne einen Distanzwert erhalten hat. Denn dann hat der Eintrittspunktallen Rahmenzellen, über die er dominiert, einen Distanzwert zugewiesen und ist danachblockiert für Seite 2. Er kann dann aus der Liste der Eintrittspunkte entfernt werden. Wenndiese Liste leer ist, endet das Verfahren.

Page 183: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Framed-Quadtree-Verfahren zur Bestimmung von kürzesten Wegen 175

Lemma 4. Sei Q ein n×n Quadrant in einem Framed-Quadtree. Die Welle kann durch dieEintrittspunkte auf Seite 1 zu den Rahmenzellen auf Seite 2 in Laufzeit O(n), unabhängigvon der Anzahl von Eintrittspunkten, durchgeführt werden.

Beweis. Die Voronoi-Domänen für mehrere Eintrittspunkte, die in Runde i auftreten, kön-nen in Zeit O(n) berechnet werden. In allen darauffolgenden Runden i+j, j ≥ 1 benötigt derBucket-Sort-Algorithmus O(n) Zeit, denn jeder Eintrittspunkt auf Seite 1 kann höchstensein Mal in allen Runden neu auftreten und sortiert werden müssen. Die gesamte Laufzeitder Aktualisierung der Voronoi-Domänen ist linear in der Anzahl N ≤ n der auftretendenEintrittspunkte, denn die Operationen für die Aktualisierung der Voronoi-Domäne für einenEintrittspunkt ist konstant. Da jeder Eintrittspunkt nur Rahmenzellen aus seiner Voronoi-Domäne Distanzwerte zuweisen kann und diese Voronoi-Domänen in Zeit O(n) verwaltetwerden können, ist die Laufzeit für die Wellenausbreitung O(n).

Seite 3

Um die Welle von Eintrittspunkten auf Seite 1 zu Rahmenzellen auf Seite 3 auszubreiten,kann das Verfahren für Seite 2 in gespiegelter Form benutzt werden.

Seite 4

Bei der Ablaufplanung für Seite 4 ist es problematisch, dass hier nicht wie bei Seite 2Eintrittspunkte aufgrund ihrer Lage auf Seite 1 direkt als blockiert ausgeschlossen werdenkönnen. Doch es kann ein Ausschluss von Eintrittspunkten auf Seite 1 anhand des Zeitpunktsihres Auftretens durchgeführt werden.

Angenommen in einem n × n Quadrant Q in einem Framed-Quadtree treten die erstenEintrittspunkte auf Seite 1 in Runde i auf. Sei t1 der Wert von wellenwert, wenn dieEintrittspunkte auftreten (hier t1 = i). Angenommen während der Runden t1 bis dt1 +

√2 ·

n − ne treten k ≥ 1 Eintrittspunkte auf Seite 1 auf. Diese werden beim Auftreten in eineListe eingefügt.

Lemma 5. Jeder Eintrittspunkt auf Seite 1, der nach Runde dt1 +√

2 ·n−ne auftritt, kannkeine Voronoi-Domäne auf Seite 4 erhalten und muss daher nicht weiter betrachtet werden.

Beweis. Sei x der erste Eintrittspunkt auf Seite 1 in Runde t1. Wenn keine anderen Ein-trittspunkte auftreten, dann wäre die Zeit, um von x allen Rahmenzellen auf Seite 4 einenDistanzwert zuzuweisen gleich der Zeit, um die Rahmenzelle zu erreichen, die am weitestenvon x entfernt ist. Im schlimmsten Fall, wenn x eine Rahmenzelle in der Ecke des Qua-dranten ist, ist die am weitesten entfernte Zelle die diagonal gegenüberliegende Rahmenzelleauf Seite 4. In Abbildung 5 ist dieser schlimmste Fall zu sehen und die Zelle auf Seite 4mit z bezeichnet. Um die Entfernung zu dieser Zelle zu überbrücken, werden

√2 ·n Runden

benötigt. Also wird diese Zelle in Runde t1 +√

2 · n erreicht. Falls andere Eintrittspunkteauf Seite 1 auftreten, können diese ebenfalls versuchen, den Rahmenzellen auf Seite 4 einenDistanzwert zuzuweisen. Die minimal benötigte Anzahl von Runden hierfür ist n, mit der diedirekt oberhalb liegende Rahmenzelle erreicht werden kann. Daher kann ein Eintrittspunkty, der in Runde t2 mit t2 > t1 +

√2 ·n−n auftritt, keine Rahmenzelle auf Seite 4 vor Runde

t2 + n erreichen. Aber zu diesem Zeitpunkt sind bereits alle Rahmenzellen auf Seite 4 durchden Eintrittspunkt x erreicht worden. Daher ist y blockiert und muss nicht mehr betrachtetwerden.

Page 184: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

176 Benjamin Eikel

Abb. 5. Die Wellenausbreitung von x nach z benötigt√

2 ·n Schritte, die von y nach z benötigt n Schritte.

In Runde dt1 +√

2 ·n−ne werden die k Eintrittspunkte nun nach ihren x-Koordinaten miteinem Bucket-Sort sortiert, so wie dies bei der Ablaufplanung für Seite 2 der Fall war. Fürdie Berechnung der Voronoi-Domänen auf Seite 4 wird wieder eine Rahmenzelle z benötigt,die auf der Grenze zwischen zwei Voronoi-Domänen von Eintrittspunkten a und b liegt. DieKoordinaten ay und by sind gleich null und zy ist gleich der Seitenlänge des Quadranten.Setzt man das in Gleichung (i) ein, erhält man die gesuchte Rahmenzelle z durch Auflösender folgenden Gleichung zur x-Koordinate zx.√

(ax − zx)2 + z2y + adw =

√(bx − zx)2 + z2

y + bdw

Nun wird das gleiche Verfahren verwendet wie für Seite 2. Die Liste der Eintrittspunkte wirddurchlaufen und die Voronoi-Domänen werden berechnet und in den darauffolgenden Run-den aktualisiert. Dann weisen die Eintrittspunkte den Rahmenzelle in ihrer Voronoi-Domänedie Distanzwerte zu, bis alle Rahmenzellen einen Wert erhalten und alle Eintrittspunkte blo-ckiert sind.

Lemma 6. Sei Q ein n × n Quadrant in einem Framed-Quadtree. Die Eintrittspunkte aufSeite 1 können in Zeit O(n) allen Rahmenzellen auf Seite 4 einen Distanzwert zuordnen.Die Zeit ist nicht abhängig von der Anzahl der Eintrittspunkte.

Beweis. Es gibt maximal n Eintrittspunkte auf Seite 1, die den n Rahmenzellen auf Seite4 einen Distanzwert zuordnen wollen. Die Voronoi-Domänen der Eintrittspunkte können inO(n) Zeit berechnet werden. Jeder Eintrittspunkt weist nur Rahmenzellen in seiner Voronoi-Domäne einen Distanzwert zu. Also ist die gesamte Laufzeit wie für Seite 2 O(n).

Gesamter Quadrant

Lemma 7. Sei Q ein n × n Quadrant in einem Framed-Quadtree. Unabhängig von derAnzahl der Eintrittspunkte in Q benötigt die Wellenausbreitung über Q Laufzeit O(n).

Page 185: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Framed-Quadtree-Verfahren zur Bestimmung von kürzesten Wegen 177

Beweis. Wenn der Quadrant entweder eine oder vier Rahmenzellen besitzt, kann die Wellewie bereits oben beschrieben in konstanter Zeit ausgebreitet werden. Bei größeren Quadran-ten kann die Welle über die vier Seiten in linearer Zeit ausgebreitet werden (Lemmata 1,4, 6). Während jeder Runde der Wellenausbreitung wird jede Seite eines Quadranten ein-mal als Seite 1 angesehen und die Wellenausbreitung von dieser Seite zu den vier Seitendurchgeführt. Den Rahmenzellen wird der kleinste der vier Werte zugewiesen. Hier ergibtsich also eine Laufzeit von O(4 · n) = O(n).

Die Korrektheit dieses Algorithmus kann genauso gezeigt werden wie bei Gitter-basiertenAlgorithmen. Der Beweis wird hier nicht durchgeführt.

2.4 Bestimmung des kürzesten Weges

Während der Durchführung der Wellenausbreitung werden von den Eintrittspunkten denRahmenzellen Distanzwerte zugewiesen. Sobald eine Rahmenzelle r ihren endgültigen Di-stanzwert von einem Eintrittspunkt e erhält, wird ein Zeiger von r auf e gesetzt. Wenn derQuadrant mit der Zielposition gefunden wird, können diese Zeiger zurück verfolgt werden.Dies ergibt einen kürzesten Weg vom Ziel zur Anfangsposition des Roboters. Wenn mandiesen Weg umgekehrt, erhält man den kürzesten Weg vom Roboter zum Ziel.

Theorem 1. Sei T ein Framed-Quadtree und Ta ⊂ T enthalte alle Quadranten, die Blät-ter des Baums sind und keine Hindernisse enthalten. Für einen Quadranten Q ∈ Ta, seiu(Q) der Umfang von Q. u(Q) entspricht also der Anzahl an Rahmenzellen in Q. Das hiervorgestellte Verfahren berechnet einen kürzesten Weg in Laufzeit O(U) +O(TNachbar). Hier-bei ist U =

∑i∈Ta

u(i) und TNachbar ist die Zeit zur Aktualisierung der Nachbar-Zeiger derQuadranten in T .

Beweis. Die Welle breitet sich nur durch freie Quadranten aus und sobald ein Quadrant voll-ständig abgearbeitet wurde, wird er nicht noch einmal besucht. Durch jeden Quadrant kannlaut Lemma 7 die Welle in linearer Zeit bezogen auf den Umfang des Quadranten ausgebrei-tet werden. Im schlimmsten Fall wird jeder freie Quadrant einmal besucht, weshalb sich dererste Summand in Abhängigkeit von der Summe des Umfangs aller Quadranten ergibt. DieAktualisierung der Nachbar-Zeiger erfolgt durch Suche des entsprechenden Nachbarquadran-ten im Baum, woraus sich der zweite Summand ergibt. Dieser ist linear in der Auflösungdes Framed-Quadtrees und in den meisten Fällen sogar konstant. Man kann U auch ansehenals die Gesamtanzahl von Rahmenzellen, die in allen freien Quadranten enthalten sind.

3 Zusammenfassung

3.1 Fazit

Das hier vorgestellte Verfahren spielt seine Vorteile hauptsächlich in Umgebungen aus, in de-nen große, freie Bereiche vorhanden sind. In diesen Fällen ist es weitaus schneller, als Gitter-basierte Verfahren, die solche Bereiche nicht zusammenfassen können. In Gitter-basiertenVerfahren kann der Roboter bei einer Bewegung von einer Gitterzelle zur nächsten auchnur aus acht verschiedenen Richtungen wählen. In dem hier gezeigten Verfahren werden ingroßen, freien Bereichen echte kürzeste Wege mit beliebigen Richtungen benutzt. Weitherhinbesitzt es durch Einführung der neuen Datenstruktur Framed-Quadtree nicht den Nachteil,

Page 186: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

178 Benjamin Eikel

dass es den kürzesten Weg in einigen Fällen nicht findet, wie es bei anderen Quadtree-basierten Verfahren vorkommen kann. Es ist aber durch die aufwändigeren Verfahren zurWellenausbreitung und Ablaufplanung rechenintensiver als einfache Quadtree-basierte Ver-fahren.

Die Laufzeit in Abhängigkeit von der Anzahl an Rahmenzellen in allen Quadranten hatauch Nachteile. Falls die Hindernisse in der Umgebung so platziert sind, dass der Framed-Quadtree nur aus Quadranten kleinster Größe besteht, dann gibt es so viele Rahmenzellenwie es bei einem Gitter-basierten Verfahren Gitterzellen gäbe. Der Vorteil in der Laufzeitgegenüber Gitter-basierten Verfahren verschwindet dann und möglicherweise wird das Ver-fahren aufgrund des Verwaltungsaufwandes sogar langsamer als diese Verfahren.

Das Verfahren wurde von den Autoren des zugrundeliegenden Artikels implementiert.Die Abbildungen 6 und 7 zeigen zwei Ergebnisse bei der Suche eines kürzesten Weges ineiner Beispielumgebung. In der Umgebung in Abbildung 7 müsste ein Gitter-basiertes Ver-fahren ungefähr 14000 freie Gitterzellen durchsuchen und das Framed-Quadtree-Verfahrendurchsucht hier nur etwa 4250 Rahmenzellen. Dies entspricht einer Ersparnis von etwa zweiDritteln.

3.2 Ausblick

Ein Vorteil des Framed-Quadtree-Verfahrens ist die Möglichkeit zur Erweiterung. Es könnenbeispielsweise mehrere Ziele in die Umgebung eingefügt werden. Durch die Wellenausbrei-tung können mehrere Ziele erreicht werden, wenn das Verfahren nicht nach dem Erreichendes ersten Ziels angehalten wird. Sind alle oder eine vorgegebene Anzahl von Zielen gefun-den worden, kann der Roboter anhand der Distanzwerte der Ziele, die für ihn die Kostendarstellen, um dieses Ziel zu erreichen, entscheiden, welches Ziel er anfährt. Hier könntenfür die Ziele verschiedene Prioritäten gesetzt und anhand derer eine Entscheidung getroffenwerden.

Eine weitere Erweiterung ist die Verwendung des Verfahrens im dreidimensionalen Raum.Hierfür muss das dreidimensionale Pendant zum Quadtree, der Octree, zur neuen Da-tenstruktur Framed-Octree erweitert werden. Allerdings ist die Berechnung der Voronoi-Domänen schwieriger als im zweidimensionalen Raum.

Literaturverzeichnis

1. Chen DZ, Szczerba RJ, Uhran, Jr. JJ (1997) A framed-quadtree approach for determining euclideanshortest paths in a 2-d environment. IEEE Transactions on Robotics and Automation 13(5):668–681

2. de Berg M, van Kreveld M, Overmars M, Schwarzkopf O (2000) Computational Geometry: Algorithmsand Applications, Zweite Ausgabe. Springer-Verlag, Berlin Heidelberg New York

3. Cormen TH, Leiserson CE, Rivest RL, Stein C (2001) Introduction to algorithms, Zweite Ausgabe.MIT Press, Cambridge, Massachusetts

Page 187: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Framed-Quadtree-Verfahren zur Bestimmung von kürzesten Wegen 179

Abb. 6. Framed-Quadtree mit einer Auflösung von 64×64 und zufälligen Hindernissen. Die schwarze Liniezeigt den stückweise kürzesten Pfad. Abbildung übernommen aus [1].

Abb. 7. Framed-Quadtree mit einer Auflösung von 128 × 128 und zufälligen Hindernissen. Die schwarzeLinie zeigt den stückweise kürzesten Pfad. Abbildung übernommen aus [1].

Page 188: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide
Page 189: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Konstruktion von geometrischen Spannern mit geringemDurchmesser

Philipp Wissneth

Universität Paderborn [email protected]

Zusammenfassung. Geometrische Spanner werden zur Approximation vollständiger euklidischer Grapheneingesetzt. Es handelt sich hierbei um Graphen, deren Knotenmenge einer Punktmenge im Rd entsprichtund deren Kanten so definiert sind, dass der kürzeste Pfad zwischen zwei Knoten p und q höchstens um einenkonstanten Faktor größer ist als der euklidische Abstand zwischen den beiden Punkten. Der Durchmessereines Spanners ist definiert als die maximale Anzahl Kanten über alle Pfade mit minimaler Anzahl Kantenvon jedem beliebigen Punkt p zu jedem beliebigen Punkt q.

In dieser Arbeit wird eine randomisierte Datenstruktur für einen geometrischen Spanner vorgestellt, wel-che, bezogen auf eine Menge von n Punkten, mit hoher Wahrscheinlichkeit einen Durchmesser von O(log n)hat. Des Weiteren wird ein Algorithmus zur Beantwortung von Pfadanfragen auf dieser Datenstruktur vor-gestellt und analysiert.

1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

2 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182

2.1 Grundlegende Definitionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1822.2 Θ-Graphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1822.3 Algorithmische Konstruktion von Θ-Graphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1842.4 Bemerkungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

3 Der Skip List Spanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188

3.1 Konstruktion des Skip List Spanners . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1883.2 Ein Algorithmus zur Konstruktion von t-Spanner Pfaden . . . . . . . . . . . . . . . . . . . . . . 189

4 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

1 Einleitung

Geometrische Spanner dienen der Approximation vollständiger euklidischer Graphen. Da-bei soll sich die Summe der einzelnen euklidischen Abstände der Kanten in einem Pfad voneinem Punkt p zu einem Punkt q höchstens um einen konstanten Faktor gegenüber demeuklidischen Abstand zwischen p und q unterscheiden. In dieser Ausarbeitung wird einerandomisierte Datenstruktur vorgestellt, welche mit hoher Wahrscheinlichkeit einen gerin-gen Durchmesser besitzt. D.h., die Anzahl der Kanten in einem Pfad von einem beliebigenPunkt p zu einem beliebigen Punkt q soll möglichst gering sein ohne dabei die Spannerei-genschaft zu verletzen. Des Weiteren wird ein Algorithmus vorgestellt, mit dessen Hilfe es

Page 190: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

182 Philipp Wissneth

möglich ist, einen Pfad zwischen zwei beliebigen Punkten in der vorgestellten Datenstrukturzu bestimmen. Sowohl die Datenstruktur als auch der Algorithmus wurden von Arya, Mountund Smid in [4] eingeführt. Zur effizienten Konstruktion solcher Datenstrukturen wird ei-ne Technik vorgestellt, welche auf der Beantwortung von orthogonalen Bereichsanfragenbasiert.

2 Grundlagen

In diesem Kapitel werden für die Konstruktion des Algorithmus zur Beantwortung vonPfadanfragen nötige Datenstrukturen vorgestellt. Zunächst werden der Begriff t-Spannerdefiniert und einige Eigenschaften von Spannern vorgestellt. Im Anschluss wird eine zurKonstruktion von t-Spannern eingesetzte Datenstruktur, der Θ-Graph, eingeführt. Zur effi-zienten Konstruktion von Θ-Graphen wird eine Datenstruktur zur Beantwortung orthogo-naler Bereichsanfragen verwendet.

2.1 Grundlegende Definitionen

Sei S eine Menge von n Punkten im Rd. Bei einem euklidischen Graphen für S entsprichtdie Knotenmenge der Menge S. Eine Kante eines solchen Graphen ist definiert als (p, q) :p, q ∈ S. Das Gewicht einer Kante (p, q) ist definiert als der euklidische Abstand zwischenden Punkten p und q.

Sei E die Kantenmenge eines Graphen G. Für ein t > 1 ist der Graph G = (S, E) eint-Spanner, wenn für jedes Paar von Punkten p, q ∈ S ein Pfad von p nach q existiert, dessenGewicht höchstens um den Faktor t größer ist als der euklidische Abstand zwischen p undq. Für einen t-Spanner kann eine Pfadanfrage für ein Paar von Punkten (p, q) ∈ S gestelltwerden. Das Resultat einer solchen Anfrage wird dann als t-Spanner Pfad von p nach qbezeichnet.

Der Durchmesser D eines t-Spanners bezeichnet die maximale Pfadlänge über alle Pfadevon jedem beliebigen Punkt p zu jedem beliebigen Punkt q, deren Anzahl der Kanten imt-Spanner-Pfad minimal ist. Der euklidische Abstand zwischen zwei Punkten p und q im Rd

wird im folgenden Text mit |pq| bezeichnet.

2.2 Θ-Graphen

Eine Form von t-Spannern sind die sogennannten Θ-Graphen. Die Idee bei der Konstruktionvon Θ-Graphen besteht darin, ausgehend von einem Punkt p zunächst eine Kante zu einemKnoten zu wählen, welcher sich grob in der Richtung des Zielknotens q befindet. Dafür wirdder Raum Rd durch Kegel in mehrere Sektionen aufgeteilt.

Ein Kegel ist definiert als die Schnittmenge von d Halbräumen im Rd. Die einzelnen Halb-räume werden jeweils durch eine Hyperebene begrenzt, welche sich in einer allgemeinen Lagebefindet. Der Punkt, an dem sich sämtliche Halbräume schneiden ist definiert als die Ke-gelspitze. Zur Veranschaulichung dienen hier R2 und R3: Im R2 entspricht eine Hyperebeneeiner Geraden. Die von der Geraden abgegrenzte Ebene entspricht nun einem Halbraum

Page 191: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Konstruktion von geometrischen Spannern mit geringem Durchmesser 183

(in diesem Spezialfall auch Halbebene genannt). Im R3 entspricht eine Hyperebene einerEbene. Der von der Ebene abgegrenzte Raum entspricht einem Halbraum. Der Winkel Θ(0 < Θ < π) legt fest, in welchem Winkel die d Halbräume zueinander stehen. Da sich dieeinzelnen Halbräume in einem gemeinsamen Punkt schneiden, entsteht ein geometrischesKonstrukt in Form eines Kegels.

Die Menge C sei definiert als eine Sammlung von Kegeln, welche ihren Ursprung im Koor-dinatenursprung haben, dessen Kegel einen Winkel von Θ besitzen und den Rd abdecken.In [8] wird gezeigt, wie eine solche Menge C, bestehend aus O((c/Θ)d−1) Kegeln, für einegeeignete Konstante c konstruiert werden kann.

Jeder Kegel besitzt einen Strahl lC , welcher vom Ursprung des Kegels ausgeht und sich in-nerhalb des Kegels befindet. Dabei darf sich lC irgendwo im Kegel befinden (in den folgendenZeichnungen wurde die Winkelhalbierende gewählt). Ein verschobener Kegel Cp ist definiertals der Kegel C, dessen Ausgangspunkt vom Koordinatenursprung zum Punkt p verschobenwurde. Formal kann Cp wie folgt beschrieben werden: Cp := C+p := x+p : x ∈ C. Abbil-dung 1 zeigt zwei Kegel im R2. Einer hat seinen Ausgangspunkt im Koordinatenursprung,der zweite Kegel ist um den Punkt p verschoben worden. Analog hierzu wird der verscho-bene Strahl lC,p definiert. Der Strahl lC,p hat seinen Ursprung im Punkt p und entsprichtdem um den Punkt p verschobenen Strahl lC .

p

lC,p

lC

00

Abb. 1. Ein Kegel mit Ausgangspunkt im Koordinatenursprung inklusive Strahl lC und ein zugehöriger,um den Punkt p verschobener Kegel (d = 2).

Definition 1 (Θ-Graph [1]). Sei k ≥ 2 ein ganzzahliger Wert und Θ = 2π/k. S sei eineMenge von Punkten im Rd. Der gerichtete Graph Θ(S, k) ist wie folgt definiert.

1. Die Knoten von Θ(S, k) sind die Punkte in S.2. ∀p ∈ S und ∀C ∈ C, sodass in dem verschobenen Kegel Cp Punkte aus S\p enthalten

sind, existiert eine Kante von p zu einem Punkt r in Cp ∩ S\p, dessen orthogonaleProjektion auf den Strahl lC,p dem Punkt p am nächsten ist. Existieren mehrere solcherPunkte, wird ein beliebiger Punkt gewählt.

Abbildung 2 illustriert die Auswahl einer Kante (p, r) in einem Kegel Cp. Für den Θ-Graph lässt sich folgendes Lemma definieren:

Page 192: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

184 Philipp Wissneth

p

lC,p

r

Abb. 2. Ein Kegel mit Ausgangspunkt p und Strahl lC,p (d = 2). In einem Θ-Graphen wird für diesenKegel die Kante (p, r) hinzugefügt, da die orthogonale Projektion auf lC,p am nächsten zu p ist.

Lemma 1. Sei k > 8 ein ganzzahliger Wert, Θ = 2π/k und sei S eine Menge bestehend ausn Punkten im Rd. Dann ist der Graph Θ(S, k) ein t-Spanner für t = 1/(cos Θ− sinΘ). DerGraph enthält O((c/Θ)d−1n) Kanten für eine Konstante c.

Die Anzahl der Kanten ergibt sich daraus, dass in jedem der n Punkte p ∈ S für alle Kegel(welche O((c/Θ)d−1) betragen) eine Kante bestimmt wird. Ein Beweis für die Bestimmungvon t folgt in Kapitel 3.

2.3 Algorithmische Konstruktion von Θ-Graphen

Der folgende Abschnitt befasst sich mit der algorithmischen Konstruktion von Θ-Graphen.Arya, Mount und Smid beschreiben in [4] eine Datenstruktur, mit welcher sich der GraphΘ(S, k) in Zeit O(n logd−1 n) und einem Speicherbedarf von O(n logd−2 n) erstellen lässt.

Vor der eigentlichen Konstruktion werden einige Notationen eingeführt: Sei C ein Ke-gel aus C. Es seien h1, h2, . . . , hd die Hyperebenen, welche die Halbräume begrenzen, die Cdefinieren. H1,H2, . . . ,Hd seien Linien durch den Koordinatenursprung, so dass jedes Hi

(1 ≤ i ≤ d) jeweils orthogonal zu hi ist. Hi ist so gerichtet, dass Hi in die Richtung zeigt,in welche sich der Kegel C ausbreitet. Des Weiteren ist L definiert als die Linie, welche denStrahl lC enthält und ebenfalls durch den Koordinatenursprung geht.

Für einen beliebigen Punkt p im Rd seien im Folgenden seine Koordinaten in Bezug auf dieentsprechende Achse mit p1, p2, . . . , pd gekennzeichnet. Der Wert von p′i mit 1 ≤ i ≤ d kenn-zeichne den vorzeichenbehafteten euklidischen Abstand zwischen dem Koordinatenursprungund der orthogonalen Projektion von p auf Hi. Das Vorzeichen wird dadurch bestimmt, obsich die entsprechende Projektion in Bezug zur Richtung von Hi “rechts” oder “links” vomKoordinatenursprung befindet. Analog hierzu bezeichne p′d+1 den vorzeichenbehafteten eu-klidischen Abstand zwischen dem Koordinatenursprung und der orthogonalen Projektionvon p auf L. Abbildung 3 verdeutlicht diesen Zusammenhang für d = 2.

Sei nun angenommen, dass p ein Punkt in S ist. Bei der Berechnung des Graphen Θ(S, k)muss eine Kante ausgehend von p zu einem Punkt q in Cp mit minimalem Abstand inBezug zur orthogonalen Projektion von q auf lC,p gefunden werden. Dies ist äquivalent zumBestimmen eines Punktes q ∈ S\p, sodass aus allen 1 ≤ i ≤ d mit q′i ≥ p′i ein Punkt mitminimaler q′d+1-Koordinate gefunden wird.

Die Datenstruktur, auf dessen Basis dieser Punkt bestimmt wird, ist eine erweiterteVersion eines Bereichsbaumes (vgl. [5]). Sie ist wie folgt aufgebaut: Auf oberster Ebene

Page 193: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Konstruktion von geometrischen Spannern mit geringem Durchmesser 185

plC,p

h1 + p

h2 + p

0

H1

H2

L

p'1

p'2

Abb. 3. Die Linien Hi sind orthogonal zu hi (1 ≤ i ≤ d). Die gestrichelten Linien kennzeichnen dieorthogonale Projektion des Punktes p auf die Linien Hi (d = 2).

existiert ein balancierter binärer Suchbaum in dessen Blättern die Punkte aus S gespeichertsind. Diese Punkte sind nach ihren q′1-Koordinaten sortiert. Für jeden Knoten v diesesBaumes sei Sv die Teilmenge aus S, welche in dem Teilbaum unter v gespeichert ist. JederKnoten v enthält nun einen Zeiger auf die Wurzel eines sortierten binären Suchbaumes überSv, welcher in seinen Blättern nach seinen q′2-Koordinaten sortiert ist. Sämtliche Knotendieses Baumes enthalten wiederum einen Zeiger auf sortierte binäre Suchbäume, welche inihren Blättern nach ihrer q′3-Koordinate sortiert sind usw. Diese rekursive Konstruktion wirdbis zu Suchbäumen, welche nach ihrer q′d-Koordinate sortiert sind, fortgesetzt. Ein Baum,welcher in seinen Blättern q′i-Koordinaten enthält, wird im Folgenden als Baum der Ebenei bezeichnet.

Zusätzlich zu dem in einem Knoten u eines Baumes der Ebene d gespeicherten Suchinter-vall wird dort eine weitere Information gespeichert. Es handelt sich hierbei um den Punkt,welcher in Bezug auf die in den Blättern des von u gespeicherten Teilbaumes enthalteneTeilmenge von S eine minimale q′d+1-Koordinate besitzt.

Sobald diese Datenstruktur konstruiert wurde, ist es möglich, die entsprechenden Kantenvon Θ(S, k) zu bestimmen. Für einen beliebigen Punkt p ∈ Rd wird eine entsprechendeMenge von Knoten aus Bäumen der Ebene d berechnet, sodass alle Teilmengen von S,welche in den Teilbäumen dieser Knoten gespeichert sind, der Menge der Punkte innerhalbdes Kegels Cp entsprechen. In der vorgestellten Datenstruktur müssen also sämtliche Punkteq ∈ S\p bestimmt werden, bei denen für alle 1 ≤ i ≤ d die Eigenschaft q′i ≥ p′i gilt. DieseMenge von Punkten kann durch eine orthogonale Bereichsanfrage bestimmt werden (siehe[5]).

Die Bestimmung der Kante in Cp zur Berechnung von Θ(S, k) erweist sich nun als be-sonders leicht: Für jeden der eben bestimmten Knoten u ∈ S, welcher die Wurzel einesTeilbaumes der Ebene d ist, wurde ein Knoten qu gespeichert, dessen q′u,d+1-Koordinate imjeweiligen Teilbaum minimal ist. Sei nun q derjenige Knoten aus allen bestimmten Knotenu, welcher den minimalen Wert für q′u,d+1 besitzt. Folglich ist (p, q) eine Kante von Θ(S, k).

Bis auf die Bestimmung der minimalen Werte für q′d+1 entspricht die vorgestellte Da-tenstruktur der eines Bereichsbaumes. Bereichsbäume haben einen Speichplatzbedarf vonO(n logd−1 n) und können in Zeit O(n logd−1 n) erstellt werden. Die Bestimmung des Punk-tes eines Teilbaumes mit minimalem Wert für die q′d+1-Koordinate kann mit Hilfe einer

Page 194: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

186 Philipp Wissneth

Bottom-Up Prozedur geschehen. Hier wird ausgehend von den Blättern eines Baumes derEbene d die Bezeichnung des Knotens mit minimaler q′d+1-Koordinate nach oben propagiert.Auf Basis der Eigenschaften von Bereichsbäumen (vgl. [5] oder [6]) kann folgendes Lemmadefiniert werden:

Lemma 2 (vgl. [4]). Sei S eine Menge von n Punkten im Rd und sei C ein Kegel ausC. Die oben beschriebene Datenstruktur hat eine Größe von O(n logd−1 n) und kann in ZeitO(n logd−1 n) erstellt werden. Die Zeit zum Einfügen oder Löschen eines Punktes in bzw.aus dieser Datenstruktur beträgt O(logd n). Zu jedem Punkt p ∈ Rd kann in Zeit O(logd n)ein Punkt q in Cp ∩ S\p bestimmt werden, dessen q′d+1-Koordinate minimal ist, bezie-hungsweise festgestellt werden, dass kein solcher Punkt existiert.

Es muss beachtet werden, dass sich die gezeigte Datenstruktur ausschließlich auf eineneinzigen Kegel C aus C bezieht. Es lassen sich also die Kanten für sämtliche verschobenenKegel Cp, welche auf C basieren, berechnen. Dies kann in Zeit O(n logd n) geschehen. DieserWert ergibt sich daraus, dass für die Berechnung einer Kante mit minimaler q′d+1-Koordinatefür einen bestimmten Kegel Cp (wobei p ∈ S) die erstellte Datenstruktur mit dem Punkt pbefragt wird. Dies kann in Zeit O(logd n) geschehen (vgl. Lemma 2). Will man die Kantensämtlicher Kegel Cp erhalten, muss die erstellte Datenstruktur mit sämtlichen Punkten ausS, (|S| = n) befragt werden. Es muss also n mal eine Anfrage auf die erstellte Datenstrukturgestartet werden. Die Laufzeit beträgt folglich O(n logd n) (das Erstellen der Datenstrukturbenötigt O(n logd−1 n) Zeit und ist somit in der O-Notation enthalten).

Bei der Konstruktion des Θ-Graphen lässt sich sowohl beim Speicherplatzbedarf als auchbei der Laufzeit ein Faktor von log n einsparen. Dies wird dadurch möglich, dass bereits apriori sämtliche Punkte bekannt sind, mit denen die erstellte Datenstruktur befragt wird:Alle Punkte aus S. Die Punkte aus S werden nun der Reihe nach absteigend nach ihrerp′1-Koordinate sortiert. Die Berechnung der einzelnen Kanten in den verschobenen Kegelnerfolgt nun entsprechend dieser Liste von p′1-Koordinaten in absteigender Reihenfolge. Wiebereits oben gezeigt, wird auch hier für jeden Kegel C ∈ C ein erweiterter Bereichsbaumkonstruiert. Allerdings geschieht dies hier lediglich für die Koordinaten p′2, . . . , p

′d+1. Es wird

also die Datenstruktur aus Lemma 2 für Dimension d − 1 angewandt. Um sicherzustellen,dass bei einer Anfrage für einen Punkt p ausschließlich Punkte r ∈ S mit einer r′1-Koordinatebetrachtet werden, welche größer oder gleich p′1 sind, werden in den Bereichsbaum nur diePunkte eingefügt, welche in der zuvor konstruierten Liste “über” dem aktuell betrachtetenPunkt p liegen.

Durch eine Anfrage der Datenstruktur für jeden Punkt p wird nun ein Punkt q bestimmt,bei dem für alle 2 ≤ i ≤ d die Eigenschaft q′i ≥ p′i gilt und q′d+1 minimal ist. Des Weiterenist sichergestellt, dass die Datenstruktur zu diesem Zeitpunkt nur Punkte r aus S enthält,deren Koordinate r′1 größer oder gleich p′1 ist. Daraus folgt, dass die Eigenschaft q′i ≥ p′ifür alle 1 ≤ i ≤ d gilt und q′d+1 minimal ist. Nachdem für die Anfrage mit Punkt p einpassender Punkt q bestimmt wurde, wird p bezüglich seiner Koordinaten (p′2, . . . , p

′d+1) in

den erweiterten Bereichsbaum eingefügt und es kann die Anfrage für den nächsten Punktaus der nach p′1-Koordinaten sortierten Liste von Punkten aus S gestartet werden. Da dasEinfügen von Punkten in den erweiterten Bereichsbaum Zeit O(logd−1 n) benötigt und diesfür alle n Punkte aus S durchgeführt wird, ergibt zusätzlich zum Konstruieren des erwei-terten Bereichsbaumes für die Dimension d − 1 ein Zeitbedarf von O(n logd−1 n). Gemäß

Page 195: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Konstruktion von geometrischen Spannern mit geringem Durchmesser 187

Lemma 2 wird für die Konstruktion eines erweiterten Bereichsbaumes für die Dimensiond − 1 Zeit O(n logd−2 n) benötigt. Die benötigte Zeit zur Bestimmung sämtlicher Kantender verschobenen Kegel Cp zu einem Kegel C ∈ C ist also durch O(n logd−1 n) beschränkt.

Um Θ(S, k) vollständig zu berechnen, müssen für sämtliche Kegel C ∈ C die Kantender verschobenen Kegel Cp bestimmt werden. Aus Lemma 1 geht hervor, dass Θ(S, k)O((c/Θ)d−1n) Kanten enthält. Das bedeutet insbesondere, dass für die Konstruktion einSpeicherplatz von O((c/Θ)d−1n + n logd−2 n) benötigt wird, also dem Platz zum Speichernder berechneten Kanten und dem Platz zum Speichern der einzelnen erweiterten Bereichs-bäume. Ferner beträgt die Anzahl der Kegel C ∈ C O((c/Θ)d−1). Daraus ergibt sich eineLaufzeit von O((c/Θ)d−1n logd−1 n) zur Konstruktion des Graphen Θ(S, k).

Die Ergebnisse zum Graph Θ(S, k) und seiner algorithmischen Konstruktion werden wiefolgt zusammengefasst:

Theorem 1 (vgl. Theorem 5 in [4]). Sei k > 8 ein ganzzahliger Wert, Θ = 2π/kund S eine Menge von n Punkten im Rd. Der Graph Θ(S, k) ist ein t-Spanner fürt = 1/(cos Θ − sinΘ). Er enthält O((c/Θ)d−1n) Kanten für eine Konstante c. Un-ter einem Speicherplatzverbrauch von O((c/Θ)d−1n + n logd−2 n) kann der Graph in ZeitO((c/Θ)d−1n logd−1 n) konstruiert werden.

2.4 Bemerkungen

Die hier eingeführten Θ-Graphen dienen als Grundlage für die im folgenden Kapitel vorge-stellte Technik zur Konstruktion von t-Spannern mit geringem Durchmesser. Des Weiterenwird in Kapitel 3 auf das folgende Lemma zurückgegriffen. Ein entsprechender Beweis istin [3] zu finden.

Lemma 3. Sei k > 8 ein ganzzahliger Wert und Θ = 2π/k. Ferner seien p und q beliebigedisjunkte Punkte im Rd und C sei ein Kegel aus C, sodass q ∈ Cp. Sei r ein beliebiger Punktim Rd ∩ Cp, sodass die orthogonale Projektion von r auf den Strahl lC,p mindestens so nahzu p ist wie die orthogonale Projektion von q auf lc,p. Es gilt

1. |pr| cos Θ ≤ |pq|, und2. |rq| ≤ |pq| − (cos Θ − sinΘ)|pr|.

Außerdem wird bei der Konstruktion der im nächsten Kapitel eingeführten Datenstruk-tur auf das Konzept von Skip Listen (vgl. [2]) zurückgegriffen, weshalb an dieser Stellekurz deren Eigenschaften wiederholt werden sollen: Skip Listen sind eine randomisierte Da-tenstruktur zur effizienten Suche auf geordneten Mengen. Die Datenstruktur besteht aus nListen, welche sich in verschiedenen Ebenen befinden. In der Liste der Ebene 1 befinden sichalle Elemente. Es wird per Münzwurf bestimmt, ob sich ein Element einer Liste der Ebenei in der übergeordneten Liste i + 1 befindet. Da es sich hierbei um einen fairen Münzwurfhandelt, ist zu erwarten, dass die Anzahl der Elemente einer Liste der Ebene i + 1 halb sogroß ist wie die Anzahl der Elemente der darunter liegenden Liste der Ebene i. Elemente,welche in mehreren Listen auftreten besitzen einen Zeiger zu ihren Vorkommen in der jeweilshöheren bzw. niedrigeren Ebene. Die Anzahl der zu erwartenden Ebenen beträgt O(log n).

Page 196: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

188 Philipp Wissneth

3 Der Skip List Spanner

Ziel dieses Kapitels ist die Vorstellung und Analyse eines t-Spanners, welcher einen mög-lichst geringen Durchmesser hat. Arya, Mount und Smid führen in [4] einen t-Spanner ein,dessen Durchmesser mit hoher Wahrscheinlichkeit O(log n) beträgt. Der vorgestellte Span-ner basiert auf der Kombination von den bereits im vorhergegangenen Kapitel eingeführtenΘ-Graphen und Skip-Listen.

3.1 Konstruktion des Skip List Spanners

Bevor eine entsprechende Datenstruktur angegeben werden kann, werden zunächst aus derMenge S der Punkte im Rd entsprechende Teilmengen gebildet. Es sei S1 = S. Für ein i > 1wird die Menge Si wie folgt ermittelt: Für jeden Punkt aus Si−1 wird ein fairer Münzwurfausgeführt. Jeder Punkt, für den der Münzwurf mit dem Ergebnis “Kopf” ausgegangen ist,ist Bestandteil der Teilmenge Si. Die Konstruktion der Teilmengen ist dann beendet, wennfür eine Menge Si ausschließlich das Ergenis “Zahl” geworfen wurde, also Si = ∅. Mit h seidie Anzahl der Iterationen für diese Konstruktion gekennzeichnet. Es besteht also folgendeBeziehung zwischen den einzelnen Teilmengen von S:

∅ = Sh+1 ⊆ Sh ⊆ Sh−1 ⊆ Sh−2 ⊆ · · · ⊆ S2 ⊆ S1 = S

Die im Folgenden definierte Datenstruktur basiert auf den oben erstellten Mengen Si.

Definition 2 (Skip List Spanner [4]). Sei k ≥ 2 ein ganzzahliger Wert und Θ = 2π/k.Sei S eine Menge von n Punkten im Rd. Si, 1 ≤ i ≤ h seien die oben durch den fairenMünzwurf konstruierten Teilmengen von S. Der Skip List Spanner, SLS(S, k) ist wie folgtdefiniert.

1. Für jedes 1 ≤ i ≤ h existiert eine Liste Li, welche die Punkte aus Si beinhaltet (inbeliebiger Reihenfolge).

2. Für jedes 1 ≤ i ≤ h existiert ein Graph Θ(Si, k).3. Für jedes 1 ≤ i ≤ h existiert der umgekehrte Graph Θ′(Si, k), welcher durch die Umkeh-

rung der Kantenrichtung in Θ(Si, k) erhalten wird.4. Für jedes 1 < i ≤ h enthält jedes p ∈ Si einen Zeiger von seinem Auftreten in Li zum

in Li−1 korrespondierenden Auftreten von p.5. Für jedes 1 ≤ i < h enthält jedes p ∈ Si+1 einen Zeiger von seinem Auftreten in Li zum

in Li+1 korrespondierenden Auftreten von p.

Lemma 4. Sei k > 8 ein ganzzahliger Wert, Θ = 2π/k und sei S eine Menge von nPunkten im Rd. Der Skip List Spanner SLS(S, k) ist ein t-Spanner für t = 1/(cos Θ −sinΘ). Er enthält O((c/Θ)d−1n) Kanten für eine Konstante c. Ferner kann dieser Graphmit hoher Wahrscheinlichkeit in Zeit O((c/Θ)d−1n logd−1 n) mit einem Speicherplatzbedarfvon O((c/Θ)d−1n + n logd−2 n) konstruiert werden.

Beweis. Da der Skip List Spanner SLS(S, k) insbesondere den Graphen Θ(S1, k) = Θ(S, k)enthält, ist er nach Theorem 1 ein t-Spanner für t = 1/(cos Θ − sin Θ). Die Anzahl derKanten in Θ(S, k) ist begrenzt durch O((c/Θ)d−1n). Daraus folgt, dass die Anzahl derKanten in SLS(S, k) durch O(

∑hi=1(c/Θ)d−1|Si|) begrenzt ist.

Page 197: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Konstruktion von geometrischen Spannern mit geringem Durchmesser 189

Da die Mengen Si durch einen fairen Münzwurf bestimmt wurden, wissen wir, dass einPunkt aus der Menge Si−1 mit einer Wahrscheinlichkeit von 1/2 in der Menge Si enthaltenist. Die erwartete Anzahl an Punkten in Si beträgt folglich (1/2)|Si−1|. Aufgrund dieserBeobachtung kann die Gesamtzahl aller Punkte in SLS(S, k) über eine geometrische Reiheder Form

∑h−1k=0 n(1

2)k berechnet werden, deren Grenzwert limi→∞∑i

k=0 n(12)k = n 1

1−(1/2) =2n beträgt. Setzt man nun für die Anzahl der Punkte in SLS(S, k) den Wert 2n ein, sobeträgt die Anzahl der Kanten in SLS(S, k) mit hoher Wahrscheinlichkeit O((c/Θ)d−1n).Sollte die Anzahl der Kanten wider Erwarten größer ausfallen, wird die Konstruktion desSkip List Spanners so oft wiederholt, bis die Anzahl der Kanten O((c/Θ)d−1n) beträgt.Die Schranken für die Konstruktionszeit und den Speicherplatzbedarf werden analog zu deroben gezeigten Schranke für die Anzahl der Kanten bestimmt.

3.2 Ein Algorithmus zur Konstruktion von t-Spanner Pfaden

Der Skip List Spanner stellt die für die Konstruktion von t-Spanner Pfaden grundlegendeDatenstruktur dar. Im Folgenden wird der Algorithmus skizziert, welcher einen Pfad voneinem Punkt p zu einem Punkt q konstruiert. Dass es prinzipiell möglich ist, t-Spanner Pfadeim SLS(S, k) zu berechnen, wurde bereits dadurch gezeigt, dass der Skip List Spanner denΘ-Graphen Θ(S, k) enthält. Um die Anzahl der Kanten jedoch zu reduzieren, wird wie folgtvorgegangen:

Gestartet wird der Algorithmus bei dem Punkt x = p. Zuerst wird gepüft, ob sich der Punktx auf Ebene 2 (also in der Menge S2) befindet. Ist dem nicht der Fall, wird nun in Ebene1 eine Kante berechnet, welche sich in grober Richtung zu Punkt q befindet. Um dies zuerreichen, wird der Kegel C aus C so bestimmt, dass q ∈ Cx (was bedeutet, dass sich q imverschobenen Kegel Cx befindet). Nun sei x′ ein Punkt aus Cx ∩ S1 (also allen Punktenaus der Menge S1, die sich im verschobenen Kegel Cx befinden), welcher zusammen mit xeine Kante (x, x′) im Θ-Graphen Θ(S1, k) ist. x′ wird nun ein Punkt auf dem Pfad von pzu q. Für den weiteren Verlauf wird x := x′ gesetzt. Der Punkt x kennzeichnet also immerden zuletzt hinzugefügten Punkt eines zu berechnenden Pfades von p zu q. Der Pfad wirdauf diese Weise solange erweitert bis x = q gilt oder x in der zweiten Ebene des Skip ListSpanners enthalten ist (x ∈ S2). Sollte x in der zweiten Ebene vorkommen, wird gestartet,einen Pfad von Punkt q zu x zu konstruieren. Der Pfad dorthin wird analog zu dem obenbeschriebenen Pfad von p zu x konstruiert: Der zuletzt zum Pfad hinzugefügte Punkt seihier mit y gekennzeichnet. Der Pfad wird solange erweitert, bis y einem Punkt des bereitskonstruierten Pfades von p nach x entspricht oder y in Ebene 2 des Skip List Spannersenthalten ist (y ∈ S2). Sollte y einem Punkt p′ des Pfades von p nach x entsprechen, so wirdder Pfad von p nach p′ gefolgt vom umgekehrten Pfad von q nach p′ ausgegeben. Der Pfadvon p nach p′ ist in Θ(S1, k) und der Pfad von q nach p′ ist in Θ′(S1, k) enthalten. BeideΘ-Graphen sind in SLS(S, k) enthalten. Befindet sich y hingegen auf Ebene 2 des Skip ListSpanners, wird mit dem selben Vorgehen ausgehend von Ebene 2, ein Pfad von x nach yberechnet usw. Der in [4] vorgestellte formale Algorithmus entspricht dem hier gezeigtenAlgorithmus 19.

Page 198: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

190 Philipp Wissneth

Algorithmus 19 walk(p, q)p0 := p; q0 := q; a := 0; b := 0; r := 0; s := 0; i := 1;/* p0 = p, p1, . . . , pr, . . . , pa und q0 = q, q1, . . . , qs, . . . , qb sind Pfade in SLS(S, k), r = minj : pj ∈ Si,s = minj : qj ∈ Si und pr, pr+1, . . . , pa, qs, qs+1, . . . , qb ∈ Si */stop := false;while stop = false do

while pa 6= qb und pa /∈ Si+1 doC := Kegel aus C, sodass qb ∈ Cpa ;pa+1 := Punkt aus Cpa ∩ Si sodass (pa, pa+1) eine Kante aus Θ(Si, k) ist;a := a + 1;

/* pa = qb oder pa ∈ Si+1 */while qb /∈ pr, pr+1, . . . , pa und qb /∈ Si+1 do

C := Kegel aus C, sodass pa ∈ Cqb ;qb+1 := Punkt aus Cqb ∩ Si sodass (qb, qb+1) eine Kante aus Θ′(Si, k) ist;b := b + 1;

/* qb ∈ pr, pr+1, . . . , pa oder pa und qb treten in Si+1 auf */if qb ∈ pr, pr+1, . . . , pa then

l := Index, sodass qb = pl;Pfad p0, p1, . . . , pl, qb−1, qb−2, . . . , q0 ausgeben;stop := true;

elsei := i + 1; r := a; s := b;

Lemma 5. Sei k > 8 und Θ = 2π/k. Für jedes Paar von Punkten p und q aus S konstruiertder Algorithmus walk(p, q) im SLS(S, k) einen t-Spanner Pfad von p nach q für ein t =1/(cos Θ − sinΘ).

Beweis. Der Beweis zu Lemma 5 geschieht durch Induktion über die Anzahl der Ebenendes Skip List Spanners. Für den Induktionsanfang wird angenommen, dass der Skip ListSpanner SLS(S, k) aus lediglich einer Ebene besteht. Dabei wird das Verhalten währendder ersten Iteration der äußeren While-Schleife beobachtet (Eine zweite Iteration wäre indiesem Fall ohnehin nicht möglich, da dort Kanten der Ebene 2 berechnet werden würden,welche logischerweise nicht existieren können).

pa

lC,pa

pa+1

q

Abb. 4. Nach Definition des Θ-Graphen muss die Projektion von pa+1 auf den Strahl lC,pa mindestens sonah an pa sein wie die Projektion von q auf lC,pa (d = 2).

In der ersten inneren While-Schliefe wird ein Pfad, beginnend mit p = p0, p1, p2, . . .konstruiert. Die Berechnung des Pfades wird beendet, sobald der zuletzt hinzugefügte Punktdem Punkt q entspricht. Wir betrachten nun für a ≥ 0 die Punkte pa und pa+1. Da pa einen

Page 199: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Konstruktion von geometrischen Spannern mit geringem Durchmesser 191

Nachfolger (pa+1) besitzt, ist klar, dass pa 6= q gilt. Sei nun C der Kegel, sodass q imverschobenen Kegel Cpa enthalten ist. Laut Algorithmus ist pa+1 ∈ Cpa und (pa, pa+1)eine Kante von Θ(S1, k) und damit auch eine Kante von SLS(S, k). Des Weiteren gilt lautDefinition des Θ-Graphen, dass die Projektion von pa+1 auf den Strahl lC,pa mindestens sonah an pa sein muss wie die Projektion von q auf lC,pa . Abbildung 4 verdeutlicht diesenZusammenhang. Nach Lemma 3 gilt

|pa+1q| ≤ |paq| − (cos Θ − sinΘ)|papa+1|. (1)

Durch die Monotonieeigenschaften der Cosinus- und Sinusfunktion im Intervall [0, π4 ) folgt

|pa+1q| < |paq|, (2)

womit gezeigt ist, dass bei jeder Iteration der ersten inneren While-Schleife der Abstandzwischen den Punkten pa und q kleiner wird und die Schleife terminiert. Wird angenom-men, dass z die Anzahl der durchgeführten Iterationen ist, wurde durch den Algorithmusein Pfad der Form p = p0, p1, p2, . . . , pz = q konstruiert. Die zweite innere While-Schleifewird nicht ausgeführt, da qb = pz = q Element des konstruierten Pfades ist und so die Ab-bruchbedingung der Schleife zutrifft. Der Algorithmus terminiert und gibt den konstruiertenPfad von p nach q aus.

Um eine Gewichtsbeschränkung des konstruierten Pfades zu erhalten, wird zunächst dieUngleichung (1) umgeformt zu

|papa+1| ≤1

cos Θ − sinΘ(|paq| − |pa+1q|) = t(|paq| − |pa+1q|) (3)

Das Gewicht des ausgegebenen Pfades ist die Summe der Gewichte der einzelnen Kanten.Unter Zuhilfenahme von (3) kann nun eine Gewichtsbeschränkung des konstruierten Pfadesbestimmt werden:

z−1∑a=0

|papa+1| ≤ tz−1∑a=0

(|paq| − |pa+1q|) (4)

Durch Auflösen der Teleskopsumme auf der rechten Seite erhält man

z−1∑a=0

|papa+1| ≤ t(|p0q| − |pzq|) = t|pq|, (5)

womit gezeigt ist, dass der Algorithmus für einen Skip List Spanner SLS(S, k) mit einerEbene einen t-Spanner Pfad von p nach q konstruiert. Der Induktionsanfang ist bewiesen.Ferner konnte hier der in Lemma 1 genannte Wert für t bewiesen werden.

Im Folgenden wird ein Skip List Spanner mit h Ebenen betrachtet, wobei h > 1. Wir nehmenan, dass das Lemma 5 für alle Skip List Spanner mit weniger als h Ebenen gilt.

Während der ersten Iteration der äußeren While-Schleife wird in der ersten innerenWhile-Schleife ein Pfad der Form p = p0, p1, p2, . . . , pz konstruiert. Der Punkt pz entspricht

Page 200: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

192 Philipp Wissneth

entweder dem gesuchten Punkt q (pz = q) oder er ist in der Menge S2 enthalten und damitElement der zweiten Ebene des Skip List Spanners (pz ∈ S2). Offensichtlich gilt die Unglei-chung (2) auch hier.

Für den Fall, dass pz = q gilt, wird der Algorithmus den konstruierten Pfad ausgeben undterminieren. Der Beweis, dass es sich bei der Ausgabe um einen t-Spanner Pfad handelt, istexakt derselbe wie bereits im Induktionsanfang gezeigt.

Für den Fall, dass pz 6= q gilt, muss pz ∈ S2 gelten. In der zweiten inneren While-Schleifewird ein Pfad der Form q = q0, q1, q2, . . . konstruiert. Gemäß Lemma 3 und den Monoto-nieeigenschaften der Cosinus- und Sinusfunktion im Intervall [0, π

4 ) folgt

|qb+1pz| ≤ |qbpz| − (cos Θ − sinΘ)|qbqb+1| < |qbpz|. (6)

Die zweite innere While-Schleife terminiert, wenn der zuletzt hinzugefügte Punkt des q-Pfades einem Punkt des bereits erstellten p-Pfades entspricht oder in Ebene 2 des Skip ListSpanners vorkommt. Durch (6) wurde gezeigt, dass mit jeder Iteration der zweiten innerenWhile-Schleife die Abstände zwischen qb und pz echt kleiner werden. Folglich terminiert dieSchleife. Es sei y die Anzahl der Iterationen bis zum Terminieren der Schleife. Es könnennun zwei Fälle unterschieden werden: qy ∈ p0, p1, p2, . . . , pz oder qy ∈ S2.

Falls qy ∈ p0, p1, p2, . . . , pz sei l so gewählt, dass qy = pl gilt. Der Algorithmus würdedann den Pfad der Form p = p0, p1, p2, . . . , pl = qy, qy−1, . . . , q0 = q ausgeben. Das Gewichtdes Pfades ist bestimmt durch die Summe aller Kantengewichte, welches wiederum kleineroder gleich der Summe aller Kantengewichte des p- und q-Pfades ist.

l−1∑a=0

|papa+1|+y−1∑b=0

|qbqb+1|

≤z−1∑a=0

|papa+1|+y−1∑b=0

|qbqb+1| (7)

Analog zu (3) kann (6) umgeformt werden zu

|qbqb+1| ≤1

cos Θ − sinΘ(|qbpz| − |qb+1pz|) = t(|qbpz| − |qb+1pz|). (8)

Unter Zuhilfenahme von (3) und (8) lässt sich nun eine Gewichtsbeschränkung des kon-struierten Pfades bestimmen, welche sich durch das Auflösen der Teleskopsummen kürzenlässt:

Page 201: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Konstruktion von geometrischen Spannern mit geringem Durchmesser 193

z−1∑a=0

|papa+1|+y−1∑b=0

|qbqb+1|

≤ t

z−1∑a=0

(|paq| − |pa+1q|) + t

y−1∑b=0

(|qbpz| − |qb+1pz|)

= t(|p0q| − |pzq|+ |q0pz| − |qypz|)= t(|pq| − |qypz|)

≤ t|pq| (9)

Für den Fall, dass qy ∈ p0, p1, p2, . . . , pz gilt, wird folglich ein t-Spanner Pfad konstruiert.

Als zweiter und letzter Fall muss noch die Annahme betrachtet werden, dass qy /∈p0, p1, p2, . . . , pz gilt. Demnach befindet sich qy in der nächsthöheren Ebene des Skip ListSpanners (qy ∈ S2). Laut Algorithmus wird die aktuell betrachtete Ebene um eins erhöht,was bedeutet, dass nun ein Pfad vom Punkt pz nach qy im Skip List Spanner SLS(S2, k)berechnet wird. Laut Induktionsannahme konstruiert der Algorithmus einen t-Spanner Pfadvon pz nach qy. Das Gewicht des Pfades von pz zu qy ist also begrenzt durch t|pzqy|. Wur-de dieser Pfad konstruiert, werden die Teilpfade p = p0, p1, . . . , pz und pz, pz+1, . . . , qy undqy, qy−1, . . . , q0 = q aneinanderghängt ausgegeben, welche zusammen den Pfad von p nachq beschreiben. Eine Gewichtsbeschränkung des Pfades lässt sich analog zu (9) definieren,wobei hier zusätzlich das Gewicht des von pz nach qy konstruierten Pfades betrachtet wird:

z−1∑a=0

|papa+1|+ t|pzqy|+y−1∑b=0

|qbqb+1|

≤ t

z−1∑a=0

(|paq| − |pa+1q|) + t|pzqy|+ t

y−1∑b=0

(|qbpz| − |qb+1pz|)

= t(|p0q| − |pzq|+ |pzqy|+ |q0pz| − |qypz|)= t|pq| (10)

Für den Fall, dass sich qy in der nächsthöheren Ebene des Skip List Spanners befindet,konstruiert walk(p,q) also ebenfalls einen t-Spanner Pfad.

Nachdem die Korrektheit des Algorithmus bewiesen wurde, sollen nun noch Aussagenüber zwei wichtige Eigenschaften getroffen werden: Die Laufzeit des Algorithmus und dieAnzahl der Kanten des erzeugten t-Spanner Pfades, welche den Durchmesser beschreibt.Für die folgende Analyse beschreibt T die Laufzeit des Algorithmus walk(p,q) und N dieAnzahl der Kanten des erzeugten Pfades. Es soll ein Pfad vom Punkt p zum Punkt q erzeugtwerden.

Da die Punktmengen S1, S2, . . . Sh per Zufall durch einen Münzwurf bestimmt wurden, ist

Page 202: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

194 Philipp Wissneth

zunächst festzuhalten, dass T und N Zufallsvariablen sind und sich folglich nicht determinis-tisch bestimmen lassen. Der Algorithmus muss als erstes für jeden zum p-Pfad hinzugefügtenPunkt pa einen Kegel C bestimmen, sodass sich der gesuchte Zielpunkt qb im verschobenenKegel Cpa befindet. Analog hierzu muss für jeden zum q-Pfad hinzugefügten Punkt qb dieEigenschaft pa ∈ Cqb

gelten.In Kapitel 2 wurde angegeben, dass sich jeder Kegel in C aus d Hyperebenen zusam-

mensetzt und dass C aus O((c/Θ)d−1) Kegeln besteht. Bezeichne m die Gesamtzahl allerHyperebenen, welche die Kegel definieren so gilt m = d|C| = O((c/Θ)d−1). Um nun den pas-senden Kegel bestimmen zu können, wird diese Ansammlung von Hyperebenen in der in [9]beschriebenen Datenstruktur gespeichert. Die Datenstruktur hat einen Speicherplatzbedarfvon O(md) und ermöglicht es, einen zu einem Punkt gehörenden Kegel in Zeit O(log m) zubestimmen. Da in der Datenstruktur keine verschobenen Kegel gespeichert werden, mussvor jeder Anfrage der Punkt mit dem die Anfrage gestartet wird “normalisiert” werden: Umeinen Kegel C zu finden, sodass qb ∈ Cpa gilt, wird die Anfrage mit dem Punkt qb − pa

gestartet. Der ausgegebene Kegel ist nun der gesuchte. Die Zeit zum Auffinden eines Kegelsist durch O(log(1/Θ)) beschränkt, da c und d konstante Faktoren sind.

Mit Hilfe dieser Beobachtungen kann nun eine generelle Formel für T aufgestellt werden:Der Algorithmus berechnet einen Pfad bestehend aus N Kanten. Für die Bestimmung ei-ner jeden hinzuzufügenden Kante muss zuerst ein passender verschobener Kegel gefundenwerden. Dies geschieht in den beiden inneren While-Schleifen. Gesteuert durch die äußereWhile-Schleife geschieht dies im Worst-Case für alle h Ebenen des Skip List Spanners. DieLaufzeit T ist also bestimmt durch T = O(N log(1/Θ) + h). Da es sich bei T , N und derAnzahl der Ebenen h um Zufallsvariablen handelt, ist deren Erwartungswert von Interesse.Es gilt E(T ) = O(E(N) log(1/Θ) + E(h)) = O(E(N) log(1/Θ) + log n), da die erwarteteAnzahl an Ebenen des Skip List Spanners (analog zu Skip Listen) logarithmisch zur Ge-samtzahl der Punkte in S ist (siehe Kapitel 2). Damit der Erwartungswert der Laufzeitbestimmt werden kann, muss nun noch der Erwartungswert von N bestimmt werden.

Um zu bestimmen, wie groß die Anzahl der Kanten eines von walk(p,q) erzeugten Pfades ist,wird im Folgenden die Zahl der in einer Ebene i hinzugefügten Punkte abgeschätzt. Zusam-men mit der zu erwartenden Anzahl der Ebenen im Skip List Spanner lässt sich dann eineAussage über den Durchmesser der erzeugten Pfade treffen. Für die folgende Abschätzungwird angenommen, dass ein Pfad vom Punkt p zu Punkt q erzeugt werden soll. Dabei wirdeine feste Ebene i betrachtet, in welcher ein Teilpfad von einem Punkt pr ∈ Si zu einemPunkt qs ∈ Si erzeugt wird. Es gilt 1 ≤ i ≤ h. Es ist zu beachten, dass, sobald die Men-gen S1, . . . , Si und p, q bekannt sind, die Indizes r und s deterministisch bestimmt werdenkönnen.

Für die folgende Analyse sei angenommen, dass der Münzwurf, welcher die Menge Si+1

bestimmt, noch nicht ausgefürt wurde. Der Pfad p′r = pr, p′r+1, p

′r+2, . . . , p

′m = qs sei definiert

als der Pfad, welcher konstruiert werden würde, wenn alle Punkte aus Si nicht in der MengeSi+i vorkommen würden. Des weiteren bezeichne z die Zahl der Punkte, welche in Ebene izum p-Pfad hinzugefügt wurden. Aufgrund der Tatsache, dass die Mengen S1, . . . , Sh zufälligbestimmt werden ist offensichtlich, dass es sich bei z um eine Zufallsvariable handelt.

Es sei nun l ≥ 0 und z = l. Auf Ebene i wurden dem p-Pfad also l Punkte hinzugefügt.Für den konstruierten p-Pfad gilt offensichtlich p′r = pr, p

′r+1 = pr+1, . . . , p

′r+l = p′r+l. Die

Page 203: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Konstruktion von geometrischen Spannern mit geringem Durchmesser 195

aktuell hinzugefügten Punkte entsprechen also bis zum l-ten hinzugefügten Punkt denen,wenn keiner der Punkte aus Si in Si+1 enthalten gewesen wäre. Insbesondere gilt für allea, r ≤ a ≤ r + l − 1, dass p′a /∈ Si+1. Daraus lässt sich folgende Aussage treffen:

P (z = l) ≤ P

(r+l−1∧a=r

(p′a /∈ Si+1)

)(11)

Wird nun angenommen, dass der Münzwurf für jeden Punkt p′a erst bei der Anfrage, obsich p′a auch in Ebene Si+1 befindet, ausgeführt wird, lässt sich eine Aussage über die ent-sprechende Wahrscheinlichkeit machen. Jeder Punkt aus Si ist mit einer Wahrscheinlichkeitvon 1/2 in Si+1 enthalten. Da alle Münzwürfe unabhängig voneinander sind, gilt

P (z = l) ≤r+l−1∏a=r

P (p′a /∈ Si+1) = (1/2)l. (12)

Aufgrund der Unabhängigkeit der Münzwürfe ist es bei jedem Wurf gleich wahrscheinlich,dass das Ergebnis “Kopf” bzw. “Zahl” geworfen wird. D.h., dass die Zufallsvariable z geome-trisch mit dem Parameter 1/2 verteilt ist. Der q-Pfad wird analog zu dem p-Pfad erstellt.Folglich ist auch eine Zufallsvariable y, welche die Zahl der hinzugefügten Punkte zumq-Pfad beschreibt, geometrisch mit dem Parameter 1/2 verteilt.

Angenommen, Mi beschreibt die Zahl der in Ebene i zum p-Pfad hinzugefügten Kantenund Ni die Zahl der in Ebene i zum q-Pfad hinzugefügten Kanten (1 ≤ i ≤ h). Mi undNi sind Zufallsvariablen. Da die Zahl der zu einem Teilpfad hinzugefügten Punkte der Zahlder hinzugefügten Kanten entspricht, gilt, dass Mi und Ni ebenfalls geometrisch mit demParameter 1/2 verteilt sind. Die Erwartungswerte für alle Mi bzw. Ni betragen

E(Mi) = E(Ni) =112

= 2. (13)

Die Gesamtzahl N der Kanten im berechneten Pfad von p nach q beträgt∑h

i=1(Mi + Ni).Wie bereits weiter oben festgestellt wurde, beträgt die zu erwartende Anzahl an Ebenen desSkip List Spanners (h) mit hoher Wahrscheinlichkeit log n, weshalb sich folgende Aussageüber den Erwartungswert von N treffen lässt:

E(N) =log n∑i=1

(E(Mi) + E(Ni)) =log n∑i=1

(2 + 2) = 4 log n (14)

Da es sich bei den einzelnen Münzwürfen für die Punkte um jeweils voneinander unabgän-gige Bernoulli-Experimente handelt, lässt sich mit Hilfe der Chernoff-Schranke (vgl. [7]) dieWahrscheinlichkeit einschränken, dass N von seinem Erwartungswert abweicht. Die generelleAussage der Chernoff-Schranke lautet

Page 204: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

196 Philipp Wissneth

P (X ≤ (1− ε)E(X)) ≤ exp(−ε2E(X)2

)

P (X ≥ (1 + ε)E(X)) ≤ exp(−ε2E(X)3

). (15)

Wobei X eine Zufallsvariable oder die Summe über Zufallsvariablen ist und E(X) dessenErwartungswert. Für die Zufallsvariable N beschreibt die Chernoff-Schranke also

P (N ≤ (1− ε)4 log n) ≤ exp(−ε24 log n

2)

P (N ≥ (1 + ε)4 log n) ≤ exp(−ε24 log n

3). (16)

Daraus folgt, dass der tatsächliche Wert für N mit hoher Wahrscheinlichkeit nur gering vondem des Erwartungswertes abweicht. Insbesondere ist die Wahrscheinlichkeit, dass N unterdem Erwartungswert liegt etwas größer als die Wahrscheinlichkeit, dass der tatsächlicheWert für N über dem Erwartungswert von N liegt.

Mit Hilfe dieser Beobachtung gilt mit hoher Wahrscheinlichkeit, dass E(N) = 4 log n =O(log n). Daraus folgt, dass der Durchmesser des Skip List Spanners ebenfalls mit hoherWahrscheinlichkeit durch O(log n) beschränkt ist. Die erwartete Laufzeit T von walk(p,q)ist mit hoher Wahrscheinlichkeit beschränkt durch

E(T ) = O(E(N) log(1/Θ) + h)= O(log n log(1/Θ) + log n)

= O(log(1/Θ) log n). (17)

Die Erkenntnisse über die Eigenschaften des Skip List Spanners und den zugehörigen Algo-rithmus walk(p,q) zur Bestimmung von t-Spanner Pfaden können wie folgt zusammengefasstwerden:

Theorem 2 (vgl. Theorem 10 in [4]). Sei k > 8 ein ganzzahliger Wert, Θ = 2π/k undS eine Menge von n Punkten im Rd.

1. Der Skip List Spanner SLS(S, k) ist ein t-Spanner für t = 1/(cos Θ− sinΘ). Er enthälteine erwartete Anzahl von O((c/Θ)d−1n) Kanten für eine Konstante c.

2. Der Skip List Spanner kann in erwarteter Zeit O((c/Θ)d−1n logd−1 n) mit einem erwar-teten Speicherplatzbedarf von O((c/Θ)d−1n + logd−2 n) konstruiert werden.

3. Die zu erwartende maximale Zeit zum konstruieren eines t-Spanner Pfades von einembeliebigen Punkt aus S zu einem anderen beliebigen Punkt aus S ist beschränkt durchO(log(1/Θ) log n).

4. Der zu erwartende Durchmesser des konstruierten Skip List Spanners ist beschränktdurch O(log n).

5. Sämtliche Beschränkungen gelten mit hoher Wahrscheinlichkeit.

Page 205: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Konstruktion von geometrischen Spannern mit geringem Durchmesser 197

4 Zusammenfassung

In dieser Ausarbeitung wurde gezeigt, dass t-Spanner mit einem erwarteten Durchmesservon O(log n) für t = 1/(cos Θ−sin Θ) existieren. Es handelt sich dabei um eine randomisier-te Datenstruktur, welche auf Skip-Listen und Θ-Graphen basiert. Der sogenannte Skip ListSpanner enthält eine erwartete Anzahl von O((c/Θ)d−1n) Kanten für eine Konstante c. DieZeit zum Bestimmen eines t-Spanner Pfades ist mit hoher Wahrscheinlichkeit beschränktdurch O(log(1/Θ) log n). Der Algorithmus zum Bestimmen des gesuchten Pfades ist deter-ministisch, jedoch kann wegen der ihm zugrunde liegenden randomisierten Datenstrukturlediglich eine Aussage über die zu erwartende Laufzeit getroffen werden.

Arya, Mount und Smid nennen in [4] einige Konstruktionen von geometrischen Spannern,in welchen t-Spanner Pfade bis zu Ω(n) Kanten enthalten können. Durch den hier mit hoherWahrscheinlichkeit zu erzielenden Wert von O(log n) ist ein t-Spanner Pfad effizienter zuspeichern und durch die vergleichsweise geringe Anzahl an zu besuchenden Knoten undKanten in bestimmten Anwendungsfällen zu bevorzugen.

Um die dem Skip List Spanner zugrunde liegenden Θ-Graphen effizient konstruie-ren zu können, wurde eine auf orthogonalen Bereichsanfragen von Bereichsbäumen ba-sierende Technik vorgestellt, mit dessen Hilfe es möglich ist, den Skip List Spannerin erwarteter Zeit O((c/Θ)d−1n logd−1 n) mit einem erwarteten Speicherplatzbedarf vonO((c/Θ)d−1n + logd−2 n) zu konstruieren. Im Vergleich zu ähnlichen Verfahren konnte hierdurch das Vorwissen, dass für alle Punkte der Punktmenge S eine Bereichsanfrage gestartetwird, Speicherplatz in Höhe eines Faktors von log n eingespart werden.

Literaturverzeichnis

1. J. Ruppert, R. Seidel (1991) Approximating the d-dimensional complete Euclidian graph, Proc. 3rdCanadian Conf. on Computational Geometry 207–210.

2. W. Pugh (1990) Skip Lists: A probabilistic alternative to balanced search trees, Communications ofthe ACM 33:668–676.

3. S. Arya, M. Smid (1997) Efficient construction of a bounded degree spanner with low weight, Algorith-mica 17:33–54.

4. S. Arya, D. M. Mount, M. Smid (1999) Dynamic algorithms for geometric spanners of small diameter:Randomized solutions, Computational Geometry: Theory and Applications 13(2):91–107.

5. M. de Berg, M. van Kreveld, M. Overmars, O. Schwarzkopf (1997) Computational Geometry – Algo-rithms and Applications. Springer Verlag.

6. R. Klein (1997) Algorithmische Geometrie – Grundlagen, Methoden, Anwendungen. Springer Verlag.7. K. Mulmuley (1994) Computational Geometry, an Introduction through Randomized Algorithms. Pren-

tice Hall, Englewood Cliffs.8. A.C. Yao (1982) On constructing minimum spanning trees in k-dimensional spaces and related Pro-

blems, SIAM J. Comput. 11:721–736.9. B. Chazelle, J. Friedman (1994) Point location among hyperplanes and unidirectional ray-shooting,

Computational Geometry – Theory and Applications. 4:53–62.

Page 206: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide
Page 207: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Ein einfacher, linearer (1+ε) - Approximationsalgorithmus fürdas k-Means Clustering Problem

Markus Heberling

Universität Paderborn [email protected]

Zusammenfassung. k-Means Clustering ist das Auffinden von k Mittelpunkten zu einer Menge von Punk-ten, so dass die Summe aller Entfernungen von allen Punkten zu ihrem nächsten Mittelpunkt minimal ist.In dieser Ausarbeitung wird ein Algorithmus beschrieben, der eine (1+ε) - Approximation des k-MeansClusterings in linearer Zeit liefert.

Die Idee des Algorithmus ist es, den Mittelpunkt des größten Clusters einer Punktmenge zu appro-ximieren, indem alle Untermengen einer konstanten Größe durchprobiert werden. Um diesen Mittelpunktkönnen dann Punkte aus der Gesamtmenge weggenommen werden und es kann rekursiv der Mittelpunktdes nächstkleineren Clusters ermittelt werden.

1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

1.1 Unreduzierbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

2 1-Means und 2-Means . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202

2.1 1-Means . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2022.2 2-Means . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

3 k-Means Näherung in linearer Zeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

3.1 Idee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2033.2 irred-k-means . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2043.3 k-Means . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208

4 Vergleich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

5 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

1 Einleitung

Diese Ausarbeitung beschäftigt sich mit dem Thema k-Means Clustering, und einer linea-ren Approximation, die in [6] beschrieben ist. Sie baut auf der Proseminar Ausarbeitungvon Holger Bürger zum Thema 2-Means auf. Zunächst folgt eine kurze Wiederholung derProblemstellung.

Das k-Means Clusteringproblem ist durch die Formel min(∑

p∈P d(p, C)2) definiert. Da-bei ist C die Menge der Mittelpunkte und d(p, C) ist die Entfernung von p zum nächstenPunkt aus C. Dies bedeutet, dass jeder Punkt p ∈ P seinem nächsten Mittelpunkt aus C

Page 208: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

200 Markus Heberling

zugewiesen wird. Somit bilden alle Punkte, die dem gleichen Mittelpunkt zugewiesen sind,einen Cluster.

Für variable k und n ist das Problem NP-Schwer. Bei konstanten k kann es in Poly-nomieller Laufzeit gelöst werden. So wird in [5] ein optimaler Algorithmus beschrieben,der das k-Means Problem in O(nkd+1) löst. Einer der meist benutzten Algorithmen zurApproximation des k-Means Problems ist Lloyds Algorithmus [7]. Dabei werden k zufäl-lige Mittelpunkte gewählt. Für jeden Punkt der Gesamtmenge wird der Mittelpunkt mitder kürzesten Distanz bestimmt. Punkte mit dem gleichen Mittelpunkt bilden dann einenCluster. Für jeden der erhaltenen Cluster wird dann ein neuer Mittelpunkt berechnet undes werden wieder alle Punkte dem am kürzesten entfernten Mittelpunkt zugeordnet. Dieswird solange wiederholt, bis keine Änderung mehr eintritt. Dabei kann man die Laufzeitdes Algorithmus nicht abschätzen. Außerdem kann es passieren, dass der Algorithmus ineinem beliebig schlechten lokalen Minimum endet. Es lassen sich also weder Aussagen überGenauigkeit noch über das Laufzeitverhalten treffen.

Ein häufiger Verwendungszweck des k-Means Algorithmus ist im Data-Mining. Eine gege-bene Datenmenge mit verschiedenen Dimensionen soll dabei in Ähnlichkeitscluster unterteiltwerden. Mithilfe des k-Means Clusterung können aber auch zum Beispiel Farben in in einemBild reduziert werden, um das Bild zu komprimieren (Abbildung 1). Dazu werden die RGBoder CMYK Werte der einzelnen Pixel als Dimensionen angesehen. Dazu können dann kMittelpunkte gefunden werden. Jeder Pixel wird dann durch die Farbwerte seines zugehö-rigen Mittelpunktes ersetzt. Anstatt z.B. 24Bit/Pixel benötigt man bei einer Reduzierungauf 32 Farben nur noch 5Bit/Pixel. Dazu kommt dann noch ein Index von 32*24Bit. DieseFarbreduzierung ist sehr schnell und liefert relativ gute Ergebnisse. Zur weiteren Geschwin-digkeitsverbesserung kann das Berechnen des Clusters auch auf eine Untermenge aller Pixelangewendet werden.

Abb. 1. Bildkompression mit k=32[3]

Page 209: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

(1+ε) - k-Means - Approximation 201

Eine lineare Annäherung für k = 2 wurde im Kapitel von Holger Bürger bereits beschrie-ben. Der Algorithmus für das k-Means Problem basiert hierauf. Ziel ist es für das k-MeansProblem einen Näherungsalgorithmus zu beschreiben, der in Laufzeit O(nd) eine Näherungliefert, die maximal um einen konstant gewählten Faktor ε vom Optimum abweicht. In 2wird ein 3-Means Clustering gezeigt. Dabei sind die Sterne die Clustermittelpunkte.

Abb. 2. 3-Means Beispiel

1.1 Unreduzierbarkeit

Im weiteren Verlauf wird der Begriff der Reduzierbarkeit bzw. Unreduzierbarkeit benötigt.

Definition 1. Ein Problem ist (k, ε))-unreduzierbar, wenn gilt ∆k−1(P ) ≤ (1 + 32ε)∆k(P )

Wenn wir für ein Problem also anstatt der k-Means Lösung eine (k-1)-Means Lösungfinden können, die Nahe an der optimalen k-Means Lösung liegt, so können wir das k-

Page 210: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

202 Markus Heberling

Means Problem auf ein einfacheres (k-1)-Means Problem reduzieren. Ist dies nicht der Fall,so ist das Problem unreduzierbar.

2 1-Means und 2-Means

Kurz zur Wiederholung sind hier die Konzepte für 1-Means und 2-Means aufgeführt. DieBeweise dazu finden sich in der Ausarbeitung von Holger Bürger.

2.1 1-Means

Die optimale Lösung des 1-Means Problem ist der Mittelpunkt der gegebenen Punktmen-ge. Durch Random-Sampling kann in konstanter Zeit ein Mittelpunkt angenähert werden.Dazu werden einige Punkte der Originalmenge zufällig ausgewählt, und es wird für dieseUntermenge der Mittelpunkt bestimmt. Verschiedene mögliche Ergebnisse sind in Abbil-dung 3 dargestellt. Wenn man dabei m = 2/ε zufällige Punkte auswählt, erhält man mitder Wahrscheinlichkeit 1/2 eine (1 + ε)-Approximation des 1-Means Problems.

Abb. 3. Random Sampling

Page 211: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

(1+ε) - k-Means - Approximation 203

2.2 2-Means

Für das 2-Means Problem benötigen wir zunächst das Superset Sampling Lemma:

Lemma 1 (Superset Sampling Lemma). Es gilt minS′:S′⊂S,|S′|= 2

ε

∆(P ′, c(S′)) ≤ (1 +

ε)∆1(P ′) mit konstanter Wahrscheinlichkeit.

Dieses Lemma sagt aus, dass wir für eine Untermenge P ′ von P eine gute Approximationerhalten, obwohl P ′ noch nicht bekannt ist. Dazu sei |P ′| ≥ β|P |, wobei β zwischen 0 und 1liegt. Dann können wir von P eine zufällige Menge S der Größe 4

βε nehmen. Für alle mögli-chen Untermengen S′ der Größe 2

ε von S können wir nun den Mittelpunkt c(S′) berechnen.Nach Lemma 1 ist einer dieser Mittelpunkte eine gute Annäherung an den Mittelpunkt vonP ′.

Wir nehmen an die beiden optimalen Mittelpunkte seien c1 und c2 und die dazugehörigenCluster P1 und P2. Es gelte P1 ≤ P2, dann können wir von P eine Menge S der Größe 1

εsamplen. Wenn wir von S nun alle Mittelpunkte aller Untermengen der Größe 2

ε ermittelnist nach Lemma 1 eines davon eine gute Annäherung an c1. Wir nennen diesen Mittelpunktc′1.

Um den Punkt c′1 können wir nun alle Punkte entfernen, die einen Abstand kleiner alst/4 zu c′1 haben. t ist der Abstand der beiden optimalen Mittelpunkte c1 und c2. Wenndie Punkte entfernt sind kann im zweiten Schritt durch erneute Anwendung des SupersetSampling Lemmas der Mittelpunkt c′2 bestimmt werden. Da das Lemma jeweils eine Men-ge von Punkten zurück gibt, wird der zweite Schritt für jedes Element der ersten Mengedurchgeführt. Es wird dann zum Schluss das beste Ergebnis zurückgeliefert.

Zu beachten ist, dass der Wert t nicht bekannt ist. Es werden daher verschiedene Wertefür t ausprobiert. Dies wird in der 2-Means Ausarbeitung näher beschrieben.

3 k-Means Näherung in linearer Zeit

3.1 Idee

Die Grundidee zur Lösung des k-Means Problems ist die selbe wie beim 2-Means Problem.Wir wollen rund um einen gefundenen Mittelpunkt, Punkte aus der Gesamtmenge entfer-nen, so dass die Gesamtpunktmenge kleiner wird und in der verbliebenen Punktmenge einanderer Cluster größer ist. Dies können wir dann für alle Cluster machen und so die Punkt-menge immer weiter verkleinern und jeweils den Mittelpunkt des größten Clusters in derverbliebenen Menge suchen.

Dazu suchen wir mittels Superset Sampling zunächst den Mittelpunkt des größten Clus-ters. Um diesen Mittelpunkt können wir nun alle Punkte entfernen, die in einem Radiusvon t/4 um diesen Punkt liegen. t/4 ist dabei der Abstand zwischen dem optimalen Mittel-punkt dieses Clusters und dem optimalen Mittelpunkt, der am nächsten zu ihm liegt. Da dieoptimalen Clustermittelpunkte nicht bekannt sind, muss t/4 wie beim 2-Means Verfahrenangenähert werden. Sobald die Punkte entfernt sind kann man in der verbliebenden Punkt-menge den nächst größten Cluster suchen (Abbildung 4). Dabei ist zu beachten, dass dasSuperset Sampling nicht genau einen Mittelpunkt zurück liefert, sondern eine Menge vonPunkten, von denen einer eine gute Annäherung zum richtigen Mittelpunkt ist. Wir führen

Page 212: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

204 Markus Heberling

den 2. Schritt also nicht nur für einen Punkt aus sondern für jeden Punkt dieser Menge. Dieswiederholen wir k-mal, so dass wir für jeden der k Mittelpunkte eine Annäherung erhalten.Als Ausgabe liefern wir dann die beste Clusterung, die wir ermittelt haben.

tt

t/4

Abb. 4. 3-Means Beispiel

3.2 irred-k-means

Wir gehen zunächst davon aus, das das gegebene Problem k-unreduzierbar ist. Zunächst seider Algorithmus angegeben:

Funktionsweise

Der Algorithmus kombiniert das Random-Sampling (Zeile 6) und das verkleinern der Punkt-menge (Zeile 10). Die erste Rekursion in Zeile 9 führt dazu, dass der nächst kleinere Clustergefunden wird. Die zweite Rekursion in Zeile 9 ist die Verkleinerung der Punktmenge. Beim

Page 213: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

(1+ε) - k-Means - Approximation 205

Algorithmus 20 Irred-k-Means(Q,m, k,C, α, Sum)Vorbedingung: Q: Verbliebende Punkt Menge, m: Anzahl noch zu findender Cluster, k: Gesamtanzahl

Cluster, C Menge der k −m bereits gefundenen Mittelpunkte, α: Approximationsfaktor, Sum: Kostender Clustering von P −Q zu C

1: if m = 0 then2: Ordne alle Punkte in Q ihrem jeweiligen nächsten Mittelpunkt zu3: Sum = Sum+Clustering Kosten von Q4: return Clustering5: else6: Erstelle ein Random Sampling der Größe O(k/α2) von Q7: for alle Untermengen S′ der Größe O(1/α) von S do8: Finde den Mittelpunkt c von S′

9: Finde das Clustering irred-k-Means(Q, m− 1, k, C⋃

c, α, Sum)10: Betrachte die Punkte in Q in aufsteigender Entfernung von C11: U seien die ersten |Q|/2 Punkte dieser Sequenz12: Ordne alle Punkte in U ihrem jeweiligen nächsten Mittelpunkt aus C zu13: Sum = Sum+Clustering Kosten von U14: Finde das Clustering irred-k-Means(Q− U, m, k, C, α, Sum)15: return Clustering mit den minimalen Kosten

2-Means Clustering war die Punktmenge, die entfernt werden kann als Ball der Größe t/4um den ersten gefunden Cluster definiert. Wobei t der Abstand der beiden optimalen Mit-telpunkte c1, c2 ist. Beim k-Means Clustering können wir t definieren als den Abstand desoptimalen Mittelpunkts ci zum nächsten anderen optimalen Mittelpunkt. Wie beim 2-MeansClustering wissen wir vorab nicht, wie groß dieser Abstand ist. Deshalb benutzen wir diegleiche Technik um trotzdem die entsprechenden Punkte entfernen zu können. Dabei neh-men wir jeweils die Hälfte der Punkte, die näher an den bereits gefunden Clustern liegenund berechnen ein Clustering für P ohne diese Punkte. Da dies rekursiv geschieht bis wirnur noch einen Punkt haben, ist eines dieser Clusterings das Clustering, bei dem genaudie Punkte des Balls mit dem Radius t/4 um ci entfernt worden sind. Da wir das besteClustering nehmen, erhalten wir als Rückgabe genau dieses Clustering.

Korrektheit

Theorem 1. Angenommen eine Punktmenge P ist (k, α)-unreduzierbar. dann liefert derAlgorithmus Irred-k-means(P, k, k, ∅, α, 0) mit der Wahrscheinlichkeit γk eine Lösung desk-Means Problems mit den Kosten (1 + α)∆k(P ). dabei ist γ eine von k unabhängige Kon-stante.

Beweis. Wir betrachten eine optimale k-Means Lösung für die Eingabemenge P . c1, . . . , ck

seien die Mittelpunkte, die P in die Partitionen P1, . . . , Pk aufteilen. Die einzige Zufallsquellein unserem Algorithmus ist das Superset-Sampling-Lemma (Lemma 1). Dieses Lemma liefertaber nur mit einer gewissen Wahrscheinlichkeit das gewünschte Ergebnis. Wir nehmen fürserste an, dass das Lemma immer das gewünschte Ergebnis liefert, und berechnen hinterherfür welche Wahrscheinlichkeit unser Algorithmus erfolgreich ist.

Für die Eingabe (P, k, k, ∅, α, 0) wird der Algorithmus Irred-k-means mehrmals re-kursiv Aufgerufen. Sei C die Menge aller Aufrufe von Irred-k-means mit der Eingabe(P, k, k, ∅, α, 0). Ci sei die Menge der Aufrufe, in denen die Anzahl der bereits gefundenenMittelpunkte C die Größe i hat. Für alle i soll folgende Invariante gelten:

Page 214: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

206 Markus Heberling

1. Sei C = c′1, . . . , c′i, dann gilt für j = 1, . . . , i, ∆(Pj , c′j) ≤ (1 + α)∆(Pj , cj)

2. Die Menge P −Q ist eine Untermenge von P1 ∪ . . . ∪ Pi

Wenn wir zeigen können, dass die Invariante für i = k gilt, haben wir gezeigt, dass derAlgorithmus korrekt arbeitet. Für i = 0 ist die Invariante erfüllt. Wir zeigen jetzt mittelsInduktion, dass die Invariante für i + 1 gilt, wenn sie für i gilt.

Da die Invariante für i gilt, gibt es Parameterlisten in Ci, für die die Invariante gilt.Von diesen Listen wählen wir die Liste (Q,m, k,C, α, Sum), für die |Q| minimal ist. Wirbetrachten das Paar von Mittelpunkten der Mengen cl ∈ c1, . . . , ci und cr ∈ ci+1, . . . , ckmit dem kürzesten Abstand von einander. Sei t = d(cl, cr)

Lemma 2. Sei S die Menge von Punkten B(c′1, t/4)∪ . . .∪B(c′i, t/4)), also die Punkte, diehöchstens t/4 von c′1, . . . , c′i entfernt sind. Dann ist S in P1∪ . . .∪Pi enthalten und P −Senthält höchstens |Pi+1|/α Punkte von P1 ∪ . . . ∪ Pi.

Beweis. Wir nehmen an, dass Pj einen Punkt von S enthält, j > i. Wir sagen Pj enthalteeinen Punkt x ∈ B(c′q, t/4), q ≤ i.

Behauptung. d(cq, c′q) ≥ t/4.

Beweis. Wir nehmen das Gegenteil an. Dann ist d(cq, x) < t/2. x ist aber seinem nächstenMittelpunkt zugeordnet, also d(cj , x) ≤ d(cq, x) < t/2. Dann gilt d(cj , cq) < t, was einWiderspruch ist. ut

Wir wissen das ∆(Pq, c′q) ≤ (1 + α)∆(Pq, cq) ist. Aber durch die Gleichung (2)1 wissen

wir das ∆(Pq, c′q) = ∆(Pq, cq) + |Pq|d(cq, c

′q)

2 ist. Wir wissen also:

|Pq|d(cq, c′q)

2 ≤ α∆(Pq, cq) (1)

Es gilt d(cq, cj) ≤ d(cq, c′j) + d(cq, x) + d(x, cj) und d(x, cj) ≤ d(x, cq) ≤ d(x, c′q) +

d(cq, c′q). Wir erhalten also d(cq, cj) ≤ 2d(c′q, x) + 2d(cq, c

′q). Zusammen mit dem Claim von

oben erhalten wir, d(cq, cj) ≤ 4d(cq, c′q). Angenommen wir würden alle Punkte von Pq dem

Mittelpunkt cj zuordnen. Dann erhalten wir als Kosten:

∆(Pq, cj) = ∆(Pq, cq) + |Pq|d(cq, cj)2

≤ ∆(Pq, cq) + 16|Pq|d(cq, c′q)

2

≤ (1 + 16α)∆(Pq, cq)

Die letzte Ungleichung folgt von Gleichung 1. Aber dies widerspricht der Bedingung, das P(k, α)-unreduzierbar ist. Also ist S in P1 ∪ . . . ∪ Pi enthalten.

Angenommen P−S enthält mehr als Pl/α Punkte von P1∪. . .∪Pi. In diesem Fall werdendiese Punkte Mittelpunkten zugewiesen, die mindestens eine Entfernung von t/4 haben. Esfolgt, dass die Kosten der optimalen Lösung ∆k(P ) mindestens t2|Pl|

16α sind. Dies bedeutet,t2|Pl| ≤ 16α∆k(P ). Wenn wir nun aber alle Punkte in Pl cr zuweisen, dann erhöhen sichdie Kosten maximal um 16α∆k(P ), was bedeuten würde, dass P (k, α)-reduzierbar ist, wasein Widerspruch ist.

ut1 Definiert in der Ausarbeitung von Holger Bürger

Page 215: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

(1+ε) - k-Means - Approximation 207

Sei S die Punktmenge B(c′1, t/4) ∪ . . . ∪ B(c′i, t/4) und P ′ = P − S. Wir wissen, dassPi+1 ∪ . . . ∪ Pk in P ′ ∩Q enthalten ist.

Behauptung. |Pi+1| ≥ αk |P

′|.

Beweis. Wegen Lemma 2 gibt es höchstens |Pi + 1|/α Elemente von P1 ∪ . . . ∪ Pi in P ′.Also gilt |P ′| ≤ |Pi+1|/α + |Pi+1|+ . . . + |Pk| ≤ |Pi+1|/α + k|Pi+1| ≤ k

α |Pi + 1|ut

Es folgt, dass |Pi + 1| ≥ αk |P

′ ∩Q|. Wenn wir also P ′ kennen würden, dann könnten wirmit Lemma 1 einen Punkt c′i+1 berechnen der eine gute Approximation zu ci+1 ist, in demwir O(k/α2) Punkte von P ′ ∩Q samplen. Leider kennen wir P ′ nicht.

Lemma 3. |P ′ ∩Q| ≥ |Q|/2.

Beweis. Wir nehmen das Gegenteil an: |P ′ ∩Q| ≤ |Q|/2.

Behauptung. Wir betrachten die Punkte in Q aufsteigend sortiert nach der Entfernung vonC. U seien die ersten |Q|/2 Punkte. Dann enthält U keinen Punkt aus P ′ ∩Q.

Beweis. Sei x ∈ P ′ und y ∈ P −P ′, dann behaupten wir, dass y näher zu C ist als x. Wegender Definition von P ′ gibt es einen Mittelpunkt c, für den gilt, dass d(c, y) ≤ t/4. Wäre xnäher an C als y, dann gäbe es einen Mittelpunkt in C, dessen Abstand zu x höchstens t/4beträgt. Aber dann gilt x ∈ P − P ′, ein Widerspruch zu x ∈ P ′. ut

P ′∩Q ist also eine Untermenge von Q−U . da Pi+1∪. . .∪Pk in P ′∩Q enthalten ist (Lemma2), folgt, dass Pi+1 ∪ . . . ∪ Pk eine Untermenge von Q− U ist. Daher ist die Parameterliste(Q − U,C, k, m, α, Sum) in Ci. dies ist ein Widerspruch dazu, dass (Q,C, k, m, α, Sum) inCi ist. Dies beweist das Lemma.

ut

Es wurde also gezeigt, dass die Invariante für alle i gilt und somit der Algorithmus daskorrekte Ergebnis liefert.

Wahrscheinlichkeit

Wir hatten bisher eine Wahrscheinlichkeit für das gewünschte Ergebnis des Superset Samp-ling Lemmas mit 1 angenommen. Das Superset Sampling Lemma 1 liefert das gewünschteErgebnis jedoch nur mit einer konstanten Wahrscheinlichkeit kleiner 1. In jedem Durchlaufder Rekursion in Zeile 9 wird m um 1 verkleinert. Also sind in jeder Abfolge von Rekursions-aufrufen höchstens k Aufrufe des Samplings. Es wurde eben gezeigt, dass es eine ParameterListe Ck gibt, für die C eine Menge von Mittelpunkten enthält, die nah an den optimalenMittelpunkten liegen. Wenn wir uns nun die Abfolge von Aufrufe anschauen, die zu dieserParameter Liste geführt haben, sehen wir, dass wir k Aufrufe des Samplings haben. Jederdieser Aufrufe liefert das gewünschte Ergebnis mit konstanter Wahrscheinlichkeit γ. DieWahrscheinlichkeit, dass wir genau diese Parameter Liste erhalten ist also γk.

Page 216: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

208 Markus Heberling

Laufzeit

Theorem 2. Der Algorithmus irred-k-Means, aufgerufen mit den Parametern (P,m, k, C, α, 0),hat eine Laufzeit von O(2(k/α)O(1)

), wobei n = |P | ist.

Beweis. Sei T (n, m) die Laufzeit des Algorithmus mit der Eingabe (Q,m,k,C, α,Sum),wobei n = |Q| ist.

T (n, 0) = O(nd), da in diesem Fall nur der erste Fall in Zeile 1 ausgeführt wird und dasZuordnen aller Punkte zu ihrem Mittelpunkt O(nd) Zeit benötigt.

T (n, 0) = O(nd) (2)

In Zeile 7 erhalten wir u(k, α) = O(2(k/α)O(1)) Samples. Das Zuordnen der Mittelpunkte

in Zeile 8 benötigt O(d) Schritte. In Zeile 10 des irred-k-Means-Algorithmus werden die|Q|/2 Punkte mit der geringsten Entfernung zu ihren jeweiligen Mittelpunkten berechnet.Wenn man dies wie hier angegeben zunächst durch Sortierung und dann Auswahl der Punktemacht, erhält man dort eine Laufzeit von O(n∗log n+n). Dies widerspricht der Behauptung,dass der gesamte Algorithmus eine lineare Laufzeit erreicht. Die Auswahl der kleinsten kPunkte kann aber auch in linearer Zeit geschehen, wie in [1] gezeigt wird. Wir erhalten alsofür die Zeilen 10 bis 13 eine Laufzeit von O(nd)

Für den allgemeinen Fall erhalten wir also die rekursive Gleichung

T (n, m) = O(u(k, α))T (n, m− 1) + T (n/2,m) + O((n + u(k, α))d) (3)

Diese Gleichung lässt sich zu T (n, k) = O(2k/αO(1)dn) auflösen.

ut

3.3 k-Means

Um eine gute Lösung auch für reduzierbare Probleme finden zu können, werden wir denAlgorithmus irred-k-means für alle i = 1 . . . k durchlaufen (Algorithmus 21) und das Mini-mum als Ergebnis ausgeben. Dies erhöht die Laufzeit um den Faktor k, bleibt also immernoch linear in der Menge der Punkte.

Algorithmus 21 k-Means(P, k, ε)Vorbedingung: P : Punktmenge, k: Gesamtanzahl Cluster, ε: Approximationsfaktor1: for i = 1 . . . k do2: Finde das Clustering irred-k-Means(P, i, i, ∅, ε/64k, 0)3: return Clustering mit den minimalen Kosten

Es bleibt also nur noch zu zeigen, dass der Algorithmus korrekt arbeitet.Sei i der größte Index, für den P (i, α)-unreduzierbar ist. Daraus folgt ∆i ≤ (1 +

32α)∆i+1(P ) ≤ . . . (1 + 32α)k−1∆k(P ).Weiterhin wissen wir, dass Irred-k-means(P, i, i, ∅, α, 0) eine Menge C mit i Mittelpunk-

ten liefert, für die gilt ∆(P,C) ≤ (1+α)∆i(P ). Also bekommen wir ein Ergebnis mit Kostenvon höchstens (1 + 32α)k∆k(P ). Dabei ist (1 + 32α)k = (1 + ε/2k)k ≤ 1 + ε.

Der Algorithmus liefert also eine (1 + ε)-Approximation des k-Means Problems.

Page 217: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

(1+ε) - k-Means - Approximation 209

4 Vergleich

Im Vergleich mit anderen Näherungsverfahren, hat dieser Algorithmus den Vorteil, lineareLaufzeit in der Menge der Punkte zu haben. Allerdings sind die konstanten Faktoren sehrhoch. Das bedeutet, dass der Algorithmus erst bei sehr großen Eingabemengen schnellerist als andere Algorithmen. Gerade bei Erhöhung der Wahrscheinlichkeit steigt die Laufzeitexponentiell an. Ein Vergleich mit den Algorithmen von Inaba [5], Matousek [8], de la Vega[2] and Har-Peled [4] ist in Abbildung 5 dargestellt.

0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 1

10

100

1 1e+50

1e+100 1e+150 1e+200 1e+250 1e+300

inf

Zeit

Inaba (exact)Matousek

de la VegaHar-Peled

Kumar, Sabharwal, Sen (this)

n

k

Zeit

Abb. 5. Vergleich verschiedener k-Means Algorithmen

In Abbildung 6 zeigt die Algorithmen mit den Parametern k=2, e=0.9, d=2. Es istzu erkennen, dass der lineare Algorithmus ab einer Eingabegröße von ca. 3 ∗ 1021 besserabschneidet als der genaue Algorithmus. Hier ist auch klar der lineare Verlauf zu sehen. Dieanderen Algorithmen sind in dieser Grafik nur am unteren Rand zu erkennen.

Wenn man sich nun aber die Algorithmen mit den gleichen Parametern mit Logarithmi-scher Darstellung der y-Achse ansieht, dann fällt auf, dass die anderen Näherungsverfahrendeutlich unter dem exakten und dem linearen Verfahren liegen. (Abbildung 7). Für höhereDimensionen sieht es für diesen Algorithmus wieder besser aus, da die Dimension nur line-ar eingeht (Abbildung 8). Aber auch hier gibt es eine bessere Alternative. Bei höheren k(Abbildung 9) und kleineren ε (Abbildung 10) sind die anderen Algorithmen jedoch wiederdeutlich besser.

Page 218: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

210 Markus Heberling

0

2e+107

4e+107

6e+107

8e+107

1e+108

1.2e+108

0 5e+20 1e+21 1.5e+21 2e+21 2.5e+21 3e+21 3.5e+21 4e+21

Zeit

n

Inaba (exact)Matousek

de la VegaHar-Peled

Kumar, Sabharwal, Sen (this)

Abb. 6. Vergleich der Laufzeit bei Änderung der Größe der Punktmenge n

1

1e+20

1e+40

1e+60

1e+80

1e+100

1e+120

0 5e+20 1e+21 1.5e+21 2e+21 2.5e+21 3e+21 3.5e+21 4e+21

Zeit

n

Inaba (exact)Matousek

de la VegaHar-Peled

Kumar, Sabharwal, Sen (this)

Abb. 7. Vergleich der Laufzeit bei Änderung der Größe der Punktmenge n (Zeit-Achse logarithmisch)

Page 219: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

(1+ε) - k-Means - Approximation 211

1

1e+50

1e+100

1e+150

1e+200

1e+250

1e+300

inf

0 100 200 300 400 500 600 700 800 900 1000

Zeit

d

Inaba (exact)Matousek

de la VegaHar-Peled

Kumar, Sabharwal, Sen (this)

Abb. 8. Vergleich der Laufzeit bei Änderung der Dimensionen d

1

1e+50

1e+100

1e+150

1e+200

1e+250

1e+300

inf

10 20 30 40 50 60 70 80 90 100

Zeit

k

Inaba (exact)Matousek

de la VegaHar-Peled

Kumar, Sabharwal, Sen (this)

Abb. 9. Vergleich der Laufzeit bei Änderung der Anzahl Cluster k

Page 220: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

212 Markus Heberling

1

1e+50

1e+100

1e+150

1e+200

1e+250

1e+300

inf

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Zeit

e

Inaba (exact)Matousek

de la VegaHar-Peled

Kumar, Sabharwal, Sen (this)

Abb. 10. Vergleich der Laufzeit bei Änderung der Genauigkeit ε

5 Fazit

Insgesamt ist zu sagen, dass dieser Algorithmus zwar eine lineare Laufzeit hat, durch die ho-hen konstanten Faktoren jedoch oft andere Näherungen, oder sogar der genaue Algorithmusschneller sind.

In [9] werden drei weitere Algorithmen mit sehr guten Laufzeiten von O(kε

kdn), O(k3n2 log n)

und O(k5 log3 kd) beschrieben. Diese Algorithmen liefern allerdings keine (1+ε) Approxi-mation, sondern sind in dieser Beziehung schlechter.

Offen bleibt, ob es möglich ist die Performance weiter zu steigern, indem zum Beispiel fürkleinere Teilprobleme innerhalb dieses Algorithmus einer der anderen Algorithmen benutztwird, ohne dass dabei die Gesamtgenauigkeit verloren geht.

Literaturverzeichnis

1. Manuel Blum, Robert W. Floyd, Vaughan R. Pratt, Ronald L. Rivest, and Robert Endre Tarjan. Timebounds for selection. J. Comput. Syst. Sci., 7(4):448–461, 1973.

2. Wenceslas Fernandez de la Vega, Marek Karpinski, Claire Kenyon, and Yuval Rabani. Approximationschemes for clustering problems. In STOC, pages 50–58. ACM, 2003.

3. Alessandro Giusti. Clustering colors in an image. http://www.leet.it/home/lale/clustering.4. Sariel Har-Peled and Akash Kushal. Smaller coresets for k-median and k-means clustering. Discrete &

Computational Geometry, 37(1):3–19, 2007.5. Mary Inaba, Naoki Katoh, and Hiroshi Imai. Applications of weighted voronoi diagrams and randomi-

zation to variance-based k-clustering: (extended abstract). In SCG ’94: Proceedings of the tenth annualsymposium on Computational geometry, pages 332–339, New York, NY, USA, 1994. ACM.

6. Amit Kumar, Yogish Sabharwal, and Sandeep Sen. A simple linear time (1 + ε) - approximation algorithmfor k-means clustering in any dimensions. In FOCS ’04: Proceedings of the 45th Annual IEEE Symposium

Page 221: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

(1+ε) - k-Means - Approximation 213

on Foundations of Computer Science (FOCS’04), pages 454–462, Washington, DC, USA, 2004. IEEEComputer Society.

7. S. Lloyd. Least squares quantization in pcm. IEEE Transactions on Information Theory, 28:129–137,1982.

8. Jirí Matousek. On approximate geometric k-clustering. Discrete & Computational Geometry, 24(1):61–84,2000.

9. Mingjun Song and Sanguthevar Rajasekaran. Fast k-means algorithms with constant approximation. InXiaotie Deng and Ding-Zhu Du, editors, ISAAC, volume 3827 of Lecture Notes in Computer Science,pages 1029–1038. Springer, 2005.

Page 222: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide
Page 223: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Peer-to-Peer Netzwerke: Skip-Graph

Marc Borowski

Universität Paderborn

Zusammenfassung. In dieser Ausarbeitung wird die Datenstruktur Skip-Graph vorgestellt. Diese ist inder Lage Daten verteilt auf Knoten eines Peer-to-Peer Netzen zu speichern und zu suchen. Dabei werden dieHauptanforderungen bei P2P Netze, wie Dezentralisierung, Fehlertoleranz, Skalierbarkeit und Lastverteilungberücksichtigt. Gegenüber alternativen Lösungen bietet der Skip-Graph eine sehr hohe Ausfallsicherheit derDatenstruktur bei jeder Art von Ausfällen einzelner Peers und eröffnet zudem weitere Möglichkeiten, wieeine Bereichssuche.

1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

1.1 Eigenschaften von Peer-to-Peer Netzwerken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2161.2 Existierende Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2161.3 Verteilte Hashtabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2191.4 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

2 Die Datenstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

2.1 Skip-Liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2202.2 Skip-Graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

3 Operationen auf einem Skip-Graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222

3.1 Die Suche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2223.2 Einfügen neuer Peers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2243.3 Entfernen von Peers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2253.4 Operationen bei mehrfachem gleichzeitigen Zugriff . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

4 Qualitätsanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

4.1 Fehlertoleranz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2264.2 Auslastung der Peers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229

5 Varianten und Erweiterungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

5.1 Mehrere Nachfolger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2315.2 SkipNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2325.3 Expander Graphen in Skip-Graphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232

6 Zusammenfassung und Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

Page 224: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

216 M. Borowski

1 Einleitung

Die Verbreitung von Peer-to-Peer Netzwerken (P2P) hat in den letzten Jahren stark zu-genommen. Die Verwendung kostengünstiger Massencomputer ermöglicht große finanzielleEinsparungen gegenüber dem Betrieb großer Serverarchitekturen.

1.1 Eigenschaften von Peer-to-Peer Netzwerken

Heutige P2P-Anwendungen werden insbesondere durch drei wichtige Eigenschaften beschrie-ben:

Client- und Serverfunktionalität: In einem P2P-Netzwek kann jeder Knoten im Kontext ei-ner Anwendung Daten speichern, senden und empfangen. Er ist damit in der Lage,sowohl Client- als auch Serverfunktionalität zu leisten. Im idealen Fall sind alle Knotengleichberechtigt und gleichwertig.

Direkter Austausch zwischen Peers: Wenn zwei Knoten eines Netzwerks direkt miteinanderverbunden sind, können sie in Echtzeit miteinander interagieren. Es gibt keine zentraleInstanz, die die Kommunikation verzögert oder filtert. Dabei ist es unerheblich welcheDaten zu welchem Zweck ausgetauscht werden.

Autonomie: Den Knoten eines P2P-Netzwerkes kommt dabei vollkommene Autonomie imSinne der (Selbst-) Kontrolle ihrer eigenen Aktivitäten zu, d.h. sie allein legen fest,wann und in welchem Umfang sie ihre Ressourcen anderen zur Verfügung stellen. AlsFolge dieser Autonomie ist nicht sichergestellt, dass ein Knoten dem Netz ständig zurVerfügung steht. Das Netzwerk muss also tolerieren, dass die Knoten nicht permanentonline sind.

1.2 Existierende Lösungen

Es gibt viele verschiedene Ansätze, wie Daten in einem P2P Netz bereitgestellt und gefundenwerden können. P2P Architekturen können dabei in zentrale und dezentrale Architekturenunterteilt werden.Bei zentralen P2P-Netzwerken ist ein zentraler Server erforderlich, auf dem gespeichert ist,welcher User welche Daten zum Tausch bereitstellt. Nun richtet das Filetauschprogrammdes Users seine Suchanfrage direkt an diesen Server und erhält von dem wiederum die Such-ergebnisse zurück. Hierbei werden die Suchergebnisse erheblich schneller geliefert als beimdezentralen P2P. Wird nun ein File geladen, geschieht dies allerdings nun direkt vom ande-ren User.Diese Technik hat aber den Nachteil, dass das File-Sharing-Programm im Falle eines Verbo-tes abgeschaltet werden kann. Dies kann dann ganz leicht durch ein Abschalten der Serverbewerkstelligt werden.

Napster

Napster ist kein reines P2P-System, da ein zentraler Datenbank-Server Suchanfragen ver-waltet. Sobald sich ein Peer in das Napster-Netzwerk einloggt, werden vom Napster-Server

Page 225: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

P2P: Skip-Graph 217

S

S

S

SP

P

P

P P

P

napster.com

Download

R

Q

P PeerS ServerR ResponseQ Query

Abb. 1. Napster

die Dateien registriert, die der Anwender zur Verfügung stellt. Bei einer Suchanfrage lieferndie Napster-Server eine Liste von Peers, die die gewünschte Datei zum Downloaden be-reitstellen. Der Anwender kann dann eine direkte, serverlose Verbindung zu den Anbieternaufbauen und die Dateien beziehen.Die Server stellen damit den Flaschenhals des Netzwerkes dar: Die maximale Anzahl vongleichzeitigen Suchanfragen ist durch die Hardware begrenzt und ein Ausfall führt zum Zu-sammenbruch des ganzen Netzes.

Gnutella

P

P

PP

PP

P

QQ

QQ

R

R

D Peer QP QueryR Response

D File Download

Abb. 2. Gnutella

Gnutella wurde im März 2000 vom WinAmp-Entwickler Nullsoft herausgegeben und warnur kurze Zeit - bis zur Übernahme via Nullsoft durch AOL - erhältlich.Gnutella ist ein Protokoll für den Datenaustausch in dezentralen Netzwerken. Netzwerkedie auf der Gnutella-Technologie basieren, kommen damit ohne zentrale Instanzen aus. AlleRechner im Netz fungieren deshalb gleichzeitig sowohl als Server, als auch als Client. Sie

Page 226: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

218 M. Borowski

werden deshalb auch als Servents bezeichnet.Suchanfragen funktionieren hier nach dem „Schneeballprinzip“: Eine Suchanfrage wird analle direkt verbundenen Peers weitergeleitet. Diese leiten die Anfrage wiederum an benach-barte Peers weiter, bis eine zuvor bestimmte Suchtiefe erreicht wird. Positive Suchergebnissewerden dann über die Route der eingehenden Anfrage zurück an den Anfrager gesendet, sodass dieser die gewünschte Datei direkt von dem Anbieter herunterladen kann.Durch das Fehlen einer zentralen Komponente ist eine Überwachung oder Abschaltung vonGnutella-basierten Netzwerken kaum möglich. Das ist der wichtigste Unterschied zu Naps-ter. Außerdem beschränkt sich Gnutella, anders als Napster, nicht nur auf MP3-Dateiensondern bietet allgemeines File-Sharing an.

Freenet

Freenet ist ein dezentrales geschlossenes Netzwerk zum Speichern und Austausch von In-formationen, welches ohne zentrale Instanz auskommt. Entwickelt wurde Freenet von IanClarke mit dem Ziel, ein Netzwerk zu schaffen, in dem Informationen anonym bezogen wer-den und auf Anforderung zur Verfügung gestellt werden können. Die Dateien werden zudiesem Zweck verschlüsselt auf den PCs der teilnehmenden Peers gespeichert. Nur der Her-ausgeber der Informationen ist in der Lage diese zu verändern. Die Peers wissen dabei nicht,welche Daten auf ihrer Festplatte abgelegt werden. Nutzer dieses Systems Nutzer dieses Sys-tem müssen lediglich eine kleine Software installieren, die als Server und Client funktioniert.Jeder (der sich darauf versteht) kann Client oder Serverprogramme für Freenet schreiben.Freenet basiert auf einem offenen Protokoll. Autoren und Leser von Informationen bleibenanonym, wenn sie es wünschen. Informationen werden in einer Weise in Freenet verteilt,dass es schwer zu beurteilen ist, wo die Information gespeichert ist. Jeder Computerbesit-zer kann Informationen veröffentlichen. Dafür benötigt er weder einen Domainnamen, nochgekauften Speicherplatz auf einem Webserver. Sein eigener Computer wird zum Webserver.Welche Informationen des eigenen Computers der Nutzer freigibt, entscheidet er selbst.Freenet arbeitet mit einer fehlertoleranten, anpassbaren, verteilten Suchmaschine (FASD).FASD arbeitet mit Schlüsseln für Metadaten, das ist eine bewertete Liste, welche den In-halt eines Dokumentes im darunterliegenden Netzwerk beschreibt. Obwohl FASD dezentralarbeitet, ist diese Technik in der Lage so effektiv wie eine zentrale Suchmaschine zu arbeiten.

Wuala

Einen ähnlich Ansatz verfolgt auch das an der ETH Zürich entwickelte Wuala. Das erst vorkurzen veröffentlichte System fragmentiert Dateien mit einem Reed-Solomon-Code. DieseFragmente sind redundant, sodass nur ein Teil der Fragmente zur Wiederherstellung dervollständigen Datei benötigt wird. Die Fragmente werden anschließend auf Knoten des P2PNetzes verteilt. Daten, die nur privat oder einer geschlossenen Benutzergruppe zur Verfü-gung stehen sollen werden zuvor mit AES verschlüsselt.Die Daten werden auf den Knoten, wie in einer verteilten Hashtabelle gespeichert. Knotenkennen dabei nur ihre direkten Nachbarn. Eine Suche erfolgt, indem die Suchanfrage immerzu einem Knoten weitergeleitet wird, dessen Schlüssel eine größere Übereinstimmung mitdem Ziel hat. Zur Optimierung des Netzes speichert jeder Knoten auch weitere zufällige

Page 227: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

P2P: Skip-Graph 219

Verbindungen, die er aufgrund von Routinginformationen aus vorhergehenden Suchanfra-gen erzeugen hat.

1.3 Verteilte Hashtabellen

Es gibt viele Topologieansätze von P2P Netzwerken, die auf verteilten Hashtabellen (DHT)aufbauen. Ihnen gemein ist die Methode, die Daten vorher durch die Anwendung einer Has-hfunktion auf den Schlüssel auf die Peers zu verteilen. Anschließend wird über die physika-lische Netzstruktur ein virtuelles Netz aufgebaut, dass das effiziente Auffinden der Schlüsselermöglicht.Verteilte Hashtabellen dienen zur gleichmäßigen Verteilung von Datenobjekten auf die Kno-tenmenge. Der Speicherort soll dabei mit möglichst geringen Aufwand schnell und effizientgefunden werden.

Der Begriff Content-Addressable Network (CAN) [Rat00] bezeichnet eine Variante desortsunabhängigen Routing mithilfe eines geometrischen Ansatzes. Jeder Knoten ist für einenTeilbereich der gesamten Hashtabelle verantwortlich (Zone). Diese hat mehrere Dimensio-nen und jeder Knoten kennt die physikalische Adresse seiner Nachbarn in dieser räumlichenDatenstruktur. Eine Suchanfrage kann so immer zu einen Nachbarn weitergeleitet werden,der eine geringere Distanz zu der Zielzone hat. Das Einfügen neuer Knoten verursacht eineTeilung einer bestehenden Zone, wodurch ein hierarchischer Suchbaum entsteht.

Am MIT wurde Chord [SMK01] als Algorithmus für eine verteilte Hashtabelle entwickelt.Alle Rechner wenden die Hashfunktion auf ihre IP-Adresse an und bilden einen Datenringin aufsteigender Sortierung ihrer gehashten IP-Adresse. Alle Datenschlüssel werden auf demDatenring verteilt und auf den Rechner gespeichert, der dem Schlüssel nachfolgt. Da jederRechner seinen Nachfolger kennt ist ein Auffinden der Daten garantiert. In der in [SMK01]beschriebenen erweiterten Variante, dem skalierten Routing, werden zur Minimierung derLaufzeit der Operationen jedoch außer dem direkten Nachfolger noch weitere Zeiger aufandere Knoten gespeichert, die in der sogenannten Fingertabelle zusammengefasst werden.Die Entfernung der in der Tabelle gespeicherten Nachbarn nimmt exponentiell zu um einengrößeren Folgebrereich zu adressieren. Somit ist der i-te Eintrag der Fingertabelle der 2i−1

Nachbar auf dem Ring in Uhrzeigerrichtung. In dieser Variante besitzt jeder Knoten zudemnoch einen Zeiger auf seinen Vorgänger. Damit ist eine Suche mit der Laufzeit O(log n)möglich.Chord zeichnet sich wegen der Hashfunktion durch eine gute Lastverteilung aus. Zudemsteigen die Routingkosten nur logarithmisch an, weshalb dieses Verfahren gut Skalierbar ist.

1.4 Ausblick

Ein neue Möglichkeit Peers zu vernetzen zeigt der Skip-Graph. Ziel der Entwicklung dieserDatentruktur ist es den Zusammenhang der Daten nicht zu zerstören, wie es bei verteil-ten Hashtabellen geschieht. Die Funktionsweise des von James Aspnes und Gauri Shah[AspnesS2003] entwickelten Ansatzes zur Speicherung der Daten in einem P2P-Netz wird in

Page 228: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

220 M. Borowski

den folgenden Kapiteln erläutert. Zudem wird die Laufzeit für die verschiedenen Operatio-nen und die Eignung für ein P2P-Netz untersucht. Zum Schluss werden die Laufzeiten mitanderen Architekturen verglichen.

2 Die Datenstruktur

Verteilte Hashtabellen (DHT) ermöglichen eine gute Lastverteilung auf einem Peer-to-PeerNetz und garantieren eine gute Suchzeit von O(log n) bei einem Speicherverbrauch von eben-falls O(log n). Auch das Einfügen neuer Schlüssel oder deren Löschung ist effizient möglich.Allerdings nutzen sie nicht die Eigenschaft der räumlichen Nähe von Daten aus. Zudem istihre gute Ausfallsicherheit nur bei einem gleichmäßig verteiltem Ausfall der Knoten gege-ben.Diese Nachteile sollen durch eine andere Datenstruktur behoben werden.

2.1 Skip-Liste

William Pugh veröffentlichte im Jahre 1990 eine Datenstruktur namens Skip-Liste [PUGH90],die auf parallelen verketteten Listen aufbaut und bei der Effizienz mit einem binären Such-baum vergleichbar ist. Er verkettet alle Elemente in aufsteigender Reihenfolge miteinander.

Abb. 3. Verwendet man nur alle Listen, die den Startknoten enthalten, so erhält man eine Skip-Liste

Hieraus wählt er mit einer bestimmten Wahrscheinlichkeit p zufällig einige Elemente ausund verkettet diese Elemente erneut in einer Liste. Dies führt er so fort, bis nur noch 2Elemente in einer Liste enthalten sind. Suchen, einfügen und löschen ist ein einer Skip-Listemit einer Laufzeit von O(log n) möglich.

2.2 Skip-Graph

James Aspnes und Gauri Shah stellen in ihrer Ausarbeitung Skip Graphs [AspnesS2003]eine Datenstruktur vor, die den Ansatz der Skip-Listen verallgemeinert. Ihr Ziel ist es eineDatenstruktur für Peer-to-Peer-Netze zu entwickeln, die das Hinzukommen neuer Peers bzw.den Ausfall vieler Peers verkraften kann ohne den Zusammenhang der Daten zu verlieren.

Auf Ebene 0 sind alle Knoten in einer doppelt verketteten Liste miteinander verbunden.Im Unterschied zu Skip-Listen können in jeder anderen Ebene mehrere verkettete Listenvorhanden sein. Jeder Knoten ist einer der Listen einer Ebene zugeordnet, bis die Höhe

Page 229: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

P2P: Skip-Graph 221

ausreicht, sodass er eindeutig adressiert werden kann. Formell wird die Zugehörigkeit einesKnoten x zu den Listen durch den Mitgliedsvektor m(x) beschrieben. Da ein Knoten imSkip-Graph nichts über die Größe des Adressraumes weiß, wird m(x) als unendliches langesWort über einem endlichen Alphabet σ definiert.

Abb. 4. Beispiel eines Skip-Graphen mit 5 Schlüsseln

Im folgenden Beispiel betrachten wir das Alphabet 0, 1. Bei einem Skip-Graphen befin-den sich alle Knoten auf Ebene 0 in einer doppelt-verketteten Liste. Auf Ebene 1 existierenzwei doppelt-verkettete Listen. Jeder Knoten wird zufällig auf einer der Listen verteilt. Dieaufsteigende Sortierung der Liste muss dabei erhalten bleiben. In Ebene 2 wird jeder Knotenaus einer der Listen aus Ebene 1 wieder zufällig auf zwei neue Listen aufgeteilt, sodass esinsgesamt 4 Listen auf Ebene 2 gibt. Diese Aufteilung wiederholt sich solange bis nur nochein Knoten in einer Liste vorhanden ist. In der Abbildung 4 wird dieses Beispiel graphischveranschaulicht.

Durch diesen Aufbau eines Skip-Graphen ist dieser äquivalent zu einer Sammlung vonSkip-Listen. Jeder Skip-Graph beschreibt deshalb einen Trie von Skip-Listen Sw (Abbil-dung 5).Falls |w| ≥ i, bedeutet die Schreibweise w|i im folgenden der Prefix von w mit der Länge i.

Lemma 1. Sei Sw ein Skip Graph mit dem Alphabet Σ. Für ein z ∈ Σ∞ ist die SequenzS0S1 . . . mit Si = Sz|i eine Skip-Liste mit dem Parameter p = |Σ|−1.

Beweis. Die Liste S0 entspricht der Basisliste Sε aller Knoten auf Ebene 0. Per Induktionvon i lässt sich zeigen, dass ein Knoten x in Si enthalten ist, wenn die ersten i-Stellen seinesMitgliedsverktors denen des Vektors z entsprechen (m(x)|i = z|i). Die Wahrscheinlichkeit,dass der Knoten x in der von der Skip-Liste benutzten Liste eine Ebene höher enthaltenist, entspricht der Wahrscheinlichkeit, dass m(x)|(i + 1) = z|(i + 1) gilt. Dies ist aber gleichder Wahrscheinlichkeit p = |Σ|−1, da die Zugehörigkeit des Knoten x von der Wahl jedesanderen Knoten unabhängig ist. Damit erfüllt die Sequenz S0S1 . . . die Anforderung einerSkip-Liste.

Page 230: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

222 M. Borowski

Abb. 5. Verwendet man nur alle Listen, die den Startknoten enthalten, so erhält man eine Skip-Liste

3 Operationen auf einem Skip-Graph

In diesem Kapitel werden die verschiedenen möglichen Operationen auf einen Skip-Graphenvorgestellt und ihre Laufzeit analysiert. Ein Skip-Graph ist definiert über einem endlichenAlphabet Σ. Damit wird jede Liste in der nächsten höheren Ebene in maximal |Σ| Listenunterteilt. Die Menge Σ∗ enthält alle endlichen Wörter dieses Alphabets, die Menge Σ∞

aller unendlich langen Wörter. Für eine Wort w ∈ Σ∗ enthält die Liste Sw alle Knoten, beidenen w ein Präfix ihres Mitgliedvektors m(x) ist. Sw befindet sich auf der Ebene i = |w|,wobei w = w0w1w2 . . . wi−1 gilt.

3.1 Die Suche

In einem Skip-Graphen funktioniert die Suche ähnlich derer in Skip-Listen. Die Suche startetin der Liste der höchsten Ebene des Knotens. Ist der gesuchte Schlüssel größer als der eigeneSchlüssel wird er mit dem rechten Nachbar in der Liste verglichen. Ist dieser kleiner odergleich dem gesuchten Wert, wird die Suche dort fortgesetzt. Anderenfalls wird der Schlüsselmit den rechten Nachbarn der Liste einer Ebene tiefer verglichen. Ist der gesuchte Knotengefunden oder die Ebene 0 erreicht bricht die Suche ab. Falls der gesuchte Schlüssel zu Beginnder Suche kleiner als der Startschlüssel ist, werden die Schlüssel der linken Nachbarn zumVergleich herangezogen.

Listing 1. Suchen in einem Skip-Graphen

1 suche ( StartKnoten s , Such s ch lü s s e l k , Ebene e )2

3 Fa l l s d i e s e r Knoten dem Suchs ch lü s s e l k en t sp r i c h t4 Melde es an den StartKnoten s5

6 Fa l l s Such s ch lü s s e l k k l e i n e r aktue l l em Sch l ü s s e l7 Solange Ebene e > 08 Fa l l s S ch l ü s s e l des rechten Nachbarn k l e i n e r k9 Sende Suchanfrage an ihn we i t e r

10 Setze Suche auf Ebene e−1 f o r t11 Fa l l s Such s ch lü s s e l k größer aktue l lem Sch l ü s s e l

Page 231: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

P2P: Skip-Graph 223

12 Solange Ebene e > 013 Fa l l s S ch l ü s s e l des l i nken Nachbarn k l e i n e r k14 Sende Suchanfrage an ihn we i t e r15 Setze Suche auf Ebene e−1 f o r t16

17 Fa l l s a k t u e l l e Ebene e < 018 Sende Mi s s e r f o l g der Suche an s

Abb. 6. Die Suche benutzt nur Knoten, die auch in der Skip-Liste des Startknoten B enthalten sind.

Lemma 2. Die Such-Operation in einem Skip-Graphen S mit n Knoten benötigt eine er-wartete Anzahl von O(log n) Nachrichten und O(log n) Zeit.

Beweis. Sei z der Knoten an dem die Suche startet und Σ das Alphabet des Mitgliedvektorsm(z). Nach Lemma 1 ist jedes Element der Sequenz Sm(z) = S0, S1, S2, ... eine Skip-Liste.Eine Suche im Skip-Graphen S durchläuft die gleichen Elemente, wie eine Suche in derSkip-Liste Sm(z).

[PUGH90] zeigt das die durchschnittliche Anzahl von Elementen O(log n 1log 1

p

) mit p =

|Σ|−1 beträgt und in jeder Ebene durchschnittlich auf 11−p Knoten gesucht wird. Damit

ergibt sich die erwartete Anzahl von Nachrichten verbunden mit der benötigten Zeit:

O

log n1

(1− p) log(

1p

) = O(log n) (1)

Aus dem Ergebnis ist ersichtlich, dass bei einem kleinen Alphabet, also einem großenp, die Suchzeit abnimmt, aber stattdessen die Anzahl der Ebenen zunimmt. Damit müssenjedoch mehr Nachbarknoten in jedem Knoten gepeichert werden. Deshalb muss hier eineBalance zwischen Suchzeit und Speicherverbrauch gefunden werden.

Bereichssuche

Im Gegensatz zu vielen anderen Netzwerktopologien ist es durch die Grundordnung im Skip-Graph möglich Bereichsanfragen zu stellen. Sind in den Knoten z.B. die Domainpfade als

Page 232: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

224 M. Borowski

Schlüsselwerte abgelegt, so ist z.B. eine Suche nach allen Schlüsseln unterhalb der Domainede.upb möglich. Hierbei wird zunächst nach einem Knoten des Bereichs gesucht, der dieSuche anschließend in seiner Umgebung broadcastet.

3.2 Einfügen neuer Peers

Eine Grundvoraussetzung für P2P Netzwerke ist, dass neue Peers mind. einen Peer desexistierenden Netzwerkes kennen müssen. Ist dies der Fall, kann der neue Peer dort miteiner Suche nach sich selbst starten und damit seinen Vorgänger und Nachfolger in derListe der Ebene 0 finden.

Abb. 7. Ein neuer Peer stellt zunächst eine Suchanfrage nach sich selbst um seine Nachbarn auf Ebene 0zu finden.

Nachdem sich der neue Peer in die Liste eingefügt hat, sucht er auf Ebene 0 anhand desMitgliedvektors nach beiden Seiten nach seinem Nachbarn auf höheren Ebenen und fügtsich ebenfalls in diese Listen ein.

Lemma 3. Ohne gleichzeitigen Zugriff benötigt das Einfügen einen Knoten in einem Skip-Graphen S mit n Knoten O(log n) Nachrichten und O(log n) Zeit.

Beweis. Bei einem festen Alphabet mit p = |Σ| Elementen verwendet das Einfügen aufEbene 0 eine Such-Operation nach 2 O(log n) Nachrichten und Zeit. Bei der Suche der Nach-barn für jede andere Ebene werden durchschnittlich 1

p Knoten durchlaufen. Die Anzahl derEbenen im Skip-Graphen ist O(log n). Damit ergibt sich eine erwartete Anzahl benötigterNachrichten:

O(log n) +log n∑

0

O

(1p

)= O(log n +

1p

log n) (2)

= O(log n) (3)

Page 233: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

P2P: Skip-Graph 225

Abb. 8. Der eingefügte Knoten sucht durch Vergleichen des Mitgliedschaftsvektors seiner Nachbarn, seineNachbarn auf höherer Ebene.

3.3 Entfernen von Peers

Das Löschen von Knoten ist eine einfache und schnelle Operation. Zunächst entfernt sichder Peer von allen Listen der Ebenen gößer 0 - dies kann parallel erfolgen. Anschließendentfernt er sich auch aus der Liste von Ebene 0.

Listing 2. Suchen in einem Skip-Graphen

1 l ö s ch e (Knoten u)2

3 Für a l l e Ebenen > 04 Lösche u aus der L i s t e5

6 Lösche u aus der L i s t e auf Ebene 0

Lemma 4. Ohne gleichzeitigen Zugriff benötigt die Lösch-Operation in einem Skip-GraphenO(log n) Nachrichtne und O(1) Zeit.

Beweis. Wir nehmen an, dass die Lösch-Operation in einer verketteten Liste O(1) Nach-richten und Zeit braucht. Da dies in allen Liste bis auf Ebene 0 parallel geschehen kann,benötigen wir nur O(1) Zeit. Bei der Anzahl der Nachrichten müssen wir die Anzahl derListen, die gleich der Höhe des Skip-Graphen ist, berücksichtigen:

log n∑0

O(1) = O(log n) (4)

Page 234: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

226 M. Borowski

3.4 Operationen bei mehrfachem gleichzeitigen Zugriff

Da jeder Peer sich selbst verwaltet, ist ein kontrollierter Zugriff von mehreren Peers auf denSkip-Graphen nicht möglich.Die vorgestellten Algorithmen stellen jedoch sicher, dass zu jedem Zeitpunkt die Liste aufEbene 0 korrekt ist. Damit ist gegeben, dass auch mehrfache gleichzeitige Operationenkorrekt durchgeführt werden. Die Listen höherer Ebenen dienen nur zur effizienteren Sucheder Knoten und beeinträchtigen deshalb die Funktionalität des Skip-Graphen nicht.

4 Qualitätsanalyse

Im vorherigen Kapitel wird die Effizienz und Korrektheit der Operationen auf einemSkip-Graphen gezeigt. Entwickelt wurde diese Datenstruktur für den Aufbau eines P2P-Netzwerkes.Hier ergeben sich jedoch viele Fehlerquellen, die die Qualität des Netzes beeinträchtigen. Imfolgenden wird deshalb die Güte eines Skip-Graphen mit dem Alphabet 0, 1 für P2P-Netzeuntersucht.

4.1 Fehlertoleranz

Eine große Herausforderung beim Design eines P2P-Netzes ist die Eigenschaft, dass sich dieTopologie durch das Hinzufügen und Entfernen von Peers ständig ändern kann. Es kannnicht davon ausgegangen werden, dass jeder Peer, der das Netzwerk verlässt, vorher ord-nungsgemäß die Lösch-Operation ausführt. Die Robustheit des Skip-Graphen ergibt sichdeshalb aus dem Verhältnis von ausgefallenen Peers zu denen, die dadurch den Zusammen-hang zum Netzwerk verloren haben.

Randomisierter Ausfall von Peers

Zunächst nehmen wir an, dass jeder Knoten mit der gleichen Wahrscheinlichkeit ausfallenkann. [AspnesS2003] zeigen in ihren Simulationen, dass bis du einer Ausfallwahrscheinlich-keit von 60% fast alle Knoten in der großen Zusammenhangskomponente verbleiben. Erstbei größeren Werten werden viele Knoten isoliert, wenn ihre gesamte Nachbarschaft aus-fällt. Dies bedeutet, dass ein P2P Netz, dass auf einem Skip-Graphen aufbaut, sehr robustgegenüber zufälligen Fehlern ist.

Ungünstige Ausfälle von Peers

Neben dem Zufälligen und damit gleichmäßig verteilten Ausfall von Peers interessiert bei derRobustheit von Skip-Graphen auch der Ausfall größerer benachbarter Bereiche. Aufgrundder Sortierung der Peers im Skip-Graphen kann der Ausfall eines Rechners oder physi-kalischen Netzes den Ausfall großer benachbarter Knoten zur Folge haben. Im folgenden

Page 235: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

P2P: Skip-Graph 227

versuchen wir deshalb eine Kombination von Peers zufinden, deren Ausfall den Zusammen-hang zerstört.Hierzu untersuchen wir den Expansionsgrad vom Skip-Graphen G. Der Expansionsgrad voneiner Menge Knoten A ⊆ G ist definiert als |δA|/|A|, wobei |δA| die Anzahl der Knoten ist,die zu A benachbart, aber selbst nicht in A enthalten sind.

Abb. 9. Beispiel für ein Set A und der damit erzeugten Menge δA

Der Expansionsgrad des Graphen G ist der minimale Expansionsgrad aller TeilmengenA mit 1 ≤ |A| ≤ n

2 . Fallen alle Knoten von A aus, haben alle Knoten von δA fehlerhafteKanten. Im Folgenden wird deshalb eine untere Schranke für den Expansionsgrad bestimmt.Die Menge δ`A ⊂ G enthält alle Knoten, die nicht in A liegen, aber durch eine Kante aufEbene ` mit einem Knoten aus A benachbart sind. Damit gilt:

δA =⋃`

δ`A (5)

|δA| ≥ max`|δ`A| (6)

Lemma 5. Die Anzahl der Sets A mit |A| = m < n und |δ0A| < s ist kleiner als:∑s−1r=1

(m+1

r

)(n−m−1

r−1

)Beweis. Zuerst werden alle Knoten von 1 bis n durchnummeriert und ein Bit-Vektor x =x1x2 . . . xn defininert, wobei gilt:

xi =

1, falls Knoten i ∈ A

0, sonst

Damit sind alle Knoten, die durch eine 0 repräsentiert werden und zu einer 1 benachbartsind, in δA enthalten. Um sicher zu stellen, dass der Bit-Vektor immer mit einer 1 sowohlbeginnt als auch aufhört, wird ein weiterer Vektor x′ = 1x1 definiert. Dieser Vektor bestehtalternierend aus Einser- und Nuller-Folgen, wobei die Anzahl der Nuller-Folgen r um einskleiner als die der Einser-Folgen (r + 1) ist. Da A eine echte Teilmenge ist (A ⊂ G), ist

Page 236: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

228 M. Borowski

Abb. 10. Beispiel für ein Set A und der dazugehörigen Teilmenge δ0A mit |δ0A| = 2 und r = 2

mind. eine 0 im Bit-Vektor enthalten. Jede Nuller-Folge enthält einen oder zwei Knoten ausδA:

r ≤ |δ0A| ≤ 2r (7)

Nun Summieren wir die Anzahl der Bit-Vektoren x′ auf, die n−m Nullen enthalten undaus r Nuller-Intervallen bestehen. Es gibt

(n−m−1

r−1

)Möglichkeiten n −m Nullen auf die r

Nuller-Intervalle zu verteilen. Für die m + 2 Einser gibt es(m+2−1r+1−1

)Möglichkeiten sie auf

r+1 Intervalle verteilt zu werden. Beide Verteilungen sind voneinander unabhängig, deshalbergibt sich als obere Schranke:

s−1∑r=1

(m + 2− 1r + 1− 1

)(n−m− 1

r − 1

)=

s−1∑r=1

(m + 1

r

)(n−m− 1

r − 1

)(8)

Nun können wir mit hoher Wahrscheinlichkeit zeigen, dass für alle Ebenen ` > 0 |δ`A|selten klein sein wird.

Lemma 6. Sei A eine Teilmenge mit m ≤ n/2 Knoten in einem Skip-Graph S mit n

Knoten. Dann gilt für jede Ebene ` > 0: P [|δ`A| ≤ 13 · 2

`] < 2(

2`

b 23·2`c) (

23

)mBeweis. Wenn für ein b ∈ Σ` ein Knoten u ⊂ S existiert, sodass auch ein Knoten v ⊂ S−Amit b = m(u)|h = m(v)|h existiert, dann gibt es ein Knotenpaar v′ ∈ A und v′ ∈ S − A,die benachbart sind. Da diese Paare verschieden für unterschiedliche b sind, können wir eineuntere Schranke für δ`A berechnen. Sei T (A) die Menge von bs, für die A einen Knoten ausSb enthalten, Dann gilt:

P

[|T (A)| < 2

3· 2`

]≤

∑B⊂S,|B|=b 2

3·2`c

P [T (A) ⊆ B]

≤(

2`

b23 · 2`c

)(23

)|A|(9)

Page 237: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

P2P: Skip-Graph 229

und für die restliche Menge S −A:

P

[|T (S −A)| < 2

3· 2`

]≤(

2`

b23 · 2`c

)(23

)|S−A|(10)

Da beide Mengen T (A) und T (S−A) mind. zwei Drittel aller b enthalten, muss die Schnitt-menge mind. ein Drittel der b enthalten:

P

[|T (A) ∩ T (S −A)| < 1

3· 2`

]≤

(2`

b23 · 2`c

)((23

)|A|+(

23

)|S−A|)

≤ 2(

2`

b 23·2`c) (

23

)|A| (11)

Damit gibt es nicht genug Teilmengen A ⊂ G mit kleinem |δ0A|, damit die Wahrschein-lichkeit, dass eine Teilmenge auch ein kleines |δ`A| hat, groß genug ist.

4.2 Auslastung der Peers

Bei einem Skip-Graph kann gezeigt werden, dass die Auslastung von Peers bei einer hohenLast Suchanfragen an ein bestimmtes Element mit der Distanz stark abnimmt.Die Wahrscheinlichkeit, dass die Suche einen bestimmten Knoten zwischen den Startknotenund dem Zielknoten benutzt, ist umgekehrt proportional zur Distanz des Knotens zum Ziel.Hierbei ist jedoch die Gleichverteilung des Mitgliedsvektors entscheident. Unglücklicherweisekann es sein, dass ein Knoten durch ungünstige Mitgliedsvektoren immer schnell zu einenSuchpfad führt, der einen Knoten in der Nähe eines sehr populären Knoten beinhaltet.Zudem wird für den Startknoten angenommen, dass er immer einen zufälligen Mitgliedvektorhat.

Theorem 1. Gegeben sei ein Skip Graph S mit dem Alphabet 0, 1. Bei einer Suche vons nach t ist die Wahrscheinlichkeit für einen Knoten u mit s < u < t und dem Abstand dnach t, dass der Suchpfad u durchläuft kleiner als 2

d+1 .

Beweis. u íst im Suchpfad von s nach t enthalten, wenn es keinen Knoten zwischen u undt gibt, der in einer höheren Ebene in einer gemeinsammen Liste mit s enthalten ist. Esexistieren d + 1 Knoten in diesen Interval. Sei T eine Zufallsvariable, die alle Knoten derhöchsten Ebene enthält.

Page 238: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

230 M. Borowski

Abb. 11. u ist im Suchpfad von s1 nach t enthalten. Im Suchpfad von s2 nach t nicht.

P (u ∈ T ) =d+1∑k=1

P (|T | = k)k

d + 1(12)

=E(|T |)d + 1

(13)

=1

2|T | − 1

|T |+ |T |−1∑k=1

(n

k

)E(k)

/(d + 1) (14)

=1

2|T | − 1

|T |+ (n

1

)E(1) + 2

|T |−1∑k=2

(n

k

)P (k)

/(d + 1) (15)

=1

2|T | − 1

2(

n

1

)P (1) + 2

|T |−1∑k=2

(n

k

)P (k)

/(d + 1) (16)

=2

2|T | − 1

|T |−1∑k=1

(n

k

)P (k)/(d + 1) (17)

= 2P (|T |)/(d + 1) (18)

≤ 2d + 1

(19)

Der letzte Schritt ergibt sich, da P (n) mit P (0) = 0, P (1) = 1 und P (n) = 12n−1

∑n−1k=1

(nk

)P (k)

kein Wert größer 1 ist.

5 Varianten und Erweiterungen

Von der in den vorigen Kapiteln vorgestellten Datenstruktur Skip-Graph gibt es einigeVariationen, die im folgenden vorgestellt werden.

Page 239: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

P2P: Skip-Graph 231

Abb. 12. Erwartete und simulierte Nachrichtenlast in einen Skip-Graph mit 131072 Knoten und denZielknoten 76539 (aus [AspnesShah])

5.1 Mehrere Nachfolger

James Aspnes zeigt in seiner Ausarbeitung [AspnesShah], dass es sinnvoll sein kann, stattnur eines Nachbarn in jeder Ebene mehrere Nachfolger zu speichern. Bei einer Ausfall-

Abb. 13. Anzahl der fehlgeschlagenen Suchläufe in einen Skip-Graph mit 131072 Knoten und 10000 Nach-richten. Jeder Knoten hat bis zu 5 Nachfolger auf jeder Ebene (aus [AspnesShah])

wahrscheinlichkeit von 60% für jeden Knoten ist eine Suche im vorgestellten Skip-Graphenpraktisch nicht mehr möglich. Speichert man aber zusätzlich immer die nächsten 5 Nachfol-

Page 240: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

232 M. Borowski

ger auf jeder Ebene, so ist eine Suche in mehr als 23 der Fälle weiterhin erfolgreich möglich.

Der Speicherbedarf ändert sich hierbei nur um einen konstanten Faktor (siehe Abbildung13).

5.2 SkipNet

An der Universität von Washington in Seattle und bei Microsoft wurde unabhängig von derEntwicklung des Skip-Graphen eine sehr ähnliche Struktur für P2P-Netzwerke entwickelt.Harvey et al. [Harvey03] beschreibt eine Datenstruktur, die auf einfach, zirkular verkettetenListen aufbaut. Die Operationen sind wie beim Skip-Graphen implementiert, nur dass im

Abb. 14. Aufbau eines SkipNet nach [Harvey03]

SkipNet die Rechner einer Domain als ein Knoten auftauchen. Die einzelnen Daten werdeninnerhalb einer Domain wieder mittels der verteilten Hashtabelle aufgeteilt. Der Vorteil derzirkulären Listen ist die gleichmäßigere Auslaustung der Peers. [AspnesShah] zeigt jedochauf, dass es bei Linkfehlern sehr schwer ist, die Struktur wieder zu reparieren.

5.3 Expander Graphen in Skip-Graphen

J. Aspnes und U. Wieder [AspnesWieder2005] zeigen, dass in einen Skip-Graph mit hoherWahrscheinlichkeit ein 4-regulärer Expander enthalten ist. Dies führt zu den Ergebnis, dassder Expansiongrad nicht wie vorher gezeigt Ω(1/ log n), sondern sogar Ω(1) ist und damitjede Teilmenge, die weniger als die Hälfte der Knoten (m < n/2) enthält Ω(m) Nachbarnhat. Damit ist die Fehlertoleranz besser als zuvor angenommen. Es kann gezeigt werden,dass bei einem Ausfall einer konstanten Anzahl von Knoten immer noch eine konstanteAnzahl in einem Graphen verbleibt.

Page 241: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

P2P: Skip-Graph 233

6 Zusammenfassung und Fazit

In dieser Ausarbeitung wurde die Datenstruktur des Skip-Graphen und einige Variationenvorgestellt. Sie ermöglicht die verteilte Datenspeicherung und bietet gegenüber dem ge-bräuchlichen DHT-Verfahren einige wichtige Vorteile.Im Vergleich mit CAN und Chord wird eine bessere Performance erreicht. Die Laufzeitenfür das Erreichen von Knoten ist gleich, jedoch benötigt das Einfügen neuer Knoten mitO(log2 n) mehr Zeit als im Skip-Graphen mit O(log n). Zudem sind Skip-Graphen auchrobuster, da sie im Gegensatz zu verteilten Hashtabellen auch bei gezieltem ungünstigenLöschen von Knoten nur begrenzt Schaden nehmen. Ein weiterer großer Vorteil von Skip-Graphen ist aufgrund ihrer Sortierung die Möglichkeit einfach Bereichsanfragen zu stellen.Es existiert aber derzeit noch kein in der Praxis verwendetes P2P-Netz, das auf einem Skip-Graph aufbaut. Alle getroffenen Annahmen sind aufgrund von Simulationen entstanden.Es wird sich deshalb noch zeigen müssen, ob sich P2P-Netze basierend auf Skip-Graphendurchsetzen können.

Literaturverzeichnis

AspnesS2003. J. Aspnes and G. Shah 2003. Skip graphs. Fourteenth Annual ACM-SIAM Symposium onDiscrete Algorithms, Jan 2003, 384-393

AspnesShah. J. Aspnes and G. Shah. Skip graphs. ACM JournalAspnesWieder2005. J. Aspnes and U. Wieder 2005. The expansion and mixing time of skip graphs

with applications. SPAA ’05: Proceedings of the seventeenth annual ACM symposium on Parallelismin algorithms and architectures, 2005, 126-134

Harvey03. J.A. Harvey, M.B. Jones, S. Saroiu, M. Theimer and Alec Wolman SkipNet: A ScalableOverlay Network with Practical Locality Properties

NaorWieder06. M. Naor and U. Wieder. Novel Architectures for P2P Applications: the Conti-nuous.Discrete Approach

MahlSchindel07. Peter Mahlmann und Christian Schindelhauer Peer-T to-Peer-Netzwerke: Algo-rithmen und Methoden. Springer-Verlag Berlin, 1. auflage, Jul.2007, ISBN 3540339914

PUGH90. Pugh, W. 1990. Skip Lists: A Probabilistic Alternative to Balanced Trees. Communications ofthe ACM 33,6 (June), 668-676

Groli07. Dominik Grolimund. 2007. P2P Online Storage Web 2.0 Expo Berlin, 2007Rat00. S. Ratnasamy, P. Francis, M. Handley, R. Karp and S. Shenker. A Scalable Content-

Addressable Network. Proceedings of ACM SIGCOMM 2001, 161-172Schoder02. Detlef Schoder, Kai FischbachPeer-to-Peer(2002) Springer VerlagSMK01. Stoica, Morris, Karger, Kasshoek, Balakrishnan Chord: A scalable Peer-To-Peer lookup

service for internet applications. Proceesings of the 2001 ACM SIGCOMM Conference, 2001, 149-160OReilly01. Peer to Peer oder das Netz als Computer

Ein Kommentar von Tim O’Reilly 2001 O’Reilly verlagNapster. @web(1999-2008) Napster - P2P Filesharing - MP3 Suche ohne SuchmaschinenFreenet. @web(1999-2008)

Freenet - statt Suchmaschinen - p2p FilesharingGnutella. @web(1999-2008)

Gnutella - P2P Filesharing - MP3 Suche ohne SuchmaschinenWuala. @web(2006-2008)

Wua.la - Ihre kostenlose Online-FestplatteHerwig. Björn A.Herwig, Seminar Internet Computing

Peer-to-Peer NetworkingPCWELT0803. PC-WELT : Peer-to-Peer-Netze (27. AUGUST 2003)

Page 242: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide
Page 243: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Kinetische Datenstrukturen für zweidimensionale Probleme

Sabine Naewe

Universität Paderborn [email protected]

Zusammenfassung. In meiner Seminararbeit werde ich mich mit kinetischen Datenstrukturen für zwei-dimensionale Probleme beschäftigen. Das Vorgehen hierbei werde ich am Beispiel zweier grundlegenderProbleme erläutern, welche repräsentative Beispiele für Bewegungsprozesse sind. Das Problem der konvexenbzw. oberen Hülle von n Punkten gehört zur Kategorie der Umfangsprobleme, während das Problem desdichtesten Paares zur Kategorie der Nähe- und Schnittprobleme gehört. Für beide Probleme werden alserstes kinetische Datenstrukturen entwickelt und diese dann für die Bewegung der Elemente modifiziert.

1 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235

2 Die konvexe Hülle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236

2.1 Berechnung der oberen Hülle zweier Ketten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2362.2 Analyse des Beweisschemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2382.3 Aktualisierung der konvexen Hülle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2392.4 Divide and Conquer Algorithmus für die obere Hülle . . . . . . . . . . . . . . . . . . . . . . . . . 241

3 Dichtestes Paar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244

3.1 Statischer Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2453.2 Die Bewegung der Elemente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249

4 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252

Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252

1 Einführung

In meiner Seminararbeit werde ich die Idee einer kinetischen Datenstruktur für zwei zwei-dimensionale Probleme vorstellen. Kinestische Datenstrukturen sind ein Konzept zur Be-rechung bestimmter Attribute von kontinuierlichen Modellen, wobei sie diese während derbetrachteten Zeitspanne aufrechterhalten. Eine Einführung in dieses Thema liefert [5].

Die Arbeit gliedert sich in zwei nicht aufeinander aufbauende Abschnitte. Der ersteAbschnitt erläutert eine kinetische Datenstruktur für das Problem der konvexen Hülle einerzweidimensionalen Punktmenge. Im zweiten Abschnitt wird dann eine Datenstruktur fürdas Problem des dichtesten Paares einer zweidimensionalen Menge vorgestellt.

Page 244: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

236 Sabine Naewe

2 Die konvexe Hülle

In diesem Abschnitt betrachtet wir nun das Problem der konvexen Hülle. Gegeben seien nPunkte im zweidimensionalen Raum. Gesucht ist nun die konvexe Hülle dieser n Punkte.

Definition 1. Die konvexe Hülle einer n−elementigen Menge ist definiert als die kleinestekonvexe Menge, welche die n Punkte enthält. Dabei heißt eine Menge M konvex, falls gilt:

∀ a, b ∈ M : ∀ t ∈ [0, 1] : ta + (1− t)b ∈ M

Anschaulich enthält eine konvexe Menge M für jedes Paar von Elementen aus M auch dieStrecke zwischen diesen beiden Punkten. Sie wird durch ihre Eckpunkte beschreiben. Einekonvexe Hülle kann man in obere und untere Hülle aufteilen. Um die obere Hülle zuberechnen, werden als erstes alle Punkte nach ihrer x-Koordinate lexikographisch sortiert.Danach durchläuft man die Punkte im mathematisch positiven Sinne und verbindet allegeordneten Punkte. Ergibt sicht dabei eine Einbuchtung nach innen, werden die innerenPunkte entfernt. Eine innere Einbuchtung wird hierbei durch einen Winkel repräsentiert,welcher kleiner als 180 ist. Die untere Hülle erhält man analog.

Um nun die konvexen Hülle zu berechnen, benutzt man einen Divide and Conquer An-satz. Dabei wird zufällig unsere Ausgangsmenge in etwa zwei gleich große Untermengengeteilt, von denen man nun rekursiv die konvexe Hülle berechnet. Anschließend mischenwir diese beiden Ergebnisse, um die konvexe Hülle der gesammten Menge zu bekommen.Bei diesem Vorgang betrachtet man die parallelen Tangenten der beiden Hüllen um dieendgültige Menge zu bekommen.

In dieser Arbeit berechnen wir nur die obere konvexe Hülle und benutzten die dualeTransformation um einem Punkt (p, q) die Linie y = px + q zuzuordnen, da es einfacherist den Algorithmus für Linien zu beschreiben. Im dualen Raum ist es nun das Ziel, dieobere Hülle einer Familie von Linien zu erhalten. Dabei können sich die Parameter derLinien kontinuierlich aber vorhersehbar ändern. Um dieser Bewegung Rechnung zu tragen,wird der Divide and Conquer Algorithmus modifiziert, indem man die obere konvexe Hülleder Untermengen berechnet. Der entscheidene Punkt ist hierbei die Berechnung der oberenHülle aus den oberen Hüllen von zwei Untermengen. Dafür betrachten wir die Linien alskonvexe, stückweise definierte lineare Funktionen.

2.1 Berechnung der oberen Hülle zweier Ketten

Im Folgenden befinden wir uns im Dualen und betrachten die duale Tranformation derAusgangsmenge. Wir definieren in unserem Algorithmus eine konvexe, stückweise definiertlineare Funktion als doppeltverkettete Liste mit Ecken und Kanten, welche von von linksnach rechts geordnet ist. Diese Darstellung nennen wir eine Kette. In diesem Abschnittbetrachen wir nun zwei Untermengen als blaue und rote Kette und erläutern eine kinetischeDatenstruktur, um die lila Menge zu erhalten, welche die obere Hülle der roten und blauenKette darstellt.

Um den Algorithmus darstellen zu können, definieren wir im nächsten Absatz hierfürwichtige Mengen und Begriffe. Da wir bei diesem Problem die Hauptaufmerksamkeit aufdie Kanten richten werden , bezeichen wir die Kanten mit Kleinbuchstaben und nennendie Ecke zwischen den Kanten a und b die Ecke ab. Eine Konfiguration bezeichnet nun

Page 245: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Kinetische Datenstrukturen für zweidimensionale Probleme 237

eine Darstellung aller Ecken und Kanten, so dass beide Ketten konvex sind. Für eine Eckeab bezeichnen wir die Kante der anderen Kette, welche darüber oder darunter liegt, alsrivalisierende Kante (engl.: contender edge ) und kennzeichnen sie mit ce(ab). JederKnoten hat dann einen Zeiger auf die rivalisierende Kante. Wir kennzeichnen mit χ( )die Farbe (rot oder blau) einer Ecke oder Kante. Schließlich bezeichnen wir mit ab.prevbzw. ab.next die blaue oder rote Ecke, welche auf der linken bzw. rechten Seite von ab amnächsten bei ab liegt. Diese Ecke kann leicht durch das Vergleichen der x-Koordinaten derbenachbarten Ecke in der Kette von ab mit einer der Eckpunkte der rivalisierenden Kantevon ab berechnet werden.

Um die rote und blaue Kette in einem Mischdurchlauf miteinander vergleichen zu können,benötigen wir zwei verschiedene Typen von Zertifikaten: Die x-Zertifikate definieren diehorizontale Ordnung der Ecken, während die y-Zertifikate die vertikale Ordnung in Hinsichtauf die rivalisierende Kante untersucht. Wir bezeichnen diese mit <x bzw. <y. Wenn wir allediese Vergleiche aber als Zertifikate behandeln, ist die erhaltende kinetische Datenstrukturnicht mehr lokal, da eine gegebene Kante die rivalisierende Kante von O(n) vielen Ecken deranderen Hülle sein kann. Deswegen definieren wir eine alternative Menge von Zertifikaten,welche auch Vergleiche zwischen Linienpaaren bzgl. der Steigung, mit <s gekennzeichnet,enthalten. Dadurch kann dann überprüft werden, ob der Winkel zwischen zwei Linien kleinerals 180 ist. Mit diesen drei Arten von Zertifikaten kann die Anzahl der Zertifikate erheblicheinschränkt werden.

Name Vergleich Bedingungx[ab] [ab <x cd] cd = ab.next

χ(ab) 6= χ(cd)

yli[ab] [ab <y or >y ce(ab)] b ∩ ce(ab) 6= ∅yri[ab] [ab <y or >y ce(ab)] a ∩ ce(ab) 6= ∅yt[ab] [ce(ab) <y ab] a <s ce(ab) <s bslt[ab] [a <s ce(ab) ce(ab) <y absrt[ab] [ce(ab) <s b]

sl[ab] [b <s ce(ab)] b <s ce(ab)ab <y ce(ab)

χ(ab) 6= χ(ab.next)

sr[ab] [ce(a) <s a] ce(ab) <s aab <y ce(ab)

χ(ab) 6= χ(ab.prev)

Tabelle 1. Zertifikate für die obere Hülle zweier Ketten

In Tabelle 2.1 werden die modifizierten Zertifikate definiert. Die erste Spalte enthält denNamen der Zertifikate, die zweite enthält den Vergleich, welchen dieses Zertifikat garantiertund die dritte Spalte enthält zusätzliche Bedingungen für das Zertifikat, damit es in derkinetischen Datenstruktur enthalten ist. Die erste Zeile definiert ein Zertifikat mit Namenx[ab]. Dieses existiert nur in der Datenstruktur, wenn ab und cd Nachbarn sind und in un-terschiedlichen Ketten liegen (Bedingung). Um dies zu überprüfen, müssen die x-Koordinateder Ecken ab und cd miteinander verglichen werden. Die Ungleichung muss nun nach t ge-löst werden, um den ersten Zeitpunkt zu berechnen, an dem das Zertifikat seine Gültigkeitverliert, also der Knoten cd nicht mehr der rechte Nachbar von ab ist.

Page 246: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

238 Sabine Naewe

Das Zertifikat x[..] definiert die exakte x-Ordnung der Knoten, während die Zertifika-te yli[..] und yri[..] den Schnitt zweier Kanten in verschiedenen Ketten darstellt. Wenneine Kante nicht in der oberen Hülle liegt, ordnen die Zertifikate seine Steigung in dieFolge aller Kantensteigungen ein. Entweder geschieht dies mit den drei tangetialen Zerti-fikaten yt[..], slt[..] und srt[..] oder das Zertifikat sl[..] bzw. sein symmetrisches Zertifikatsr[..] zeigt, dass keine Tangente vorhanden ist. Abhängig von den Positionen der roten undblauen konvexen Ketten werden in Abbildung 1 verschiedene Zertifikate benutzt um dieÜberschneidungsstruktur (oberer Fall) oder das Nichtüberschneiden (mittlerer und untererFall) zu zertifizieren. Die Pfeile zeigen dabei die Vergleiche zwischen Ecken oder Kanten an.

Schließlich benötigen wir noch Abstandszertifikate zwischen den beide Kanten am linkenbzw. rechten Rand der Kette.

Abb. 1. Darstellung der modifizierten Zertifikate

2.2 Analyse des Beweisschemas

In diesem Abschnitt beweisen wir die Lokaltität des Beweisschemas und ihre korrekte Be-rechnung der oberen Hülle.

Lemma 1. Die Lokaltität des obrigen Beweisschemas hat Komplexität O(1).

Beweis. Sei a eine beliebige Kante. Wir müssen nun die Anzahl der Zertifikate berechnen, indenen a im Gültigkeitsbeweis des Schemas vorkommt. Ohne Beschränkung der Allgemein-heit kommt a in einem Zertifikat vor, da einer der Eckpunkte in einem Zertifkat vorhandenist. Jede Ecke kann höchsten in zwei x[..] Zertifikaten vorkommen, da jede Ecke jeweils

Page 247: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Kinetische Datenstrukturen für zweidimensionale Probleme 239

nur einen rechten und linken Nachbarn besitzt. Außerdem kann er nur in jeweils einem deranderen Zertifikattypen vorkommen. Deswegen müssen wir nur die Anzahl der Zertifikateberechnen, in denen a als rivalisierende Kante vorkommt.

Wenn a im Schnitt mit der anderen Kette liegt, kann die Kante als rivalisierene Kantein den Zertifikaten yli[..] und yri[..] liegen. Diese Konstellation kann nur zweimal auftreten,da a nach Definition der oberen Hülle höchstens zweimal von der anderen Kette geschnittenwerden kann.

Wenn a nicht von der anderen Kette geschnitten wird, kann a in höchstens zwei Drei-ergruppen der tangentialen Zertifikate vorkommen. Das eine Zertifikat gilt, wenn a übereinem Teil der andere Kette liegt und das andere, wenn sie unter einem Teil der anderenKette liegt.

Schließlich nehmen wir an, dass a die rivalisierene Kante von vielen Ecken ist. Dannhaben diese Knoten alle die gleiche Farbe. Damit können nur der linkeste und der rechtesteKnoten a als rivalisierende Kante in sl[..] oder sr[..] enthalten. So besitzt die Lokalität desBeweisschemas Komplexität O(1).

ut

Lemma 2. Die Menge der obigen Zertifikate beschreiben die obere Hülle.

Beweis. Sei Π ein Konfiguration mit der Zertifikatenmenge L und Π ′ ein andere Konfigura-tion, in der diese Zertifikate gültig sind. Wir zeigen, dass die obere Hülle von Π ′ die gleichenEcken enthält wie die obere Hülle von Π.

Die x-Zertifikate beweisen die Korrektheit der Zeiger der rivalisierenden Kanten. JederKnoten, welcher in einem y-Zertifikat in L enthalten ist, befindet sich nach Voraussetzungauch in Π ′ und in Π. Es bleibt zu zeigen, dass Ecken ohne y-Zertifikate nicht nur in Π ′

oder Π liegen.Sei S eine maximale Menge von benachbarten Ecken ohne y-Zertifikate in L. Ohne Be-

schränkung der Allgemeinheit nehmen wir an, dass die rote Kette in diesem Teilabschnittvon Π unter der blauen Kette liegt. Sei 4(x) die Differenz zwischen der roten und blauenSteigung bei x in Π. Diese Funktion steigt bei roten Ecken und fällt bei blauen Ecken. Sieändert nicht ihr Vorzeichen bei einer roten Ecke von S, da dies ein yt[..] Zertifikat in Lbedeuten würde.

So ist 4(x) in dem Intervall von S positiv bis zu einer bestimmten blauen Ecke und abdann negativ. Wenn nun a die rivalisierende Kante dieser Ecke ist, existieren sl[..] Zertifikatezu der linken Kante des linken Endpunktes von a und sr[..] Zertifikate zu der rechten Kantedes rechten Endpunktes von a. Diese Zertifikate garantieren, dass die rote Kette auf demInterval von S über der blauen Kette bleibt.

ut

2.3 Aktualisierung der konvexen Hülle

Das letzte Lemma zeigt, dass die obrige Liste der Zertifikate ausreichend ist, um die obereHülle zu erhalten. Um eine kinetische Datenstruktur zu erhalten, speichern wir alle Zerti-fikate in einer globalen Queue, in der diese nach ihrem Fälligkeitsdatum gespeichert sind.Wenn das erste Ereignis in der Queue eintritt, müssen wir die Liste der Zertifikate aktua-lisieren. Die Algorithmen für diese Veränderungen sind für jeden Ereignistyp im Folgendendargestellt. Die graphische Darstellung einer Veränderungen wird in Abbildung 2 gezeigt.

Page 248: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

240 Sabine Naewe

Dabei fehlen drei Fälle. Es fehlen die gespiegelten Fälle von Fall 1 und Fall 3, und dieEreignisse, welche von den x-Zertifikaten abhängen.

Abb. 2. Darstellung einiger Ereignisse

Algorithmus 22 Ereignis: Ungültigkeit von yli[ab]1: Lösche yri[ab.next], yli[ab];2: if ∃ yri[ab] then3: Lösche yli[ab.prev], yri[ab];4: Erzeuge slt[ab], srt[ab], yt[ab];5: Hole ce(ab) von der Ausgabe;6: else7: Erzeuge yri[ab], yli[ab.prev];8: Füge a hinzu oder hole b aus der Ausgabe;

Als Beispiel betrachten wir den Fall, dass das Zertifikat yt[ab], welches dem Fall 4 inAbbildung 2 entspricht, nicht mehr gültig ist. In diesem Fall bewegt sich eine rote Kanteüber eine blaue Ecke. Als erstes löschen wir die drei Zertifikate, welche beweisen, dass dierote Kante über der blauen liegt (letzter Fall in Abbildung 1). Dann fügen wir die Zertifikate

Page 249: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Kinetische Datenstrukturen für zweidimensionale Probleme 241

Algorithmus 23 Ereignis: Ungültigkeit von yt[ab]1: Lösche yt[abt], slt[ab], srt[ab];2: Erzeuge yt[ab], yri[ab.next];3: Erzeuge yri[ab], yli[ab.prev];4: Füge ce(ab) zur Ausgabe hinzu;

Algorithmus 24 Ereignis: Ungültigkeit von slt[ab]1: Lösche slt[ab], srt[ab], yt[ab];2: cd ← ab.prev;3: if d = a then4: Erzeuge slt[cd], srt[cd], yt[cd]; z.B. gleiche Farbe5: else6: Erzeuge sl[cd];

Algorithmus 25 Ereignis: Ungültigkeit von sl[ab]1: Lösche sl[ab];2: cd ← ab.prev;3: if χ(cd) 6= χ(ab) then4: Erzeuge slt[cd], srt[cd], yt[cd];5: else6: if ce(cd) 6= cd(ab) then7: Erzeuge sr[cd];

hinzu, welche die zwei neuen Schnitte darstellen. Schließlich fügen wir die neue Kante deroberen Hülle zur Ausgabe hinzu.

Die zu den Zertifikaten yri[ab], sr[ab] und srt[ab] symmetrischen Ereignisse sind dieZertifikaten yli[ab], sl[ab] und slt[ab].

Im Allgemeinen muss die Ausgabe geändert werden, falls sich ein y-Zertifikat ändert.Dabei werden entweder zwei Nachbarecken zu einer einzigen oder eine Ecke wird umgekehrtzu zwei verschiedenen Ecken, welche nun benachbart sind. Um dies rekuriv zu konstruieren,benötigen wir eine Möglichkeit lokale Strukturveränderungen in der Eingabe behandeln zukönnen. Damit erreichen wir, dass wir nur lokale Veränderungen vornehmen müssen undverringern die Laufzeit. Wenn nun zum Beispiel die Kante b zwischen den Kanten a und cverschwindet, existieren die Ecken ab und bc nicht mehr. Dafür entsteht nun die Ecke ac.Kurz bevor dieser Fall eintritt, kann b keine rivalisierende Kante zu einem anderen Knotensein. Damit muss nur eine konstante Menge von Zertifikaten verändert oder gelöscht werden.Diese enthalten in der Klammer ihres Namens ab oder bc und enthalten nun stattdessen ac.Im umgekehrten Fall erscheint eine Kante b und teilt damit eine Ecke ac in zwei Ecken abund bc. Damit müssen nur die Zertifikate mit ac im Namen geändert werden. Ein Steigungs-vergleich zwischen b und der rivalisierenden Ecke von ac erfordert die Entscheidung, welcherder neuen Knoten die, falls vorhandenen, tangentialen Zertifikate erhalten muss.

2.4 Divide and Conquer Algorithmus für die obere Hülle

In diesem Abschnitt wollen wir nun eine Struktur vorstellen, die eine Punktmenge undihre Teilmengen verwaltet, um optimal die konvexe Hülle der Gesamtmenge berechnen zukönnen. Um diesen Divide and Conquer Ansatz umzusetzten, betrachten wir als ersteseinen binären Baum. Ein Knoten ist nun dafür verantwortlich, die obere konvexe Hülle

Page 250: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

242 Sabine Naewe

Algorithmus 26 Ereignis: Ungültigkeit von x[ab, cd]1: Lösche x[ab, cd];2: Erzeuge x[cd, ab];3: if ∃ x[cd, cd.next] then4: Lösche x[ab.prev, ab];5: else6: Erzeuge x[ab.prev, cd];7: if ∃ x[cd, cd.next] then8: Lösche x[cd, cd.next];9: else

10: Erzeuge x[ab, cd.next];11: cd.prev ← ab.prev;12: ab.next ← cd.next;13: cd.next ← ab;14: ab.prev ← cd;15: ce(ab) ← d;16: ce(cd) ← a;17: /* Aktualisierung der Überschneidungszertifikate /*18: if ∃ yri[ab] then19: Lösche yri[ab];20: Erzeuge yri[cd];21: if ∃ yli[cd] then22: Lösche yli[cd];23: Erzeuge yli[ab];24: /* Aktualisierung der Steigungszertifikate, wenn ab unter cd ist /*25: if ab <y d then26: if ∃ yt[cd] then27: Lösche slt[cd], srt[cd], yt[cd]28: if ∃ sl[ab] then29: Lösche sl[ab];30: if χ(ab) 6= χ(cd) & b <s d then31: Erzeuge sl[ab];32: if χ(cd.prev) 6= χ(cd) & cd.prev <y ce(cd.prev) & a <s c then33: Erzeuge sl[cd.prev];34: else35: if ∃ sr[ab] then36: if a <s d then37: Lösche sl[cd.prev];38: Erzeuge slt[cd], srt[cd], yt[cd];39: else40: Aktualisiere sr[ab] mit dem Punkt des neuen cd(ab);41: /* Analog für cd liegt unter ab/*

der beiden Untermengen, die sich in den Kinderknoten befinden, zu berechnen. Wenn sichin einem der Kinderknoten etwas ändert, muss auch der Elternknoten neue Berechnungendurchführen und gibt wiederum seine neue Ausgabe an seinen Elternknoten weiter. So erhältman schließlich in der Wurzel die obere konvexe Hülle der Gesamtmenge. Diese Strukturbesitzt Lokalität O(log n) und Antwortzeit O(log2 n).

Analog zur Tournament Datenstruktur in [5] anaysieren wir die Effizienz unser Daten-struktur, indem wir die Zeit als eine zusätzliche statische Dimension betrachten. Dann be-trachten wir jedes Ereignis als Element einer drei-dimensionalen Struktur mit bekannterworst-case Komplexität. Die erste Version unseres Problems ist für diesen Analyseansatzschlecht geeignet, da die statische Struktur der konvexen Hülle während der Berechnung

Page 251: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Kinetische Datenstrukturen für zweidimensionale Probleme 243

nicht der konvexen Hülle der Trajektorien der eigentlichen Punkte entspricht. Andererseitsentspricht die obere Hülle unser betrachteten Struktur genau der oberen Hülle der Flä-che der eigentlichen Linien. Deswegen können wir auf bereits bewiesene Resultate für dieobere Hülle von algebraischen Flächen zurückgreifen [1]. Sie liefern eine nahezu quadrati-sche Komplexität. Agarwal, Schwarzkopf und Sharir haben bewiesen, dass die Oberflächeder Projektionen von zwei oberen Hüllen nahezu quadratische Komplexität hat [1]. Damiterhält man eine scharfe Grenze für die Anzahl der Ereignisse infolge von x-Zertifikaten.

Theorem 1. Die kinetische Datenstruktur zur Erhaltung der konvexen Hülle besitzt O(n2+ε)Effizienz für jedes ε > 0 in einem (δ, n)-Szenario. Dabei hängt die Konstante in der O-Notation von δ und ε ab.

Beweis. Ein (δ, n)-Szenario ist ein Szenario mit n Elementen, bei dem die Trajektorie einesObjektes ein Vektor von Polynomen in t mit Grad kleiner δ bildet [5].

Sei n die Anzahl der roten und blauen Linien in dem Berechnungsbaum. Als erstes be-trachtet man die Ereignisse, welche mit einem speziellen Knoten des Berechnungsbaumesverknüpft sind. Dabei sei die Zeit die statische dritte Dimension. Dann beschreibt eine Li-nie, deren Parameter polynomiale Funktionen abhängig von der Zeit sind, eine algebraischeFläche im Dreidimenisionalen. Die Familie der blauen (bzw. roten) Linien wird dann alsFamilie von bivariaten algebraischen Funktionen betrachtet. Wenn man nun die beiden obe-ren Hüllen und ihre gemeinsame Hülle betrachtet, sieht man, dass ein violetter Knoten indem zugeordneten Maximierungsdiagramm einem Vorzeichenwechsel in einem y-Zertifikatentspricht. Ein monochromatischer Knoten entspricht dann dem Erscheinen bzw. Verschwin-den einer Kante, was durch einen Nachfahren ausgelöst wird. Da unsere Flächen algebraischeinen begrenzeten Grad haben, besitzt ihr Maximierungsdiagramm Komplexität O(n2+ε)für jedes ε > 0 (Theorem 2.7 [1]). Damit wird die Anzahl der Ereignisse abhängig von demVorzeichenwechsel der y-Zertifikate durch diese Schranke begrenzt.

Nun betrachten wir die Ereignisse, die von der Neuordnung der x−Koordinaten von zweiKnoten mit verschiedenen Farben abhängen. Wir nennen diese im folgenden x-Ereignisse.Im dreidimensionalen wird dann ein blauer Hüllenknoten zu einer Kante des blauen Ma-ximierungsdiagramms. Damit entspricht ein x-Ereignis einem Punkt (x, t), über dem sicheine Kante befindet, die sowohl in der blauen als auch in der roten Hülle enthalten ist. Dasheißt, jedes x-Ereignis ist mit einem bichromatischen Knoten auf der Oberfläche des Maxi-mierungsdiagramms der roten und blauen oberen Familie verbunden. Wenn wir n bivariatealgebraische Flächen mit begrenzeten Grad haben, ist die Komplexität also O(n2+ε) fürjedes ε > 0 (Theorem 2.8) [1]. Damit haben wir höchstens so viele x-Ereignisse.

Schließlich liegt jedes Paar von Linien für eine konstante Anzahl von Zeitpunkten par-allel zueinander. Damit ergeben sich O(n2) Steigungs-Ereignisse, welche mit dem bis jetztbetrachteten Knoten verknüft sind. Wenn wir nun wieder den gesamten Berechnunsbaumbetrachten, erhalten wir zusammenfassend die Ereignisanzahl C(n). Diese erfüllt die Rekur-renzgleichung C(n) = 2C(n

2 ) + O(n2+ε). Damit ergibt sich C(n) = O(n2+ε).ut

Im schlimmsten Fall ändert sich die konvexe Hülle von n Punkten mit linearem oderhöherem Grad Ω(n2) Mal; damit ist diese kinetische Datenstruktur effizient.

Insgesamt ist diese Datenstruktur für die konvexe Hülle nicht sehr hilfreich, solange mankeine Datenstruktur für die Anfragen benutzt. Diese kann man aber leicht erhalten, indem

Page 252: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

244 Sabine Naewe

man die gegebenen Ecken und Kanten nicht in einer doppelt verketteten Liste sondern ineinem dynamischen binären Baum speichert. Dadurch wird die Effizienz nicht verändert,aber die Anfragen nach der Lage eines Punktes verbessert sich.

3 Dichtestes Paar

Als nächstes betrachten wie das Problem des dichesten Paares. Bei diesem Problem istwieder eine Menge M mit n Punkte gegeben. Gesucht wird nun ein Paar von Punktenx, y ∈ M mit:

∀ a, b ∈M : |x− y| ≤ |a− b|.Es ist ziemlich einfach eine kinetische Datenstruktur zu finden, welche dieses Problem

löst. Man erzeugt eine Prioritätsschlange, welche alle möglichen Abstände zwischen je zweiPunkten aus M enthält. Das Problem hierbei ist, dass diese kinetische Datenstruktur wederlokal noch kompakt ist, da jeder Punkt in O(n) vielen Zertifikaten enthalten ist.

Um nun eine kompakte kinetische Datenstruktur zu erhalten, betrachten wir als ersteseinen effizienten Algorithmus, welcher das dichteste Paar einer Punktemenge berechnet. Einklassischer Divide and Conquer Algorithmus hierfür ist der von Shamos [4]:

Man teilt die Menge der Punkte in zwei annähernd gleich große Mengen und berechnetrekurisiv die kleinsten Abstände δL und δR. Dann betrachtet man alle Paare von Punkten,welche einen Abstand kleiner oder gleich δ = min(δL, δR) von der vertikalten Linie x = x0

zwischen den beiden Teilmengen besitzen (Abbildung 3). Wenn man nun zulässt, dass sichdie Punkte auch bewegen können, benötigt man für jeden Punkte p auf der linken Seiteein Zertifikat der Form [xp < x0 − δ] oder umgekehrt. Wenn dann ein Punktepaar δ vieleVeränderungen durchführen würde, müssten alle Zertifikate der obrigen Form aktualisiertwerden und das können O(n) viele sein. Deswegen hätte die daraus resultierende kinetischeDatenstruktur eine so große Antwortzeit, so dass sie in diesem Fall nicht sinnvoll ist.

Abb. 3. Algorithmus für das dichteste Paar

Dieses Beispiel zeigt, dass nicht alle Algorithmen auf die Möglichkeit der Bewegungerweitert werden können. Bis jetzt wurde für keinen bekannten Algorithmus für das dichtestePaar eine Erweiterung auf die Bewegung der Elemente gefunden.

In diesem Abschnitt erläutern wir nun einen neuen statischen Algorithmus für die Be-rechnung des dichtesten Paares einer Menge von Punkten in der Ebene. Er basiert auf dem

Page 253: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Kinetische Datenstrukturen für zweidimensionale Probleme 245

plane sweep paradigm bzw. ebenen Durchlaufmodell. Dannach betrachten wir die Erwei-terung für sich bewegende Punkte. Jedes Element besitzt dann eine Position, welche einekontinuierliche Funktion in Abhängigkeit von der Zeit ist. Dann benötigen wir einige Daten-strukturen um den Verlauf zu speichern. Für diese Datenstrukturen zeigen wir dann, dasssie während der Bewegung der Elemente aufrechterhalten werden können. Damit erhaltenwir einen Algorithmus, welcher unsere Anforderungen erfüllt.

3.1 Statischer Algorithmus

Der statische Algorithmus für das Problem des dichtesten Paares basiert auf der Idee derTeilung des Raumes um einen Punkt in sechs 60 Gebiete. Trivialerweise ist der nächsteNachbar jedes Punktes der nächste der nächsten Nachbarn in den sechs Gebieten. Wirwerden zeigen, dass eine auf eindimensionalen Projektionen basierende approximative De-finition des nächsten Nachbarn in jedem Gebiet ausreichend ist, um das dichteste Paar zufinden. Mit dieser Definition können wir dann die Nachbarn effizient berechnen und späterdie Bewegung der Objekte in den Algorithmus einbringen.

In diesem Abschnitt betrachten wir eine Menge S von Elementen in einer festen Konfigu-ration. Um die Notation zu vereinfachen, unterscheidet man nicht zwischen den Elementenund ihrer Position in der Konfiguration. Wir bezeichen den Abstand zwischen zwei Punktenp und q mit d(p, q). Nun definieren wir drei verschiedene Ordnungen auf S. Für die ers-te Ordnung projektieren wir die Punkte orthogonal auf die x−Achse. Die hierauf geltendeOrdnung bezeichnen wir als die x-Ordnung. Für die zweite Ordnung projektieren wir diePunkte orthogonal auf eine orientierte Linie, welche mit der x-Achse einen 60 Winkel bil-det. Wir definieren als die +60 Ordnung die Ordnung der orthogonalen Projektion auf ihrerPosition auf einer orientierten Linie. Analog definieren wir die −60 Ordnung. Für diese dreiOrdnungen schreiben wir <0, <+, <−.

Die Annahme einer beliebigen Lage bedeutet, dass kein Element bezüglich dieser dreiOrdnungen gleich einem anderen Element ist und dass keine zwei Paare von Elementen diegleiche Distanz besitzten. Mit diesen Annahmen sind diese Strukturen und das dichtestePaar eindeutig definiert.

Im Folgenden leiten wir nun eine notwendige und hinreichende Bedingung für das dich-teste Paar her. Dafür benötigen wir im Folgenden einige Sätze und Definitionen.

Lemma 3. Sei T ein gleichseitigen Dreieck, u einer der Begrenzungsknoten und v ein Punk-te auf der Begrenzungskante gegenüber von u. Dann gilt für jeden Punkt w im Inneren vonT :

d(w, v) < d(u, v)

Beweis. Sei a die Länge einer Seite von T und b = d(u, v). Die Begrenzungskante, welchev enthält, besitzt zwei Endknoten. Sei z der Knoten, welcher von den beiden weiter von ventfernt liegt. Dann können wir schreiben d(v, z) = a

2 + c für ein c mit 0 ≤ c ≤ a2 . Mit dem

Satz von Pythagoras gilt b2 = c2 + 34a2 und damit:

(b− (c +a

2))(b + (c +

a

2)) = b2 − c2 − ac− a2

4

=a2

2− ac

≥ 0

Page 254: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

246 Sabine Naewe

Dann gilt b ≥ c + a2 . Der Kreis mit dem Mittelpunkt v und dem Radius d(u, v) enthält alle

drei Knoten der Begrenzung von T und damit alle alle inneren Punkte von T .ut

Wir definieren den dominierenden Keil eines Elements p als den nach rechts erweiter-ten Keil, welcher durch die Linien durch p, die mit der x− Achse einen 30 bzw. −30 Winkelbilden, begrenzt wird. Wir bezeichnen ihn mit Dom(p). Ein Element q liegt in Dom(p),genau dann wenn p <− q und p <+ q gelten.

Mit der Bedeckung eines Elementes q bezeichnen wir das am weitesten rechts liegendeElement, welches q in seinem dominierenden Keil enthält und bezeichnen sie als Cover(q).Damit die Bedeckung immer definiert ist, fügen wir ein Element (−∞, 0) hinzu.

Die Kandidatenmenge eines Elementes p, bezeichnet mit Cands(p), bezeichne dieMenge von Elementen, dessen Bedeckung p ist und das von diesen am weitesten links lie-gende Element, bezeichnet mit lcand(p), nennen wir den linken Kandidaten von p. EinPaar (p, lcand(p)) heißt ein Kandidatenmenge. Sie werden in Abbildung 4 dargestellt.

Abb. 4. Darstellung von UpTarget(p), lcand(p), Cands(p), Maxima(p)

Lemma 4. Sei S eine Menge von Elementen in beliebiger Lage. Wenn (p, q) das dichtestePaar in S ist und q ∈ Dom(p) gilt, ist q der linke Kandidat von p.

Beweis. Den Beweis führen wir indirekt.Als erstes nehmen wir an, dass p nicht die Bedeckung von q sein. Das bedeutet, dass

eine anderes Element r ∈ S rechts von p liegt und damit q ∈ Dom(r) gilt. In diesem Fallliegt r im Inneren eines gleichseitigen Dreiecks. Dieses Dreieck hat q als rechte Ecke undp liegt auf der linken Begrenzungslinie (Abbildung 5 a). Lemma 3 widerspricht dann derAnnahme, dass (p, q) das dichsteste Paar ist. Also gilt p = cover(q).

Nun nehmen wir an, dass ein Punkt q′ ∈ S ∩Dom(p) existiert, welcher links von q liegt.Dann liegt q′ in Inneren eines gleichseitigen Dreiecks mit p als linker Ecke und q liegt auf derrechten Begrenzungslinie. Dann gilt mit Lemma 3, dass d(q, q′) < d(p, q). Das widersprichtwieder (p, q) als dichtestes Paar.Damit ist q der linke Kandidat von p (Abbildung 5 b).

ut

Nun haben wir nur noch n Kandidatenpaare für eine Menge mit n Elementen. Wirbezeichnen diese Elementenpaare verbunden der 0 Richtung. Um nun das dichteste Paarzu finden, definieren wir analog die obrigen Definitionen für die Richtungen +60 und −60.Dabei ist der dominierende Keil verbunden mit einem der Winkel4 einfach der Keil, welchenman nach den obrigen Definitionen erhält, wenn wir die Fläche mit −4 um den Ursprungdrehen.

Page 255: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Kinetische Datenstrukturen für zweidimensionale Probleme 247

Abb. 5. Wenn (p, q) das dichteste Paar ist und q ∈ Dom(p), dann ist p die Bedeckung von q (a); q der linkeKandidat von p (b).

Korollar 1. Das dichteste Paar einer n−elementigen Menge S in beliebiger Lage ist einesder höchstens 3n Kandidatenpaare, welche mit den drei Richtungen 0,+60,−60 verbundensind.

Beweis. Sei (p, q) das dichteste Paar der Menge S, wobei p links von q liegt. Die drei domi-nierenden Keile von p spannen die ganze rechte Halbebene von der Vertikalen durch p auf.Damit liegt q in einem dieser Keile. Mit dem Lemma 4 folgt, dass (p, q) ein Kandidatenpaarfür diese Richtung ist.

ut

Für ein gegebenes Element p bezeichnen wir nun mit Sp die Menge aller Elementezu seiner rechten Seite. Die Elemente aus Sp, dessen Bedeckung nicht in Sp liegt, wirdmit Maxima(p) bezeichnet. Diese Menge wird in Abbildung 4 dargestellt.

Proposition 1. Wenn q, r ∈ Cands(p), dann gilt:q <+ r ⇔ r <− q ⇔ q <y r

Beweis. Nach Voraussetzung liegen q und r nicht im dominierenden Keil des anderen. Damitliegt r entweder unter oder über dem doppelten Keil, welcher durch die 30 und −30 Liniendurch p begrenzt wird. Falls ein Punkt über oder unter einem anderen liegt, sind die Ordnung<+ und <− die entgegengesetze Ordnung der anderen. Damit ist die Ordnung <+ die gleichewie die y-Ordnung.

ut

Der dominierende Keil von p teilt Maxima(p) in drei Mengen. Die zentrale Menge indem dominierenden Keil enthält die Kandidaten von p. Das niedrigste Element in der Mengeüber Dom(p) wird als oberes Ziel von p mit UpTarget(p) bezeichnet. Analog bezeichnetman das größte Element in der Menge unter Dom(p) als unteres Ziel mit LowTarget(p)bezeichnet. Das obere Ziel ist genau der linke Kandidat von p in Richtung +60 (Abbil-dung 4). Widerum fügt man Markierungen für −∞ und +∞ hinzu, damit die beiden Zielewohldefiniert sind.

Proposition 2. Wenn UpTarget(q) = UpTarget(r) und q <0 r gilt, folgt q <− r. WennLowTarget(q) = LowTarget(r) und q <0 n r, gilt q <+ r.

Beweis. Wir beweisen nur die erste Behauptung. Die zweite Behauptung folgt dann analog.Sei P das gemeinsame obere Ziel von q und r. Wir nehmen an, dass q links von r liegt.Wenn r <− q, dann liegt r über dem dominierenden Keil von q. Da aber r unter p liegt,kann p nicht oberes Ziel von q sein. Das ist ein Widerspruch zur Voraussetzung. Also giltq <− r.

ut

Page 256: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

248 Sabine Naewe

Nun skizzieren wir den statischen Algorithmus zur Berechnung aller Kandidatenpaarein Richtung 0 aus der Menge S. Dabei fügen wir die Elemente von rechts nach links einund speichern die Menge Maxima(p) in einem binären Baum Maxima. Dabei sortieren wirdie Elemente nach der ansteigenden y-Koordinate bzw. äquivalenterweise durch die 60 oder−60 Ordnung. Dieser Baum wird für jedem Knoten mit einem Feld erweitert. Dieses enthältdas linkeste Element in dem Unterbaum, welcher diesen Knoten als Wurzel hat. Dieses Feldwird später für die Bewegung benötigt. Im statischen Fall ändert sich die Laufzeit nichtwesentlich ohne dieses Feld, da man auch alle Elemente aus Cands(p) betrachten kann. Derdazu gehörige Algorithmus wird unten dargestellt.

Algorithmus 27 Berechnung aller Kandidatenpaare in 0 Richtung1: Initialisiere Maxima mit ∅2: Für jeden Punkte p ∈ S von rechts nach links:3: (a) Finde UpTarget(p) und LowTarget(p) in Maxima4: (b) Setze Cands(p) = Maxima ∩Dom(p)5: (c) Setze lcand(p) als das linkeste Element von Cands(p)6: (d) Ersetze die Elemente aus Cands(p) durch p in Maxima

Man sieht, dass dieser plane sweep Algorithmus mit Laufzeit O(n log n) implementiertwerden kann. Das Sortieren zur Vorbereitung des Durchlaufs benötigt O(n log n). Manspeichert Maxima in einer erweiterten balancierten binären Baumstruktur, welche Einfü-gen, Suchen, Löschen, Trennen und Verbinden in logarithmischer Zeit unterstützt [1]. DieBerechnung von Cands(p) erfordert zwei O(log n) Suchen in Maxima, falls Cands(p) einefortlaufende Untermenge von Maxima ist. Das Herausnehmen von Cands(p) aus Maximaund Einfügen von p auf diese Plätze benötigt O(log n) für jedes Element p. Dabei muss dasFeld des linkesten Elements aktualisiert werden. Insgesamt beträgt die Laufzeit O(n log n).

Der gleichen Algorithmus wird dann für die Flächen rotiert um 60 und −60 verwendetum alle Kandidatenpaare aus Korollar 1 zu bekommen. Aus diesen Paaren kann man inlinearer Zeit das dichsteste Paar berechnen. So erhält man das dichteste Paar mit worst-case Laufzeit O(n log n).

Der Algorithmus zur Berechnung der Kandidatenpaare benötigt nur Vergleiche in dendrei Richtungen 0, 60 und −60. Damit sind die Bedeckung, das Ziel und der linke Kandidatfür jeden Punkt durch die Ordnung entlang dieser drei Richtungen definiert. Wir sprechenvon allen diesen Attributen als die Kegelstruktur von S.

Proposition 3. Die folgende Menge von Zertifikaten auf einer Menge S reicht aus um dieKegelstruktur und das dichsteste Paar von S zertifizieren.

1. Zertifikate zur Bestätigung der 0 Ordnung auf S2. Zertifikate zur Bestätigung der 60 Ordnung auf S3. Zertifikate zur Bestätigung der −60 Ordnung auf S4. Zertifikate zur Bestätigung der Ordnung der Kandidatenpaaren aus S.Diese Beweisstruktur hat lineare Größe und O(log n) Lokalität.

Beweis. Die Gültigkeit des Beweises ist durch die Korrektheit des Algorithmus gegeben.Nun betrachten wir die Lokalität. Jedes Element kommt höchstens in zwei Zertifikaten in

der geordneten Liste vor. Außerdem ist jedes Element für jede Richtung in höchstens zwei

Page 257: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Kinetische Datenstrukturen für zweidimensionale Probleme 249

Kandidatenpaaren enthalten. Das eine Paar enthält noch seinen linken Kandidaten. Dasanderen enthält zusätzlich das Element zu dem das Ausgangselement der linke Kandidatist. Daher erscheint ein Element in der Kanditatenpaarordnung in O(1) Blättern und inO(log n) inneren Knoten. Damit hat die Beweisstruktur O(log n) Lokalität.

ut

3.2 Die Bewegung der Elemente

Im vorherigen Abschnitt haben wir uns mit einer Struktur beschäftigt, welche das dichtestePaar einer Menge berechnet. Im folgenden betrachten wir nun, wie sich die Struktur ändernmuss, wenn ein Zertifikat verfällt und zählen dabei die worst case Anzahl von Ereignissen,die in unserem polynomiellen Bewegungsmodell auftreten können.Im [5] wurde die Aktualisierung des Wettbewerbes zwischen Kandidatenpaaren betrachtet.Nun müssen wir die Kegelstruktur aktualisieren, wenn sich die Ordnung zweier Elemente aufeiner der drei betrachteten Richtungen ändert. Wenn zwei Elemente ihre Plätze tauschen,kann dies höchstens eine Veränderung in der Bedeckung von O(n) vielen Elementen ändern.Genauso kann eine Veränderung in der 60 Ordnung höchstens linear viele Veränderungenvon Zielen mit sich bringen.

Um nun eine ansprechbare kinetische Datenstruktur zu bekommen, stellt man die Zieleund Bedeckungen implizit in drei verschiedenen Binärbäumen dar.

1. Cands(p) enthält alle Kandidaten von p. Diese werden nach ihrer y−Ordnung sortiert.Die Folge dieser Elemente wird nun in einem balancierten Binärbaum gespeichert. Dieserunterstützt Suchen und Aktualisieren. Zusätzlich bekommt jeder Knoten einen Zeigerauf seinen Elternknoten in dem Baum und auf die Wurzel dieses Baumes. Damit kannman für jedes Element q ∈ S seine Bedeckung in O(log n) finden. Außerdem kennt jederKnoten seinen in x-Ordnung in seinem Unterbaum am weitesten links liegendes Element.Damit speichert die Wurzel von Cands(p) lands(p). Die Korrektheit des Elternzeigerskann in einer Standardbaumaktualisierungsoperation mit dem gleichen asymptotischenAufwand wie das Feld des linkesten Kandidaten erhalten bleiben. Dieses Feld mussimmer überprüft werden, falls sich die x-Ordnung ändert.

2. Hitsu(p) enthält alle Elemente, welche p als ein oberes Ziel besitzten. Sie werden nach der−60 Ordnung sortiert und in einem balancierten Binärbaum gespeichert. Dabei besitztjeder Knoten einen Zeiger auf seinen Elternknoten und auf p in der Wurzel, so dass fürjedes Element das obere Ziel in logarithmischer Zeit gefunden werden kann.

3. Analog enhält Hitsl(p) alle Elemente, für die p ein unters Ziel ist.

Mit diesen Datenstrukturen kann nun die Bewegung der Elemente simuliert werden,wobei wir die Maxima Datenstruktur selbst nicht mehr benutzen. Der statische Algorithmusist nützlich, um diese Datenstrukturen nach dem Verfall eines Ereignisses in O(n log n) zuerzeugen, wobei die beiden Hits Strukturen taktweise nach jedem gefundenen Ziel aufgebautwerden können.

Um nun die Arbeitsweise dieser Datenstrukturen zu verdeutlichen, betrachten wir als ers-tes den Algorithmus, welcher Cands(), Hits() und lands() aktualisiert, wenn zwei Elementep und q bzgl. der x-Ordnung ihre Positionen tauschen. Ohne Beschränkung der Allgemein-heit liegt p links von q und im Augenblick des Wechsels unter q.

Page 258: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

250 Sabine Naewe

1: /*Schritt 1*/2: if q = UpTarget(p) then3: (a) Hole aus Cands(q) die Elemente von Dom(p) und füge sie zur Spitze von Cands(p) hinzu.4: (b) Sei w = LowTarget(q). Lösche q aus Hitsl(w) und füge es in Hitsl(p) hinzu.5: (c) Sei v, falls vorhanden, das neue Bodenelement von Cands(q) oder sonst das obere Ziel von q.

Lösche p aus Hitsu(q) und füge es in Hitsu(v) ein.6: /*Schritt 2*/7: Sei p′ = Cover(p) und q′ = cover(q).8: if p′ = q′ then9: Aktualisiere lcand(p′) beginnend beim gemeinsamen Vorgänger von p und q im Baum für Cands(p′).

Abb. 6. Ein x-Ereignis und die Veränderung von Cands

Abbildung 6 verdeutlicht diesen Algorithmus. Dabei gilt, dass sich die Kegelstrukturändert, falls q ein Ziel von p ist und sich ihre x-Koordinaten vertauschen. Dabei werden dieElemente aus Maxima(q) in Dom(q) ∩Dom(p) von Cands(q) nach Cands(p) verschoben.Das Element p bekommt ein neues Ziel; der neue Punkt der Linie zwischen dem Abschnittvon p und seinem Ziel liegt in Dom(q). Ebenfalls bekommt q p als ein Ziel. Diese Veränderunggeschieht in Schritt 1.

Wir defininieren nun das Maximumdiagramm als die Vereinigung aller Punkte, welcheauf dem Rand von Dom(p) liegen und die nicht in

⋃q∈Maxima(p) Dom(q) vorhanden sind.

Die einzigen sich ändernden Kanten im Maximumdiagramm sind dann die, welche sich rechtsvon p und q erstrecken. Für Elemente rechts oder links von p, q ändert sich kein Ziel. Damitaktualisiert Schritt 1 auch das Maximumdiagramm.

Wenn weder p noch q Ziel des anderen sind, ändert sich das Maximumdiagramm nichtund Cands() und Hits() Felder müssen nicht verändert werden.

Ein lcand() Feld muss hingegen immer verändert werden. Falls p, q ∈ Cands(u) für einu, muss sichergestellt werden, dass das Feld für den linkesten Kandidaten im Binärbaumfür Cands(u) aktualisiert wird. Dafür wird jeder Vergleich von p und q in diesem Baum neubewertet. Dadurch kann sich lcand(u) verändern. Dies geschied in Schritt 2.

Jeder Schnitt des Algorithmus kann in logarithmischer Zeit durchgeführt werden. Diesgilt auch für Schritt 1(a), da Cands(q) nach der −60 Ordnung sortiert ist. Die Neutermi-nierung der modifizierten Zertifikate für die geänderte Ordnung benötigt ebenfalls logarith-mische Zeit.

Der folgende Pseudoalgorithmus aktualisiert das zugehörige Feld, wenn zwei Elemente pund q ihre Positionen in der +60 Ordnung von S wechseln. Während dieses Wechsels bildetdie Linie durch p und q einen −30 Winkel mit der x-Achse.

Ohne Beschränkung der Allgemeinheit nehmen wir an, dass p links und überhalb von qliegt. Dann können zwei verschiedene Fälle auftreten. Entweder kommt q zu Dom(p) dazuoder q verlässt diese Menge.

Page 259: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Kinetische Datenstrukturen für zweidimensionale Probleme 251

Im ersten Fall kommt q zur Menge Dom(p) dazu. Dann wird die Datenstruktur wir folgtaktualisiert:

1: if q = LowTarget(p) then2: (a) Sei v = Cover(q). Lösche q aus Cands(v) und füge es in Cands(p) ein.3: (b) Sei t das linkeste Element in Hitsu(q), welches rechts von p liegt. Falls nicht vorhanden, setzte t

gleich dem linkestes Ziel von q. Lösches p aus Hitsl(q) und füge p zu Hitsl(t) hinzu.4: (c) Lösche die Untermenge aus Hitsu(q), dessen Elemente links von t (somit auch links von p) liegen

füge sie an das Ende von Hitsu(p).

Im zweiten Fall verlässt q die Menge Dom(p). Der hierzu gehörige Pseudocode vertauschtnur die Aktionen des ersten Falles:

1: if q ∈ Cands(p) then2: (a) Sei t = LowTarget(q). Lösche p aus Hitsl(t) und füge es in Hitsl(q) ein.3: (b) Lösche aus Hitsu(p) die Elemente kleiner als q bzgl. <− und füge sie am Anfgang von Hitsu(q)

ein.4: (c) Sei v das neue rechteste Element von Hitsu(p). Falls Hitsu(p) leer ist, sei v die Bedeckung von

p. Lösche q aus Cands(p) und füge q zu Cands(v) hinzu.

Diese Fälle werden in Abbildung 7 dargestellt. Von (a) nach (b) verdeutlicht den erstenFall, während (b) nach (a) darstellt.

Abb. 7. Ein 60 Ereignis

Im ersten Fall kommt q zur Menge Dom(p) hinzu. Wenn q nicht das kleinste Ziel von pist, gilt q 6∈ Maxima(p) und damit verändert der Wechsel von p und q in der +60 Ordnungdie Kegelstruktur nicht. Somit muss die Datenstruktur nicht verändert werden. Falls aberq das kleinste Ziel von p ist, verändert sich die Kegelstruktur. Dies geschieht aber nur inder Nähe von p und q. Ihr Wechsel verändert nicht die Ziele der Elemente rechts von p, nurdas kleinste Ziel von p muss aktualisiert werden. Dies geschied in Schritt (b). Die Elementelinks von p, welche q als ihr oberes Ziel haben, müssen p als ihr neues Ziel speichern. DieseElemente liegen alle in Hitsu(q). Diese Aktualisierung geschied in Schritt (c). Von denMengen Cands() änderts dich nur die Menge Cands(p), da q zu dieser Menge hinzukommt(Schritt (a)). Die Felder für die linkesten Elemente werden während den Veränderungenin den binären Bäumen der Mengen Cands() aktualisiert und bleiben damit korrekt. DieListen der Mengen Cands() und Hits() reichen aus um die kombinatorische Struktur desMaximumdiagramms darzustellen. Damit ist dieses korrekt, solange die Mengen korrektsind.

Page 260: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

252 Sabine Naewe

Im zweiten Fall sind die Wechsel im Maximumdiagramm genau umgekehrt zu denen imersten Fall. Die Aktualisierung geschied genau umgekehrt zu der ersten Prozedur.

Die hierbei benutzten Operationen sind alle in logarithmischer Zeit möglich. Dies giltauch für den Schritt (b) im ersten Fall, da die Elmente aus Hitsu(q) in der x-Ordnunggeordnet sind. Die Anzahl sich hierbei wechselnder Zertifikate beträgt O(1). Sie können inlogarithmischer Zeit in der Ereignisschlange aktualisiert werden. Somit kann das gesuchteElement in logarithmischer Zeit gefunden werden.

Das letzte Element unserer kinetischen Datenstruktur ist der kinetische Wettbewerb der3n vielen Abständen, welche zu den (p, lcand(p)) Paaren gehören. Damit bekommen wir3n zusätzliche Zertifikate zu unserer Datenstruktur. Die Wurzel unseren Baumes für diesenWettbewerb enthält zu jeder Zeit das dichteste Paar. Dabei muss man beachten, dass wennsich lcand(p) ändert, dies zu einer Unstetigkeit des zugehörigen Abstandes im kinetischenWettbewerb führt. Insgesamt bekommen wir nun eine Datenstruktur, welche auf einemdynamischen Szenario arbeitet.

Theorem 2. Die kinetische Datenstruktur für das dichteste Paar hat eine Effizienz vonO(nλ2δ+2(n) log2 n) in einem dynamischen (δ, n, m) Szenario.

Beweis. Ein (δ, n, m) Szenario ist ein dynmisches Szenario, bei dem maximal n Objektegleichzeitig sichtbar sein können und es m verschiedene Bewegungsabschnitte gibt. Aufdiesen sind die Trajektorien wieder Polynome in t vom Grad kleiner als δ [5].

Ein Ereignis in der Kegelstruktur ist der Wechsel der Ordnung zweier Elemente entlangeiner der drei Ordnungen. Ein Paar von Elementen kann seine Ordnung höchstens δ malwechseln. Es gibt O(n2) solcher Ereignisse, welche wie vorher gesehen in O(log n) ablaufen.

Das Quadrat des Abstandes zweier Elemente ist eine ganzrationale Funktion mit Grad 2δ.Damit ist das für den kinestischen Wettbewerb erzeugte Szenario ein dynamisches (2δ, n, n2)Szenario und hat damit Effizienz O(nλ2δ+2(n) log2 n) (Lemma 3.8) [1].

ut

Damit haben wir eine kinetische Datenstruktur für das dichsteste Paar. Sie ist linear,hat konstante Lokalität und O(log2 n) Antwortzeit, und fast optimale Effizienz und erfülltdamit unsere gewünschten Eigenschaften.

4 Zusammenfassung

In diesem Kapitel haben wir nun am Beispiel der kinetischen Datenstruktur für die konvexeHülle und die des dichstesten Paares einer Menge kinetische Datenstrukturen für zweidi-mensionale Probleme betrachtet. Das Vorgehen und die Analyse dieser beiden wichtigengeometrischen Probleme lässt sich nun auf andere Problem übertragen und anwenden. Mitihnen lassen sich auch effiziente Algorithmen für Probleme in höheren Dimensionen finden.Somit stellen die kinetischen Datenstrukturen ein vielseitiges Hilfsmittel für viele Basispro-bleme dar.

Literaturverzeichnis

1. Julien Basch, 1999, Kinetic Data Structures, Seite 41-62

Page 261: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Kinetische Datenstrukturen für zweidimensionale Probleme 253

2. Dietrich Travkin, 2003, Kinetische Datenstrukturen, Seite 1-103. Leonidas J. Guibas, 1997, Kinetic Data Structures: A State of the Art Report, Seite 7-84. F. P. Preparata und M. I. Shamos, 1985, Computational Geometry: An Indroduction, Springer-Verlag,

1st ed. 1985. Corr. 5th printing edition (August 6, 1993), New York, NY5. Peter Kling, 2007, Eine Einführung in kinetische Datenstrukturen, Technical report, University of

Paderborn

Page 262: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide
Page 263: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Dynamische Steinerbäume

Holger Hagedorn

Universität Paderborn, [email protected]

Zusammenfassung. Diese Ausarbeitung beschreibt das Problem Dynamic Steiner Tree (DST). PraktischeAnwendungen finden sich in Netzwerken, in denen sich die Menge der über Router zu verbindenden Rechnerim Laufe der Zeit verändern. Im Teilproblem DST-N dürfen keine existierenden Verbindungen verändertwerden. Hierfür zeigen wir, dass die Worst-Case Performanz für jeden Algorithmus mindestens 1

2log n mal

die Kosten einer optimalen Lösung beträgt mit n als Anzahl der Rechner. Weiterhin präsentieren wir einenGreedy-Algorithmus, der maximal die zweifachen Kosten dieser Schranke verursacht. Letztlich wird nochein Ausblick auf Ergebnisse für das Teilproblem DST-R gegeben, in dem Veränderungen an bestehendenVerbindungen erlaubt sind.

1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255

1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2551.2 Definitionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2561.3 Kompetitive Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257

2 DST-N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258

2.1 Add Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2582.2 Dynamischer Greedy-Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2642.3 Remove Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265

3 DST-R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

4 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268

Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268

1 Einleitung

1.1 Motivation

Stellen wir uns ein Netzwerk von Rechnern vor. Ein paar Arbeitsrechner sind dafür vor-gesehen miteinander verbunden zu werden und Daten auszutauschen. Unser Ziel ist es dieArbeitsrechner so miteinander zu verbinden, dass die zu übertragenden Daten möglichstschnell übermittelt werden. Dazu können die restlichen Rechner im Netzwerk als Routerbenutzt werden. Überträgt man dieses Problem auf einen gewichteten Graphen als dasNetzwerk, so hat man eine gewisse Teilmenge der Knoten gegeben, die man mit einemBaum verbinden möchte. Dies könnte man über einen Spannbaum lösen, wie in Abbildung

Page 264: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

256 Holger Hagedorn

1 (a) für drei Knoten gezeigt. Allerdings kann es eine günstigere Verbindung geben, so-fern man noch andere Knoten des Graphen mit einbezieht. Der entstehende Baum wirdSteinerbaum genannt und ist in Abbildung 1 (b) dargestellt. Ein Steinerbaum ist also eineVerallgemeinerung des Spannbaums.

In vielen Netzwerken sind aber die Arbeitsrechner nicht statisch, sondern es werdenimmer wieder welche hinzugefügt und entfernt. Wir befinden uns damit also im Gebiet derOnline-Algorithmen. Dieses sogenannte Dynamic Steiner Tree (DST) Problem wird vonImase und Waxman [1] vorgestellt. Dabei gibt es zwei verschiedene Teilprobleme. Im erstenFall können beim Hinzufügen und Entfernen von Knoten die bestehenden Verbindungennicht geändert werden. Im zweiten Fall sind solche Veränderungen erlaubt, allerdings wirddie Anzahl derer beschränkt.

Wir werden in diesem Abschnitt zunächst die beiden Teilprobleme formal definieren unddaraufhin die kompetitiven Analyse als Technik vorstellen, mit der wir die Performanz vonOnline-Algorithmen analysieren können. In Abschnitt 2 befassen wir uns mit dem erstenTeilproblem. Dort zeigen wir erst eine untere Schranke für alle Algorithmen die nur Knotenins Netzwerk hinzufügen. Dann stellen wir einen Greedy-Algorithmus für das Problem vorund beweisen seine Performanz. Zuletzt zeigen wir noch, dass im Fall wo auch Knoten ausdem Netzwerk entfernt werden können, keine obere Schranke existiert. In Abschnitt 3 gebenwir einen kurzen Überblick über die Ergebnisse zum Teilproblem in dem Veränderungenzugelassen sind.

1.2 Definitionen

Wir bezeichnen mit G = (V,E) einen ungerichteten und zusammenhängenden Graphen.Dabei steht V (G) für die Knotenmenge und E(G) für die Kantenmenge. Der Grad deg(v)eines Knoten v ist definiert als die Anzahl inzidenter Kanten. Ein Teilgraph G′ von G wirdmit G′ ⊆ G notiert bzw. mit G′ ⊂ G für einen echten Teilgraphen. Ein einfacher Pfad ineinem Graphen ist ein Pfad in dem jeder Knoten nur einmal vorkommt. Mit dist : V ×V →R+ wird ein kürzester Weg zwischen zwei Knoten bezeichnet. Weiterhin gibt es zu jedemGraphen eine Kostenfunktion cost : E → R+. Eine Instanz I des Problems DST besteht auseinem Graphen G, der Kostenfunktion cost und einer Folge von Anfragen σ = σ0, . . . , σKmit σi = (vi, ρi) wobei vi ∈ V und ρi ∈ add, remove.

Definition 1 (Steinerbaum). Gegeben ein zusammenhängender, ungerichteter Graph G =(V,E), eine Gewichtsfunktion cost : E → N+ und eine Menge von Terminalen S ⊆ V . EinSteinerbaum T = (V ′, E′) ist ein zusammenhängender Teilbaum von G, in dem S ⊆ V ′ gilt.

(b)(a)

Abb. 1. Beispiel für (a) einen Spannbaum auf drei Knoten und (b) einen Steinerbaum auf denselben Knoten

Page 265: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Dynamische Steinerbäume 257

Bei einem minimalen Steinerbaum (man spricht auch von dem Steinerbaum-Problem ST)gilt zusätzlich, dass

∑e∈E′ cost(e) minimal ist. Bei dem korrespondierenden Online-Problem

Dynamic Steiner Tree verändert sich die Menge der Terminale. Si beschreibt dabei dieTerminale zum Zeitpunkt i. Wir definieren nun die beiden Ausprägungen dieses Problems.

Definition 2 (DST-N). Gegeben sei eine Instanz I = (G, cost, σ). Das Problem DST-N(Nonrearrangeable Dynamic Steiner Tree) besteht darin, eine Folge von Bäumen (Ti)0≤i≤K

zu finden, so dass eine Funktion cost(Ti) für alle 0 ≤ i ≤ K minimiert wird. In diesem Fallist cost(Ti) =

∑e∈E(Ti)

cost(e). Dabei müssen folgende Bedingungen eingehalten werden:

1. Jeder Baum Ti ist ein Steinerbaum auf Si.2. Falls σi eine add-Anfrage ist, dann muss Ti−1 ⊆ Ti gelten.3. Falls σi eine remove-Anfrage ist, dann muss Ti ⊆ Ti−1 gelten.

Definition 3 (DST-R). Gegeben sei eine Instanz I = (G, cost, σ). Das Problem DST-R(Rearrangable Dynamic Steiner Tree) besteht darin, eine Folge von Bäumen (Ti)0≤i≤K zufinden, so dass eine Funktion cost(Ti) für alle 0 ≤ i ≤ K minimiert wird. Dabei müssen diefolgenden Bedingungen eingehalten werden:

1. Jeder Baum Ti ist ein Steinerbaum auf Si.2. Die Anzahl der Änderungen dürfen eine obere Schranke B nicht überschreiten.

Offensichtlich ist in der letzteren Version die Einschränkungen um Ti aus Ti−1 zu konstru-ieren relaxiert. Zusätzlich sind allerdings die Anzahl der Veränderungen um von Ti−1 nachTi zu gelangen beschränkt. Die Anzahl der Änderungen im Schritt i werden mit αi bezeich-net und entsprechen der Anzahl der Zusammenhangskomponenten in Ti−1 ∩ Ti abzüglicheins.

1.3 Kompetitive Analyse

Wir führen in diesem Kapitel eine Analysetechnik für Online-Algorithmen ein, die Opti-mierungsprobleme lösen (vgl. [3]). In unserem Fall haben wir ein Minimierungsproblemvorliegen, denn wir wollen mit Hilfe eines Algorithmus A einen Steinerbaum für eine ge-gebene Instanz I = (G, cost, σ) von DST erzeugen, der möglichst geringe Kosten hat. Wirbezeichnen dabei mit A(Si) die Kosten cost(Ti) des Baumes, den A für Si generiert hat.Weiterhin bezeichne OPT (Si) die Kosten eines minimalen Steiner-Baumes auf Si.

Im allgemeineren Fall sprechen wir von einem unter Betrachtung stehenden Online-Algorithmus A und einem optimalen Offline-Algorithmus OPT . Optimal bedeutet, dasser unter allen möglichen Instanzen I eine der Lösungen liefert, die geringstmögliche Kostenverursacht. Im Vergleich zu Offline-Algorithmen, wo die Eingabegröße bekannt ist, sind beiOnline-Algorithmen zu Beginn des Berechnungsvorgangs nicht alle Eingabedaten verfügbar.Die Eingabedaten werden vielmehr zur Laufzeit ergänzt. Dies ist durch die Eingabefolge σausgedrückt. Berechnungen von A dürfen zum Zeitpunkt i immer nur von der Anfrage σi

abhängen.Es stellt sich nun die Frage, wie wir die Güte solcher Online-Algorithmen analysieren

können. Die klassische Worst-Case Analyse mit dem O-Kalkül versagt an dieser Stelle, dadie Eingabegröße nicht verfügbar ist. Daher hat sich eine Analysetechnik durchgesetzt, diekompetitive Analyse genannt wird. Die Idee dahinter ist, dass man einen Online-Algorithmus

Page 266: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

258 Holger Hagedorn

A gegen einen Gegner antreten lässt (daher kompetitiv). Der Gegner stellt Anfragen σi im-mer gerade so, dass die Lösung die A produziert möglichst hohe Kosten hat. Das Verhältnis,wie schlecht A dabei abschneidet, wird gemessen indem man die Lösung von A der Lösungvon OPT gegenüber stellt.

Definition 4 (c-Kompetitivität). Sei A ein Online-Algorithmus und OPT ein optimalerOffline-Algorithmus. A ist c-kompetitiv, genau dann wenn gilt:

∃a ≥ 0 : ∀0 ≤ i ≤ K : A(σi) ≤ c ·OPT (σi) + a

c wird hierbei kompetitiver Faktor genannt. Wenn a = 0 dann ist der Algorithmus striktc-kompetitiv.

Eine alternative (vielleicht intuitivere) Definition des kompetitiven Faktors die sich auch oftin der Literatur wiederfindet ist

c = max0≤i≤K

A(σi)OPT (σi)

. (1)

Angewendet auf das Problem DST-N lässt sich dies auch formulieren als

A(I) = max0<i≤K

A(Si)OPT (Si)

. (2)

Die Worst-Case Performance Ratio von A für alle Instanzen I (mit |I| als maximaler Größedes Terminal-Sets) beträgt

CA(n) = sup A(I) | I ist Instanz mit |I| = n .

2 DST-N

In diesem Abschnitt betrachten wir das Problem DST-N, also den Fall ohne Änderungenan bestehenden Verbindungen. Wir konzentrieren uns zunächst nur auf add -Anfragen undzeigen hierfür eine untere Schranke. Danach geben wir den Greedy-Algorithmus DGA anund beweisen seine Kompetitivität. Zum Schluss betrachten wir den allgemeinen Fall in demauch remove-Anfragen zugelassen sind. Hierfür wird gezeigt, dass es keine obere Schrankefür beliebige Algorithmen gibt.

2.1 Add Requests

Dieser Unterabschnitt behandelt DST-N ausschließlich für add -Anfragen. Um eine untereSchranke für diesen Fall herzuleiten, definieren wir zunächst eine spezielle Form von Gra-phen.

Definition 5 (P-Graph). Ein P-Graph Gk = (Vk, Ek) mit k ∈ N und einer konstantenKostenfunktion ck : Ek → R+ ist wie folgt rekursiv definiert:

1. G0 enthält zwei Knoten v0, v1 ∈ V0 (Level 0 Knoten) die über eine Kante verbunden sindund es gilt c0 = 1.

Page 267: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Dynamische Steinerbäume 259

2. ∀0 < i ≤ k : Für alle Kanten (u, v) ∈ E(Gi−1) wird ein eindeutiges Paar von Knotenα, β (Level i Schwestern) eingeführt. Die Kante (u, v) wird durch die zwei Pfade (u, α, v)und (u, β, v) ersetzt. Der resultierende Graph ist Gi. Jede Kante von Gi besitzt Gewichtci = 2−i.

Abbildung 2 verdeutlicht die rekursive Konstruktion für die Graphen G0, . . . , G3. InG1 sind exemplarisch die hinzugefügten Knoten α und β benannt. Man beachte auch diesich mit jedem Schritt halbierende Kostenfunktion. Eine wichtige Beobachtung ist, dass dieKosten eines einfachen Pfades von v0 nach v1 immer 1 betragen.

Auf einem P-Graph kann weiterhin eine spezielle Form der Adjazenz definiert werden.

Definition 6 (i-Adjazenz). Zwei Knoten u, v ∈ Vk eines P-Graphen Gk sind i-adjazent,0 ≤ i ≤ k, wenn es einen Pfad von u nach v gibt, so dass gilt:

1. Level von u und v ist höchstens i.2. Auf dem Pfad gibt es nur Verbindungsknoten mit Level echt größer als i.

Ein Beispiel für i-Adjazenz in einem G3 ist in Abbildung 3 gegeben. Exemplarisch sindhier je ein Pfad für 1-, 2- und 3-adjazente Knoten eingezeichnet. Man erkennt weiterhin, dasses nur beschränkte Möglichkeiten für i-adjazente Knoten gibt. In diesem Graphen können1-adjazente Knoten nur von Level 1 nach 0, 2-adjazente nur von Level 2 nach 1 oder 0,und 3-adjazente nur von Level 3 nach 2, 1 oder 0 verbunden werden. Die einzigen Knotendie 0-adjazent sein können sind v0 und v1. Überdies folgt aus der Definition sofort, dassi-adjazente Knoten in einem P-Graphen Gk mit k > i im P-Graphen Gi adjazent sind.

Lemma 1. Für alle P-Graphen Gi mit i ≥ 2 gilt:

1. Jeder Knoten x auf Level i ist adjazent zu genau zwei Knoten, nämlich Knoten v aufLevel i− 1 und Knoten u auf Level j mit 0 ≤ j < i− 1. Weiterhin hat x einen Schwes-terknoten y auf Level i der ebenfalls zu u und v adjazent ist.

2. Für alle Knoten v auf Level i−1 gilt, dass sie immer adjazent sind zu genau vier Knotenauf Level i die aus zwei Schwesterpaaren bestehen.

c1 = 12c0 = 1 c2 = 1

4 c3 = 18

v1 0

G1G0 G2 G3

v0 0

1

2

2

3

3

3

3

Level

α β

Abb. 2. Beispiel für P-Graphen

Page 268: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

260 Holger Hagedorn

v10

G3, c3 = 18

v00

1

2

2

3

3

3

3

Level

1-adjazent

2-adjazent

3-adjazent

Abb. 3. Beispiel für i-Adjazenz

Daraus folgt, dass für Graphen Gk mit k ≥ i die Bedingungen 1 und 2 erhalten bleiben,wenn man das Wort adjazent durch i-adjazent ersetzt.

Beweis. Das Lemma kann leicht per vollständiger Induktion bewiesen werden. Induktions-anfang ist bei i = 2. Für einen G2 stimmt die Behauptung, was sich leicht anhand Abbildung2 nachprüfen lässt. Nehmen wir nun an, die Behauptung gelte für i. Wir zeigen, dass dieBehauptung dann auch für i + 1 gilt. In Abbildung 4 sehen wir auf der linken Seite einenAusschnitt aus einem Graphen Gi. Der Knoten x auf Level i hat genau wie verlangt einenSchwesterknoten y und zwei adjazente Knoten u und v. Per Definition eines P-Graphenwerden nun um Gi+1 zu erzeugen für jede Kante zwei Knoten α und β eingefügt. Diesebefinden sich auf Level i + 1. Diese Transformation ist auf der rechten Seite in Abbildung 4

Schritt i Schritt i + 1

u

v

x yv′ = x

u

α = x′ y′ = β

i− 1

j (0 ≤ j < i− 1)

i + 1

i

i + 1

Level

Abb. 4. Induktionsschritt

Page 269: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Dynamische Steinerbäume 261

zu sehen. Wenn wir uns nun wieder einen Knoten als neues x′ herausnehmen (im Beispielα), dann hat dieser wiederum einen Schwesterknoten y′ (im Beispiel β) und ist zu zwei Kno-ten u′ und v′ verbunden. Im Beispiel gilt u′ = u und der Knoten liegt damit zwangsläufigauf Level j mit 0 ≤ j < (i + 1) − 1. Weiterhin wird aus dem alten x das neue v′, welchesauf Level i = (i + 1) − 1 liegt. Damit gilt Behauptung 1 des Lemmas. Behauptung 2 giltebenfalls, da v′ zu genau vier Level i = (i + 1) − 1 Knoten adjazent ist, von denen je zweiGeschwister sind. Anhand der Abbildung lässt sich erkennen, dass alle Eigenschaften nichtnur für die betrachteten x′ und y′ gelten, sondern für alle neu eingeführten Knoten α undβ. ut

Definition 7 (k-Sequenz). Für einen P-Graphen Gk wird eine Folge N = (N0, . . . , Nk)k-Sequenz genannt, wenn es einen Pfad p gibt der v0 und v1 verbindet und für alle 0 ≤ i ≤ kgilt:

Ni = v ∈ V (p) | v ist auf Level i

Als Beispiel für eine k-Sequenz nehmen wir einen P-Graphen G3 an und es sei ein Pfadgegeben als (v0, a, b, c, d, e, f, g, v1). Dann ist die korrespondierende 3-Sequenz dazu:

N = (v0, v1, d, b, f, a, c, e, g)

An diesem Beispiel lässt sich auch leicht erkennen, dass für i ≥ 1 immer |Ni| = 2i−1 gilt.Eine weitere Folgerung aus der Definition ist, dass der von N induzierte Pfad immer dieKosten 1 hat.

Definition 8 (Minimale Baum-Sequenz). Gegeben sei eine k-Sequenz N für einen P-Graphen Gk. Eine Folge T = (T0, . . . , Tk) wird minimale Baum-Sequenz genannt und in-duktiv definiert wie folgt:

1. T0 ist ein beliebiger Steinerbaum für N0 und kein T ′0 ⊂ T0 ist Steinerbaum für N0.

2. ∀0 < i ≤ k : Ti−1 ⊆ Ti und Ti ist Steinerbaum für Ni und kein T ′i ⊂ Ti ist Steinerbaum

für Ni.

Offensichtlich ist T0 immer ein einfacher Pfad zwischen v0 und v1. Mithilfe dieser und dervorherigen Definition können wir jetzt ein Lemma formulieren, welches eine untere Schrankefür Algorithmen angibt, die minimale Baum-Sequenzen erzeugen. Ein beliebiger AlgorithmusA erzeugt Ti immer basierende auf dem Wissen über Ti−1 und Ni. Es kann gezeigt werden,dass Knotenmengen Ni existieren, die immer die Kosten von A mindestens auf die Größeder unteren Schranke treiben. Wegen der Restriktion von σ auf eine k-Sequenz existiertimmer ein minimaler Steinerbaum mit Kosten 1, nämlich ein einfacher Pfad von v0 nach v1.

Lemma 2. Sei A ein Algorithmus für DST-N, der für alle Instanzen I = (Gk, cost, σ) eineminimale Baum-Sequenz T konstruiert. Dann existiert eine Folge von Anfragen auf Gk, dieeiner k-Sequenz N entspricht, so dass für alle 0 ≤ i ≤ k gilt:

cost(Ti) ≥ 1 +12i . (3)

Page 270: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

262 Holger Hagedorn

Beweis. Das Lemma wird per vollständiger Induktion über i für alle Ti mit 0 ≤ i ≤ kbewiesen. Wir konstruieren dazu eine Eingabe σ, die einer k-Sequenz N entspricht, so dassUngleichung (3) gilt.

Der Induktionsanfang ist bei i = 0 und i = 1. Für i = 0 gilt die Behauptung, da N0

nach Definition nur die Knoten v0 und v1 beinhaltet, die über einen einfachen Pfad T0 mitKosten 1 im Graphen Gk verbunden werden können (vgl. Abbildung 2). N0 bildet somit denPräfix einer k-Sequenz und Ungleichung (3) gilt. Für N1 bleiben uns nun zwei Knoten aufLevel 1 zur Auswahl. Wenn wir den Knoten nehmen, der nicht auf dem Pfad T0 liegt, dannergibt sich für T1 ein Baum mit Kosten cost(T1) ≥ 1, 5 und Ungleichung (3) gilt. Natürlichexistiert auch ein Pfad mit Kosten 1 über den neuen Knoten, aber da per Definition T0 ⊆ T1

gelten muss, kann dieser von A nicht gewählt werden. Da der Pfad mit Kosten 1 für N0 undN1 existiert (unabhängig von T0 und T1), bilden (N0, N1) einen Präfix einer k-Sequenz.

Als Induktionsvoraussetzung nehmen wir an, dass Ungleichung (3) für alle j mit 0 ≤ j ≤i− 1 gilt und (N0, . . . , Ni−1) der Prefix einer k-Sequenz ist.

Der Induktionsschritt geht nun von i− 1 nach i. Wieder wird ein Gegner angenommen,der immer unter Erhalt einer k-Sequenz auf den Algorithmus A reagiert und Knoten sosetzt, dass die gewünschten Kosten verursacht werden. Der Algorithmus A hat also einenBaum Ti−1 erzeugt, der Gegner wählt nun eine Folge von Anfragen Ni gerade so, dassA nur einen Baum Ti erzeugen kann, der mindestens die gewünschten Kosten hat. PerWiderspruch können wir beweisen, dass zu jedem Knoten v ∈ Ni−1 nur höchstens einKnoten pro i-adjazentem Schwester-Paar in Ti−1 enthalten ist. Dazu betrachten wir einenKnoten v ∈ Ni−1. Dieser ist nach Lemma 1 (2) i-adjazent zu genau vier Knoten auf Leveli, aufgeteilt auf zwei Schwesterpaare. Angenommen Ti−1 würde beide Knoten eines Level iSchwesterpaares enthalten. Dann müsste Ti−1 entweder einen Zyklus enthalten, was aber derMinimalität dieses Steinerbaums widersprechen würde. Oder aber es gäbe einen Blattknotenz ∈ Ti−1, der sich auf einem Level größer als i − 1 befinden würde. Da Nj (0 ≤ j ≤ i − 1)nach Definition nur Knoten der Level 0 bis i − 1 enthält, gilt z 6∈ Nj . D.h. z könnte auchweggelassen werden, also ist wiederum die Minimalitätsbedingung verletzt. Damit kann esin Ti−1 zu jedem Knoten v ∈ Ni−1 nur höchstens einen Knoten pro i-adjazentem Schwester-Paar geben.

Um die Anfrage Ni zu bilden, wählen wir nun für jedes v ∈ Ni−1 jeweils einen der nochnicht in Ti−1 enthaltenen i-adjazenten Schwesterknoten x aus (vgl. Abbildung 5). Nach I.V.gibt es einen Pfad mit Kosten 1, der alle Knoten aus jedem Nj , 0 ≤ j ≤ i−1 enthält. In derAbbildung würde dieser Pfad durch u und v verlaufen. Also existiert auch ein Pfad überx, da alle weiteren Knoten die zwischen u und v liegen einen Level größer als i besitzenund also nicht aus (N0, . . . , Ni−1) stammen. Damit gilt die k-Sequenz Eigenschaft auch mitdem neuen Knoten x ∈ Ni. Nach Lemma 1 (1) ist jeder Level i Knoten i-adjazent zu einemKnoten auf Level i − 1. Daraus folgt, dass in Ni alle Knoten des Levels i auf diesem Pfadenthalten sind. Somit ist auch (N0, . . . , Ni−1, Ni) Präfix einer k-Sequenz.

Kommen wir nun zu den Kosten des von A generierten Baumes Ti. Die Anzahl der Knotenin Ni−1 beträgt genau 2i−2. Da zu jedem dieser Knoten zwei Knoten auf Level i verbun-den werden, sind insgesamt genau 2i−1 Knoten in Ni enthalten. Die kürzeste Verbindungdieser Knoten aus Ni mit den Knoten aus Ti−1 entspricht einer Kante im Gi bzw. einemkorrespondierenden Pfad im Gk. Per Definition des P-Graphen hat eine solche VerbindungKosten 2−i.

Page 271: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Dynamische Steinerbäume 263

· · ·

......

· · ·

· · ·

......

· · ·

· · ·

· · ·

v ∈ Ni−1

Ti−1 63 x y ∈ Ti−1

Level i− 1

Level i

Level j, 0 ≤ j < i− 1

Level > i

Level > i

u

Abb. 5. Ausschnitt des Induktionsschritts

=⇒ cost(Ti) ≥ cost(Ti−1) + (2i−1 · 2−i)I.V.≥ 1 + (i− 1)

12

+12

= 1 +12i

Damit ist insgesamt das Lemma bewiesen. ut

Theorem 1. Sei A ein beliebiger Algorithmus für DST-N. Dann existiert eine Instanz I =(G, cost, σ), so dass gilt

∀0 < i ≤ K :A(Si)

OPT (Si)≥ 1 +

12blog(|Si| − 1)c . (4)

Diese Schranke gilt insbesondere, wenn wir uns auf das Hinzufügen von Knoten beschränken.

Beweis. Die Idee hinter dem Beweis ist, dass wir uns eine k-Sequenz auf einem P-Graphenkonstruieren, so dass Lemma 2 zur Ungleichung (4) umformuliert werden kann. Wir de-finieren uns dazu eine Instanz I = (Gk, ck, σ) von DST-N mit σi = (ui, add) für alle0 ≤ i ≤ K = 2k. Dabei gilt u0 = v0, u1 = v1 und für i > 1 gilt ui ∈ Nj mit j = dlog iefür eine k-Sequenz N . Diese entspricht genau der k-Sequenz, die wir als Eingabe für denAlgorithmus A aus Lemma 2 benötigen.

Zuerst verdeutlichen wir warum σ durch diese Definition einer k-Sequenz N entspricht.Man kann leicht nachrechnen, dass nach allen 2i add -Anfragen die Knoten für Ni vollständigsind. Insbesondere brauchen wir also K = 2k add -Anfragen um eine k-Sequenz zu erhalten.σ entspricht also einer k-Sequenz N . Damit gilt auch die Ungleichung (3). Lemma 2 giltallerdings nur im Bereich zwischen 0 und k. Darum ersetzen wir das i in (3) durch log(i),denn log(2k) = k. Wir runden diesen Wert zusätzlich ab, da wir nach Lemma 2 nur füreine j-Sequenz mit j = dlog ie die untere Schranke für die Kosten garantieren können. Nunhaben wir immer noch eine Abhängigkeit von i, wir wollen die Ungleichung aber abhängigmachen von der Menge der Terminale Si. Da |Si| − 1 = i, kann dies leicht ersetzt werden.Damit gilt insgesamt die Ungleichung (4) und das Theorem ist bewiesen. ut

Page 272: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

264 Holger Hagedorn

Algorithmus 28 DGAInput: (G, cost, σ)Output: (Ti)0≤i≤K

1: T0 ← (v0, ∅)2: S0 ← v03: i← 14: for i ≤ K do5: if σi is add request then6: pi ← Shortest path from vi to Ti−1

7: Ti ← Ti−1 ∪ pi

8: Si ← Si−1 ∪ vi9: else if σi is remove request then

10: Ti ← Ti−1

11: Si ← Si−1 \ vi12: while ∃w ∈ V (Ti) \ Si : deg(w) = 1 do13: Ti ← Ti \ w

2.2 Dynamischer Greedy-Algorithmus

Der Online-Algorithmus DGA (Dynamic Greedy Algorithm) berechnet eine Lösung für dasProblem DST-N mit einem Greedy-Ansatz. Im wesentlichen verbindet er neue Knoten mitdem nächstgelegenen Knoten des aktuellen Steinerbaumes. Algorithmus 28 beschreibt dieDetails in Pseudocode.

Wir zeigen als nächstes, dass DGA strikt dlog |Si|e-kompetitiv ist. Ein wesentlich einfa-cherer Beweis als der im Paper von Imase und Waxman stammt von Bartal [2].

Theorem 2. Sei I = (G, cost, σ) eine beliebige Instanz des Problems DST-N mit Anfragenσ = σ0, . . . , σK und Terminalen Si zum Zeitpunkt i. Wenn alle Anfragen in der Formσi = (vi, add) sind, dann gilt:

∀1 ≤ i ≤ K :DGA(Si)OPT (Si)

≤ dlog |Si|e (5)

Beweis. Sei I = (G, cost, σ) eine Instanz von DST-N und T ∗i der minimale Steinerbaum,

der alle Knoten in Si spannt. Weiterhin sei Hi ein minimaler Kreis über alle Knoten in Si.Abbildung 6 illustriert diesen Zusammenhang. Der Kreis ist von oben beschränkt durch daszweifache des optimalen Steinerbaumes, also

cost(Hi) ≤ 2 · cost(T ∗i ) .

Diese obere Schranke ergibt sich aus dem Kreis der entsteht, wenn man einfach an einembeliebigen Knoten von T ∗

i startet und einmal aussen an dem ganzen Baum entlanggeht.Dabei muss jede Kante einmal in Hin- und einmal in Rückrichtung passiert werden, was diezweifachen Kosten verursacht. Natürlich kann Hi aber auch andere Kanten verwenden unddaher günstiger sein.

Betrachten wir zwei beliebige adjazente Knoten u, v ∈ Hi, wobei v nach u hinzugefügtwurde. Die Kosten für das Hinzufügen von v sind maximal die Kosten des Pfades zwischen uund v im Kreis Hi, da alle benachbarten Knoten in Hi durch einen kürzesten Pfad verbundensind.

Wir teilen nun alle Knoten entlang des Kreises Hi in b|Si|/2c Paare von adjazentenKnoten auf (vgl. Abbildung 6). Dabei können die Paare gerade so gewählt werden, dass die

Page 273: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Dynamische Steinerbäume 265

akkumulierten Kosten ihrer verbindenden Kanten nur halb so groß sind wie die des gesamtenKreises. Daraus folgt, dass die Kosten dieser Paare auch nur maximal so hoch sein können,wie die von T ∗

i .Angewendet auf DGA befinden wir uns also in der Situation, in der jeweils genau einer der

Knoten eines solchen Knotenpaares gegeben ist und der zweite als add -Anfrage hinzugefügtwird. Die Kosten die DGA für diese halbe Menge der Terminale verursacht sind folglichhöchstens so teuer wie die Kosten von T ∗

i , also

DGA(b|Si|/2c) ≤ OPT (Si) .

Wichtig zu beachten ist dabei, dass diese halbe Menge der Terminale nicht zwingend derSuffix der Anfragen σ sein muss, sondern nur paarweise die zuletzt hinzugefügten Knotenbetrachtet werden.

Entfernen wir nun diese zuletzt hinzugefügten Knoten, dann können wir die übrig ge-bliebenen wiederum zu einem minimalen Kreis verbinden und in adjazente Knotenpaareaufteilen. Die Kosten von DGA entsprechen wiederum maximal den Kosten von T ∗

i . Dieswird sukzessive so fortgeführt bis nur noch ein Knoten übrig bleibt. Die Frage ist nun al-so, wie oft wir diese Aufteilung vornehmen müssen – wie oft wir also maximal die Kostenvon T ∗

i beanspruchen. Dazu können wir die obige Ungleichung als eine Rekurrenzgleichungauffassen. Nach Auflösen ergibt sich, dass wir dlog |Si|e mal die Menge der Terminale wiebeschrieben aufteilen müssen. Daraus folgt die Ungleichung (5) und das Theorem ist bewie-sen. ut

2.3 Remove Requests

Bislang haben wir nur add -Anfragen betrachtet. Wenn jetzt noch zusätzlich remove-Anfragen hinzukommen, dann kann gezeigt werden, dass im Worst-Case die Kosten einesAlgorithmus A für DST-N unbeschränkt sind. Die Kosten sind dann abhängig von der An-zahl der Terminale.

Theorem 3. Sei A ein Algorithmus für DST-N. Für alle Paare M, l ∈ N+ gibt es eineInstanz (G, cost, σ) von DST-N und ein j ∈ N+, so dass

u

v

T ∗i Hi

Abb. 6. Der minimale Steinerbaum T ∗i (schwarze Linien), der minimale Kreis Hi (graue Linien) und dessen

Aufteilung in b|Si|/2c Paare von adjazenten Knoten (fett gestrichelte Linien).

Page 274: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

266 Holger Hagedorn

ε

ε ε

εε

ε

εε

11

1 1

1

11

1

Abb. 7. Spezieller Graph in dem |V | = 2M + 4 gilt, hierbei für M = 6. Die hellen Knoten bilden einenKreis C mit M + 2 Knoten.

A(Si) ≥M ·OPT (Si) (6)

für alle j < i ≤ j + l unabhängig von der Anzahl der Terminale in Si.

Beweis. Wir betrachten folgenden gewichteten Graphen G = (V,E) mit |V | = 2M + 4.Hierin befindet sich ein Kreis C mit M + 2 Knoten in dem alle Kanten das Gewicht 1haben. Die restlichen M + 2 Knoten sind jeweils durch genau eine Kante mit Gewicht ε zueinem der Knoten in C verbunden. Ein Beispiel dieses Graphen für M = 6 findet sich inAbbildung 7.

Für einen Algorithmus A werden nun mit den ersten M + 2 Anfragen die Knoten desKreises hinzugefügt. Also gilt für alle 0 ≤ i ≤ M + 1, dass σi = (qi, add). Da immer dernächstliegende Knoten hinzugefügt wird, ist der vom Algorithmus A erstellte SteinerbaumTM+1 ein Pfad, der bis auf eine Kante dem Kreis C entspricht. Die Knoten dieses Pfadesseien der Reihe nach durchnummeriert mit q0, . . . , qM+1. Die Kosten entsprechen genaucost(TM+1) = M + 1.

In den nächsten M Schritten wird immer wieder ein Knoten mit Kantengrad zwei ausdem Kreis entfernt. Formal gilt also für alle M +2 ≤ i ≤ 2M +2, dass σi = (vi, remove) unddeg(vi) = 2. Der Algorithmus A wird die aus der Menge der Terminale entfernten Knotentrotzdem weiter benutzen, da er nach Definition von DST-N nur Kanten löschen, aber keineneuen einfügen darf. Daraus folgt, dass TM+1 = TM+2 = . . . = T2M+1. Nach entfernender Knoten sind nur noch gerade die zwei Knoten in der Menge der Terminale übrig, diezuvor die Start- und Endknoten des Pfades TM+1 waren, also S2M+1 = q0, qM+1. DaTM+1 = T2M+1 ist, gilt cost(T2M+1) = M + 1. Allerdings wäre ein optimaler Steinerbaumlediglich die Verbindung der zwei Knoten q0 und qM+1 durch deren verbindende Kante undsomit OPT (S2M+1) = 1. An dieser Stelle gilt also die Ungleichung (6).

Um diese Eigenschaft aufrecht zu erhalten, werden nun für alle σi mit i > 2M +2 immeralternierend ein Knoten hinzugefügt und entfernt. Dieser Knoten ist genau einer der Knoten,die durch eine Kante mit Gewicht ε mit q0, qM+1 ∈ T2M+1 verbunden sind. Der Wert von εkann beliebig klein gemacht werden, so dass

M + 1 + ε ≥M · (1 + ε)

gilt. Somit gilt nach jedem Schritt die Ungleichung 6 und das Theorem ist bewiesen. ut

Page 275: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Dynamische Steinerbäume 267

3 DST-R

In diesem Abschnitt werden wir aus Platzgründen nur einen kurzen Überblick über dieErgebnisse in [1] zum Problem DST-R geben. Zur Erinnerung, der Unterschied zu DST-N war, dass nun Änderungen in existierenden Verbindungen zulässig sind. Die Anzahl derÄnderungen ist aber beschränkt. Falls die Anzahl nicht beschränkt ist, dann ist das Problemin jedem Schritt äquivalent zum statischen Steinerbaum-Problem ST. Für DST-R gibt eseine Klasse von Algorithmen, die δ-Kanten-beschränkte Algorithmen genannt werden. Jederspezifische Algorithmus (EBA(δ)) ist bestimmt durch eine positive reelle Zahl δ ≥ 1. Dochbevor wir etwas über diese Algorithmen aussagen können, benötigen wir die folgenden zweiDefinitionen.

Definition 9 (δ-Kanten-beschränkt). Seien u, v ∈ T und T ist ein Baum. Falls u undv die folgende Bedingung erfüllen, werden sie als δ-Kanten-beschränktes Paar bezeichnet.Für ein beliebiges e ∈ p(u, v, T ) gelte

cost(e) ≤ δ · dist(u, v) (7)

mit p(u, v, T ) als Menge von Kanten auf dem Pfad zwischen u und v in T . Weiterhin wirdT als δ-Kanten-beschränkter Baum bezeichnet, wenn jedes Knotenpaar in T δ-Kanten-beschränkt ist.

Definition 10 (Erweiterungsbaum). Für eine Knotenmenge S wird ein Baum T alsErweiterungsbaum bezeichnet, falls er die folgenden Eigenschaften erfüllt:

• S ⊆ V .• Für einen beliebigen Knoten x ∈ V \ S ist deg(x) > 2 in T .

Der Algorithmus EBA(δ) basiert auf dem Algorithmus MSTA [4], der einen minima-len Spannbaum approximiert. Er liefert für eine gegebene Knotenmenge einen Spannbaum,der nie höhere Kosten hat als das Zweifache vom Optimum. Für DST-R jedoch verursachter unter Umständen sehr viele Änderungen von Verbindungen. Die von MSTA generier-ten Spannbäume sind 1-Kanten-beschränkte Bäume, daher kann ein δ-Kanten-beschränkterBaum als eine Generalisierung davon verstanden werden.

Die nun folgenden Theoreme sind Folgerungen aus Lemmas, die diese Schranken fürδ-Kanten-beschränkte Bäume und Erweiterungsbäume zeigen. Da EBA(δ) solche Erweite-rungsbäume für jedes Si berechnet, gelten die Schranken auch für die von diesem Algorith-mus erzeugten Lösungen.

Theorem 4. Für einen beliebigen von EBA(δ) erstellten Baum Ti gilt, dass er ein δ-Kanten-beschränkter Erweiterungsbaum für Si ist und für alle 0 ≤ i ≤ K gilt weiterhin

cost(Ti) ≤ 2δ ·MSTA(Si) ≤ 4δ ·OPT (Si) . (8)

Theorem 5. Falls alle σi auf add-Anfragen beschränkt sind, dann genügt jeder von EBA(δ)erzeugte Baum Ti der folgenden Ungleichung:

cost(Ti) ≤ δ ·MSTA(Si) ≤ 2δ ·OPT (Si) . (9)

Page 276: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

268 Holger Hagedorn

Als letztes stellen wir noch eine obere Schranke für die Gesamtanzahl von Änderungenfür EBA(δ) vor. Dabei bezeichne Ka die Anzahl add -Anfragen und Kr die Anzahl remove-Anfragen.

Theorem 6. Sei I = (G, cost, σ) eine beliebige Instanz. Falls δ ≥ 2, dann ist die obereSchranke für die totale Anzahl an Änderungen die von EBA(δ) benötigt werden gegebendurch

K∑i=0

αi ≤12Ka(

√4Ka − 3− 3) + Kr . (10)

4 Fazit

In dieser Ausarbeitung haben wir zwei Ausprägungen des Problems Dynamic Steiner Treevorgestellt. Für DST-N konnten wir zeigen, dass es im allgemeinen Fall unbeschränkt ist.Lässt man jedoch nur das Hinzufügen von Knoten zu, so gibt es eine obere Schranke. Wirhaben den Greedy-Algorithmus DGA vorgestellt, dessen Worst-Case Performanz innerhalbdem zweifachen des optimalen Falles liegt. Weiterhin haben wir für DST-R den AlgorithmusEBA(2) vorgestellt, dessen Performanz im achtfachen des Optimums liegt.

Literaturverzeichnis

1. Imase M, Waxman BM (1991) Dynamic Steiner Tree Problem. SIAM J. Disc. Math. Vol. 4 No. 3:369–384

2. Bartal Y (1994) Competitive Analysis of Distributed On-line Problems – Distributed Paging. Ph.D.Thesis, Tel-Aviv University, Tel-Aviv

3. Borodin A, El-Yaniv R (1998) Online Computation and Competitive Analysis. Cambridge UniversityPress, New York

4. Kou L, Markowsky G, Berman L (1977) A fast algorithm on Steiner trees. Acta Inform. 3:141–145

Page 277: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Approximationen und Alternativen für Aspektgraphen

David Schmelter

Universität Paderborn

Zusammenfassung. Ein wesentliches Problem bei der Verwendung von Aspektgraphen ist ihre Kom-plexität, sowohl was die Größe, als auch den Konstruktionsaufwand betrifft. Dies macht eine praktischeVerwendung bereits für 3D Szenen mit wenigen hundert Polygonen unmöglich. In dieser Arbeit werden da-her sowohl Approximationen (im Wesentlichen der Finite-Resolution Aspect Graph) als auch Alternativen(im Wesentlichen das Visibility Skeleton) für Aspektgraphen betrachtet, denen eine gewisse Praxisrelevanzzugeschrieben werden kann. Der Finite-Resolution Aspect Graph bietet für den Fall der orthografischen Pro-jektion ein Verfahren, das einen Aspektgraphen mit geringerer Komplexität im Vergleich zum klassischenAspektgraphen ermöglicht. Allerdings leidet dieses Verfahren unter einem hohen Konstruktionsaufwand,was eine praktische Verwendung bereits für einfache Szenen verwehrt. Mit dem Visibility Skeleton existierteine interessante Alternative für Aspektgraphen, mit der eine Reihe unterschiedlicher Anfragen auch fürnicht-triviale 3D Szenen effizient beantwortet werden können.

1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270

1.1 Approximationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2701.2 Alternativen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2711.3 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273

2 Finite-Resolution Aspect Graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273

2.1 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2742.2 Konstruktion des Finite-Resolution Aspect Graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . 2762.3 Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2782.4 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279

3 Visibility Skeleton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279

3.1 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2803.2 Definitionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2833.3 Datenstruktur des Visibility Skeletons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2843.4 Konstruktion des Visibility Skeletons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2853.5 Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2873.6 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288

4 Zusammenfassung und Diskussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289

Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289

Page 278: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

270 David Schmelter

1 Einleitung

Viele Verfahren in der Computergrafik (beispielsweise globale Beleuchtungsverfahren wieRadiosity) benötigen detaillierte Information über globale Sichtbarkeiten von Objekten.Mit Aspektgraphen [8] existiert eine Datenstruktur, mit der diese Informationen exakt fürjeden Punkt einer dreidimensionalen Szene gespeichert und abgefragt werden können.

Die Kosten für die Erzeugung machen eine praktische Verwendung des Aspektgraphenbereits für Szenen mit wenigen hundert Polygonen allerdings unmöglich (unter Annahmeperspektivischer Projektion ist die maximale Größe des Aspektgraphen für n PolygoneO(n9), die Konstruktionszeit beträgt O(n9 log n)). Es gibt unterschiedliche Ansätze, umdiesem Problem zu begegnen. Zum einen wurden Approximationen für Aspektgraphen ent-wickelt. Darüber hinaus gibt es alternative Verfahren, die sich auf eine etwas andere Weisedem Sichtbarkeitsproblem nähern.

In dieser Arbeit werden sowohl unterschiedliche Approximationen (Finite-ResolutionAspect Graphs, Scale Space Aspect Graphs und Weighted Aspect Graphs) als auch alternati-ve Verfahren (das Visibility Skeleton und der 3D Visibility Complex) vorgestellt und unter-sucht. Der Schwerpunkt soll hierbei auf Verfahren mit einer gewissen Praxisrelevanz liegen.Wir werden sehen, dass hierfür Aspektgraphen mit endlicher Auflösung (Finite-ResolutionAspect Graphs) und das Visibility Skeleton in Frage kommen.

1.1 Approximationen

In diesem Abschnitt wird zunächst ein kurzer Überblick über die im vorherigen Abschnittbereits erwähnten Approximationen für Aspektgraphen gegeben.

Finite-Resolution Aspect Graphs

Bei der Konstruktion von Aspektgraphen wurde bisher eine Kamera bzw. Projektion mitunendlicher Auflösung angenommen. Typischerweise besitzt eine reale Kamera aber nureine endliche Auflösung. Daraus resultiert, dass in einem Aspektgraphen Details berück-sichtigt werden, die vom Betrachter gar nicht unterschieden werden können. Abbildung 1verdeutlicht dies an einem Beispiel: Auf der linken Seite der Abbildung ist eine Kante undein Vertex in einer Projektion mit unendlicher Auflösung dargestellt. In diesem Fall ist derAbstand beider Elemente erkennbar. Auf der rechten Seite der Abbildung ist die gleicheProjektion mit endlicher Auflösung dargestellt. In diesem Fall scheinen sich beide Elementezu berühren, der Abstand ist für einen Betrachter nicht erkennbar.

Abb. 1. Projektion mit unendlicher Auflösung (links) und endlicher Auflösung (rechts). Nach [11]

Page 279: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Approximationen und Alternativen für Aspektgraphen 271

Shimshoni und Ponce haben in [11] einen Algorithmus zur Konstruktion eines Aspektgra-phen für den Fall einer orthografischen Projektion vorgestellt, der die Einschränkung endli-cher Auflösung einer realen Kamera berücksichtigt. Dieser Aspektgraph speichert Aspekteeines Objekts mit endlicher anstatt unendlicher Auflösung. Shimshoni und Ponce gehendavon aus, dass ein solcher Aspektgraph eine relativ geringe Komplexität besitzt und dieentsprechenden Aspekte dennoch genug Details, z.B. zur Objekterkennung, enthalten.

Hierzu wurde der Schwellenwert ε eingeführt. Beispielsweise können zwei Vertexe unter-schieden werden, wenn sie in einer Projektion mit endlicher Auflösung mindestens um denWert ε voneinander entfernt sind.

Da der Algorithmus zur Konstruktion des Finite-Resolution Aspect Graphs vollständigimplementiert wurde, wird dieses Verfahren in dieser Arbeit in Kapitel 2 näher untersucht.

Scale Space Aspect Graphs

Der von Eggert et al. in [6] vorgestellte Scale Space Aspect Graph kann in gewissem Sinne alseine Verallgemeinerung des Finite-Resolution Aspect Graphs aufgefasst werden. Man kannsich vorstellen, dass die Komplexität eines Aspektgraphen mit endlicher Auflösung immermehr abnimmt, je größer der Schwellenwert ε gewählt wird. Die Idee ist, ε durch den Scale-Parameter σ mit einem stetigen Wertebereich zu ersetzen um so einen Aspektgraphen mitbeliebig anpassbarer Komplexität zu erhalten. Für σ = 0 entspricht der Finite-ResolutionAspect Graph einem klassischen Aspektgraphen mit unendlicher Auflösung. Wird σ stetigerhöht erhält man schließlich einen Aspektgraphen mit nur einem Aspekt. In [6] geht es inerster Linie darum, unterschiedliche Interpretationen von Scale-Parametern zu identifizierenund zu untersuchen. Die Arbeit liefert allerdings keinen Algorithmus zur Konstruktion desScale Space Aspect Graphs, bleibt also auf theoretischer Ebene und wird daher im Kontextdieser Ausarbeitung nicht weiter betrachtet.

Weighted Aspect Graphs

Arie stellt in [1] eine weitere Möglichkeit vor, um Aspektgraphen zu vereinfachen bzw. zuapproximieren. Er gibt eine Wahrscheinlichkeit (bzw. das Gewicht) für ein Element einesObjektes an, mit der dieses Element im Bildraum sichtbar ist. Abbildung 2 zeigt zur Ver-deutlichung einen Würfel unter orthografischer Projektion. Die markierte Fläche a ist exaktin der oberen Halbkugel von S2 sichtbar. Somit ist das Gewicht dieser Fläche 1

2 .Die Idee von Arie ist, für jeden Knoten des Aspektgraphen ein solches Gewicht zu berech-

nen. Aspekte mit einem relativ niedrigen Gewicht können als unwichtig aufgefasst und ausdem Aspektgraphen entfernt werden. Auch diese Arbeit bleibt allerdings auf theoretischerEbene.

1.2 Alternativen

In diesem Abschnitt wird ein kurzer Überblick über alternative Verfahren bzw. Datenstruk-turen, die Informationen über globale Sichtbarkeiten zur Verfügung stellen, gegeben.

Page 280: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

272 David Schmelter

a

Abb. 2. Würfel unter orthografischer Projektion

Visibility Skeleton

Das Visibility Skeleton [5] ist eine im Jahr 1997 von Frédo Durand, George Drettakis undClaude Puech vorgestellte Datenstruktur, die exakte, globale Sichtbarkeitsinformationeneiner 3D Szene in Form einer Graphstruktur enthält. Verschiedene Verfahren, die Informa-tionen über globale Sichtbarkeiten benötigen (z.B. Verfahren zum Occlusion Culling oderglobale Beleuchtungsverfahren wie Radiosity) können diese Informationen effizient über dasVisibility Skeleton abfragen. Da das Visibility Skeleton für unterschiedliche Anwendungengenutzt werden kann, wird es von den Autoren auch als multi-purpose Tool beworben. DasVisibility Skeleton enthält im Gegensatz zu Aspektgraphen allerdings keine Informationenüber die unterschiedlichen Aspekte eines Objekts, eignet sich also nicht zur Objekterken-nung.

Wie auch der Finite-Resolution Aspect Graph wurde das Visibility Skeleton vollständigimplementiert und wird in Kapitel 3 näher betrachtet.

3D Visibility Complex

Der 3D Visibility Complex [3] ist eine im Jahr 1996 ebenfalls von Frédo Durand, GeorgeDrettakis und Claude Puech vorgestellte Datenstruktur die, ebenso wie das Visibility Skele-ton, alle globalen Sichtbarkeitsinformationen einer 3D Szene enthält. Die nulldimensionalenund eindimensionalen Elemente des 3D Visibility Complex1, sind die gleichen wie die desVisibility Skeletons (Hierdurch erklärt sich auch der Name Visibility Skeleton: Das VisibilitySkeleton ist gewissermaßen das Skelett des 3D Visibility Komplex). Darüber hinaus enthältder 3D Visibility Complex Elemente mit zwei, drei und vier Dimensionen. Diese höher di-mensionalen Elemente können für einige spezifische Berechnungen, z.B. zur Berechnung vonAspekten oder dynamische Updates, verwendet werden. Darüber hinaus macht die Verwen-dung des 3D Visibility Complex für spezielle Szenen Sinn, in denen Gitter hintereinanderausgerichtet und leicht gedreht sind (also viele Sichtbarkeitswechsel vorliegen).

Im Gegensatz zum Visibility Skeleton ist der 3D Visibiliy Complex kompliziert zu im-plementieren und zu verwenden, da eine vierdimensionale Aufteilung der 3D Szene kon-struiert werden muss. Tatsächlich wurden die in [3] vorgestellten Konzepte zum Zeitpunkt

1 Diese Elemente werden ausführlich in Abschnitt 3.1 vorgestellt

Page 281: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Approximationen und Alternativen für Aspektgraphen 273

der Veröffentlichung noch nicht implementiert. Aus diesem Grund wird auch der 3D Visi-bility Complex mit Bezug zu praxisrelevanten Arbeiten in dieser Ausarbeitung nicht näherbetrachtet.

1.3 Zusammenfassung

Es gibt sowohl eine Reihe von Approximationen für Aspektgraphen, als auch alternativeVerfahren, die sich auf eine etwas andere Art und Weise dem Problem der globalen Sicht-barkeit nähern. Wirkliche Praxisrelevanz haben von den vorgestellten Ansätzen aber nurAspektgraphen mit endlicher Auflösung (Finite-Resolution Aspect Graphs) und das Visibi-lity Skeleton. Aus diesem Grund werden diese beiden Arbeiten in dieser Ausarbeitung näherbetrachtet.

2 Finite-Resolution Aspect Graphs

Der Finite-Resolution Aspect Graph wurde 1997 von Shimshoni und Ponce in [11] vorgestelltund ist ein Aspektgraph für den Fall einer orthografischen Projektion, dem ein Bildbereichmit endlicher Auflösung zugrunde liegt. Mit dem Finite-Resolution Aspect Graph sollen diefolgenden beiden Probleme gelöst werden:

1. Ein wesentliches Problem von Aspektgraphen ist ihre Komplexität: Für eine Szene mit nPolygonen besitzt ein Aspektgraph unter Annahme einer orthografischen Projektion eineGröße von O(n6) (vgl. [8]). Aus diesem Grund können Aspektgraphen mit unendlicherAuflösung nur bei sehr einfachen Objekten verwendet werden. Die Idee ist, durch An-nahme einer Kamera mit endlicher Auflösung einen Aspektgraphen mit relativ geringerKomplexität zu erhalten.

2. In einem klassischen Aspektgraphen mit unendlicher Auflösung werden keine Aspektegespeichert, die exakt an einem Sichtbarkeitswechsel auftreten, da diese Bereiche in derTheorie im VSP unendlich klein sind. In der Praxis treten diese Situationen allerdingshäufig auf, da unterschiedliche Details eines Objekts aufgrund einer realen Kamera mitendlicher Auflösung im Bildbereich häufig verwaschen. Abbildung 3 zeigt hierfür einBeispiel.

Die grundsätzliche Idee ist, Aspekte dahingehend zu vereinfachen, dass unterschiedlicheDetails (z.B. Vertexe, Kanten, etc.), die im Bildraum weniger als um den Schwellenwert εvoneinander entfernt sind, vereinigt werden (vgl. Abbildung 3). Die Hoffnung liegt in derEntstehung eines Aspektgraphen mit relativ geringer Komplexität. Hierzu ist es notwendig,einige Besonderheiten bzgl. der Sichtbarkeitswechsel zu betrachten, wie wir im nächstenAbschnitt sehen werden.

< ε

Abb. 3. Links: Aspekt eines Objekts unter Annahme unendlicher Auflösung. Rechts: Der gleiche Aspektunter Annahme endlicher Auflösung.

Page 282: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

274 David Schmelter

Die Autoren stellen in [11] einen vollständig implementierten Algorithmus zur Konstruk-tion des Finite-Resolution Aspect Graphs vor. Die Konstruktion erfolgt im Wesentlichenmit den folgenden Schritten:

1. Zunächst werden die kritischen Kurven (engl.: critical curves, vgl. [11]) berechnet, dieaufgrund von Sichtbarkeitswechseln bei Annahme einer orthografischen Projektion ent-stehen. Diese Sichtbarkeitswechsel unterscheiden sich von denen klassischer Aspektgra-phen, wie wir im folgenden Abschnitt sehen werden.

2. Im Anschluss daran werden die Schnittpunkte dieser kritischen Kurven berechnet.3. Die kritischen Kurven und ihre Schnittpunkte werden im nächsten Schritt als Eingabe für

einen Plane-Sweep Algorithmus benötigt, der den Sichtraum in nicht-kritische Regionen,also einen VSP, unterteilt. Das Resultat ist ein Aspektgraph bzw. VSP mit zunächstunendlicher Auflösung.

4. Jede dieser berechneten Regionen bzw. Aspekte wird nun vereinfacht, indem verschiede-ne Details (Vertexe, Kanten, etc.) die weniger als ε voneinander entfernt sind, vereinigtwerden.

5. Dadurch, dass die einzelnen Aspekte vereinfacht werden, kann es passieren, dass adja-zente Aspekte isomorph sind. Aus diesem Grund ist es notwendig, in einem dritten undletzten Schritt isomorphe Aspekte zu vereinigen.

Wir werden sehen, dass der entstandene Finite-Resolution Aspect Graph eine geringereGröße als sein Pendant mit unendlicher Auflösung haben kann. Das große Problem ist aller-dings, dass der Konstruktionsaufwand bereits für sehr einfache Objekte unter Umständenderart groß ist, dass die Konstruktion eines Aspektgraphen mit endlicher Auflösung nichtimmer möglich ist.

Im nächsten Abschnitt werden zunächst einige Grundlagen erläutert, die zum Verständ-nis des Algorithmus erforderlich sind. Hierzu gehören insbesondere einige Besonderheitenbzgl. der Sichtbarkeitswechsel, die bei Annahme einer Kamera mit endlicher Auflösung be-achtet werden müssen.

2.1 Grundlagen

In diesem Abschnitt werden einige Grundlagen, insbesondere zu Sichtbarkeitswechseln imFalle endlicher Auflösung, vermittelt. Insgesamt werden bei einer orthografischen Projektionunter Annahme endlicher Auflösung drei Arten von Sichtbarkeitswechseln unterschieden:VV, EV und EEE Sichtbarkeits-Ereignisse. Diese Ereignisse unterscheiden sich von denenim Falle unendlicher Auflösung, vereinfacht gesagt führen sie zu zusätzlichen kritischenKurven im Sichtraum.

Dies wird am Beispiel eines VV Sichtbarkeitswechsels verdeutlicht. Ein VV Ereignistritt ein, sobald zwei Vertexe p und q exakt um den Wert ε voneinander entfernt sind(siehe Abbildung 4 (a)). Diese Bedingung führt zu exakt zwei gegenüberliegenden kritischenKreisen im Sichtraum (vgl. Abbildung 4 (b)).

Zur späteren Berechnung des VSPs ist eine explizite Darstellung dieser kritischen Kreiseerforderlich. Am Beispiel des VV Sichtbarkeitswechsels wird diese Darstellung exemplarischbetrachtet: Sei v die Blickrichtung des Betrachters und p sowie q = p+u1 die beiden Vertexe,die ein VV Ereignis hervorrufen. Das Ereignis tritt genau dann ein, wenn θ = arcsin( ε

|u1|)gilt. In diesem Fall ist der erste kritische Kreis, abhängig vom Winkel α, durch v(α) =

Page 283: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Approximationen und Alternativen für Aspektgraphen 275

ε

p

q

α

p q=p+u1u1

v u2

u3

d

θ

(b)(a)

(c)

pq

Abb. 4. VV Sichtbarkeitswechsel unter Annahme endlicher Auflösung

u1+d(cos αu2+sin αu3), α ∈ [0, 2π] gegeben (vgl. Abbildung 4 (c)), mit d = |u1| tan θ. u1, u2

und u3 bilden eine orthonormale Basis des R3. Der entgegengesetzte Kreis ist entsprechenddurch −v(α) gegeben.

Ähnliche kritische Kurven existieren für VE und EEE Ereignisse. Abbildung 5 (a) zeigtein Beispiel für ein VE Ereignis unter Annahme endlicher Auflösung. Der Sichtbarkeits-wechsel tritt ein, sobald der Vertex v auf dem abgerundeten Rechteck liegt, das die Kante ein einem Abstand von ε umschließt. (b) zeigt ein Beispiel für ein EEE Ereignis. Es tritt ein,wenn der Abstand der beiden Schnittpunkte zwischen den Kanten e1 und e3 sowie e2 unde3 exakt ε beträgt. In [11] werden, ähnlich zu VV Sichtbarkeitswechseln, explizite Darstel-lungen der entsprechenden kritischen Kurven für VE und EEE Ereignisse eingeführt. Aufeine detaillierte Beschreibung dieser Darstellungen wird aus Gründen der Übersichtlichkeitan dieser Stelle verzichtet.

ε

ε ε

(b)(a)

e1

e2

e3

v

e

Abb. 5. Beispiele für Sichtbarkeitswechsel unter Annahme endlicher Auflösung. (a) VE Ereignis (b) EEEEreignis

Page 284: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

276 David Schmelter

2.2 Konstruktion des Finite-Resolution Aspect Graphs

In diesem Abschnitt wird die Konstruktion des Finite-Resolution Aspect Graphs am Bei-spiel des in Abbildung 6 (a) dargestellten L-förmigen Objekts betrachtet. (c) zeigt die durchdie im vorigen Abschnitt vorgestellten Sichtbarkeitswechsel unter Annahme endlicher Auf-lösung induzierten kritischen Kurven dieses Objekts. Anstatt einer Kugel mit unendlichemRadius wird ein Würfel zur Repräsentation des Sichtraums verwendet. Dies ermöglicht dieKonstruktion eines VSPs mit Hilfe eines Plane-Sweep Algorithmus. (d) zeigt schließlich denfertigen Finite-Resolution Aspect Graph. Teil (b) der Abbildung zeigt der Vollständigkeithalber die induzierten kritischen Kurven unter Annahme unendlicher Auflösung. Hierbeifällt auf, dass im Falle endlicher Auflösung wesentlich mehr kritische Kurven existieren,was, wie wir später sehen werden, ein wesentliches Problem dieses Verfahrens ist.322 IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, VOL. 19, NO. 4, APRIL 1997

to [8]). For the finite-resolution aspect graph we have cho-sen e to be smaller than the length of edges of the object.The visual event curves of the finite-resolution aspect graphare shown in Fig. 18c. These curves bound 377 different re-gions. The aspect graph is shown in Fig. 18d: Adjacent re-gions yielding the same aspect have been merged, and theresulting 117 regions are shown in different shades of gray.

Fig. 19 shows the qualitatively different aspects obtainedby making a continuous sweep across some of the regionsof the aspect graph. This sweep is indicated by the blackdiagonal line in Fig. 18d. The viewing direction corre-sponding to each aspect is indicated by a small circle. Theaspects in Fig. 19 have been rendered by merging features(vertices and/or edges) which are closer than e. “Accidental”aspects now exist over a finite area of the viewing cube (e.g.,Fig. 19i). In some aspects (e.g., Figs. 19c and 19d), the aspectdoes not look like a real image of the object because the finite-resolution aspect is intended to convey relationships betweenedges and vertices and not the image of the object itself.

Fig. 20 shows the results obtained by running the algo-rithm on a more complex object (Fig. 20a) which yields EEEcurves. In this example the same e as has been used in theprevious example. The visual event curves of the finite-resolution aspect graph are shown in Fig. 20b. The EEE

curves are shown as heavy lines. The aspect graph shownFig. 20c contains 357 regions.

One of the main problems with aspect graphs is that asthe object gets more complex the aspect graph itself be-comes unmanageably complex. At the resolution used inFig. 18, this problem is certainly not solved by our ap-proach, since the finite-resolution aspect graph is largerthan the infinite-resolution one. As e grows larger, or objectfeatures get smaller, some of the aspect graph features dis-appear: Fig. 21 shows the finite-resolution visual eventcurves of an object and the aspect graph for which some ofthe edges are shorter than e. The aspect graph is considera-bly more simple than the previous one; in fact, the featuresdue to the short edges appearing in the infinite-resolutionaspect graph have disappeared. The aspect graph (whichcontains 74 regions) is shown in Fig. 21c. The aspect graph inFig. 21c is definitely simpler than the one shown in Fig. 18d.

A more dramatic effect of the simplification power of thealgorithm is shown in Fig. 22. The object shown in Fig. 22aconsists of three connected orthogonal “legs.” At the reso-lution at which we computed the finite-resolution aspectgraph, the legs simplify to lines (Fig. 22b). The infinite-resolution aspect graph shown in Fig. 22c contains 120 re-gions. The finite-resolution visual event curves shown inFig. 22d bound 5,060 regions, however after merging re-

(a) (b) (c) (d)

Fig. 18. An L-shaped object and its aspect graph. (a) The object. (b) The infinite-resolution visual event curves. (c) The finite-resolution visualevent curves. (d) The finite-resolution aspect graph.

Fig. 19. A series of aspects obtained by sweeping through adjacent views in the aspect graph.

Abb. 6. Beispielszene: (a) L-förmiges Objekt (b) die entsprechenden kritischen Kurven im Falle unendlicherAuflösung (c) kritische Kurven im Falle endlicher Auflösung (d) Aspektgraph mit endlicher Auflösung.Quelle: [11]

Berechnung der kritischen Kurven und ihrer Schnittpunkte

Mit Hilfe der in Abschnitt 2.1 vorgestellten parametrisierten Darstellung der VV, VE undEEE Sichtbarkeitswechsel werden zunächst die kritischen Kurven und ihre Schnittpunkteberechnet. Die Berechnung der Schnittpunkte erfolgt mittels homotopischer Fortsetzung[7]. Abbildung 6 (c) zeigt eine Projektion der kritischen Kurven für das in (a) dargestellteObjekt.

VSP Konstruktion mit Plane-Sweep Algorithmus

Die zuvor berechneten kritischen Kurven und ihre Schnittpunkte dienen als Eingabe füreinen Plane-Sweep Algorithmus. Abbildung 7 dient zur Illustration und zeigt ein einfachesBeispiel für eine Seite des Würfels, der den Sichtraum repräsentiert: Dargestellt sind dreikritische Kurven in Form von durchgezogenen, schwarzen Linien. Die Schnittpunkte die-ser Kurven sind grün hervorgehoben, ihre Endpunkte orange. Zusätzlich zu Schnitt- undEndpunkten sind ihre Extremal-Punkte in Bezug auf die Sweep-Richtung blau markiert.Schnitt-, End- und Extremal-Punkte werden im Folgenden als kritische Punkte bezeichnet.Die kritischen Punkte werden anhand der Sweep-Richtung und von oben nach unten sor-tiert und abgearbeitet. An jedem kritischen Punkt werden vertikale Linien zu den beiden

Page 285: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Approximationen und Alternativen für Aspektgraphen 277

entsprechenden kritischen Kurven berechnet (in der Abbildung als gepunktete vertikale Li-nien dargestellt). Zusammen mit den kritischen Kurven induzieren diese vertikalen LinienRegionen. Zwei Regionen, deren gemeinsame Grenze eine vertikale Linie ist, gehören zurgleichen nicht-kritischen Region des VSPs, repräsentieren also einen Aspekt (an dieser Stel-le noch mit unendlicher Auflösung). In Abbildung 7 sind die entsprechenden Aspekte durchunterschiedliche Grautöne hervorgehoben. Zusätzlich liefert der Plane-Sweep Algorithmuseine Blickrichtung für jede dieser Regionen. Die so berechneten nicht-kritischen Regionenbzw. Aspekte mit unendlicher Auflösung und ihre entsprechenden Blickrichtungen dienenals Eingabe für Schritt 4 des Algorithmus zur Konstruktion des Finite-Resolution AspectGraphs.

Sweep Richtung

Abb. 7. Beispiel zur Verdeutlichung des Plane-Sweep Algorithmus zur Konstruktion des VSPs mit unend-licher Auflösung

Vereinfachung der Aspekte

Im nächsten Schritt wird jeder der zuvor berechneten Aspekte vereinfacht. Hierzu wird einAspekt mit Hilfe der zuvor berechneten Blickrichtung in den Sichtraum projeziert. Details(z.B. Vertexe), die weniger als ε voneinander entfernt sind, werden vereinigt. Das Resultatdieses Schritts ist ein Aspektgraph, der Aspekte mit endlicher Auflösung enthält.

Vereinigung von isomorphen Aspekten

Unter Umständen ist es möglich, dass nach dem vorigen Schritt einige adjazente Aspekteisomorph sind. Dies kann passieren, wenn unterschiedliche Ereignisse den gleichen vereinfa-chenden Effekt auf zwei adjazente Aspekte bewirken. Abbildung 8 zeigt hierfür ein Beispiel.Auf der linken Seite der Abbildung ist zunächst ein Aspekt mit unendlicher Auflösung dar-gestellt. Die obere und untere Kante der Vertexe p und q sind weniger als ε voneinanderentfernt. Der entsprechende Aspekt mit endlicher Auflösung ist rechts dargestellt. In derMitte der Abbildung ist ein weiterer Aspekt mit unendlicher Auflösung dargestellt. In die-sem Fall sind die Vertexe p und q selbst weniger als ε voneinander entfernt, was den gleichenAspekt mit endlicher Auflösung impliziert.

Im letzten Schritt zur Konstruktion des Finite-Resolution Aspect Graphs werden da-her adjazente Aspekte, die isomorph sind, vereinigt. Das Resultat ist der fertige Finite-Resolution Aspect Graph (vgl. Abbildung 6 (d)).

Page 286: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

278 David Schmelter

Laut Shimshoni und Ponce trägt dieser letzte Schritt im Wesentlichen zur geringerenKomplexität eines Aspektgraphen mit endlicher Auflösung gegenüber einem Aspektgraphenmit unendlicher Auflösung bei.

q

p

q

p<ε <ε

Abb. 8. Unterschiedliche Ereignisse bewirken auf zwei adjazente Aspekte den gleichen vereinfachendenEffekt. Quelle: [11]

Laufzeit und Komplexität

Für eine Szene mit n Polygonen wird die Größe des Finite-Resolution Aspect Graphs in [11]mit O(n8) angegeben. Der Konstruktionsaufwand für einen Aspektgraphen der Größe m,der im Wesentlichen durch den letzten Schritt, also die Vereinigung isomorpher, adjazenterAspekte entsteht, beträgt O(m · n4), insgesamt also O(n12) (vgl. [9]).

2.3 Anwendungen

In diesem Abschnitt werden einige Beispielszenen vorgestellt und diskutiert, die in [11]untersucht wurden.

Die erste Szene haben wir in Abbildung 6 bereits kennen gelernt. Das erste wesentlicheZiel von Shimshoni und Ponce war es, die Komplexität von klassischen Aspektgraphen inden Griff zu bekommen. Für die in Abbildung 6 verwendete Szene und Auflösung konntedieses Problem nicht gelöst werden, der entstandene Finite-Resolution Aspect Graph istkomplexer als sein klassisches Gegenstück.

Abbildung 9 zeigt eine weitere Beispielszene mit einem Objekt, das aus drei orthogona-len „Streben“ besteht. In diesem Fall wurde die Auflösung so gewählt, dass sich der Aspektdes dargestellten Objekts zu drei Linien vereinfacht (vgl. (b)). Der in (c) gezeigte klassischeAspektgraph besteht aus 120 Regionen. Für den Fall endlicher Auflösung existieren 5060Regionen, die in (d) dargestellt sind. Nachdem adjazente, isomorphe Aspekte vereinigt wur-den, ergibt sich der in (e) dargestellt Finite-Resolution Aspect Graph, der aus lediglich 20Regionen besteht.324 IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, VOL. 19, NO. 4, APRIL 1997

(a) (b) (c) (d) (e)

Fig. 22. An object consisting of three orthogonal legs and its aspect graph. (a) The object. (b) Its finite-resolution aspect. (c) The infinite-resolutionvisual event curves. (d) The finite-resolution visual event curves. (e) The finite-resolution aspect graph.

(a) (b) (c)

(d) (e)

Fig. 23. All qualitatively different finite-resolution aspects of an object consisting of three orthogonal legs. (a) All three legs are visible in the finite-resolution aspect. (b) One of the legs is foreshortened to a point in the finite-resolution aspect. (c) Two legs appear as one line in the finite-resolution aspect. (d) Two legs are close to each other but the width of the combined feature is more than e and therefore they appear as a regionin the finite-resolution aspect. (e) One of the legs is close to the other two legs but they are not close to each other causing all three of them toappear as a region in the finite-resolution aspect.

(a) (b)

Fig. 24. A very non-convex object and its infinite-resolution visual event curves. (a) The object. (b) The infinite-resolution visual event curves.

Abb. 9. Eine weitere Beispielszene. Quelle: [11]

Page 287: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Approximationen und Alternativen für Aspektgraphen 279

Abbildung 10 (a) zeigt eine Szene mit einem einfachen nicht konvexen Objekt, (b) diekritischen Kurven bei unendlicher Auflösung. In diesem Fall war es aufgrund des hohenKonstruktionsaufwands nicht möglich, die für den Algorithmus zur Erstellung des Finite-Resolution Aspect Graphs benötigten kritischen Kurven unter Annahme endlicher Auflö-sung zu generieren. Dieses Beispiel verdeutlicht das wesentliche Problem an diesem Ansatz:Die Komplexität eines Finite-Resolution Aspect Graphs mag in der Tat geringer sein alsdie seines klassischen Gegenstücks. Die Kosten zur Berechnung sind unter Umständen aberbereits für Szenen mit wenigen Polygonen derart hoch, dass ein Aspektgraph mit endlicherAuflösung erst gar nicht generiert werden kann.

324 IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, VOL. 19, NO. 4, APRIL 1997

(a) (b) (c) (d) (e)

Fig. 22. An object consisting of three orthogonal legs and its aspect graph. (a) The object. (b) Its finite-resolution aspect. (c) The infinite-resolutionvisual event curves. (d) The finite-resolution visual event curves. (e) The finite-resolution aspect graph.

(a) (b) (c)

(d) (e)

Fig. 23. All qualitatively different finite-resolution aspects of an object consisting of three orthogonal legs. (a) All three legs are visible in the finite-resolution aspect. (b) One of the legs is foreshortened to a point in the finite-resolution aspect. (c) Two legs appear as one line in the finite-resolution aspect. (d) Two legs are close to each other but the width of the combined feature is more than e and therefore they appear as a regionin the finite-resolution aspect. (e) One of the legs is close to the other two legs but they are not close to each other causing all three of them toappear as a region in the finite-resolution aspect.

(a) (b)

Fig. 24. A very non-convex object and its infinite-resolution visual event curves. (a) The object. (b) The infinite-resolution visual event curves.Abb. 10. Beispielszene mit einem nicht konvexen Objekt. Quelle: [11]

2.4 Zusammenfassung

Das wesentliche Problem von klassischen Aspektgraphen ist ihre Größe, die eine praktischeVerwendung unmöglich macht. Mit dem Finite-Resolution Aspect Graph existiert eine Ap-proximation, die dieses Problem teilweise löst. Das Problem bei dem Ansatz von Shimonshiund Ponce liegt allerdings in der aufwendigen Konstruktion, die bereits für relativ einfacheSzenen fehlschlägt (vgl. Abbildung 10).

3 Visibility Skeleton

Das Visibility Skeleton ist eine im Jahr 1997 von Frédo Durand, George Drettakis undClaude Puech vorgestellte Datenstruktur, die exakte globale Sichtbarkeitsinformationen ei-ner 3D Szene enthält. Verschiedene Verfahren, die Informationen über globale Sichtbarkeitenbenötigen (z.B. Verfahren zum Occlusion Culling oder globale Beleuchtungsverfahren wieRadiosity) können diese Informationen effizient über das Visibility Skeleton abfragen. Dadas Visibility Skeleton für unterschiedliche Anwendungen genutzt werden kann, wird esvon den Autoren auch als multi-purpose Tool beworben. Es zeichnet sich im Gegensatzzu klassischen Aspektgraphen durch eine gewisse Praxisrelevanz aus: In [5] wird gezeigt,dass die Komplexität des Visibility Skeletons für Testszenen mit etwas über 1000 Polygo-nen beherrschbar bleibt, sowohl was die Konstruktionszeit als auch die Größe des VisibilitySkeletons angeht.

Page 288: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

280 David Schmelter

Um Informationen über globale Sichtbarkeiten effizient abfragen zu können, werden imVisibility Skeleton alle Sichtbarkeitswechsel einer 3D Szene gespeichert. Ein Sichtbarkeits-wechsel (auch Line Swath) ist über eine dreidimensionale Fläche definiert, die durch exaktdrei Polygonkanten gebildet wird (man spricht hier auch von Generator-Kanten). Die direkteKonstruktion dieser Sichtbarkeitswechsel ist allerdings sehr aufwendig. Aus diesem Grundbetrachtet man Schnitte von Line Swaths, also Linien im dreidimensionalen Raum. DieseLinien werden maximal freie Liniensegmente oder auch MFLs (engl. Extremal Stabbing Li-ne) genannt und sind durch exakt vier Generator-Kanten definiert. Das Visibility Skeletoneiner 3D-Szene ist ein aus diesen maximal freien Liniensegmenten und Sichtbarkeitswechselnaufgebauter Graph.

Zum besseren Verständnis werden die zentralen Elemente des Visibility Skeletons - ma-ximal freie Liniensegmente und Sichtbarkeitswechsel - im Folgenden anhand von einigenBeispielen verdeutlicht um im Anschluss daran zu einer präzisen Definition dieser zentralenElemente und des Visibility Skeletons zu kommen.

3.1 Grundlagen

Abbildung 11 zeigt ein Beispiel für einen sogenannten EV Sichtbarkeitswechsel. Bewegt sichder Standpunkt des Betrachters von links nach rechts (verdeutlicht durch den oberen Teilder Abbildung), erscheint der Vertex v nicht länger über dem Boden, sondern über einemPolygon, das von der Kante e begrenzt wird. Es tritt also eine Änderung in der Topologieder Sichtbarkeit ein. Die Topologie ändert sich im Beispiel immer dann, wenn v und e aufeiner Sichtlinie des Betrachters liegen. Die Menge aller Sichtlinien, die v und e schneiden,bildet den in der Abbildung blau dargestellten ev Line Swath mit einem Freiheitsgrad überdie Kante e. ev ist also eine eindimensionale Fläche2 (auch: 1D Element), die durch dreiGenerator-Kanten gebildet wird: Die beiden Polygonkanten des Vertex v und die Kante e.

Abbildung 12 zeigt einen Sichtbarkeitswechsel, der aus drei unabhängigen Generator-Kanten gebildet wird, also einen EEE Line Swath. Wie zu erkennen ist, ist die durch einenSichtbarkeitswechsel gebildete Fläche nicht notwendigerweise eben.

v

e

ev

Abb. 11. EV Line Swath. Quelle:[5]

e1

e2

e3

e1e2e3

Abb. 12. EEE Line Swath. Quelle:[5]

2 Die Dimension bezieht sich hierbei auf den Freiheitsgrad über die Kante e

Page 289: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Approximationen und Alternativen für Aspektgraphen 281

Neben EV und EEE Line Swaths können noch Fv (für Face Vertex) und Fe (für FaceEdge) Sichtbarkeitswechsel unterschieden werden. Tabelle 1 gibt eine Übersicht über dieunterschiedlichen Ausprägungen von Sichtbarkeitswechseln und ihrer Generator-Elemente.

Bezeichnung Generator-Elemente ErläuterungEV Eine Kante, ein Ver-

texEin Vertex wird durch zwei Kanten definiert(siehe Abbildung 11)

EEE Drei Kanten Entspricht der Definition eines Sichtbarkeits-wechsels (siehe Abbildung 12)

Fv Ein Polygon (Face),ein Vertex

Ein Polygon wird durch mind. zwei Kantendefiniert, der entsprechende Vertex dieses Po-lygons durch eine weitere Kante.

Fe Eine Polygon, eineKante

Ähnlich zu Fv: Ein Polygon wird durch mind.zwei Kanten definiert, die dritte Kante stammtvon einem anderen Polygon.

Tabelle 1. Übersicht der möglichen Sichtbarkeitswechsel (nach [10])

Abbildung 13 zeigt ein Beispiel für ein VEE MFL. e1e2v (in der Abbildung rot dar-gestellt) wird durch den Schnitt der beiden EV Line Swaths e1v und e2v gebildet, alsoinsgesamt durch vier Generator-Kanten (e1e2v ist somit zu e1v und e2v adjazent). Ein MFList somit eindeutig definiert und besitzt keinen Freiheitsgrad. Es besitzt also keine Dimen-sionen und wird im Folgenden als 0D Element bezeichnet.

Abbildung 14 zeigt ein E4 MFL, das durch die vier voneinander unabhängigen Kantene1, e2, e3 und e4 gebildet wird.

v

e1

e2

e1ve

2v

e1e2v

Abb. 13. VEE Extremal StabbingLine. Quelle: [5]

e1

e2

e3

e4

Abb. 14. E4 Extremal StabbingLine. Quelle: [5]

Neben VEE und E4 Extremal Stabbing Lines existieren noch eine Reihe weiterer Aus-prägungen. Tabelle 2 gibt eine Übersicht über die möglichen Ausprägungen von maximalfreien Liniensegmenten und ihrer Generator-Elemente.

Das Visibility Skeleton ist ein durch MFLs und Line Swaths aufgebauter Graph. DieKnoten dieses Graphen sind die maximal freien Liniensegmente. Eine Kante im Graphen istein Sichtbarkeitswechsel, der adjazent zu den beiden entsprechenden Knoten ist. Abbildung15 zeigt zur Verdeutlichung einen Ausschnitt des Visibility Skeletons für das bereits ausAbbildung 13 bekannte Beispiel mit dem MFL e1e2v. Teil (a) der Grafik zeigt den Knoten

Page 290: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

282 David Schmelter

Bezeichnung Generator-Elemente ErläuterungVV zwei Vertexe, die

nicht zum selbenPolygon gehören

Ein Vertex wird durch jeweils zwei Kanten de-finiert

VEE ein Vertex, zwei Kan-ten

Vgl. Abbildung 13

EVE ein Vertex, zwei Kan-ten

Analog zu VEE, allerdings schneidet das MFLdie Generator Kanten in der Reihenfolge EVE

Fvv zwei Vertexe einesPolygons, die keinegemeinsame Kantebesitzen

Das MFL ist eine Diagonale des Polygons

FvE ein Vertex eines Poly-gons und eine Kante,die die Ebene des Po-lygons schneidet

MFL liegt in der Ebene des Polygons undschneidet ein Vertex des Polygons sowie eineKante

FEE 1 Polygon und zweiKanten, die dieEbene des Polygonsschneiden

MFL liegt in der Ebene des Polygons undschneidet zwei Kanten

EFE 1 Polygon und zweiKanten, die dieEbene des Polygonsschneiden

Analog zu FEE, allerdings schneidet das MFLdie Generator Kanten in der Reihenfolge EFE

FF zwei Polygone, wobeisich die Ebenen derPolygone gegenseitigschneiden

Das MFL ist die durch die Ebenen der beidenPolygone gebildete Schnittgerade

E4 vier Kanten Vgl. Abbildung 14

Tabelle 2. Übersicht der möglichen maximal freien Liniensegmente (nach [10])

e1e2v des Visibility Skeletons, der dem MFL e1e2v entspricht. Er ist adjazent zu den Kantene1v und e2v, die den zu dem MFL adjazenten Sichtbarkeitswechseln e1v und e2v entsprechen.Der Übersichtlichkeit halber sind nicht alle adjazenten Sichtbarkeitswechsel dargestellt. Teil(b) zeigt den Knoten e1e2v mit den vollständigen adjazenten Sichtbarkeitswechseln:

• e′1v entsteht durch die Sichtlinien, die auf das durch die Kante e2 begrenzte Polygontreffen.

• e3e1e2 und e4e1e2 sind die durch die Generator Kanten e1 und e2 sowie e3 bzw. e4

induzierten Sichtbarkeitswechsel.

Bisher wurde lediglich die Konstruktion von Sichtbarkeitswechseln beschrieben. Die ei-gentlich wichtigste Information, nämlich die Sichtbarkeit welcher Extremal-Elemente durcheinen Sichtbarkeitswechsel beschrieben wird, wurde noch nicht betrachtet. Abbildung 16verdeutlicht, was unter einem Extremal-Element verstanden wird. Dargestellt sind die bei-den rot hervorgehobenen MFLs Nstart und Nend. Nstart ist durch die Generator-Elemente v,e1 und e3 definiert, Nend durch v, e1 und e2. Die beiden MFLs definieren somit den Sichtbar-keitswechsel ve1. Die Extremal-Elemente eines Sichtbarkeitswechsel sind die Elemente einerSzene, die als nächstes „vor“ der ersten bzw. als nächstes „hinter“ der letzten Generator-Kante geschnitten werden. Im Beispiel sind dies für den Sichtbarkeitswechsel ve1 also diePolygone Fup und Fdown. Da Sichtbarkeitswechsel durch MFLs begrenzt werden, können

Page 291: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Approximationen und Alternativen für Aspektgraphen 283

v

e1

e2

e1ve

2v

e1e2v

e1e2ve1v

e2v

(a) (b)

v

e1

e2 e

1v

e2v e

1e2v

e1'v

e4e1e2

e3e1e2

e1e2ve1v

e2v

e1'v

e4 e1 e2

e 3e1e 2

e3

e4

Abb. 15. (a) Das Beispiel aus Abbildung 13 mit entsprechendem Knoten des Visibility Skeletons (Sicht-barkeitswechsel unvollständig). (b) Das gleiche Beispiel mit vollständigen Sichtbarkeitswechseln. Nach [5]

die Extremal-Elemente eines Sichtbarkeitswechsel direkt aus den Extremal-Elementen derbegrenzenden MFLs abgelesen werden. Dadurch, dass MFLs Linien im dreidimensionalenRaum sind, ist die Berechnung ihrer Extremal-Elemente leicht mit Ray-Casting Verfahrenmöglich.

v

e1

e2

Fup

Fdown

Nstart

Nend

e3

Abb. 16. Extremal-Elemente Fup und Fdown der MFLs Nstart und Nend. Quelle: [5]

Aus diesen Überlegungen folgt die grundsätzliche Idee des Visibility Skeletons: DurchBerechnung aller MFLs inkl. ihrer Extremal-Elemente und Zuordnung der adjazenten Sicht-barkeitswechsel können alle Sichtbarkeitsbeziehungen in einer 3D-Szene mit Hilfe einer Gra-phstruktur beschrieben werden.

3.2 Definitionen

Nachdem eine kurze Übersicht über den Aufbau des Visibility Skeletons und seiner Bau-steine (maximal freie Liniensegmente und Sichtbarkeitswechsel) gegeben wurde, werden diefolgenden Definitionen deutlich:

Page 292: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

284 David Schmelter

Definition 1 (Maximal freies Liniensegment). Gegeben seien vier Polygonkanten e1

bis e4. Ein maximal freies Liniensegment ist definiert als die Linie, die jede dieser VierKanten schneidet.

Ein maximal freies Liniensegment ist somit eine Linie ohne Freiheitsgrade, also ein Ele-ment mit 0 Dimensionen (auch 0D Element).

Definition 2 (Sichtbarkeitswechsel). Gegeben sei ein maximal freies Liniensegment l.Ein Sichtbarkeitswechsel ist definiert durch die Oberfläche, die durch die Menge aller Schnitt-linien dreier Polygonkanten ei von l aufgespannt wird, sofern die Schnittbedingung exakteiner Kante von l aufgehoben ist.

Ein Sichtbarkeitswechsel ist also durch eine Oberfläche mit einem Freiheitsgrad über eineKante eines maximal freien Liniensegments definiert. Er besitzt somit einen Freiheitsgrad,entspricht also einem Element mit 1 Dimension (auch 1D Element).

Definition 3 (Visibility Skeleton). Das Visibility Skeleton ist ein ungerichteter Graph.Die Knoten dieses Graphen entsprechen maximal freien Liniensegmenten, eine Kante zwi-schen zwei Knoten entspricht einem zu beiden Knoten adjazenten Sichtbarkeitswechsel.

3.3 Datenstruktur des Visibility Skeletons

Nachdem Sichtbarkeitswechsel und maximal freie Liniensegmente im Kontext des VisibilitySkeletons definiert wurden, werden Ausschnitte einer möglichen (vereinfachten) Datenstruk-tur zur Implementierung des Visibility Skeletons betrachtet.

Listing 1 zeigt die Klasse Node, die einen Knoten im Graphen des Visibility Skeletonsdarstellt und einem MFL entspricht. In einem Knoten werden die folgenden Informatio-nen gespeichert: Eine Liste der zu diesem MFL adjazenten Sichtbarkeitswechsel (ParamteradjacentArcs) sowie die beiden Extremal-Elemente, die dieses MFL begrenzen (ParameterFup und Fdown).

Listing 2 zeigt die Klasse Arc, die eine Kante im Visibility Skeleton repräsentiert undeinem Sichtbarkeitswechsel entspricht. In einer Kante werden die folgenden Informationengespeichert: Der Start- und Endknoten, also die beiden MFLs, die diesen Sichtbarkeitswech-sel begrenzen (Parameter Nstart und Nend) sowie wiederum die beiden Extremal-Elementedieses Sichtbarkeitswechsels (Parameter Fup und Fdown, vgl. auch Abbildung 16).

Für jede Ausprägung von Sichtbarkeitswechseln (EV, EEE, Fv und Fe) existieren entspre-chende Klassen, die die Klasse Arc erweitern. Listing 3 zeigt ein Beispiel für einen EV Sicht-barkeitswechsel. Zusätzlich zu den Start- und Endknoten sowie den Extremal-Elementenwerden in der Klasse EV die Generator-Elemente des Sichtbarkeitswechsels gespeichert, imBeispiel also die Kante e und der Vertex v.

Listing 4 zeigt die Klasse V isibilitySkeleton, die das eigentliche Visibility Skeleton re-präsentiert. Für jede Ausprägung von Sichtbarkeitswechseln (EV, EEE, Fv und Fe) existiertein zweidiemensionales Array von binären Suchbäumen. Im Beispiel sind die beiden Arraysfür EV und EEE Sichtbarkeitswechsel dargestellt. Das Array eines Sichtbarkeitswechselswird über die beiden Extremal-Elemente indiziert. Somit existiert für jede Kombinationvon Extremal-Elementen genau ein binärer Suchbaum. Auf diese Art und Weise sind dieSichtbarkeitsinformationen einer 3D Szene für eine Kombination von Extremal-Elementeneffizient abrufbar.

Page 293: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Approximationen und Alternativen für Aspektgraphen 285

1 c l a s s Node 2 List<Arcs> adjacentArcs3 Face Fup , Fdown4

Listing 1. Klasse Node

1 c l a s s Arc 2 Node Nstart , Nend3 Face Fup , Fdown4

Listing 2. Klasse Arc

1 c l a s s EV : ch i l d o f Arc 2 Edge e3 Vertex v4

Listing 3. Klasse EV

1 c l a s s V i s i b i l i t y S k e l e t o n 2 t ree<EV>ev [ Fup ] [ Fdown ]3 t ree<EEE>eee [ Fup ] [ Fdown ]4 . . .5

Listing 4. Klasse VisibilitySkele-ton

3.4 Konstruktion des Visibility Skeletons

Nachdem das Visibility Skeleton und seine Elemente definiert und eine Datenstruktur vor-gestellt wurde, wird seine Konstruktion betrachtet. Algorithmus 29 verdeutlicht die prinzi-pielle Konstruktion. Der Algorithmus ist anhand von Definition 1 aufgebaut und betrachtetder Übersichtlichkeit halber keine Sonderfälle wie VV, VEE o.a. MFLs. Die Konstruktionist prinzipiell einfach: In einer äußeren Schleife werden zunächst alle Knoten des VisibilitySkeletons erzeugt. Für jede Kombination G von vier Kanten der Szene wird überprüft, obdiese Kanten ein gültiges MFL bilden (Zeilen 1 und 2). Vier Kanten bilden ein gültigesMFL, wenn eine Linie l exisitiert, die diese Kanten schneidet und l zwischen der ersten undletzten Kante keine weiteren Elemente der Szene schneidet. Diese Überprüfung kann durcheinfache Ray-Casting Abfragen erfolgen. Wurde ein gültiges MFL gefunden, werden die ent-sprechenden Extremal-Elemente berechnet und ein neuer Knoten in das Visibility Skeletoneingefügt (Zeilen 3 und 4). Die Erzeugung aller adjazenten Sichtbarkeitswechsel eines MFLsL erfolgt direkt nach dessen Erzeugung (Zeile 5): Für jede dreielementige Teilmenge A ⊂ L,die einen zu L adjazenten Sichtbarkeitswechsel definiert, wird überprüft, ob im VisibilitySkeleton bereits ein Sichtbarkeitswechsel A′ mit den gleichen Extremal-Elemente wie A vor-handen ist (Zeile 6). Ist dies der Fall, wird der bestehende Sichtbarkeitswechsel A′ mit Averschmolzen (Zeile 7). Ansonsten wird eine neue Kante in das Visibility Skeleton eingefügt(Zeile 9).

Algorithmus 29 Konstruktion des Visibility Skeletons1: for all Kombinationen von Generator-Kanten G = g0, g1, g2, g3 do2: if G bildet ein gültiges maximal freies Liniensegment L then3: Berechne Extremal-Elemente von L4: Füge L in Visibility Skeleton ein5: for all Sichtbarkeitswechsel A = gi0, gi1, gi2 adjazent zu L do6: if Visibility Skeleton enthält Sichtbarkeitswechsel A’ mit denselben Generator-Kanten wie A

then7: Verschmelze A mit A’8: else9: Füge A in das Visibility Skeleton ein

Page 294: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

286 David Schmelter

Abbildung 17 veranschaulicht die Konstruktion an einem Beispiel. In einem ersten Schrittseien die Kanten der Vertexe v und ve als mögliche Generator-Kanten eines MFLs ausge-wählt worden. Diese Kanten bilden das gültige MFL vve; vve wird somit in das VisibilitySkeleton eingefügt. Ein möglicher adjazenter Sichtbarkeitswechsel ve ist durch den Vertexv und die Kante e definiert. Im Visibility Skeleton ist zu diesem Zeitpunk noch kein Sicht-barkeitswechsel mit den gleichen Generator-Kanten vorhanden. Aus diesem Grund wird veeinfach zum Visibility Skeleton hinzugefügt, das nun die Struktur wie in Abbildung 17 (a)besitzt. Die weiteren zu vve adjazenten Sichtbarkeitswechsel werden der Übersichtlichkeithalber an dieser Stelle nicht weiter betrachtet.

Als nächstes seien die Generator-Kanten des Vertex v, Polygons f und e ausgewähltworden. Diese Kanten bilden das gültige MFL fve, das somit in das Visibility Skeletoneingefügt wird. Ein möglicher adjazenter Sichtbarkeitswechsel von fve ist wiederum ve. Daim Visibility Skeleton bereits ein Sichtbarkeitswechsel enthalten ist, wird fve über ve mitvve verbunden. Das Visibility Skeleton hat nun die in Abbildung 17 (b) gezeigte Struktur.

Nun seien die Generator-Kanten des Vertex v sowie e3 und e ausgewählt worden. DieseKanten bilden das gültige MFL ve3e, das in das Visibility Skeleton eingefügt wird. Erneut istve ein zu ve3e adjazenter Sichtbarkeitswechsel. Da im Visibility Skeleton sowohl der Start-als auch der Endknoten von ve bereits gesetzt ist, wird ve gesplittet. Der Zielknoten vonvve ist zunächst undefiniert, ve verbindet die beiden MFLs ve3e und fve (vgl. Abbildung17 (c)).

Im letzten Schritt seien die Generator-Kanten des Vertex v sowie e2 und e ausgewähltworden. Diese Kanten bilden das gültige MFL ve2e. Erneut ist ve adjazent zu ve2e. ve2ewird über ve mit vve verbunden. Das Visibility Skeleton besitzt nun die in Abbildung 17(d) dargestellte Struktur.

Insgesamt können also die folgenden Operationen beim Einfügen von Sichtbarkeitswech-seln in das Visibility Skeleton unterschieden werden (Zeilen 7 und 9 in Algorithmus 29):

• Add: Ein neuer Sichtbarkeitswechsel wird in das Visibility Skeleton eingefügt (vgl. Ab-bildung 17 (a)).

• Merge: Ein bestehender Sichtbarkeitswechsel wird mit einem neuen vereinigt (vgl. Ab-bildung 17 (b)).

• Split: Ein bestehender Sichtbarkeitswechsel wird gesplittet (vgl. Abbildung 17 (c)).

Zum Schluss dieses Abschnitts wird die Laufzeit des vorgestellten Algorithmus und dieKomplexität des Visibility Skeletons untersucht.

Behauptung (Größe des Visibiliy Skeletons). Für eine Szene mit n Polygonen beträgt dietheoretische Größe des Visibility Skeletons im Worst-Case O(n4).

Beweis. Der Beweis ist recht trivial: Jedes Quadrupel von Kanten kann theoretisch eingültiges MFL bilden.

Behauptung (Konstruktionszeit des Visibiliy Skeletons). Für eine Szene mit n Polygonenbeträgt die theoretische Konstruktionszeit des Visibility Skeletons im Worst-Case O(n5).

Beweis. Auch dieser Beweis ist einfach: Es existieren O(n4) Kombinationen von Kanten, diepotentiell ein gültiges MFL bilden können. Für jede dieser Kombinationen muss überprüftwerden, ob sie eine gültige MFL bildet. Hierzu muss die gesamt Szene mittels Ray-Casting

Page 295: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Approximationen und Alternativen für Aspektgraphen 287

f

e

ve

v

e3e

2

vve

ve2e ve

3e fve

? ? ? ? ? ? ?

?? ? ? ? ? ? ?

ve ve

f

e

ve

v

e3

vve

ve3e fve

? ? ? ? ?

?? ? ? ? ?

?ve ve

f

e

ve

v

vve fve

? ? ?

?? ? ?

ve

e

ve

v

vve

?

??

?ve

(a) (b)

(c) (d)

Abb. 17. Erzeugung der Kanten des Visibility Skeletons. Quelle: [5]

Verfahren auf Verdeckungen überprüft werden. Somit ergibt sich eine Komplexität vonO(n5).

Laut Durand, Drettakis und Puech werden diese Worst-Cases allerdings nur in bestimm-ten Szenen erreicht. Für die in [5] untersuchten Testszenen ergab sich eine durchschnittlicheKonstruktionszeit von O(n2.4).

3.5 Anwendungen

Nachdem die Konstruktion des Visibiltiy Skeletons vorgestellt wurde, werden einige Anwen-dungen betrachtet, für die das Visibility Skeleton eine effiziente Datenstruktur zur Verfügungstellt.In [5] werden im Wesentlichen drei Anwendungen vorgestellt:

• Bei globalen Beleuchtungsverfahren wie Radiosity wird zur Berechnung der Form-Faktoren häufig die Information benötigt, welche Teile einer Fläche von einem bestimm-

Page 296: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

288 David Schmelter

ten Punkt einer 3D Szene aus gesehen sichtbar sind. Diese Information kann mittels demVisibility Skeleton effizient abgefragt werden.

• Eine weitere Anwendung des Visibility Skeletons ist die Berechnung von sogenanntenDiscontinuity Meshes, die zur Berechnung von Schatten und Halbschatten eingesetztwerden können. Zur Berechnung von Discontinuity Meshes ist allerdings eine kleine Er-weiterung am Visibility Skeletons nötig. Hierbei handelt es sich um das Array DM(i, j),in dem alle Sichtbarkeitswechsel zwischen zwei Polygonen fi und fj abgelegt werden. DieVerwaltung dieses Arrays ist in konstanter Zeit möglich.

• Als dritte und letzte Anwendung wird die Berechnung von exakten Blockern vorgestellt.Eine Liste von exakten Blockern enthält die exakte Menge von Objekten, die eine Flächevon einer bestimmten Betrachterposition aus gesehen verdecken. Auch zur Berechnungvon exakten Blockern wird das Array DM(i, j) verwendet.

In dieser Arbeit geht es in erster Linie darum, die vielfältigen Einsatzmöglichkeiten desVisibility Skeletons zu motivieren und weniger darum, diese Anwendungen sehr detailliert zubetrachten. Aus diesem Grund wird im Folgenden exemplarisch vorgestellt, wie mit Hilfe desVisibility Skeletons berechnet werden kann, welche Teile einer Fläche von einer bestimmtenBetrachterposition sichtbar sind. Auf Details zur Berechnung von Discontinuity Meshes oderexakten Blockerlisten wird verzichtet und auf [5] verwiesen.

Abbildung 18 zeigt hierfür ein Beispiel. (a) zeigt eine Stadtszene. Die blau umrandetenFlächen des grünen Untergrunds sind vom dem gelben Vertex des dargestellten Flugzeugsnicht sichtbar. (b) zeigt ein Zimmer. Die blau umrandeten Flächen des Fußbodens sind vomgelben Vertex der dargestellten Lampe ebenfalls nicht sichtbar.

Diese Informationen können mit dem Visibility Skeleton wie folgt berechnet werden:Um die globale Sichtbarkeit eines Vertex v in Bezug zu einer Fläche f zu bestimmen,werden zunächst alle EV Sichtbarkeitswechsel berechnet, die zu f in Beziehung stehen.Diese Abfrage kann erfolgen, indem die entsprechenden Suchbäume des Visiblity Skeletonsmit f als Extremal-Element abgefragt werden. Für jeden dieser Sichtbarkeitswechsel wirdüberprüft, ob er mit dem Vertex v in Beziehung steht. Die Menge der so erhaltenen EVSichtbarkeitswechsel sind exakt diejenigen, die die Sichtbarkeitsgrenzen von f , ausgehendvon v, definieren.

Die Abfragezeiten für die dargestellten Szenen betrugen für Abbildung 18 (a) 1.2 ms(312 Polygone) und für Abbildung 18 (b) 1.5 ms (1488 Polygone). Somit eignet sich dasVisibility Skeleton also durchaus für Echtzeitanwendungen in diesem Anwendungsbereich.

3.6 Zusammenfassung

Das Visibility Skeleton ist eine interessante Alternative zu Aspektgraphen, mit dem eineReihe von Anwendungen, die Informationen über globale Sichtbarkeiten benötigen, effizi-ent realisiert werden können. Es besticht durch seine Einfachheit: Zur Konstruktion werdennur Standard-Verfahren aus der Computergrafik, beispielsweise Ray-Casting, benötigt. DasVisibility Skeleton wurde vollständig implementiert und konnte für die in [5] untersuch-ten Testszenen trotz seiner zunächst eher schlechten Worst-Case Komplexität erfolgreicheingesetzt werden. Im Gegensatz zu klassischen Aspektgraphen ist es also auch für relativkomplexe Szenen praktisch einsetzbar.

Page 297: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

Approximationen und Alternativen für Aspektgraphen 289

(a) (b)

Abb. 18. (a) Teile des Untergrunds, die von dem gelben Vertex des Flugzeugs aus sichtbar sind (b) Teiledes Fußbodens, die von dem gelben Vertex einer Lampe aus sichtbar sind. Quelle: [5]

4 Zusammenfassung und Diskussion

In dieser Arbeit wurden sowohl Approximationen (im Wesentlichen der Finite-ResolutionAspect Graph) als auch Alternativen für Aspektgraphen (im Wesentlichen das VisibilitySkeleton) vorgestellt und untersucht.

Für den Fall einer orthografischen Projektion existiert mit dem Finite-Resolution AspectGraph eine Approximation für Aspektgraphen, die vollständig implementiert wurde. Obwohldie Größe eines Aspektgraphen mit endlicher Auflösung je nach Auflösung drastisch kleinerals im unendlichen Fall sein kann, muss die praktische Relevanz dieses Verfahrens bezweifeltwerden:

• Einerseits funktioniert das vorgestellte Verfahren nur für den Fall einer orthografischenProjektion.

• Andererseits versagt es bereits für relativ einfache Szenen aufgrund des hohen Konstruk-tionsaufwands.

Mit dem Visibility Skeleton existiert eine interessante (und vollständig implementier-te) Alternative zu Aspektgraphen, mit der eine Reihe unterschiedlicher Anfragen an eine3D Szene beantwortet werden können. Im Gegensatz zum Finite-Resolution Aspect Graphwurde gezeigt, dass es auch für nicht triviale Szenen mit mehreren tausend Polygonen er-folgreich eingesetzt werden kann. Eine Objekterkennung wie mit Aspektgraphen ist mit demVisibility Skeleton allerdings nicht möglich.

Literaturverzeichnis

1. Arie, Jezekiel Ben (1990) Probabilistic Models of Observed Features and Aspects with Application toWeighted Aspect Graphs. Pattern Recognition Letters, Volume 11, Issue 6

2. Durand, Frédo; Drettakis, George; Puech, Claude (1999) Fast and Accurate Hierarchical RadiosityUsing Global Visibility. ACM Transactions on Graphics (TOG), Volume 18, Issue 2, S. 128–170

3. Durand, Frédo; Drettakis, George; Puech, Claude (1996) The 3D visibility complex: a new approach tothe problems of accurate visibility. Proceedings of the eurographics workshop on Rendering techniques’96, S. 245–256

4. Durand, Frédo; Drettakis, George; Puech, Claude (2002) The 3D Visibility Complex. ACM Transactionson Graphics (TOG), Volume 21, Issue 2, S. 176–206

Page 298: Seminar und Proseminar - WS 2007/2008 - Perlen der ... · Seminar und Proseminar - WS 2007/2008 - Perlen der Theoretischen Informatik Friedhelm Meyer auf der Heide

290 David Schmelter

5. Durand, Frédo; Drettakis, George; Puech, Claude (1997) The Visibility Skeleton: A Powerful And Effi-cient Multi-Purpose Global Visibility Tool. SIGGRAPH ’97: Proceedings of the 24th annual conferenceon Computer graphics and interactive techniques, S. 89–100

6. Eggert, D. W.; Bowyer, K. W.; Dyer, C. R.; Christensen, H. I.; Goldgof, D. B. (1993) The Scale SpaceAspect Graph. IEEE Transactions on Pattern Analysis and Machine Intelligence, Volume 15, Issue 11,S. 1114–1130

7. Morgan, A. P. (1987) Solving Polynomial Systems Using Continuation for Scientific and EngineeringProblems. Prentice-Hall, Englewood Cliff, NJ

8. Plantinga, Harry; Dyer, Charles R. (1990) Visibility, Occlusion, and the Aspect Graph. InternationalJournal of Computer Vision, Volume 5, Issue 2, S. 137–160

9. Schiffenbauer, Robert D. (2001) A Survey of Aspect Graphs. Polytechnic University of Brooklyn10. Schröder, Axel (2003) Globale Sichtbarkeitsalgorithmen. Dissertation, Philipps-Universität Marburg11. Shimshoni, Ilan; Ponce, Jean (1997) Finite-Resolution Aspect Graphs of Polyhedral Objects. IEEE

Transactions on Pattern Analysis and Machine Intelligence, Volume 19, Issue 4, S. 315–327