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
33
Embed
Algorithmen zur Visualisierung von Graphen Lagenlayouts I · INSTITUTE OF THEORETICAL INFORMATICS KARLSRUHE INSTITUTE OF TECHNOLOGY (KIT) Algorithmen zur Visualisierung von Graphen
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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
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