You are on page 1of 41

ALGEBRA Y MATEMTICA DISCRETA

FACULTAD DE INFORMTICA
ULPGC

Profesor: Jos M. Pacheco Castelao

Curso 2009-2010

Parte 3: Grafos y Aplicaciones

AyMD 09-10 Grafos y 1


Aplicaciones
Qu es un GRAFO?
Un GRAFO es la abstraccin matemtica de un
cableado que conecta diversos aparatos, o de
un recorrido con diferentes estaciones.
Para definir un grafo se necesitan: un conjunto
V de objetos (los vrtices del grafo), y un
subconjunto arbitrario de todas las posibles
combinaciones binarias sin repeticin de los
vrtices. Cada pareja de vrtices que hayamos
elegido recibe el nombre de arista del grafo. El
conjunto de todas las aristas se denota por E.
Orden del grafo: V = n
Por tanto, un grafo se define como el par de
n
conjuntos G = (V, E). El nmero de vrtices es Nmero mximo posible de aristas en un grafo:
el orden del grafo. Si el grafo contiene todas 2
las aristas posibles, decimos que es completo. n
Si E = , el grafo es completo. El grafo
Puesto en frmulas, tendremos: 2
completo con n vrtices se escribe K n

AyMD 09-10 Grafos y 2


Aplicaciones
Cmo representar un grafo? (1)
El modo ms simple y habitual es dibujar un conjunto de puntos (los vrtices), y
representar mediante segmentos de recta o arcos de curva las aristas:

He aqu un grafo con 6 vrtices y 5 aristas. No es un grafo


completo. Si definimos un grafo conexo como aqul donde
hay por lo menos un camino entre cada dos vrtices
[veremos la definicin de camino un poco ms adelante],
observamos que ste no lo es: Hay un grupo de slo dos
vrtices unidos por una arista, pero aislado del resto del
grafo. Diremos que se trata de un grafo no conexo.
5
Este otro s es un grafo completo, pues n=5 y E = 10 = .
2
Adems, como es completo, automticamente es conexo.

NOTA: La definicin que usamos es la de grafo simple: Cada dos vrtices definen como mximo
una arista, y no hay arista alguna cuyo principio y final sea un mismo vrtice.

AyMD 09-10 Grafos y 3


Aplicaciones
Cmo representar un grafo? (2)
La representacin numrica de un grafo necesita nombrar los vrtices de alguna manera.
Lo habitual es numerarlos, con lo que se puede conseguir una descripcin matricial del
grafo, adecuada para su tratamiento algebraico o informtico.
4
1 Cuando dos vrtices est conectados por una arista, se les
llama adyacentes. Por ejemplo, en el grafo adjunto, 1 y 3 son
adyacentes, pero 1 y 2 no lo son. Podemos representar en
3 una tabla la adyacencia entre los vrtices
2
La tabla sugiere definir la MATRIZ DE ADYACENCIA
ady del grafo de la siguiente forma: Es una matriz n n
1 2 3 4
1 si los vrtices i, j son adyacentes
1 0 0 1 0 A = aij =
0 si no lo son
2 0 0 1 1
0 0 1 0
3 1 1 0 1 0 0 1 1
En el ejemplo: A =
4 0 1 1 0 1 1 0 1

0 1 1 0
Tabla / matriz de adyacencia:
Simtrica y 0s en la diagonal
AyMD 09-10 Grafos y 4
Aplicaciones
Cmo representar un grafo? (3)
Si tambin se asignan nombres a las aristas se obtiene otra descripcin matricial del grafo.

e 4 La relacin de incidencia: Un vrtice y una arista son


1 c incidentes cuando el vrtice es alguno de los extremos de la
b
arista. Por ejemplo, en el grafo adjunto, 1 y e son incidentes,
d pero 1 y b no lo son. Podemos representar en una tabla la
2 a 3 incidencia entre los vrtices y las aristas:

La tabla sugiere definir la MATRIZ DE INCIDENCIA


del grafo de la siguiente forma: Es una matriz n m
inc a b c d e
1 si el vrtice i, y la arista j son incidentes
1 0 0 1 0 1 B = bij =
0 si no lo son
2 1 0 0 1 0
0 0 1 0 1
3 1 1 1 0 0 1 0 0 1 0
En el ejemplo: B =
4 0 1 0 1 1 1 1 1 0 0

0 1 0 1 1
Tabla / matriz de incidencia

AyMD 09-10 Grafos y 5


Aplicaciones
El ancho de banda de la matriz de adyacencia
La matriz de adyacencia de un grafo depende de la numeracin de los vrtices (el orden en
que se consideran) . Ello tiene importancia a la hora de almacenar la descripcin del grafo en
un fichero. La idea bsica es que cuanto ms se parezca una matriz a una matriz diagonal,
menos espacio se necesitar para guardarla.
1
3 6
El problema de numerar los 5
vrtices de un grafo para
4 4
2 minimizar el ancho de banda 1
es MUY complicado

5 6 2
3
Por ejemplo, con esta numeracin Pero con esta otra,
la matriz de adyacencia es : la matriz es :
0 1 0 1 0 0 La primera matriz es ms diagonal que la 0 1 0 0 1 1
1 0 1 0 0 1 segunda. Su ancho de banda es 4, frente 5 en la 1 0 1 0 0 0

0

1 0 1 1 0

otra. El ancho de banda es la mayor distancia de la 0

1 0 1 1 0

1 0 1 0 1 0
diagonal a la que podemos encontrar un 1, medida 0 0 1 0 1 1
0 0 1 1 0 1 1 0 1 1 0 0

0 1 0 0 1

0
en vertical u horizontal.
1 0 0 1 0

0

AyMD 09-10 Grafos y 6


Aplicaciones
El grado de los vrtices
El nmero de aristas que concurren en un vrtice se llama grado del vrtice y lo
escribiremos como g(v). Si un vrtice est aislado, se define su grado como 0.
La suma de los elementos de cada una de las filas o columnas de la matriz de
adyacencia del grafo es el grado del vrtice cuyo nmero es el de la fila o columna. En
la matriz de incidencia, los grados de los vrtices son las sumas por filas. El primer
resultado sobre grados es el siguiente:
TEOREMA: La suma de los grados de todos los vrtices de un grafo es igual al
doble del nmero de aristas
La DEMOSTRACIN es simple: Elijamos un vrtice cualquiera y apuntemos su
grado. Pasemos a otro vrtice. Si es adyacente al anterior, al apuntar su grado ya
habremos contado dos veces la arista de conexin con el primero, si no, continuamos:
El resultado se obtiene repitiendo el proceso hasta haber pasado por todos los vrtices y
haber contado, por tanto, dos veces cada arista..
Corolario (un corolario es un resultado que se deduce con facilidad de un teorema):
El nmero de vrtices de grado impar en un grafo es par
Para verlo basta con observar que la suma de todos los grados es par, y que se compone
de la suma de los grados de los vrtices de orden par (que es par) y de la suma de los
grados de los vrtices de orden impar. Como esta ltima cantidad tiene que ser par, el
nmero de vrtices de orden impar es obligatoriamente par.
AyMD 09-10 Grafos y 7
Aplicaciones
Grafos bi- y multipartitos
En problemas relacionados con el emparejamiento de objetos aparece el concepto de
grafo bipartito. Se llama as a aquellos grafos cuyo conjunto de vrtices se
descompone en dos subconjuntos disjuntos, de forma que los dos extremos de
cualquier arista se hallen en distinto subconjunto.

V = A B, A B = La primera figura muestra un grafo bipartito. A={1,4} y


B={2,3}. Un grafo bipartito no puede ser completo en el
uv E (u A, v B)
sentido habitual de la palabra, excepto si slo tiene dos
vrtices y una arista.
4 Si A = n y B = m, el nmero mximo de aristas de un
1
grafo bipartito es nm. A los grafos bipartitos con todas
las aristas posibles se les llama bipartitos completos
2 3 y se escriben K n ,m
4 En la segunda figura tenemos un grafo tripartito, con
1 5 A={1,4}, B={2,3} y C={5,6} Qu ms hace falta para
definir exactamente un grafo tripartito, adems de los tres
conjuntos disjuntos de vrtices?
2 3
AyMD 09-10 Grafos y 8
6 Aplicaciones
Caminos y circuitos en un grafo
Cuando se trabaja con grafos, un problema tpico es intentar recorrer de modo
ordenado un conjunto de aristas o de vrtices. Para formalizar esta idea necesitamos
algunas definiciones.
Un CAMINO es una sucesin de vrtices, todos diferentes, tales que cada dos
consecutivos determinan una arista del grafo. Si permitimos que el ltimo vrtice
coincida con el primero, tenemos un CIRCUITO, o camino cerrado. La longitud de un
camino es el nmero de sus aristas.

Camino : W = {v1 , v2 ,..., vs }, vi vi +1 E


long(W ) = s 1
Circuito : C = {v1 , v2 ,..., vs , v1}
long(C ) = s

e 4 {1,3,4,2} es un camino, de longitud 3, y {1,3,4,1} un


1 c circuito, tambin de longitud 3.
b
d
2 a 3

AyMD 09-10 Grafos y 9


Aplicaciones
Los Hipercubos
El hipercubo de dimensin k es un grafo cuyos vrtices son las variaciones con repeticin
de los dos elementos {0,1} tomados de k en k. Las aristas estn definidas por pares de
vrtices cuyas descripciones slo se diferencien en un dgito binario. Por ejemplo, en el
hipercubo de orden 3 los vrtices 110 y 000 no estn conectados por una arista. As pues:

H(1): V= {0, 1}, E ={0-1}


H(2): V= {00,01,10,11}, E ={00-01, 00-10, 01-11, 10-11}
H(3): V= {000,001,010,100,110,101,011,111},
H(3)
Vrtice con n impar de 1s
Vrtice con n par de 1s

El grado de los vrtices de H (k ) es siempre k .


El nmero de vrtices de H (k ) es VRk2 = 2k .
El nmero de aristas es k 2 k 1 , pues: H(2)

2 E = g (v ) = k V = k 2 k .
vV H(1)

AyMD 09-10 Grafos y 10


Aplicaciones
Distancias en un Grafo
Si u y v son dos vrtices de un grafo, llamaremos distancia entre ellos a la menor de las
longitudes de los posibles caminos que los conecten. Si no se pueden conectar por un
camino, diremos que la distancia entre ellos es infinita.
El dimetro de un grafo es la mayor de las posibles distancias entre sus vrtices. Si el
grafo no es conexo, su dimetro es infinito.

El dimetro de H (k ) es k

Dos vrtices a distancia 1

Dos vrtices a distancia 3

Dos vrtices a distancia 2

Dos vrtices infinitamente lejanos

AyMD 09-10 Grafos y 11


Aplicaciones
Teorema de caracterizacin de grafos bipartitos (1)
Qu es un teorema de caracterizacin?

Por regla general, en Matemticas un teorema es un frase del tipo si A,


entonces B , AB.
La parte A se denomina hiptesis, y la B, tesis.
El proceso mental por el cual nos convencemos de la verdad de la frase se
llama demostracin del teorema.

Si un teorema AB es verdadero, entonces decimos que A es condicin


suficiente para B, y que B es una condicin necesaria de A.

La expresin AB es la recproca de AB. Lo habitual es que slo una de las


dos expresiones sea verdadera, pero cuando ambas lo son, lo cual escribimos AB,
entonces tenemos un teorema de caracterizacin. Estos teoremas se suelen formular de la
manera A es condicin necesaria y suficiente de B, o A si y slo si B, y una vez
demostrados permiten utilizar las propiedades A y B de forma intercambiable en
deducciones posteriores.

AyMD 09-10 Grafos y 12


Aplicaciones
Teorema de caracterizacin de grafos bipartitos (2)
Un grafo es bipartito si y slo si todos los posibles circuitos que hay en l son de longitud
par [Ntese la estructura AB].
Habr que demostrar que bipartito ciclos de longitud par, y despus, que ciclos de
longitud par bipartito
La primera demostracin es sencilla: Si un circuito comienza y acaba en un vrtice de una
de las componentes del conjunto total de vrtices V, las aristas que lo forman conectan las
dos componentes consecutivamente. Por tanto su longitud es par.
La segunda es algo ms complicada. La idea de la demostracin es que tomemos un
vrtice cualquiera v, y encontraremos las dos componentes de V as:
V = I P, donde I = {vrtices a distancia impar de v} , y
P = {vrtices a distancia par de v} .

H(3) es un grafo bipartito: P = {rombos}, I = {crculos}


NOTA: Todos los H(k) son bipartitos
v
AyMD 09-10 Grafos y 13
Aplicaciones
Otro teorema de caracterizacin de grafos bipartitos
Colorear un grafo consiste en adjudicar un color a cada vrtice, con la condicin de que
no haya nunca dos vrtices adyacentes del mismo color. Se plantea el siguiente
problema: Cul es el nmero mnimo de colores necesario para colorear un grafo?
Ese nmero se llama nmero cromtico del grafo.
5
4 4
1 1
G

2 G 3 3
2
1, 4: Rojo. 2, 3: Negro Rombos: Rojo. Crculos: Negro 1, 3: Rojo. 2, 4: Negro. 5: Azul
Nmero cromtico 2 Nmero cromtico 2 Nmero cromtico 3

TEOREMA: Un grafo es bipartito si y slo si su nmero cromtico es 2 [Ntese de


nuevo la estructura AB].
Habr que demostrar que bipartito nmero cromtico 2, y despus, que nmero
cromtico 2 bipartito: Son un par de ejercicios.
AyMD 09-10 Grafos y 14
Aplicaciones
Dado un grafo G = (V , E ), otro grafo G ' = (V ', E ') es un subgrafo de G si

Subgrafos
V ' V y E ' E , de forma que las aristas en E ' sean compatibles con
la eleccin de los vrtices que forman V '. Si E ' es el conjunto de todas las
aristas que haba en G entre los vrtices de V ', se dice que G ' es un subgrafo
inducido.
4 4
4 1 1
1

3 2 3
2
2 G 3
Un subgrafo G Otro subgrafo G
4
4
1 1
1

2 3 2 3
3
Un subgrafo inducido ste no es un subgrafo ste tampoco

AyMD 09-10 Grafos y 15


Aplicaciones
Grafos isomorfos (1)
(del griego iso = igual + morphos = forma)
Dados dos grafos G = (V , E ) y G ' = (V ', E '), G y G ' son isomorfos si se puede
establecer una correspondencia biunvoca f : G G ' que asocie los vrtices de
V con los de V ' y conserve las relaciones de incidencia. En frmulas:
V = V ' , E = E ' , y si uv es una arista en G , entonces f (u ) f (v ) lo es en G '.

5 f(3)
4 f(5)
1 f
f(1)
G

2 3 f(2)
f(4) G

Dos grafos isomorfos y el isomorfismo f entre ellos

AyMD 09-10 Grafos y 16


Aplicaciones
Grafos isomorfos (2)
Dados dos grafos isomorfos G = (V , E ) y G ' = (V ', E '), de las relaciones
V = V ' , E = E ' , "si uv es una arista en G, entonces f (u ) f (v ) lo es en G '",
se deduce inmediatamente que para todo v V , el grado de v es igual al de
f (v). Por tanto, tambin se conservan ciertas relaciones espaciales :
Pertenecen a la clase de las Propiedades Topolgicas de los grafos,

5 f(3)
4
f f(5)
1 f(1)
G

2 3 f(2)
f(4) G

En estos dos grafos isomorfos se observa que 5 y f(5) tienen grado 4, y que tanto 5
como f(5) tienen dos vrtices de grado 2 y otros dos de grado 3 a distancia 1.

AyMD 09-10 Grafos y 17


Aplicaciones
rboles (1)
Un grafo G = (V , E ) que sea conexo y no contenga circuitos se llama rbol.
Si G = (V , E ) es un grafo cualquiera, y G ' = (V ', E ') un subgrafo tal que V ' = V
y adems es un rbol, diremos que G ' es un rbol generador de G.

Posibles rboles con 1, 2, 3, 4 y 5 vrtices. Comprobar que estn todos. Cuntos hay con 6?

Los rboles son la base terica de los algoritmos de bsqueda, de ah su


importancia en Informtica.
Teoremas de caracterizacin de rboles:
I. G es un rbol si y slo si entre cada dos vrtices existe slo un camino (sin aristas
repetidas, claro)
II. G es un rbol si y slo si es conexo y el nmero de aristas es igual al de vrtices
menos 1
AyMD 09-10 Grafos y 18
Aplicaciones
rboles (2)
Un corolario del Teorema II es: "Si G = (V , E ) es un rbol, entonces g (v ) = 2 V
vV
2".

Teorema de existencia: "Si G = (V , E ) es un grafo conexo, entonces posee un rbol generador".


La demostracin del Teorema de existencia consiste en el diseo de un algoritmo
adecuado:
I. Inicializacin: Partimos de un vrtice cualquiera siguiendo un camino.
II. Recurrencia.
1. Si conseguimos pasar por todos los vrtices sin repetir ninguno, ya tenemos el rbol.
2. En caso contrario, quedar al menos un vrtice fuera del camino, pero por ser
conexo el grafo, existir alguna arista que conecte un vrtice del camino con aqul.
Este es el principio de una rama del rbol. Si siguindola (sin repetir ningn vrtice)
se acaban los vrtices del grafo, hemos terminado. Si no, volvemos 1.
Un problema difcil es saber cuntos rboles generadores puede tener un grafo. Para el caso
de un grafo completo tenemos el siguiente Teorema:

"El nmero de rboles generadores de un grafo completo con n vrtices es n n 2 ".

AyMD 09-10 Grafos y 19


Aplicaciones
rboles (3): buscando rboles generadores

5 5
4 Un caso fcil 4
1 1
G

2 3 2 3

v v
Un caso menos fcil

Camino Rama 1 Rama 2

AyMD 09-10 Grafos y 20


Aplicaciones
Algoritmos de bsqueda (1)
Motivacin: Imaginemos buscar una palabra en un diccionario (de los de papel).
Comenzamos por la primera letra, despus miramos la primera ms la segunda, y as hasta
hallar finalmente la palabra completa. Acabamos de ver un ejemplo de algoritmo de
bsqueda. El diccionario se puede equiparar a un grafo con un primer grupo de 26 (
27) vrtices numerados desde A1 hasta Z1. De cada uno de esos vrtices parten otras tantas
aristas hacia vrtices que volvemos a numerar desde A2 hasta Z2 y as sucesivamente. El
grafo obtenido es un rbol. Hallar una palabra consiste en recorrer la rama adecuada
del rbol.
Diccionario

A1 B1 Y1 Z1
A2 B2 Y2 Z2

A3 E3 Y3 Z3

Bsqueda de la palabra bye

AyMD 09-10 Grafos y 21


Aplicaciones
Algoritmos de bsqueda (2)
El ejemplo anterior era un caso sencillo de bsqueda de un vrtice en un grafo. Result fcil
porque el diccionario ya era un rbol. Si el grafo tiene una estructura ms complicada, la
bsqueda comienza por encontrar subgrafos que sean rboles. Hay dos estrategias
principales para ello: La primera es la bsqueda horizontal o a lo ancho, y la segunda, la
bsqueda vertical o en profundidad. Presentemos ambas sobre un mismo ejemplo.

a h En el algoritmo a lo ancho comenzamos en a y


construimos una primera capa con todos los
g
b vrtices que se hallan a distancia 1 de l. A
continuacin hacemos lo mismo a partir de cada uno
de los vrtices de esta capa, y as sucesivamente,
c f hasta agotar el grafo. El resultado es:

d
e a
Dist. 1 b d h

Dist. 2 c e g

Dist. 3
f
AyMD 09-10 Grafos y 22
Aplicaciones
Algoritmos de bsqueda (3)
En el algoritmo en profundidad, comencemos tambin en a y construyamos una primera
rama con vrtices sucesivos que se hallen a distancia 1, 2, 3, etc., de l. Acabada esta rama,
por orden y a partir de cada uno de los vrtices de ella procederemos de igual modo, hasta
agotar el grafo. El resultado es:

a h a
b g
b e

c g
f c
e
d d f h
NOTAS:
1. Para ser estricto, habra que probar la correccin de los algoritmos.
2. El algoritmo puede no ser nico. Entonces se plantea el problema de hallar el algoritmo ptimo.
3. Obsrvese que el algoritmo en profundidad sigue exactamente la demostracin de existencia de
rboles generadores.
AyMD 09-10 Grafos y 23
Aplicaciones
Grafos orientados o dirigidos
Dado un grafo cualquiera G, se puede considerar que la arista uv que conecta dos vrtices
ha sido dotada de un sentido concreto: Puede recorrerse de u v, al revs. Una vez
seleccionado un sentido en todas las aristas, el grafo G pasa a ser un grafo orientado o
dirigido (ver NOTA abajo).
G G
G (V , E ) : grafo; G (V , E ) : grafo orientado
Orden del grafo orientado: V = n
n 5
Nmero mximo de aristas del grafo:
2 4
Las aristas de un grafo dirigido son 1
G
variaciones binarias de sus n vrtices, pero G
slo son posibles la mitad de ellas como 3
2
mximo, pues cada arista tiene un nico
sentido.

NOTA LINGSTICA: La expresin grafo dirigido es equvoca en castellano. Lo


correcto es decir grafo orientado o con sentidos en las aristas. En una lnea (recta)
hay una sola direccin, pero dos sentidos u orientaciones.

AyMD 09-10 Grafos y 24


Aplicaciones
Grados y matrices en grafos orientados (1)
En un grafo ordinario, el grado de un vrtice es el nmero de aristas que concurren en l.
Al dotar de sentidos a las aristas, algunas de las que concurren en el vrtice apuntarn hacia
l, y las restantes al contrario. El nmero de aristas que apuntan hacia el vrtice es el grado
de entrada, y el nmero de las que salen de l, el grado de salida del vrtice. En frmulas:
5
+
Grado de entrada de v: g (v)
4

Grado de salida de v: g (v) 1
+
Grado ordinario de v: g (v) = g (v) + g (v) G
G
Si g (v) = g + (v), v es un vrtice sumidero
2 3
Si g (v) = g (v), v es un vrtice fuente

En el grafo de la figura, el 1 es un sumidero y el 4 una fuente

La matriz de adyacencia, A, de un grafo orientado es la matriz del grafo sin tener en


cuenta los sentidos de las aristas. Sin embargo, la matriz de incidencia, B, s ha de tener en
cuenta los sentidos de las aristas.

AyMD 09-10 Grafos y 25


Aplicaciones
Grados y matrices en grafos orientados (2)
La MATRIZ DE INCIDENCIA de un grafo orientado 5
e
a 4
se define de la siguiente forma:
Es una matriz B de orden n m donde: 1 g
f G d
+1 si la arista j apunta hacia el vrtice i b G

bij = 0 si la arista j no incide con el vrtice i 2 3
1 si la arista j sale del vrtice i
c

1 1 0 0 0 0 0
0 1 1 0 0 1 0 S i g ij es la m atriz definida por:

En el ejemplo: B = 0 0 1 1 0 0 1 g ( v i ) si i = j
g ij =
0 0 0 1 1 0 0 0 si i j

1 0 0 0 1 1 1 E ntonces se cum ple la ecuacin:
B B t + A = g ij
La suma por columnas es siempre 0. El nmero (perm ite deducir A de B )
de elementos no nulos de cada fila es el grado
(ordinario) del vrtice que define la fila.
AyMD 09-10 Grafos y 26
Aplicaciones
Caminos y circuitos en grafos orientados
Las definiciones de camino y circuito se trasladan directamente a los grafos orientados.
Slo hay que exigir que en los vrtices del camino sean compatibles los sentidos de las
aristas: Si una entra, la otra sale. En los extremos del camino, si no es un circuito, una
sale y la otra entra. En la figura, 4321 es un camino dirigido ente 4 y 1. Sin embargo, en
ese grafo no hay circuitos orientados.
Un grafo orientado se llama acclico si en l no hay circuitos orientados. El de la figura
es acclico.
Un grafo orientado se llama fuertemente conexo si en l existe un camino orientado
entre cualquier par de puntos. Si es fuertemente conexo, es tambin conexo. El de la
figura no es fuertemente conexo (pero s conexo), pues desde el vrtice 1 no se puede
llegar a ningn otro siguiendo un camino orientado
5 TEOREMA sobre grafos acclicos: En un grafo
e
a 4 acclico siempre hay al menos un vrtice fuente y uno
1 g sumidero
f G d
b G Demostracin: Intntenla!

2 3 Los grafos acclicos son modelos apropiados para


c problemas de transporte y distribucin
AyMD 09-10 Grafos y 27
Aplicaciones
Multigrafos (1)
Hasta ahora slo se han estudiado grafos en los que slo se permite una nica arista
entre vrtices adyacentes, orientada o no. Tampoco se han permitido circuitos formados
por una nica arista.
Un multigrafo es un grafo G(V,E) en el que se permite la existencia de ms de una arista
entre vrtices adyacentes y ciclos consistente en una sola arista.
La definicin de multigrafo orientado es inmediata: Todas las aristas tienen adjudicada
una orientacin.

Un multigrafo (izq) y un multigrafo orientado (dcha)

AyMD 09-10 Grafos y 28


Aplicaciones
Multigrafos (2): Grados y matrices
La matriz de adyacencia de un multigrafo se define como en el caso de un grafo simple,
pero en lugar de un 1 se pondr el nmero de aristas paralelas si hay ms de una entre
vrtices incidentes. Los circuitos que constan de una sola arista cuentan como dos
aristas.

1 g 0 2 0 0 0 1 1 0 0 0 0 0
2 0 1 0 0 1 1 1 0 0 0 0

f 5 B1 = 0 0 1 1 1 1 0
a b A1 = 0 1 0 2 1
0 0 0 1 1 0 0
e 0 0 2 0 0 0 0 0 0 0 1 2
4 0
2 0 1 0 2
c
3 d

i 0 2 0 0 0
2 0 1 0 0
1 1 0 0 0 0 0 0
1 1 1 0 0 0
0 0
A2 = 0 1 0 3 1 B2 = 0 0 1 1 1 1 1 0
a
0 0 0 1 1 1 0 0
h 0 0 3 0 0
0 0 0 0 0 0 1 0
b 0 0 1 0 2
d
c f
g
AyMD 09-10 Grafos y 29
Aplicaciones
El problema del laberinto (1)
Se trata de un ejercicio sobre multigrafos orientados. Resolver un laberinto es hacer un
recorrido por un grafo, que comience y acabe en un mismo vrtice, pasando por todos
los vrtices (las veces que haga falta) y donde todas las aristas han de recorrerse
exactamente una vez en cada uno de los dos sentidos posibles.

+ = laberinto completo
entrada salida salida entrada

primer paso, flecha gruesa primer paso, flecha gruesa, segundo y tercero , flechas de puntos

El grafo de la izquierda puede recorrerse de un solo trazo, sin levantar el lpiz del papel, tal
como se muestra, sin repetir arista alguna. Sin embargo, no se sale por el punto de entrada.
Para conseguirlo y as resolver el laberinto, hay que aadirle el recorrido sealado en la figura
del centro. Es inmediato comprobar que el recorrido combinado resuelve el laberinto: Se
entra y sale por la esquina inferior izquierda, y todas las aristas se recorren una vez en cada
sentido (observar las flechas).
AyMD 09-10 Grafos y 30
Aplicaciones
El problema del laberinto (2)
Algoritmo de resolucin del problema del laberinto:
1. Tomar un vrtice de partida u.
2. Al recorrer una arista uv y llegar a un vrtice v, anotar la arista.
3. Slo se podr recorrer la arista vu (la misma del paso 2 en sentido contrario) tras
haber pasado por todas las dems aristas que confluyen en v.

Teorema: El algoritmo es correcto. En efecto, por definicin en todo vrtice del laberinto
el grado de entrada ha de ser igual al grado de salida. En particular, ello se consigue si todas
las aristas que confluyen en un vrtice aparecen en l en los dos sentidos: llamemos
adecuados a los vrtices que cumplen esta propiedad (observacin: los grados de entrada y
salida de un vrtice tambin seran iguales si elegido un par de aristas, una fuese de entrada,
otra de salida y las restantes con ambos sentidos). Si en el laberinto hay vrtices no
adecuados, sea v el primero que encontramos en el recorrido y sea uv la arista por la que
llegamos a v y que no aparece recorrida en sentido contrario. Por tanto el vrtice u tampoco
es adecuado, pero ello es imposible porque v era el primero del recorrido con esa propiedad:
contradiccin! Luego todos los vrtices del laberinto son adecuados y el algoritmo es
correcto.
AyMD 09-10 Grafos y 31
Aplicaciones
Grafos ponderados y optimizacin
Un problema tpico de optimizacin sobre grafos se puede formular como hallar el
camino mnimo entre dos vrtices, donde la palabra mnimo puede tener diversos
significados. Por ejemplo, si las aristas representan carreteras y los vrtices ciudades, se
puede considerar mnimo como el de menor kilometraje, o aqul donde el gasto de
combustible es menor, o por dnde menos semforos existen, etc. En cualquier caso,
el modelo matemtico es un grafo en el cual a cada arista se le dota de una ponderacin
o peso que representa el gasto de recorrerla. Ello puede hacerse en grafos de cualquier
tipo de los vistos hasta ahora.

En frmulas, un grafo G (V , E ) es ponderado


cuando hay una aplicacin p : E \ + que
4 asocia a cada arista uv su "peso" p (uv).
1 3 Si P = {v1 , v2 ,..., vk } es un camino, el "peso"
3 1 k 1
del camino es p ( P ) = p(vi vi +1 ). Si todos
1 i =1
2
los pesos son iguales 1, el peso del camino
coincide con su longitud.
AyMD 09-10 Grafos y 32
Aplicaciones
El algoritmo de Dijkstra (1)
El problema de obtener el camino de peso mnimo entre dos vrtices cualesquiera u y v
se puede resolver mediante un algoritmo debido al matemtico holands Dijkstra.

Idea del algoritmo: A partir del grafo ponderado G(V , E ) vamos generando subgrafos (caminos)
a partir de un vrtice inicial, aadiendo de uno en uno vrtices y aristas, eligiendo el paso siguiente
tras calcular el peso de los caminos que han ido apareciendo y quedarnos con el menor.
Algoritmo:
I. Inicializacin. Vrtice inicial: v0 . Subgrafo inicial G0 ({v0 } , ), con p(v0 ) = 0.
II. Recurrencia. Si hemos llegado al subgrafo (camino) V j = G j ({v0 , v1 ,..., v j } , {e1 , e2 ,..., e j }), pueden
pasar dos cosas:
1. j = V 1. Entonces, el problema est resuelto.
2. En caso contrario, para cada par de vrtices (v, w), con v Vi y w Vi , calculemos la expresin
F (vw) = p(v) + p (vw), donde p (v) es el peso del tramo del camino V j entre v0 y v. Elijamos v *
y w *de manera que F (u * w*) sea el menor posible, y aadamos al camino G j el nuevo vrtice
w* = v j +1. Despus, volvemos al paso 1.

AyMD 09-10 Grafos y 33


Aplicaciones
El algoritmo de Dijkstra (2)
Consideremos un par de ejemplos, con un mismo grafo, para ilustrar el algoritmo de
Dijkstra: Notemos que el algoritmo construye un rbol generador, a lo largo de cuyas
ramas se van obteniendo los caminos mnimos desde el vrtice inicial hasta cualquier
otro.
1
caminos mnimos

3
1 1 4 3
inicio

3
1 4 3 2 3
4
1 2
2 3
4 inicio 5
1 2

5 AyMD 09-10 Grafos y 34


Aplicaciones
El algoritmo de Dijkstra (3)
Vamos a demostrar que este algoritmo construye el camino mnimo. La idea es ver que
si encontramos un camino mnimo por cualquier otro mtodo, ste ser ms pesado que
el dado por el algoritmo. La demostracin es como sigue:

Consideremos la construccin indicada en la etapa 2 del algoritmo, y sea p[(v0 ,..., w*)] el
peso del camino hallado. Sea ahora P otro camino mnimo entre v0 y w*, que contenga por
lo menos un vrtice w V j . Por tanto, existir un v V j que ser el ltimo antes de que el
camino P se desve hacia w. As pues, P se compone de tres tramos: El camino (v0 ,..., v),
la arista vw y el camino ( w,..., w*), donde los dos subcaminos son tambin mnimos.
Luego su peso ser (ver la figura adjunta):
p ( P) = p (v) + p (vw) + p[( w,..., w*)] = F (vw) + p[( w,..., w*)] F (v * w*) = p[(v0 ,..., w*)]
Esto es, P es tan pesado o ms que el camino de Dijkstra.

v0 v1 v vj w*
w
AyMD 09-10 Grafos y 35
Aplicaciones
Caminos, circuitos y grafos Eulerianos y Hamiltonianos (1)
En un grafo tiene importancia saber si determinados recorridos son posibles o no, o si
poseen alguna propiedad especial. Veamos algunas definiciones:
Un camino euleriano es aqul que recorre todas las aristas del grafo sin repetir ninguna.
Si el camino es un circuito, ser un circuito euleriano. Los grafos que poseen algn
circuito euleriano son grafos eulerianos.
Un camino hamiltoniano es aqul que recorre todos los vrtices del grafo sin repetir
ninguno. Si el camino es un circuito, ser un circuito hamiltoniano. Los grafos que
poseen algn circuito hamiltoniano son grafos hamiltonianos.

fin

inicio fin inicio

primer paso, flecha gruesa primer paso, flecha gruesa


Camino EULERIANO Camino HAMILTONIANO

AyMD 09-10 Grafos y 36


Aplicaciones
Grafos Eulerianos (1)
Hay problemas cuya solucin consiste en encontrar un circuito euleriano. Por supuesto,
no siempre es posible resolverlos, como se ve en la figura:

Para cerrar el circuito en la figura podemos aadir el


tramo fin inicio, pero en tal caso habremos repetido
una arista: No tenemos un circuito euleriano.
Como se ha visto antes, si permitimos que todas las aristas
sean reversibles esto es, pensamos el grafo como un
fin multigrafo- entonces s podemos encontrar un circuito
inicio
euleriano. Se plantea, por tanto, si el problema tendr
primer paso, flecha gruesa siempre solucin en multigrafos.
ultimo, de puntos
Tenemos el siguiente Teorema de caracterizacin:
NO ES UN CIRCUITO
EULERIANO

AyMD 09-10 Grafos y 37


Aplicaciones
Grafos Eulerianos (2)
Un multigrafo es euleriano si y slo si es conexo y todos sus
vrtices son de grado par
Desde luego, si en un grafo hay un circuito que pasa por todas las aristas, es conexo. El
camino, al atravesar un vrtice, entra por un lado y sale por otro, luego el grado de todos
los vrtices es par. Esto demuestra la parte A B del teorema.
Para ver la parte A B, sea un grafo conexo y con todos sus vrtices de grado par, y
consideremos un circuito P [siempre hay circuitos: demostrarlo] que posea el mayor nmero
posible de aristas. Si P = V , ya est demostrado. Si no, podemos formar un subgrafo G '
constituido por todos los vrtices del grafo original y las aristas que no estn en P, observando
que por ser conexo habr un vrtice comn P y G ' cuyo grado (en G ') es positivo y par. Ello
quiere decir que dentro de G ' existe algn circuito P ' basado en ese vrtice comn. Pero entonces
podemos conectar los circuitos P y P ' para formar uno ms largo que P. Como P era de longitud
mxima, obtenemos una contradiccin y el teorema queda probado.

Escolio (forma matemtica de decir comentario): La demostracin del teorema se


puede adaptar al caso de un camino euleriano que no se cierre: Basta con permitir que
slo haya dos vrtices de grado impar (principio y final del camino).
AyMD 09-10 Grafos y 38
Aplicaciones
Grafos Eulerianos (3)
Algoritmo para encontrar un camino euleriano
Para la construccin necesitamos el concepto de arista puente: Se llama as a las aristas
tales que al borrarlas del grafo, ste pasa a ser no conexo.

I. Inicializacin
Elegimos un vrtice cualquiera v0 para comenzar.

II. Recurrencia
Supongamos construido un camino Vi = {v0 , v1 ,..., vi } y sea G 'i el subgrafo citado en el teorema,
cuyos vrtices son todos los del grafo y las aristas las que no estn en el camino. Puede ocurrir:

1. Que en Vi estn ya todas las aristas del grafo: Entonces, fin del problema.
2. En caso contrario, busquemos una arista incidente con vi que nos lleve a un nuevo vrtice vi +1 ,
teniendo cuidado de que esta arista no sea una "arista puente". Despus, volvamos al paso 1.

AyMD 09-10 Grafos y 39


Aplicaciones
Grafos Hamiltonianos
Definicin y comentarios.
Recordemos que en un grafo hamiltoniano existe al menos un circuito que pasa por
todos los vrtices sin repetir ninguno. La construccin de estos circuitos es mucho ms
complicada que la de circuitos eulerianos: Ello significa que los algoritmos de clculo
tardan ms en ejecutarse, aunque puedan establecerse criterios de caracterizacin.
La complejidad de los grafos hamiltonianos los deja fuera del nivel de este curso.

Dos ejemplos de grafos hamiltonianos


AyMD 09-10 Grafos y 40
Aplicaciones
Fechas y curiosidades
Se suele considerar que la teora de grafos se origin con el problema de los puentes de Knigsberg, resuelto
por el suizo Leonhard Euler (1707-1783). En l se muestra la imposibilidad de un circuito euleriano en un
determinado grafo (bsquenlo en la bibliografa o en Internet).
El primer libro conocido sobre Teora de Grafos, del matemtico hngaro Dnes Knig, fue publicado por la
editorial Teubner de Leipzig en 1935 con el ttulo Theorie der endlichen und unendlichen Graphen.
Los grafos hamiltonianos se llaman as en recuerdo de William Rowan Hamilton (1805-1865), matemtico,
fsico y poeta irlands quien lo propuso por primera vez para el caso de un docecaedro.
El algoritmo de Dijkstra (pronnciese distra) se debe al holands Edsger Dijkstra (1930-2002), quien lo
formul el ao 1959.

L. Euler W. Hamilton D. Knig E. Dijkstra

AyMD 09-10 Grafos y 41


Aplicaciones

You might also like