7/30/2019 Grafos y aplicaciones
1/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 yAplicaciones
11
7/30/2019 Grafos y aplicaciones
2/41
Qu es un GRAFO?
Un GRAFO es la abstraccin matemtica de uncableado que conecta diversos aparatos, o deun recorrido con diferentes estaciones.
Para definir un grafo se necesitan: un conjunto
Vde objetos (los vrtices del grafo), y unsubconjunto arbitrario de todas las posiblescombinaciones binarias sin repeticin de losvrtices. Cada pareja de vrtices que hayamos
elegido recibe el nombre de arista del grafo. Elconjunto de todas las aristas se denota porE.
Orden del grafo:
Nmero mximo posible de aristas en un grafo:2
Si , el grafo es completo. El grafo2
completo con vrtices se escriben
V n
n
nE
n K
=
=
Por tanto, un grafo se define como el par deconjuntos G = (V,E). El nmero de vrtices es
el orden del grafo. Si el grafo contiene todaslas aristas posibles, decimos que es completo.Puesto en frmulas, tendremos:
AyMD 09-10 Grafos yAplicaciones
22
7/30/2019 Grafos y aplicaciones
3/41
Cmo representar un grafo? (1)
El modo ms simple y habitual es dibujar un conjunto de puntos (los vrtices), yrepresentar 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 dondehay 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 dosvrtices unidos por una arista, pero aislado del resto delgrafo. Diremos que se trata de un grafo no conexo.
5Este 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 mximouna arista, y no hay arista alguna cuyo principio y final sea un mismo vrtice.
33AyMD 09-10 Grafos yAplicaciones
7/30/2019 Grafos y aplicaciones
4/41
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 conseguiruna descripcin matricial delgrafo, adecuada para su tratamiento algebraico o informtico.
Cuando dos vrtices est conectados por una arista, se lesllama adyacentes. Por ejemplo, en el grafo adjunto, 1 y 3 sonadyacentes, pero 1 y 2 no lo son. Podemos representar enuna tabla la adyacencia entre los vrtices
La tabla sugiere definir la MATRIZ DE ADYACENCIAdel grafo de la siguiente forma: Es una matriz
1 si los vrtices , son adyacentes
0 si no lo son
0 0 1 00 0 1 1
En el ejemplo:1 1 0 1
0 1 1 0
ij
n n
i jA a
A
= =
=
1
2
4
3
AyMD 09-10 Grafos yAplicaciones
44
ady1 2 3 4
1 0 0 1 0
2
0 0 1 13 1 1 0 1
4 0 1 1 0
Tabla / matriz de adyacencia:Simtrica y 0s en la diagonal
7/30/2019 Grafos y aplicaciones
5/41
Cmo representar un grafo? (3)
Si tambin se asignan nombres a las aristas se obtiene otra descripcin matricial del grafo.
La relacin de incidencia: Un vrtice y una arista sonincidentes cuando el vrtice es alguno de los extremos de la
arista. Por ejemplo, en el grafo adjunto, 1 y e son incidentes,pero 1 y b no lo son. Podemos representar en una tabla laincidencia entre los vrtices y las aristas:
1
4
3d
c b
a
e
2
La tabla sugiere definir la MATRIZ DE INCIDENCIA
del grafo de la siguiente forma: Es una matriz1 si el vrtice , y la arista son incidentes
0 si no lo son
0 0 1 0 1
1 0 0 1 0En el ejemplo:
1
ij
n m
i jB b
B
= =
=1 1 0 0
0 1 0 1 1
inc a b c d e
1 0 0 1 0 1
2 1 0 0 1 0
3 1 1 1 0 0
4 0 1 0 1 1
Tabla / matriz de incidencia
55AyMD 09-10 Grafos yAplicaciones
7/30/2019 Grafos y aplicaciones
6/41
El ancho de banda de la matriz de adyacenciaLa matriz de adyacencia de un grafo depende de la numeracin de los vrtices (el orden enque se consideran) . Ello tiene importancia a la hora de almacenar la descripcin del grafo enun fichero. La idea bsica es que cuanto ms se parezca una matriz a una matriz diagonal,menos espacio se necesitar para guardarla.
010010
101100
010101
011010
100101001010
:esadyacenciadematrizla
numeracinestaconejemplo,Por
1
4
5
3
AyMD 09-10 Grafos yAplicaciones
66
2
6
6
4
3
001001
001101
110100
011010
000101110010
:esmatrizla
otra,estaconPero
La primera matriz es ms diagonal que lasegunda. Su ancho de banda
5El problema de numerar losvrtices de un grafo paraminimizar el ancho de bandaes MUY complicado
1
2
es 4, frente 5 en laotra. El ancho de banda es la mayor distancia de ladiagonal a la que podemos encontrar un 1, medidaen vertical u horizontal.
7/30/2019 Grafos y aplicaciones
7/41
El grado de los vrtices
El nmero de aristas que concurren en un vrtice se llamagrado del vrtice y lo
escribiremos comog(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 deadyacencia del grafo es el grado del vrtice cuyo nmero es el de la fila o columna. Enla 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 aldoble del nmero de aristasLa DEMOSTRACIN es simple: Elijamos un vrtice cualquiera y apuntemos su
grado. Pasemos a otro vrtice. Si es adyacente al anterior, al apuntar su grado yahabremos 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 yhaber 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 parPara verlo basta con observar que la suma de todos los grados es par, y que se componede la suma de los grados de los vrtices de orden par (que es par) y de la suma de losgrados de los vrtices de orden impar. Como esta ltima cantidad tiene que ser par, el
nmero de vrtices de orden impar es obligatoriamente par.77AyMD 09-10 Grafos y
Aplicaciones
7/30/2019 Grafos y aplicaciones
8/41
Grafos bi- y multipartitos
En problemas relacionados con el emparejamiento de objetos aparece el concepto degrafo bipartito. Se llama as a aquellos grafos cuyo conjunto de vrtices sedescompone en dos subconjuntos disjuntos, de forma que los dos extremos decualquier arista se hallen en distinto subconjunto.
,( , )
V A B A Buv E u A v B
= =
La primera figura muestra un grafo bipartito.A={1,4} yB={2,3}. Un grafo bipartito no puede ser completo en elsentido habitual de la palabra, excepto si slo tiene dosvrtices y una arista.
1
4
3,
Si y , el nmero mximo de aristas de ungrafo bipartito es . A los grafos bipartitos con todas
las aristas posibles se les llama
y se escriben n m
A n B mnm
bipartitos completos
K
= =
2
En la segunda figura tenemos un grafo tripartito, conA={1,4}, B={2,3} y C={5,6} Qu ms hace falta paradefinir exactamente un grafo tripartito, adems de los tresconjuntos disjuntos de vrtices?
1
4
32
5
6 88AyMD 09-10 Grafos yAplicaciones
7/30/2019 Grafos y aplicaciones
9/41
Caminos y circuitos en un grafo
Cuando se trabaja con grafos, un problema tpico es intentar recorrer de modoordenado un conjunto de aristas o de vrtices. Para formalizar esta idea necesitamosalgunas definiciones.Un CAMINO es una sucesin de vrtices, todos diferentes, tales que cada dosconsecutivos determinan una arista del grafo. Si permitimos que el ltimo vrtice
coincida con el primero, tenemos un CIRCUITO, o camino cerrado. La longitud de uncamino es el nmero de sus aristas.
{ }
{ }
sC
vvvvCsW
EvvvvvW
s
iis
=
==
= +
)(long
,,...,,:Circuito1)(long
,,...,,:Camino
121
121
{1,3,4,2} es un camino, de longitud 3, y {1,3,4,1} uncircuito, tambin de longitud 3.1
4
3
d
c b
a
e
299AyMD 09-10 Grafos y
Aplicaciones
7/30/2019 Grafos y aplicaciones
10/41
LosHipercubosEl hipercubo de dimensin kes un grafo cuyos vrtices son las variaciones con repeticin
de los dos elementos {0,1} tomados de ken k. Las aristas estn definidas por pares devrtices cuyas descripciones slo se diferencien en un dgito binario. Por ejemplo, en elhipercubo 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
2
1
El grado de los vrtices de ( ) es siempre .
El nmero de vrtices de ( ) es = 2 .
El nmero de aristas es 2 , pues:
2 ( ) 2 .
k
kk
k
v V
H k k
H k VR
k
E g v k V k
= = =
H(2)
H(1)
1010AyMD 09-10 Grafos yAplicaciones
7/30/2019 Grafos y aplicaciones
11/41
Distancias en un GrafoSi 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 uncamino, diremos que la distancia entre ellos es infinita.El dimetro de un grafo es la mayor de las posibles distancias entre sus vrtices. Si elgrafo no es conexo, su dimetro es infinito.
AyMD 09-10 Grafos yAplicaciones
1111
El dimetro de ( ) esH k k
Dos vrtices a distancia 1
Dos vrtices a distancia 3
Dos vrtices a distancia 2
Dos vrtices infinitamente lejanos
7/30/2019 Grafos y aplicaciones
12/41
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 siA,entoncesB , AB.
La parteA se denomina hiptesis, y laB, tesis.
El proceso mental por el cual nos convencemos de la verdad de la frase sellama demostracin del teorema.
Si un teorema AB es verdadero, entonces decimos queA es condicin
suficiente paraB, y queB es una condicin necesaria deA.
La expresinAB es la recproca deAB. Lo habitual es que slo una de lasdos expresiones sea verdadera, pero cuando ambas lo son, lo cual escribimos AB,entonces tenemos un teorema de caracterizacin. Estos teoremas se suelen formular de lamanera A es condicin necesaria y suficiente deB, o A si y slo siB, y una vezdemostrados permiten utilizar las propiedadesA yB de forma intercambiable endeducciones posteriores.
1212AyMD 09-10 Grafos yAplicaciones
7/30/2019 Grafos y aplicaciones
13/41
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 estructuraAB].Habr que demostrar que bipartito ciclos de longitud par, y despus, que ciclos delongitud par bipartito
La primera demostracin es sencilla: Si un circuito comienza y acaba en un vrtice de unade las componentes del conjunto total de vrtices V, las aristas que lo forman conectan lasdos 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 Vas:{ }
{ }
, donde vrtices a distancia impar de , y
vrtices a distancia par de .
V I P I v
P v
= =
=
H(3) es un grafo bipartito:P= {rombos},I= {crculos}
NOTA: Todos losH(k) son bipartitos
v
1313AyMD 09-10 Grafos yAplicaciones
7/30/2019 Grafos y aplicaciones
14/41
Otro teorema de caracterizacin de grafos bipartitosColorear 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 siguienteproblema: Cul es el nmero mnimo de colores necesario para colorear un grafo?Ese nmero se llama nmero cromtico del grafo.
1
4
3G
1
2
4
3
G
5
2
1, 4: Rojo. 2, 3: Negro
Nmero cromtico 2
Rombos: Rojo. Crculos: Negro
Nmero cromtico 2
1, 3: Rojo. 2, 4: Negro. 5: Azul
Nmero cromtico 3
AyMD 09-10 Grafos yAplicaciones
TEOREMA: Un grafo es bipartito si y slo si su nmero cromtico es 2 [Ntese denuevo la estructuraAB].
Habr que demostrar que bipartito nmero cromtico 2, y despus, que nmero
cromtico 2 bipartito: Son un par de ejercicios.1414
7/30/2019 Grafos y aplicaciones
15/41
Subgr
afos
Dado un grafo ( , ), otro grafo ' ( ', ') es un subgrafo de si
' y ' , de forma que las aristas en ' sean compatibles con
la eleccin de los vrtices que forman '. Si ' es el conjunto de to
G V E G V E G
V V E E E
V E
= =
das lasaristas que haba en entre los vrtices de ', se dice que ' es un subgrafo
inducido.
G V G
1
4
3G
1
4
3
1 4
3 222
Otro subgrafo GUn subgrafo G
1
4
3
1
4
3
1
32 2
Un subgrafo inducido ste no es un subgrafo ste tampoco1515AyMD 09-10 Grafos y
Aplicaciones
7/30/2019 Grafos y aplicaciones
16/41
Grafos isomorfos (1)(del griego iso = igual + morphos = forma)
Dados dos grafos ( , ) y ' ( ', '), y ' son isomorfos si se puede
establecer una correspondencia biunvoca : ' que asocie los vrtices de
con los de ' y conserve las relaciones de incidencia
G V E G V E G G
f G G
V V
= =
. En frmulas:' , ' , y si es una arista en , entonces ( ) ( ) lo es en '.V V E E uv G f u f v G= =
AyMD 09-10 Grafos yAplicaciones
1616
1
2 3
4
G
5
f(2)G
f(3)
f(5)f
f(1)
f(4)
Dos grafos isomorfos y el isomorfismo f entre ellos
7/30/2019 Grafos y aplicaciones
17/41
Grafos isomorfos (2)Dados dos grafos isomorfos ( , ) y ' ( ', '), de las relaciones
' , ' , "si es una arista en , entonces ( ) ( ) lo es en '",se deduce inmediatamente que para todo , el grado de es ig
G V E G V E
V V E E uv G f u f v G
v V v
= =
= = ual al de
( ). Por tanto, tambin se conservan
Pertenecen a la clase de las de los gPropieda rdes Topolgica os,s af
:f v ciertas relaciones espaciales
AyMD 09-10 Grafos yAplicaciones
1717
1
2 3
G
5
4
f(1)
f(4)
f(5)
f(2)
G
f(3)
f
En estos dos grafos isomorfos se observa que 5 yf(5) tienen grado 4, y que tanto 5comof(5) tienen dos vrtices de grado 2 y otros dos de grado 3 a distancia 1.
7/30/2019 Grafos y aplicaciones
18/41
rboles (1)Un grafo ( , ) que sea conexo y no contenga circuitos se llama .
Si ( , ) es un grafo cualquiera, y ' ( ', ') un subgrafo tal que '
y adems es un rbol, diremos que '
G V E rbol
G V E G V E V V
G es un rbol generado
=
= = =
.r de G
AyMD 09-10 Grafos yAplicaciones
1818
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 suimportancia 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 aristasrepetidas, claro)
II. G es un rbol si y slo si es conexo y el nmero de aristas es igual al de vrticesmenos 1
7/30/2019 Grafos y aplicaciones
19/41
rboles (2)Un corolario del Teorema II es: "Si ( , ) es un rbol, entonces ( ) 2 2".
Teorema de existencia: "Si ( , ) es un grafo conexo, entonces posee un rbol generador".v V
G V E g v V
G V E
= =
=
La demostracin del Teorema de existencia consiste en el diseo de un algoritmoadecuado:
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 serconexo 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 casode un grafo completo tenemos el siguiente Teorema:
2"El nmero de rboles generadores de un grafo completo con vrtices es ".nn n
AyMD 09-10 Grafos yAplicaciones
1919
7/30/2019 Grafos y aplicaciones
20/41
rboles (3): buscando rboles generadores
AyMD 09-10 Grafos yAplicaciones
2020
1
2 3
G
4
5
1
2 3
5
Un caso fcil 4
vv
G
Un caso menos fcil
Camino Rama 1 Rama 2
7/30/2019 Grafos y aplicaciones
21/41
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 hastahallar finalmente la palabra completa. Acabamos de ver un ejemplo de algoritmo debsqueda. 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. Elgrafo obtenido es un rbol. Hallar una palabra consiste en recorrer la rama adecuadadel rbol.
Diccionario
A1 B1 Y1 Z1
B2 Y2 Z2
E3 Y3 Z3
A2
A3
Bsqueda de la palabra bye
AyMD 09-10 Grafos yAplicaciones
2121
7/30/2019 Grafos y aplicaciones
22/41
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, labsqueda comienza por encontrar subgrafos que sean rboles. Hay dos estrategiasprincipales para ello: La primera es la bsqueda horizontal o a lo ancho, y la segunda, labsqueda vertical o en profundidad. Presentemos ambas sobre un mismo ejemplo.
a
b
c f
h En el algoritmo a lo ancho comenzamos en a yconstruimos una primera capa con todos losvrtices que se hallan a distancia 1 de l. A
continuacin hacemos lo mismo a partir de cada unode los vrtices de esta capa, y as sucesivamente,hasta agotar el grafo. El resultado es:
g
a
b d h
g
ed
AyMD 09-10 Grafos yAplicaciones
2222
c e
f
Dist. 1
Dist. 2
Dist. 3
7/30/2019 Grafos y aplicaciones
23/41
Algoritmos de bsqueda (3)
En el algoritmo en profundidad, comencemos tambin en a y construyamos una primerarama 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, hastaagotar el grafo. El resultado es:
aa
f
h
b geb
gc c
ed fd 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
Aplicaciones2323
7/30/2019 Grafos y aplicaciones
24/41
Grafos orientados o dirigidosDado 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 vezseleccionado un sentido en todas las aristas, el grafo Gpasa a ser un grafo orientado odirigido (ver NOTA abajo).
( , ) : grafo; ( , ) : grafo orientado
Orden del grafo orientado:
Nmero mximo de aristas del grafo:2
Las aristas de un grafo dirigido son
variaciones binarias de sus vrtices, pero
slo
G V E G V E
V n
n
n
=
G G
son posibles la mitad de ellas como
mximo, pues cada arista tiene un nico
sentido.
AyMD 09-10 Grafos yAplicaciones
2424
1
2 3
5
4
GG
NOTA LINGSTICA: La expresin grafo dirigido es equvoca en castellano. Locorrecto es decir grafo orientado o con sentidos en las aristas. En una lnea (recta)hay una sola direccin, pero dos sentidos u orientaciones.
G d i f i d ( )
7/30/2019 Grafos y aplicaciones
25/41
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 hacial, y las restantes al contrario. El nmero de aristas que apuntan hacia el vrtice es el gradode entrada, y el nmero de las que salen de l, el grado de salida del vrtice. En frmulas:
AyMD 09-10 Grafos yAplicaciones
2525
Grado de entrada de : ( )Grado de salida de : ( )
Grado ordinario de : ( ) ( ) ( )
Si ( ) ( ), es un vrtice
Si ( ) ( ), es un vrtice
v g vv g v
v g v g v g v
g v g v v sumidero
g v g v v fuente
+
+
+
= +
=
=
1
2 3
5
4
GG
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 encuenta los sentidos de las aristas. Sin embargo, la matriz de incidencia,B, s ha de tener encuenta los sentidos de las aristas.
7/30/2019 Grafos y aplicaciones
26/41
Grados y matrices en grafos orientados (2)
La suma por columnas es siempre 0. El nmerode elementos no nulos de cada fila es el grado
(ordinario) del vrtice que define la fila.
La MATRIZ DE INCIDENCIA de un grafo orientado
se define de la siguiente forma:
Es una matriz de orden donde:
1 si la arista apunta hacia el vrtice0 si la arista no incide con elij
B n m
j i
b j
+ = vrtice
1 si la arista sale del vrtice
1 1 0 0 0 0 00 1 1 0 0 1 0
En el ejemplo: 0 0 1 1 0 0 1
0 0 0 1 1 0 0
1 0 0 0 1 1 1
i
j i
B
=
1
2 3
4
5
G
G
a
b
c
e
fg
Si es la m atriz definida por:
( ) si
0 si
En tonces se cumple la ecuacin:
(permite deducir de )
ij
i
ij
t
ij
g
g v i jg
i j
BB A g
A B
==
+ =
d
AyMD 09-10 Grafos yAplicaciones
2626
7/30/2019 Grafos y aplicaciones
27/41
Caminos y circuitos en grafos orientadosLas 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 lasaristas: Si una entra, la otra sale. En los extremos del camino, si no es un circuito, unasale y la otra entra. En la figura, 4321 es un camino dirigido ente 4 y 1. Sin embargo, enese grafo no hay circuitos orientados.
Un grafo orientado se llama acclico si en l no hay circuitos orientados. El de la figuraes acclico.
Un grafo orientado se llamafuertemente conexo si en l existe un camino orientadoentre cualquier par de puntos. Si es fuertemente conexo, es tambin conexo. El de lafigura no es fuertemente conexo (pero s conexo), pues desde el vrtice 1 no se puedellegar a ningn otro siguiendo un camino orientado
AyMD 09-10 Grafos yAplicaciones
2727
1
2 3
5
GG
a
b
c
e
fg
TEOREMA sobre grafos acclicos: En un grafoacclico siempre hay al menos un vrtice fuente y uno
sumidero
Demostracin: Intntenla!
Los grafos acclicos son modelos apropiados para
problemas de transporte y distribucin
4
d
M lti f (1)
7/30/2019 Grafos y aplicaciones
28/41
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 formadospor una nica arista.
Un multigrafo es un grafo G(V,E) en el que se permite la existencia de ms de una aristaentre vrtices adyacentes y ciclos consistente en una sola arista.
La definicin de multigrafo orientado es inmediata: Todas las aristas tienen adjudicadauna orientacin.
Un multigrafo (izq) y un multigrafo orientado (dcha)
AyMD 09-10 Grafos yAplicaciones
2828
M lti f (2) G d t i
7/30/2019 Grafos y aplicaciones
29/41
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 entrevrtices incidentes. Los circuitos que constan de una sola arista cuentan como dosaristas.
1
5
AyMD 09-10 Grafos yAplicaciones
2929
23
4
1
0 2 0 0 02 0 1 0 0
0 1 0 2 1
0 0 2 0 0
20 0 1 0
A
=
a
cd
e
f
g
1
1 1 0 0 0 0 0
1 1 1 0 0 0 0
0 0 1 1 1 1 0
0 0 0 1 1 0 0
0 0 1 20 0 0
B
=
b
2
0 2 0 0 0
2 0 1 0 0
0 1 0 3 1
0 0 3 0 0
20 0 1 0
A
= b
c
d
f g
h
i
2
1 1 0 0 0 0 0 0
1 1 1 0 0 0 0 00 0 1 1 1 1 1 0
0 0 0 1 1 1 0 0
0 0 0 0 0 0 1 0
B
=
a
El problema del laberinto (1)
7/30/2019 Grafos y aplicaciones
30/41
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 todoslos vrtices (las veces que haga falta) y donde todas las aristas han de recorrerseexactamente una vez en cada uno de los dos sentidos posibles.
AyMD 09-10 Grafos yAplicaciones
3030
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 figuradel centro. Es inmediato comprobar que el recorrido combinado resuelve el laberinto: Seentra y sale por la esquina inferior izquierda, y todas las aristas se recorren una vez en cada
sentido (observar las flechas).
entrada
primer paso, flecha gruesa
salida entrada
= laberinto completo+
salida
primer paso, flecha gruesa, segundo y tercero , flechas de puntos
El problema del laberinto (2)
7/30/2019 Grafos y aplicaciones
31/41
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 laberintoel 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: llamemosadecuados a los vrtices que cumplen esta propiedad (observacin: los grados de entrada ysalida 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 quellegamos a v y que no aparece recorrida en sentido contrario. Por tanto el vrtice u tampocoes 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 escorrecto.
AyMD 09-10 Grafos yAplicaciones
3131
Grafos ponderados y optimizacin
7/30/2019 Grafos y aplicaciones
32/41
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 diversossignificados. 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 decombustible 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 ponderacino peso que representa el gasto de recorrerla. Ello puede hacerse en grafos de cualquiertipo de los vistos hasta ahora.
{ }1 21
11
En frmulas, un grafo ( , ) es ponderado
cuando hay una aplicacin : que
asocia a cada arista su "peso" ( ).
Si , , ..., es un camino, el "peso"
del camino es ( ) ( ). Si t
k
k
i i
i
G V E
p E
uv p uv
P v v v
p P p v v
+
+=
=
=
\
odos
los pesos son iguales 1, el peso del camino
coincide con su longitud.
1
3
12
3
4
1
AyMD 09-10 Grafos yAplicaciones
3232
El l it d Dijk t (1)
7/30/2019 Grafos y aplicaciones
33/41
El algoritmo de Dijkstra (1)
El problema de obtener el camino de peso mnimo entre dos vrtices cualesquiera u y vse puede resolver mediante un algoritmo debido al matemtico holands Dijkstra.
Idea del algoritmo: A partir del grafo ponderado ( , ) vamos generando subgrafos (caminos)
a partir de un vrtice inicial, aadiendo de uno en uno vrtices y aristas, eligiendo el paso siguientetras
G V E
{ }0 0 0 0
calcular el peso de los caminos que han ido apareciendo y quedarnos con el menor.
Algoritmo:
I. Inicializacin. Vrtice inicial: . Subgrafo inicial ( , ), con ( ) 0.
II. Recurrencia. Si hemos ll
v G v p v =
{ } { }0 1 1 2egado al subgrafo (camino) ( , ,..., , , ,..., ), puedenpasar dos cosas:
1. 1. Entonces, el problema est resuelto.
2. En caso contrario, para cada par de vrtices ( , ), con y
j j j j
i
V G v v v e e e
j V
v w v V w V
=
=
0
, calculemos la expresin( ) ( ) ( ), donde ( ) es el peso del tramo del camino entre y . Elijamos *
y *de manera que ( * *) sea el menor posible, y aadamos al camino el nuevo v
i
j
j
F vw p v p vw p v V v v v
w F u w G
= +
1
rtice
* . Despus, volvemos al paso 1.jw v +=
AyMD 09-10 Grafos yAplicaciones
3333
El algoritmo de Dijkstra (2)
7/30/2019 Grafos y aplicaciones
34/41
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 cuyasramas se van obteniendo los caminos mnimos desde el vrtice inicial hasta cualquierotro.
AyMD 09-10 Grafos yAplicaciones
3434
331
1
4
34
2
1caminos mnimos
1
331
1
4
34
2
inicio
2
5inicio
2
5
El algoritmo de Dijkstra (3)
7/30/2019 Grafos y aplicaciones
35/41
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 queel dado por el algoritmo. La demostracin es como sigue:
0
0
Consideremos la construccin indicada en la etapa 2 del algoritmo, y sea [( ,..., *)] el
peso del camino hallado. Sea ahora otro camino mnimo entre y *, que contenga por
lo menos un vrtice
p v w
P v w
w
0
. Por tanto, existir un que ser el ltimo antes de que el
camino se desve hacia . As pues, se compone de tres tramos: El camino ( ,..., ),
la arista y el camino ( ,..., *), donde lo
j jV v V
w P v v
vw w w
0
s dos subcaminos son tambin mnimos.
Luego su peso ser (ver la figura adjunta):( ) ( ) ( ) [( ,..., *)] ( ) [( ,..., *)] ( * *) [( ,..., *)]
Esto es, es tan pesado o ms que el camino de
p P p v p vw p w w F vw p w w F v w p v w
P
= + + = + =
Dijkstra.
0v 1v v v *w
w
AyMD 09-10 Grafos yAplicaciones
3535
Caminos circuitos y grafos Eulerianos y Hamiltonianos (1)
7/30/2019 Grafos y aplicaciones
36/41
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 algncircuito euleriano son grafos eulerianos.
Un camino hamiltoniano es aqul que recorre todos los vrtices del grafo sin repetirninguno. Si el camino es un circuito, ser un circuito hamiltoniano. Los grafos que
poseen algn circuito hamiltoniano son grafos hamiltonianos.
AyMD 09-10 Grafos yAplicaciones
3636
fin
inicio iniciofin
primer paso, flecha gruesa
Camino EULERIANO
primer paso, flecha gruesa
Camino HAMILTONIANO
Grafos Eulerianos (1)
7/30/2019 Grafos y aplicaciones
37/41
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 repetidouna arista: No tenemos un circuito euleriano.
Como se ha visto antes, si permitimos que todas las aristassean reversibles esto es, pensamos el grafo como un
multigrafo- entonces s podemos encontrar un circuitoeuleriano. Se plantea, por tanto, si el problema tendrsiempre solucin en multigrafos.
Tenemos el siguiente Teorema de caracterizacin:
fininicio
primer paso, flecha gruesa
ultimo, de puntos
NO ES UN CIRCUITOEULERIANO
AyMD 09-10 Grafos yAplicaciones
3737
Grafos Eulerianos (2)
7/30/2019 Grafos y aplicaciones
38/41
Un multigrafo es eulerianosi y slo si es conexo y todos susvrtices 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, yconsideremos un circuito [siempre hay circuitos: demostrarlo] que poseaP
el mayor nmero
posible de aristas. Si , ya est demostrado. Si no, podemos formar un subgrafo '
constituido por todos los vrtices del grafo original y las aristas que no estn en , observando
P V G
P
=
que por ser conexo habr un vrtice comn y ' cuyo grado (en ') es positivo y par. Ello
quiere decir que dentro de ' existe algn circuito ' basado en ese vrtice comn. Pero entonces
podemos
P G G
G P
conectar los circuitos y ' para formar uno ms largo que . Como era de longitud
mxima, obtenemos una contradiccin y el teorema queda probado.
P P P P
Escolio (forma matemtica de decir comentario): La demostracin del teorema sepuede adaptar al caso de un camino euleriano que no se cierre: Basta con permitir queslo haya dos vrtices de grado impar (principio y final del camino).
AyMD 09-10 Grafos yAplicaciones
3838
Grafos Eulerianos (3)
7/30/2019 Grafos y aplicaciones
39/41
G a os u e a os (3)
Algoritmo para encontrar un camino euleriano
Para la construccin necesitamos el concepto de arista puente: Se llama as a las aristastales que al borrarlas del grafo, ste pasa a ser no conexo.
{ }
0
0 1
I. InicializacinElegimos un vrtice cualquiera para comenzar.
II. Recurrencia
Supongamos construido un camino , ,..., y sea ' el subgrafo citado en el teorema,cuyos vrtices son todos los
i i i
v
V v v v G=del grafo y las aristas las que no estn en el camino. Puede ocurrir:
1. Que en estn ya todas las aristas del grafo: Entonces, fin del problema.2. En caso contrario, busquemos una arista incidenteiV
1con que nos lleve a un nuevo vrtice ,
teniendo cuidado de que esta arista no sea una "arista puente". Despus, volvamos al paso 1.i iv v +
AyMD 09-10 Grafos yAplicaciones
3939
Grafos Hamiltonianos
7/30/2019 Grafos y aplicaciones
40/41
Definicin y comentarios.
Recordemos que en un grafo hamiltoniano existe al menos un circuito que pasa portodos los vrtices sin repetir ninguno. La construccin de estos circuitos es mucho mscomplicada que la de circuitos eulerianos: Ello significa que los algoritmos de clculotardan 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 hamiltonianosAyMD 09-10 Grafos y
Aplicaciones4040
Fechas y curiosidades
7/30/2019 Grafos y aplicaciones
41/41
ySe 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 undeterminado grafo (bsquenlo en la bibliografa o en Internet).
El primer libro conocido sobre Teora de Grafos, del matemtico hngaro Dnes Knig, fue publicado por laeditorial 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 loformul el ao 1959.
D. KnigL. Euler W. Hamilton E. Dijkstra
AyMD 09-10 Grafos yAplicaciones
4141
Top Related