33
I NSTITUTE OF THEORETICAL I NFORMATICS KARLSRUHE I NSTITUTE OF TECHNOLOGY (KIT) Algorithmen zur Visualisierung von Graphen Lagenlayouts I Marcus Krug | WS 2011/12 KIT – Universit¨ at des Landes Baden-W ¨ urttemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Algorithmen zur Visualisierung von Graphen Lagenlayouts I · INSTITUTE OF THEORETICAL INFORMATICS KARLSRUHE INSTITUTE OF TECHNOLOGY (KIT) Algorithmen zur Visualisierung von Graphen

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

INSTITUTE OF THEORETICAL INFORMATICSKARLSRUHE INSTITUTE OF TECHNOLOGY (KIT)

Algorithmen zur Visualisierung von GraphenLagenlayouts IMarcus Krug | WS 2011/12

KIT – Universitat des Landes Baden-Wurttemberg undnationales Forschungszentrum in der Helmholtz-Gemeinschaft

www.kit.edu

E-Mail-Graph der Fakultat fur Informatik

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 2/10

E-Mail-Graph der Fakultat fur Informatik

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 2/10

LagenlayoutsProblemstellung

Gegeben: gerichteter Graph D = (V ,A)

Gesucht: Zeichnung von D, die Hierarchie moglichst gutwiedergibt

Desiderata

moglichst viele Kanten aufwartsgerichtetKanten moglichst geradlinig und kurzZuordnung der Knoten auf (wenige) horizontale Linienmoglichst wenige KantenkreuzungenKnoten gleichmaßig verteilt

! Kriterien widersprechen sich

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 3/10

LagenlayoutsProblemstellung

Gegeben: gerichteter Graph D = (V ,A)

Gesucht: Zeichnung von D, die Hierarchie moglichst gutwiedergibt

Desiderata

moglichst viele Kanten aufwartsgerichtetKanten moglichst geradlinig und kurzZuordnung der Knoten auf (wenige) horizontale Linienmoglichst wenige KantenkreuzungenKnoten gleichmaßig verteilt

! Kriterien widersprechen sich

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 3/10

LagenlayoutsProblemstellung

Gegeben: gerichteter Graph D = (V ,A)

Gesucht: Zeichnung von D, die Hierarchie moglichst gutwiedergibt

Desiderata

moglichst viele Kanten aufwartsgerichtetKanten moglichst geradlinig und kurzZuordnung der Knoten auf (wenige) horizontale Linienmoglichst wenige KantenkreuzungenKnoten gleichmaßig verteilt

! Kriterien widersprechen sich

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 3/10

Klassisches Vorgehen (Sugiyama)

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 4/10

Klassisches Vorgehen (Sugiyama)

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 4/10

Klassisches Vorgehen (Sugiyama)

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 4/10

Klassisches Vorgehen (Sugiyama)

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 4/10

Klassisches Vorgehen (Sugiyama)

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 4/10

Klassisches Vorgehen (Sugiyama)

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 4/10

1. Schritt: Behandlung von GerichtetenKreisen

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 5/10

Behandlung von Gerichteten Kreisen

Vorgehen

Finde maximalen azyklischen Subgraph durch Entfernenvon Kanten Af

fuge Inversen zu Kanten in Af ein

Problem MINIMUM FEEDBACK ARC SET (FAS):

Gegeben: gerichteter Graph D = (V ,A)

Finde minimale Menge Af ⊆ A, so dass D−Af azyklisch ist

FAS ist NP-schwer

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 6/10

Behandlung von Gerichteten Kreisen

Vorgehen

Finde maximalen azyklischen Subgraph durch Entfernenvon Kanten Af

fuge Inversen zu Kanten in Af ein

Problem MINIMUM FEEDBACK ARC SET (FAS):

Gegeben: gerichteter Graph D = (V ,A)

Finde minimale Menge Af ⊆ A, so dass D−Af azyklisch ist

FAS ist NP-schwer

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 6/10

Behandlung von Gerichteten Kreisen

Vorgehen

Finde maximalen azyklischen Subgraph durch Entfernenvon Kanten Af

fuge Inversen zu Kanten in Af ein

Problem MINIMUM FEEDBACK ARC SET (FAS):

Gegeben: gerichteter Graph D = (V ,A)

Finde minimale Menge Af ⊆ A, so dass D−Af azyklisch ist

FAS ist NP-schwer

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 6/10

Behandlung von Gerichteten Kreisen

Greedy-Heuristik zur Berechnung eines azyklischen GraphenD′ = (V ,A′)

(1) A′ := ∅(2) Betrachte Knoten in beliebiger Reihenfolge

fuge entweder eingehende oder ausgehende Kanten zu A′

hinzu (je nachdem welche Menge großer ist) und loscheKnoten

(3) Af := A \ A′

Laufzeit O(n + m)

A′ hat mindestens |A|/2 viele Kanten

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 7/10

Behandlung von Gerichteten Kreisen

Greedy-Heuristik zur Berechnung eines azyklischen GraphenD′ = (V ,A′)

(1) A′ := ∅(2) Betrachte Knoten in beliebiger Reihenfolge

fuge entweder eingehende oder ausgehende Kanten zu A′

hinzu (je nachdem welche Menge großer ist) und loscheKnoten

(3) Af := A \ A′

Laufzeit O(n + m)

A′ hat mindestens |A|/2 viele Kanten

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 7/10

Algorithmus 1: Greedy-Algorithmus (Eades, Lin & Smyth)1 A′ := ∅;

2 while V 6= ∅ do3 while in V existiert eine Senke v do4 A′ ← A′ ∪ N←(v)5 entferne v und N←(v): V ,n,msink

6 Entferne alle isolierten Knoten aus V : V ,n,miso

7 while in V existiert eine Quelle v do8 A′ ← A′ ∪ N→(v)9 entferne v und N→(v): V ,n,msource

10 if V 6= ∅ then11 sei v ∈ V mit |N→(v)| − |N←(v)| maximal;12 A′ ← A′ ∪ N→(v)13 entferne v und N→(v): V ,n,m=,<

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 8/10

Algorithmus 1: Greedy-Algorithmus (Eades, Lin & Smyth)1 A′ := ∅;

2 while V 6= ∅ do3 while in V existiert eine Senke v do4 A′ ← A′ ∪ N←(v)5 entferne v und N←(v): V ,n,msink

6 Entferne alle isolierten Knoten aus V : V ,n,miso

7 while in V existiert eine Quelle v do8 A′ ← A′ ∪ N→(v)9 entferne v und N→(v): V ,n,msource

10 if V 6= ∅ then11 sei v ∈ V mit |N→(v)| − |N←(v)| maximal;12 A′ ← A′ ∪ N→(v)13 entferne v und N→(v): V ,n,m=,<

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 8/10

Algorithmus 1: Greedy-Algorithmus (Eades, Lin & Smyth)1 A′ := ∅;

2 while V 6= ∅ do3 while in V existiert eine Senke v do4 A′ ← A′ ∪ N←(v)5 entferne v und N←(v): V ,n,msink

6 Entferne alle isolierten Knoten aus V : V ,n,miso

7 while in V existiert eine Quelle v do8 A′ ← A′ ∪ N→(v)9 entferne v und N→(v): V ,n,msource

10 if V 6= ∅ then11 sei v ∈ V mit |N→(v)| − |N←(v)| maximal;12 A′ ← A′ ∪ N→(v)13 entferne v und N→(v): V ,n,m=,<

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 8/10

Algorithmus 1: Greedy-Algorithmus (Eades, Lin & Smyth)1 A′ := ∅;

2 while V 6= ∅ do3 while in V existiert eine Senke v do4 A′ ← A′ ∪ N←(v)5 entferne v und N←(v): V ,n,msink

6 Entferne alle isolierten Knoten aus V : V ,n,miso

7 while in V existiert eine Quelle v do8 A′ ← A′ ∪ N→(v)9 entferne v und N→(v): V ,n,msource

10 if V 6= ∅ then11 sei v ∈ V mit |N→(v)| − |N←(v)| maximal;12 A′ ← A′ ∪ N→(v)13 entferne v und N→(v): V ,n,m=,<

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 8/10

Algorithmus 1: Greedy-Algorithmus (Eades, Lin & Smyth)1 A′ := ∅;

2 while V 6= ∅ do3 while in V existiert eine Senke v do4 A′ ← A′ ∪ N←(v)5 entferne v und N←(v): V ,n,msink

6 Entferne alle isolierten Knoten aus V : V ,n,miso

7 while in V existiert eine Quelle v do8 A′ ← A′ ∪ N→(v)9 entferne v und N→(v): V ,n,msource

10 if V 6= ∅ then11 sei v ∈ V mit |N→(v)| − |N←(v)| maximal;12 A′ ← A′ ∪ N→(v)13 entferne v und N→(v): V ,n,m=,<

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 8/10

Algorithmus 1: Greedy-Algorithmus (Eades, Lin & Smyth)1 A′ := ∅;

2 while V 6= ∅ do3 while in V existiert eine Senke v do4 A′ ← A′ ∪ N←(v)5 entferne v und N←(v): V ,n,msink

6 Entferne alle isolierten Knoten aus V : V ,n,miso

7 while in V existiert eine Quelle v do8 A′ ← A′ ∪ N→(v)9 entferne v und N→(v): V ,n,msource

10 if V 6= ∅ then11 sei v ∈ V mit |N→(v)| − |N←(v)| maximal;12 A′ ← A′ ∪ N→(v)13 entferne v und N→(v): V ,n,m=,<

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 8/10

Algorithmus 1: Greedy-Algorithmus (Eades, Lin & Smyth)1 A′ := ∅;

2 while V 6= ∅ do3 while in V existiert eine Senke v do4 A′ ← A′ ∪ N←(v)5 entferne v und N←(v): V ,n,msink

6 Entferne alle isolierten Knoten aus V : V ,n,miso

7 while in V existiert eine Quelle v do8 A′ ← A′ ∪ N→(v)9 entferne v und N→(v): V ,n,msource

10 if V 6= ∅ then11 sei v ∈ V mit |N→(v)| − |N←(v)| maximal;12 A′ ← A′ ∪ N→(v)13 entferne v und N→(v): V ,n,m=,<

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 8/10

Algorithmus 1: Greedy-Algorithmus (Eades, Lin & Smyth)1 A′ := ∅;

2 while V 6= ∅ do3 while in V existiert eine Senke v do4 A′ ← A′ ∪ N←(v)5 entferne v und N←(v): V ,n,msink

6 Entferne alle isolierten Knoten aus V : V ,n,miso

7 while in V existiert eine Quelle v do8 A′ ← A′ ∪ N→(v)9 entferne v und N→(v): V ,n,msource

10 if V 6= ∅ then11 sei v ∈ V mit |N→(v)| − |N←(v)| maximal;12 A′ ← A′ ∪ N→(v)13 entferne v und N→(v): V ,n,m=,<

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 8/10

Algorithmus 1: Greedy-Algorithmus (Eades, Lin & Smyth)1 A′ := ∅;

2 while V 6= ∅ do3 while in V existiert eine Senke v do4 A′ ← A′ ∪ N←(v)5 entferne v und N←(v): V ,n,msink

6 Entferne alle isolierten Knoten aus V : V ,n,miso

7 while in V existiert eine Quelle v do8 A′ ← A′ ∪ N→(v)9 entferne v und N→(v): V ,n,msource

10 if V 6= ∅ then11 sei v ∈ V mit |N→(v)| − |N←(v)| maximal;12 A′ ← A′ ∪ N→(v)13 entferne v und N→(v): V ,n,m=,<

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 8/10

Algorithmus 1: Greedy-Algorithmus (Eades, Lin & Smyth)1 A′ := ∅;

2 while V 6= ∅ do3 while in V existiert eine Senke v do4 A′ ← A′ ∪ N←(v)5 entferne v und N←(v): V ,n,msink

6 Entferne alle isolierten Knoten aus V : V ,n,miso

7 while in V existiert eine Quelle v do8 A′ ← A′ ∪ N→(v)9 entferne v und N→(v): V ,n,msource

10 if V 6= ∅ then11 sei v ∈ V mit |N→(v)| − |N←(v)| maximal;12 A′ ← A′ ∪ N→(v)13 entferne v und N→(v): V ,n,m=,<

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 8/10

Algorithmus 1: Greedy-Algorithmus (Eades, Lin & Smyth)1 A′ := ∅;

2 while V 6= ∅ do3 while in V existiert eine Senke v do4 A′ ← A′ ∪ N←(v)5 entferne v und N←(v): V ,n,msink

6 Entferne alle isolierten Knoten aus V : V ,n,miso

7 while in V existiert eine Quelle v do8 A′ ← A′ ∪ N→(v)9 entferne v und N→(v): V ,n,msource

10 if V 6= ∅ then11 sei v ∈ V mit |N→(v)| − |N←(v)| maximal;12 A′ ← A′ ∪ N→(v)13 entferne v und N→(v): V ,n,m=,<

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 8/10

Behandlung von Gerichteten Kreisen

Verbesserte Greedy-Heuristik von Eades et al.

Laufzeit O(n + m) Wie?A′ hat mindestens |A|/2 + |V |/6 viele Kanten

Weitere Methoden

randomisiert: Zufallige Ordnung + Greedy: erwartetmindestens (

12

+ Ω

(1√

∆(G)

))|E |

[Berger & Shor, ’90]

Exakt: via Linear-Ordering Polytope + Cutting-PlaneMethod [Grotschel et al., ’84]

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 9/10

Behandlung von Gerichteten Kreisen

Verbesserte Greedy-Heuristik von Eades et al.

Laufzeit O(n + m) Wie?A′ hat mindestens |A|/2 + |V |/6 viele Kanten

Weitere Methoden

randomisiert: Zufallige Ordnung + Greedy: erwartetmindestens (

12

+ Ω

(1√

∆(G)

))|E |

[Berger & Shor, ’90]

Exakt: via Linear-Ordering Polytope + Cutting-PlaneMethod [Grotschel et al., ’84]

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 9/10

E-Mail-Graph der Fakultat fur Informatik

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 10/10

E-Mail-Graph der Fakultat fur Informatik

Kreise brechen

Marcus Krug – Lagenlayouts WS 2011/12 10/10