SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
Визуализация графов
Computer Science клуб, март 2014
Александр Дайняк, ФИВТ МФТИ
www.dainiak.com
Деревья
Генеалогическое дерево династии
Саксонов (XII век)
Деревья
Дерево добродетелей (XIV век)
Деревья
Дерево грехов (XIV век)
Деревья
Помеченные деревья из статьи Кэли (1857) о деревьях.
A. Cayley. On the Theory of the Analytical Forms Called Trees.
Philosophical Magazine, 4(13):172–176, 1857.
Графы
Логический квадрат — диаграмма
отношений между силлогизмами.
Juan de Celaya (1490—1558)
(Это граф 𝐾12.)
Графы
Иллюстрация А.-Т. Вандермонда
(1771 г.) к задаче об обходе
шахматной доски конём.
Графы
Иллюстрация У. Гамильтона (1857) к задаче об обходе икосаэдра.
Графы
Графы молекул из статьи А.К. Брауна (1864).
Ранние статьи по визуализации
• H.W. Tutte ’1963
How to draw a graph
• D. E. Knuth ’1970
How shall we draw a tree
Симпозиумы по Graph Drawing
• International Work Meeting on Graph Drawing, Marino (Rome), Italy,
June 4—5, 1992
• …
• 21st International Symposium on Graph Drawing, Bordeaux, France,
September 23—25, 2013
• 22nd International Symposium on Graph Drawing, Würzburg,
Germany, 24-26 September 2014
Д. Кнут о визуализации графов
D.E. Knuth (GD' 1996):
• Graph drawing is the best possible field I can think of:
It merges aesthetics, mathematical beauty and wonderful algorithms.
It therefore provides a harmonic balance between the left and right
brain parts.
• A good graph drawing algorithm should leave something for the
user‘s satisfaction.
Типичные области применения графов
• Software engineering: UML диаграммы, диаграммы вызовов
• Биология: геномика, пищевые цепи, …
• Сети: инструменты управления сетями, Интернет
• Безопасность: сетевые атаки
• Социальные сети: Twitter, Facebook, etc.
Пользовательские требования
• Читабельность: видны основные структурные особенности графа.
• Конформизм: рисунок должен соответствовать стилевым
соглашениям, характерным для конкретной прикладной области.
• Управляемость: пользователь может контролировать параметры
укладки.
• Быстродействие соответствует цели (динамический граф
на экране / высококачественная диаграмма для печати / …)
Соглашения (conventions)
Соглашение — это свойство, которому укладка графа должна удовлетворять
«беспрекословно», в противном случае граф не считается уложенным вовсе.
Примеры:
• Вершины графа не должны лежать на рёбрах, концами которых они не являются.
• Как могут изображаться рёбра (отрезком прямой / полилинией / дугой окружности
/ сплайном / …)
• Как должны располагаться вершины (если ребро идёт из 𝑢 в 𝑣, то 𝑣 лежит ниже 𝑢 /
вершины и изгибы рёбер должны иметь целочисленные координаты / …).
Соглашения (conventions)
Правило — это пожелание, которое следует выполнить в максимально возможном
объёме. Правила имеют, в основном, эстетическую мотивацию.
Примеры:
• Кривые, изображающие рёбра, должны быть покороче.
• Количество изгибов на рёбрах должно быть поменьше.
• Число пересечений рёбер должно быть поменьше.
• Вершины не должны находиться слишком близко.
• Углы между пересекающимися рёбрами побольше.
• Площадь укладки поменьше.
• Симметрии графа должны прослеживаться.
Часто не бывает «лучшей» укладки
Читабельность vs. соответствие правилам
There is a gap between the user's
view and the formalism
D. E. Knuth
Трудности визуализации реальных графов
People don't want to draw graphs.
They want to draw pictures that contain graphs.
Brendan Madden, 2003
У реального графа есть семантика → появляются семантические правила.
Трудности визуализации реальных графов
Примеры семантически-продиктованных правил:
• Выделенные вершины должны располагаться неподалёку.
• Выделенные вершины должны располагаться на одной прямой.
• Выделенные вершины должны располагаться в центре рисунка.
• Выделенные вершины должны располагаться на периферии.
Укладки СБИС
Ещё сложнее, чем укладка графов: множество дополнительных
технологических правил.
Укладки СБИС
Ещё сложнее, чем укладка графов: множество дополнительных
технологических правил.
Технические подходы к визуализации
• Топология → форма → метрика
• Методы, основанные на укладках планарных графов
• Силовые методы
• Методы типа «разделяй и властвуй»
Топология → форма → метрика
Этап «топология»: определяем, как упорядочены рёбра вокруг
каждой вершины.
𝑉 ≔ 1,2,3,4,5
𝐸 ≔ 1,2 , 1,3 , 1,4 , 1,5 , 2,4 , 3,5 , 4,5
Топология → форма → метрика
Этап «форма»: определяем форму рёбер.
(В случае ортогональных представлений — количество изломов.)
Топология → форма → метрика
Этап «метрика»: подбираем все длины.

Weitere ähnliche Inhalte

Mehr von Computer Science Club

20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugsComputer Science Club
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12Computer Science Club
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11Computer Science Club
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10Computer Science Club
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09Computer Science Club
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02Computer Science Club
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04Computer Science Club
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01Computer Science Club
 

Mehr von Computer Science Club (20)

20141223 kuznetsov distributed
20141223 kuznetsov distributed20141223 kuznetsov distributed
20141223 kuznetsov distributed
 
Computer Vision
Computer VisionComputer Vision
Computer Vision
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04
 
20140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-0320140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-03
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01
 
20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 
20131006 h10 lecture2_matiyasevich
20131006 h10 lecture2_matiyasevich20131006 h10 lecture2_matiyasevich
20131006 h10 lecture2_matiyasevich
 

20140329 graph drawing_dainiak_lecture01

  • 1. Визуализация графов Computer Science клуб, март 2014 Александр Дайняк, ФИВТ МФТИ www.dainiak.com
  • 5. Деревья Помеченные деревья из статьи Кэли (1857) о деревьях. A. Cayley. On the Theory of the Analytical Forms Called Trees. Philosophical Magazine, 4(13):172–176, 1857.
  • 6. Графы Логический квадрат — диаграмма отношений между силлогизмами. Juan de Celaya (1490—1558) (Это граф 𝐾12.)
  • 7. Графы Иллюстрация А.-Т. Вандермонда (1771 г.) к задаче об обходе шахматной доски конём.
  • 8. Графы Иллюстрация У. Гамильтона (1857) к задаче об обходе икосаэдра.
  • 9. Графы Графы молекул из статьи А.К. Брауна (1864).
  • 10. Ранние статьи по визуализации • H.W. Tutte ’1963 How to draw a graph • D. E. Knuth ’1970 How shall we draw a tree
  • 11. Симпозиумы по Graph Drawing • International Work Meeting on Graph Drawing, Marino (Rome), Italy, June 4—5, 1992 • … • 21st International Symposium on Graph Drawing, Bordeaux, France, September 23—25, 2013 • 22nd International Symposium on Graph Drawing, Würzburg, Germany, 24-26 September 2014
  • 12. Д. Кнут о визуализации графов D.E. Knuth (GD' 1996): • Graph drawing is the best possible field I can think of: It merges aesthetics, mathematical beauty and wonderful algorithms. It therefore provides a harmonic balance between the left and right brain parts. • A good graph drawing algorithm should leave something for the user‘s satisfaction.
  • 13. Типичные области применения графов • Software engineering: UML диаграммы, диаграммы вызовов • Биология: геномика, пищевые цепи, … • Сети: инструменты управления сетями, Интернет • Безопасность: сетевые атаки • Социальные сети: Twitter, Facebook, etc.
  • 14. Пользовательские требования • Читабельность: видны основные структурные особенности графа. • Конформизм: рисунок должен соответствовать стилевым соглашениям, характерным для конкретной прикладной области. • Управляемость: пользователь может контролировать параметры укладки. • Быстродействие соответствует цели (динамический граф на экране / высококачественная диаграмма для печати / …)
  • 15. Соглашения (conventions) Соглашение — это свойство, которому укладка графа должна удовлетворять «беспрекословно», в противном случае граф не считается уложенным вовсе. Примеры: • Вершины графа не должны лежать на рёбрах, концами которых они не являются. • Как могут изображаться рёбра (отрезком прямой / полилинией / дугой окружности / сплайном / …) • Как должны располагаться вершины (если ребро идёт из 𝑢 в 𝑣, то 𝑣 лежит ниже 𝑢 / вершины и изгибы рёбер должны иметь целочисленные координаты / …).
  • 16. Соглашения (conventions) Правило — это пожелание, которое следует выполнить в максимально возможном объёме. Правила имеют, в основном, эстетическую мотивацию. Примеры: • Кривые, изображающие рёбра, должны быть покороче. • Количество изгибов на рёбрах должно быть поменьше. • Число пересечений рёбер должно быть поменьше. • Вершины не должны находиться слишком близко. • Углы между пересекающимися рёбрами побольше. • Площадь укладки поменьше. • Симметрии графа должны прослеживаться.
  • 17. Часто не бывает «лучшей» укладки
  • 18. Читабельность vs. соответствие правилам There is a gap between the user's view and the formalism D. E. Knuth
  • 19. Трудности визуализации реальных графов People don't want to draw graphs. They want to draw pictures that contain graphs. Brendan Madden, 2003 У реального графа есть семантика → появляются семантические правила.
  • 20. Трудности визуализации реальных графов Примеры семантически-продиктованных правил: • Выделенные вершины должны располагаться неподалёку. • Выделенные вершины должны располагаться на одной прямой. • Выделенные вершины должны располагаться в центре рисунка. • Выделенные вершины должны располагаться на периферии.
  • 21. Укладки СБИС Ещё сложнее, чем укладка графов: множество дополнительных технологических правил.
  • 22. Укладки СБИС Ещё сложнее, чем укладка графов: множество дополнительных технологических правил.
  • 23. Технические подходы к визуализации • Топология → форма → метрика • Методы, основанные на укладках планарных графов • Силовые методы • Методы типа «разделяй и властвуй»
  • 24. Топология → форма → метрика Этап «топология»: определяем, как упорядочены рёбра вокруг каждой вершины. 𝑉 ≔ 1,2,3,4,5 𝐸 ≔ 1,2 , 1,3 , 1,4 , 1,5 , 2,4 , 3,5 , 4,5
  • 25. Топология → форма → метрика Этап «форма»: определяем форму рёбер. (В случае ортогональных представлений — количество изломов.)
  • 26. Топология → форма → метрика Этап «метрика»: подбираем все длины.