Beruflich Dokumente
Kultur Dokumente
Representacin matricial
Representacin matricial
GRAFOS PLANOS
EJEMPLO Los grafos de la figura son planos. El primero es un grafo 3regular, ya que cada vrtice tiene grado 3 ; es plano pues ningn par
de aristas se intersecan, excepto en los vrtices. El grafo b) parece
un grafo no plano; las aristas {x, z} y {w, y} se cruzan en un punto
distinto de un vrtice. Sin embargo, podemos trazar nuevamente
este grafo, como se muestra en la parte c) de la figura. En
consecuencia K4 es plano.
Ejemplo
Grafos planos. Un grafo plano es aqul que se puede dibujar en un solo plano
y cuyas aristas no se cruzan entre s. Ejemplo:
a
b
c
d
f
c
2
b
4
e
A = L V +2
6 = 10 6 +2
d
3
6
5
f
Las reas que permanecen conexas cuando las aristas son eliminadas se
denominan regiones. Todo grafo plano tiene exactamente una nica regin no
acotada llamada la regin exterior. Los vrtices y aristas incidentes con una
regin R se denominan la frontera de R.
G tiene 5 Regiones.
Observacin: V = 8
L= 11
R =5
V+R-L=2
Regin Exterior
Definicin: Un grafo plano se dice maximal si para cualquier par de vrtices u,v
no adyacentes de G, el grafo G+uv no es planar.
Teorema: Si G es planar maximal (V,L) con V 3. Entonces L=3V-6.
Si dibujamos G de forma que sea plano con R regiones entonces cada
regin es un triangulo. Si no:
Definicin: Un grafo que puede ser dibujado en el plano sin que sus aristas se
intersecten se denomina planar. Un grafo que es dibujado en el plano sin que
ninguna de sus aristas se intersecten se denomina plano.
Grafo planar
Grafo plano
Ejemplo:
a
Ejemplo:
a
Ejemplo:
a
Ejemplo 2:
Planar
No Planar
Ejemplo
Solucin
Dibujar en forma plana el siguiente
grafo, o bien demostrar que no es plano
encontrando dentro de l un grafo K3,3 o
K5. En caso de ser plano probar que se
cumple la ecuacin de Euler R=L-V+2.
10
4
7
4
7
Ejemplo
Dibujar en forma plana el siguiente
grafo o bien demostrar que no es plano
encontrando dentro de l un grafo K3,3 o
K5. En caso de ser plano probar que se
cumple la ecuacin de Euler R=L-V+2.
3
3
8
11
10
8
9
Ejemplo
Dibujar en forma plana el siguiente
grafo o bien demostrar que no es plano
encontrando dentro de l un grafo K3,3 o
K5. En caso de ser plano probar que se
cumple la ecuacin de Euler R=L-V+2.
Solucin
En este caso se trata de un grafo plano
como se muestra:
2
11
3
11
2
5
4
7
8
9
10
8
10
Coloracin
Sea G(V,A) un grafo y sea C un conjunto de colores. La coloracin de los
vrtices V del grafo usando un color del conjunto C se encuentra dada por la
funcin.
f: VC
Coloracin
La coloracin de grafos es un problema NP-Computable, esto significa que no
hay procedimientos eficientes para llevar a cabo esta tarea, sin embargo
existen mtodos aproximados que pueden dar buenos resultados. Uno de ellos
es:
1)
2)
3)
Se recomienda colorear del mismo color tantos vrtices como sea posible e
iluminar al mismo tiempo los vrtices que compartan nodos vecinos.
Ejemplo
f,3
b
f
h,1
a
d
G
Paso 3:
j,2
d,3
c,2
Vrtice
seleccionado
h,1
Paso 1:
j,2
d,3
g,2
f,3
Paso 2:
h,1
a
c,2
g,2
Paso 2:
b,3
g,2
f,3
h,1
a,1
d,3
c,2
G
j,2
Ejemplo
Vrtice
seleccionado
Paso 3:
b,3
g,2
f,3
h,1
a,1
j,2
d,3
c,2
G
Paso 2:
b,3
g,2
f,3
h,1
a,1
j,2
El nmero cromtico es
por lo tanto:
(G) = 3
d,3
c,2
G
c,1
a,1
b,2
c,1
c,1
(G) = 2
d,2
Coloracin
Hmster
Len
Len
Conejo
Hurn
Hurn
Tigre
Hmster
Conejo
Tigre
Definicin:
Un conjunto de vrtices S en un grafo se dice independiente si ningn par de
vrtices de S son adyacentes.
Un conjunto independiente S se dice independiente maximal si S no es un
subconjunto de algn otro conjunto independiente de vrtices de S.
Conjunto Independiente
(G)=2
Caminos y circuitos
Ejemplo
En la tabla siguiente se
muestran distintos recorridos
del grafo que se encuentra al
lado.
Recorrido
{a,c,d,f}
{c,b,a,h,a}
{b,c,d,e,e,c,b}
{c,e,d,c}
{e,e}
{a,c,e,e,g,e,d,c,a}
h
c
e
b
Circuito
Circuito simple
Ejemplo
En la tabla siguiente se
muestran distintos
recorridos del grafo que
se encuentra al lado.
Recorrido
h
c
e
b
Circuito
Circuito simple
{a,c,d,f}
{c,b,a,h,a}
{b,c,d,e,e,c,b}
{c,e,d,c}
{e,e}
{a,c,e,e,g,e,d,c,a}
Camino de Euler. Es el camino que recorre todos los vrtices pasando por
todas las ramas solamente una vez.
a
c
b
d
Circuito de Euler. Es aquel ciclo que recorre todos los vrtices pasando por
todos los lados solamente una vez.
La firma del diablo es un juego que consiste en dibujar una figura sin levantar el lpiz
del papel, partiendo de un punto y regresando nuevamente a l, sin pasar dos veces por
una misma arista. Este problema se puede resolver por medio del circuito de Euler.
El algoritmo Fleury permite determinar un circuito de Euler
1) Verificar que el grafo sea conexo y que todos los vrtices tengan valencia par. Si no cumple con
estas condiciones entonces el grafo no tiene circuito de Euler y finalizar.
2) Si cumple con la condicin anterior seleccionar un vrtice arbitrario para iniciar el recorrido.
3) Escoger una arista a partir del vrtice actual. Esa arista seleccionada no debe ser Lado puente* a
menos que no exista otra alternativa.
4) Desconectar los vrtices que estn unidos por la arista seleccionada.
5) Si todos los vrtices del grafo ya estn desconectados, ya se tiene el circuito de Euler y
finalizar. De otra manera continuar con el paso 3.
Ejemplo
A partir del siguiente grafo,
determinar un circuito de
Euler
b
d
c
h
4) Eliminar
la
seleccionada. El
actual ahora es (d).
1) Se observa que es conexo y
todos los vrtices tienen valencia
par, por lo tanto tiene circuito de
Euler.
2) Seleccionar un vrtice arbitrario,
por ejemplo {b} y llamarlo vrtice
actual.
d
c
h
d
c
a
e
d
c
e
f
Ejemplo
3.2) Escoger una arista que no 3.3) Escoger una arista que no
sea puente a partir del
sea puente a partir del
vrtice actual. {b,d,e,b)
vrtice actual. {b,d,e,b,c)
b
d
g
e
f
d
c
h
4.2) Eliminar
la
arista
seleccionada. El vrtice
actual ahora es (b).
b
d
c
h
4.3) Eliminar
la
arista
seleccionada. El vrtice
actual ahora es (c).
b
a
e
f
d
c
h
4.4) Eliminar
la
arista
seleccionada. El vrtice
actual ahora es (h).
b
d
e
f
c
h
e
f
u9
u8
u1 u2u8-u9-u2-u3-u4-u2-u7-u4-u5-u6-u7-u1
u1
u2
u3
u1
u4
u7
u5
u6
u7
u2
u6
u8
u5
u9
u2
u4
u3
u7
Otra posibilidad:
u1-u2-u7-u4-u2-u8-u9-u2-u3-u4-u5-u6-u7-u1
u4
u2
v1
v2
v6
v5
v3
v4
v1v2-v4-v3-v2-v6-v5-v4
Otra opcin:
v1-v2-v3-v4-v2-v6-v5-v4
Ejemplo1:
v2
v1
v5
v3
v6
v4
-Es conexo.
-Todos los vrtices tienen grado par.
Entonces existe un circuito euleriano.
Ejemplo1:
v2
v1
v5
v1-v2
v3
v6
v4
Ejemplo1:
v2
v1
v5
v1-v2-v3
v3
v6
v4
Ejemplo1:
v2
v1
v5
v1-v2-v3-v4
v3
v6
v4
Ejemplo1:
v2
v1
v5
v1-v2-v3-v4-v5
v3
v6
v4
Ejemplo1:
v2
v1
v5
v1-v2-v3-v4-v5-v6
v3
v6
v4
Ejemplo1:
v2
v1
v5
v1-v2-v3-v4-v5
v3
v6
v4
Ejemplo1:
v2
v1
v5
v1-v2-v3-v4-v5
v3
v6
v4
v3-v5
Ejemplo1:
v2
v1
v5
v1-v2-v3-v4-v5-v6
v3
v6
v4
v3-v5-v6
Ejemplo1:
v2
v1
v5
v1-v2-v3-v4-v5-v6
v3
v3-v5-v6-v3
v6
v1-v2-v3-v5-v6-v3-v4-v5
v4
Ejemplo2:
-Es conexo.
-Todos los vrtices tienen grado par.
Entonces existe un circuito euleriano.
v2
v6
v4
v3
v7
v5
v1
Ejemplo2:
v1-v4-v6-v2-v5-v1
v2
v6
v4
v3
v7
v5
v1
Ejemplo2:
v1-v4-v6-v2-v5-v1
v2
v6
v4
v3
v7
v5
v1
Ejemplo2:
v1-v4-v6-v2-v5-v1
v2
v6
v4
v2-v7-v6-v5-v7-v3-v4-v2
v3
v7
v5
v1
v1-v4-v6-v2-v7-v6-v5-v7-v3-v4-v2- v5-v1
u1
u2
u3
un-1
un
Entonces:
u1
u2
u3
Es un recorrido euleriano.
un-1
un
ANIMACION DEL
GUARDIA DE
SEGURIDAD
59
Drats!
Im Stuck
A
L
K
Start
Employee
Parking Lot
Darn!
I got all the doors, but
A
J
K
M
Start
L
N
Employee
Parking Lot
1. The rooms
2. The doors
All Clear!!
L
K
Employee
Parking Lot
Start
Caminos y ciclos
Hamiltonianos
Grafos Hamiltonianos
Definicin: Un grafo G se dice que es Hamiltoniano si tiene un ciclo recubridor.
Es decir, un ciclo que pasa por cada vrtice una sola vez.
Ejemplo
Circuito de Hamilton. Es un problema similar al circuito de Euler, pero en lugar de
pasar por todos los lados del grafo solamente una vez como lo hace el circuito de
Euler, en el circuito de Hamilton se pasa por cada vrtice solamente una vez.
En un grafo se sabe de antemano que tiene un circuito de Euler, si es conexo y
todos sus vrtices tienen valencia par, pero no hay forma de saber con anticipacin
si tiene o no un circuito de Hamilton.
Ejemplo:
Respuesta
Observar como
no es
necesario que
se pase por
todas las
aristas.
a
b
c
f
g
i
g
i
Circuito de Hamilton:
{a,b,h,g,e,j,i,f,d,c,a}
Orden=6
Tamao=5
Y
W
X
Observar que este teorema sirve para probar que un grafo es no Hamiltoniano. Pero
Podra habar algunos grafos no Hamiltonianos que tienen esta propiedad.!!!!!!!!
El Grafo de Petersen.
Ahora, como
, si G tuviera un ciclo
V 10
Hamiltoniano
debera
haber
una
sucesin
alternativa de 5 letras x y 5 letras y. Solamente
tenemos 4 vrtices etiquetados con x. De ah que G
no tenga un camino (o ciclo) Hamiltoniano.
Algoritmos de Grafos No
Dirigidos
rboles de expansin:
Algoritmo de Prim
Un rbol de expansin de un grafo no
dirigido G=(V,A) y conexo, es un subgrafo
G=(V,A) no dirigido, conexo y sin ciclos.
Importante: contiene todos los vrtices de G.
El algoritmo de Prim intenta encontrar un
rbol de expansin de un grafo, cuyas aristas
sumen el peso mnimo.
86
12
5
7
3
6
5
4
11
7
9
10
12
5
7
3
6
5
4
11
7
9
10
12
5
7
3
6
5
4
11
7
9
10
12
5
7
3
6
5
4
11
7
9
10
12
5
7
3
6
5
4
11
7
9
10
12
5
7
3
6
5
4
11
7
9
10
12
5
7
3
6
5
4
11
7
9
10
12
5
7
3
6
5
4
11
7
9
10
12
5
7
3
6
5
4
11
7
9
10
Ejemplo:
Encontrar el rbol abarcador de costo
mnimo del siguiente grafo no dirigido
utilizando el algoritmo de Prim.
12 3 4 5 6
1 6 1 5
2 6 5 3
3 1 5 5 6 4
4 5 5 2
5 3 6 6
6 4 2 6
V-U
---
{1,2,3,4,5,
6}
{1}
{2,3,4,5,6
}
12 3 4 5 6
1 6 1 5
2 6 5 3
3 1 5 5 6 4
4 5 5 2
5 3 6 6
6 4 2 6
T
V-U
---
{1,2,3,4,5,
6}
{1}
{2,3,4,5,6
}
{(1,3)}
{1,2,3,4,5,
6}
{1,3}
{2,4,5,6}
12 3 4 5 6
1 6 1 5
2 6 5 3
3 1 5 5 6 4
4 5 5 2
5 3 6 6
6 4 2 6
T
V-U
---
{1,2,3,4,5,
6}
{1}
{2,3,4,5,6
}
{(1,3)}
{1,2,3,4,5,
6}
{1,3}
{2,4,5,6}
{(1,3),(3,6)}
{1,2,3,4,5,
6}
{1,3,6}
{2,4,5}
12 3 4 5 6
1 6 1 5
2 6 5 3
3 1 5 5 6 4
4 5 5 2
5 3 6 6
6 4 2 6
T
V-U
---
{1,2,3,4,5,
6}
{1}
{2,3,4,5,6
}
{(1,3)}
{1,2,3,4,5,
6}
{1,3}
{2,4,5,6}
{(1,3),(3,6)}
{1,2,3,4,5,
6}
{1,3,6}
{2,4,5}
{(1,3),(3,6),(6,4)}
{1,2,3,4,5,
6}
{1,3,4,6}
{2,5}
12 3 4 5 6
1 6 1 5
2 6 5 3
3 1 5 5 6 4
4 5 5 2
5 3 6 6
6 4 2 6
102
V-U
---
{1,2,3,4,5,6}
{1}
{2,3,4,5,6}
{(1,3)}
{1,2,3,4,5,6}
{1,3}
{2,4,5,6}
{(1,3),(3,6)}
{1,2,3,4,5,6}
{1,3,6}
{2,4,5}
{(1,3),(3,6),(6,4)}
{1,2,3,4,5,6}
{1,3,4,6}
{2,5}
{(1,3),(3,6),(6,4),(3,2)}
{1,2,3,4,5,6}
{1,2.3,4,6}
{5}
12 3 4 5 6
1 6 1 5
2 6 5 3
3 1 5 5 6 4
4 5 5 2
5 3 6 6
6 4 2 6
103
V-U
---
{1,2,3,4,5,6}
{1}
{2,3,4,5,6}
{(1,3)}
{1,2,3,4,5,6}
{1,3}
{2,4,5,6}
{(1,3),(3,6)}
{1,2,3,4,5,6}
{1,3,6}
{2,4,5}
{(1,3),(3,6),(6,4)}
{1,2,3,4,5,6}
{1,3,4,6}
{2,5}
{(1,3),(3,6),(6,4),(3,2)}
{1,2,3,4,5,6}
{1,2.3,4,6}
{5}
{(1,3),(3,6),(6,4),(3,2),(2,5)}
{1,2,3,4,5,6}
{1,2,3,4,5,6}
{}
12 3 4 5 6
1 6 1 5
2 6 5 3
3 1 5 5 6 4
4 5 5 2
5 3 6 6
6 4 2 6
104
V-U
---
{1,2,3,4,5,6}
{1}
{2,3,4,5,6}
{(1,3)}
{1,2,3,4,5,6}
{1,3}
{2,4,5,6}
{(1,3),(3,6)}
{1,2,3,4,5,6}
{1,3,6}
{2,4,5}
{(1,3),(3,6),(6,4)}
{1,2,3,4,5,6}
{1,3,4,6}
{2,5}
{(1,3),(3,6),(6,4),(3,2)}
{1,2,3,4,5,6}
{1,2.3,4,6}
{5}
{(1,3),(3,6),(6,4),(3,2),(2,5)}
{1,2,3,4,5,6}
{1,2,3,4,5,6}
{}
Algoritmo de Kruskal
El algoritmo de Kruskal es un algoritmo
de la teora de grafos para encontrar un
rbol abarcador de costo mnimo en un
grafo conexo y ponderado.
Es decir, busca un subconjunto de aristas
que, formando un rbol, incluyen todos los
vrtices y donde el valor total de todas las
aristas del rbol es el mnimo.
Si el grafo no es conexo, entonces busca
un bosque abarcador de costo mnimo (un
rbol abarcador de costo mnimo para
cada componente conexa).
12
5
7
3
6
5
4
11
7
9
10
12
5
7
3
6
5
4
11
7
9
10
12
5
7
3
6
5
4
11
7
9
10
12
5
7
3
6
5
4
11
7
9
10
12
5
7
3
6
5
4
11
7
9
10
12
5
7
3
6
5
4
11
7
9
10
12
5
7
3
6
5
4
11
7
9
10
12
5
7
3
6
5
4
11
7
9
10
12
5
7
3
6
5
4
11
7
9
10
5
5
3
6
Ejemplo:
Encontrar el rbol abarcador de costo
mnimo del siguiente grafo no dirigido
utilizando el algoritmo de Kruskal.
Costo
Aristas
(1,3)
(4,6)
(2,5)
(3,6)
(1,4) (2,3)
(3,4)
(3,5) (5,6)
Costo
Aristas
(1,3)
(4,6)
(2,5)
(3,6)
(1,4) (2,3)
(3,4)
(3,5) (5,6)
10
y
v
10
10
10
u
2
10
10
9
7
u
3
ALGORITMO DE DIJKSTRA
1.- Seleccionar la ciudad origen (a).
2.- Usar una matriz que tenga como columnas el nmero de iteracin, una columna
para cada nodo (a,b,c,d,.), la columna actual que se utilizar para indicar el
vrtice que se seleccione en cada iteracin y una columna seleccionados para
registrar a los vrtices que se van seleccionado en el proceso, como se muestra
en la siguiente tabla.
Iteracin
actual
seleccionados
3.- Colocar en la matriz la distancia que existe de la ciudad origen a ella misma. (Cuando
se trata de encontrar la distancia de una ciudad a ella misma considerar que es 0). A
todas las dems columnas se les coloca como distancia.
Iteracin
actual
seleccionados
4.- Colocar en la columna actual el vrtice que tenga la distancia ms corta de entre
todos los nodos. (Es obvio que en esta primera iteracin es el nodo origen.) En la
columna seleccionados registrar dicho nodo escogido para ya no volverlo a
elegir. (En nuestro caso le colocamos a esta distancia en negrita y subrayado.)
Iteracin
actual
seleccionados
5.- Registrar en la columna de cada uno de los nodos la distancia ms corta que resulta
de sumar la distancia registrada en el nodo actual + distancia a los vrtices
adyacentes a l y seleccionar la distancia ms corta cuyo nodo an no est
seleccionado de esa fila de la matriz. Suponer que d1 > d2, por lo tanto la matriz
ser:
Iteracin
d1
d2
actual
a
seleccionad
os
a
Iteracin
actual
seleccionado
s
d1
d2
a,c
7.- Si ya estn todos los vrtices seleccionados finalizar. En caso contrario regresar
al paso 5.
Ejemplo:
Encontrar los caminos ms cortos entre
el vrtice 1 y todos los dems del
siguiente grafo dirigido.
Iteraci
n
D[2]
D[3]
D[4]
D[5]
Inicial
{1}
---
10
30
100
Iteraci
n
D[2]
D[3]
D[4]
D[5]
Inicial
{1}
---
10
30
100
{1,2}
10
60
30
100
Iteraci
n
D[2]
D[3]
D[4]
D[5]
Inicial
{1}
---
10
30
100
1
2
{1,2}
{1,2,4}
2
4
10
10
60
50
30
30
100
90
Iteraci
n
D[2]
D[3]
D[4]
D[5]
Inicial
{1}
---
10
30
100
1
2
3
{1,2}
{1,2,4}
{1,2,4,3}
2
4
3
10
10
10
60
50
50
30
30
30
100
90
60
Iteraci
n
D[2]
D[3]
D[4]
D[5]
Inicial
{1}
---
10
30
100
1
2
3
{1,2}
{1,2,4}
{1,2,4,3}
{1,2,4,3,
2
4
3
10
10
10
60
50
50
30
30
30
100
90
60
10
50
30
60
Ejemplo:
Encontrar el camino ms corto entre los
vrtices a y h.
T {a, b, c, d , e, f , g , h}
D[a] 0
D[b]
D[c]
D[d ]
D[e]
D[ f ]
D[ g ]
D[h]
T {b, c, d , e, f , g , h}
D[a ] 0
D[b] 2
D[c]
D[d ]
D[e]
D[ f ] 1
D[b] min{ ,0 2} 2
Adyacente a a
D[ f ] min{ ,0 1} 1
D[ g ]
D[h]
T {b, c, d , e, g , h}
D[a ] 0
D[b] 2
D[c]
D[d ] 4
D[e]
D[ f ] 1
D[d ] min{ ,1 3} 4
Adyacente a f
D[ g ] min{ ,1 5} 6
D[ g ] 6
D[h]
T {c, d , e, g , h}
D[a] 0
D[b] 2
D[c] 4
D[d ] 4
D[e] 6
D[c] min{ ,2 2} 4
D[ f ] 1
D[ g ] 6
D[h]
T {d , e, g , h}
D[a ] 0
D[b] 2
D[c] 4
D[d ] 4
D[e] 6
D[ f ] 1
D[e] min{ 6,4 3} 6
Adyacente a c
D[h] min{ ,4 1} 5
D[ g ] 6
D[h] 5
T {e, g , h}
D[a] 0
D[b] 2
D[c] 4
D[d ] 4
D[e] 6
D[ f ] 1
Adyacente a d D[e] min{ 6,4 4} 6
D[ g ] 6
D[h] 5
T {e, g}
D[a ] 0
D[b] 2
D[c] 4
D[d ] 4
D[e] 6
D[ f ] 1
Adyacente a h D[ g ] min{ 6,5 6} 6
D[ g ] 6
D[h] 5
T {e, g}
D[a ] 0
D[b] 2
D[c] 4
D[d ] 4
D[e] 6
D[ f ] 1
D[ g ] 6
D[h] 5
Ejemplo
Encontrar la ruta ms corta para ir de la
ciudad origen (a) a las ciudades restantes.
b
4
a
3
g
3
e
4
2
1
h
3
k
1
2
4
i
Ejemplo
Encontrar la ruta ms corta para ir de la
ciudad origen (a) a las ciudades restantes.
b
c
2
1
3
4
2
d
2 e 4
2
1
f
3
a
2
2
2 1
3
4 k
1
4 j
g
h 2 i
Ite
act
seleccionados
a,e
a,e,b
a,e,b,g
a,e,b,g,h
Ejemplo:
a,e,b,g,h,c
Para ir de a a j la
distancia mnima es 6.
Para ir de a a k la
distancia es 8.
a,e,b,g,h,c,f
a,e,b,g,h,c,f,d
a,e,b,g,h,c,f,d,i
a,e,b,g,h,c,f,d,i,j
10
a,e,b,g,h,c,f,d,i,j,k