Musterklausur zur Vorlesung Algorithmische

Werbung
Name:
Vorname:
Matrikelnummer:
Musterklausur zur Vorlesung
Algorithmische Geometrie
Datum, 00.00.2012, Beginn: 00.00 Uhr
Dauer: 60 min
Bemerkungen:
•
Jedes Blatt ist mit Namen, Vornamen und Matrikelnummer zu versehen.
•
Jede Aufgabe ist auf dem vorgesehenen Blatt zu lösen. Reicht der dortige Platz nicht aus,
bekommen Sie auf Nachfrage zusätzliches Papier.
•
Erlaubte Hilfsmittel: Papier, Schreibzeug und ein nicht programmierbarer Taschenrechner.
Weitere Hilfsmittel sind nicht erlaubt.
•
Schalten Sie ihr Handy aus!
•
Schreiben Sie leserlich.
Punkteverteilung:
1 (6)
2 (9)
3 (4)
4 (8)
1/7
5 (6)
 33
2/7
Name:
Vorname:
Matrikelnummer:
1. Aufgabe: Konvexe Hülle ( 2 + 3 + 1 Punkte )
(a) Der Algorithmus hat an dem unten mit Pfeil markierten Eingabepunkt gestoppt. Verbinden
Sie diejenigen Punkte miteinander, die sich zu diesem Zeitpunkt in der oberen konvexen
Hülle befinden.
(b) Analysieren Sie die Komplexität des nachfolgenden Algorithmus zur Berechnung der oberen
konvexen Hülle. Nennen und begründen Sie die Komplexität einer jeden Zeile und geben
Sie die Gesamtkomplexität an.
(c) Sortieren Sie folgende Komplexitätsklassen nach aufsteigender Komplexität:
O( log n ), O( 1 ), O( n! ), O( n )
3/7
2. Aufgabe: Schnitte von Liniensegmenten ( 3 + 2 + 4 Punkte )
(a) Erklären Sie das Grundprinzip eines Sweep-Line-Algorithmus.
(b) Welche Informationen muss sich der Sweep-Line-Algorithmus zur Berechnung der Schnitte
von Liniensegmenten merken und mittels welcher Datenstrukturen werden sie gespeichert?
(c) Gegeben sei die nachfolgende dargestellte Menge von Liniensegmenten mit der Sweep-Line
l. Der Punkt auf der Sweep-Line ist bereits abgearbeitet. Geben Sie den Inhalt der drei
Datenstrukturen für dieses Beispiel an. Benennen Sie die benötigten Elemente in der
Abbildung.
l
4/7
Name:
Vorname:
Matrikelnummer:
3. Aufgabe: Schnitte planarer Unterteilungen ( 3 + 1 Punkte )
(a) Der nachfolgende Graph (Abb. 1) sei in einer Halbkantendatenstruktur gespeichert. Die
nachstehenden Tabellen geben einen Teil der Datenstruktur an. Nun wird die Kante st
eingefügt (Abb. 2). Ergänzen Sie die Einträge für Knoten, Kanten und Facetten, so dass die
resultierende Datenstruktur eine korrekte Halbkantendatenstruktur ist.
s
p
r
f1
f3
f2
s
p
u
r
f1
t
q
f2
u
t
q
Abb. 1
f4
f3
Abb. 2
Vertex
Coord.
Incident
Edge
Face
r
-
f1
s
-
f2
t
-
u
-
tu
Outer
Components
Inner
Components
tr
NIL
Next
Prev
f3
f4
Half-edge
Origin
Twin
st
s
ts
rt
r
tr
tu
t
ut
pr
p
rp
IncidentFace
(b) Markieren Sie in den nachfolgenden Abbildungen die darunter angegebene Menge. xor steht
für exklusiv oder.
AG
A xor G
G –A
5/7
4. Aufgabe: Punktsuche ( 4 + 4 Punkte )
(a) Zeichnen Sie in die nachfolgende Punktmenge den kd-Baum ein und geben Sie die
zugehörige Datenstruktur als Baum an. Benennen und markieren Sie innere Knoten und
Blätter.
(b) In der nachstehende Trapezkarte (obere Abb.) wird die Kante si eingefügt. Im unteren Teil
der Abbildung sehen Sie die zugehörige Datenstruktur vor dem Einfügen der Kante.
Aktualisieren Sie die Trapezkarte und die Datenstruktur in Abbildung 2.
6/7
Name:
Vorname:
Matrikelnummer:
5. Aufgabe: Voronoidiagramm und Delaunaytriangulierung
( 1 + 2 + 3 Punkte )
(a) Auf welchen geometrischen Strukturen liegen Punkte, die den gleichen Abstand haben zu
• zwei Punkten:
•
einem Punkt und einer Geraden:
(b) Durch welche Ereignisse entstehen Ecken und Kanten im Voronoidiagramm? Durch was
sind diese Ereignisse charakterisiert?
(c) Sei P eine Menge von n Punkten in der Ebene, die nicht alle kollinear sind. Ferner liegen k
Punkte auf der konvexen Hülle. Beweisen Sie, dass jede Triangulierung von P 2n – 2 – k
Dreiecke besitzt.
7/7
Herunterladen