Desen grafic stratificat
Desenul de grafic stratificat sau desenul de grafic ierarhic este o metodă de vizualizare a graficului în care vârfurile unui grafic direcționat sunt desenate în rânduri orizontale sau straturi cu marginile îndreptate predominant în jos [1] [2] [3] . Acesta este cunoscut sub numele de stilul Sugiyama de vizualizare grafică , după Kozo Sugiyama, care a dezvoltat pentru prima dată acest stil [4] .
O formă ideală de desen stratificat ar fi desenul plan în sus , în care toate marginile sunt orientate în aceeași direcție și nicio pereche de margini nu se intersectează. Cu toate acestea, graficele conțin adesea cicluri, iar problema minimizării numărului de muchii îndreptate în direcția opusă este NP-hard , la fel ca problema minimizării numărului de intersecții. Din acest motiv, sistemele de randare a graficelor stratificate utilizează de obicei o secvență de abordări euristice care reduc aceste tipuri de defecte și găsesc modelul cu cele mai puține defecte.
Algoritm de aspect
Construcția vizualizării strat cu strat a graficelor are loc în mai multe etape:
- Dacă graficul de intrare nu este încă un grafic aciclic direcționat , este definit un set de muchii a căror inversare face graficul aciclic. Găsirea celui mai mic set posibil de muchii este o problemă NP-completă de găsire a unui set de muchii de tăiere a ciclului , așa că algoritmul euristic lacom este adesea folosit aici în locul algoritmilor de optimizare exactă [1] [2] [3] [5] [ 6] [7] . Soluția exactă la această problemă poate fi formulată folosind programarea cu numere întregi [3] . Alternativ, dacă numărul de muchii înapoi este foarte mic, aceste muchii pot fi găsite folosind un algoritm rezolvabil cu parametri fix [8] .
- Vârfurile grafului aciclic direcționat obținut în primul pas sunt alocate straturilor, astfel încât fiecare arc să meargă de sus în jos. Scopul acestui pas este de a crea un număr mic de nivele, de a realiza un număr mic de muchii care trec printr-un număr mare de straturi și o alocare echilibrată a vârfurilor peste straturi [1] [2] [3] . De exemplu, conform teoremei lui Mirsky , distribuția vârfurilor pe straturi în funcție de calea cea mai lungă , începând de la vârful cel mai de sus, dă o distribuție cu un număr minim de straturi [1] [3] . Puteți utiliza algoritmul Coffman-Graham pentru a găsi o distribuție pe straturi cu o limită predefinită a numărului de vârfuri pe strat și pentru a minimiza aproximativ numărul de straturi [1] [2] [3] . Problema minimizării lățimii celui mai larg strat este NP-hard, dar poate fi rezolvată prin algoritmi de aproximare euristică sau ramificată [3] . Alternativ, problema minimizării numărului total de straturi acoperite de muchii (fără restricții privind numărul de vârfuri dintr-un strat) poate fi rezolvată folosind programarea liniară [9] . Procedurile de programare cu numere întregi , deși sunt mai costisitoare din punct de vedere al timpului de calcul, pot fi utilizate pentru a combina minimizarea marginilor cu o limită a numărului de vârfuri pe nivel [10] .
- Muchiile care se întind pe mai multe straturi sunt înlocuite cu căi cu vârfuri suplimentare, astfel încât după acest pas, fiecare arc din graficul extins conectează două vârfuri ale straturilor adiacente ale modelului [1] [2] .
- Ca o etapă suplimentară (opțională), un nivel de concentrare a marginilor (sau îmbinarea intersecției) între două niveluri de vârf existente poate fi utilizat pentru a reduce densitatea arcului prin înlocuirea subgrafelor bipartite complete cu stele prin aceste butuci [3] [11] [12] .
- Vârfurile din fiecare strat sunt rearanjate în încercarea de a reduce numărul de arce care le conectează la stratul anterior [1] [2] [3] . Problema găsirii numărului minim de încrucișări, sau a setului maxim de arce fără încrucișări, este NP-complet, chiar dacă încercăm să ordonăm câte un strat [13] [14] , deci din nou se recurge de obicei la euristică. metode, cum ar fi plasarea fiecărui vârf într-o poziție determinată de media sau de mediana pozițiilor vecinilor la nivelul anterior și apoi permutarea perechilor adiacente până când astfel de permutări reduc numărul de intersecții [1] [2] [9] [14] [15] . Alternativ, ordonarea vârfurilor într-un strat la un moment dat poate fi aleasă de un algoritm care este fix-parametric rezolvabil în ceea ce privește numărul de intersecții dintre strat și stratul anterior [3] [16] .
- Fiecărui vârf i se atribuie o coordonată în cadrul stratului, care este în concordanță cu pasul anterior [1] [2] . Acest pas presupune inserarea unor vârfuri suplimentare în linia dintre cei doi vecini (pentru a evita rupturi inutile ) și plasarea fiecărui vârf într-o poziție centrală față de vecini [3] . Lucrarea originală a lui Sugiyama a fost de a formula acest pas ca o problemă de programare pătratică . Metoda ulterioară a lui Brandes și Koepf rulează în timp liniar și garantează maximum două întreruperi pe arc [3] [17] .
- Arcele inversate la prima etapă a algoritmului sunt readuse în direcția lor inițială, vârfurile adăugate sunt îndepărtate din grafic, după care sunt desenate vârfurile și muchiile. Pentru a evita intersecția dintre vârfuri și arce, arce care se întind pe mai multe straturi pot fi desenate ca linii poligonale sau ca curbe polinomiale pe bucăți prin vârfuri suplimentare pe straturile interioare prin care trece arcul [1] [2] [9] .
Implementări
În forma sa cea mai simplă, algoritmii de redare a graficelor stratificate pot dura O( mn ) timp pe grafice cu n vârfuri și m muchii, deoarece pot fi create un număr mare de vârfuri suplimentare. Totuși, pentru unele variante ale algoritmului, este posibil să se simuleze efectul unor vârfuri suplimentare fără a le adăuga efectiv, ceea ce duce la implementarea algoritmului cu un timp de execuție aproape liniar [18] .
Limbajul de descriere „DOT” din pachetul Graphviz creează reprezentări stratificate [9] . Algoritmul de vizualizare a graficului stratificat este, de asemenea, inclus în biblioteca Microsoft automat graph layout [19] și în cadrul Tulip [ [20] .
Variante
Deși desenul se face de obicei cu vârfuri în rânduri și cu muchii mergând de sus în jos, algoritmii de redare a graficelor stratificate pot în schimb aranja vârfurile vertical în coloane și desena marginile de la stânga la dreapta [21] . Același cadru poate folosi aranjamentul radial, unde vârfurile sunt situate pe cercuri concentrice (centrate la un nod inițial) [3] [22] , precum și stratificarea graficului 3D [3] [23] .
La vizualizarea strat cu strat a graficelor cu un număr mare de arce lungi, haosul poate fi redus prin gruparea seturi de muchii în mănunchiuri și direcționarea lor prin același set de vârfuri suplimentare [24] . De asemenea, pentru a desena multe muchii care se intersectează între perechi de straturi succesive, muchiile din subgrafele bipartite maxime pot fi grupate în pachete confluente [25] .
Figurile în care vârfurile sunt aranjate în straturi pot fi construite prin algoritmi care nu urmează schema lui Sugiyama. De exemplu, se poate spune dacă un graf nedirecționat are o reprezentare cu cel mult k intersecții și h straturi în timp polinomial pentru valori fixe ale lui k și h , folosind faptul că graficele care au reprezentări de acest fel au o lățime de cale mărginită
[26]. ] .
Pentru desenarea strat-cu-strat a rețelelor conceptuale , se poate folosi o abordare hibridă, combinând abordarea lui Sugiyama cu metode aditive (în care fiecare vârf reprezintă o mulțime, iar poziția vârfului este suma vectorilor reprezentând elementele din mulțime). ). În această abordare hibridă, fazele de permutare a vârfurilor și de atribuire a coordonatelor ale algoritmului sunt înlocuite cu un singur pas în care fiecare poziție orizontală a fiecărui vârf este aleasă ca sumă a reprezentărilor elementului scalar pentru acel vârf [27] . Tehnicile de vizualizare a graficului stratificat au fost utilizate pentru a furniza locația inițială pentru algoritmii de vizualizare a graficului de putere [28] .
Note
- ↑ 1 2 3 4 5 6 7 8 9 10 Di Battista, Eades et al., 1998 , p. 265–302.
- ↑ 1 2 3 4 5 6 7 8 9 Bastert, Matuszewski, 2001 , p. 87–120.
- ↑ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Healy și Nikolov, 2014 , p. 409–453.
- ↑ Sugiyama, Tagawa, Toda, 1981 , p. 109–125.
- ↑ Berger și Shor 1990 , p. 236–243.
- ↑ Eades, Lin, Smyth, 1993 , p. 319–323.
- ↑ Eades, Lin, 1995 , p. 15–26.
- ↑ Chen, Liu, Lu et al., 2008 , p. unu.
- ↑ 1 2 3 4 Gansner, Koutsofios, North, Vo, 1993 , p. 214–230.
- ↑ Healy, Nikolov, 2002 , p. 16-30.
- ↑ Newbery, 1989 , p. 76–85.
- ↑ Eppstein, Goodrich, Meng, 2004 , p. 184–194.
- ↑ Eades, Whitesides, 1994 , p. 361–374.
- ↑ 1 2 Eades, Wormald, 1994 , p. 379–403.
- ↑ Mäkinen, 1990 , p. 175–181.
- ↑ Dujmovic, Fernau, Kaufmann, 2008 , p. 313–323.
- ↑ Brandes, Köpf, 2002 , p. 31–44.
- ↑ Eiglsperger, Siebenhaller, Kaufmann, 2005 , p. 155–166.
- ↑ Nachmanson, Robertson, Lee, 2008 , p. 389–394.
- ↑ Auber, 2004 .
- ↑ Baburin, 2002 , p. 366–367.
- ↑ Bachmaier, 2007 , p. 583–594.
- ↑ Hong, Nikolov, 2005 , p. 69–74.
- ↑ Pupyrev, Nachmanson, Kaufmann, 2011 , p. 329–340.
- ↑ Eppstein, Goodrich, Meng, 2007 , p. 439–452.
- ↑ Dujmović, Fellows, Kitching et al., 2008 , p. 267–292.
- ↑ Cole, 2001 , p. 47–53.
- ↑ Schwikowski, Uetz, Câmpuri, 2000 , p. 1257–126.
Literatură
- Giuseppe Di Battista, Peter Eades, Roberto Tamassia, Ioannis G. Tollis. Desene stratificate ale digrafelor // Desen grafic: algoritmi pentru vizualizarea graficelor. - Prentice Hall , 1998. - ISBN 978-0-13-301615-4 .
- Oliver Bastert, Christian Matuszewski. Desene stratificate ale digrafelor // Desenarea graficelor: metode și modele. - Springer-Verlag, 2001. - T. 2025. - ( Lecture Notes in Computer Science ). - ISBN 978-3-540-42062-0 . - doi : 10.1007/3-540-44969-8_5 .
- Patrick Healy, Nikola S. Nikolov. Desen grafic ierarhic // Handbook of Graph Drawing and Visualization / Roberto Tamassia. — CRC Press, 2014.
- Kozo Sugiyama, Shôjirô Tagawa, Mitsuhiko Toda. Metode pentru înțelegerea vizuală a structurilor ierarhice ale sistemului // Tranzacții IEEE pe sisteme, om și cibernetică . - 1981. - T. SMC-11 , nr. 2 . - doi : 10.1109/TSMC.1981.4308636 .
- Berger B., Shor P. Algoritmi de aproximare pentru problema subgrafului aciclic maxim // Proceedings of the 1st ACM-SIAM Symposium on Discrete Algorithms (SODA'90) . - 1990. - ISBN 9780898712513 .
- Eades P., Lin X., Smyth WF O euristică rapidă și eficientă pentru problema setării arcului de feedback // Litere de procesare a informațiilor. - 1993. - T. 47 , nr. 6 . - doi : 10.1016/0020-0190(93)90079-O .
- Eades P., Lin X. O nouă euristică pentru problema setării arcului de feedback // Australian Journal of Combinatorics. - 1995. - T. 12 .
- Jianer Chen, Yang Liu, Songjian Lu, Barry O'Sullivan, Igor Razgon. Un algoritm cu parametri fix pentru problema setului de vârfuri de feedback direcționat // Journal of the ACM. - 2008. - T. 55 , nr. 5 . - doi : 10.1145/1411509.1411511 .
- Gansner ER, Koutsofios E., North SC, Vo K.-P. O tehnică pentru desenarea graficelor direcționate // IEEE Transactions on Software Engineering. - 1993. - T. 19 , nr. 3 . - doi : 10.1109/32.221135 .
- Patrick Healy, Nikola S. Nikolov. How to layer a directioned acyclic graph // Graph Drawing: 9th International Symposium, GD 2001 Viena, Austria, 23–26 septembrie 2001, Revised Papers. - Springer-Verlag, 2002. - T. 2265. - (Lecture Notes in Computer Science). - ISBN 978-3-540-43309-5 . - doi : 10.1007/3-540-45848-4_2 .
- Peter Eades, Sue Whitesides. Desenarea graficelor în două straturi // Informatică teoretică. - 1994. - T. 131 , nr. 2 . - doi : 10.1016/0304-3975(94)90179-1 .
- Peter Eades, Nicholas C. Wormald. Încrucișări de margini în desenele graficelor bipartite // Algorithmica. - 1994. - T. 11 , nr. 4 . - doi : 10.1007/BF01187020 .
- Newbery FJ Edge concentration: a method for clustering directioned graphs // Proceedings of the 2nd International Workshop on Software Configuration Management (SCM '89), Princeton, New Jersey, USA . - Asociația pentru Mașini de Calcul, 1989. - ISBN 0-89791-334-5 . doi : 10.1145 / 72910.73350 .
- David Eppstein, Michael T. Goodrich, Jeremy Yu Meng. Desene stratificate confluente // Proc. 12 Int. Symp. Desen grafic (GD 2004) / Janos Pach. - Springer-Verlag, 2004. - T. 47. - (Lecture Notes in Computer Science). - doi : 10.1007/s00453-006-0159-8 .
- Mäkinen E. Experimente pentru desenarea graficelor ierarhice pe 2 niveluri // International Journal of Computer Mathematics. - 1990. - T. 36 , nr. 3–4 . - doi : 10.1080/00207169008803921 .
- Vida Dujmovic, Henning Fernau, Michael Kaufmann. Reparați algoritmi cu parametri fix pentru minimizarea încrucișării unilaterale revizuiți // Journal of Discrete Algorithms. - 2008. - T. 6 , nr. 2 . - doi : 10.1016/j.jda.2006.12.008 .
- Ulrik Brandes, Boris Köpf. Desen grafic (Viena, 2001). - Berlin: Springer, 2002. - T. 2265 . - ISBN 978-3-540-43309-5 . - doi : 10.1007/3-540-45848-4_3 .
- Markus Eiglsperger, Martin Siebenhaller, Michael Kaufmann. O implementare eficientă a algoritmului Sugiyama pentru desenarea grafică stratificată // Graph Drawing, 12th International Symposium, GD 2004, New York, NY, SUA, 29 septembrie-2 octombrie 2004, Revised Selected Papers. - Springer-Verlag, 2005. - T. 3383. - (Lecture Notes in Computer Science). — ISBN 978-3-540-24528-5 . - doi : 10.1007/978-3-540-31843-9_17 .
- Christian Bachmaier. O adaptare radială a cadrului Sugiyama pentru vizualizarea informațiilor ierarhice // IEEE Transactions on Visualization and Computer Graphics. - 2007. - T. 13 , nr. 3 . - doi : 10.1109/TVCG.2007.1000 . — PMID 17356223 .
- Lev Nachmanson, George Robertson, Bongshin Lee. Drawing Graphs with GLEE // Graph Drawing, 15th International Symposium, GD 2007, Sydney, Australia, 24–26 septembrie 2007, Revised Papers. - Springer-Verlag, 2008. - T. 4875. - (Lecture Notes in Computer Science). — ISBN 978-3-540-77536-2 . - doi : 10.1007/978-3-540-77537-9_38 .
- David Auber. Tulip – Un cadru imens de vizualizare a graficelor // Software de desenare grafică / Michael Jünger, Petra Mutzel. - Springer-Verlag, 2004. - ISBN 978-3-540-00881-1 .
- Danil E. Baburin. Unele modificări ale abordării Sugiyama // Graph Drawing, 10th International Symposium, GD 2002, Irvine, CA, SUA, 26–28 august 2002, Revised Papers. - Springer-Verlag, 2002. - T. 2528. - (Lecture Notes in Computer Science). - ISBN 978-3-540-00158-4 . - doi : 10.1007/3-540-36151-0_36 .
- Seok-Hee Hong, Nikola S. Nikolov. Desene în straturi ale graficelor direcționate în trei dimensiuni // Proceedings of the 2005 Asia-Pacific Symposium on Information Visualization (APVis '05) . - 2005. - V. 45. - (Conferinţe în Cercetare şi Practică în Tehnologia Informaţiei). — ISBN 9781920682279 .
- Sergey Pupyrev, Lev Nachmanson, Michael Kaufmann. Îmbunătățirea layout-urilor de grafice stratificate cu gruparea marginilor // Graph Drawing, 18th International Symposium, GD 2010, Konstanz, Germania, 21-24 septembrie 2010, Revised Selected Papers. - Springer-Verlag, 2011. - T. 6502. - (Lecture Notes in Computer Science). - ISBN 978-3-642-18468-0 . - doi : 10.1007/978-3-642-18469-7_30 .
- David Eppstein, Michael T. Goodrich, Jeremy Yu Meng. Desene stratificate confluente // Algorithmica. - 2007. - T. 47 , nr. 4 . - doi : 10.1007/s00453-006-0159-8 . - arXiv : cs/0507051 .
- Dujmović V., Fellows MR, Kitching M., Liotta G., McCartin C., Nishimura N., Ragde P., Rosamond F., Whitesides S. On the parameterized complexity of layered graph drawing // Algorithmica . - 2008. - T. 52 , nr. 2 . - doi : 10.1007/s00453-007-9151-1 .
- Richard Cole. Dispunerea automată a rețelelor de concept folosind diagrame stratificate și diagrame aditive // Australian Computer Science Communications. - 2001. - T. 23 , nr. 1 . — ISBN 0-7695-0963-0 . - doi : 10.1109/ACSC.2001.906622 .
- Benno Schwikowski, Peter Uetz, Stanley Fields. O rețea de interacțiuni proteină-proteină în drojdie // Nature Biotechnology. - 2000. - T. 18 , nr. 12 . - doi : 10.1038/82360 . — PMID 11101803 .