Informe de Grafos
-
Upload
oscar-pereda-sagastegui -
Category
Documents
-
view
235 -
download
4
description
Transcript of Informe de Grafos
-
Tpicos I
Unidad I
Grafos II
Semana 5
Arboles, Montculos y Grafos
-
Objetivos Generales
Entender el manejo, uso de algoritmos y
estructuras de datos avanzados, haciendo
nfasis en los algoritmos de internet,
seguridad y redes.
-
Objetivo Especfico
Implementar algoritmos utilizando
estructura de datos avanzadas.
-
Objetivo Instruccional
Implementar algoritmos sobre estructuras
de datos complejas: grafos
-
Co
nte
nid
os
Grafos dirigidos
Clausura transitiva
Todos los caminos mas cortos
Flujo de red
-
Definicin Son aquellos en los que las aristas que conectan
los nodos son de sentido nico. Tambin se les
denomina como DIGRAFOS.
A menudo, la direccin de las aristas reflejan
algn tipo de relacin de precedencia en la
aplicacin que se esta modelando.
Por ejemplo, un grafo dirigido puede utilizarse
como modelo para una cadena de fabricacin,
los nodos corresponden a las tareas a realizar. Gra
fos
dirig
ido
s
El orden en el que aparecen los vrtices al especificar
las aristas tiene mucha importancia: la notacin V1V2
describe una arista que apunta de V1 hacia V2, pero
no de V2 hacia V1.
-
Bsqueda en profundidad
Los algoritmos de bsqueda en profundidad estudiados anteriormente pueden ser utilizados exactamente de igual forma con los grafos dirigidos.
De hecho, opera de una manera un poco mas directa que con los grafos no dirigidos dado que no se necesita tener en cuenta las
dobles aristas entre nodos, a menos que estn incluidas explcitamente en el grafo.
Gra
fos
dirig
ido
s
-
Bsqueda en profundidad G
rafo
s d
irig
ido
s
1 2 3 4 5 6 7 8 9 10 11 12
1
2
3
5
4
6
7
8
10
9
12
11
1 7 8 9 5 2 12 4 6 3 10 11
-
Bsqueda en profundidad
Como en el caso de los grafos no dirigidos,
existe gran inters en conocer las propiedades de conectividad de los grafos dirigidos. Debera ser posible responder a
preguntas tales como:
Existe un camino dirigido desde el vrtice x al vrtice y?,
Qu vrtices son accesibles desde el vrtice x por medio de un camino dirigido? y
Existe un camino dirigido desde el vrtice x al vrtice y y un camino dirigido desde y a x?
Gra
fos
dirig
ido
s
-
Bsqueda en Amplitud G
rafo
s d
irig
ido
s
1
2
3
5
4
6
7
8
10
9
12
11
1 2 3 4 5 6 7 8 9 10 11 12
1 7 10 8 5 11 9 4 6 3 12 2
-
Definicin
El concepto de transitividad es el mismo que se utiliza en la teora matemtica , el cual postula que si:
a < b < c a < c
En el caso de la clausura transitiva, el
concepto se refiere a que existe un camino que une el vrtice x con el vrtice y, no importando que para llegar desde x a y tengamos que visitar otros vrtices del grafo (camino mas corto).
Cla
usu
ra t
ran
sitiv
a
-
Consiste en completar el grafo con todas las aristas
que "acortan" el camino entre dos nodos x y y, si es
que se puede llegar de x a y.
En dgrafos muy grandes, el problema de encontrar caminos entre pares
de vrtices es demasiado complicado, slo siguiendo el trazado del
dibujo del mismo, de ah la importancia de este algoritmo y el inters
que gener su estudio.
Cla
usu
ra t
ran
sitiv
a
En que consiste?
-
Mtodo de Warshall
Ejemplo
1 Cla
usu
ra t
ran
sitiv
a
-
1 1
Cla
usu
ra t
ran
sitiv
a
Mtodo de Warshall
-
Cla
usu
ra t
ran
sitiv
a
Mtodo de Warshall
-
Se continua analizando hasta el vrtice 9, obteniendo las siguientes etapas finales
Cla
usu
ra t
ran
sitiv
a
Mtodo de Warshall
-
La clausura transitiva de un grafo no ponderado
(dirigido o no) responde a la pregunta Existe un camino desde x a y? para todos los pares de vrtices x, y.
Para los grafos ponderados (dirigidos o no) se puede
desear construir una tabla que permita encontrar el
camino mas corto desde x a y para todos los pares
de vrtices.
Este es el problema de todos los pares de caminos cortos.
Tod
os
los
ca
min
os
ma
s c
ort
os
-
El algoritmo del camino mas corto
(warshall) encuentra el camino mas
corto desde el vrtice de partida a
cada uno de los otros vrtices, por lo
que para hallar todos los caminos mas
cortos, se necesita solamente ejecutar
este procedimiento V veces,
comenzando una vez en cada
vrtice.
Tod
os
los
ca
min
os
ma
s c
ort
os En que consiste?
-
El algoritmo representa una red de n nodos como una matriz cuadrada de orden n, la llamaremos matriz C. De esta forma, el valor Cij representa el coste de ir desde el nodo i al nodo j, inicialmente en caso de no
existir un arco entre ambos, el valor Cij ser infinito.
Definiremos otra matriz D, tambin cuadrada de orden n, cuyos elementos van a ser los nodos predecesores en el camino hacia el nodo origen, es decir, el valor Dij representar el nodo predecesor a j
en el camino mnimo desde i hasta j. Inicialmente se comienza con caminos de longitud 1, por lo que Dij = i.
Las diagonales de ambas matrices representan el coste y el nodo predecesor para ir de un nodo a si mismo, por lo que no sirven para nada, estarn bloqueadas.
Los pasos a dar en la aplicacin del algoritmo de Floyd son los siguientes:
Formar las matrices iniciales C y D.
Se toma k=1.
Se selecciona la fila y la columna k de la matriz C y entonces, para i y j, con ik, jk e ij, hacemos:
Si (Cik + Ckj) < Cij Dij = Dkj y Cij = Cik + Ckj
En caso contrario, dejamos las matrices como estn.
Si k
-
Mtodo de Floyd
Aplicar el algoritmo de
Floyd sobre el siguiente
grafo para obtener las
rutas ms cortas entre
cada dos nodos.
Tod
os
los
ca
min
os
ma
s c
ort
os
-
C 1 2 3 4 5
1 - 3 10
2 3 - 5
3 10 - 6 15
4 5 6 - 4
5 4 -
D 1 2 3 4 5
1 1 1 1 1 1
2 2 2 2 2 2
3 3 3 3 3 3
4 4 4 4 4 4
5 5 5 5 5 5
Se inicializan las matrices C y D
Mtodo de Floyd To
do
s lo
s c
am
ino
s m
as
co
rto
s
-
C 1 2 3 4 5
1 - 3 10
2 3 - 5
3 10 - 6 15
4 5 6 - 4
5 4 -
D 1 2 3 4 5
1 1 1 1 1 1
2 2 2 2 2 2
3 3 3 3 3 3
4 4 4 4 4 4
5 5 5 5 5 5
Iteracin: k = 1 2 3 4 5
Si (Cik + Ckj) < Cij Cij = Cik + Ckj y Dij = Dkj = k Para i=2, j=3 se tiene calcular C[2,3]: C[2,1]+C[1,3] = 3 + 10 = 13
(Cik + Ckj) < Cij 13 < Cij = 13 y Dij = 1
Mtodo de Floyd To
do
s lo
s c
am
ino
s m
as
co
rto
s
-
C 1 2 3 4 5
1 - 3 10
2 3 - 13 5
3 10 - 6 15
4 5 6 - 4
5 4 -
D 1 2 3 4 5
1 1 1 1 1 1
2 2 2 1 2 2
3 3 3 3 3 3
4 4 4 4 4 4
5 5 5 5 5 5
Iteracin: k = 1 2 3 4 5
De forma anloga se
analiza los dems
elementos de la matriz,
obtenindose al final
de la iteracin 1 los
siguientes resultados:
C 1 2 3 4 5
1 - 3 10
2 3 - 13 5
3 10 13 - 6 15
4 5 6 - 4
5 4 -
D 1 2 3 4 5
1 1 1 1 1 1
2 2 2 1 2 2
3 3 1 3 3 3
4 4 4 4 4 4
5 5 5 5 5 5
Mtodo de Floyd To
do
s lo
s c
am
ino
s m
as
co
rto
s
-
Iteracin: k = 1 2 3 4 5
C 1 2 3 4 5
1 - 3 10
2 3 - 13 5
3 10 13 - 6 15
4 5 6 - 4
5 4 -
D 1 2 3 4 5
1 1 1 1 1 1
2 2 2 1 2 2
3 3 1 3 3 3
4 4 4 4 4 4
5 5 5 5 5 5
De forma anloga se
analiza los dems
elementos de la matriz,
obtenindose al final
de la iteracin 2 los
siguientes resultados:
C 1 2 3 4 5
1 - 3 10 8
2 3 - 13 5
3 10 13 - 6 15
4 8 5 6 - 4
5 4 -
D 1 2 3 4 5
1 1 1 1 2 1
2 2 2 1 2 2
3 3 1 3 3 3
4 2 4 4 4 4
5 5 5 5 5 5
Mtodo de Floyd To
do
s lo
s c
am
ino
s m
as
co
rto
s
-
Iteracin: k = 1 2 3 4 5
De forma anloga se
analiza los dems
elementos de la matriz,
obtenindose al final
de la iteracin 3 los
siguientes resultados:
C 1 2 3 4 5
1 - 3 10 8 25
2 3 - 13 5 28
3 10 13 - 6 15
4 8 5 6 - 4
5 4 -
D 1 2 3 4 5
1 1 1 1 2 3
2 2 2 1 2 3
3 3 1 3 3 3
4 2 4 4 4 4
5 5 5 5 5 5
C 1 2 3 4 5
1 - 3 10 8
2 3 - 13 5
3 10 13 - 6 15
4 8 5 6 - 4
5 4 -
D 1 2 3 4 5
1 1 1 1 2 1
2 2 2 1 2 2
3 3 1 3 3 3
4 2 4 4 4 4
5 5 5 5 5 5
Mtodo de Floyd To
do
s lo
s c
am
ino
s m
as
co
rto
s
-
Iteracin: k = 1 2 3 4 5
De forma anloga se
analiza los dems
elementos de la matriz,
obtenindose al final
de la iteracin 4 los
siguientes resultados:
C 1 2 3 4 5
1 - 3 10 8 12
2 3 - 11 5 9
3 10 11 - 6 10
4 8 5 6 - 4
5 12 9 10 4 -
D 1 2 3 4 5
1 1 1 1 2 4
2 2 2 4 2 4
3 3 4 3 3 4
4 2 4 4 4 4
5 4 4 4 5 5
C 1 2 3 4 5
1 - 3 10 8 25
2 3 - 13 5 28
3 10 13 - 6 15
4 8 5 6 - 4
5 4 -
D 1 2 3 4 5
1 1 1 1 2 3
2 2 2 1 2 3
3 3 1 3 3 3
4 2 4 4 4 4
5 5 5 5 5 5
Mtodo de Floyd To
do
s lo
s c
am
ino
s m
as
co
rto
s
-
Iteracin: k = 1 2 3 4 5
De forma anloga se
analiza los dems
elementos de la matriz,
obtenindose al final
de la iteracin 5 los
siguientes resultados:
C 1 2 3 4 5
1 - 3 10 8 12
2 3 - 11 5 9
3 10 11 - 6 10
4 8 5 6 - 4
5 12 9 10 4 -
D 1 2 3 4 5
1 1 1 1 2 4
2 2 2 4 2 4
3 3 4 3 3 4
4 2 4 4 4 4
5 4 4 4 5 5
C 1 2 3 4 5
1 - 3 10 8 12
2 3 - 11 5 9
3 10 11 - 6 10
4 8 5 6 - 4
5 12 9 10 4 -
D 1 2 3 4 5
1 1 1 1 2 4
2 2 2 4 2 4
3 3 4 3 3 4
4 2 4 4 4 4
5 4 4 4 5 5
Mtodo de Floyd To
do
s lo
s c
am
ino
s m
as
co
rto
s
-
C 1 2 3 4 5
1 - 3 10 8 12
2 3 - 11 5 9
3 10 11 - 6 10
4 8 5 6 - 4
5 12 9 10 4 -
D 1 2 3 4 5
1 1 1 1 2 4
2 2 2 4 2 4
3 3 4 3 3 4
4 2 4 4 4 4
5 4 4 4 5 5
Las matrices finales C y D contienen toda la informacin necesaria para determinar la ruta ms corta entre dos nodos cualquiera de la red. Por ejemplo, la distancia ms corta del nodo 1 al nodo 5 es C[1,5] = 12. Para determinar la ruta asociada del camino mnimo entre el nodo 1 y el nodo 5 haremos lo siguiente: Consultamos D[1,5]=4, el nodo predecesor al 5 es el 4, es decir, 4 5. Consultamos D[1,4]=2, el nodo predecesor al 4 es el 2, es decir, 2 4 5. Consultamos D[1,2]=1, el nodo predecesor al 2 es el 1, es decir, 1 2 4 5. Entonces as ya tenemos la ruta completa.
Matrices
finales
Mtodo de Floyd To
do
s lo
s c
am
ino
s m
as
co
rto
s
-
Problemtica Flu
jo d
e r
ed
Los grafos dirigidos ponderados son modelos muy
tiles en ciertos tipos de aplicaciones que implican
flujo de productos a travs de una red de
interconexin. Considrese, por ejemplo, una red de
oleoductos de distintos tamaos, interconectados
de forma compleja, con vlvulas que controlen la
direccin del flujo en las derivaciones. Supngase
adems que la red tiene una fuente nica (como un
campo de petrleo) y un nico destino (como una gran
refinera) al que convergen finalmente todos los
conductos. Qu ajuste de vlvula har mxima la
cantidad de petrleo que fluye de la fuente hacia el
destino?
-
El problema del flujo de red
B
F
A
D E
C B
F
A
D E
C B
F
A
D E
C
Flujo mximo en una red simple
Flu
jo d
e r
ed
-
El problema del flujo de red En la grafica idealizada anterior de la pequea red
de oleoducto, las canalizaciones tienen una
capacidad fija proporcional a su tamao y el
petrleo solamente puede fluir en forma
descendente. Adems las vlvulas de cada
derivacin controlan la capacidad de petrleo que
va en cada direccin.
Sin importar la forma en la que estn puestas las
vlvulas, el sistema alcanza un estado de equilibrio
cuando la capacidad de petrleo que fluye al
sistema por arriba es igual a la cantidad que fluye
hacia afuera por la parte inferior y cuando la
cantidad de petrleo que fluye hacia cada
derivacin es igual a la que sale de ella.
Flu
jo d
e r
ed
-
El problema del flujo de red
El objetivo es desarrollar un algoritmo que pueda
encontrar el reglaje de las vlvulas adecuado para cualquier red y de esta manera evitar
embotellamientos. Adems, se desea estar seguros de que ningn otro reglaje dar un flujo mayor.
B
F
A
D E
C B
F
A
D E
C B
F
A
D E
C
Flu
jo d
e r
ed
-
El problema del flujo de red Red: Se define como un grafo dirigido ponderado con dos
vrtices principales: uno, que no tiene aristas que apunte a el (la
fuente), y otro que no tiene aristas que apunten afuera de el (el
pozo). Los pesos de las aristas, que se supone que no son
negativos, se denominan capacidades de las aristas.
Flujo: Se define como un conjunto de pesos en las aristas tal que
el flujo en cada una de ellas es igual o menor que la
capacidad, y el flujo que entra en cada vrtice es igual al que
sale de el. El valor del flujo es el que entra en la fuente (o sale del pozo).
El problema del flujo de red consiste en encontrar un FLUJO DE VALOR MXIMO para una red dada .
Flu
jo d
e r
ed
-
Mtodo de Ford-Fulkerson
El algoritmo de Ford-Fulkerson propone buscar
caminos en los que se pueda aumentar el flujo, hasta
que se alcance el flujo mximo. La idea es encontrar
una ruta de penetracin con un flujo positivo neto
que una los nodos origen y destino.
Consideraremos las capacidades iniciales del arco que une el
nodo i y el nodo j como Cij y Cji. Estas capacidades iniciales irn
variando a medida que avanza el algoritmo, denominaremos
capacidades residuales a las capacidades restantes del arco
una vez pasa algn flujo por l, las representaremos como cij y
cji.
Para un nodo j que recibe el flujo del nodo i, definimos una
clasificacin [aj,i] donde aj es el flujo del nodo i al nodo j.
Flu
jo d
e r
ed
-
Mtodo de Ford-Fulkerson PASOS:
1. Identificar los nodos origen y destino
2. Identificar la capacidad mas alta que sale del nodo origen
3. Identificar el nodo intermediario con [af,i] (af es el flujo mximo de ingreso y i el nodo de donde proviene dicho flujo mximo)
4. Repetir paso 3, como si el nodo intermediario fuera el nodo
origen
5. Actualizar los flujos: (Cij , Cji) = (Ci k, Cj + k) donde:
C = Capacidad
i , j = ndices de los nodos
K = flujo mnimo del camino seleccionado
6. Retornar al paso 2 si al menos hay una salida de flujo del
nodo fuente
7. La suma de los K corresponde al Flujo Mximo.
Flu
jo d
e r
ed
-
Mtodo de Ford-Fulkerson
1
2 3
4
5 10 30
20
0
0
40
20
0
10
0
0
0
30
0
0
20
Fuente
Sumidero
Capacidad de flujo mximo del
nodo 1 al nodo 4
Del nodo 4 al nodo 1 no hay
flujo
[ ,-]
Por ser la fuente se considera la
cantidad de flujo mximo de
ingreso ()
Por no tener nodo conocido
como inicio se considera (-)
[ ,-]
PASO 1
Flu
jo d
e r
ed
-
Mtodo de Ford-Fulkerson
1
2 3
4
5 10 30
20
0
0
40
20
0
10
0
0
0
30
0
0
20
[ ,-]
Iteracin 1
[ 30,1]
Paso 2
Paso 3
[ 20,3]
Actualizando las capacidades
K = min (,30,20) = 20
i = 1 , j = 3 (Cij , Cji) = (30 20, 0 + 20) = (10,20) i = 3 , j = 5 (Cij , Cji) = (20 20, 0 + 20) = (0,20)
30 0
0
20
1
2 3
4
5 10
20
0
0
40
20
0
10
0
0
30
0
[ ,-]
[ 30,1]
[ 20,3]
10
20
20
0
Flu
jo d
e r
ed
-
Mtodo de Ford-Fulkerson
1
2 3
4
5 10 10
20
0
0
40
20
0
10
0
20
0
30
0
20
0
[ ,-]
Iteracin 2
K = min (,20,40,10,20) = 10
1
2 3
4
5 10 10
10
0
10
30
10
10
0
0
20
10
30
10
20
0
[ ,-]
[ 10,3]
[ 40,2]
(C12 , C21) = (20 10, 0 + 10) = (10,10) (C23 , C32) = (40 10, 0 + 10) = (30,10) (C34 , C43) = (10 10, 0 + 10) = ( 0,10) (C45 , C54) = (20 10, 0 + 10) = (10,10)
[ 20,4]
[ 20,1]
Flu
jo d
e r
ed
-
Mtodo de Ford-Fulkerson
1
2 3
4
5 10 10
10
0
10
30
10
1 0
0
0
20
10
30
10
20
0
[ ,-]
Iteracin 3
K = min (,10,30) = 10
1
2 3
4
5 10 10
0
0
10
30
10
10
0
10
20
20
20
10
20
0
[ ,-]
(C12 , C21) = (10 10, 10 + 10) = (0,20) (C25 , C52) = (30 10, 0 + 10) = (20,10)
[ 10,1]
[ 30,2]
Flu
jo d
e r
ed
-
Mtodo de Ford-Fulkerson
1
2 3
4
5 10 10
0
0
10
30
10
1 0
0
10
20
20
20
10
20
0
[ ,-]
Iteracin 4
K = min (,10,10,20) = 10
1
2 3
4
5 10 0
0
0
10
40
10
10
0
20
20
20
10
0
30
0
[ ,-]
(C13 , C31) = (10 10, 20 + 10) = (0,30) (C32 , C23) = (10 10, 30 + 10) = (0,40) (C25 , C52) = (20 10, 10 + 10) = (10,20)
[ 10,3]
[ 20,2]
[ 10,1]
Flu
jo d
e r
ed
-
Mtodo de Ford-Fulkerson
1
2 3
4
5 10 0
0
0
10
40
10
1 0
0
20
20
20
10
0
30
0
[ ,-]
Iteracin 5
K = min (,10,10) = 10
1
2 3
4
5 0 0
0
10
10
40
0
20
0
20
20
20
10
0
30
0
[ ,-]
(C14 , C41) = (10 10, 0 + 10) = (0,10) (C45 , C54) = (10 10, 10 + 10) = (0,20)
[ 10,4]
[ 10,1]
Flu
jo d
e r
ed
-
Mtodo de Ford-Fulkerson
1
2 3
4
5 0 0
0
10
10
40
0
2 0
0
20
20
20
10
0
30
0
[ ,-]
Flujo Mximo = k = 20+10+10+10+10
= 60
Flu
jo d
e r
ed
-
Mtodo de Ford-Fulkerson
1
2 3
4
5
10
10 2 0
20
20
20 0
30
Flu
jo d
e r
ed
Flujo Mximo = 60
1
2 3
4
5 10 30
20
0
0
40
20
0
10
0
0
0
30
0
0
20
Propuesta
-
Tpicos I
Unidad I
Grafos II
Semana 5
Arboles, Montculos y Grafos