05.11.2013 Aufrufe

Aufgabe 1 (Algorithmus von Dijkstra) Aufgabe 2 ... - Callerid.de

Aufgabe 1 (Algorithmus von Dijkstra) Aufgabe 2 ... - Callerid.de

Aufgabe 1 (Algorithmus von Dijkstra) Aufgabe 2 ... - Callerid.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Kurs 1663 „Datenstrukturen“ Einsen<strong>de</strong>aufgaben zur Kurseinheit 5 Seite 1<br />

<strong>Aufgabe</strong> 1<br />

(<strong>Algorithmus</strong> <strong>von</strong> <strong>Dijkstra</strong>)<br />

25 Punkte<br />

Der <strong>Algorithmus</strong> <strong>von</strong> <strong>Dijkstra</strong> berechnet in seiner ursprünglichen Form lediglich einen<br />

<strong>de</strong>r kürzesten Wege <strong>von</strong> einem Knoten zu allen an<strong>de</strong>ren. Wenn es mehrere<br />

Wege mit gleichen Kosten zu einem an<strong>de</strong>ren Knoten gibt, so wird <strong>de</strong>r erste gefun<strong>de</strong>ne<br />

Weg gewählt. Die <strong>Aufgabe</strong> besteht nun darin, <strong>de</strong>n <strong>Algorithmus</strong> <strong>de</strong>rart zu verän<strong>de</strong>rn,<br />

daß er alle Wege mit gleichen Kosten für einen Knoten speichert.<br />

(a)<br />

Wie sind <strong>Algorithmus</strong> und Implementierung zu modifizieren? Wie än<strong>de</strong>rt<br />

sich die Laufzeit? Begrün<strong>de</strong>n Sie.<br />

10 Punkte<br />

(b)<br />

Demonstrieren Sie die Arbeitsweise Ihres <strong>Algorithmus</strong> am folgen<strong>de</strong>n Beispiel.<br />

Startknoten ist A.<br />

15 Punkte<br />

A<br />

2<br />

B<br />

2<br />

C<br />

2<br />

1<br />

2<br />

1<br />

2<br />

D<br />

2<br />

E<br />

2<br />

F<br />

2<br />

2<br />

2<br />

G<br />

2 2<br />

H<br />

I<br />

<strong>Aufgabe</strong> 2<br />

(Artikulationspunkte)<br />

25 Punkte<br />

Sei G = (V, E) ein verbun<strong>de</strong>ner, ungerichteter Graph. Dann besteht G aus genau einer<br />

Komponente. Das Entfernen eines Knotens v (und seiner inzi<strong>de</strong>nten Kanten) aus<br />

G schreiben wir als G - v und meinen damit <strong>de</strong>n Graphen G' = (V - {v}, {(x, y) ∈ E<br />

| x ≠ v ∧ y ≠ v}). Ein Artikulationspunkt ist ein Knoten v ∈ V, für <strong>de</strong>n gilt: G - v ist<br />

nicht verbun<strong>de</strong>n. Ein verbun<strong>de</strong>ner Graph ohne Artikulationspunkte heißt nicht-separierbarer<br />

Graph. Ein Block eines Graphen ist eine maximaler, nicht-separierbarer


Seite 2 Einsen<strong>de</strong>aufgaben zur Kurseinheit 5 Kurs 1663 „Datenstrukturen“<br />

Teilgraph. Im Graph <strong>de</strong>r folgen<strong>de</strong>n Abbildung sind die Knoten x und y Artikulationspunkte.<br />

x<br />

y<br />

Die Blöcke <strong>de</strong>s Graphen sind:<br />

x<br />

x<br />

y<br />

y<br />

y<br />

10 Punkte<br />

(a)<br />

Beweisen Sie <strong>de</strong>n folgen<strong>de</strong>n Satz:<br />

v ist Artikulationspunkt <strong>von</strong> G ⇔ Es existieren zwei <strong>von</strong> v verschie<strong>de</strong>ne<br />

Knoten u und w, so daß v in je<strong>de</strong>m Pfad <strong>von</strong> u nach w enthalten ist.<br />

Zu je<strong>de</strong>m ungerichteten Graphen gibt es einen korrespondieren<strong>de</strong>n gerichteten Graphen,<br />

in <strong>de</strong>m je<strong>de</strong> ungerichtete Kante in bei<strong>de</strong>n Richtungen auftritt. Wir nehmen an,<br />

daß jeweils bei<strong>de</strong>n Kanten ein und dasselbe Kostenmaß c zugewiesen ist.<br />

15 Punkte<br />

(b)<br />

Wie kann man das Wissen über Blöcke und Artikulationspunkte ausnutzen,<br />

um die Suche nach <strong>de</strong>m kürzesten Weg zwischen zwei Knoten s und t zu beschleunigen?<br />

(Hinweis: Sie brauchen Ihre I<strong>de</strong>e nur für <strong>de</strong>n einfachen Fall zu<br />

beschreiben, in <strong>de</strong>m lediglich ein Artikulationspunkt existiert.)<br />

Begrün<strong>de</strong>n Sie die Korrektheit Ihres Ansatzes, und schätzen Sie <strong>de</strong>n Laufzeitgewinn<br />

durch Gegenüberstellung <strong>de</strong>r Komplexitäten für die “normale”<br />

und Ihre verbesserte Lösung ab.


Kurs 1663 „Datenstrukturen“ Einsen<strong>de</strong>aufgaben zur Kurseinheit 5 Seite 3<br />

<strong>Aufgabe</strong> 3<br />

Inselstaat<br />

20 Punkte<br />

A 1 A 2<br />

B 3<br />

B 2<br />

B 1<br />

B 4<br />

C 3<br />

A 3<br />

C 1 C2<br />

Die vergröberte Geometrie eines kleinen Inselstaates ist im obigen Bild durch Polygone<br />

dargestellt, die wie<strong>de</strong>rum durch einen Graphen abgebil<strong>de</strong>t wer<strong>de</strong>n, d.h. die<br />

Eckpunkte eines Polygons sind Knoten <strong>de</strong>s Graphen und Linienzüge entsprechen<br />

Kanten im Graphen. Der Staat besteht aus mehreren Inseln, welche in Gebiete aufgeteilt<br />

sind. Letztere sind im Besitz verschie<strong>de</strong>ner Stämme (A, B, C) bzw. Familien<br />

dieser Stämme (A 1 ...A 3 , B 1 ...B 4 , C 1 ...C 3 ). Gegeben sind die Teilgraphen, die die<br />

Grenzen <strong>de</strong>r einzelnen Familien (Gebiete) repräsentieren und <strong>de</strong>r Gesamtgraph G,<br />

<strong>de</strong>r oben dargestellt ist.<br />

Die folgen<strong>de</strong>n <strong>Aufgabe</strong>n sollen mittels Graphalgorithmen gelöst wer<strong>de</strong>n.<br />

(a)<br />

Wie kann die Anzahl <strong>de</strong>r Inseln auf Basis <strong>von</strong> G berechnet wer<strong>de</strong>n? Welche<br />

Kosten hat das Verfahren?<br />

3 Punkte<br />

(b)<br />

Wie kann die Anzahl <strong>de</strong>r Inseln berechnet wer<strong>de</strong>n, in<strong>de</strong>m nur die Teilgraphen<br />

benutzt wer<strong>de</strong>n (und ohne die Teilgraphen zu G zusammenzusetzen)?<br />

5 Punkte<br />

(c)<br />

Sei length eine Kantenmarkierung in G (und seinen Teilgraphen), die die Länge<br />

<strong>de</strong>r Kante angibt. Geben Sie einen <strong>Algorithmus</strong> an, um die Länge <strong>de</strong>r Küste<br />

<strong>de</strong>s Inselstaates zu berechnen.<br />

8 Punkte<br />

(d)<br />

Beschreiben Sie, wie die Anzahl <strong>de</strong>r Nachbarn einer Familie berechnet wer<strong>de</strong>n<br />

kann. Ein Nachbar einer Familie sei <strong>de</strong>finiert als eine an<strong>de</strong>re Familie mit<br />

einem angrenzen<strong>de</strong>n Gebiet. Geben Sie einen <strong>Algorithmus</strong> an, wenn nötig.<br />

4 Punkte


Seite 4 Einsen<strong>de</strong>aufgaben zur Kurseinheit 5 Kurs 1663 „Datenstrukturen“<br />

30 Punkte<br />

<strong>Aufgabe</strong> 4<br />

(Stadtparkbewässerung)<br />

In einem Stadtpark soll die Bewässerung über ein Kanalsystem realisiert wer<strong>de</strong>n.<br />

Die <strong>Aufgabe</strong> ist es, alle Plätze mit Wasser zu versorgen. Dabei sollen die Kanäle<br />

entlang <strong>de</strong>r Wege verlegt wer<strong>de</strong>n. Die Vegetation in <strong>de</strong>r Nähe <strong>de</strong>r Kanäle wird direkt<br />

durch die Kanäle versorgt, während Pflanzen, die an Wegen ohne Kanäle liegen,<br />

<strong>von</strong> Gärtnern versorgt wer<strong>de</strong>n, die das Wasser dann aus <strong>de</strong>n Brunnen an <strong>de</strong>n Plätzen<br />

beziehen. In <strong>de</strong>m gezeigten Graphen stellen die Knoten die Plätze und die Kanten<br />

die Wege dar. Die Kantenmarkierungen geben die Länge <strong>de</strong>r Wege an.<br />

A<br />

3<br />

B<br />

3<br />

2<br />

2<br />

F<br />

2<br />

2<br />

3<br />

E<br />

2<br />

H<br />

1<br />

1<br />

1<br />

G<br />

2<br />

C<br />

3<br />

2<br />

2<br />

3<br />

D<br />

12 Punkte<br />

(a)<br />

Wieviele Möglichkeiten gibt es, ein Kanalsystem minimaler Länge, das alle<br />

Plätze miteinan<strong>de</strong>r verbin<strong>de</strong>t, anzulegen? Begrün<strong>de</strong>n Sie Ihre Aussage.<br />

Geben Sie ein Beispiel für ein Kanalsystem an und <strong>de</strong>n <strong>Algorithmus</strong>, mit<br />

<strong>de</strong>m sie ihn gefun<strong>de</strong>n haben.<br />

12 Punkte<br />

(b)<br />

Um zu überprüfen, ob die Vegetation außerhalb <strong>de</strong>r Kanäle ausreichend bewässert<br />

ist, müssen alle Wege ohne Kanäle überprüft wer<strong>de</strong>n. Dazu müssen<br />

diese Wege abgegangen wer<strong>de</strong>n.<br />

Gibt es zu je<strong>de</strong>r <strong>de</strong>r Möglichkeiten aus <strong>Aufgabe</strong>nteil (a) einen Pfad, <strong>de</strong>r je<strong>de</strong>n<br />

Weg ohne Kanal genau einmal (und sonst keine weiteren Wege) benutzt?<br />

Wenn ja, geben Sie für Ihr Beispiel aus (a) einen solchen Pfad an. Wenn<br />

nicht, begrün<strong>de</strong>n Sie dies ausführlich.<br />

6 Punkte<br />

(c)<br />

Gibt es einen Pfad durch <strong>de</strong>n Park, <strong>de</strong>r je<strong>de</strong>n Weg genau einmal benutzt, mit<br />

Start ≠ Ziel und Start, Ziel ∈ {A, B, C, D, E}? Gibt es einen Rundweg, also


Kurs 1663 „Datenstrukturen“ Einsen<strong>de</strong>aufgaben zur Kurseinheit 5 Seite 5<br />

einen Pfad durch <strong>de</strong>n Park, <strong>de</strong>r je<strong>de</strong>n Weg genau einmal benutzt, mit<br />

Start = Ziel, Start, Ziel ∈ {A, B, C, D, E}? Geben Sie für bei<strong>de</strong> Fragen jeweils<br />

einen gültigen Weg an, falls es einen solchen gibt. Wenn nicht, begrün<strong>de</strong>n<br />

Sie dies.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!