Algorithmen und Datenstrukturen

Werbung
1
Algorithmen und Datenstrukturen
Wintersemester 2014/15
24. Vorlesung
Leichte Kreise in Graphen
Prof. Dr. Alexander Wolff
Lehrstuhl für Informatik I
2
Kürzeste Pfade und Kreise
– Gewichteter und ungewichteter Fall
– Gerichteter und ungerichteter Fall
(Tafel, frühere Vorlesungen)
3
Minimales durchschnittliches Kantengewicht
Sei G = (V , E ) ein gerichteter Graph mit beliebigen
Kantengewichten w : E → R. Sei n = |V |.
Für einen gerichteten Kreis C = he1 , e2 , . . . , ek i sei
k
X
1
µ(C ) =
w (ei )
k
i =1
sein durchschnittliches Kantengewicht.
0
Sei C die Menge aller gerichteter Kreise in G und
?
µ = min µ(C )
1
2
2
C ∈C
das minimale durchschnittliche Kantengewicht
eines Kreises (minimum mean cycle weight).
1 1
0
1
1
−1
1
−1
4
Vorbereitungen
Wir suchen also einen Kreis C ? mit µ(C ? ) = µ? , d.h. einen
Kreis mit minimalem durchschnittlichem Kantengewicht.
Wir nehmen an, dass G stark zusammenhängend ist, d.h. es
gibt für jedes Knotenpaar (u , v ) einen gerichteten u -v -Weg.
Ansonsten zerlegen wir G in seine starken Zusammenhangskomponenten (wie?) und betrachten jede separat.
Sei s ein beliebiger Knoten von G .
Sei δ(s , v ) das Gewicht eines kürzesten (leichtesten) s -v -Wegs.
Für k = 0, . . . , n − 1 sei δk (s , v ) das Gewicht eines kürzesten
s -v -Wegs, der aus genau k Kanten besteht (sonst ∞).
5
Schritt I
Zeige: Falls µ? = 0, dann gilt:
– G keinen Kreis mit negativem Gewicht und
– δ(s , v ) = min0≤k ≤n−1 δk (s , v ) für jeden Knoten v .
6
Schritt II
Falls µ? = 0, dann gilt:
– G keinen Kreis mit negativem Gewicht und
– δ(s , v ) = min0≤k ≤n−1 δk (s , v ) für jeden Knoten v .
Zeige: Falls µ? = 0, dann gilt für jeden Knoten v
δn (s , v ) − δk (s , v )
max
≥ 0.
0≤k ≤n−1
n−k
7
Schritt III
Sei C ein Kreis mit Gewicht 0. Seien u , v Knoten auf C , und
sei x das Gewicht des Wegs von u nach v auf C .
Zeige: δ(s , v ) = δ(s , u ) + x .
8
Schritt IV
Falls µ? = 0, dann gilt für jeden Knoten v
δn (s , v ) − δk (s , v )
max
≥ 0.
0≤k ≤n−1
n−k
Zeige:
Falls µ? = 0, dann gibt es einen Knoten v auf dem Kreis C ? ,
so dass
δn (s , v ) − δk (s , v )
max
= 0.
0≤k ≤n−1
n−k
9
Schritt V
Falls µ? = 0, dann gibt es einen Knoten v auf dem Kreis C ? ,
so dass
δn (s , v ) − δk (s , v )
max
= 0.
0≤k ≤n−1
n−k
Zeige:
Falls µ? = 0, dann
δn (s , v ) − δk (s , v )
min max
= 0.
v ∈V 0≤k ≤n−1
n−k
10
Schritt VI
Zeige:
Falls µ? = 0, dann
δn (s , v ) − δk (s , v )
min max
= 0.
v ∈V 0≤k ≤n−1
n−k
Zeige:
Falls wir eine Konstante t zum Gewicht jeder Kante von G
addieren, dann steigt µ? um t .
Zeige damit, dass
δn (s , v ) − δk (s , v )
.
µ = min max
v ∈V 0≤k ≤n−1
n−k
?
11
Schritt VII
Es gilt
δn (s , v ) − δk (s , v )
µ = min max
.
v ∈V 0≤k ≤n−1
n−k
?
Gib einen Algorithmus an, der µ? in O (V · E ) Zeit berechnet.
Herunterladen