Download - Unidad 6 grafos
![Page 1: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/1.jpg)
ALGORITMOS(CIC621)
Unidad 6. Grafos
J. Miguel Guanira Erazo MSc.
Escuela de Posgrado – Maestría en Informática 1
![Page 2: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/2.jpg)
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
![Page 3: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/3.jpg)
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
![Page 4: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/4.jpg)
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
![Page 5: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/5.jpg)
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 5
GRAFO DIRIGIDO
H
Y
P
F
U Q
K
M
A
![Page 6: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/6.jpg)
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
![Page 7: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/7.jpg)
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
![Page 8: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/8.jpg)
• 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
![Page 9: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/9.jpg)
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
![Page 10: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/10.jpg)
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
![Page 11: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/11.jpg)
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
![Page 12: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/12.jpg)
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
![Page 13: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/13.jpg)
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
![Page 14: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/14.jpg)
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
![Page 15: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/15.jpg)
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
![Page 16: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/16.jpg)
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
![Page 17: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/17.jpg)
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
![Page 18: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/18.jpg)
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
![Page 19: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/19.jpg)
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
![Page 20: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/20.jpg)
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 20
H
Y
P
F
Q
A
C
B
SubGrafo
![Page 21: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/21.jpg)
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
![Page 22: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/22.jpg)
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 22
GRAFOS DIRIGIDOS
![Page 23: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/23.jpg)
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
![Page 24: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/24.jpg)
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:
![Page 25: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/25.jpg)
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
![Page 26: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/26.jpg)
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
![Page 27: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/27.jpg)
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
![Page 28: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/28.jpg)
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
![Page 29: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/29.jpg)
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
![Page 30: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/30.jpg)
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
![Page 31: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/31.jpg)
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 31
DETERMINACIÓN DE CAMINOS EN GRAFOS
DIRIGIDOS
![Page 32: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/32.jpg)
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
![Page 33: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/33.jpg)
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
![Page 34: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/34.jpg)
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 34
ALGORITMO DE DIJKSTRA
![Page 35: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/35.jpg)
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
![Page 36: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/36.jpg)
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
![Page 37: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/37.jpg)
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
![Page 38: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/38.jpg)
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
![Page 39: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/39.jpg)
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
![Page 40: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/40.jpg)
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 40
ALGORITMO DE FLOYD
![Page 41: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/41.jpg)
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
![Page 42: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/42.jpg)
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
![Page 43: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/43.jpg)
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
![Page 44: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/44.jpg)
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
![Page 45: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/45.jpg)
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 45
ALGORITMO DE WARSHALL
![Page 46: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/46.jpg)
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
![Page 47: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/47.jpg)
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
![Page 48: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/48.jpg)
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 48
GRAFOS NO DIRIGIDOS
![Page 49: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/49.jpg)
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
![Page 50: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/50.jpg)
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
![Page 51: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/51.jpg)
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
![Page 52: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/52.jpg)
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 52
ALGORITMO DE PRIM
![Page 53: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/53.jpg)
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
![Page 54: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/54.jpg)
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
![Page 55: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/55.jpg)
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 = {∅}
![Page 56: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/56.jpg)
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
![Page 57: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/57.jpg)
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 57
ALGORITMO DE KRUSKAL
![Page 58: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/58.jpg)
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
![Page 59: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/59.jpg)
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
![Page 60: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/60.jpg)
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)}
![Page 61: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/61.jpg)
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)}
![Page 62: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/62.jpg)
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)
![Page 63: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/63.jpg)
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 63
BÚSQUEDA EN AMPLITUDBREADTH-FIRST
![Page 64: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/64.jpg)
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
![Page 65: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/65.jpg)
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
![Page 66: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/66.jpg)
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
![Page 67: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/67.jpg)
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
![Page 68: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/68.jpg)
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 68
BÚSQUEDA EN PROFUNDIDADDEPTH-FIRST
![Page 69: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/69.jpg)
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
![Page 70: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/70.jpg)
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
![Page 71: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/71.jpg)
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
![Page 72: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/72.jpg)
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
![Page 73: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/73.jpg)
Unidad 6. Grafos
Escuela de Posgrado – Maestría en Informática 73
EJEMPLOS DE BÚSQUEDA EN AMPLITUD Y PROFUNDIDAD
![Page 74: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/74.jpg)
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
![Page 75: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/75.jpg)
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
![Page 76: Unidad 6 grafos](https://reader038.vdocuments.pub/reader038/viewer/2022103019/55b5a56dbb61eb6b4f8b4648/html5/thumbnails/76.jpg)
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