Blatt 3

Werbung
Algorithmische Geometrie II, SS 06
Übungsblatt 3
Universität Bonn, Institut für Informatik I
i i = 1,...,5 bei den Aufgaben sind ein Maß für den SchwieDie Ziffern ,
1 für ’leicht’
rigkeitsgrad der jeweiligen Aufgabe bzw. Teilaufgabe, mit 5 für ’schwer’.
und Aufgabe 1:
1
Wohl-Separiertheit Beweisen oder widerlegen Sie: Zwei Punktmengen A, B sind genau dann wohl-separiert
mit Parameter s, wenn es zwei Kreise CA und CB gibt, die die in der Definition geforderten Eigenschaften erfüllen und deren Mittelpunkte mit dem Zentrum der zugehörigen Bounding-Box zusammen fallen.
Aufgabe 2:
1 4
Konstruktion des Split-Trees -
In dieser Aufgabe betrachten wir die Konstruktion des Split-Tree zu einer gegebenen
Punktmenge S ⊂ IRd . Der Algorithmus hat zu jedem Zeitpunkt d Listen der zu dem
gerade betrachteten Knoten gehörigen Punkte, die je nach einer Koordinate sortiert
sind. Die d Einträge eines Punktes sind dabei untereinander verzeigert. Am Anfang
werden diese Listen für die Wurzel in Zeit O(dn log n) erstellt.
a) Warum kann im worst-case bei einer naiven Herangehensweise der Konstruktionsalgorithmus in jedem Knoten v des Split-Trees eine Laufzeit von Ω(|Sv |)
haben, wenn Sv die zum Knoten v gehörige Punktmenge ist?
b) Geben Sie ein Beispiel, also ein System von Punktmengen (z.B. in IR1 ) jeder
Größe n ∈ IIN an, bei dem der naive Algorithmus wegen der in a) diskutierten
Schwäche eine Laufzeit in Ω(n2 ) hat!
c) Wir suchen nun in jedem Knoten nicht von links nach rechts nach der Stelle,
in der wir die zugehörige Punktliste auftrennen müssen, sondern von links und
rechts gleichzeitig. Welche Laufzeit hat das modifizierte Verfahren in einem
Knoten u des Split-Tree mit den Kindern v und w?
d) Außerdem erzeugen wir jetzt nur einen partiellen Split-Tree, d.h. einen SplitTree, bei dem jedes Blatt einer Punktmenge von ≤ n/2 Punkten entspricht,
und jedem inneren Knoten einer Punktmenge mit > n/2 Punkten zugeordnet
ist. Wir wollen den partiellen Split-Tree in Zeit O(n) konstruieren. Warum darf
dann nicht jeder Knoten eine Liste seiner Punkte enthalten?
Trotzdem soll jedes Blatt die zu seiner Punktmenge gehörigen d sortierten Listen
enthalten. Wie lange benötigt man dann, um mit Hilfe des partiellen Split-Tree
1
für einen inneren Knoten seine zugehörige Punktmenge (unsortiert) auszugeben? Ist es ein Problem für den WSPD-Algorithmus, wenn nicht jeder Knoten
des Split-Tree seine Knotenmenge direkt kennt? Was muss jeder Knoten des
Split-Tree auf jeden Fall speichern, damit der WSPD-Algorithmus funktioniert?
e) Wie genau kann man einen solchen in d) diskutierten partiellen Split-Tree in Zeit
O(dn) konstruieren? Was geschieht in jedem Schritt mit den d sortierten Listen?
Sei u der aktuell betrachtete Knoten, mit den Kindern v und w. Sei |Sv | > |Sw |.
Wie bekommen wir alle d sortierten Punktlisten für das Kind v in Zeit O(|Sw |)
und nicht in Zeit O(|Sv |)? Um auf die Laufzeit O(dn) zu kommen, dürfen wir die
Punktmengen der Blätter nicht nachsortieren. Wie kann man die d sortierten
Punktlisten für alle Blätter des partiellen Split-Trees gleichzeitig in Zeit O(dn)
bekommen?
f ) Warum können wir mit dem Verfahren aus e), das in O(dn) einen partiellen
Split-Tree berechnen kann, in O(dn log n) einen kompletten Split-Tree berechnen?
Aufgabe 3:
2
Well Separated Pair Decomposition Gegeben sei die unten zwei mal abgebildete Punktemenge in IR2 . Führen Sie den
Algorithmus aus der Vorlesung durch um eine Well Separated Pair Decomposition
(WSPD) von S zum Parameter s = 1 zu finden!
Berechnen Sie dazu zunächst den Split-Tree und zeichnen die auftretenden BoundingBoxen ein. Ermitteln Sie anschließend darauf aufbauend die WSPD. Hierbei ist zu
beachten, dass die Prozedur FindPairs(v,w) nur testet, ob die beiden Punktmengen Sv und Sw bezüglich von Kreisen, deren Mittelpunkt im Zentrum der zugehörigen
Bounding-Box liegt, wohlsepariert sind.
1)
2)
p1
p2
p3
p4
p5
p6
Aufgabe 4:
2
Packungsargument Seien zwei Zahlen 0 < l ≤ L ≤ 1 gegeben. Wie viele diskunkte achsenparallele
Boxen [a1 , b1 ] × [a2 , b2 ] × ... × [ad , bd ], mit mini |bi − ai | ≥ l und maxi |bi − ai | ≤ L
können den Hypereinheitswürfel [0, 1]d schneiden? Beweisen Sie eine möglichst gute
obere Schranke in Abhängigkeit von l, L und d!
2
Herunterladen