Unidad 6 grafos

Post on 27-Jul-2015

57 views 0 download

Transcript of Unidad 6 grafos

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