Vous êtes sur la page 1sur 113

ALGORITMOS

(CIC621)
Unidad 6. Grafos
J. Miguel Guanira Erazo MSc.
Escuela de Posgrado Maestra en Informtica 1
Unidad 6. Grafos
GRAFOS:
Un grafo G = (V, A) es una estructura de datos
compuesta por un conjunto de elementos
denominados Vrtices (nodos) y un conjunto de
Aristas o Arcos que conectan los vrtices.
Cada arista es un par (v, w), donde v, w V. Si el
par (v, w) es un par ordenado, el grafo recibe el
nombre de Grafo Dirigido.
Escuela de Posgrado Maestra en Informtica 2
Unidad 6. Grafos
GRAFOS:
Los Grafos permiten abordar todos los problemas de
tipo conectividad (el objeto O
1
est conectado de una
manera u otra al objeto O
2
) o de optimizacin
(caminos ms cortos).
Ejemplos:
Modelacin de trfico
Planificacin de movimientos: recoleccin de
basura, reparto de correspondencia
Redes informticas, Internet.
Etc.
Escuela de Posgrado Maestra en Informtica 3
Unidad 6. Grafos
Escuela de Posgrado Maestra en Informtica 4
Lima
Ancash
Cajamarca
Junn
Ucayali
Cuzco
Ica
Ayacucho Puno
EJEMPLO
DE GRAFO
Unidad 6. Grafos
Escuela de Posgrado Maestra en Informtica 5
GRAFO
DIRIGIDO
H
Y
P
F
U Q
K
M
A
Unidad 6. Grafos
GRAFOS:
Definiciones:
Grado(v): Denominado grado de un vrtice, es el
nmero de aristas que se conectan a un vrtice. Se
denota como grado(v). En el ejemplo, P es un
vrtice de grado 4, grado(K) = 3, y grado(A) = 0.
Escuela de Posgrado Maestra en Informtica 6
H
Y
P
F
U Q
K
M
A
Unidad 6. Grafos
GRAFOS:
Definiciones:
Vrtices adyacentes: Dos vrtices son adyacentes
si est unidos por una arista. En ese caso se dice que
la arista es incidente en esos vrtices. En el
ejemplo, P y Q son adyacente, P y K no son
adyacentes.
Escuela de Posgrado Maestra en Informtica 7
H
Y
P
F
U Q
K
M
GRAFOS:
Definiciones:
a = (u, u): Denominado lazo o bucle, es una arista
que conecta un vrtice consigo mismo.
En el ejemplo los nodos H y M estn conectados
con lazos.
Unidad 6. Grafos
Escuela de Posgrado Maestra en Informtica 8
H
Y
P
F
U Q
K
M
Unidad 6. Grafos
GRAFOS:
Definiciones :
P = (v
1
, v
2
,, v
n
): Denominado camino, es la
secuencia de vrtices que se debe seguir para llegar
del vrtice v
1
(origen) al vrtice v
n
(destino). En el
ejemplo un camino P para llegar del nodo H al nodo
A es H-Y-F-K-A
Escuela de Posgrado Maestra en Informtica 9
H
Y
P
F
U Q
K
M
A
Unidad 6. Grafos
GRAFOS:
Definiciones :
P = (v
1
, v
2
,, v
n
): Se denomina camino cerrado, si
el origen (v
1
) coincide con el destino (v
n
). En el
ejemplo el camino H-Y-F-Q-P-H, es un camino
cerrado.
Escuela de Posgrado Maestra en Informtica 10
H
Y
P
F
U Q
K
M
A
Unidad 6. Grafos
GRAFOS:
Definiciones :
P = (v
1
, v
2
,, v
n
): Se denomina camino simple, si
todos los vrtices excepto el origen y el destino,
son distintos. En el ejemplo el camino H-Y-F-Q-P-
H, es un camino simple, pero el camino H-Y-Q-P-
M-Q-K no lo es.
Escuela de Posgrado Maestra en Informtica 11
H
Y
P
F
Q
K
M
A
Unidad 6. Grafos
GRAFOS:
Definiciones :
Ciclo: Se denominado ciclo, al camino simple y
cerrado que incluye 3 o ms vrtices. En el ejemplo
los caminos H-Y-Q-P-H y M-K-A-M son ciclos.
Escuela de Posgrado Maestra en Informtica 12
H
Y
P
F
Q
K
M
A
Unidad 6. Grafos
GRAFOS:
Definiciones :
Tour: Se denominado tour, al camino simple que
une todos los vrtices. En el ejemplo el caminos
dado por H-Y-F-K-A-M-P-Q es un tour.
Escuela de Posgrado Maestra en Informtica 13
H
Y
P
F
Q
K
M
A
Unidad 6. Grafos
GRAFOS:
Definiciones :
Grafo conexo: Un grafo es conexo si para todo par
de vrtices del grafo existe un camino entre ellos.
Si el grafo no es dirigido se dice que es dbilmente
conexo. En el ejemplo se puede decir que el grafo
es dbilmente conexo.
Escuela de Posgrado Maestra en Informtica 14
H
Y
P
F
Q
K
M
A
Unidad 6. Grafos
GRAFOS:
Definiciones :
Grafo rbol: Un grafo es de tipo rbol si es un es
un grafo conexo y no tiene ciclos.
En el ejemplo se puede decir que el grafo es de tipo
rbol.
Escuela de Posgrado Maestra en Informtica 15
1
5
2
4
3
3
1
4
2
Unidad 6. Grafos
GRAFOS:
Definiciones :
Si el grafo es dirigido se dice que es fuertemente
conexo. En el ejemplo se puede decir que el grafo
es fuertemente conexo.
Escuela de Posgrado Maestra en Informtica 16
H
Y
P
F
Q
Unidad 6. Grafos
GRAFOS:
Definiciones :
Grafo completo: Un grafo es completo si todos sus
nodos son adyacentes. En el ejemplo se puede decir
que el grafo es completo.
Escuela de Posgrado Maestra en Informtica 17
H
Y
P
F
Q
Unidad 6. Grafos
GRAFOS:
Definiciones :
Multigrafo: Se denomina as al grafo que por lo
menos dos de sus vrtices estn conectados por dos
aristas. En el ejemplo se puede decir que el grafo es
multigrafo.
Escuela de Posgrado Maestra en Informtica 18
H
Y
P
F
Q
Unidad 6. Grafos
GRAFOS:
Definiciones :
Subgrafo: Dado un grafo G = (V, A), se denomina
subgrafo a aquel grafo G
1
= (V
1
, A
1
) en el que se
cumple que V
1
V, V
1
y que A
1
A. Adems
cada arista de A
1
es incidente con V
1
. En el
siguiente ejemplo se puede apreciar este concepto.
Escuela de Posgrado Maestra en Informtica 19
Unidad 6. Grafos
Escuela de Posgrado Maestra en Informtica 20
H
Y
P
F
Q
A
C
B
SubGrafo
Unidad 6. Grafos
GRAFOS:
Definiciones:
Grafo etiquetado: Se dice que un grafo est
etiquetado si sus arista tienen algn valor (costo,
peso, longitud etc.).
Escuela de Posgrado Maestra en Informtica 21
H
Y
P
F
U Q
K
M
10
55
9
25
8
20
60
18
Unidad 6. Grafos
Escuela de Posgrado Maestra en Informtica 22
GRAFOS DIRIGIDOS
Unidad 6. Grafos
GRAFOS DIRIGIDOS:
Un grafo dirigido G, denominado tambin digrafo, es
aquel grafo en el que cada una de sus aristas a est
asignada a un par ordenado (u, v) de vrtices de G, es
decir tienen una direccin asignada.
Escuela de Posgrado Maestra en Informtica 23
H
Y
P
F
Q
Unidad 6. Grafos
ARCO O ARISTA DIRIGIDA:
Se denominan as a las aristas de un grafo dirigido.
Se expresan como u v.
-u es el origen y v es el destino.
-u es predecesor de v y v es sucesor de u.
-u es adyacente hacia v y v es adyacente desde u.
Escuela de Posgrado Maestra en Informtica 24
u v
arco a:
Unidad 6. Grafos
MATRIS DE AYACENCIA:
Los grafos dirigidos, por lo general se modelan mediante
arreglos de dos dimensiones de valores binarios (0/1 o
false/true). Son matrices cuadradas de orden n x n,
donde n es representa el nmero de vrtices del grafo. A
estos arreglos se les denomina matrices de adyacencia
M. Las filas de la matriz se relacionan con los vrtices de
origen, mientras que las columnas los vrtices de destino,
y los valores de sus elementos M[u][v] tienen un valor
de 1 (uno) si existe un arco desde u hacia v y 0 (cero) si
no.
Escuela de Posgrado Maestra en Informtica 25
Unidad 6. Grafos
MATRIS DE AYACENCIA:
Ejemplo:
Escuela de Posgrado Maestra en Informtica 26
H
Y
P
F
U Q
K
M
F H K M P Q U Y
F 0 0 1 0 0 1 0 0
H 0 0 0 0 1 0 0 1
K 0 0 0 1 0 0 0 0
M 0 0 1 0 0 0 0 0
P 0 0 0 1 0 1 0 1
Q 0 0 1 0 1 0 0 0
U 0 0 0 0 0 0 0 0
Y 1 1 0 0 0 0 1 0
Unidad 6. Grafos
MATRIS DE AYACENCIA:
Variante (grafos etiquetados):
Escuela de Posgrado Maestra en Informtica 27
F H K M P Q U Y
F 0 0 12 0 0 9 0 0
H 0 0 0 0 6 0 0 0
K 0 0 0 10 0 0 0 0
M 0 0 0 0 0 0 0 0
P 0 0 0 5 0 1 0 8
Q 0 0 11 0 14 0 0 0
U 0 0 0 0 0 0 0 0
Y 7 2 0 0 0 0 2 0
H
Y
P
F
U Q
K
M
10
5 6
8
12
2
7
2
11
14
9
Unidad 6. Grafos
LISTAS DE AYACENCIA:
Otra manera de modelar los grafos dirigidos, es por
medio de arreglos unidimensionales de n elementos,
donde n representa el nmero de vrtices del grafo. Cada
elemento u del arreglo representan los vrtices de origen
y su valor M[u] es un puntero a una lista ligada en donde
cada nodo representa el vrtice de destino.
Escuela de Posgrado Maestra en Informtica 28
Unidad 6. Grafos
LISTA DE AYACENCIA:
Ejemplo:
Escuela de Posgrado Maestra en Informtica 29
F
H
K
M
P
Q
U
Y
H
Y
P
F
U Q
K
M
K Q
P Y
M
K
M Q Y
K P
F H U
Unidad 6. Grafos
LISTA DE AYACENCIA:
Ejemplo:
Escuela de Posgrado Maestra en Informtica 30
F
H
K
M
P
Q
U
Y
K/12 Q/9
P/6
M/10
M/5 Y/8
K/11 P/14
F/7 H/2 U/2
H
Y
P
F
U Q
K
M
10
5 6
8
12
2
7
2
11
14
9
Unidad 6. Grafos
Escuela de Posgrado Maestra en Informtica 31
DETERMINACIN DE
CAMINOS EN GRAFOS
DIRIGIDOS
Unidad 6. Grafos
DETERMINACIN DE CAMINOS EN
GRAFOS DIRIGIDOS:
Existen muchos problemas en los que se requiere
conocer la existencia de caminos , de manera directa o
indirectamente, entre dos puntos. Por otro lado la
determinacin del menor camino entre dos puntos es
igualmente til.
Los grafos dirigidos son ideales para resolver este tipo de
problemas.
Escuela de Posgrado Maestra en Informtica 32
Unidad 6. Grafos
DETERMINACIN DE CAMINOS EN
GRAFOS DIRIGIDOS:
Existen muchos algoritmos que permiten encontrar
caminos que partan de un punto de origen y que lleguen
a un punto destino recorriendo la menor distancia. Los
algoritmos ms famosos son:
El algoritmo de Dijkstra
El algoritmo de Floyd
El algoritmo de Warshall
Los tres algoritmos emplean una matriz de adyacencia
Escuela de Posgrado Maestra en Informtica 33
Unidad 6. Grafos
Escuela de Posgrado Maestra en Informtica 34
ALGORITMO DE DIJKSTRA
Unidad 6. Grafos
ALGORITMO DE DIJKSTRA:
El algoritmo de Dijkstra determina la ruta ms corta
entre un vrtice de origen a cualquier otro vrtice del
grafo dirigido.
Elementos requeridos:
Una matriz de adyacencia M de n x n elementos en el
que se coloca en cada elemento M[u][v], la distancia
entre los puntos u y v, si no existe el camino se coloca
un valor muy grande (). No se consideran los bucles
(M[u][u] = 0).
Escuela de Posgrado Maestra en Informtica 35
Unidad 6. Grafos
ALGORITMO DE DIJKSTRA:
Un arreglo S que guardar los vrtices una vez se
conozca el camino mnimo entre l y el origen.
Inicialmente contendr el vrtice origen. Se maneja
como un conjunto.
Un arreglo D de n elementos, cada uno representa un
vrtice del grafo, en el que se guarda la distancia entre el
origen y el vrtice. Al terminar el algoritmo, los
elementos tendrn las distancias mnimas
Escuela de Posgrado Maestra en Informtica 36
Unidad 6. Grafos
ALGORITMO DE DIJKSTRA:
Se tienen el conjunto de vrtices V: 1(origen), 2,3,4,, n
Colocar el vrtice origen en el conjunto S.
Repetir desde 2 hasta n
o Elegir un vrtice v en V-S tal que D[v] sea el mnimo
valor.
o Agregar v a S.
o Repetir para cada vrtice w en V-S
Hacer D[w] mnimo ( D[w], D[v] + M[v][w] )
Escuela de Posgrado Maestra en Informtica 37
Unidad 6. Grafos
ALGORITMO DE DIJKSTR:
Ejemplo 1: origen ==> 1
Escuela de Posgrado Maestra en Informtica 38
11
1
3
2
5
4
6 4
3
3
5
6
2
1 2 3 4 5
1 0 4 11
2 0 6 2
3 3 0 6
4 0
5 5 3 0
Unidad 6. Grafos
ALGORITMO DE DIJKSTR:
Ejemplo 1:
Escuela de Posgrado Maestra en Informtica 39
S={1} V - S={2, 3,4,5}
V ={1,2,34,5}
1 2 3 4 5
D 0 4 11
1)
min = 4 v = 2 S = {1, 2} V - S = {3, 4, 5}
w 3
D[3] = 11
D[2] + M[2][3] = 4 + =
min = 11
w 4
D[4] =
D[2] + M[2][4] = 4 + 6 = 10
min = 10
w 5
D[5] =
D[2] + M[2][5] = 4 + 2 = 6
min = 6
Unidad 6. Grafos
ALGORITMO DE DIJKSTR:
Ejemplo 1:
Escuela de Posgrado Maestra en Informtica 40
S={1, 2} V - S={3,4,5}
1 2 3 4 5
D 0 4 11 10 6
2)
min = 6 v = 5 S = {1, 2, 5} V - S = {3, 4}
w 3
D[3] = 11
D[5] + M[5][3] = 6 + 5 = 11
min = 11
w 4
D[4] =
D[5] + M[5][4] = 6 + 3 = 9
min = 9
Unidad 6. Grafos
ALGORITMO DE DIJKSTR:
Ejemplo 1:
Escuela de Posgrado Maestra en Informtica 41
S={1, 2,5} V - S={3,4}
1 2 3 4 5
D 0 4 11 9 6
3)
min = 9 v = 4 S = {1, 2, 4, 5} V - S = {3}
w 3
D[3] = 11
D[4] + M[4][3] = 9 + =
min = 11
Distancia mnima de
1 a 2 4
1 a 3 11
1 a 4 9
1 a 5 6
Unidad 6. Grafos
ALGORITMO DE DIJKSTR:
Ejemplo 1:
Escuela de Posgrado Maestra en Informtica 42
Resultado:
Distancia
mnima de
1 a 2 4
1 a 3 11
1 a 4 9
1 a 5 6
Unidad 6. Grafos
ALGORITMO DE DIJKSTR:
Ejemplo 2:
Escuela de Posgrado Maestra en Informtica 43
4
1 2 3 4 5 6 7 8
1 0 2 3
2 4 0 4 6
3 6 0 7
4 0 5 4
5 6 0 4 3
6 0
7 2 0 5
8 1 8
7
1
3
2
5
4
4
3
6
5
6
2
6
7
8
6
4
2
5
1
3
4
Unidad 6. Grafos
Escuela de Posgrado Maestra en Informtica 44
ALGORITMO DE FLOYD
Unidad 6. Grafos
ALGORITMO DE FLOYD:
El algoritmo de Floyd determina la ruta ms corta entre
todos los vrtices de un grafo dirigido.
Elementos requeridos:
Una matriz de adyacencia M de n x n elementos en el
que se coloca en cada elemento M[u][v], la distancia
entre los puntos u y v, si no existe el camino se coloca
un valor muy grande (). No se consideran los bucles
(M[u][u] = 0).
Escuela de Posgrado Maestra en Informtica 45
Unidad 6. Grafos
ALGORITMO DE FLOYD:
Repetir para todo w desde 1 hasta n
oRepetir para todo u desde 1 hasta n
Repetir para todo v desde 1 hasta n
Si M
uw
+M
wv
< M
uv
entonces
M
uv
M
uw
+M
wv
Escuela de Posgrado Maestra en Informtica 46
Unidad 6. Grafos
Escuela de Posgrado Maestra en Informtica 47
ALGORITMO DE WARSHALL
Unidad 6. Grafos
ALGORITMO DE WARSHALL:
El algoritmo de Warshall determina si hay una ruta entre
todos los vrtices de un grafo dirigido (no da distancias).
Elementos requeridos:
Una matriz de adyacencia M de n x n elementos en el
que se coloca en cada elemento M[u][v], el valor 1 si
hay un arco que une los vrtices u y v, 0 si no.
Una matriz de C de n x n, inicialmente igual a M donde
se guardar 1 si hay un camino entre los vrtices u y v, 0
si no.
Escuela de Posgrado Maestra en Informtica 48
Unidad 6. Grafos
ALGORITMO DE WARSHALL:
Repetir para todo w desde 1 hasta n
oRepetir para todo u desde 1 hasta n
Repetir para todo v desde 1 hasta n
Si C
uv
= 0 entonces
C
uv
C
uw
C
wv
Escuela de Posgrado Maestra en Informtica 49
Unidad 6. Grafos
Escuela de Posgrado Maestra en Informtica 50
GRAFOS NO DIRIGIDOS
Unidad 6. Grafos
DETERMINACIN DE CAMINOS EN
GRAFOS NO DIRIGIDOS:
Los grafos no dirigidos sirven para solucionar problemas
de ruteo en los que el costo de ir del vrtice u al vrtice v
el igual al de ir del vrtice v al vrtice u.
Escuela de Posgrado Maestra en Informtica 51
11
1
3
2
5
4
6
4
3
3
5
6
2
Unidad 6. Grafos
RBOL DE EXTENSIN MNIMA:
Un rbol de extensin mnima de un grafo no dirigido
G(V,A) se define como un rbol que conecta todos los
vrtices V y est formado por las aristas de menor costo.
Escuela de Posgrado Maestra en Informtica 52
1
5
2
4
3
3
1
3
4
5
6
2
1
5
2
4
3
3
1
4
2
Unidad 6. Grafos
RBOL DE EXTENSIN MNIMA:
Si se necesita cablear una casa con un mnimo
de cable, entonces se necesita resolver un
problema de rbol de extensin mnima.
Escuela de Posgrado Maestra en Informtica 53
Unidad 6. Grafos
Escuela de Posgrado Maestra en Informtica 54
ALGORITMO DE PRIM
Unidad 6. Grafos
ALGORITMO DE PRIM:
El algoritmo de Prim permite encontrar el rbol de
extensin mnima para un grafo.
Elementos requeridos:
Un conjunto V que contiene los vrtices del grafo.
V={1,2,3n}
Un conjunto U que contendr los vrtices del grafo.
Inicialmente contiene el primer vrtice, U = {1}.
Un conjunto L de aristas que se formar con las aristas
de menor costo. Inicialmente la lista estar vaca, L= .
Escuela de Posgrado Maestra en Informtica 55
Unidad 6. Grafos
ALGORITMO DE PRIM:
Mientras V U hacer
oElegir una arista (u, v) del grafo tal que:
Su costo sea mnimo y
u U y v V-U
oAgregar la arista (u, v) a L
oAgregar el vrtice v al conjunto U
Escuela de Posgrado Maestra en Informtica 56
Unidad 6. Grafos
ALGORITMO DE PRIM:
Ejemplo 1:
Escuela de Posgrado Maestra en Informtica 57
5
4
1
3
2
1
4
3
3
5
6
2
V = {1, 2, 3, 4, 5}
U = {1}
A = { 1-2, 1-3,
2-3, 2-4,
3-4, 3-5,
4-5}
L = {}
Unidad 6. Grafos
ALGORITMO DE PRIM:
paso 1:
Escuela de Posgrado Maestra en Informtica 58
5
4
1
3
2
1
3
V = {1, 2, 3, 4, 5}
U = {1} u
(u, v) 1-2 (1)
1-3 (3)
V-U = {2, 3, 4, 5} v
L = {}
Unidad 6. Grafos
ALGORITMO DE PRIM:
paso 2:
Escuela de Posgrado Maestra en Informtica 59
V = {1, 2, 3, 4, 5}
U = {1, 2} u
(u, v) 1-3 (3)
2-3 (3)
2-4 (6)
V-U = {3, 4, 5} v 5
4
1
3
2
1
3
6
L = {1-2}
Unidad 6. Grafos
ALGORITMO DE PRIM:
paso 3:
Escuela de Posgrado Maestra en Informtica 60
V = {1, 2, 3, 4, 5}
U = {1, 2, 3} u
(u, v) 2-4 (6)
3-4 (4)
3-5 (2)
V-U = {4, 5} v 5
4
1
3
2
1
4
3
6
2
L = {1-2, 1-3}
Unidad 6. Grafos
ALGORITMO DE PRIM:
paso 4:
Escuela de Posgrado Maestra en Informtica 61
V = {1, 2, 3, 4, 5}
U = {1, 2, 3, 5} u
(u, v) 2-4 (6)
3-4 (4)
5-4 (5)
V-U = {4} v 5
4
1
3
2
1
4
3
5
6
2
L = {1-2, 1-3, 3-5}
Unidad 6. Grafos
ALGORITMO DE PRIM:
resultado:
Escuela de Posgrado Maestra en Informtica 62
V = {1, 2, 3, 4, 5}
U = {1, 2, 3, 4, 5} u
rbol de extensin mnima
V-U = {} v 5
4
1
3
2
1
4
3
2
L = {1-2, 1-3, 3-5, 3-4}
Unidad 6. Grafos
ALGORITMO DE PRIM:
Ejercicio:
Escuela de Posgrado Maestra en Informtica 63
V = {1, 2, 3, 4, 5, 6, 7}
U = {1}
L = {}
3
6
1
5
2
1
4 3 10
5
6
2
4
7
2 7
1
4
8
Unidad 6. Grafos
Escuela de Posgrado Maestra en Informtica 64
ALGORITMO DE KRUSKAL
Unidad 6. Grafos
ALGORITMO DE KRUSKAL:
El algoritmo de Kruskal permite encontrar tambin el
rbol de extensin mnima para un grafo.
Elementos requeridos:
Un conjunto L que contiene las aristas del grafo y sus
costos.
Un conjunto P de particiones. P = {{1}, {2}, {3},{n}}
Escuela de Posgrado Maestra en Informtica 65
Unidad 6. Grafos
ALGORITMO DE KRUSKAL:
Mientras haya vrtices en P que pertenezcan a
particiones distintas hacer
oElegir de L la arista (u, v) que tenga costo mnimo
oSi u y v estn en particiones distintas entonces
Unir las particiones a las que pertenezcan u y v
Escuela de Posgrado Maestra en Informtica 66
Unidad 6. Grafos
ALGORITMO DE KRUSKAL:
Ejemplo 1:
Escuela de Posgrado Maestra en Informtica 67
5
4
1
3
2
1
4
3
3
5
6
2
P = {{1}, {2}, {3}, {4}, {5}}
L = { 1-2(1), 1-3(3),
2-3(3), 2-4(6),
3-4(4), 3-5(2),
4-5(5)}
Unidad 6. Grafos
ALGORITMO DE KRUSKAL:
paso 1:
Escuela de Posgrado Maestra en Informtica 68
5
4
1
3
2
1
4
3
3
5
6
2
P = {{1}, {2}, {3}, {4}, {5}}
L = { 1-2(1), 1-3(3),
2-3(3), 2-4(6),
3-4(4), 3-5(2),
4-5(5)}
1-2(1) (u, v)
Unidad 6. Grafos
ALGORITMO DE KRUSKAL:
paso 2:
Escuela de Posgrado Maestra en Informtica 69
5
4
1
3
2
1
4
3
3
5
6
2
P = {{1, 2}, {3}, {4}, {5}}
L = { 1-3(3), 2-3(3),
2-4(6), 3-4(4),
3-5(2), 4-5(5)}
3-5(2) (u, v)
Unidad 6. Grafos
ALGORITMO DE KRUSKAL:
paso 3:
Escuela de Posgrado Maestra en Informtica 70
5
4
1
3
2
1
4
3
3
5
6
2
P = {{1, 2}, {3, 5}, {4}}
L = { 1-3(3), 2-3(3),
2-4(6), 3-4(4),
4-5(5)}
1-3(3) (u, v)
Unidad 6. Grafos
ALGORITMO DE KRUSKAL:
paso 3:
Escuela de Posgrado Maestra en Informtica 71
5
4
1
3
2
1
4
3
3
5
6
2
P = {{1, 2, 3, 5}, {4}}
L = { 2-3(3), 2-4(6),
3-4(4), 4-5(5)}
2-3(3) ciclo
3-4(4) (u, v)
Unidad 6. Grafos
ALGORITMO DE KRUSKAL:
resultado:
Escuela de Posgrado Maestra en Informtica 72
5
4
1
3
2
1
4
3
2
P = {{1, 2, 3, 4, 5}}
L = { 2-4(6), 4-5(5)}
Unidad 6. Grafos
ALGORITMO DE KRUSKAL:
Ejercicio:
Escuela de Posgrado Maestra en Informtica 73
P = {{1}, {2}, {3}, {4}, {5}, {6}, {7}}
L = { 1-2(2), 1-3(4), 1-4(1),
2-4(3), 2-5(10), 3-4(2),
3-6(5), 4-5(7), 4-6(8),
4-7(4), 5-7(6), 6-7(1)}
3
6
1
5
2
1
4 3 10
5
6
2
4
7
2 7
1
4
8
Unidad 6. Grafos
Escuela de Posgrado Maestra en Informtica 74
BSQUEDA EN AMPLITUD
BREADTH-FIRST
Unidad 6. Grafos
BSQUEDA EN AMPLITUD:
La bsqueda en amplitud es un algoritmo que
permite encontrar un camino entre dos vrtices de un
grafo.
El mtodo consiste en que a partir del vrtice inicial,
se van analizando los siguientes vrtices por
niveles (los que estn conectados al vrtice inicial)
y as se va avanzando hasta encontrar el vrtice meta.
Escuela de Posgrado Maestra en Informtica 75
Unidad 6. Grafos
BSQUEDA EN AMPLITUD :
Elementos requeridos:
Una lista P (pendientes) que contiene los vrtices que
aun no se han visitado. Funciona como una cola
Una lista V (visitados) que contiene los vrtices que
han sido visitados.
Escuela de Posgrado Maestra en Informtica 76
Unidad 6. Grafos
BSQUEDA EN AMPLITUD :
Insertar el vrtice inicial en la lista P
Mientras P y no se lleg al vrtice meta
oTomar en X un elemento de P (cola: atender)
oSi X V entonces
Poner X en V (cola: llegada)
Determinar todos los vrtices conectados a X
Si en estos vrtices no se encuentra el vrtice meta
Colocarlos en P (cola: llegada)
Si se encontr el vrtice meta XITO
De lo contrario FRACASO
Escuela de Posgrado Maestra en Informtica 77
Unidad 6. Grafos
BSQUEDA EN AMPLITUD :
Ejemplo 1:
Escuela de Posgrado Maestra en Informtica 78
V = {}
P = { 1 }
6
5
2
4
3
7
8
9
10
11
12
1
Ruta de 1 a 12
Unidad 6. Grafos
BSQUEDA EN AMPLITUD :
paso 1:
Escuela de Posgrado Maestra en Informtica 79
V = {}
P = { 2, 8 }
6
5
2
4
3
7
8
9
10
11
12
1
Ruta de 1 a 12
1
X = V
V = {1}
X
2 8
8
1
2
P = { 1}
Unidad 6. Grafos
BSQUEDA EN AMPLITUD :
paso 2:
X = V
Escuela de Posgrado Maestra en Informtica 80
V = {1}
P = { 8, 1, 3, 4, 8}
6
5
2
4
3
7
8
9
10
11
12
1
Ruta de 1 a 12
2
X
4
P = { 2, 8}
3 8 1
8
1
2
3 4 8
1
Unidad 6. Grafos
BSQUEDA EN AMPLITUD :
Paso 3:
X = V
Escuela de Posgrado Maestra en Informtica 81
V = {1, 2}
P = { 1, 3, 4, 8, 1, 2, 9}
6
5
2
4
3
7
8
9
10
11
12
1
Ruta de 1 a 12
8
X
2
P = {8, 1, 3, 4, 8}
1 99
8
1
2
3 4 8 1 2 9
1
Unidad 6. Grafos
BSQUEDA EN AMPLITUD :
Paso 4:
X = V, V
Escuela de Posgrado Maestra en Informtica 82
V = {1, 2, 8}
P = {4, 8, 1, 2, 9, 2, 5}
6
5
2
4
3
7
8
9
10
11
12
1
Ruta de 1 a 12
3
X
2
P = {1, 3, 4, 8, 1, 2, 9 }
5
8
1
2
3
4
2
9
5
8
1 2
1
1
Unidad 6. Grafos
BSQUEDA EN AMPLITUD :
Paso 5:
X = V
Escuela de Posgrado Maestra en Informtica 83
V = {1, 2, 8, 3}
P = {8, 1, 2, 9, 2, 5, 2, 5,
6, 9}
6
5
2
4
3
7
8
9
10
11
12
1
Ruta de 1 a 12
4
X
2
P = {4, 8, 1, 2, 9, 2, 5}
5 6 9
8
1
2
3
4 9
5 5
6
2
9
2
1
2
8
Unidad 6. Grafos
BSQUEDA EN AMPLITUD :
Paso 6:
X = V, V
Escuela de Posgrado Maestra en Informtica 84
V = {1, 2, 8, 3, 4}
P = {2, 5, 2, 5, 6, 9, 4, 6,
8, 10 }
6
5
2
4
3
7
8
9
10
11
12
1
Ruta de 1 a 12
9
X
4
P = {8, 1, 2, 9, 2, 5, 2, 5, 6, 9}
8 6 10
8 2 1
8
1
2
3
4 9
5 5
6
2
9
2
1
2
8
6
8
4
10
Unidad 6. Grafos
BSQUEDA EN AMPLITUD :
Paso 7:
X = V, V
Escuela de Posgrado Maestra en Informtica 85
V = {1, 2, 8, 3, 4, 9}
P = {2, 5, 6, 9, 4, 6, 8, 10,
3, 7}
6
5
2
4
3
7
8
9
10
11
12
1
Ruta de 1 a 12
5
X
P = {2, 5, 2, 5, 6, 9, 4, 6, 8, 10}
3 7
2
8
1
2
3
4 9
5 5
6
2
9
2
6
8
4
10
7
3
X = V, V
Unidad 6. Grafos
BSQUEDA EN AMPLITUD :
Paso 8:
Escuela de Posgrado Maestra en Informtica 86
V = {1, 2, 8, 3, 4, 9, 5}
P = {9, 4, 6, 8, 10, 3, 7, 4,
7, 9, 11}
6
5
2
4
3
7
8
9
10
11
12
1
Ruta de 1 a 12
6
X
P = {2, 5, 6, 9, 4, 6, 8, 10, 3, 7}
4 7
2 5
9 11
8
1
2
3
4 9
5 5
6
2
9
6
8
4
10
7 3
7
9
4 11
Unidad 6. Grafos
BSQUEDA EN AMPLITUD :
Paso 9:
X = V V
Escuela de Posgrado Maestra en Informtica 87
V = {1, 2, 8, 3, 4, 9, 5, 6}
P = {3, 7, 4, 7, 9, 11, 7,
11, 9, 11}
6
5
2
4
3
7
8
9
10
11
12
1
Ruta de 1 a 12
9
X
P = {9, 4, 6, 8, 10, 3, 7, 4, 7, 9, 11}
11
6
10
4
8
9
8
1
2
3
4 9
5
6
9
6
8
4
10
7 3
7
9
4 11
9
11
Unidad 6. Grafos
BSQUEDA EN AMPLITUD :
Paso 10:
X = V V
Escuela de Posgrado Maestra en Informtica 88
V = {1, 2, 8, 3, 4, 9, 5, 6, 10}
P = {4, 7, 9, 11, 7, 11, 9,
11, 5, 6}
6
5
2
4
3
7
8
9
10
11
12
1
Ruta de 1 a 12
X
P = {3, 7, 4, 7, 9, 11, 7, 11, 9, 11}
3 7
8
1
2
3
4 9
5
6
10
7 3
7
9
4 11
9
11
6 5
6 5
Unidad 6. Grafos
BSQUEDA EN AMPLITUD :
Paso 11:
Escuela de Posgrado Maestra en Informtica 89
V = {1, 2, 8, 3, 4, 9, 5, 6, 10, 7}
P = { 11 }
6
5
2
4
3
7
8
9
10
11
12
1
Ruta de 1 a 12
X EXITO
P = {4, 7, 9, 11, 7, 11, 9, 11, 5, 6}
7 11
12
X = V, V
4 9
10
8
1
2
3 4 9
5
6 10
7
7
9
4
11
9 11
6 5
10 12
Unidad 6. Grafos
BSQUEDA EN AMPLITUD :
Paso 12:
Escuela de Posgrado Maestra en Informtica 90
6
5
2
4
3
7
8
9
10
11
12
1
Ruta de 1 a 12
8
1
2
3 4 9
5 6 10
7 11 9 11
6 5 10 12
Unidad 6. Grafos
Escuela de Posgrado Maestra en Informtica 91
BSQUEDA EN PROFUNDIDAD
DEPTH-FIRST
Unidad 6. Grafos
BSQUEDA EN PROFUNDIDAD:
La bsqueda en profundidad es un algoritmo que
permite encontrar tambin un camino entre dos
vrtices de un grafo.
El mtodo consiste en que a partir del vrtice inicial,
se van analizando los siguientes vrtices por
adyacencia, se toma un vrtice adyacente al del
inicio y se repite el proceso con el vrtice elegido
como inicial. Si al final no se encuentra la meta se
sigue con otro vrtice adyacente al inicio.
Escuela de Posgrado Maestra en Informtica 92
Unidad 6. Grafos
BSQUEDA EN PROFUNDIDAD :
Elementos requeridos:
Una lista P (pendientes) que contiene los vrtices que
aun no se han visitado. Funciona como una pila.
Una lista V (visitados) que contiene los vrtices que aun
no han sido visitados.
Un valor entero LP que indica el lmite de profundidad
permitido (el vrtice inicial tiene profundidad cero, el
adyacente a l uno, etc. Si se llega al lmite la ruta no
tiene xito.
Escuela de Posgrado Maestra en Informtica 93
Unidad 6. Grafos
BSQUEDA EN PROFUNDIDAD :
Insertar el vrtice inicial en la lista P
Mientras P y no se lleg al vrtice meta
oTomar en X un elemento de P (pila: pop)
oSi X V y su prof(X) LP entonces
Poner X en V (pila: push)
Determinar todos los vrtices adyacentes a X
Si en estos vrtices no se encuentra el vrtice meta
Colocarlos en P (pila: push)
Si se encontr el vrtice meta XITO
De lo contrario FRACASO
Escuela de Posgrado Maestra en Informtica 94
Unidad 6. Grafos
BSQUEDA EN PROFUNDIDAD :
Ejemplo 1:
Escuela de Posgrado Maestra en Informtica 95
V = {}
P = { 1 }
Ruta de 1 a 12
LP = 10
6
5
2
4
3
7
8
9
10
11
12
1
Unidad 6. Grafos
BSQUEDA EN AMPLITUD :
paso 1:
Escuela de Posgrado Maestra en Informtica 96
V = {}
P = { 2, 8 }
Ruta de 1 a 12
1
X = V
V = {1}
X
2 8
8
1
2
P = { 1}
6
5
2
4
3
7
8
9
10
11
12
1
prof(1) = 1
Unidad 6. Grafos
BSQUEDA EN AMPLITUD :
paso 2:
X = V
Escuela de Posgrado Maestra en Informtica 97
V = {1}
P = {1, 3, 4, 8, 8}
Ruta de 1 a 12
2
X
4
P = { 2, 8}
3 8
8
1
2
3 4 8
6
5
2
4
3
7
8
9
10
11
12
1
1
1
Prof(2) = 2
Unidad 6. Grafos
BSQUEDA EN AMPLITUD :
paso 3:
X = V V
Escuela de Posgrado Maestra en Informtica 98
V = {1, 2}
P = {2, 5, 4, 8, 8}
Ruta de 1 a 12
3
X
P = {1, 3, 4, 8, 8}
5
6
5
2
4
3
7
8
9
10
11
12
1
2
1
8
1
2
3 4 8 1
2 5
prof(3) = 3
Unidad 6. Grafos
BSQUEDA EN AMPLITUD :
paso 4:
X = V V
Escuela de Posgrado Maestra en Informtica 99
V = {1, 2, 3}
P = {3, 7, 4, 8, 8}
Ruta de 1 a 12
5
X
P = {2, 5, 4, 8, 8}
7
6
5
2
4
3
7
8
9
10
11
12
1
3
2
8
1
2
3 4 8
2 5
3 7
prof(5) = 4
Unidad 6. Grafos
BSQUEDA EN AMPLITUD :
paso 5:
X = V V
Escuela de Posgrado Maestra en Informtica 100
V = {1, 2, 3, 5}
P = {5, 6, 4, 8, 8}
Ruta de 1 a 12
7
X
P = {3, 7, 4, 8, 8}
6
6
5
2
4
3
7
8
9
10
11
12
1
5
3
8
1
2
3 4 8
5
3 7
5 6
prof(7) = 5
Unidad 6. Grafos
BSQUEDA EN AMPLITUD :
paso 6:
X = V V
Escuela de Posgrado Maestra en Informtica 101
V = {1, 2, 3, 5, 7, 6}
P = {4, 7, 9, 11, 4, 8, 8}
Ruta de 1 a 12
6
X
P = {5, 6, 4, 8, 8}
7
6
5
2
4
3
7
8
9
10
11
12
1
4
5
9 11
8
1
2
3
4 8
5
7
5
6
4 7 9
11
prof(6) = 6
Unidad 6. Grafos
BSQUEDA EN AMPLITUD :
paso 7:
X = V
Escuela de Posgrado Maestra en Informtica 102
V = {1, 2, 3, 5, 7, 6}
P = {2, 5, 6, 9, 7, 9, 11, 4,
8, 8}
Ruta de 1 a 12
4
X
P = {4, 7, 9, 11, 4, 8, 8}
5
6
5
2
4
3
7
8
9
10
11
12
1
2 6 9
prof(4) = 7
8
1
2
3
4 8
5
7
6
4
7 9
11
2
5 6 9
Unidad 6. Grafos
BSQUEDA EN AMPLITUD :
paso 8:
Escuela de Posgrado Maestra en Informtica 103
V = {1, 2, 3, 5, 7, 6, 4}
P = {4, 6, 8, 10, 9, 7, 9,11,
4, 8, 8}
Ruta de 1 a 12
X
P = {2, 5, 6, 9, 7, 9, 11, 4, 8, 8}
6
6
5
2
4
3
7
8
9
10
11
12
1
4 8
prof(9) = 8
X = V V
6 2 5 9
10
8
1
2
3
4 8
5
7
6
4
7 9
11
2
5 6 9
4 6 8
10
Unidad 6. Grafos
BSQUEDA EN AMPLITUD :
paso 9:
Escuela de Posgrado Maestra en Informtica 104
V = {1, 2, 3, 5, 7, 6, 4, 9}
P = {1, 2, 9, 8, 10, 9, 7, 9,
11, 4, 8, 8}
Ruta de 1 a 12
X
P = {4, 6, 8, 10, 9, 7, 9,11, 4, 8, 8}
2
6
5
2
4
3
7
8
9
10
11
12
1
1 9
8
1
2
3
4 8
5
7
6
4
7 9
11
prof(8) = 9
9
X = V V
6 4
4 6 8
8
10
1
2
9
Unidad 6. Grafos
BSQUEDA EN AMPLITUD :
paso 10:
Escuela de Posgrado Maestra en Informtica 105
V = {1, 2, 3, 5, 7, 6, 4, 9, 8}
P = { 9, 11, 9, 7, 9, 11, 4,
8, 8}
Ruta de 1 a 12
X
P = {1, 2, 9, 8, 10, 9, 7, 9, 11, 4, 8, 8}
6
5
2
4
3
7
8
9
10
11
12
1
prof(10) = 9
X = V V
2 1 9 8 10
9 11
8
1
2
3
4 8
5
7
6
4
7 9
11
9
8
10
1
2
9
9
11
Unidad 6. Grafos
BSQUEDA EN AMPLITUD :
paso 11:
Escuela de Posgrado Maestra en Informtica 106
V = {1, 2, 3, 5, 7, 6, 4, 9, 8, 10}
P = { 9, 7, 9, 11, 4,
8, 8}
Ruta de 1 a 12
X EXITO
P = {9, 11, 9, 7, 9, 11, 4, 8, 8}
6
5
2
4
3
7
8
9
10
11
12
1
prof(11) = 10
X = V V
9 11
6 10 12
8
1
2
3
4 8
5
7
6
4
7 9
11
9
10
9
11 12
Unidad 6. Grafos
BSQUEDA EN AMPLITUD :
paso 12:
Escuela de Posgrado Maestra en Informtica 107
Ruta de 1 a 12
6
5
2
4
3
7
8
9
10
11
12
1
8
1
2
3 4 8
5
7
6
4
7 9
11
9
10
11
12
Unidad 6. Grafos
Escuela de Posgrado Maestra en Informtica 108
EJEMPLOS DE BSQUEDA EN
AMPLITUD Y PROFUNDIDAD
Unidad 6. Grafos
Escuela de Posgrado Maestra en Informtica 109
PROBLEMA DEL PUZZLE-8
3 2 1
4 5 6
8 7
1 2 3
8
7
4
6 5
Unidad 6. Grafos
Escuela de Posgrado Maestra en Informtica 110
PROBLEMA DEL PUZZLE-8
3 2
1 4
5 6
8
7
1 2 3
8
7
4
6 5
ESTADO INICIAL ESTADO FINAL
Unidad 6. Grafos
Escuela de Posgrado Maestra en Informtica 111
PROBLEMA DEL PUZZLE-8
2 3
1 8 4
7 6 5
BSQUEDA EN AMPLITUD
2 3
1 8 4
7 6 5
2 3
1 8 4
7 6 5
2 3
1
8
4
7 6 5
2 3 1
8 4
7 6 5
2 3 1
8 4
7 6 5
2 3
1 8
4
7 6 5
2 3
1
8
4
7 6 5
2 3
1
8
4
7 6 5
2 3
1
8
4
7
6
5
Unidad 6. Grafos
Escuela de Posgrado Maestra en Informtica 112
PROBLEMA DEL PUZZLE-8
3 2
1 4
5 6
8
7
1 2 3
8
7
4
6 5
ESTADO INICIAL ESTADO FINAL
Unidad 6. Grafos
Escuela de Posgrado Maestra en Informtica 113
PROBLEMA DEL PUZZLE-8
2 3
1
8
4
7 6 5
BSQUEDA POR PROFUNDIDAD
profundidad = 4
2 3
1
8
4
7
6
5
2 3
1
8
4
7 6 5
2 3
1 8 4
7 6 5
2 3
1
8
4
7 6 5
2
3
1
8
4
7 6 5
2
3
1
8
4
7 6 5
2
3 1 8
4
7 6 5
2
3
1
8
4
7 6 5
2 3
1
8
4 7
6 5
2 3
1
8
4 7
6 5
2 3
1
8
4 7
6 5
2 3
1
8
4 7
6 5 2 3
1 8 4
7 6 5
2 3
1 8 4
7 6 5
2 3 1
8 4
7 6 5
2 3 1
8 4
7 6 5

Vous aimerez peut-être aussi