SlideShare ist ein Scribd-Unternehmen logo
1 von 147
Downloaden Sie, um offline zu lesen
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
Das FVS-Problem            Markovsche FVS-Algorithmen   Ergebnisse



Gliederung




     1   Das FVS-Problem
Das FVS-Problem               Markovsche FVS-Algorithmen   Ergebnisse



Gliederung




     1   Das FVS-Problem


     2   Markovsche FVS-Algorithmen
Das FVS-Problem               Markovsche FVS-Algorithmen   Ergebnisse



Gliederung




     1   Das FVS-Problem


     2   Markovsche FVS-Algorithmen


     3   Ergebnisse
Das FVS-Problem               Markovsche FVS-Algorithmen   Ergebnisse



Gliederung




     1   Das FVS-Problem


     2   Markovsche FVS-Algorithmen


     3   Ergebnisse
Das FVS-Problem    Markovsche FVS-Algorithmen   Ergebnisse


Notation
Inverser Digraph
Das FVS-Problem                Markovsche FVS-Algorithmen   Ergebnisse


Notation
Inverser Digraph

                   G




        • Sei G = (V , A) ein Digraph
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
Das FVS-Problem       Markovsche FVS-Algorithmen   Ergebnisse


Definitionen
Feedback-Vertex-Set




     Definition
Das FVS-Problem                Markovsche FVS-Algorithmen   Ergebnisse


Definitionen
Feedback-Vertex-Set




     Definition
     Sei G = (V , A) ein Digraph.
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
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 ,
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
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
Das FVS-Problem   Markovsche FVS-Algorithmen   Ergebnisse


Das FVS-Problem
Überblick
Das FVS-Problem               Markovsche FVS-Algorithmen   Ergebnisse


Das FVS-Problem
Überblick


     FVS-Problem
       Eingabe:   Digraph G = (V , A)
       Ausgabe:   Optimales FVS F
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]
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]
            • ...
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]
Das FVS-Problem                     Markovsche FVS-Algorithmen   Ergebnisse


Anwendung: Programmverifikation nach Floyd
Beispiel: Ganzzahlige Division mit Rest
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
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
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
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
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
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
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
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
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
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
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
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
Das FVS-Problem                  Markovsche FVS-Algorithmen   Ergebnisse


Das FVS-Problem
Heuristiken für die Knotenwahl
Das FVS-Problem                  Markovsche FVS-Algorithmen   Ergebnisse


Das FVS-Problem
Heuristiken für die Knotenwahl




     Heuristiken:
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
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
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
Das FVS-Problem               Markovsche FVS-Algorithmen   Ergebnisse



Gliederung




     1   Das FVS-Problem


     2   Markovsche FVS-Algorithmen


     3   Ergebnisse
Das FVS-Problem   Markovsche FVS-Algorithmen   Ergebnisse


Markovketten
Definitionen
Das FVS-Problem              Markovsche FVS-Algorithmen   Ergebnisse


Markovketten
Definitionen




        • Eine Markovkette
Das FVS-Problem                  Markovsche FVS-Algorithmen                      Ergebnisse


Markovketten
Definitionen




        • Eine Markovkette
             • ist ein Digraph M = (V , A)      mit     V = {v1 , . . . , vn }
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
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
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,
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
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
Das FVS-Problem                 Markovsche FVS-Algorithmen    Ergebnisse


Markovketten
Stationäre Verteilung



     M = (V , A) Markovkette mit V = {v1 , . . . , vn } und
     Übergangsmatrix P
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
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
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
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
Das FVS-Problem                 Markovsche FVS-Algorithmen               Ergebnisse



Speckenmeyers ursprünglicher Algorithmus (MFVS)

     Bestimme kleines FVS F von G = (V , A) mit V = {v1 , . . . , vn }
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]
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
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
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
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
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
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
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
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
Das FVS-Problem             Markovsche FVS-Algorithmen           Ergebnisse


Der gemittelte MFVS (MFVSMean)
Kernidee


     Versuche suboptimale Entscheidungen von MFVS zu vermeiden
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
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
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 . . .
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
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
Das FVS-Problem               Markovsche FVS-Algorithmen       Ergebnisse


Der gemittelte MFVS (MFVSMean)
Tie-Break


     Welchen Knoten wählen,
     wenn beide Heuristiken verschiedene Knoten vorschlagen?
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
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
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
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:
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
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, . . .
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
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
Das FVS-Problem             Markovsche FVS-Algorithmen   Ergebnisse


Der gemittelte MFVS (MFVSMean)
Beispiel



     Beispiel zu MFVSMean
Das FVS-Problem             Markovsche FVS-Algorithmen   Ergebnisse


Der gemittelte MFVS (MFVSMean)
Beispiel



     Beispiel zu MFVSMean

                     G
Das FVS-Problem             Markovsche FVS-Algorithmen           Ergebnisse


Der gemittelte MFVS (MFVSMean)
Beispiel



     Beispiel zu MFVSMean

                     G




                            • Berechne stat. Verteilung von MG
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
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
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
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
Das FVS-Problem              Markovsche FVS-Algorithmen   Ergebnisse


MarkovSearch
Kernidee



     Bestimme kleines FVS F des Digraphen G = (V , A)
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
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
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 |
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
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
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
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
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
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
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
Das FVS-Problem             Markovsche FVS-Algorithmen   Ergebnisse


MarkovSearch
Algorithmus


     MarkovSearch Algorithmus
Das FVS-Problem                Markovsche FVS-Algorithmen   Ergebnisse


MarkovSearch
Algorithmus


     MarkovSearch Algorithmus
        • Eingabe: Digraph G
Das FVS-Problem                Markovsche FVS-Algorithmen   Ergebnisse


MarkovSearch
Algorithmus


     MarkovSearch Algorithmus
        • Eingabe: Digraph G
        • Bestimme FVS F0 von G mittels MFVSMean
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
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
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
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:
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
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
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
Das FVS-Problem                 Markovsche FVS-Algorithmen   Ergebnisse


MarkovSearch
Optimale Schrittweite


     Was ist die optimale Schrittweite d ?
Das FVS-Problem                 Markovsche FVS-Algorithmen   Ergebnisse


MarkovSearch
Optimale Schrittweite


     Was ist die optimale Schrittweite d ?

        • Eindeutiger optimaler Wert existiert
Das FVS-Problem                 Markovsche FVS-Algorithmen   Ergebnisse


MarkovSearch
Optimale Schrittweite


     Was ist die optimale Schrittweite d ?

        • Eindeutiger optimaler Wert existiert
        • Schwer zu quantifizieren
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
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.
Das FVS-Problem                Markovsche FVS-Algorithmen   Ergebnisse


Markovsche FVS-Algorithmen
Implementierung und Laufzeit
Das FVS-Problem                Markovsche FVS-Algorithmen        Ergebnisse


Markovsche FVS-Algorithmen
Implementierung und Laufzeit


        • Jeder Knoten vom FVS F wird von Markov-Heuristik gewählt
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
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 |)
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:
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
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
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)
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
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
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
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 |λ| )
Das FVS-Problem               Markovsche FVS-Algorithmen   Ergebnisse



Gliederung




     1   Das FVS-Problem


     2   Markovsche FVS-Algorithmen


     3   Ergebnisse
Das FVS-Problem       Markovsche FVS-Algorithmen   Ergebnisse



Betrachtete Algorithmen
Das FVS-Problem                    Markovsche FVS-Algorithmen      Ergebnisse



Betrachtete Algorithmen


                  MFVS: Speckenmeyers ursprünglicher Algorithmus
Das FVS-Problem                    Markovsche FVS-Algorithmen      Ergebnisse



Betrachtete Algorithmen


                  MFVS: Speckenmeyers ursprünglicher Algorithmus
         MFVSMean : Gemittelte Version von MFVS
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
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 )
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
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.
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.
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.
Das FVS-Problem     Markovsche FVS-Algorithmen   Ergebnisse



MFVSMean vs. GRASP vs. MarkovSearch
Das FVS-Problem           Markovsche FVS-Algorithmen   Ergebnisse



MFVSMean vs. GRASP vs. MarkovSearch

     Resende Digraphen:
Das FVS-Problem              Markovsche FVS-Algorithmen   Ergebnisse



MFVSMean vs. GRASP vs. MarkovSearch

     Resende Digraphen:
            • 40 Digraphen
Das FVS-Problem                Markovsche FVS-Algorithmen   Ergebnisse



MFVSMean vs. GRASP vs. MarkovSearch

     Resende Digraphen:
            • 40 Digraphen
            • verschiedene Größen (50 — 1000 Knoten)
Das FVS-Problem                Markovsche FVS-Algorithmen   Ergebnisse



MFVSMean vs. GRASP vs. MarkovSearch

     Resende Digraphen:
            • 40 Digraphen
            • verschiedene Größen (50 — 1000 Knoten)
            • verschiedene Dichten
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
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
Das FVS-Problem   Markovsche FVS-Algorithmen   Ergebnisse



Zusammenfassung
Das FVS-Problem              Markovsche FVS-Algorithmen          Ergebnisse



Zusammenfassung



        • Neue Markovsche Algorithmen: MFVSMean , MarkovSearch
Das FVS-Problem              Markovsche FVS-Algorithmen          Ergebnisse



Zusammenfassung



        • Neue Markovsche Algorithmen: MFVSMean , MarkovSearch
            • erzielen gute Resultate
Das FVS-Problem                       Markovsche FVS-Algorithmen           Ergebnisse



Zusammenfassung



        • Neue Markovsche Algorithmen: MFVSMean , MarkovSearch
            • erzielen gute Resultate

                  • MFVSMean
                      • ist eine signifikante Verbesserung gegenüber MFVS
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
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
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
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
Das FVS-Problem   Markovsche FVS-Algorithmen   Ergebnisse




                  Vielen Dank!

Weitere ähnliche Inhalte

Empfohlen

Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 

Empfohlen (20)

Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
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
  • 124. Das FVS-Problem Markovsche FVS-Algorithmen Ergebnisse Betrachtete Algorithmen MFVS: Speckenmeyers ursprünglicher Algorithmus
  • 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!