La belleza de las redes: herramientas de visualización de grafos

12 noviembre, 2012

Cuando hablamos de «red», automáticamente nuestros pensamientos van hacia Internet. pero cada día encontramos a nuestro alrededor múltiples tipos de redes: redes sociales, redes de transporte como carreteras o trenes, redes de ordenadores, organigramas empresariales, redes eléctricas, etc. Sin ir más lejos, nuestro propio sistema nervioso es una red de neuronas conectadas entre sí.

Representación gráfica de los ISP y nodos de Internet
Representación gráfica de los ISP y nodos de Internet. Fuente: jurvetson @ Flickr. Licencia: CC BY 2.0

En matemáticas e informática, el concepto de red se denomina formalmente «grafo». Un grafo es una representación abstracta de las relaciones (denominadas «aristas» o «arcos») entre una serie de entidades (denominadas «vértices» o «nodos»). La teoría de grafos es la disciplina que estudia los diferentes tipos de grafos, sus propiedades y los múltiples problemas relacionados su análisis, manipulación y visualización.

La teoría de grafos intenta resolver situaciones muy cotidianas, como puede ser la búsqueda del camino más corto entre dos vértices. Este problema, aparentemente tan simple, es una parte importante del cálculo de la ruta que hacen los navegadores GPS. Otro problema «famoso» es el del viajante de comercio: encontrar la ruta más corta que pasa por un conjunto de ciudades y regresa a la ciudad de origen. En este caso, la fama viene de la complejidad de calcular la ruta óptima. Casualmente, en la naturaleza hay animales que tienen que resolver este problema (como las abejas cuando visitan flores para recoger néctar) y parece que lo hacen mejor que nosotros sin necesidad de tanta maquinita.

Otros dos ámbitos de aplicación donde la teoría de grafos ha encontrado su filón son el análisis de páginas web y el análisis de redes sociales. El ejemplo paradigmático del primer campo es el cálculo de la relevancia de una página web: el algoritmo PageRank de Google. En el segundo campo, ahora está de moda buscar tendencias en las redes sociales y las relaciones entre personas (usuarios influyentes, grupos cohesionados, etc.), en especial con el «gancho publicitario» de identificar posibles células terroristas.

Más allá de la teoría de grafos, el estudio de redes complejas en ámbitos como la biología o la sociología ha tomado forma como una disciplina en sí misma, la Network Science o análisis de redes (no confundir con la muy relacionada Web Science, dedicada al estudio del World Wide Web). El network science sería el coctel multidisciplinar que se obtiene mezclando teoría de grafos, estadística, business intelligence y visualización de la información, todo esto con buenas dosis de sociología, biología, geografía, etc. Agitar y servir frío.

Dado que uno de los objetivos del network science es obtener información útil y relevante a partir de una red, la visualización de la red es un factor clave. Una buena visualización puede resaltar los nodos relevantes, dar pistas sobre grupos cohesionados dentro de la red… o simplemente presentar grandes cantidades de información de forma atractiva. Y es que en muchas ocasiones las redes muestran una belleza singular. ¿Quién dijo que trabajar con datos está es un trabajo frío y aburrido?

Existen muchas herramientas para visualizar redes complejas y quería aprovechar esta entrada para enlazar algunas de estas herramientas, y más precisamente, a las galerías de ejemplos. Os recomiendo dedicar algunos momentos a estas galerías porque hay algunas imágenes curiosas:

– Graphviz: una herramienta de código abierto para la visualización de grafos.  Aquí está la galería de ejemplos, mis favoritos son este y este.

– aiSee: una herramienta comercial, gratuita para usos no comerciales. Aquí tenéis la galería de ejemplos (he tenido que recurrir a Wayback Machine) y algún ejemplo bonito de árboles (grafos sin ciclos).

– Gephi: una herramienta interactiva de código abierto para la visualización de redes complejas. Aquí y aquí podéis ver algunas imágenes.

– sigma.js: una librería Javascript de código abierto para la visualización de redes. Aquí una galería de ejemplos.

– Cytoscape: una plataforma de código abierto para la visualización de redes biológicas pero que también puede aplicarse a otros ámbitos. Aquí tenéis una galería de ejemplos de redes visualizadas con Cytoscape.

– LinkedIn Maps: un servicio web que permite dibujar las redes de contactos en la red social profesional LinkedIn. Aquí tenéis un ejemplo.

– Facebook: existen múltiples aplicaciones para visualizar la red de amigos (ya sea en forma de grafo o sobre un mapa).

– MentionMapp: Una herramienta de visualización de interacciones en Twitter.

Otras herramientas de visualización de información de propósito general, como D3.js (librería Javascript) o Flare (una librería ActionScript para Adobe Flash),  también permiten generar visualizaciones elegantes de redes complejas. Vayan aquí algunos ejemplos divertidos:

– la representación de una ontología sobre genética (D3.js)

– la lista de dependencias entre clases de Flare (D3.js)

– una red de citaciones científicas (Flare)

– los patrones de los números primos (D3.js)

– la (tristemente relevante) representación de las relaciones de deuda soberana entre países en la crisis del euro (D3.js).

Tenéis muchos ejemplos más aquí. ¡Que disfrutéis con la belleza de las redes!

(Visited 373 times, 1 visits today)
Autor / Autora
Robert Clarisó Viladrosa
Comentarios
Deja un comentario