Візуалізація графів: відмінності між версіями

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
[неперевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
Немає опису редагування
Немає опису редагування
Рядок 23: Рядок 23:
* [[Кут дозволу]]це міра найгострішого кута у зображенні графа. Якщо граф має вершини з великим [[кут]]ом то він обов'язково матиме не великий кутовий дозвіл, але кутовий дозвіл може бути обмежений знизу функцією кута.<ref name="ps09">{{harvtxt|Pach|Sharir|2009}}.</ref>
* [[Кут дозволу]]це міра найгострішого кута у зображенні графа. Якщо граф має вершини з великим [[кут]]ом то він обов'язково матиме не великий кутовий дозвіл, але кутовий дозвіл може бути обмежений знизу функцією кута.<ref name="ps09">{{harvtxt|Pach|Sharir|2009}}.</ref>
* [[Кількість нахилів]] графа це мінімальна кількість різних нахилів, що потрібні для зображення прямими лініями ребер сегмента (з перетином). [[Кубічний граф]] зає кількіст нахилів не більше чотирьох, але граф з п'яти кутами може мати необмежену кількість нахилів; ще залишається не зрозумілим, чи обмежена кількість нахилів 4-кутного графа.<ref name="ps09"/>
* [[Кількість нахилів]] графа це мінімальна кількість різних нахилів, що потрібні для зображення прямими лініями ребер сегмента (з перетином). [[Кубічний граф]] зає кількіст нахилів не більше чотирьох, але граф з п'яти кутами може мати необмежену кількість нахилів; ще залишається не зрозумілим, чи обмежена кількість нахилів 4-кутного графа.<ref name="ps09"/>

[[Категорія:Теорія графів]]
==Методи компонування==
[[File:Social Network Analysis Visualization.png|thumb|right|Силова візуалізація мережі.<ref>Published in {{Cite journal | volume = 10| issue = 3| last = Grandjean| first = Martin| title = La connaissance est un réseau| journal =Les Cahiers du Numérique| accessdate = 2014-10-15| date = 2014| pages = 37–54| url = http://www.cairn.info/resume.php?ID_ARTICLE=LCN_103_0037| doi=10.3166/lcn.10.3.37-54}}</ref>]]Існує багато стратегій компонуання графів:
*У [[Система силового компонування|системі силового компонування]], программи зображення графів змінюють початкове розміщення вершин шляхом безперервного переміщення вершин відповідно до системи сил, заснованої на фізичних метафорах, пов'язаних з системами [[Пружина|пружин]] або [[Молекулярна механіка| молекулярної механіки]]. Зазвичай, ці системи поєднують в собі сили тяжіння між сусідніми вершинами з силами відштовхування між усіма парами вершин, щоб знайти макет, в якому довжини сторін малі в той час як вершини добре розділені. Ці системи можуть виконуати [[метод найшвидшого спуску]] на основі мінімізації з [[ Функція енергії|функції енергії]], або ж вони можуть перевести свої сили безпосередньо в швидкості або прискорення для рухомих вершин.<ref>{{harvtxt|Di Battista|Eades|Tamassia|Tollis|1994}}, Section 2.7, "The Force-Directed Approach", pp. 29–30, and Chapter 10, "Force-Directed Methods", pp. 303–326.</ref>
*Метод [[Спектральний макет|спектрального макету]] використовує [[Власний вектор|власні вектори]] [[Матриця (математика)|матриці]] такі як [[Дискретний оператор Лапласа|Лапласів]] отриманного з [[Матриця суміжності|матриці суміжності]] графа.<ref>{{harvtxt|Beckman|1994}}; {{harvtxt|Koren|2005}}.</ref>
*Ортогональні методи компонування, що дозволяють ребрам графа йти горизонтально або вертикально, паралельно осям координат макета. Ці методи були спочатку розроблені для [[Надвеликі інтегровані схеми|НВІС]], [[Друкована плата|ДП ] ] і проблем компонування, але вони також були пристосовані до зображення графів.
Вони зазвичай включають багатофазний підхід, в якому введення графа вирівнюється шляхом заміни точок перетину вершинами, знаходиться топологічне вкладення планарізованного графа, орієнтація сторін вибирається так, щоб звести до мінімуму вигини, вершини розташовуються послідовно з цими орієнтаціями, і, нарешті, етап ущільнення макету зменшує площу малюнка.<ref>{{harvtxt|Di Battista|Eades|Tamassia|Tollis|1994}}, Chapter 5, "Flow and Orthogonal Drawings", pp. 137–170; {{harv|Eiglsperger|Fekete|Klau|2001}}.</ref>
*Алгоритми макету дерева показують корінь [[Структура дерева|дерева]]- як формацію, що підходить для [[дерева ( теорії графів ) | дерева ] ] . Часто , в техніці під назвою " Повітряна куля макета " , нащадки кожного вузла в дереві намальовані на окружності навколо вузла , з радіусами цих кіл спадної на більш низьких рівнях в дереві так , щоб ці кола не перетинаються. Зазвичай, у техніці, що називається "Кульовий макет", нащадок кожного вузла у дереві малюється на колі, що оточує вузол, із радіусом цих кіл, спадаючими на нижчих рівнях дерева так, щоб ці кола не накладалися одне на одного.<ref>{{harvtxt|Herman|Melançon|Marshall|2000}}, Section 2.2, "Traditional Layout – An Overview".</ref>
*Методи [[Багаторівневе зображення графу|багаторівневого зображення графу]] ( часто звані зображення у стилі Сугияма ) найкраще підходять для [[Орієнтований ациклічний граф|орієнтованного ациклічного графу]] або графів, близьких до ациклічних, таких як графи залежностей між модулями або функціями в програмній системі. У цих методах, вузли графа розташовані на горизонтальних шарах з використанням методів, таких як [[Алгоритм Коффмана-Грекхема]], таким чином, що більшість ребер йдуть вниз від одного шару до іншого; після цього кроку, вузли в межах кожного шару виконані з метою мінімізації перетинів.<ref>{{harvtxt|Sugiyama|Tagawa|Toda|1981}}; {{harvtxt|Bastert|Matuszewski|2001}}; {{harvtxt|Di Battista|Eades|Tamassia|Tollis|1994}}, Chapter 9, "Layered Drawings of Digraphs", pp. 265–302.</ref>
[[File:Goldner-Harary-linear.svg|thumb|Arc diagram]]
*[[Дугова діаграмма]], це стиль компонування, що веде свій шлях з 1960-х років,<ref>{{harvtxt|Saaty|1964}}.</ref> розташуємо вершини в одну лінію; сторони можуть бути зображені як півкола над і під лінією, або криві, що з'єднаних з декількох півкіл.
*У [[Кругова діаграмма|круговій діаграммі]] вершини обережно розташовані по колу, з метою зменшення перетинів та розташування сусідніх вершин якомога ближче одне до одного. чторони можуть бути зображені як хорди кола чи його арки зсердини чи зовні. Іноді декілька кіл можуть бути використані.<ref>{{harvtxt|Doğrusöz|Madden|Madden|1997}}.</ref>
*У [[Макет переважання|макеті переважання]] вершини записуються таким чином, що кожна вершина вгорі, зправа, або і так і так від іншої, якщо і тільки якщо вона [[Досяжність|досяжна]] з цієї вершини. Таким чином, стиль розташування робить відношення досяжності графа візуально очевидним.<ref>{{harvtxt|Di Battista|Eades|Tamassia|Tollis|1994}}, Section 4.7, "Dominance Drawings", pp. 112–127.</ref>

==Додатки-особливі зображення графів==
Graphs and graph drawings arising in other areas of application include
* [[Sociogram]]s, drawings of a [[social network]], as often offered by [[social network analysis software]]<ref>{{harvtxt|Scott|2000}}; {{harvtxt|Brandes|Freeman|Wagner|2014}}.</ref>
* [[Hasse diagram]]s, a type of graph drawing specialized to [[partial order]]s<ref>{{harvtxt|Di Battista|Eades|Tamassia|Tollis|1994}}, pp. 15-16, and Chapter 6, "Flow and Upward Planarity", pp. 171–214; {{harvtxt|Freese|2004}}.</ref>
* [[Dessin d'enfant]]s, a type of graph drawing used in [[algebraic geometry]]{{sfnp|Zapponi|2003}}
* [[State diagram]]s, graphical representations of [[finite state machine]]s{{sfnp|Anderson|Head|2006}}
* [[Computer network diagram]]s, depictions of the nodes and connections in a [[computer network]]{{sfnp|Di Battista|Rimondini|2014}}
* [[Flow chart]]s, drawings in which the nodes represent the steps of an [[algorithm]] and the edges represent [[control flow]] between steps.
* [[Data flow diagram]]s, drawings in which the nodes represent the components of an [[information system]] and the edges represent the movement of information from one component to another.
* [[Bioinformatics]] including [[phylogenetic tree]]s, [[protein-protein interaction]] networks, and [[metabolic pathway]]s.{{sfnp|Bachmaier|Brandes|Schreiber|2014}}

In addition, the [[Placement (EDA)|placement]] and [[Routing (electronic design automation)|routing]] steps of [[electronic design automation]] (EDA) are similar in many ways to graph drawing, as is the problem of [[greedy embedding]] in [[distributed computing]], and the graph drawing literature includes several results borrowed from the EDA literature. However, these problems also differ in several important ways: for instance, in EDA, area minimization and signal length are more important than aesthetics, and the routing problem in EDA may have more than two terminals per net while the analogous problem in graph drawing generally only involves pairs of vertices for each edge.

==Програмне забезпечення==
Software, systems, and providers of systems for drawing graphs include:
<!-- DO ''not'' INCLUDE AN ENTRY HERE UNLESS IT ALREADY HAS A BLUE-LINKED ARTICLE -->
* [[BioFabric]],<ref name="Longabaugh 2012"/> open-source software from the [http://www.systemsbiology.org/ Institute of Systems Biology] for visualizing large networks by drawing nodes as horizontal lines.
* [[Cytoscape]], open-source software for visualizing molecular interaction networks
* [[Gephi]], open-source network analysis and visualization software
* [[Graphviz]], an open-source graph drawing system from [[AT&T Corporation]]<ref>"Graphviz and Dynagraph – Static and Dynamic Graph Drawing Tools", by John Ellson, Emden R. Gansner, Eleftherios Koutsofios, Stephen C. North, and Gordon Woodhull, in {{harvtxt| Jünger|Mutzel|2004}}.</ref>
* [[Mathematica]], a general purpose computation tool that includes 2D and 3D graph visualization and graph analysis tools.<ref>[http://reference.wolfram.com/mathematica/ref/GraphPlot.html GraphPlot] Mathematica documentation</ref><ref>[http://reference.wolfram.com/mathematica/tutorial/GraphDrawingIntroduction.html Graph drawing tutorial]</ref>
* [[Microsoft Automatic Graph Layout]], a .NET library (formerly called GLEE) for laying out graphs<ref>{{harvtxt|Nachmanson|Robertson|Lee|2008}}.</ref>
* [[Tom Sawyer Software]]<ref>{{harvtxt|Madden|Madden|Powers|Himsolt|1996}}.</ref> Tom Sawyer Perspectives is graphics-based software for building enterprise-class graph and data visualization and analysis applications. It is a Software Development Kit (SDK) with a graphics-based design and preview environment.
* [[Tulip (software)]],<ref>"Tulip – A Huge Graph Visualization Framework", by David Auber, in {{harvtxt| Jünger|Mutzel|2004}}.</ref> an open source data visualization tool
* [[yEd]], a graph editor with graph layout functionality<ref>"yFiles – Visualization and Automatic Layout of Graphs", by Roland Wiese, Markus Eiglsperger, and Michael Kaufmann, in {{harvtxt| Jünger|Mutzel|2004}}.</ref>
* [[PGF/TikZ]] 3.0 with the <code>graphdrawing</code> package (requires [[LuaTeX]]).<ref>{{harvtxt|Tantau|2013}}; see also the older [http://www.tcs.uni-luebeck.de/downloads/mitarbeiter/tantau/2012-gd-presentation.pdf GD 2012 presentation]</ref>

==Посилання==
;Footnotes
{{reflist|colwidth=30em}}

;General references
{{refbegin|colwidth=30em}}
*{{citation
| last1 = Di Battista | first1 = Giuseppe
| last2 = Eades | first2 = Peter | author2-link = Peter Eades
| last3 = Tamassia | first3 = Roberto | author3-link = Roberto Tamassia
| last4 = Tollis | first4 = Ioannis G.
| journal = [[Computational Geometry (journal)|Computational Geometry: Theory and Applications]]
| pages = 235–282
| title = Algorithms for Drawing Graphs: an Annotated Bibliography
| url = http://www.cs.brown.edu/people/rt/gd.html
| volume = 4
| year = 1994 | doi=10.1016/0925-7721(94)00014-x}}.
*{{citation
| last1 = Di Battista | first1 = Giuseppe
| last2 = Eades | first2 = Peter | author2-link = Peter Eades
| last3 = Tamassia | first3 = Roberto | author3-link = Roberto Tamassia
| last4 = Tollis | first4 = Ioannis G.
| isbn = 978-0-13-301615-4
| publisher = [[Prentice Hall]]
| title = Graph Drawing: Algorithms for the Visualization of Graphs
| year = 1998}}.
*{{citation
| doi = 10.1109/2945.841119
| last1 = Herman | first1 = Ivan
| last2 = Melançon | first2 = Guy
| last3 = Marshall | first3 = M. Scott
| journal = IEEE Transactions on Visualization and Computer Graphics
| pages = 24–43
| title = Graph Visualization and Navigation in Information Visualization: A Survey
| issue = 1
| url = http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.28.8892
| volume = 6
| year = 2000}}.
*{{citation
| last1 = Jünger | first1 = Michael
| last2 = Mutzel | first2 = Petra | author2-link = Petra Mutzel
| isbn = 978-3-540-00881-1
| publisher = Springer-Verlag
| title = Graph Drawing Software
| year = 2004}}.
*{{citation|title=Drawing Graphs: Methods and Models|editor1-first=Michael|editor1-last=Kaufmann|editor2-first=Dorothea|editor2-last=Wagner|editor2-link=Dorothea Wagner|publisher=Springer-Verlag|series=[[Lecture Notes in Computer Science]]|volume=2025|year=2001|doi=10.1007/3-540-44969-8}}.
*{{citation|editor-first=Roberto|editor-last=Tamassia|editor-link=Roberto Tamassia|title=Handbook of Graph Drawing and Visualization|publisher=CRC Press|url=http://cs.brown.edu/~rt/gdhandbook/|year=2014}}.
{{refend}}

;Specialized subtopics
{{refbegin|colwidth=30em}}
*{{citation|title=Automata Theory with Modern Applications|first1=James Andrew|last1=Anderson|first2=Thomas J.|last2=Head|publisher=Cambridge University Press|year=2006|isbn=978-0-521-84887-9|pages=38–41|url=http://books.google.com/books?id=ikS8BLdLDxIC&pg=PA38}}.
*{{citation|first1=Christian|last1=Bachmaier|first2=Ulrik|last2=Brandes|first3=Falk|last3=Schreiber|contribution=Biological Networks|pages=621–651|editor-first=Roberto|editor-last=Tamassia|editor-link=Roberto Tamassia|title=Handbook of Graph Drawing and Visualization|publisher=CRC Press|year=2014}}.
*{{citation|contribution=Layered drawings of digraphs|first1=Oliver|last1=Bastert|first2=Christian|last2=Matuszewski|title=Drawing Graphs: Methods and Models|editor1-first=Michael|editor1-last=Kaufmann|editor2-first=Dorothea|editor2-last=Wagner|editor2-link=Dorothea Wagner|publisher=Springer-Verlag|series=Lecture Notes in Computer Science|volume=2025|year=2001|pages=87–120|doi=10.1007/3-540-44969-8_5}}.
*{{citation
| last = Beckman | first = Brian
| publisher = Microsoft Research
| series = Tech. Report MSR-TR-94-04
| title = Theory of Spectral Graph Layout
| url = http://research.microsoft.com/apps/pubs/default.aspx?id=69611
| year = 1994}}.
*{{citation|first1=Ulrik|last1=Brandes|first2=Linton C.|last2=Freeman|first3=Dorothea|last3=Wagner|author3-link=Dorothea Wagner|contribution=Social Networks|pages=805–839|editor-first=Roberto|editor-last=Tamassia|editor-link=Roberto Tamassia|title=Handbook of Graph Drawing and Visualization|publisher=CRC Press|year=2014}}.
*{{citation|first1=Giuseppe|last1=Di Battista|first2=Massimo|last2=Rimondini|contribution=Computer Networks|pages=763–803|editor-first=Roberto|editor-last=Tamassia|editor-link=Roberto Tamassia|title=Handbook of Graph Drawing and Visualization|publisher=CRC Press|year=2014}}.
*{{citation
| last1 = Doğrusöz | first1 = Uğur
| last2 = Madden | first2 = Brendan
| last3 = Madden | first3 = Patrick
| editor-last = North | editor-first = Stephen
| contribution = Circular layout in the Graph Layout toolkit
| doi = 10.1007/3-540-62495-3_40
| pages = 92–100
| publisher = Springer-Verlag
| series = Lecture Notes in Computer Science
| title = [[International Symposium on Graph Drawing|Symposium on Graph Drawing, GD '96 Berkeley, California, USA, September 18–20, 1996, Proceedings]]
| volume = 1190
| year = 1997}}.
*{{citation
| last1 = Eiglsperger | first1 = Markus
| last2 = Fekete | first2 = Sándor
| last3 = Klau | first3 = Gunnar
| contribution = Orthogonal graph drawing
| doi = 10.1007/3-540-44969-8_6
| editor1-last = Kaufmann | editor1-first = Michael
| editor2-last = Wagner | editor2-first = Dorothea | editor2-link = Dorothea Wagner
| pages = 121–171
| publisher = Springer Berlin / Heidelberg
| series = Lecture Notes in Computer Science
| title = Drawing Graphs
| volume = 2025
| year = 2001}}.
*{{citation
| last = Freese | first = Ralph
| editor-last = Eklund | editor-first = Peter
| contribution = Automated lattice drawing
| doi = 10.1007/978-3-540-24651-0_12
| pages = 589–590
| publisher = Springer-Verlag
| series = Lecture Notes in Computer Science
| title = Concept Lattices: Second International Conference on Formal Concept Analysis, ICFCA 2004, Sydney, Australia, February 23-26, 2004, Proceedings
| url = http://www.math.hawaii.edu/~ralph/Preprints/latdrawing.pdf
| volume = 2961
| year = 2004}}.
*{{citation
| last1 = Garg | first1 = Ashim
| last2 = Tamassia | first2 = Roberto
| doi = 10.1007/BF01108622
| issue = 2
| journal = [[Order (journal)|Order]]
| mr = 1354797
| pages = 109–133
| title = Upward planarity testing
| volume = 12
| year = 1995}}.
*{{citation
| last1 = Holten | first1 = Danny
| last2 = Isenberg | first2 = Petra
| last3 = van Wijk | first3 = Jarke J. | author3-link = Jack van Wijk
| last4 = Fekete | first4 = Jean-Daniel
| contribution = An extended evaluation of the readability of tapered, animated, and textured directed-edge representations in node-link graphs
| doi = 10.1109/PACIFICVIS.2011.5742390
| pages = 195–202
| title = IEEE Pacific Visualization Symposium (PacificVis 2011)
| url = http://www.lri.fr/~isenberg/publications/papers/Holten_2011_AEP.pdf
| year = 2011}}.
*{{citation
| last1 = Holten | first1 = Danny
| last2 = van Wijk | first2 = Jarke J. | author2-link = Jack van Wijk
| contribution = A user study on visualizing directed edges in graphs
| doi = 10.1145/1518701.1519054
| pages = 2299–2308
| title = Proceedings of the 27th International Conference on Human Factors in Computing Systems (CHI '09)
| url = http://www.win.tue.nl/~dholten/papers/directed_edges_chi.pdf
| year = 2009}}.
*{{citation
| last = Koren | first = Yehuda
| doi = 10.1016/j.camwa.2004.08.015
| issue = 11-12
| journal = Computers & Mathematics with Applications
| mr = 2154691
| pages = 1867–1888
| title = Drawing graphs by eigenvectors: theory and practice
| url = https://akpublic.research.att.com/areas/visualization/papers_videos/pdf/DBLP-journals-camwa-Koren05.pdf
| volume = 49
| year = 2005}}.
*{{citation
| last = Longabaugh | first = William
| doi = 10.1186/1471-2105-13-275
| journal = BMC Bioinformatics
| pages = 275
| title = Combing the hairball with BioFabric: a new approach for visualization of large networks
| url = http://www.biomedcentral.com/content/pdf/1471-2105-13-275.pdf
| pmid = 23102059
| volume = 13
| year = 2012}}.
*{{citation
| last1 = Madden | first1 = Brendan
| last2 = Madden | first2 = Patrick
| last3 = Powers | first3 = Steve
| last4 = Himsolt | first4 = Michael
| editor-last = Brandenburg | editor-first = Franz J.
| contribution = Portable graph layout and editing
| doi = 10.1007/BFb0021822
| pages = 385–395
| publisher = Springer-Verlag
| series = Lecture Notes in Computer Science
| title = Graph Drawing: [[International Symposium on Graph Drawing|Symposium on Graph Drawing, GD '95]], Passau, Germany, September 20–22, 1995, Proceedings
| volume = 1027
| year = 1996}}.
*{{citation
| last1 = Misue | first1= K.
| last2 = Eades | first2= P.
| last3 = Lai | first3 = W.
| last4 = Sugiyama | first4 = K.
| title = Layout Adjustment and the Mental Map
| journal = Journal of Visual Languages and Computing
| volume = 6 | number = 2 | pages = 183–210 | year = 1995 | doi=10.1006/jvlc.1995.1010}}.
*{{citation
| last1 = Nachmanson | first1 = Lev
| last2 = Robertson | first2 = George
| last3 = Lee | first3 = Bongshin
| editor1-last = Hong | editor1-first = Seok-Hee
| editor2-last = Nishizeki | editor2-first = Takao | editor2-link = Takao Nishizeki
| editor3-last = Quan | editor3-first = Wu
| contribution = Drawing Graphs with GLEE
| doi = 10.1007/978-3-540-77537-9_38
| pages = 389–394
| publisher = Springer-Verlag
| series = Lecture Notes in Computer Science
| title = [[International Symposium on Graph Drawing|Graph Drawing, 15th International Symposium, GD 2007]], Sydney, Australia, September 24–26, 2007, Revised Papers
| contribution-url = ftp://ftp.research.microsoft.com/pub/TR/TR-2007-72.pdf
| volume = 4875
| year = 2008}}.
*{{citation
| last1 = Pach | first1 = János | author1-link = János Pach
| last2 = Sharir | first2 = Micha | author2-link = Micha Sharir
| contribution = 5.5 Angular resolution and slopes
| pages = 126–127
| publisher = [[American Mathematical Society]]
| series = Mathematical Surveys and Monographs
| title = Combinatorial Geometry and Its Algorithmic Applications: The Alcalá Lectures
| volume = 152
| year = 2009}}.
*{{citation
| last1 = Purchase | first1 = H. C.
| last2 = Cohen | first2 = R. F.
| last3 = James | first3 = M. I.
| at = Article 4
| doi = 10.1145/264216.264222
| journal = Journal of Experimental Algorithmics
| title = An experimental study of the basis for graph drawing algorithms
| url = https://secure.cs.uvic.ca/twiki/pub/Research/Chisel/ComputationalAestheticsProject/Vol2Nbr4.pdf
| volume = 2
| year = 1997}}.
*{{citation
| last = Saaty | first = Thomas L. | authorlink = Thomas L. Saaty
| journal = Proc. Natl. Acad. Sci. U.S.A.
| pages = 688–690
| title = The minimum number of intersections in complete graphs
| volume = 52
| year = 1964
| doi=10.1073/pnas.52.3.688}}.
*{{citation|title=Social network analysis: a handbook|first=John|last=Scott|edition=2nd|publisher=Sage|year=2000|isbn=978-0-7619-6339-4|contribution=Sociograms and Graph Theory|url=http://books.google.com/books?id=Ww3_bKcz6kgC&pg=PA|pages=64–69}}.
*{{citation|first1=Kozo|last1=Sugiyama|author1-link=Kozo Sugiyama|first2=Shôjirô|last2=Tagawa|first3=Mitsuhiko|last3=Toda|title=Methods for visual understanding of hierarchical system structures|journal=[[IEEE Systems, Man & Cybernetics Society|IEEE Transactions on Systems, Man, and Cybernetics]]|volume=SMC-11|issue=2|pages=109–125|year=1981|mr=0611436|doi=10.1109/TSMC.1981.4308636}}.
*{{citation
| last = Tantau | first = Till
| doi = 10.7155/jgaa.00301
| issue = 4
| journal = [[Journal of Graph Algorithms and Applications]]
| pages = 495–513
| title = Graph Drawing in TikZ
| volume = 17
| year = 2013}}.
* {{Citation | last1=Zapponi | first1=Leonardo | title=What is a Dessin d'Enfant | url=http://www.ams.org/notices/200307/what-is.pdf | date=August 2003 | journal=[[Notices of the American Mathematical Society]] | volume=50 | pages=788–789}}.
{{refend}}

==Зовнішні посилання==
* [http://graphx.codeplex.com GraphX library for .NET]: open-source WPF library for graph calculation and visualization. Supports many layout and edge routing algorithms.
* [http://gdea.informatik.uni-koeln.de/ Graph drawing e-print archive]: including information on papers from all [[International Symposium on Graph Drawing|Graph Drawing symposia]].
* {{dmoz|Science/Math/Combinatorics/Software/Graph_Drawing}} for many additional links related to graph drawing.

[[Категорія:Теорія графів| ]]

Версія за 11:48, 20 березня 2016

Графічне представлення хвилинної фракції WWW, що зображує гіперпосилання

Зображення графів це сфера математики та комп'ютерних наук, що об'єднує геометричну теорію графів з візуалізацією інформації для отримання двовимірних графів зображеннями, що виникають з додатків аналізу соціальних мереж, картографії, лінгвістики, та біоінформатики.[1]

Зображення графу або мережевої діаграми це графічне представлення вершин та сторін графа. Цей малюнок не слід плутати з самим графом: дуже різні розкладки можуть відповідати одному і тому ж графу.[2] Говорячи абстрактно, все, що має значення,- які пари вершин з'єднані ребрами. У бетоні, однак, розташування цих вершин і ребер в межах малюнка впливає на його зрозумілість, зручність використання, вартість виготовлення, and естетику[3]. Проблема стає ще гірше, якщо графік змінюється з плином часу шляхом додавання і видалення ребер (динамічний графік, креслення) і мета полягає в тому, щоб зберегти ментальну карту користувача[4]

Графічні конвенції

Орієнтований граф з кінцями, що вказують на напрям ребра

Графи зазвичай зображуються як діаграмми вузлового посилання в якому вершини представлені у вигляді дисків, коробок, або текстові мітки і ребер представлених у вигляді відрізків, ламаних, або криві на евклідовому просторі.[3] Діаграми з вуловими посиланнями можна побачити у роботах 13-го століття Раймунда Луллія, що зображував діаграми цього типу для повних графів щоб аналізувати усі попарні комбінації серед серед серед безлічі метафізичних понять.[5]

У випадку орієнтованих графів, стрілки утворюють широко розповсюджені графічні конвенції, щоб показати їхню орієнтацію;[2] Проте, дослідження користувачів показали, що в інших конвенціях, таких, як звужуення, більш ефективно надавати цю інформацію.[6] Висхідне планарне креслення використовує угоду, що кожне ребро орієнтується від нижньої вершини до більш високої вершини, що робить непотрібним кінцівки стріл.[7]

Альтернативні конвенції до вузлових діаграм включають в себе такі уявлення суміжності, як пакування кіл, в якому вершини представлені у вигляді непересічних областей в площині і ребра представлені як примикання між зонами; Перетинні зображення в якому вершини представлені як не-непересічні геометричні об'єкти і края як представлені як їх перетин; видимі зображення, в яких вершини представлені областями в площині та ребра- як регіони, що мають безперешкодну пряму видимість одне від одного. ; креслення зливання, на яких ребра представлені як гладкі криві в межах математичного шляху потягу; тканини, в яких вузли представлені у вигляді горизонтальних ліній і країв у вигляді вертикальних ліній;[8] та зображення матриці суміжності графу.

Критерії якості

Багато різних критеріїв якості були визначені для кресленнь графу, в спробі знайти об'єктивний спосіб оцінки їх естетичності і практичності.[9] Крім спрямування вибору між різними методами компонування для графа, деякі методи компонування намагаються безпосередньо оптимізувати ці заходи.

Планарний граф зображений без перетинів ребер
  • Число схрещувань креслення є число пар ребер, що перетинають одне одного. Якщо цей граф є планарним, то часто буває зручно зробити це без будь-яких перетинів ребер; тобто, в даному випадку, графік являє собою Граф вкладення. Однак неплоских графи часто виникають у додатках, тому алгоритми малювання графа, як правило, повинні дозволити перетин ребер.[10]
  • Зона зображення це найменша територія його вікна обмеження, щодо найближчої відстані між будь-якими двома вершинами. Креслення з меншою площею, як правило, краще, ніж з більшої площею, так як вони дозволяють зберегти особливості малюнка, що будуть показані в більшому розмірі і, отже, більш розбірливо.Співвідношення сторін обмежувального блоку також може бути важливим.
  • Симметрія зображення це проблема пошуку групп симметрії у данному графі, і знаходження зображення, що демонструє так багато симметрії, як це можливо. Деякі методи розташування автоматично ведуть до симметричних зображеннь; з іншого боку, деякі методи зображення починаються зі знаходження симметрії отриманного графа, та використовують її, щоб зробити зображення.[11]
  • Важливо, що ребра мають якомога простішу форму, аби зробити легшим їх відстеження оком людини. У полілінійних кресленнях, важкість конструкції ребра може вимірюватися у кількості згибів, і багато методів націлені на те, щоб у зображення було не багато згибів вцілком чи на одне ребро. Так само, для кривих ліній складність ребра може бути виміряна кількістю контрольних точок на сторону.
  • Кілька популярних критеріїв якості, пов'язаних з довжиною ребер: в загальному випадку бажано звести до мінімуму загальну довжину країв, а також максимальну довжину будь-якого краю. Крім того, для довжин ребер може бути кращим залишатися однаковими, а не різноманітними.
  • Кут дозволуце міра найгострішого кута у зображенні графа. Якщо граф має вершини з великим кутом то він обов'язково матиме не великий кутовий дозвіл, але кутовий дозвіл може бути обмежений знизу функцією кута.[12]
  • Кількість нахилів графа це мінімальна кількість різних нахилів, що потрібні для зображення прямими лініями ребер сегмента (з перетином). Кубічний граф зає кількіст нахилів не більше чотирьох, але граф з п'яти кутами може мати необмежену кількість нахилів; ще залишається не зрозумілим, чи обмежена кількість нахилів 4-кутного графа.[12]

Методи компонування

Силова візуалізація мережі.[13]

Існує багато стратегій компонуання графів:

  • У системі силового компонування, программи зображення графів змінюють початкове розміщення вершин шляхом безперервного переміщення вершин відповідно до системи сил, заснованої на фізичних метафорах, пов'язаних з системами пружин або молекулярної механіки. Зазвичай, ці системи поєднують в собі сили тяжіння між сусідніми вершинами з силами відштовхування між усіма парами вершин, щоб знайти макет, в якому довжини сторін малі в той час як вершини добре розділені. Ці системи можуть виконуати метод найшвидшого спуску на основі мінімізації з функції енергії, або ж вони можуть перевести свої сили безпосередньо в швидкості або прискорення для рухомих вершин.[14]
  • Метод спектрального макету використовує власні вектори матриці такі як Лапласів отриманного з матриці суміжності графа.[15]
  • Ортогональні методи компонування, що дозволяють ребрам графа йти горизонтально або вертикально, паралельно осям координат макета. Ці методи були спочатку розроблені для НВІС, [[Друкована плата|ДП ] ] і проблем компонування, але вони також були пристосовані до зображення графів.

Вони зазвичай включають багатофазний підхід, в якому введення графа вирівнюється шляхом заміни точок перетину вершинами, знаходиться топологічне вкладення планарізованного графа, орієнтація сторін вибирається так, щоб звести до мінімуму вигини, вершини розташовуються послідовно з цими орієнтаціями, і, нарешті, етап ущільнення макету зменшує площу малюнка.[16]

  • Алгоритми макету дерева показують корінь дерева- як формацію, що підходить для [[дерева ( теорії графів ) | дерева ] ] . Часто , в техніці під назвою " Повітряна куля макета " , нащадки кожного вузла в дереві намальовані на окружності навколо вузла , з радіусами цих кіл спадної на більш низьких рівнях в дереві так , щоб ці кола не перетинаються. Зазвичай, у техніці, що називається "Кульовий макет", нащадок кожного вузла у дереві малюється на колі, що оточує вузол, із радіусом цих кіл, спадаючими на нижчих рівнях дерева так, щоб ці кола не накладалися одне на одного.[17]
  • Методи багаторівневого зображення графу ( часто звані зображення у стилі Сугияма ) найкраще підходять для орієнтованного ациклічного графу або графів, близьких до ациклічних, таких як графи залежностей між модулями або функціями в програмній системі. У цих методах, вузли графа розташовані на горизонтальних шарах з використанням методів, таких як Алгоритм Коффмана-Грекхема, таким чином, що більшість ребер йдуть вниз від одного шару до іншого; після цього кроку, вузли в межах кожного шару виконані з метою мінімізації перетинів.[18]
Arc diagram
  • Дугова діаграмма, це стиль компонування, що веде свій шлях з 1960-х років,[19] розташуємо вершини в одну лінію; сторони можуть бути зображені як півкола над і під лінією, або криві, що з'єднаних з декількох півкіл.
  • У круговій діаграммі вершини обережно розташовані по колу, з метою зменшення перетинів та розташування сусідніх вершин якомога ближче одне до одного. чторони можуть бути зображені як хорди кола чи його арки зсердини чи зовні. Іноді декілька кіл можуть бути використані.[20]
  • У макеті переважання вершини записуються таким чином, що кожна вершина вгорі, зправа, або і так і так від іншої, якщо і тільки якщо вона досяжна з цієї вершини. Таким чином, стиль розташування робить відношення досяжності графа візуально очевидним.[21]

Додатки-особливі зображення графів

Graphs and graph drawings arising in other areas of application include

In addition, the placement and routing steps of electronic design automation (EDA) are similar in many ways to graph drawing, as is the problem of greedy embedding in distributed computing, and the graph drawing literature includes several results borrowed from the EDA literature. However, these problems also differ in several important ways: for instance, in EDA, area minimization and signal length are more important than aesthetics, and the routing problem in EDA may have more than two terminals per net while the analogous problem in graph drawing generally only involves pairs of vertices for each edge.

Програмне забезпечення

Software, systems, and providers of systems for drawing graphs include:

Посилання

Footnotes
  1. Помилка скрипту: Функції «harvard_core» не існує., pp. vii–viii; Помилка скрипту: Функції «harvard_core» не існує., Section 1.1, «Typical Application Areas».
  2. а б Помилка скрипту: Функції «harvard_core» не існує., p. 6.
  3. а б Помилка скрипту: Функції «harvard_core» не існує., p. viii.
  4. Помилка скрипту: Функції «harvard_core» не існує.
  5. Knuth, Donald E. (2013), Two thousand years of combinatorics, у Wilson, Robin; Watkins, John J. (ред.), Combinatorics: Ancient and Modern, Oxford University Press, с. 7—37.
  6. Помилка скрипту: Функції «harvard_core» не існує.; Помилка скрипту: Функції «harvard_core» не існує..
  7. Помилка скрипту: Функції «harvard_core» не існує..
  8. а б Помилка скрипту: Функції «harvard_core» не існує..
  9. Помилка скрипту: Функції «harvard_core» не існує., Section 2.1.2, Aesthetics, pp. 14–16; Помилка скрипту: Функції «harvard_core» не існує..
  10. Помилка скрипту: Функції «harvard_core» не існує., p 14.
  11. Помилка скрипту: Функції «harvard_core» не існує., p. 16.
  12. а б Помилка скрипту: Функції «harvard_core» не існує..
  13. Published in Grandjean, Martin (2014). La connaissance est un réseau. Les Cahiers du Numérique. 10 (3): 37—54. doi:10.3166/lcn.10.3.37-54. Процитовано 15 жовтня 2014.
  14. Помилка скрипту: Функції «harvard_core» не існує., Section 2.7, "The Force-Directed Approach", pp. 29–30, and Chapter 10, "Force-Directed Methods", pp. 303–326.
  15. Помилка скрипту: Функції «harvard_core» не існує.; Помилка скрипту: Функції «harvard_core» не існує..
  16. Помилка скрипту: Функції «harvard_core» не існує., Chapter 5, "Flow and Orthogonal Drawings", pp. 137–170; (Eiglsperger, Fekete та Klau, 2001).
  17. Помилка скрипту: Функції «harvard_core» не існує., Section 2.2, "Traditional Layout – An Overview".
  18. Помилка скрипту: Функції «harvard_core» не існує.; Помилка скрипту: Функції «harvard_core» не існує.; Помилка скрипту: Функції «harvard_core» не існує., Chapter 9, "Layered Drawings of Digraphs", pp. 265–302.
  19. Помилка скрипту: Функції «harvard_core» не існує..
  20. Помилка скрипту: Функції «harvard_core» не існує..
  21. Помилка скрипту: Функції «harvard_core» не існує., Section 4.7, "Dominance Drawings", pp. 112–127.
  22. Помилка скрипту: Функції «harvard_core» не існує.; Помилка скрипту: Функції «harvard_core» не існує..
  23. Помилка скрипту: Функції «harvard_core» не існує., pp. 15-16, and Chapter 6, "Flow and Upward Planarity", pp. 171–214; Помилка скрипту: Функції «harvard_core» не існує..
  24. Помилка скрипту: Функції «harvard_core» не існує.
  25. Помилка скрипту: Функції «harvard_core» не існує.
  26. Помилка скрипту: Функції «harvard_core» не існує.
  27. Помилка скрипту: Функції «harvard_core» не існує.
  28. "Graphviz and Dynagraph – Static and Dynamic Graph Drawing Tools", by John Ellson, Emden R. Gansner, Eleftherios Koutsofios, Stephen C. North, and Gordon Woodhull, in Помилка скрипту: Функції «harvard_core» не існує..
  29. GraphPlot Mathematica documentation
  30. Graph drawing tutorial
  31. Помилка скрипту: Функції «harvard_core» не існує..
  32. Помилка скрипту: Функції «harvard_core» не існує..
  33. "Tulip – A Huge Graph Visualization Framework", by David Auber, in Помилка скрипту: Функції «harvard_core» не існує..
  34. "yFiles – Visualization and Automatic Layout of Graphs", by Roland Wiese, Markus Eiglsperger, and Michael Kaufmann, in Помилка скрипту: Функції «harvard_core» не існує..
  35. Помилка скрипту: Функції «harvard_core» не існує.; see also the older GD 2012 presentation
General references
Specialized subtopics

Зовнішні посилання