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.