Visualisierung von Graphen

1 Visualisierung von Graphen Hierarchische Zeichnungen 6. Vorlesung Sommersemester 2015 (basierend auf Folien von Marcus Krug, KIT) Philipp Kinderma...
12 downloads 3 Views 2MB Size
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