Professional Documents
Culture Documents
FACULTAD DE INFORMTICA
ULPGC
Curso 2009-2010
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.
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
2 E = g (v ) = k V = k 2 k .
vV H(1)
El dimetro de H (k ) es k
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
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
5 f(3)
4 f(5)
1 f
f(1)
G
2 3 f(2)
f(4) G
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.
Posibles rboles con 1, 2, 3, 4 y 5 vrtices. Comprobar que estn todos. Cuntos hay con 6?
5 5
4 Un caso fcil 4
1 1
G
2 3 2 3
v v
Un caso menos fcil
A1 B1 Y1 Z1
A2 B2 Y2 Z2
A3 E3 Y3 Z3
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.
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.
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.
3
1 1 4 3
inicio
3
1 4 3 2 3
4
1 2
2 3
4 inicio 5
1 2
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
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.