Technische Universität München Optimierung II, WS 2007/2008

Werbung
Technische Universität München
Zentrum Mathematik
Prof. Dr. A. Taraz, Dr. R. Brandenberg,
Dipl.-Math. Dipl.-Inf. S. Borgwardt
Optimierung II, WS 2007/2008
Übungsblatt 3
Aufgabe 3.1
Sei G ein zusammenhängender Graph mit n Knoten und ∆G := maxv∈V deg(v). Zeigen
Sie:
a) Für alle Eigenwerte λ der Adjazenzmatrix AG gilt |λ| ≤ ∆G .
Hinweis: Betrachten Sie o.E. einen Eigenvektor v zu λ mit kvk∞ = 1.
b) ∆G ist ein Eigenwert von AG , genau dann wenn deg(v) = ∆G für alle v ∈ V gilt.
c) −∆G ist ein Eigenwert von AG , genau dann wenn deg(v) = ∆G für alle v ∈ V gilt und
G bipartit ist.
d) Ist G bipartit und λ ein Eigenwert von AG , dann auch −λ.
Aufgabe 3.2
Sei G = (V, E, `) ein gewichteter zusammenhängender Graph mit Kantenlängen `(e) > 0
für alle e ∈ E und s, t ∈ V . Ferner sei lb(v) ≥ 0 eine untere Schranke für dist (v, t) für
alle v ∈ V , sodass (o.E.) lb(u) ≤ lb(v) + `({u, v}) für alle {u, v} ∈ E gelte.
Zeigen Sie, dass der folgende sogenannte A∗ -Algorithmus dann die Länge eines kürzesten
s, t-Pfades berechnet.
A∗ -Algorithmus(G, `, s, t, lb)
(1)
foreach x ∈ V \ {s} do val[x] := ∞
(2)
val[s] := lb(s)
(3)
Q := V
(4)
while Q 6= ∅
(5)
x := Knoten in Q, der val[·] minimiert
(6)
if x = t then return val[x]
(7)
Q := Q − {x}
(8)
foreach y ∈ N (x) ∩ Q
(9)
val[y] := min{val[y], val[x] + `({x, y}) + lb(y) − lb(x)}
Bitte wenden!
Aufgabe 3.3
Sei G = (V, E) ein zusammenhängender Graph. Zeigen Sie:
a) Der Algorithmus von Dijkstra lässt sich so modifizieren, dass er in O(n2 ) Schritten
die kürzesten Pfade von einem Knoten s ∈ V zu allen anderen Knoten berechnet und
ausgibt.
b) Die Vereinigung dieser Pfade bildet einen Spannbaum von G.
Aufgabe 3.4
Für einen Graphen G = (V, E) seien v1 , v2 , ..., vn die Knoten in V und zwar in der Reihenfolge in der sie im Dijkstra-Algorithmus aus Q gelöscht werden (Zeile 6 des Algorithmus),
also u.a. s = v1 . Wir sagen dann, dass v1 , v2 , ..., vn eine (möglicherweise nicht eindeutige)
Besuchsreihenfolge für Dijkstra(G, v1 ) ist. Welche der folgenden Aussagen sind richtig?
(Antworten Sie mit ja oder nein und begründen Sie kurz Ihre Antwort.)
(i) Am Ende des Algorithmus gilt abst[v1 ] ≤ abst[v2 ] ≤ · · · ≤ abst[vn ].
(ii) Ist man beim Aufruf des Algorithmus nur an dem Abstand von s zu einem festen
Knoten t interessiert, so kann man abbrechen, sobald abst[t] < ∞.
(iii) Ist man beim Aufruf des Algorithmus nur an dem Abstand von s zu einem festen
Knoten t interessiert, so kann man abbrechen, sobald t aus Q entfernt wird.
(iv) Der kürzeste s, t-Pfad in G = (V, E, `) mit teils negativen Kantengewichten kann
bestimmt werden, indem man zunächst das kleinste dieser Gewichte −C bestimmt
und und dann den Dijkstra-Algorithmus auf (V, E, ` + C + 1) anwendet.
(v) Existiert in G genau ein e ∈ E mit `(e) < 0 und alle anderen Kanten haben positives
Gewicht, dann kann ein kürzester s, t-Pfad durch zweimaliges Aufrufen des DijkstraAlgorithmus auf Subgraphen von G gefunden werden.
Abgabe: bis Montag, 16.00 im dafür vorgesehenen Kasten im Untergeschoss.
Bitte notieren Sie auf ihrer Abgabe:
• Name(n), Vorname(n),
• Matrikelnummer(n) und
• Übungsgruppe (Wochentag, Uhrzeit und Übungsleiter).
Bitte geben Sie möglichst in Dreiergruppen ab.
Herunterladen