Sei sulla pagina 1di 6

Lectura 1: Teora de grafos

Temas:
1.1 Grafos
1.2 Un poco de historia
1.3 Aplicaciones de los grafos

Bibliografa:
-

Estructuras de Datos en Java, Mark Weiss, Addison Wesley, 2000, captulo 14.
[Floyd] http://es.wikipedia.org/wiki/Algoritmo_de_Floyd-Warshall
[habitat] Spatial Graphs: Principles and Applications for Habitat Connectivity, Fall et al,
Springer New York, 2007.

Introduccin
Estas lecturas estn escritas para que los alumnos comprendan conceptos importantes de
estructuras de datos avanzadas, como grafos y rboles binarios de bsqueda, y para explicar
algunos algoritmos avanzados que resultan ms eficientes que otros que implementan una
solucin trivial. El primer mdulo, incluyendo esta lectura, presenta la Teora de Grafos, as como
tambin de algoritmos que pueden aplicarse sobre ellos. Espero que disfruten estas lecturas y les
sirva como apoyo de la bibliografa principal.

1.1. Grafos
Un grafo es una estructura matemtica empleada para modelar relaciones binarias entre objetos
de un cierto tipo. Ms formalmente, decimos que un grafo es una tupla <V, E>, donde V es un
conjunto de objetos llamados vrtices (o nodos), mientras que E es un conjunto de pares de
vrtices (pertenecientes a E), llamados aristas (o arcos).
La Teora de Grafos es una rama de las Matemticas y de las Ciencias de la Computacin que
estudia los grafos y sus propiedades.
Tpicamente, un grafo se representa de manera grfica mediante una serie de puntos u valos (los
vrtices) conectados por lneas o flechas (las aristas).
Materia: Algoritmos y Estructuras de Datos 2
Profesor: Claudio Ochoa

-1-

Figura 1. Ejemplos de grafos


Fuente: http://decsai.ugr.es/~jfv/ed1/tedi/cdrom/icons/grafo1.gif

En el grfico de la Figura 1, se observan varias representaciones grficas de diferentes grafos, en


los cuales los vrtices contienen datos y estn representados por valos con un rtulo
(instrucciones de pseudocdigo, nmeros y letras, ciudades, etc), mientras que las aristas
representan relaciones entre dichos datos. En los dos primeros grafos las aristas son orientadas
(representados por flechas), mientras que en el grafo de la derecha, las aristas no tienen
orientacin (representando una relacin bidireccional entre los nodos)
Ntese que la definicin formal de un grafo lo determina unvocamente, mientras que diferentes
representaciones grficas de un mismo grafo pueden diferir entre s (siendo isomorfas)

Figura 2. Dos representaciones de un mismo grafo


Fuente: http://es.wikipedia.org/wiki/Archivo:Grafo_ejemplo_1isom.png

Materia: Algoritmos y Estructuras de Datos 2


Profesor: Claudio Ochoa

-2-

En la Figura 2 se observan dos representaciones grficas del siguiente grafo: < {a, b, c, d, e, f }, {
(a,b), (a,c), (a,e), (b,c), (b,d), (d,f), (e,f) }>. En la Teora de Grafos, la forma de las aristas no es
relevante, slo importa a qu vrtices estn unidas. La posicin de los vrtices tampoco importa, y
se puede variar para obtener un dibujo ms claro.

1.2. Un poco de historia


El problema de los 7 puentes de Knigsberg es un problema histrico muy famoso en
Matemticas; fue resuelto por Leonhard Euler, en 1735, dando lugar a la Teora de Grafos y a la
Topologa.
La ciudad de Knigsberg, en Prussia (en la actualidad Kaliningrado, Russia) es atravesada por el
ro Pregel, cuyos brazos forman 2 islas. Estas islas estaban unidas con la ciudad a travs de 7
puentes. El problema de los 7 puentes consista en encontrar una ruta a travs de la ciudad que
cruzara cada puente exactamente una sola vez. La nica manera de acceder a las islas era a
travs de los puentes, y cada puente deba ser cruzado completamente cada vez (cruzar hasta la
mitad del puente y volverse sobre los pasos no estaba permitido en el planteo del problema). En
la Figura 3 se observa un mapa de la poca, con el ro Pregel y los 7 puentes coloreados sobre el
mismo.

Figura 3. Los puentes de Knigsberg


Fuente: http://en.wikipedia.org/wiki/File:Konigsberg_bridges.png

Leonhard Euler (Figura 5), un famoso matemtico y fsico Suizo que vivi en el siglo 18, en
Alemania y Rusia, demostr que el problema no tena solucin. Euler enfoc el problema
Materia: Algoritmos y Estructuras de Datos 2
Profesor: Claudio Ochoa

-3-

representando cada pedazo de tierra por un punto y cada puente, por una lnea, uniendo los
puntos (nodos) que se corresponden (Figura 4). Entonces, el problema anterior se puede trasladar
a la siguiente pregunta: se puede recorrer el dibujo terminando en el punto de partida sin repetir
las lneas?

Figura 4. Representacin del problema segn Euler


Fuente: http://es.wikipedia.org/wiki/Problema_de_los_puentes_de_K%C3%B6nigsberg

Euler demostr que no era posible. La explicacin es la siguiente: si un nodo tiene un nmero
impar de lneas que inciden en l, necesariamente ha de ser el primer o ltimo nodo del recorrido.
Por lo tanto, no se podr encontrar una ruta que resuelva el problema si existen ms de 2 nodos
con nmero impar de lneas incidentes (ya que no puede haber ms de un inicio y un final en una
ruta continua). En el caso de los puentes de Knigsberg hay 4 nodos que tienen nmero de lneas
incidentes impar, por lo que no se puede encontrar una solucin al problema.

Figura 5. Retrato de Leonhard Euler


Fuente: http://en.wikipedia.org/wiki/File:Leonhard_Euler_2.jpg
Materia: Algoritmos y Estructuras de Datos 2
Profesor: Claudio Ochoa

-4-

1.3. Aplicaciones de los grafos


La Teora de Grafos se utiliza en muchas y diferentes reas, y en la resolucin de diversos
problemas, como por ejemplo, la sntesis de circuitos secuenciales, contadores o sistemas de
apertura en Electrnica, o para modelar trayectos como el de una lnea de autobs a travs de las
calles de una ciudad, en el que podemos obtener caminos ptimos para el trayecto aplicando
diversos algoritmos, como puede ser el algoritmo de Floyd-Warshall [Floyd].
En la rama de la administracin de proyectos, veremos ms adelante cmo los grafos permiten
identificar el tiempo mnimo de terminacin de un proyecto, o saber cules actividades no pueden
retrasarse sin producir un retraso en el tiempo total del proyecto.
Los grafos son importantes tambin en el estudio de la biologa y hbitat [habitat]. El vrtice
representa un hbitat y las aristas representan los senderos de los animales o las migraciones.
Con esta informacin, los cientficos pueden entender cmo esto puede cambiar o afectar a las
especies en su hbitat.
Sin ir ms lejos, uno puede encontrarse con problemas representables por grafos en la vida
cotidiana. Supongamos que se desea viajar desde la Ciudad de Crdoba, Argentina, hasta la
ciudad de Portland, Oregon, Estados Unidos. Hay mltiples alternativas para realizar este vuelo,
por ejemplo:
-

Crdoba Santiago Los ngeles Portland

Crdoba Buenos Aires Miami Houston Portland

Crdoba Panam Mxico DF Dallas Portland

Estas alternativas podran ser representadas en un grafo, que denota las diferentes rutas
ofrecidas por varias compaas, para comunicar dos ciudades. Como se observa en la Figura 6,
este grafo puede resultar bastante complicado, y las alternativas pueden ser numerosas. A travs
de esta representacin, podemos resolver cul es la ruta ms corta (en tiempo o en distancia), la
ms barata, entre otros.

Materia: Algoritmos y Estructuras de Datos 2


Profesor: Claudio Ochoa

-5-

Figura 6. Grafo de rutas de vuelo


Fuente: http://ecoluxairlines.files.wordpress.com/2010/01/route_graph_in_air-php-11-01-10.gif

Materia: Algoritmos y Estructuras de Datos 2


Profesor: Claudio Ochoa

-6-

Potrebbero piacerti anche