Unidad 6 grafos

76
ALGORITMOS (CIC621) Unidad 6. Grafos J. Miguel Guanira Erazo MSc. Escuela de Posgrado – Maestría en Informática 1

Transcript of Unidad 6 grafos

Page 1: Unidad 6  grafos

ALGORITMOS(CIC621)

Unidad 6. Grafos

J. Miguel Guanira Erazo MSc.

Escuela de Posgrado – Maestría en Informática 1

Page 2: Unidad 6  grafos

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

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

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

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

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

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

• 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

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

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

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

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

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

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

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

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

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

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

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

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

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

Unidad 6. Grafos

Escuela de Posgrado – Maestría en Informática 22

GRAFOS DIRIGIDOS

Page 23: Unidad 6  grafos

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

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

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

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

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

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

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

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

Unidad 6. Grafos

Escuela de Posgrado – Maestría en Informática 31

DETERMINACIÓN DE CAMINOS EN GRAFOS

DIRIGIDOS

Page 32: Unidad 6  grafos

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

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

Unidad 6. Grafos

Escuela de Posgrado – Maestría en Informática 34

ALGORITMO DE DIJKSTRA

Page 35: Unidad 6  grafos

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

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

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

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

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

Unidad 6. Grafos

Escuela de Posgrado – Maestría en Informática 40

ALGORITMO DE FLOYD

Page 41: Unidad 6  grafos

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

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

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

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

Unidad 6. Grafos

Escuela de Posgrado – Maestría en Informática 45

ALGORITMO DE WARSHALL

Page 46: Unidad 6  grafos

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

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

Unidad 6. Grafos

Escuela de Posgrado – Maestría en Informática 48

GRAFOS NO DIRIGIDOS

Page 49: Unidad 6  grafos

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

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

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

Unidad 6. Grafos

Escuela de Posgrado – Maestría en Informática 52

ALGORITMO DE PRIM

Page 53: Unidad 6  grafos

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

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

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

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

Unidad 6. Grafos

Escuela de Posgrado – Maestría en Informática 57

ALGORITMO DE KRUSKAL

Page 58: Unidad 6  grafos

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

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

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

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

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

Unidad 6. Grafos

Escuela de Posgrado – Maestría en Informática 63

BÚSQUEDA EN AMPLITUDBREADTH-FIRST

Page 64: Unidad 6  grafos

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

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

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

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

Unidad 6. Grafos

Escuela de Posgrado – Maestría en Informática 68

BÚSQUEDA EN PROFUNDIDADDEPTH-FIRST

Page 69: Unidad 6  grafos

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

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

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

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

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

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

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

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