1
Visualisierung von Graphen Hierarchische Zeichnungen 6. Vorlesung Sommersemester 2015 (basierend auf Folien von Marcus Krug, KIT)
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl fu ¨r Informatik I
·
Universit¨ at Wu ¨rzburg
2
Beispiel
E-Mail-Graph zwischen Einrichtungen der Fak. fu ¨r Informatik, KIT
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl fu ¨r Informatik I
·
Universit¨ at Wu ¨rzburg
3
Hierarchisches Zeichnen Problemstellung Gegeben: gerichteter Graph D = (V , A) Gesucht: Zeichnung von D , die Hierarchie m¨oglichst gut wiedergibt Desiderata Zuordnung der Knoten auf (wenige) horizontale Linien m¨ oglichst viele Kanten aufw¨artsgerichtet mo ¨glichst wenige Kantenkreuzungen Kanten m¨ oglichst vertikal, geradlinig und kurz Knoten gleichm¨aßig verteilt Kriterien widersprechen sich! Philipp Kindermann, Alexander Wolff
·
Lehrstuhl fu ¨r Informatik I
·
Universit¨ at Wu ¨rzburg
4
Klassische Vorgehensweise
Philipp Kindermann, Alexander Wolff
·
[Sugiyama, Tagawa, Toda ’81]
Lehrstuhl fu ¨r Informatik I
·
Universit¨ at Wu ¨rzburg
5-3
Schritt 1: Aufbrechen gerichteter Kreise
Vorgehen, anschaulich Finde minimale Menge A? von Kanten, die nicht aufw¨arts gezeichnet werden. Entferne Kanten in A? und fu ¨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 fu ¨r Informatik I
·
Universit¨ at Wu ¨rzburg
5-4
Schritt 1: Aufbrechen gerichteter Kreise
Vorgehen, anschaulich Finde minimale Menge A? von Kanten, die nicht aufw¨arts gezeichnet werden. Entferne Kanten in A? und fu ¨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 fu ¨r Informatik I
·
Universit¨ at Wu ¨rzburg
6
Greedy-Heuristik fu¨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¨atsgarantie: |A0 | ≥ |A|/2 Philipp Kindermann, Alexander Wolff
·
Lehrstuhl fu ¨r Informatik I
·
Universit¨ at Wu ¨rzburg
7
Verbesserte Greedy-Heuristik fu¨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¨ atsschlange durch Feld[0..n−1] Laufzeit: O (V + A) von Knotenlisten; fuhre Maximum mit ¨
Qualit¨atsgarantie: |A0 | ≥ |A|/2 + |V |/6
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl fu ¨r Informatik I
·
Universit¨ at Wu ¨rzburg
8
Schritt 2: Lagenzuordnung
Problemstellung Gegeben: azyklischer, gerichteter Graph D = (V , A) Gesucht: Abbildung y : V → {1, . . . , |V |}, so dass fu ¨r alle uv ∈ A gilt y (u ) < y (v ). Zielfunktionen: minimiere. . . Anzahl der Lagen, d.h. |y (V )| L¨ange der l¨angsten Kante, d.h. maxuv ∈A y (v ) − y (u ) Gesamtl¨ange der Kanten (d.h. Anzahl der Dummy-Knoten) Philipp Kindermann, Alexander Wolff
·
Lehrstuhl fu ¨r Informatik I
·
Universit¨ at Wu ¨rzburg
9
Algorithmus zur Minimierung der Lagenanzahl
fu ¨r jede Quelle q setze y (q ) := 1 fu ¨r jede Nichtquelle v setze y (v ) := max y (u ) | uv ∈ A + 1 Beob. y (v ) ist. . . L¨ange eines l¨angsten Wegs von einer Quelle zu v plus 1. . . . also optimal bezu ¨glich der Lagenanzahl! Frage: Berechnung in Linearzeit? Philipp Kindermann, Alexander Wolff
·
Lehrstuhl fu ¨r Informatik I
·
Universit¨ at Wu ¨rzburg
10
Linearzeit-Implementierung ComputeLayering(AcyclicDigraph D = (V , A)) y = new int[1..|V |] // alle == 0 foreach Quelle q ∈ V do fu ¨r jede Quelle q setze y (q) := 1 y (q ) ← 1 foreach Nichtquelle v ∈ V do fu ¨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 fu ¨r Informatik I
·
Universit¨ at Wu ¨rzburg
11
Unser Beispiel
Alles optimal – oder?
Zeichnungen k¨onnen seeehr breit werden :-( Philipp Kindermann, Alexander Wolff
·
Lehrstuhl fu ¨r Informatik I
·
Universit¨ at Wu ¨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¨ochstens B Elemente enth¨alt. ebenfalls! Problem: Precedence-Constrained Multi-Processor Scheduling Gegeben: n Auftr¨age mit Bearbeitungsdauer 1, B ident. Maschinen und partielle Ordnung < auf den Auftr¨agen Gesucht: Ablaufplan, der < beru ¨cksichtigt und minimale Gesamt-Bearbeitungsdauer hat. NP-schwer, (2 − 2/B )-Approx., keine (4/3 − ε)-Approx. Philipp Kindermann, Alexander Wolff
·
Lehrstuhl fu ¨r Informatik I
·
Universit¨ at Wu ¨rzburg
13
Ein Approximationsalgorithmus fu¨r PCMPS Eingabe: Pr¨azedenzgraph
(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:
Gu ¨te/Approximationsfaktor?
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl fu ¨r Informatik I
·
Universit¨ at Wu ¨rzburg
14
Algorithmus Auftr¨age sind in Liste L gespeichert (in beliebiger Reihenfolge, z.B. topologisch sortiert). Versuche zu jedem Zeitpunkt t = 1, 2, . . . so viele Auftr¨age zu bearbeiten wie momentan m¨oglich. Ein Auftrag in L ist verfu ¨gbar, falls seine Vorg¨anger komplett abgearbeitet sind. Solange es zum aktuellen Zeitpunkt noch freie Maschinen und verfu ¨gbare Auftr¨age gibt, l¨osche den ersten verfu ¨gbaren Auftrag aus L und ordne ihn einer freien Maschine zu.
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl fu ¨r Informatik I
·
Universit¨ at Wu ¨rzburg
15
Analyse fu¨r B = 2 Pr¨azedenzgraph 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 Gu ¨te sich mithilfe der unteren Schranke(n) messen l¨asst. 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 fu ¨r Informatik I
·
Universit¨ at Wu ¨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 fu ¨r 2 Lagen [Garey & Johnson ’83] kaum Ans¨atze, die echt u ¨ber mehrere Layer optimieren Philipp Kindermann, Alexander Wolff
·
Lehrstuhl fu ¨r Informatik I
·
Universit¨ at Wu ¨rzburg
17
Iterative Kreuzungsreduktion – Idee Fu ¨ge Dummy-Knoten fu ¨r Kanten der (vert.) L¨ange > 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¨angt nur von der Permutation der Knoten auf den benachbarten Lagen ab.
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl fu ¨r Informatik I
·
Universit¨ at Wu ¨rzburg
18
Iterative Kreuzungsreduktion – Algorithmus (1) w¨ahle zuf¨allige Permutation fu ¨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 fu ¨r Informatik I
·
Universit¨ at Wu ¨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 fu ¨r Informatik I
·
Universit¨ at Wu ¨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¨otigt wird Faktor-O ( n)-Approximation
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl fu ¨r Informatik I
¨ Ubung! ·
Universit¨ at Wu ¨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¨otigt wird Faktor-3-Approximation Beweis siehe [DETT]
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl fu ¨r Informatik I
·
Universit¨ at Wu ¨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¨otigt 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 fu ¨r Informatik I
·
Universit¨ at Wu ¨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 fu ¨r andere Heuristiken geeignet Schlechtes Beispiel? L2
L1 |
{z k
}
≈ k 2 /4 Philipp Kindermann, Alexander Wolff
≈ 2k ·
Lehrstuhl fu ¨r Informatik I
·
Universit¨ at Wu ¨rzburg
23
Ganzzahliges lineares Programm
[Ju ¨nger & Mutzel, ’97]
Konstante cij := Anzahl von Kreuzungen zwischen Kanten, die zu vi oder vj inzident sind, falls π2 (vi ) < π2 (vj ) Variable fu ¨r 1 ≤ i < j ≤ n2 := |L2 | 1 falls π2 (vi ) < π2 (vj ) xij = 0 sonst
vi
vj
Anzahl Kreuzungen fu ¨r feste Permutation π2 cross(π2 ) =
nX 2 −1
n2 X
(cij − cji )xij +
i =1 j =i +1
nX 2 −1
·
Lehrstuhl fu ¨r Informatik I
cji
i =1 j =i +1
{z
| Philipp Kindermann, Alexander Wolff
n2 X
konstant ·
}
Universit¨ at Wu ¨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
fu ¨r 1 ≤ i < j < k ≤ n2
d.h. wenn xij = 1 und xjk = 1, dann auch xik = 1 0 0 0 (Transitivit¨at) L¨ osung mit Branch-and-Cut bei wenigen Knoten pro Lage relativ schnell.
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl fu ¨r Informatik I
·
Universit¨ at Wu ¨rzburg
25
Unser Beispiel – iterativ
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl fu ¨r Informatik I
·
Universit¨ at Wu ¨rzburg
26
Schritt 4: Knotenpositionierung
Ziel:
geringe Abweichung der Kanten-Pfade von Geraden
Exakt:
Quadratisches Programm (QP)
Heuristik: iterativ Philipp Kindermann, Alexander Wolff
·
Lehrstuhl fu ¨r Informatik I
·
Universit¨ at Wu ¨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 fu ¨r Informatik I
·
Universit¨ at Wu ¨rzburg
28
Fortsetzung (QP) Zielfunktion: min
X
dev(pe )
e ∈E
Nebenbedingungen: fu ¨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 fu ¨r Informatik I
·
Universit¨ at Wu ¨rzburg
29
Iterative Heuristik berechne Initial-Layout fu ¨hre die folgenden Schritte so lange aus, bis Abbruchbedingung erfu ¨llt ist: (1) positioniere Knoten, (2) ziehe Kanten gerade, (3) kompaktifiziere Layout in x -Richtung.
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl fu ¨r Informatik I
·
Universit¨ at Wu ¨rzburg
30
Unser Beispiel
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl fu ¨r Informatik I
·
Universit¨ at Wu ¨rzburg
31
Schritt 5: Kanten zeichnen
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl fu ¨r Informatik I
·
Universit¨ at Wu ¨rzburg
32
Schritt 5 – anschaulich
Alle Abb. aus [Kaufmann und Wagner: Drawing Graphs]
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl fu ¨r Informatik I
·
Universit¨ at Wu ¨rzburg
33
Unser Beispiel
Philipp Kindermann, Alexander Wolff
·
Lehrstuhl fu ¨r Informatik I
·
Universit¨ at Wu ¨rzburg