Сучасні інформаційні технології / Обчислювальна техніка та програмування

Ткаченко Р.В.

Київський національний університет України «Київський політехнічний інститут»

Візуалізація графів за допомогою використання методу фізичних аналогій.

На даний час представлення інформації все більше і більше використовується в різних областях точних та природних наук. В програмуванні графові моделі застосовуються при створенні програмного забезпечення (управляючі графи, ієрархії класів, діаграми потоків даних), дизайні бази даних (діаграми сутність-зв’язок), розробка інформаційних систем і систем реального часу (моделювання комп’ютерних мереж, графи станів, мережі Петрі), а також в системному програмуванні – при створенні теорії компіляції і перетворювання програм. Питання візуалізації подібних графових структур являється наріжним каменем в процесі адекватного відображення інформації.

Автоматичне розташування графів – це задача конструювання геометричного представлення графа, яке задовольняє набору естетичних критеріїв.

В залежності від застосування елементи графа можуть зображуватись різноманітними способами. Наприклад, вершини можуть бути нарисовані, наприклад, у вигляді точок, кіл, прямокутників або інших геометричних фігур, або представлені неявно – через імена, якими помічені вершини. Аналогічно має більшу різноманітність рисування ребер: наприклад, у вигляді відрізків прямих, ломаних ліній або кривих. Інформація, зіставлена елементам графа, може візуалізуватися з використанням текстових міток, розташованих всередині або поряд з об’єктом графу, різноманітними кольорами або іншими візуальними елементами, такими як, наприклад, товщина ліній або розмір прямокутників.

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

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

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

Початкова конфігурація графу:

Кінцева конфігурація графу:

 

Більш точно, сила, прикладена до вершини p, визначається за формулою

де  – сила натягу, діюча на вершину p із-за пружини (p,q), а  – сила відштовхування існуюча між частками p і q. За законом Фуко  пропорційна різниці між відстанню від p до q і довжиною пружини з мінімальною енергією; а сила  слідує оберненому квадратному закону.

Нехай  означає відстань на площині між p і q. Тоді для x координати сили F(p) можна використовувати формулу

, ,  – параметри, які не залежать від позиції вершин на площині і інтерпретуються наступним чином:

-              – це натуральна (з нульовою енергією) довжина пружини між p і q. Якщо пружина має довжину  (тобто )), то не виникає сил натягу між p і q;

-              – коефіцієнт жорсткості пружини між p і q. Чим більше він, тим сильніше пружина намагається встановити відстань між p і q, рівною ;

-              – коефіцієнт сили відштовхування між p і q.

Дана модель націлена на задоволення двом естетичним вимогам:

-             сили пружини між сусідніми вершинами націлені на те, щоб відстань між ними приблизно була рівною ;

-             електронні сили мають гарантувати, щоб вершини не наближались близько одна до одної.

Досліди показали, що в багатьох випадках алгоритм рисування будує симетричне зображення графу.

Для отримання більш якісних зображень можна використовувати не закон Фуко, а логарифмічний закон, коли

Однак досліди показали, що не завжди зростання якості результуючих зображень в цьому випадку компенсують збільшення обчислювальної складності.

В конкретних додатках за рахунок змін значень параметрів , ,  можна управляти наочністю представлення і вираження в рисунку семантики графа.

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

Найпростіший з них – це алгоритм, який діє в два етапи.

На першому етапі вершини розташовуються на площині випадковим чином.

Другий етап – це послідовність ітерацій до стабілізації, на кожній з яких обчислюються для всіх вершин p сили F(p) і для тих із них, для яких  відбувається переміщення вершини в напрямку цієї сили на відстань, пропорційне модулю сили. Пропорція зсуву одна для всіх вершин являється ще одним параметром алгоритму.

Алгоритм достатньо простий, разом з цим він дозволяє здійснити інтуїтивно зрозумілий плавний перехід від випадкового розташування до конфігурації рівноваги сил.

 

Література:

1.     Касьянов В.Н. Графы в программировании: обработка, визуализация и применение /  В.Н. Касьянов, В.А Евстигнеев – СПб. БХВ-Петербург, 2003 – 1104 с. ил.

2.      Isabel F. Cruz. Graph Drawing Tutorial [Електронний ресурс]. – Режим доступу: http://www.cs.brown.edu/~rt/papers/gd-tutorial/gd-constraints.pdf (18.05.2011). Назва з екрану.

3.     Ivan Herman, Member, IEEE CS Society, Guy Melançon, M. Scott Marshall. Graph Visualization and Navigation in Information Visualization: a Survey [Електронний ресурс]. – Режим доступу: http://staff.science.uva.nl/~marshall/publications/StarGraphVisuInInfoVis.pdf (18.05.2011). Назва з екрану.