Visualisierung von Graphen - WueCampus2

Werbung
1
Visualisierung von Graphen
Hierarchische Zeichnungen
6. Vorlesung
Sommersemester 2015
(basierend auf Folien von Marcus Krug, KIT)
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
2
Beispiel
E-Mail-Graph zwischen Einrichtungen der Fak. für Informatik, KIT
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
3
Hierarchisches Zeichnen
Problemstellung
Gegeben: gerichteter Graph D = (V , A)
Gesucht: Zeichnung von D , die Hierarchie möglichst gut
wiedergibt
Desiderata
Zuordnung der Knoten auf (wenige) horizontale Linien
möglichst viele Kanten aufwärtsgerichtet
möglichst wenige Kantenkreuzungen
Kanten möglichst vertikal, geradlinig und kurz
Knoten gleichmäßig verteilt
Kriterien widersprechen sich!
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
4
Klassische Vorgehensweise
Philipp Kindermann, Alexander Wolff
·
[Sugiyama, Tagawa, Toda ’81]
Lehrstuhl für Informatik I
·
Universität Würzburg
5-3
Schritt 1: Aufbrechen gerichteter Kreise
Vorgehen, anschaulich
Finde minimale Menge A? von Kanten,
die nicht aufwärts gezeichnet werden.
Entferne Kanten in A? und füge dazu Inverse ein.
Problem Minimum Feedback Arc Set (FAS):
Gegeben: gerichteter Graph D = (V , A)
Gesucht: minimale Menge A? ⊆ A, so dass D − A? azykl.
. . . ist NP-schwer :-(
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
5-4
Schritt 1: Aufbrechen gerichteter Kreise
Vorgehen, anschaulich
Finde minimale Menge A? von Kanten,
die nicht aufwärts gezeichnet werden.
Entferne Kanten in A? und füge dazu Inverse ein.
Problem Minimum Feedback Arc Set (FAS):
Gegeben: gerichteter Graph D = (V , A) D − A? + A?r
Gesucht: minimale Menge A? ⊆ A, so dass D − A? azykl.
. . . ist NP-schwer :-(
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
6
Greedy-Heuristik für FAS
GreedyMakeAcyclic(Digraph D = (V , A))
A0 ← ∅
foreach v ∈ V do
if outdeg(v ) > indeg(v ) then
A0 ← A0 ∪ out(v )=
{v w | v w ∈ A}
else
A0 ← A0 ∪ in(v ) = {uv | uv ∈ A}
A ← A \ (out(v ) ∪ in(v ))
return (V , A0 )
Laufzeit: O (V + A)
Qualitätsgarantie: |A0 | ≥ |A|/2
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
7
Verbesserte Greedy-Heuristik für FAS
Betrachte in foreach-Schleife immer Quellen und Senken,
falls vorhanden, und sonst den Knoten v mit
|outdeg(v ) − indeg(v )| maximal.
[
]
Ersetze Prioritätsschlange durch Feld[0..n−1]
Laufzeit: O (V + A) von
Knotenlisten; führe Maximum mit
Qualitätsgarantie: |A0 | ≥ |A|/2 + |V |/6
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
8
Schritt 2: Lagenzuordnung
Problemstellung
Gegeben: azyklischer, gerichteter Graph D = (V , A)
Gesucht: Abbildung y : V → {1, . . . , |V |},
so dass für alle uv ∈ A gilt y (u ) < y (v ).
Zielfunktionen: minimiere. . .
Anzahl der Lagen, d.h. |y (V )|
Länge der längsten Kante, d.h. maxuv ∈A y (v ) − y (u )
Gesamtlänge der Kanten (d.h. Anzahl der Dummy-Knoten)
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
9
Algorithmus zur Minimierung der Lagenanzahl
für jede Quelle q
setze y (q ) := 1
für jede Nichtquelle v
setze y (v ) := max y (u ) | uv ∈ A + 1
Beob. y (v ) ist. . .
Länge eines längsten Wegs von einer Quelle zu v plus 1.
. . . also optimal bezüglich der Lagenanzahl!
Frage: Berechnung in Linearzeit?
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
10
Linearzeit-Implementierung
ComputeLayering(AcyclicDigraph D = (V , A))
y = new int[1..|V |] // alle == 0
foreach Quelle q ∈ V do
für jede Quelle q
setze y (q) := 1
y (q ) ← 1
foreach Nichtquelle v ∈ V do
für jede Nichtquelle v
setze y(v ) :=
ComputeYRec(D , v , y )
max y (u) | uv ∈ A + 1
return y
ComputeYRec(AcyclicDigraph D = (V , A), Vertex v , int[ ] y )
if y (v ) == 0 then
y (v ) ← max ComputeYRec(D , u , y ) | uv ∈ A + 1
return y (v )
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
11
Unser Beispiel
Alles optimal – oder?
Zeichnungen können seeehr breit werden :-(
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
12
Ziel: schmalere Lagenzuordnung
Problem: Lagenzuordnung bei vorgegebener Breite
Gegeben: azyklischer, ger. Graph D = (V , A), Breite B > 0
Gesucht: Partition der Knotenmenge in minimale Anzahl
von Lagen, so dass jeder Lage höchstens B Elemente enthält.
ebenfalls!
Problem: Precedence-Constrained Multi-Processor Scheduling
Gegeben: n Aufträge mit Bearbeitungsdauer 1, B ident. Maschinen und partielle Ordnung < auf den Aufträgen
Gesucht: Ablaufplan, der < berücksichtigt und minimale
Gesamt-Bearbeitungsdauer hat.
NP-schwer, (2 − 2/B )-Approx., keine (4/3 − ε)-Approx.
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
13
Ein Approximationsalgorithmus für PCMPS
Eingabe: Präzedenzgraph
(schon in Lagen eingeteilt, aber beliebig breit)
8
2
E
6
9
C
3
5
F
1
7
A
D
4
G
B
Anzahl der Maschinen sei B = 2.
Ausgabe: Ablaufplan
M1 1 2 4 5 6 8 A C E G
M2 – 3 – – 7 9 B D F –
t 1 2 3 4 5 6 7 8 9 10
Frage:
Güte/Approximationsfaktor?
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
14
Algorithmus
Aufträge sind in Liste L gespeichert
(in beliebiger Reihenfolge, z.B. topologisch sortiert).
Versuche zu jedem Zeitpunkt t = 1, 2, . . . so viele Aufträge
zu bearbeiten wie momentan möglich.
Ein Auftrag in L ist verfügbar,
falls seine Vorgänger komplett abgearbeitet sind.
Solange es zum aktuellen Zeitpunkt noch freie Maschinen
und verfügbare Aufträge gibt, lösche den ersten verfügbaren
Auftrag aus L und ordne ihn einer freien Maschine zu.
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
15
Analyse für B = 2
Präzedenzgraph G<
1
2
3
4
5
6
7
Ablaufplan
8
9
A
B
C
D
E
F
G
M1 1 2 4 5 6 8 A C E G
M2 – 3 – – 7 9 B D F –
t 1 2 3 4 5 6 7 8 9 10
Die Kunst der unteren Schranke“
”
OPT ≥ dn/2e und OPT ≥ ` := Anz. Lagen von G<
Ziel: Finde Algorithmus, dessen Güte sich mithilfe der unteren
Schranke(n) messen lässt.
Allg. ≤ (2 − 1/B ) · OPT
n+` Beh. ALG ≤
≈ dn/2e + `/2 ≤ 3/2 · OPT
2
Injektion der Pausen ( ) des Ablaufplans
(außer der letzten) in die Lagen von G<
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
16
Schritt 3: Kreuzungsreduktion
Problemstellung
Gegeben: Graph G , Lagenzuordnung y : V → {1, . . . , |V |}
Gesucht: (Um-)Ordnung der Knoten innerhalb der Lagen,
so dass die Anzahl der Kreuzungen minimiert wird.
Problem ist NP-schwer, sogar für 2 Lagen [Garey & Johnson ’83]
kaum Ansätze, die echt über mehrere Layer optimieren
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
17
Iterative Kreuzungsreduktion – Idee
Füge Dummy-Knoten für Kanten der (vert.) Länge > 1 ein.
Betrachte nacheinander jeweils benachbarte Lagen
(L1 , L2 ), (L2 , L3 ), . . . .
Minimiere Kreuzungen durch Permutieren von Li +1 bei
gegebener Ordnung von Li .
Beob. Kreuzungszahl hängt nur von der Permutation der Knoten auf den benachbarten Lagen ab.
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
18
Iterative Kreuzungsreduktion – Algorithmus
(1) wähle zufällige Permutation für unterste Lage L1
(2) betrachte iterativ jeweils benachbarte Lagen Li und Li +1
(3) minimiere Anzahl der Kreuzungen durch Umordnen der
Knoten in Li +1 (Li fest) Einseitige Kreuzungsminimierung
(4) wiederhole Schritte (2)–(3) in umgekehrter Richtung
ausgehend von oberster Lage Lh
(5) wiederhole Schritte (2)–(4) bis keine Verbesserung mehr
erzielt wird
(6) wiederhole Schritte (1)–(5) mit unterschiedlichen
Startpermutationen
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
19
Einseitige Kreuzungsminimierung
Problemstellung
Gegeben: bipartiter Graph G = (L1 ∪ L2 , E ),
Permutation π1 von L1
Gesucht: Permutation π2 von L2 , die die Anzahl der sich
kreuzenden Kantenpaare minimiert
Einseitige Kreuzungsminimierung ist NP-schwer.
Abb. aus [Kaufmann und Wagner: Drawing Graphs]
(c) Springer-Verlag
[Eades & Whitesides ’94]
Algorithmen
Schwerpunktheuristik
Medianheuristik
Greedy-Switch
ILP
...
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
20
Schwerpunktheuristik
[Sugiyama et al. ’81]
Intuition:
wenige Kreuzungen, wenn Knoten nah bei Nachbarn
Schwerpunkt von u ist Durchschnitt der x -Koordinaten der
Nachbarn von u in Lage L1 [x1 ≡ π1 ]
Schlechtes Bsp.?
u v
X
1
x2 (u ) := bary(u ) :=
x1 (v )
deg(u )
|{z}
v ∈N (u )
|
{z
k2 − 1
}
k −1
bei gleichen Werten werden Knoten um kleines δ versetzt
lineare Laufzeit
relativ gute Ergebnisse
optimal, falls
√ keine Kreuzung benötigt wird
Faktor-O ( n)-Approximation
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
Übung!
·
Universität Würzburg
21-3
Medianheuristik
[Eades & Wormald ’94]
{v1 , . . . , vk } := N (u ) mit π1 (v1 ) < π1 (v2 ) < · · · < π1 (vk )
(
0
falls N (u ) = ∅
x2 (u ) := med(u ) :=
π1 (vdk /2e ) sonst.
verschiebe Knoten u und v geeignet um δ, falls x2 (u ) = x2 (v )
lineare Laufzeit
relativ gute Ergebnisse
optimal, falls keine Kreuzung benötigt wird
Faktor-3-Approximation
Beweis siehe [DETT]
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
21-6
Medianheuristik
[Eades & Wormald ’94]
{v1 , . . . , vk } := N (u ) mit π1 (v1 ) < π1 (v2 ) < · · · < π1 (vk )
(
0
falls N (u ) = ∅
x2 (u ) := med(u ) :=
π1 (vdk /2e ) sonst.
verschiebe Knoten u und v geeignet um δ, falls x2 (u ) = x2 (v )
Schlechtes Beispiel?
lineare Laufzeit
u
v
relativ gute Ergebnisse
optimal, falls keine Kreuzung benötigt wird
|{z} | {z } | {z } |{z}
Faktor-3-Approximation
k
k
k +1 k +1
Beweis siehe [DETT]
2k(k + 1) + k 2 vs. (k + 1)2 #
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
22
Greedy-Switch-Heuristik
vertausche iterativ jeweils benachbarte Knoten,
falls dadurch weniger Kreuzungen induziert werden
Laufzeit O (L2 ) pro Iteration; maximal |L2 | Iterationen
als Post-Processing für andere Heuristiken geeignet
Schlechtes Beispiel?
L2
L1 |
{z
k
}
≈ k 2 /4
Philipp Kindermann, Alexander Wolff
≈ 2k
·
Lehrstuhl für Informatik I
·
Universität Würzburg
23
Ganzzahliges lineares Programm
[Jünger & Mutzel, ’97]
Konstante cij := Anzahl von Kreuzungen zwischen Kanten,
die zu vi oder vj inzident sind, falls π2 (vi ) < π2 (vj )
Variable für 1 ≤ i < j ≤ n2 := |L2 |
1 falls π2 (vi ) < π2 (vj )
xij =
0 sonst
vi
vj
Anzahl Kreuzungen für feste Permutation π2
cross(π2 ) =
nX
2 −1
n2
X
(cij − cji )xij +
i =1 j =i +1
nX
2 −1
·
Lehrstuhl für Informatik I
cji
i =1 j =i +1
{z
|
Philipp Kindermann, Alexander Wolff
n2
X
konstant
·
}
Universität Würzburg
24
Fortsetzung ILP
Minimiere Anzahl der Kreuzungen:
minimiere
nX
2 −1
n2
X
(cij − cji )xij
i =1 j =i +1
Nebenbedingungen:
0 ≤ xij + xjk − xik ≤ 1
für 1 ≤ i < j < k ≤ n2
d.h. wenn xij = 1 und xjk = 1, dann auch xik = 1
0
0
0
(Transitivität)
Lösung mit Branch-and-Cut bei wenigen Knoten pro Lage relativ schnell.
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
25
Unser Beispiel – iterativ
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
26
Schritt 4: Knotenpositionierung
Ziel:
geringe Abweichung der Kanten-Pfade von Geraden
Exakt:
Quadratisches Programm (QP)
Heuristik: iterativ
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
27
Quadratisches Programm
Betrachte Kanten-Pfad pe = (v1 , . . . , vk )
zu Kante e = v1 vk mit Dummy-Knoten v2 , . . . , vk −1
x -Koordinate von vi bei gerader Kante v1 vk
(bei Einheitslagenabstand):
vi
i −1
x (vi ) = x (v1 ) +
x (vk ) − x (v1 )
k −1
definiere Abweichung von gerader Kante
dev(pe ) :=
k −1 X
vk
v1
2
x (vi ) − x (vi )
i =2
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
28
Fortsetzung (QP)
Zielfunktion:
min
X
dev(pe )
e ∈E
Nebenbedingungen: für alle Knoten v und alle Knoten w
im gleichen Layer mit w rechts von v
x (w ) − x (v ) ≥ ρ(w , v )
ρ(w , v ) ist minimaler horiz. Abst. zw. Knoten w und v
Problem: QP und potentiell exponentielle Breite
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
29
Iterative Heuristik
berechne Initial-Layout
führe die folgenden Schritte so lange aus,
bis Abbruchbedingung erfüllt ist:
(1) positioniere Knoten,
(2) ziehe Kanten gerade,
(3) kompaktifiziere Layout in x -Richtung.
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
30
Unser Beispiel
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
31
Schritt 5: Kanten zeichnen
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
32
Schritt 5 – anschaulich
Alle Abb. aus [Kaufmann und Wagner: Drawing Graphs]
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
33
Unser Beispiel
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl für Informatik I
·
Universität Würzburg
Herunterladen