Title: Trazado de grafos mediante m
1Trazado de grafos mediante métodos dirigidos por
fuerzas
Tesis de Licenciatura en Ciencias de la
Computación
- Revisión del estado del arte y presentación de
algoritmos para grafos donde los vértices son
regiones geográficas
Tesistas Andrés Aiello y Rodrigo I.
Silveira aaiello, rsilveir_at_dc.uba.ar Directores
Manuel Abellanas y Gregorio Hernández
Peñalver Universidad Politécnica de Madrid
Departamento de ComputaciónFacultad de Ciencias
Exactas y NaturalesUniversidad de Buenos Aires
2Sobre este trabajo
- Esta tesis es sobre trazado de grafos.
- Acerca de métodos dirigidos por fuerzas.
- Está compuesta por dos partes
- Una completa revisión del estado del arte.
- Un conjunto de algoritmos para un nuevo problema
cuando los vértices del grafo representan
regiones geográficas.
3Contenido
- Introducción al trazado de grafos.
- Revisión del estado del arte de los métodos
dirigidos por fuerzas. - Algoritmos para grafos donde los vértices son
regiones geográficas. - Conclusiones y trabajo futuro.
4Qué es el trazado de grafos
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 Donald Knuth, Simposio Graph
Drawing '96.
- Consiste en encontrar para cada vértice del grafo
una posición en el plano. - Si las aristas se dibujan como segmentos, esto
define un dibujo o trazado del grafo. - Hay infinitas formas de dibujar un grafo.
- La intención es que el dibujo resultante sea
estéticamente bueno.
5Ejemplo
- Dos trazados del mismo grafo
6Criterios estéticos
- Definen qué hace que un trazado sea estéticamente
bueno. - Los más comunes
- Minimizar cruces.
- Minimización de área.
- Distribuir vértices uniformemente.
- Maximización del ángulo entre ejes.
- Mostrar simetría.
- Longitud uniforme de aristas.
7Pueden entrar en conflicto
- Ej. simetría vs. evitar cruces.
8Familias de algoritmos
- Para clases específicas de grafos
- Arboles.
- Grafos dirigidos.
- Planares.
- Para grafos generales
- Para trazado ortogonal.
- Algoritmos dirigidos por fuerzas.
- Algoritmos espectrales.
9Métodos dirigidos por fuerzasrevisión del
estado del arte
Parte 1
10Métodos dirigidos por fuerzas
- Modelan al grafo con un sistema físico.
- El trazado es obtenido buscando un equilibrio de
ese sistema físico. - Tienen dos partes bien diferenciadas
- Un modelo físico.
- Un algoritmo para buscar un equilibrio.
11Métodos dirigidos por fuerzas (2)
- El primero fue el spring embedder. Plantea una
analogía con resortes (Eades, 84). - Veinte años después del algoritmo de Eades,
existen cientos de variantes distintas. - El objetivo de la primer parte del trabajo es
presentar de manera organizada todas las
publicaciones relevantes de la literatura.
12Ventajas
- Intuitivos
- Sencillos de programar
- AlgoritmoDF(Grafo G)
- Asignar posición inicial a los vértices.
- Repetir hasta que el sistema esté en equilibrio
- Seleccionar un vértice v en G.
- Mover v de manera que las fuerzas del sistema
disminuyan. - Dan buenos resultados
- Muy flexibles
- Desventajas? Más adelante
13Spring embedder (Eades, 84)
- Presentó la analogía de los resortes.
- Modelo físico
- Fuerzas atractivas
- Fuerza repulsivas
- Criterios estéticos que considera
- Distribución de nodos uniforme.
- Longitud de aristas uniforme.
14Spring embedder (2)
- Algoritmo
- SpringEmbedder(Grafo G)
- Asignar una posición al azar a cada vértice de G.
- Repetir M veces
- Para cada v?V
- Calcular f(v) (usando las fuerzas de la
diapositiva anterior) - Para cada v?V
- pv pvC4f(v)
- Complejidad O(n3)
15Mejoras del SE
- FR (Fruchterman y Reingold, 91)
- Otras fuerzas
- Atractivas cuadráticas en la distancia (sin
logaritmo). - Repulsivas inversas a la distancia.
- Temperatura global para acelerar convergencia.
- GEM (Frick et al., 95)
- Fuerzas similares a las de FR.
- Temperatura local para cada vértice.
- Detección de oscilaciones y rotaciones.
- Misma complejidad que FR y SE.
- Pero en la práctica es uno de los más rápidos.
16Mejoras del SE (2)
- SM (Sugiyama y Misue, 95)
- Algunos resortes están magnetizados.
- Hay campos magnéticos que influyen en la
dirección de esos resortes.
17KK (Kamada y Kawai, 89)
- Un único tipo de fuerzas (resortes) entre todos
los pares de vértices, con longitudes ideales
distintas. - Criterio estético que considera
- La distancia entre vértices debe ser igual a la
distancia teórica. - Mantiene implícitamente los dos criterios
anteriores.
18KK (2)
- Enfoque basado en energía
- Equivalente a usar fuerzas lineales.
- Para encontrar el mínimo de la energía usan
Newton-Raphson.
19DH (Davidson y Harel, 89)
- Enfoque basado en energía.
- Modelo definido por una suma de potenciales
- Distribución de nodos.
- Longitud de aristas.
- Cruces de aristas.
- Distancia nodo arista.
- Espacio de dibujo.
- Extremadamente flexible.
20DH (2)
- Algoritmo utiliza Simulated Annealing
- Idea básica
- Para cada v?V
- Elegir al azar una nueva posición para v.
- Si la energía disminuye con esa posición, la
acepto. - Sino, con cierta probabilidad, la acepto igual.
- Cuánto moverse en cada paso depende de una
temperatura que va decreciendo. - Al comienzo los movimientos son grandes.
- Y se van haciendo cada vez más cortos.
- Es de los algoritmos más lentos.
21Comparación
- No hay muchos estudios que los comparen.
- Los pocos que hay (Brandenburg, 95), (Behzadi,
99) concluyen que - Todos obtienen trazados estéticamente agradables.
- El más flexible es DH.
- GEM y KK son los más rápidos, mientras que DH es
el más lento. - Conclusión no hay un ganador universal.
22Ejemplos
- Mismo grafo, distintos algoritmos
KK
SE
23Desventajas
- Tres puntos débiles
- Alto costo computacional (en tiempo).
- Pueden caer en mínimos locales pobres.
- Encontrar los óptimos globales es NP-Hard.
- Falta de fundamentos teóricos.
24Aspectos numéricos
- Todos los algoritmos dirigidos por fuerzas
minimizan una función. - La forma en que lo hacen marca las diferencias
entre cada uno. - Todos usan alguna técnica numérica.
- Aunque en la mayoría de los casos, está
implícita. - Hacerla explícita es importante!
25Fuerzas vs. energía
- Los algoritmos se dedican a
- Buscar un equilibrio de un sistema físico (ej.
spring embedder, FR, GEM). - O a minimizar una función de energía (ej. KK,
DH). - Pero son equivalentes
- La fuerza neta que afectan a un nodo constituye
el gradiente (negativo) de su energía. - Mínimos de energía son equilibrios del sistema de
fuerzas.
26Método del gradiente
- Consiste en moverse siempre hacia (menos) la
dirección del gradiente. - La función que estamos minimizando es la energía
del trazado. - El spring embedder mueve cada nodo en la
dirección de la fuerza neta - Que es igual a moverse en la dirección opuesta al
gradiente. - El spring embedder y sus derivados (FR, SM, etc.)
usan el método del gradiente.
27Otros métodos de optimización
- KK usa Newton-Raphson para buscar un equilibrio.
- DH usa Simulated Annealing.
- Tunkelang (99) usa gradiente conjugado.
- Branke et al. (96) usan algoritmos genéticos.
- El algoritmo baricéntrico de Tutte resuelve un
sistema lineal con Gauss-Seidel. - Muchos otros son posibles!
28Trazados 3D
- En lugar de buscar posiciones en el plano,
buscamos en el espacio. - Ventajas
- Más libertad de movimiento.
- Es más fácil llegar a un equilibrio
- Los cruces de aristas no son un problema.
- Desventajas
- Es necesario proyectar los resultados a 2D.
- Pueden aparecer cruces!
29A pesar de todo...
- Pruebas empíricas indican que se puede trasmitir
más información (Dwyer, 00) - El uso de programas interactivos de visualización
hace que el usuario visualice el trazado 3D desde
cualquier ángulo. - Se hace necesario diseñar algoritmos para trazar
grafos en 3D.
30Adaptar algoritmos a 3D
- Algunos son difíciles de llevar a 3D (ej.
ortogonales, por capas) - Los dirigidos por fuerzas no requieren casi
adaptaciones! - Los que modelan con resortes no tienen ningún
problema. - Tampoco los que usan funciones generales
- Otros como KK, GEM y SM requieren adaptar algunas
partes. - Pero sigue siendo relativamente fácil.
31Hay muchas otras adaptaciones posibles
- Para trazar grafos dinámicos.
- Para trazar grafos con restricciones
- Vértices con forma y tamaño.
- Aristas especiales (curvas, con pesos).
- Restricciones en la posición de los vértices.
- Para trazar grafos con clusters.
- Para trazar grafos grandes.
- Comentaremos muy brevemente sobre ellos.
32Grafos dinámicos
- Grafos que cambian a lo largo del tiempo
- Se quiere ir trazando el grafo a medida que
cambia. - Preservando el mapa mental
ti
33Grafos dinámicos (2)
- Los algoritmos dirigidos por fuerzas se adaptan
muy bien a esta situación - Se pueden agregar vértices ficticios (fijos) en
las posiciones anteriores de cada vértices,
conectados por resortes a sus respectivos
vértices (Brandes et al., 00). - Si se usa DH o similar, se agrega un potencial
que penalice ubicar a un vértice lejos de su
posición anterior. - También suelen animarse los movimientos
- El spring embedder y derivados son ideales para
esto.
34Restricciones
- Los grafos que se deben trazar en las
aplicaciones concretas suelen venir con
restricciones. - Una muy común es forma y tamaño los vértices
suelen ser dibujados con figuras geométricas. - El tamaño y la forma deben ser considerados por
los algoritmos, sino - Algunos vértices pueden solaparse
- Algunas aristas pueden atravesar vértices
35Restricciones (2)
36Restricciones (3)
- Posibles soluciones
- Adaptar las longitudes ideales de los resortes
para contemplar forma y tamaño (Wang y Miyamoto,
95), (Harel y Koren, 02). - Agregar potenciales o fuerzas que penalicen el
solapamiento de vértices (Kamps et al., 95). - Trazar el grafo normalmente, luego arreglar los
solapamientos (Gasner y North, 98). - Usar campos potenciales (Chuang et. al, 04).
37Restricciones (4)
- Otras consideraciones
- Aristas con pesos.
- Se pueden adaptar las longitudes ideales para
contemplarlos (Ej. Erbacher et. al, 04). - Aristas curvas.
- Se toman los puntos de control de las curvas como
vértices, y se traza el grafo normalmente. (Ej.
Finkel, 04)
38Restricciones (5)
- También puede haber restricciones en la posición
de los vértices - Un vértice debe estar fijo.
- Un vértice debe estar dentro de una región.
- La distancia entre dos vértices debe ser fija.
- Y muchas otras.
- Muchas soluciones posibles
- Son fáciles de integrar al spring embedder. Ej
- Antes de mover cada vértice, controlo que no se
viole ninguna restricción. - Si uso DH o similar, puedo agregar un potencial
que penalice la violación de las restricciones.
39Ejemplos
- Aristas curvas
- (Finkel, 04)
- Restricciones en los vértices (He y Marriot, 98)
40Grafos con clusters
- Los grafos pueden tener clusters.
- Objetivo que el trazado refleje las agrupaciones
entre vértices. - Solución sencilla agregar vértices atractores
(ej. Huang y Eades, 00)
41Clusters (2)
- Ejemplos
- (Wang y Miyamoto, 95)
- (Huang y Eades, 00)
42Grafos grandes
- La complejidad cúbica de los algoritmos
clásicos los hace poco prácticos para grafos de
más de unos pocos cientos de nodos. - Dos formas de lidiar con grafos grandes
- Simulación de N-cuerpos.
- Algoritmos multinivel/multidimensionales.
43Grafos grandes (2)
- Simulación de N-cuerpos
- Problema común en la física.
- En nuestro caso, los cuerpos son los vértices.
- Objetivo evitar calcular todas las fuerzas
repulsivas, que es O(n2). - Motivación a medida que los vértices se alejan,
las fuerzas repulsivas dejan de tener peso en la
fuerza neta. - No calcular todos los pares de fuerzas, sino sólo
los de los vértices más cercanos.
44Grafos grandes (3)
- Algoritmos multinivel
- Separan el grafo en distintos niveles de
abstracción. - Partiendo del grafo original, se lo va
simplificando hasta llegar a un grafo de unos
pocos vértices. - Se hace el trazado de ese grafo simple, se fijan
los nodos ubicados y se agregan los del nivel
siguiente (Gajer, 00), (Walshaw, 03) (Hachul 04). - La cantidad de nodos no fijos es siempre
pequeña.
45Ejemplos
- Grafos de unos 1.000 vértices (Gajer et al., 00)
- Grafos de 5.000, 15.000 y 88.000 vértices
(Walshaw, 03)
46Trazado inicial
- La mayoría de los algoritmos parten de un trazado
inicial al azar. - El trazado inicial influye en dos factores
- Velocidad de convergencia.
- Calidad del resultado. Ej.
47Trazado inicial (2)
- Se pueden realizar trazados más elaborados. Ej.
- Para obtener trazados planos de grafos planares
(Harel y Sardas, 95). - Para evitar mínimos pobres (Behzadi, 99).
- Para acelerar la convergencia (Mutton y Rodgers,
02).
48Comentarios
- La flexibilidad y sencillez de los algoritmos
dirigidos por fuerzas ha hecho que surgieran
cientos de variantes. - Sin existir (hasta ahora) un compendio ordenado y
completo de los algoritmos existentes. - En esta tesis se intentó abarcar a todos los
trabajos relevantes. - En esta presentación sólo hemos mencionado
algunas de las principales variantes.
49Algoritmos para grafos donde los vértices son
regiones geográficas
Parte 2
50Contenido
- Introducción.
- Análisis y definición de los criterios estéticos.
- Algoritmos propuestos.
51Nuestro problema
- Dado un grafo G (V,E) y un conjunto de
regiones R, donde R es la región (no
vacía) del plano representada por el vértice
, encontrar un trazado de G en el plano que
sea estéticamente bueno y donde para
todo vértice
52Nuestro problema (2)
- Consideraciones generales
- Regiones representadas por polígonos o discos.
- Presentamos nuevas soluciones.
- Los algoritmos se basaron en SE y DH pero pueden
utilizarse las mismas ideas en cualquier otro.
53Nuestro problema (3)
- Trabajo previo
- No encontramos trabajos previos para nuestra
problema particular, sino para restricciones
parecidas pero que no alcanzan. - Restricciones sobre la posición de vértices
- Restricciones respecto a otros vértices. (Kamps
et al., 95) (Wang y Miyamoto, 82). - Restricciones lineales arbitrarias. (He y
Marriot, 98). - Restricciones no lineales. (Hansen et al., 02).
- Limitar los movimientos. (DiBattista et al., 99).
54Nuestro problema (4)
55Similitudes y diferencias
- Representar una región vs. estar dentro.
- Criterios estéticos.
- Algoritmos.
56Criterios estéticos
- Análisis de criterios previos.
- Presentación de nuevos criterios.
- Criterios especiales para segmentos.
57Criterios estéticos previos
- Minimizar cruces entre aristas.
- Maximizar el ángulo entre aristas adyacentes.
- Maximizar el ángulo entre aristas que se cruzan.
- Mostrar simetría.
- Distribución uniforme de los vértices.
- Longitud uniforme de aristas.
58Criterios estéticos
- Análisis de criterios previos.
- Presentación de nuevos criterios.
- Criterios especiales para segmentos.
59Criterios estéticos nuevos
- Los vértices deben estar ubicados cerca del
centro de sus regiones. - Los vértices no deben estar cerca de los bordes.
60Criterios estéticos nuevos
- Análisis de criterios previos.
- Presentación de nuevos criterios.
- Criterios especiales para segmentos.
61Algoritmos propuestos
- Por qué no utilizar los algoritmos ya
presentados? - Algoritmos utilizados
- Spring Embedder.
- DH.
62Adaptaciones
- Forma de proyectar.
- Longitud ideal de las aristas.
- Longitudes fijas NO!
- Longitudes variables
- Fuerzas centrípetas.
- Evitar vértices muy cercanos a los bordes.
- Minimizar cruces entre aristas.
63Adaptaciones aristas de longitud variable (2)
- Longitud ideal de aristas
- Distancia mínima
- Distancia máxima
- Distancia entre centros
- Distancia de compromiso
64Adaptaciones fuerzas hacia el centro (SE)
- Fuerza centrípeta
- Idea de nodo ficticio
65Adaptaciones fuerzas hacia el centro (DH)
- Penalizar distancia entre un vértice y su centro.
- Potencial
66Adaptaciones evitar vértices muy cercanos a los
bordes
- Implementado en DH.
- Primera idea
- Segunda idea
- Por qué elegir la segunda?
67Adaptaciones minimizar cruces entre aristas
- Implementado sobre DH.
- Distancia entre todo par de aristas.
68Adaptaciones minimizar cruces entre aristas (2)
- Distancia mínima entre vértices y cruces.
69Adaptaciones SER2 y DHR2
- Implementación en Java.
- Incluyen todas las ideas presentadas.
- Pueden probarse en http//www.luchemos.org.ar/rodr
igo/tesis.
70Adaptaciones SET
- Criterio que intenta cumplir los nodos no deben
estar cerca de las aristas. - Agrega fuerza de repulsión nodo-arista.
- Distancia ideal es la formada por el triángulo
equilátero.
71Ejemplos
- Malla 4x4 utilizando DHR2 y SER2
72Ejemplos (2)
73Ejemplos (3)
- República Argentina SER2 y DHR2
74Conclusiones y aportes
- Revisión del estado del arte
- Abarca la mayor parte de los trabajos publicados
hasta el momento. - Incluye los trabajos más recientes.
- Provee una visión consistente, comparativa y
transversal del tema.
75Conclusiones y aportes (2)
- Algoritmos para grafos donde los vértices son
regiones geográficas - Se presenta y analiza un nuevo problema.
- Se estudian criterios estéticos generales y se
presentan los propios del problema. - Se proponen algoritmos para los criterios
definidos. - Nuevo potencial para evitar cruces de aristas.
76Trabajo futuro
- Optimización de los algoritmos.
- Problema de grafos grandes.
- Otros tipos de regiones.
- Trazado inicial.
- Y muchos más!
77Muchas gracias! Preguntas?
- Para más información http//www.luchemos.org.ar/r
odrigo/tesis