Upload
miguel-guanira-erazo
View
34
Download
1
Embed Size (px)
Citation preview
ALGORITMOS(CIC621)
Unidad 6. Grafos
J. Miguel Guanira Erazo MSc.
Escuela de Posgrado – Maestría en Informática 1
Unidad 6. Grafos
• GRAFOS:
Un grafo G = (V, A) es una estructura de datoscompuesta por un conjunto de elementosdenominados Vértices (nodos) y un conjunto deAristas o Arcos que conectan los vértices.
Cada arista es un par (v, w), donde v, w ∈ V. Si elpar (v, w) es un par ordenado, el grafo recibe elnombre de Grafo Dirigido.
Escuela de Posgrado – Maestría en Informática 2
Unidad 6. Grafos
• GRAFOS:Los Grafos permiten abordar todos los problemas de tipo conectividad (el objeto O1 está conectado de una manera u otra al objeto O2) o de optimización (caminos más cortos).Ejemplos:• Modelación de tráfico• Planificación de movimientos: recolección de
basura, reparto de correspondencia• Redes informáticas, Internet.• Etc.
Escuela de Posgrado – Maestría en Informática 3
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 4
Lima
Ancash
Cajamarca
Junín
Ucayali
Cuzco
Ica
Ayacucho Puno
EJEMPLO DE GRAFO
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 5
GRAFO DIRIGIDO
H
Y
P
F
U Q
K
M
A
Unidad 6. Grafos
• GRAFOS:Definiciones:• Grado(v): Denominado grado de un vértice, es elnúmero de aristas que se conectan a un vértice. Sedenota como grado(v). En el ejemplo, P es unvértice de grado 4, grado(K) = 3, y grado(A) = 0.
Escuela de Posgrado – Maestría en Informática 6
H
Y
P
F
U QK
MA
Unidad 6. Grafos
• GRAFOS:Definiciones:• Vértices adyacentes: Dos vértices son adyacentessi está unidos por una arista. En ese caso se dice quela arista es incidente en esos vértices. En elejemplo, P y Q son adyacente, P y K no sonadyacentes.
Escuela de Posgrado – Maestría en Informática 7
H
Y
P
F
U QK
M
• GRAFOS:Definiciones:• a = (u, u): Denominado lazo o bucle, es una aristaque conecta un vértice consigo mismo.En el ejemplo los nodos H y M están conectados
con lazos.
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 8
H
Y
P
F
U QK
M
Unidad 6. Grafos
• GRAFOS:Definiciones :• P = (v1, v2,…, vn): Denominado camino, es lasecuencia de vértices que se debe seguir para llegardel vértice v1 (origen) al vértice vn(destino). En elejemplo el camino P para llegar del nodo H al nodoA es H-Y-F-K-A
Escuela de Posgrado – Maestría en Informática 9
H
Y
P
F
U QK
MA
Unidad 6. Grafos
• GRAFOS:Definiciones :• P = (v1, v2,…, vn): Se denomina camino cerrado, siel origen (v1) coincide con el destino (vn). En elejemplo el camino H-Y-F-Q-P-H, es un caminocerrado.
Escuela de Posgrado – Maestría en Informática 10
H
Y
P
F
U QK
MA
Unidad 6. Grafos
• GRAFOS:Definiciones :• P = (v1, v2,…, vn): Se denomina camino simple, sitodos los vértices 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 – Maestría en Informática 11
H
Y
P
F
QK
MA
Unidad 6. Grafos
• GRAFOS:Definiciones :• Ciclo: Se denominado ciclo, al camino simple ycerrado que incluye 3 o más vértices. En el ejemplolos caminos H-Y-Q-P-H y M-K-A-M son ciclos.
Escuela de Posgrado – Maestría en Informática 12
H
Y
P
F
QK
MA
Unidad 6. Grafos
• GRAFOS:Definiciones :• Tour: Se denominado tour, al camino simple queune todos los vértices. En el ejemplo el caminosdado por H-Y-F-K-A-M-P-Q es un tour.
Escuela de Posgrado – Maestría en Informática 13
H
Y
P
F
QK
MA
Unidad 6. Grafos
• GRAFOS:Definiciones :• Grafo conexo: Un grafo es conexo si para todo parde vértices del grafo existe un camino entre ellos.Si el grafo no es dirigido se dice que es “débilmenteconexo”. En el ejemplo se puede decir que el grafoes débilmente conexo.
Escuela de Posgrado – Maestría en Informática 14
H
Y
P
F
QK
MA
Unidad 6. Grafos
• GRAFOS:Definiciones :• Grafo árbol: Un grafo es de tipo árbol si es un esun grafo conexo y no tiene ciclos.
• En el ejemplo se puede decir que el grafo es de tipoárbol.
Escuela de Posgrado – Maestría en Informática 15
1
5
2
4
3
3
1
4
2
Unidad 6. Grafos
• GRAFOS:Definiciones :• Si el grafo es dirigido se dice que es “fuertementeconexo”. En el ejemplo se puede decir que el grafoes fuertemente conexo.
Escuela de Posgrado – Maestría en Informática 16
H
Y
P
F
Q
Unidad 6. Grafos
• GRAFOS:Definiciones :• Grafo completo: Un grafo es completo si todos susnodos son adyacentes. En el ejemplo se puede decirque el grafo es completo.
Escuela de Posgrado – Maestría en Informática 17
H
Y
P
F
Q
Unidad 6. Grafos
• GRAFOS:Definiciones :• Multigrafo: Se denomina así al grafo que por lomenos dos de sus vértices están conectados por dosaristas. En el ejemplo se puede decir que el grafo esmultigrafo.
Escuela de Posgrado – Maestría en Informática 18
H
Y
P
F
Q
Unidad 6. Grafos
• GRAFOS:Definiciones :• Subgrafo: Dado un grafo G = (V, A), se denominasubgrafo a aquel grafo G1 = (V1, A1) en el que secumple que V1 ⊂ V, V1≠ ∅ y que A1 ⊂ A. Ademáscada arista de A1 es incidente con V1. En elsiguiente ejemplo se puede apreciar este concepto.
Escuela de Posgrado – Maestría en Informática 19
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 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 algún valor (costo,peso, longitud etc.).
Escuela de Posgrado – Maestría en Informática 21
H
Y
P
F
U QK
M1055
9
25
8
20
6018
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 22
GRAFOS DIRIGIDOS
Unidad 6. Grafos
• GRAFOS DIRIGIDOS:
Un grafo dirigido G, denominado también digrafo, esaquel grafo en el que cada una de sus aristas a estáasignada a un par ordenado (u, v) de vértices de G, esdecir tienen una dirección asignada.
Escuela de Posgrado – Maestría en Informática 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 – Maestría en Informática 24
u varco a:
Unidad 6. Grafos
• MATRIS DE AYACENCIA:
Los grafos dirigidos, por lo general se modelan mediantearreglos de dos dimensiones de valores binarios (0/1 ofalse/true). Son matrices cuadradas de orden n x n,donde n es representa el número de vértices del grafo. Aestos arreglos se les denomina matrices de adyacenciaM. Las filas de la matriz se relacionan con los vértices deorigen, mientras que las columnas los vértices de destino,y los valores de sus elementos M[u][v] tienen un valorde 1 (uno) si existe un arco desde u hacia v y 0 (cero) sino.
Escuela de Posgrado – Maestría en Informática 25
Unidad 6. Grafos
• MATRIS DE AYACENCIA:Ejemplo:
Escuela de Posgrado – Maestría en Informática 26
H
Y
P
F
U QK
M
F H K M P Q U YF 0 0 1 0 0 1 0 0H 0 0 0 0 1 0 0 1K 0 0 0 1 0 0 0 0M 0 0 1 0 0 0 0 0P 0 0 0 1 0 1 0 1Q 0 0 1 0 1 0 0 0U 0 0 0 0 0 0 0 0Y 1 1 0 0 0 0 1 0
Unidad 6. Grafos
• MATRIS DE AYACENCIA:Variante (grafos etiquetados):
Escuela de Posgrado – Maestría en Informática 27
F H K M P Q U YF 0 0 12 0 0 9 0 0H 0 0 0 0 6 0 0 0K 0 0 0 10 0 0 0 0M 0 0 0 0 0 0 0 0P 0 0 0 5 0 1 0 8Q 0 0 11 0 14 0 0 0U 0 0 0 0 0 0 0 0Y 7 2 0 0 0 0 2 0
H
Y
P
F
U QK
M
10
56
8
12
2
7
211
14
9
Unidad 6. Grafos
• LISTAS DE AYACENCIA:
Otra manera de modelar los grafos dirigidos, es pormedio de arreglos unidimensionales de n elementos,donde n representa el número de vértices del grafo. Cadaelemento u del arreglo representan los vértices de origeny su valor M[u] es un puntero a una lista ligada en dondecada nodo representa el vértice de destino.
Escuela de Posgrado – Maestría en Informática 28
Unidad 6. Grafos
• LISTA DE AYACENCIA:Ejemplo:
Escuela de Posgrado – Maestría en Informática 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 – Maestría en Informática 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 QK
M
10
56
8
12
2
7
211
14
9
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 31
DETERMINACIÓN DE CAMINOS EN GRAFOS
DIRIGIDOS
Unidad 6. Grafos
• DETERMINACIÓN DE CAMINOS EN GRAFOS DIRIGIDOS:
Existen muchos problemas en los que se requiereconocer la existencia de caminos , de manera directa oindirectamente, entre dos puntos. Por otro lado ladeterminación del menor camino entre dos puntos esigualmente útil.Los grafos dirigidos son ideales para resolver este tipo deproblemas.
Escuela de Posgrado – Maestría en Informática 32
Unidad 6. Grafos
• DETERMINACIÓN DE CAMINOS EN GRAFOS DIRIGIDOS:
Existen muchos algoritmos que permiten encontrarcaminos que partan de un punto de origen y que lleguena un punto destino recorriendo la menor distancia. Losalgoritmos más 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 – Maestría en Informática 33
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 34
ALGORITMO DE DIJKSTRA
Unidad 6. Grafos
• ALGORITMO DE DIJKSTRA:
El algoritmo de Dijkstra determina la ruta más cortaentre un vértice de origen a cualquier otro vértice delgrafo dirigido.
Elementos requeridos:
• Una matriz de adyacencia M de n x n elementos en elque se coloca en cada elemento M[u][v], la distanciaentre los puntos u y v, si no existe el camino se colocaun valor muy grande (∞). No se consideran los bucles(M[u][u] = 0).
Escuela de Posgrado – Maestría en Informática 35
Unidad 6. Grafos
• ALGORITMO DE DIJKSTRA:
• Una arreglo S que guardará los vértices una vez seconozca el camino mínimo entre él y el origen.Inicialmente contendrá el vértice origen. Se manejacomo un conjunto.
• Un arreglo D de n elementos, cada uno representa unvértice del grafo, en el que se guarda la distancia entre elorigen y el vértice. Al terminar el algoritmo, loselementos tendrán las distancias mínimas
Escuela de Posgrado – Maestría en Informática 36
Unidad 6. Grafos
• ALGORITMO DE DIJKSTRA:
Se tienen el conjunto de vértices V: 1(origen), 2,3,4,…, n
• Colocar el vértice origen en el conjunto S.• Repetir desde 2 hasta n
o Elegir un vértice v en V-S tal que D[v] sea el mínimovalor.
o Agregar v a S.o Repetir para cada vértice w en V-S
Hacer D[w] ← mínimo ( D[w], D[v] + M[v][w] )
Escuela de Posgrado – Maestría en Informática 37
Unidad 6. Grafos
• ALGORITMO DE DIJKSTR:Ejemplo 1:
Escuela de Posgrado – Maestría en Informática 38
11
1
3
2
5
464
3
3
5
6
2
1 2 3 4 51 0 4 11 ∞ ∞
2 ∞ 0 ∞ 6 23 ∞ 3 0 6 ∞
4 ∞ ∞ ∞ 0 ∞
5 ∞ ∞ 5 3 0
Unidad 6. Grafos
• ALGORITMO DE DIJKSTR:Ejemplo 2:
Escuela de Posgrado – Maestría en Informática 39
4 1 2 3 4 5 6 7 81 0 2 ∞ 3 ∞ ∞ ∞ ∞
2 4 0 4 ∞ 6 ∞ ∞ ∞
3 ∞ 6 0 ∞ ∞ 7 ∞ ∞
4 ∞ ∞ ∞ 0 5 ∞ 45 ∞ ∞ ∞ 6 0 4 ∞ 36 ∞ ∞ ∞ ∞ ∞ 0 ∞ ∞
7 ∞ ∞ ∞ 2 ∞ ∞ 0 58 ∞ ∞ ∞ ∞ ∞ ∞ 1 8
71
32
54
4
36
5
62
6
78
6
42
5
1
3
4
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 40
ALGORITMO DE FLOYD
Unidad 6. Grafos
• ALGORITMO DE FLOYD:
El algoritmo de Floyd determina la ruta más corta entretodos los vértices de un grafo dirigido. Así como la ruta aseguir.
Elementos requeridos:
• Una matriz de adyacencia M de n x n elementos en elque se coloca en cada elemento M[u][v], la distanciaentre los puntos u y v, si no existe el camino se colocaun valor muy grande (∞). No se consideran los bucles(M[u][u] = 0).
Escuela de Posgrado – Maestría en Informática 41
Unidad 6. Grafos
• ALGORITMO DE FLOYD:
• Una matriz de T de n x n elementos en el que se colocaen cada elemento T[u][v], el vértice intermedio para irdel vértice u al vértice v.
Escuela de Posgrado – Maestría en Informática 42
Unidad 6. Grafos
• ALGORITMO DE FLOYD:
• Repetir para todo w desde 1 hasta noRepetir para todo u desde 1 hasta n
Repetir para todo v desde 1 hasta nSi Muw+Mwv < Muv entonces
Muv ← Muw+MwvTuv ← w
Escuela de Posgrado – Maestría en Informática 43
Unidad 6. Grafos
• ALGORITMO DE FLOYD:Ejemplo:
Escuela de Posgrado – Maestría en Informática 44
1 2 31 0 1 32 2 0 13 4 5 0
3
1
3
21
52
14
w u v
Muv Muw + Mwv
1 1 11 11 1
23
1 111
23
222
1 111
23
333
1 111
23
222
123
222
222
123
333
222
1 111
23
333
123
222
333
123
333
333
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 45
ALGORITMO DE WARSHALL
Unidad 6. Grafos
• ALGORITMO DE WARSHALL:
El algoritmo de Warshall determina si hay una ruta entretodos los vértices de un grafo dirigido (no da distancias).
Elementos requeridos:
• Una matriz de adyacencia M de n x n elementos en elque se coloca en cada elemento M[u][v], el valor 1 sihay un arco que une los vértices u y v, 0 si no.
• Una matriz de C de n x n, inicialmente igual a M dondese guardará 1 si hay un camino entre los vértices u y v, 0si no.
Escuela de Posgrado – Maestría en Informática 46
Unidad 6. Grafos
• ALGORITMO DE WARSHALL:
• Repetir para todo w desde 1 hasta noRepetir para todo u desde 1 hasta n
Repetir para todo v desde 1 hasta nSi Cuv = 0 entonces
Cuv ← Cuw ∧ Cwv
Escuela de Posgrado – Maestría en Informática 47
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 48
GRAFOS NO DIRIGIDOS
Unidad 6. Grafos
• DETERMINACIÓN DE CAMINOS EN GRAFOS NO DIRIGIDOS:
Los grafos dirigidos sirven para solucionar problemas deruteo en los que el costo de ir del vértice u al vértice v eligual al de ir del vértice v al vértice u.
Escuela de Posgrado – Maestría en Informática 49
11
1
3
2
5
4
64
3
35
6
2
Unidad 6. Grafos
• ÁRBOL DE EXTENSIÓN MÍNIMA:
Un árbol de extensión mínima de un grafo no dirigidoG(V,A) se define como un árbol que conecta todos losvértices V y está formado por las aristas de menor costo.
Escuela de Posgrado – Maestría en Informática 50
1
5
2
4
3
3
1
3
45
62
1
5
2
4
3
3
1
4
2
Unidad 6. Grafos
• ÁRBOL DE EXTENSIÓN MÍNIMA:
Si se necesita cablear una casa con un mínimode cable, entonces se necesita resolver unproblema de árbol de extensión mínima.
Escuela de Posgrado – Maestría en Informática 51
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 52
ALGORITMO DE PRIM
Unidad 6. Grafos
• ALGORITMO DE PRIM:
El algoritmo de Prim permite encontrar el árbol deextensión mínima para un grafo.
Elementos requeridos:
• Una conjunto V que contiene los vértices del grafo.V = {1,2,3…n}
• Un conjunto U que contendrá los vértices del grafo.Inicialmente contiene el primer vértice, U = {1}.
• Un conjunto L de aristas que se formará con las aristasde menor costo. Inicialmente la lista estará vacía, L=∅ .
Escuela de Posgrado – Maestría en Informática 53
Unidad 6. Grafos
• ALGORITMO DE PRIM:
• Mientras V ≠ U haceroElegir una arista (u, v) del grafo tal que:
Su costo sea mínimo yu ∈ U y v ∈ V-U
oAgregar la arista (u, v) a LoAgregar el vértice v al conjunto U
Escuela de Posgrado – Maestría en Informática 54
Unidad 6. Grafos
• ALGORITMO DE PRIM:Ejemplo 1:
Escuela de Posgrado – Maestría en Informática 55
5
4
1
3
2
1
4
3
35
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:Ejemplo 2:
Escuela de Posgrado – Maestría en Informática 56
V = {1, 2, 3, 4, 5, 6, 7}
U = {1}
A = { 1-2, 1-3, 1-4, 2-4, 2-5, 3-4,3-6, 4-5, 4-6,4-7, 5-7, 6-7}
L = {∅}3
6
1
5
2
1
4 3 10
5 6
2
4
7
2 7
1
48
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 57
ALGORITMO DE KRUSKAL
Unidad 6. Grafos
• ALGORITMO DE KRUSKAL:
El algoritmo de Kruskal permite encontrar también elárbol de extensión mínima para un grafo.
Elementos requeridos:
• Un conjunto L que contiene las aristas del grafo y suscostos.
• Un conjunto P de particiones. P = {{1}, {2}, {3},…{n}}
Escuela de Posgrado – Maestría en Informática 58
Unidad 6. Grafos
• ALGORITMO DE KRUSKAL:
• Mientras haya vértices en P que pertenezcan aparticiones distintas hacero Elegir de L la arista (u, v) que tenga costo mínimoo Si u y v están en particiones distintas entonces
Unir las particiones a las que pertenezcan u y v
Escuela de Posgrado – Maestría en Informática 59
Unidad 6. Grafos
• ALGORITMO DE KRUSKAL:Ejemplo 1:
Escuela de Posgrado – Maestría en Informática 60
5
4
1
3
2
1
4
3
35
6
2P = {{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:resultado:
Escuela de Posgrado – Maestría en Informática 61
5
4
1
3
2
1
4
3
2P = {{1, 2, 3, 4, 5}}
L = { 2-4(6), 4-5(5)}
Unidad 6. Grafos
• ALGORITMO DE KUSKAL:paso 1:
Escuela de Posgrado – Maestría en Informática 62
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
48
1-4(1) ← (u, v)
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 63
BÚSQUEDA EN AMPLITUDBREADTH-FIRST
Unidad 6. Grafos
• BÚSQUEDA EN AMPLITUD:
La búsqueda en amplitud es un algoritmo quepermite encontrar un camino entre dos vértices de ungrafo.El método consiste en que a partir del vértice inicial,se van analizando los siguientes vértices “porniveles” (los que están conectados al vértice inicial)y así se va avanzando hasta encontrar el vértice meta.
Escuela de Posgrado – Maestría en Informática 64
Unidad 6. Grafos
• BÚSQUEDA EN AMPLITUD :
Elementos requeridos:
• Una lista P (pendientes) que contiene los vértices queaun no se han visitado. Funciona como una cola
• Una lista V (visitados) que contiene los vértices que aunno han sido visitados.
Escuela de Posgrado – Maestría en Informática 65
Unidad 6. Grafos
• BÚSQUEDA EN AMPLITUD :• Insertar el vértice inicial en la lista P• Mientras P ≠ ∅ y no se llegó al vértice meta
oTomar en X un elemento de P (cola: atender)oSi X ∉V entonces
Poner X en V (cola: llegada)Determinar todos los vértices conectados a XSi en estos vértices no se encuentra el vértice meta
• Colocarlos en P (cola: llegada)
• Si se encontró el vértice meta ⇒ ÉXITO• De lo contrario ⇒ FRACASO
Escuela de Posgrado – Maestría en Informática 66
Unidad 6. Grafos
• BÚSQUEDA EN AMPLITUD :Ejemplo 1:
Escuela de Posgrado – Maestría en Informática 67
V = {∅}
P = { 1 }
6
5
2
43
7
89
10
11
12
1
Ruta de 1 a 12
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 68
BÚSQUEDA EN PROFUNDIDADDEPTH-FIRST
Unidad 6. Grafos
• BÚSQUEDA EN PROFUNDIDAD:
La búsqueda en profundidad es un algoritmo quepermite encontrar también un camino entre dosvértices de un grafo.El método consiste en que a partir del vértice inicial,se van analizando los siguientes vértices “poradyacencia”, se toma un vértice adyacente al delinicio y se repite el proceso con el vértice elegidocomo inicial. Si al final no se encuentra la meta sesigue con otro vértice adyacente al inicio.
Escuela de Posgrado – Maestría en Informática 69
Unidad 6. Grafos
• BÚSQUEDA EN PROFUNDIDAD :
Elementos requeridos:
• Una lista P (pendientes) que contiene los vértices queaun no se han visitado. Funciona como una cola
• Una lista V (visitados) que contiene los vértices que aunno han sido visitados.
• Un valor entero LP que indica el límite de profundidadpermitido (el vértice inicial tiene profundidad cero, eladyacente a él uno, etc. Si se llega al límite la ruta notiene éxito.
Escuela de Posgrado – Maestría en Informática 70
Unidad 6. Grafos
• BÚSQUEDA EN AMPLITUD :• Insertar el vértice inicial en la lista P• Mientras P ≠ ∅ y no se llegó al vértice meta
oTomar en X un elemento de P (pila: push)oSi X ∉V y su prof(X) ≤ LP entonces
Poner X en V (pila: push)Determinar todos los vértices adyacentes a XSi en estos vértices no se encuentra el vértice meta
• Colocarlos en P (pila: push)
• Si se encontró el vértice meta ⇒ ÉXITO• De lo contrario ⇒ FRACASO
Escuela de Posgrado – Maestría en Informática 71
Unidad 6. Grafos
• BÚSQUEDA EN PROFUNDIDAD :Ejemplo 1:
Escuela de Posgrado – Maestría en Informática 72
V = {∅}
P = { 1 }
Ruta de 1 a 12
LP = 10
6
5
2
43
7
89
10
11
12
1
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 73
EJEMPLOS DE BÚSQUEDA EN AMPLITUD Y PROFUNDIDAD
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 74
PROBLEMA DEL PUZZLE-8
3 2 14 5 6
8 7
1 2 387
46 5
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 75
PROBLEMA DEL PUZZLE-8
321 4
568
7
1 2 387
46 5
ESTADO INICIAL ESTADO FINAL
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 76
PROBLEMA DEL PUZZLE-8
321 4
56
8
7
1 2 387
46 5
ESTADO INICIAL ESTADO FINAL