Sesion 11 GRAFOS

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 41

GRAFOS

Estructura de datos
Sesin 11

GRAFOS
Los grafos son estructuras de datos no lineales donde cada
componente puede tener mas de uno o mas predecesores y
sucesores.
VERTICES
A

Vrtice
Vrtice
Vrtice
Vrtice

ARISTAS

Grafo con 4 VERTICES y 6 ARISTAS

A
B
C
D

Arista
Arista
Arista
Arista
Arista
Arista

AB
AC
AD
BC
BD
CD

(a,b)
(a,c)
(a,d)
(b,c)
(b,d)
(c,d)

Grafos
Vrtices: Almacenan la Informacion
Aristas: Representan la relacin entre los vertices

Conceptos Bsicos de Grafos


Grado de un vrtice:
El grado de un vrtice v escrito como grado(v), es el numero de
aristas que contienen a v; es decir que contienen a v como extremo
Si el grado(v)=0 se dice que no tiene aristas y se dice que v es un
vrtice aislado
Ejm.
a

Grado(a)=3
Grado(b)=2
Grado(c)=2
Grado(d)=1

Conceptos Bsicos de Grafos


Lazo o Bucle:
El lazo o bucle es una arista que conecta a un vrtice
consigo mismo.
Es decir a=(v,v)
v

Conceptos Bsicos de Grafos

Camino

Un camino P de longitud n se define como la secuencia


de n vrtices que se debe seguir para llegar a llegar del
vrtice v1 origen al vrtice vn destino
P=(v1, v2, vn)

De tal modo que vi es adyacente a vi+1 para i={1,2,3,


.n}
a
Camino P del vrtice b al vrtice c
b

P=(b,a,c)
P=(b,c)

Conceptos Bsicos de Grafos

Camino cerrado

Un camino P es cerrado si el primero y el ultimo vrtice


son iguales.
Es decir v1 = vn
Camino cerrado P del vrtice a al vrtice a
a

P=(a,b,c,a)
c

Conceptos Bsicos de Grafos

Camino simple

Un camino P es simple si todos los vrtices son distintos


con excepcin del primero y del ultimo que pueden ser
iguales.
Es decir P es simple si v1 ,v2 , vn-1 son distintos
a

Conceptos Bsicos de Grafos

Ciclo

Un ciclo es un camino simple y cerrado de longitud 3 o


mayor.
Un ciclo de longitud k se llama k-ciclo
a

d
c

ciclo de longitud 4
4-ciclo

Conceptos Bsicos de Grafos

Grafo conexo

Se dice que un grafo es conexo si existe un camino


simple entre cualesquiera de sus vertices

d
c

Conceptos Bsicos de Grafos

Grafo rbol

Se dice que un grafo G es de tipo rbol o rbol libre si G


es un grafo conexo sin ciclos

d
c
b

Conceptos Bsicos de Grafos


Grafo completo

Se dice que un grafo G es completo si cada vertice v de G es


adyacente a todos los dems vrtices de G.
Un grafo completo de n vrtices tendr
n(n-1)/2 aristas
a

d
b

Un grafo completo de 4 vrtices


tendr
4(4-1)/2 aristas
= 6 aristas

Conceptos Bsicos de Grafos


Multigrafo

Un grafo se denomina multigrafo si al menos dos de sus


vrtices estn conectados entre si por medio de dos aristas.
En este caso las aristas reciben el nombre de aristas
mltiples o paralelas
a
v2

v1

Grafos Dirigidos
Llamados tambin DIGRAFOS, se caracterizan porque
sus aristas tienen asociados una direccin, cada arista
esta asociada a un par ordenado (u,v) de vrtices de G.
Una arista dirigida a=(u,v) se llama arco y
generalmente se expresa como u -> v
Los vrtices se utilizan para representar informacin
Las aristas representan una relacin con direccin o
jararquia entre aquellos
Ejemplo: Duraciones de vuelos entre ciudades

Grafos Dirigidos
Terminologa

Todos los vrtices tienen grado 4


Camino P para llegar del vrtice A al D pueden ser
A-B-C-D, A-E-D, A-D

El camino A-C-D-A es camino cerrado, el A-C-D no lo es


El camino A-C-D-A es un camino simple, el A-C-B-D-C no lo es
El camino A-C-D-A es un ciclo
Es un grafo conexo, pues todos los vrtices tienen al menos un camino a
otro vrtice.
Es un grafo completo, pues todos los vrtices se conectan con los otros
vertices

Grafos Dirigidos
Representacin de una arista dirigida
u

a empieza en u y termina en v
u es el origen o punto inicial de a y v es el destino o punto
terminal de a
u es el predecesor de v y v es sucesor o vecino de u
u es adyacente hacia v y v es adyacente desde u

Representacin de Grafos Dirigidos


No se cuentan con herramientas que permitan su
manejo
Se requiere usar otras estructuras de datos
La eleccin depende del uso que se le de a la
informacin guardada en sus vrtices y aristas
Matrices y Listas de Adyacencias

Matriz de Adyacencia
Matriz de adyacencia es una matriz booleana de orden
n, donde n indica el nmero de vrtices de G. Las lneas
y columnas de la matriz representan los vrtices y el
contenido o no de aristas entre ellos
Cada elemento i,j de la matriz, almacena un 1 un 0,
dependiendo si existe o no una arista entre los vrtices
i,j
Para la generacin de la matriz, se da un orden
arbitrario a los vrtices y se asignan a las filas y
columnas en el mismo orden

Matriz de Adyacencia
Generacin de la matriz

Para la generacin de la matriz, se da un orden arbitrario a los vrtices y se


asignan a las filas y columnas en el mismo orden
Si G=(V,A) y V={1,2,3..n}, la Matriz de adyacencia que
representa a G tiene n x n elementos, donde M[i,j], con
1<= i <= n y 1<= j <= n
Es 1 slo si existe una arista que vaya de i a j, y 0 en
otro caso

Ventajas y Desventajas
La ventaja de las matrices de adyacencia es que el
tiempo de acceso al elemento requerido es
independiente del tamao de V y de A.
El tiempo de bsqueda es del orden 0(n). Sin embargo,
su principal desventaja es que requiere un espacio de
almacenamiento de n2 posiciones, aunque el numero de
arcos de G no sobrepase ese nmero
La matriz de adyacencia es til en los algoritmos
diseados para conocer si existe una arista entre dos
vrtices dados.

Matriz de Adyacencia
Etiquetada
Se denominan tambin matrices de costo o de
distancias, contienen asociadas a sus aristas los valores
de costos o distancias

Lista de Adyacencia

Una lista de adyacencia para el vrtice a es una lista ordenada de todos los vrtices
adyacentes de a
Una lista de Adyacencia para representar un Grafo Dirigido, estar formada por tantas listas
como vrtices tenga G.
Para guardar los vrtices de G se puede usar una lista o un arreglo.
HEAD[ i ] arreglo que es un apuntador a la lista de vrtices adyacentes al vrtice i
La lista de adyacencia requiere un espacio proporcional a la suma de nmeros de vrtices ms
el numero de aristas

Lista de Adyacencia
Ventaja y desventaja

Este tipo de representacin se recomienda cuando el nmero de aristas es menor a n 2.


El uso de la lista de adyacencia permite ahorrar espacio de almacenamiento
Usar la lista en lugar de una matriz tiene la desventaja de que el tiempo de bsqueda en las
aristas puede ser mayor, ya que se pierde el acceso directo que utiliza la matriz

Obtencin de caminos dentro de


un digrafo

Al buscar una estructura de datos que se ajuste a las caractersticas


del problema, se busca tambin que sobre dicha estructura se
puedan realizar operaciones que faciliten el manejo de la
informacin almacenada en ella.
Para el caso de grafos dirigidos, es de inters encontrar los caminos
directos e indirectos entre sus vrtices.
Al trabajar con digrafos etiquetados, se requiere encontrar el camino
mas corto entre dos vrtices dados o entre todos sus vrtices.
Interesan caminos que permitan llegar desde un vrtice origen a un
destino recorriendo la menor distancia o con el menor costo.
Los algoritmos ms utilizados para este fin son:
Algoritmo de Dijkstra
Algoritmo de Floy
Algoritmo de Warshall

Algoritmo de Dijkstra
Encuentra el camino mas corto de un vrtice elegido a cualquier otro
vrtice del dgrafo, donde la longitud del camino es la suma de los pesos
de las aristas que lo forman (las aristas no deben tener un peso negativo)
Principales elementos considerados cuando se aplica el algoritmo.
S es un arreglo formado por los vrtices de los cuales ya se conoce la distancia
minima entre ellos y el origen. Inicialmente se almacena solo el vrtice origen
D es un arreglo formada por la distancia del vrtice origen a cada uno de los otros.
D[i] almacena la menor distancia o costo entre el origen y el vrtice i, este camino
se le conoce como Especial
Este arreglo se forma en cada paso del algoritmo, al termino, D tiene la distancia
mnima entre el origen y cada uno de los vrtices del grafo
M es una matriz de distancias n x n elementos, tal que M[i,j] almacena la distancia
o costo entre los vrtices i, j, si entre ambos existe una arista, de lo contrario M[i,j]
ser un valor muy grande (infinito)

Algoritmo de Dijkstra
Este algoritmo encuentra la distancia mnima entre un vrtice
origen y cada uno de los otros vrtices de una grafica dirigida.
Se considera al vrtice 1 como el origen. N es el numero de
vrtices de la grafica dirigida. S y D son arreglos de N
elementos y M es una matriz de n x n elementos
1. Agregar el vrtice 1 a S
2. Repetir de 2 hasta N
Elegir un vrtice v en (V - S) tal que D[v] sea el mnimo valor
Agregar v a S
2.1 Repetir para cada vrtice w en (V - S)
Hacer D[w] minimo(D[w], D[v]+ M[v,w])

2.2 (fin del ciclo del paso 2.1)

3. (Fin del ciclo del paso 2)

Ejemplo 1
Aplicando el algoritmo de Dijkstra, obtener el camino mas corto desde
uno de los vrtices a cualquiera de los otros vrtices de un grafo dirigido,
formado por 5 valores

Ejemplo 2

Algoritmo de Floyd
Encuentra el camino mas corto entre todos los
vrtices del dgrafo.
Sea el grafo dirigido G=(V,A), donde cada arista u -->
v tiene asociado un peso. El algoritmo de Floyd
permite encontrar el camino mas corto entre cada par
ordenado u y v
La matriz de distancia sirve como punto de partida de
este algoritmo
Se realizan k iteraciones sobre la matriz buscando el
camino mas corto, por tanto en la k-esima iteracin

Algoritmo de Floyd
M[i , j] tendr el camino del menor costo para llegar de
i a j, pasando por un numero de vrtices menor a k, el
cual se calcula:
Mk[i,j] min= { Mk-1[i,j] Mk-1[i,k]+ Mk-1[k,j]}
Se obtendr el camino mas corto entre el valor obtenido
en la iteracin (k-1) y el que resulta de pasar por el
vrtice k. En el algoritmo se usa la matriz de costos M
donde M[i,j] ser igual al costo de ir de i a j, Si no existe
camino de i a j, asume un valor muy grande o 0 si i=j

Algoritmo de Floyd
Este algoritmo encuentra la distancia mnima entre todos los
vrtices del grafo dirigido. M es una matriz de N x N y se
inicia con los costos del dgrafo. k, i, j son variables enteras

Ejemplo de Aplicacin
Encontrar la minima distancia entre todos los vrtices de un
grafo dirigido

Matriz de distancias del


dgrafo
(estado inicial)

o del vrtice c como vrtice intermedio


3, caminos: e c b = 8

Uso del vrtice b como vrtice intermedio


K=2, caminos: a b d = 10, a b e = 6, c b e = 5

Uso del vrtice e como vrtice intermedio


K=5, caminos: a e d= 9, b e c=7, b e d =5

Algoritmo de Warshall
Encuentra, si es posible, un camino entre cada uno de
los vrtices del grafo dirigido.
La solucin mostrada por el algoritmo, no presenta la
distancia entre los vrtices, slo muestra si hay o no
camino entre ellos.
El algoritmo de Warshall se basa en un concepto
llamado cerradura transitiva de la matriz de
adyacencia

Algoritmo de Warshall
Sea el grafo dirigido G(V,A) y su matriz de adyacencia M, donde M[i,j]=1
si hay una arista de i a j y 0 si no lo hay.
La cerradura transitiva de M es la matriz es C, tal que C[i,j]=1 si hay un
camino de longitud mayor o igual a 1 de i a j, o 0 en otro caso.
Para generar la matriz C se establece que existe un camino de vrtice i
al j que no pasa por un numero de vrtices mayor que k, si:
a. Si ya existe un camino de i a j que no pasa por un numero de vrtices mayor que
-1
b. Hay un camino de i a k que no pasa por un numero de vrtices mayor que k-1,

Hay un camino de k a j que no pasa por un numero de vrtices mayor que k-1

Algoritmo de Warshall
Este algoritmo encuentra, si es posible, un camino de longitud mayor o igual a 1 entre cada
uno de los vrtices del grafo dirigido. N es el numero de vrtices del dgrafo. C es una matriz
de N X N elementos. Inicialmente es igual a M. Al terminar el algoritmo contendr la
cerradura transitiva de M. K, I, J son variables enteras

Ejemplo

Se presenta un ejemplo de aplicacin para el algoritmo de


Warshall para determinar si existe o no un camino entre
todos los vrtices de un grafo dirigido

Ejemplo

Estado inicial de la matriz

Resultado de usar el vrtice c como intermedio,


caminos encontrados: e,c,b y e,c,e

Resultado de usar el vrtice b como intermedio,


caminos encontrados: a,b,d, a,b,e, y c,b,e

Resultado de usar el vrtice e como intermedio,


caminos encontrados: a,e,a,b,e,b,b,e,c y c,e,c

EJERCICIO:

Obtener el camino mnimo entre Comas y La UNMSM en base al


grafo dirigido
25

Comas

20
Los
Olivos

13

Brea

16
10

12
5

4
6

Lima

UNMS
M

15

70

Jmaria

SMP

D
Plibre

45

40

13

12

SJL

56
Callao

También podría gustarte