Ein Feedback-Vertex-Set (FVS) eines (gerichteten) Graphen G ist eine Knotenmenge F, durch deren Entfernen G azyklisch wird. Das Feedback-Vertex-Set-Problem besteht aus der Berechnung eines FVSs minimaler Kardinalität. Es modelliert Kernprobleme aus vielen praktischen Bereichen wie z.B. VLSI-Design oder Programmverifikation. Andererseits ist das Problem NP-schwer [Karp72], d.h. im Allgemeinen kann es nicht effizient gelöst werden.
Eine Möglichkeit mit diesem Dilemma umzugehen, ist sich mit einer Approximation der Optimallösung zufrieden zu geben. In diesem Vortrag werden auf Markovketten basierende Heuristiken vorgestellt, um solche Approximationen zu bestimmen. Die Pionierarbeit dazu wurde in [Speckenmeyer89] geleistet.
Im Mittelpunkt des Vortrags steht eine Verbesserung des ursprünglichen Algorithmus von Speckenmeyer, sowie eine darauf basierende lokale Suchfunktion. Diese beiden Verfahren werden mit bereits bekannten Ansätzen verglichen. Dabei lieferten diese Ansätze signifikant bessere Lösungen als das beste aus der Literatur bekannte Verfahren von Resende. Beispielsweise benötigten sie nur einen Bruchteil der Rechenzeit des Resende-Verfahreens - 733 Sekunden statt 41626 Sekunden auf einem modernen PC - zur Lösung eines Satzes von Benchmark-Graphen. Eine Schlüsselrolle hatten dabei schnelle Methoden zur Lösung dünnbesetzter linearer Gleichungssysteme.
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Techtalk: Auf Markovketten basierende Heuristiken für das Feedback-Vertex-Set-Problem
1. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Auf Markovketten basierende Heuristiken für das
Feedback-Vertex-Set-Problem
Mile Lemaić
Institut für Informatik
Universität zu Köln
20.01.2010
2. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Gliederung
1 Das FVS-Problem
3. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Gliederung
1 Das FVS-Problem
2 Markovsche FVS-Algorithmen
4. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Gliederung
1 Das FVS-Problem
2 Markovsche FVS-Algorithmen
3 Ergebnisse
5. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Gliederung
1 Das FVS-Problem
2 Markovsche FVS-Algorithmen
3 Ergebnisse
6. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Notation
Inverser Digraph
7. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Notation
Inverser Digraph
G
• Sei G = (V , A) ein Digraph
8. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Notation
Inverser Digraph
G G −1
• Sei G = (V , A) ein Digraph
• Dann bezeichnet G −1 den inversen Digraph von G
9. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Definitionen
Feedback-Vertex-Set
Definition
10. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Definitionen
Feedback-Vertex-Set
Definition
Sei G = (V , A) ein Digraph.
11. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Definitionen
Feedback-Vertex-Set
Definition
Sei G = (V , A) ein Digraph.
• G heißt azyklisch, falls er keine Kreise enthält
12. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Definitionen
Feedback-Vertex-Set
Definition
Sei G = (V , A) ein Digraph.
• G heißt azyklisch, falls er keine Kreise enthält
• F ⊂ V ist ein Feedback-Vertex-Set (FVS) von G ,
13. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Definitionen
Feedback-Vertex-Set
Definition
Sei G = (V , A) ein Digraph.
• G heißt azyklisch, falls er keine Kreise enthält
• F ⊂ V ist ein Feedback-Vertex-Set (FVS) von G ,
falls G − F ayklisch ist
14. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Definitionen
Feedback-Vertex-Set
Definition
Sei G = (V , A) ein Digraph.
• G heißt azyklisch, falls er keine Kreise enthält
• F ⊂ V ist ein Feedback-Vertex-Set (FVS) von G ,
falls G − F ayklisch ist
• Ein FVS minimaler Kardinalität heißt optimal
15. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Das FVS-Problem
Überblick
16. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Das FVS-Problem
Überblick
FVS-Problem
Eingabe: Digraph G = (V , A)
Ausgabe: Optimales FVS F
17. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Das FVS-Problem
Überblick
FVS-Problem
Eingabe: Digraph G = (V , A)
Ausgabe: Optimales FVS F
• FVS-Problem ist NP hart [Karp, 1972]
18. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Das FVS-Problem
Überblick
FVS-Problem
Eingabe: Digraph G = (V , A)
Ausgabe: Optimales FVS F
• FVS-Problem ist NP hart [Karp, 1972]
• Es gibt polynomiell lösbare Klassen
• completely contractible graphs [Levy/Low, 1988]
• Smith-Walford reducible graphs [Wang et al, 1985]
• ...
19. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Das FVS-Problem
Überblick
FVS-Problem
Eingabe: Digraph G = (V , A)
Ausgabe: Optimales FVS F
• FVS-Problem ist NP hart [Karp, 1972]
• Es gibt polynomiell lösbare Klassen
• completely contractible graphs [Levy/Low, 1988]
• Smith-Walford reducible graphs [Wang et al, 1985]
• ...
• Bester Approximationsalgorithmus hat Güte von
O(log |V | log log |V |) [Even et al, 1998]
20. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Anwendung: Programmverifikation nach Floyd
Beispiel: Ganzzahlige Division mit Rest
21. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Anwendung: Programmverifikation nach Floyd
Beispiel: Ganzzahlige Division mit Rest
• Stelle Programm als
y := 1
Flowchart dar
Eingabe: a, b q := 0
r := a
Ja Nein
b := 2b
r > b
y := 2y
Ja Nein
r := r-b
r ≥ b
q := q+y
Ja Nein
b := b/2
y = 1
y := y/2
Ausgabe: q, r
22. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Anwendung: Programmverifikation nach Floyd
Beispiel: Ganzzahlige Division mit Rest
• Stelle Programm als
y := 1
Flowchart dar
Eingabe: a, b q := 0
r := a • Wähle Cutpoints
Ja Nein
b := 2b
r > b
y := 2y
Ja Nein
r := r-b
r ≥ b
q := q+y
Ja Nein
b := b/2
y = 1
y := y/2
Ausgabe: q, r
23. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Anwendung: Programmverifikation nach Floyd
Beispiel: Ganzzahlige Division mit Rest
• Stelle Programm als
y := 1
Flowchart dar
Eingabe: a, b q := 0
r := a • Wähle Cutpoints
• zerlegen Programm
b := 2b
Ja Nein in azyklische
r > b Teilstrukturen
y := 2y
Ja Nein
r := r-b
r ≥ b
q := q+y
Ja Nein
b := b/2
y = 1
y := y/2
Ausgabe: q, r
24. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Anwendung: Programmverifikation nach Floyd
Beispiel: Ganzzahlige Division mit Rest
• Stelle Programm als
y := 1
Flowchart dar
Eingabe: a, b q := 0
r := a • Wähle Cutpoints
• zerlegen Programm
b := 2b
Ja Nein in azyklische
r > b Teilstrukturen
y := 2y
• representieren Pro-
Ja Nein grammspezifikationen
r := r-b
r ≥ b
q := q+y
Ja Nein
b := b/2
y = 1
y := y/2
Ausgabe: q, r
25. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Anwendung: Programmverifikation nach Floyd
Beispiel: Ganzzahlige Division mit Rest
• Stelle Programm als
y := 1
Flowchart dar
Eingabe: a, b q := 0
r := a • Wähle Cutpoints
• zerlegen Programm
b := 2b
Ja Nein in azyklische
r > b Teilstrukturen
y := 2y
• representieren Pro-
Ja Nein grammspezifikationen
r := r-b
r ≥ b
q := q+y • Zeige Kosistenz der
Spezifikationen auf
Ja Nein
Teilstrukturen
b := b/2
y = 1
y := y/2
Ausgabe: q, r
26. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Anwendung: Programmverifikation nach Floyd
Beispiel: Ganzzahlige Division mit Rest
• Stelle Programm als
y := 1
Flowchart dar
Eingabe: a, b q := 0
r := a • Wähle Cutpoints
• zerlegen Programm
b := 2b
Ja Nein in azyklische
r > b Teilstrukturen
y := 2y
• representieren Pro-
Ja Nein grammspezifikationen
r := r-b
r ≥ b
q := q+y • Zeige Kosistenz der
Spezifikationen auf
Ja Nein
Teilstrukturen
b := b/2
y = 1 • Zeige Korrektheit des
y := y/2
gesamten Programms
Ausgabe: q, r mittels induktiver
Argumente
27. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Anwendung: Programmverifikation nach Floyd
Beispiel: Ganzzahlige Division mit Rest
y := 1
Eingabe: a, b q := 0
Dann gilt: Falls das Programm
r := a tertminiert, so arbeitet es
formal korrekt.
Ja Nein
b := 2b
r > b
y := 2y
Ja Nein
r := r-b
r ≥ b
q := q+y
Ja Nein
b := b/2
y = 1
y := y/2
Ausgabe: q, r
28. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Anwendung: Programmverifikation nach Floyd
Beispiel: Ganzzahlige Division mit Rest
y := 1
Eingabe: a, b q := 0
Dann gilt: Falls das Programm
r := a tertminiert, so arbeitet es
formal korrekt.
Ja Nein
Spezifikationen:
b := 2b
r > b
y := 2y
Ja Nein
r := r-b
r ≥ b
q := q+y
Ja Nein
b := b/2
y = 1
y := y/2
Ausgabe: q, r
29. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Anwendung: Programmverifikation nach Floyd
Beispiel: Ganzzahlige Division mit Rest
y := 1
Eingabe: a, b q := 0
Dann gilt: Falls das Programm
r := a tertminiert, so arbeitet es
formal korrekt.
Ja Nein
Spezifikationen:
b := 2b ◦ a≥0∧b >0
r > b
y := 2y
Ja Nein
r := r-b
r ≥ b
q := q+y
Ja Nein
b := b/2
y = 1
y := y/2
Ausgabe: q, r
30. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Anwendung: Programmverifikation nach Floyd
Beispiel: Ganzzahlige Division mit Rest
y := 1
Eingabe: a, b q := 0
Dann gilt: Falls das Programm
r := a tertminiert, so arbeitet es
formal korrekt.
Ja Nein
Spezifikationen:
b := 2b ◦ a≥0∧b >0
r > b
y := 2y
◦ a = bq + r ∧ q ≥ 0 ∧ 0 ≤ r < b
Ja Nein
r := r-b
r ≥ b
q := q+y
Ja Nein
b := b/2
y = 1
y := y/2
Ausgabe: q, r
31. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Anwendung: Programmverifikation nach Floyd
Beispiel: Ganzzahlige Division mit Rest
y := 1
Eingabe: a, b q := 0
Dann gilt: Falls das Programm
r := a tertminiert, so arbeitet es
formal korrekt.
Ja Nein
Spezifikationen:
b := 2b ◦ a≥0∧b >0
r > b
y := 2y
◦ a = bq + r ∧ q ≥ 0 ∧ 0 ≤ r < b
Ja Nein ◦ ay = bq + ry
r := r-b
r ≥ b
q := q+y
Ja Nein
b := b/2
y = 1
y := y/2
Ausgabe: q, r
32. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Anwendung: Programmverifikation nach Floyd
Beispiel: Ganzzahlige Division mit Rest
y := 1
Eingabe: a, b q := 0
Dann gilt: Falls das Programm
r := a tertminiert, so arbeitet es
formal korrekt.
Ja Nein
Spezifikationen:
b := 2b ◦ a≥0∧b >0
r > b
y := 2y
◦ a = bq + r ∧ q ≥ 0 ∧ 0 ≤ r < b
Ja Nein ◦ ay = bq + ry
r := r-b
q := q+y
r ≥ b ◦ ···
Ja Nein
b := b/2
y = 1
y := y/2
Ausgabe: q, r
33. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Das FVS-Problem
Heuristiken für die Knotenwahl
34. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Das FVS-Problem
Heuristiken für die Knotenwahl
Heuristiken:
35. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Das FVS-Problem
Heuristiken für die Knotenwahl
Heuristiken:
1 [Lee/Reddy, 1990]: Wähle Knoten mit maximalem Produkt
(bzw. Summe) von Eingangs- und Ausgangsgrad
36. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Das FVS-Problem
Heuristiken für die Knotenwahl
Heuristiken:
1 [Lee/Reddy, 1990]: Wähle Knoten mit maximalem Produkt
(bzw. Summe) von Eingangs- und Ausgangsgrad
2 [Lin/Jou, 1999]: Wähle Knoten mit maximaler Summe von
Eingangs- und Ausgangsgrad sowie Anzahl von Länge-2-Wegen
37. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Das FVS-Problem
Heuristiken für die Knotenwahl
Heuristiken:
1 [Lee/Reddy, 1990]: Wähle Knoten mit maximalem Produkt
(bzw. Summe) von Eingangs- und Ausgangsgrad
2 [Lin/Jou, 1999]: Wähle Knoten mit maximaler Summe von
Eingangs- und Ausgangsgrad sowie Anzahl von Länge-2-Wegen
Problem bei 1und 2 : Auswahlkriterien sind lokal,
aber Kreise sind global
38. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Gliederung
1 Das FVS-Problem
2 Markovsche FVS-Algorithmen
3 Ergebnisse
39. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Markovketten
Definitionen
40. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Markovketten
Definitionen
• Eine Markovkette
41. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Markovketten
Definitionen
• Eine Markovkette
• ist ein Digraph M = (V , A) mit V = {v1 , . . . , vn }
42. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Markovketten
Definitionen
⎛ ⎞
1
3
0 5 0 2
5 0
⎜0 0⎟
4
0 1 0
7
⎜ ⎟
1
P = ⎜2 4⎟
7
2
5 1 ⎜7 0 0 1
7 7⎟
⎝0 0 0 0 1⎠
7
2
1
0 1 0 0 0
5
3
• Eine Markovkette
• ist ein Digraph M = (V , A) mit V = {v1 , . . . , vn }
• versehen mit stochastischer Matrix P = (pij ), so dass
pij = 0 ⇐⇒ (vi , vj ) ∈ A
43. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Markovketten
Definitionen
⎛ ⎞
1
3
0 5 0 2
5 0
⎜0 0⎟
4
0 1 0
7
⎜ ⎟
1
P = ⎜2 4⎟
7
2
5 1 ⎜7 0 0 1
7 7⎟
⎝0 0 0 0 1⎠
7
2
1
0 1 0 0 0
5
3
• Eine Markovkette
• ist ein Digraph M = (V , A) mit V = {v1 , . . . , vn }
• versehen mit stochastischer Matrix P = (pij ), so dass
pij = 0 ⇐⇒ (vi , vj ) ∈ A
• P heißt Übergangsmatrix von M
44. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Markovketten
Definitionen
⎛ ⎞
1
3
0 5 0 2
5 0
⎜0 0⎟
4
0 1 0
7
⎜ ⎟
1
P = ⎜2 4⎟
7
2
5 1 ⎜7 0 0 1
7 7⎟
⎝0 0 0 0 1⎠
7
2
1
0 1 0 0 0
5
3
• Eine Markovkette
• ist ein Digraph M = (V , A) mit V = {v1 , . . . , vn }
• versehen mit stochastischer Matrix P = (pij ), so dass
pij = 0 ⇐⇒ (vi , vj ) ∈ A
• P heißt Übergangsmatrix von M
• Eine Markovkette heißt Random Walk,
45. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Markovketten
Definitionen
⎛ ⎞
1
1
0 2 0 1
2 0
⎜0 0⎟
1
0 1 0
3
⎜ ⎟
1
3
1
2 1 P = ⎜1
⎜3 0 0 1
3
1⎟
3⎟
⎝0 0 0 0 1⎠
3
1
1
0 1 0 0 0
2
1
• Eine Markovkette
• ist ein Digraph M = (V , A) mit V = {v1 , . . . , vn }
• versehen mit stochastischer Matrix P = (pij ), so dass
pij = 0 ⇐⇒ (vi , vj ) ∈ A
• P heißt Übergangsmatrix von M
• Eine Markovkette heißt Random Walk,
falls je zwei positive Zeilenelemente pij , pik von P gleich sind
46. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Markovketten
Definitionen
⎛ ⎞
1
1
0 2 0 1
2 0
⎜0 0⎟
1
0 1 0
3
⎜ ⎟
1
3
1
2 1 P = ⎜1
⎜3 0 0 1
3
1⎟
3⎟
⎝0 0 0 0 1⎠
3
1
1
0 1 0 0 0
2
1
• Eine Markovkette
• ist ein Digraph M = (V , A) mit V = {v1 , . . . , vn }
• versehen mit stochastischer Matrix P = (pij ), so dass
pij = 0 ⇐⇒ (vi , vj ) ∈ A
• P heißt Übergangsmatrix von M
• Eine Markovkette heißt Random Walk,
falls je zwei positive Zeilenelemente pij , pik von P gleich sind
• Jeder Digraph G = (V , A) induziert eindeut. Random Walk MG
47. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Markovketten
Stationäre Verteilung
M = (V , A) Markovkette mit V = {v1 , . . . , vn } und
Übergangsmatrix P
48. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Markovketten
Stationäre Verteilung
M = (V , A) Markovkette mit V = {v1 , . . . , vn } und
Übergangsmatrix P
Ist M stark zusammenhängend, so
49. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Markovketten
Stationäre Verteilung
M = (V , A) Markovkette mit V = {v1 , . . . , vn } und
Übergangsmatrix P
Ist M stark zusammenhängend, so
• existiert eindeutiger Spaltenvektor π = (πi ), so dass
n
tπ · P = tπ und πi = 1
i =1
50. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Markovketten
Stationäre Verteilung
M = (V , A) Markovkette mit V = {v1 , . . . , vn } und
Übergangsmatrix P
Ist M stark zusammenhängend, so
• existiert eindeutiger Spaltenvektor π = (πi ), so dass
n
tπ · P = tπ und πi = 1
i =1
• π heißt stationäre Verteilung von M
51. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Markovketten
Stationäre Verteilung
M = (V , A) Markovkette mit V = {v1 , . . . , vn } und
Übergangsmatrix P
Ist M stark zusammenhängend, so
• existiert eindeutiger Spaltenvektor π = (πi ), so dass
n
tπ · P = tπ und πi = 1
i =1
• π heißt stationäre Verteilung von M
1
• π ist mittlere Rückkehrzeit zum Knoten vi
i
52. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Speckenmeyers ursprünglicher Algorithmus (MFVS)
Bestimme kleines FVS F von G = (V , A) mit V = {v1 , . . . , vn }
53. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Speckenmeyers ursprünglicher Algorithmus (MFVS)
Bestimme kleines FVS F von G = (V , A) mit V = {v1 , . . . , vn }
MFVS Algorithmus [Speckenmeyer, 1989]
54. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Speckenmeyers ursprünglicher Algorithmus (MFVS)
Bestimme kleines FVS F von G = (V , A) mit V = {v1 , . . . , vn }
MFVS Algorithmus [Speckenmeyer, 1989]
• Konstruiere Random Walk MG
55. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Speckenmeyers ursprünglicher Algorithmus (MFVS)
Bestimme kleines FVS F von G = (V , A) mit V = {v1 , . . . , vn }
MFVS Algorithmus [Speckenmeyer, 1989]
• Konstruiere Random Walk MG
• Berechne stationäre Verteilung π = (πi ) von MG
56. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Speckenmeyers ursprünglicher Algorithmus (MFVS)
Bestimme kleines FVS F von G = (V , A) mit V = {v1 , . . . , vn }
MFVS Algorithmus [Speckenmeyer, 1989]
• Konstruiere Random Walk MG
• Berechne stationäre Verteilung π = (πi ) von MG
1
• Wähle Knoten vi mit kleinster mittlerer Rückkehrzeit π
i
57. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Speckenmeyers ursprünglicher Algorithmus (MFVS)
Bestimme kleines FVS F von G = (V , A) mit V = {v1 , . . . , vn }
MFVS Algorithmus [Speckenmeyer, 1989]
• Konstruiere Random Walk MG
• Berechne stationäre Verteilung π = (πi ) von MG
1
• Wähle Knoten vi mit kleinster mittlerer Rückkehrzeit π
i
Beispiel zu MFVS
58. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Speckenmeyers ursprünglicher Algorithmus (MFVS)
Bestimme kleines FVS F von G = (V , A) mit V = {v1 , . . . , vn }
MFVS Algorithmus [Speckenmeyer, 1989]
• Konstruiere Random Walk MG
• Berechne stationäre Verteilung π = (πi ) von MG
1
• Wähle Knoten vi mit kleinster mittlerer Rückkehrzeit π
i
Beispiel zu MFVS
• Berechne stationäre Verteilung
59. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Speckenmeyers ursprünglicher Algorithmus (MFVS)
Bestimme kleines FVS F von G = (V , A) mit V = {v1 , . . . , vn }
MFVS Algorithmus [Speckenmeyer, 1989]
• Konstruiere Random Walk MG
• Berechne stationäre Verteilung π = (πi ) von MG
1
• Wähle Knoten vi mit kleinster mittlerer Rückkehrzeit π
i
Beispiel zu MFVS
• Berechne stationäre Verteilung
• Wähle Knoten mit
kleinster mittlerer Rückkehrzeit
60. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Speckenmeyers ursprünglicher Algorithmus (MFVS)
Bestimme kleines FVS F von G = (V , A) mit V = {v1 , . . . , vn }
MFVS Algorithmus [Speckenmeyer, 1989]
• Konstruiere Random Walk MG
• Berechne stationäre Verteilung π = (πi ) von MG
1
• Wähle Knoten vi mit kleinster mittlerer Rückkehrzeit π
i
Beispiel zu MFVS
• Berechne stationäre Verteilung
• Wähle Knoten mit
kleinster mittlerer Rückkehrzeit
61. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Speckenmeyers ursprünglicher Algorithmus (MFVS)
Bestimme kleines FVS F von G = (V , A) mit V = {v1 , . . . , vn }
MFVS Algorithmus [Speckenmeyer, 1989]
• Konstruiere Random Walk MG
• Berechne stationäre Verteilung π = (πi ) von MG
1
• Wähle Knoten vi mit kleinster mittlerer Rückkehrzeit π
i
Beispiel zu MFVS
• Berechne stationäre Verteilung
• Wähle Knoten mit
kleinster mittlerer Rückkehrzeit
• Restgraph vollständig reduzierbar
62. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Der gemittelte MFVS (MFVSMean)
Kernidee
Versuche suboptimale Entscheidungen von MFVS zu vermeiden
63. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Der gemittelte MFVS (MFVSMean)
Kernidee
Versuche suboptimale Entscheidungen von MFVS zu vermeiden
• Konzipiere alternative unabhängige Heuristik gleicher Güte
64. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Der gemittelte MFVS (MFVSMean)
Kernidee
Versuche suboptimale Entscheidungen von MFVS zu vermeiden
• Konzipiere alternative unabhängige Heuristik gleicher Güte
• Schlagen beide Heuristiken gleichen Knoten vor, so wähle ihn
65. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Der gemittelte MFVS (MFVSMean)
Kernidee
Versuche suboptimale Entscheidungen von MFVS zu vermeiden
• Konzipiere alternative unabhängige Heuristik gleicher Güte
• Schlagen beide Heuristiken gleichen Knoten vor, so wähle ihn
• Falls nicht, dann . . .
66. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Der gemittelte MFVS (MFVSMean)
Kernidee
Versuche suboptimale Entscheidungen von MFVS zu vermeiden
• Konzipiere alternative unabhängige Heuristik gleicher Güte
• Schlagen beide Heuristiken gleichen Knoten vor, so wähle ihn
• Falls nicht, dann . . .
Beobachtung: F FVS von G ⇐⇒ F FVS von G −1
67. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Der gemittelte MFVS (MFVSMean)
Kernidee
Versuche suboptimale Entscheidungen von MFVS zu vermeiden
• Konzipiere alternative unabhängige Heuristik gleicher Güte
• Schlagen beide Heuristiken gleichen Knoten vor, so wähle ihn
• Falls nicht, dann . . .
Beobachtung: F FVS von G ⇐⇒ F FVS von G −1
Alternative Heuristik: Wende Heuristik von MFVS auf G −1 an
68. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Der gemittelte MFVS (MFVSMean)
Tie-Break
Welchen Knoten wählen,
wenn beide Heuristiken verschiedene Knoten vorschlagen?
69. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Der gemittelte MFVS (MFVSMean)
Tie-Break
Welchen Knoten wählen,
wenn beide Heuristiken verschiedene Knoten vorschlagen?
• Berechne stationäre Verteilungen π und π
der Random Walks MG und MG −1
70. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Der gemittelte MFVS (MFVSMean)
Tie-Break
Welchen Knoten wählen,
wenn beide Heuristiken verschiedene Knoten vorschlagen?
• Berechne stationäre Verteilungen π und π
der Random Walks MG und MG −1
• Definiere π = (πi ) durch
πi := h(πi , πi ) mit Heuristik h : R2 → R
71. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Der gemittelte MFVS (MFVSMean)
Tie-Break
Welchen Knoten wählen,
wenn beide Heuristiken verschiedene Knoten vorschlagen?
• Berechne stationäre Verteilungen π und π
der Random Walks MG und MG −1
• Definiere π = (πi ) durch
πi := h(πi , πi ) mit Heuristik h : R2 → R
• Wähle Knoten vi mit kleinstem π1
ei
72. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Der gemittelte MFVS (MFVSMean)
Tie-Break
Welchen Knoten wählen,
wenn beide Heuristiken verschiedene Knoten vorschlagen?
• Berechne stationäre Verteilungen π und π
der Random Walks MG und MG −1
• Definiere π = (πi ) durch
πi := h(πi , πi ) mit Heuristik h : R2 → R
• Wähle Knoten vi mit kleinstem π1
ei
Wahl v h:
73. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Der gemittelte MFVS (MFVSMean)
Tie-Break
Welchen Knoten wählen,
wenn beide Heuristiken verschiedene Knoten vorschlagen?
• Berechne stationäre Verteilungen π und π
der Random Walks MG und MG −1
• Definiere π = (πi ) durch
πi := h(πi , πi ) mit Heuristik h : R2 → R
• Wähle Knoten vi mit kleinstem π1
ei
Wahl v h:
• muss symmetrisch sein
74. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Der gemittelte MFVS (MFVSMean)
Tie-Break
Welchen Knoten wählen,
wenn beide Heuristiken verschiedene Knoten vorschlagen?
• Berechne stationäre Verteilungen π und π
der Random Walks MG und MG −1
• Definiere π = (πi ) durch
πi := h(πi , πi ) mit Heuristik h : R2 → R
• Wähle Knoten vi mit kleinstem π1
ei
Wahl v h:
• muss symmetrisch sein
• Kandidaten: arithm. Mittel, geom. Mittel, Maximum, . . .
75. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Der gemittelte MFVS (MFVSMean)
Tie-Break
Welchen Knoten wählen,
wenn beide Heuristiken verschiedene Knoten vorschlagen?
• Berechne stationäre Verteilungen π und π
der Random Walks MG und MG −1
• Definiere π = (πi ) durch
πi := h(πi , πi ) mit Heuristik h : R2 → R
• Wähle Knoten vi mit kleinstem π1
ei
Wahl v h:
• muss symmetrisch sein
• Kandidaten: arithm. Mittel, geom. Mittel, Maximum, . . .
• Bestes: arithmetrisches Mittel, d.h. h(x, y ) = 1 (x + y )
2
76. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Der gemittelte MFVS (MFVSMean)
Tie-Break
Welchen Knoten wählen,
wenn beide Heuristiken verschiedene Knoten vorschlagen?
• Berechne stationäre Verteilungen π und π
der Random Walks MG und MG −1
• Definiere π = (πi ) durch
πi := h(πi , πi ) mit Heuristik h : R2 → R
• Wähle Knoten vi mit kleinstem π1
ei
Wahl v h:
• muss symmetrisch sein
• Kandidaten: arithm. Mittel, geom. Mittel, Maximum, . . .
• Bestes: arithmetrisches Mittel, d.h. h(x, y ) = 1 (x + y )
2
Resultierender Algorithmus: MFVSMean
77. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Der gemittelte MFVS (MFVSMean)
Beispiel
Beispiel zu MFVSMean
78. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Der gemittelte MFVS (MFVSMean)
Beispiel
Beispiel zu MFVSMean
G
79. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Der gemittelte MFVS (MFVSMean)
Beispiel
Beispiel zu MFVSMean
G
• Berechne stat. Verteilung von MG
80. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Der gemittelte MFVS (MFVSMean)
Beispiel
Beispiel zu MFVSMean
G
• Berechne stat. Verteilung von MG
G −1 • Konstruiere inversen Digraphen G −1
81. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Der gemittelte MFVS (MFVSMean)
Beispiel
Beispiel zu MFVSMean
G
• Berechne stat. Verteilung von MG
G −1 • Konstruiere inversen Digraphen G −1
• Berechne stat. Verteilung von MG −1
82. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Der gemittelte MFVS (MFVSMean)
Beispiel
Beispiel zu MFVSMean
G G
• Berechne stat. Verteilung von MG
G −1 • Konstruiere inversen Digraphen G −1
• Berechne stat. Verteilung von MG −1
• Mittele stat. Verteilungen
83. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Der gemittelte MFVS (MFVSMean)
Beispiel
Beispiel zu MFVSMean
G
• Berechne stat. Verteilung von MG
G −1 • Konstruiere inversen Digraphen G −1
• Berechne stat. Verteilung von MG −1
• Mittele stat. Verteilungen
• Wähle Knoten
84. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MarkovSearch
Kernidee
Bestimme kleines FVS F des Digraphen G = (V , A)
85. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MarkovSearch
Kernidee
Bestimme kleines FVS F des Digraphen G = (V , A)
• Generiere Nachfolger-FVS F eines gegebenen FVSs F
86. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MarkovSearch
Kernidee
Bestimme kleines FVS F des Digraphen G = (V , A)
• Generiere Nachfolger-FVS F eines gegebenen FVSs F
• Steuere Generierung durch Schrittweite d
87. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MarkovSearch
Kernidee
Bestimme kleines FVS F des Digraphen G = (V , A)
• Generiere Nachfolger-FVS F eines gegebenen FVSs F
• Steuere Generierung durch Schrittweite d
• Schrittweite von F nach F : |F F |
88. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MarkovSearch
Kernidee
Bestimme kleines FVS F des Digraphen G = (V , A)
• Generiere Nachfolger-FVS F eines gegebenen FVSs F
• Steuere Generierung durch Schrittweite d
• Schrittweite von F nach F : |F F |
Konstruktion eines Nachfolger-FVSs F von F
89. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MarkovSearch
Kernidee
Bestimme kleines FVS F des Digraphen G = (V , A)
• Generiere Nachfolger-FVS F eines gegebenen FVSs F
• Steuere Generierung durch Schrittweite d
• Schrittweite von F nach F : |F F |
Konstruktion eines Nachfolger-FVSs F von F
• Eingabe: FVS F von Digraph G
90. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MarkovSearch
Kernidee
Bestimme kleines FVS F des Digraphen G = (V , A)
• Generiere Nachfolger-FVS F eines gegebenen FVSs F
• Steuere Generierung durch Schrittweite d
• Schrittweite von F nach F : |F F |
Konstruktion eines Nachfolger-FVSs F von F
• Eingabe: FVS F von Digraph G
• Wähle zufällige d -elementige Menge X ⊂ F
91. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MarkovSearch
Kernidee
Bestimme kleines FVS F des Digraphen G = (V , A)
• Generiere Nachfolger-FVS F eines gegebenen FVSs F
• Steuere Generierung durch Schrittweite d
• Schrittweite von F nach F : |F F |
Konstruktion eines Nachfolger-FVSs F von F
• Eingabe: FVS F von Digraph G
• Wähle zufällige d -elementige Menge X ⊂ F
• Setze F1 := F X
92. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MarkovSearch
Kernidee
Bestimme kleines FVS F des Digraphen G = (V , A)
• Generiere Nachfolger-FVS F eines gegebenen FVSs F
• Steuere Generierung durch Schrittweite d
• Schrittweite von F nach F : |F F |
Konstruktion eines Nachfolger-FVSs F von F
• Eingabe: FVS F von Digraph G
• Wähle zufällige d -elementige Menge X ⊂ F
• Setze F1 := F X
• Digraph G := G − F1 ist zyklisch
93. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MarkovSearch
Kernidee
Bestimme kleines FVS F des Digraphen G = (V , A)
• Generiere Nachfolger-FVS F eines gegebenen FVSs F
• Steuere Generierung durch Schrittweite d
• Schrittweite von F nach F : |F F |
Konstruktion eines Nachfolger-FVSs F von F
• Eingabe: FVS F von Digraph G
• Wähle zufällige d -elementige Menge X ⊂ F
• Setze F1 := F X
• Digraph G := G − F1 ist zyklisch
• Bestimme FVS F2 von G mittels MFVSMean
94. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MarkovSearch
Kernidee
Bestimme kleines FVS F des Digraphen G = (V , A)
• Generiere Nachfolger-FVS F eines gegebenen FVSs F
• Steuere Generierung durch Schrittweite d
• Schrittweite von F nach F : |F F |
Konstruktion eines Nachfolger-FVSs F von F
• Eingabe: FVS F von Digraph G
• Wähle zufällige d -elementige Menge X ⊂ F
• Setze F1 := F X
• Digraph G := G − F1 ist zyklisch
• Bestimme FVS F2 von G mittels MFVSMean
• Ausgabe: F := F1 ∪ F2
95. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MarkovSearch
Algorithmus
MarkovSearch Algorithmus
96. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MarkovSearch
Algorithmus
MarkovSearch Algorithmus
• Eingabe: Digraph G
97. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MarkovSearch
Algorithmus
MarkovSearch Algorithmus
• Eingabe: Digraph G
• Bestimme FVS F0 von G mittels MFVSMean
98. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MarkovSearch
Algorithmus
MarkovSearch Algorithmus
• Eingabe: Digraph G
• Bestimme FVS F0 von G mittels MFVSMean
• Füge F0 zu Prioritätswarteschlange Q hinzu
99. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MarkovSearch
Algorithmus
MarkovSearch Algorithmus
• Eingabe: Digraph G
• Bestimme FVS F0 von G mittels MFVSMean
• Füge F0 zu Prioritätswarteschlange Q hinzu
• Iteriere t mal:
• Extrahiere FVS F kleinster Kardinalität aus Q
• Generiere Nachfolger-FVSs F1 , . . . , Fk von F (Schrittweite d)
• Füge F1 , . . . , Fk zu Q hinzu
100. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MarkovSearch
Algorithmus
MarkovSearch Algorithmus
• Eingabe: Digraph G
• Bestimme FVS F0 von G mittels MFVSMean
• Füge F0 zu Prioritätswarteschlange Q hinzu
• Iteriere t mal:
• Extrahiere FVS F kleinster Kardinalität aus Q
• Generiere Nachfolger-FVSs F1 , . . . , Fk von F (Schrittweite d)
• Füge F1 , . . . , Fk zu Q hinzu
• Ausgabe: kleinstes generiertes FVS
101. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MarkovSearch
Algorithmus
MarkovSearch Algorithmus
• Eingabe: Digraph G
• Bestimme FVS F0 von G mittels MFVSMean
• Füge F0 zu Prioritätswarteschlange Q hinzu
• Iteriere t mal:
• Extrahiere FVS F kleinster Kardinalität aus Q
• Generiere Nachfolger-FVSs F1 , . . . , Fk von F (Schrittweite d)
• Füge F1 , . . . , Fk zu Q hinzu
• Ausgabe: kleinstes generiertes FVS
Parameter von MarkovSearch:
102. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MarkovSearch
Algorithmus
MarkovSearch Algorithmus
• Eingabe: Digraph G
• Bestimme FVS F0 von G mittels MFVSMean
• Füge F0 zu Prioritätswarteschlange Q hinzu
• Iteriere t mal:
• Extrahiere FVS F kleinster Kardinalität aus Q
• Generiere Nachfolger-FVSs F1 , . . . , Fk von F (Schrittweite d)
• Füge F1 , . . . , Fk zu Q hinzu
• Ausgabe: kleinstes generiertes FVS
Parameter von MarkovSearch:
• Anzahl der Iterationen t
103. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MarkovSearch
Algorithmus
MarkovSearch Algorithmus
• Eingabe: Digraph G
• Bestimme FVS F0 von G mittels MFVSMean
• Füge F0 zu Prioritätswarteschlange Q hinzu
• Iteriere t mal:
• Extrahiere FVS F kleinster Kardinalität aus Q
• Generiere Nachfolger-FVSs F1 , . . . , Fk von F (Schrittweite d)
• Füge F1 , . . . , Fk zu Q hinzu
• Ausgabe: kleinstes generiertes FVS
Parameter von MarkovSearch:
• Anzahl der Iterationen t
• Anzahl der Nachfolger-FVSs k
104. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MarkovSearch
Algorithmus
MarkovSearch Algorithmus
• Eingabe: Digraph G
• Bestimme FVS F0 von G mittels MFVSMean
• Füge F0 zu Prioritätswarteschlange Q hinzu
• Iteriere t mal:
• Extrahiere FVS F kleinster Kardinalität aus Q
• Generiere Nachfolger-FVSs F1 , . . . , Fk von F (Schrittweite d)
• Füge F1 , . . . , Fk zu Q hinzu
• Ausgabe: kleinstes generiertes FVS
Parameter von MarkovSearch:
• Anzahl der Iterationen t
• Anzahl der Nachfolger-FVSs k
• Schrittweite d
105. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MarkovSearch
Optimale Schrittweite
Was ist die optimale Schrittweite d ?
106. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MarkovSearch
Optimale Schrittweite
Was ist die optimale Schrittweite d ?
• Eindeutiger optimaler Wert existiert
107. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MarkovSearch
Optimale Schrittweite
Was ist die optimale Schrittweite d ?
• Eindeutiger optimaler Wert existiert
• Schwer zu quantifizieren
108. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MarkovSearch
Optimale Schrittweite
Was ist die optimale Schrittweite d ?
• Eindeutiger optimaler Wert existiert
• Schwer zu quantifizieren
• Hängt von der Eingabe-Instanz ab
109. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MarkovSearch
Variierende Schrittweite
185 100 Iterationen 100 Iterationen
500 Iterationen 462 500 Iterationen
184
461
FVS-Größe
FVS-Größe
183
460
182 459
181 458
180 457
0 30 60 90 120 150 0 50 100 150 200 250
Schrittweite Schrittweite
FVS-Größe in Abhängigkeit von FVS-Größe in Abhängigkeit von
Schrittweite d für 100 Zufallsdigraphen Schrittweite d für 100 Zufallsdigraphen
(p = 0.05) mit 300 Knoten. (p = 0.2) mit 500 Knoten.
110. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Markovsche FVS-Algorithmen
Implementierung und Laufzeit
111. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Markovsche FVS-Algorithmen
Implementierung und Laufzeit
• Jeder Knoten vom FVS F wird von Markov-Heuristik gewählt
112. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Markovsche FVS-Algorithmen
Implementierung und Laufzeit
• Jeder Knoten vom FVS F wird von Markov-Heuristik gewählt
• Dazu muss Eigenvektor π = (πi ) der Übergangsmatrix P
berechnet werden:
n
tπ · P = tπ mit πi = 1
i =1
113. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Markovsche FVS-Algorithmen
Implementierung und Laufzeit
• Jeder Knoten vom FVS F wird von Markov-Heuristik gewählt
• Dazu muss Eigenvektor π = (πi ) der Übergangsmatrix P
berechnet werden:
n
tπ · P = tπ mit πi = 1
i =1
Laufzeit mit direkter Methode: O(|V |2.376 |F |)
114. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Markovsche FVS-Algorithmen
Implementierung und Laufzeit
• Jeder Knoten vom FVS F wird von Markov-Heuristik gewählt
• Dazu muss Eigenvektor π = (πi ) der Übergangsmatrix P
berechnet werden:
n
tπ · P = tπ mit πi = 1
i =1
Laufzeit mit direkter Methode: O(|V |2.376 |F |)
Iterative Methode:
115. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Markovsche FVS-Algorithmen
Implementierung und Laufzeit
• Jeder Knoten vom FVS F wird von Markov-Heuristik gewählt
• Dazu muss Eigenvektor π = (πi ) der Übergangsmatrix P
berechnet werden:
n
tπ · P = tπ mit πi = 1
i =1
Laufzeit mit direkter Methode: O(|V |2.376 |F |)
Iterative Methode:
• Ist P irreduzibel und aperiodisch, so gilt:
limn→∞ P n = e t π, wobei e = t 1 ··· 1
116. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Markovsche FVS-Algorithmen
Implementierung und Laufzeit
• Jeder Knoten vom FVS F wird von Markov-Heuristik gewählt
• Dazu muss Eigenvektor π = (πi ) der Übergangsmatrix P
berechnet werden:
n
tπ · P = tπ mit πi = 1
i =1
Laufzeit mit direkter Methode: O(|V |2.376 |F |)
Iterative Methode:
• Ist P irreduzibel und aperiodisch, so gilt:
limn→∞ P n = e t π, wobei e = t 1 · · · 1
=⇒ limn→∞ t xP n = t π, für jeden Vektor x mit t xe = 1
117. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Markovsche FVS-Algorithmen
Implementierung und Laufzeit
• Jeder Knoten vom FVS F wird von Markov-Heuristik gewählt
• Dazu muss Eigenvektor π = (πi ) der Übergangsmatrix P
berechnet werden:
n
tπ · P = tπ mit πi = 1
i =1
Laufzeit mit direkter Methode: O(|V |2.376 |F |)
Iterative Methode:
• Ist P irreduzibel und aperiodisch, so gilt:
limn→∞ P n = e t π, wobei e = t 1 · · · 1
=⇒ limn→∞ t xP n = t π, für jeden Vektor x mit t xe = 1
• Bekannt: Für n > − log |λ| stimmen t xP n und t π auf ersten d
d
Stellen überein (λ subdominanter Eigenwert von P)
118. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Markovsche FVS-Algorithmen
Implementierung und Laufzeit
• Jeder Knoten vom FVS F wird von Markov-Heuristik gewählt
• Dazu muss Eigenvektor π = (πi ) der Übergangsmatrix P
berechnet werden:
n
tπ · P = tπ mit πi = 1
i =1
Laufzeit mit direkter Methode: O(|V |2.376 |F |)
Iterative Methode:
• Ist P irreduzibel und aperiodisch, so gilt:
limn→∞ P n = e t π, wobei e = t 1 · · · 1
=⇒ limn→∞ t xP n = t π, für jeden Vektor x mit t xe = 1
• Bekannt: Für n > − log |λ| stimmen t xP n und t π auf ersten d
d
Stellen überein (λ subdominanter Eigenwert von P)
Laufzeit mit iterativer Methode: O(|A||F | − ln |λ| )
d
119. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Markovsche FVS-Algorithmen
Implementierung und Laufzeit
• Jeder Knoten vom FVS F wird von Markov-Heuristik gewählt
• Dazu muss Eigenvektor π = (πi ) der Übergangsmatrix P
berechnet werden:
n
tπ · P = tπ mit πi = 1
i =1
Laufzeit mit direkter Methode: O(|V |2.376 |F |)
Iterative Methode:
• Rechengenauigkeit üblicherweise beschränkt
120. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Markovsche FVS-Algorithmen
Implementierung und Laufzeit
• Jeder Knoten vom FVS F wird von Markov-Heuristik gewählt
• Dazu muss Eigenvektor π = (πi ) der Übergangsmatrix P
berechnet werden:
n
tπ · P = tπ mit πi = 1
i =1
Laufzeit mit direkter Methode: O(|V |2.376 |F |)
Iterative Methode:
• Rechengenauigkeit üblicherweise beschränkt
• Stellenzahl d kann als konstant angenommen werden
121. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Markovsche FVS-Algorithmen
Implementierung und Laufzeit
• Jeder Knoten vom FVS F wird von Markov-Heuristik gewählt
• Dazu muss Eigenvektor π = (πi ) der Übergangsmatrix P
berechnet werden:
n
tπ · P = tπ mit πi = 1
i =1
Laufzeit mit direkter Methode: O(|V |2.376 |F |)
Iterative Methode:
• Rechengenauigkeit üblicherweise beschränkt
• Stellenzahl d kann als konstant angenommen werden
1
Laufzeit mit iterativer Methode: O(|A||F | − ln |λ| )
122. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Gliederung
1 Das FVS-Problem
2 Markovsche FVS-Algorithmen
3 Ergebnisse
123. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Betrachtete Algorithmen
125. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Betrachtete Algorithmen
MFVS: Speckenmeyers ursprünglicher Algorithmus
MFVSMean : Gemittelte Version von MFVS
126. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Betrachtete Algorithmen
MFVS: Speckenmeyers ursprünglicher Algorithmus
MFVSMean : Gemittelte Version von MFVS
MarkovSearch: Markovsche lokale Suchfunktion
• führt 100 Iterationen aus
• generiert jeweils 2 Nachfolger-FVSs
127. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Betrachtete Algorithmen
MFVS: Speckenmeyers ursprünglicher Algorithmus
MFVSMean : Gemittelte Version von MFVS
MarkovSearch: Markovsche lokale Suchfunktion
• führt 100 Iterationen aus
• generiert jeweils 2 Nachfolger-FVSs
Simple: Wählt Knoten v ∈ V des Graphen G = (V , A) mit
maximalem Produkt
d− (v ) · d+ (v )
v ∈N− (v ) v ∈N+ (v )
128. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Betrachtete Algorithmen
MFVS: Speckenmeyers ursprünglicher Algorithmus
MFVSMean : Gemittelte Version von MFVS
MarkovSearch: Markovsche lokale Suchfunktion
• führt 100 Iterationen aus
• generiert jeweils 2 Nachfolger-FVSs
Simple: Wählt Knoten v ∈ V des Graphen G = (V , A) mit
maximalem Produkt
d− (v ) · d+ (v )
v ∈N− (v ) v ∈N+ (v )
GRASP: Multistart-Algorithmus von Resende et al
• generiert 2048 FVSs
• wird derzeit als bester Algorithmus angesehen
129. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Deterministische Algorithmen
470
XXX MFVSMean 280 XXX MFVSMean
460
450
XXX MFVS 260 XXX MFVS
440 XXX Simple XXX Simple
240
430
220
420
410 200
400 180
390
160
380
370 140
360 120
0.05 0.10 0.15 0.20 3 5 7 9
FVS-Größe für 100 Zufallsdigraphen FVS-Größe für 100 reguläre Digraphen
mit 500 Knoten in Abhängigkeit von mit 500 Knoten in Abhängigkeit vom
Dichte p. Rang k.
130. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Randomisierte Algorithmem I
270
XXX MarkovSearch XXX MarkovSearch
260 300000
XXX GRASP XXX GRASP
250
250000
240
230 200000
220
150000
210
200 100000
190
50000
180
170 0
0.05 0.10 0.15 0.20 0.05 0.10 0.15 0.20
FVS-Größe für 100 Zufallsdigraphen Laufzeit in Sekunden.
mit 300 Knoten in Abhängigkeit von
Dichte p.
131. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Randomisierte Algorithmem II
240 XXX MarkovSearch 25000
XXX MarkovSearch
230
XXX GRASP XXX GRASP
220
20000
210
200
190 15000
180
170 10000
160
150
140 5000
130
120 0
4 6 8 10 4 6 8 10
FVS-Größe für 100 reguläre Digraphen Laufzeit in Sekunden.
mit 400 Knoten in Abhängigkeit vom
Rang k.
132. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MFVSMean vs. GRASP vs. MarkovSearch
133. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MFVSMean vs. GRASP vs. MarkovSearch
Resende Digraphen:
134. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MFVSMean vs. GRASP vs. MarkovSearch
Resende Digraphen:
• 40 Digraphen
135. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MFVSMean vs. GRASP vs. MarkovSearch
Resende Digraphen:
• 40 Digraphen
• verschiedene Größen (50 — 1000 Knoten)
136. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MFVSMean vs. GRASP vs. MarkovSearch
Resende Digraphen:
• 40 Digraphen
• verschiedene Größen (50 — 1000 Knoten)
• verschiedene Dichten
137. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MFVSMean vs. GRASP vs. MarkovSearch
Resende Digraphen:
• 40 Digraphen
• verschiedene Größen (50 — 1000 Knoten)
• verschiedene Dichten
Optimum MFVSMean GRASP MarkovSearch
FVS-Größe ≤ 6576 6964 6941 6749
Laufzeit (Sek.) 193 41626 733
138. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
MFVSMean vs. GRASP vs. MarkovSearch
Resende Digraphen:
• 40 Digraphen
• verschiedene Größen (50 — 1000 Knoten)
• verschiedene Dichten
Optimum MFVSMean GRASP MarkovSearch
FVS-Größe ≤ 6576 6964 6941 6749
Laufzeit (Sek.) 193 41626 733
Weitere Informationen: M. Lemaić, E. Speckenmeyer.
Markov-Chain-Based Heuristics for the Minimum Feedback
Vertex Set Problem,
zaik2010-596, http://www.zaik.uni-koeln.de, 2010
139. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Zusammenfassung
140. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Zusammenfassung
• Neue Markovsche Algorithmen: MFVSMean , MarkovSearch
141. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Zusammenfassung
• Neue Markovsche Algorithmen: MFVSMean , MarkovSearch
• erzielen gute Resultate
142. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Zusammenfassung
• Neue Markovsche Algorithmen: MFVSMean , MarkovSearch
• erzielen gute Resultate
• MFVSMean
• ist eine signifikante Verbesserung gegenüber MFVS
143. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Zusammenfassung
• Neue Markovsche Algorithmen: MFVSMean , MarkovSearch
• erzielen gute Resultate
• MFVSMean
• ist eine signifikante Verbesserung gegenüber MFVS
• übertrifft bekannte deterministische Algorithmen
144. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Zusammenfassung
• Neue Markovsche Algorithmen: MFVSMean , MarkovSearch
• erzielen gute Resultate
• MFVSMean
• ist eine signifikante Verbesserung gegenüber MFVS
• übertrifft bekannte deterministische Algorithmen
• nur marginal schlechter als GRASP
145. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Zusammenfassung
• Neue Markovsche Algorithmen: MFVSMean , MarkovSearch
• erzielen gute Resultate
• MFVSMean
• ist eine signifikante Verbesserung gegenüber MFVS
• übertrifft bekannte deterministische Algorithmen
• nur marginal schlechter als GRASP
• MarkovSearch
• übertrifft GRASP in puncto FVS-Größe als auch Laufzeit
146. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Zusammenfassung
• Neue Markovsche Algorithmen: MFVSMean , MarkovSearch
• erzielen gute Resultate
• MFVSMean
• ist eine signifikante Verbesserung gegenüber MFVS
• übertrifft bekannte deterministische Algorithmen
• nur marginal schlechter als GRASP
• MarkovSearch
• übertrifft GRASP in puncto FVS-Größe als auch Laufzeit
• derzeit bester Algorithmus für FVS-Problem
• Markovketten sehr gut geeignet für FVS-Problem
147. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse
Vielen Dank!