1. Modelo de Redes y Redes de
Petri
MCC Zuriel Dathan Mora Félix
2. Modelo de Redes
• El siguiente grafo representa una red de tuberías
de petróleo, el petróleo proviene del muelle a, y
se descarga en la refinería z.
• Los vértices b,c,d,e representan estaciones de
bombeo.
• Las aristas dirigidas representan subtuberias del
sistema, muestran la dirección en la que puede
fluir el petróleo.
• Las etiquetas sobre las aristas muestran las
capacidades de las tuberías.
3.
4. • Una red es un grafo, dirigido, simple con pesos
que satisface:
• Un vértice fijo, la fuente no tiene arista de
entrada.
• Un vértice fijo, el sumidero (destino) no tiene
arista de salida.
• El peso C de la arista dirigida ij llamado la
ij
capacidad es un numero no negativo
5. • Un flujo en una red, asigna un flujo en cada
arista dirigida, que no excede la capacidad de
dicha arista.
• El flujo de entrada debe ser igual al flujo de
salida, sin ser la fuente o el sumidero.
6. • En el siguiente grafo, la entrada al la bomba
intermedia b es 2 y su salida tambien es 2.
• Respecto a la salida de la fuente es a,b + a,d =
5 en el sumidero se recibe c,z+ e,z= 5.
7. • El problema de una red de transporte se
puede establecer así, determinar un flujo
máximo en G, es decir entre todos los flujos
posibles en G, determinar un flujo F, tal que el
valor de F sea máximo.
8. Una red de bombeo
• La siguiente figura representa una red de bombeo por medio del cual se
envía agua a 2 ciudades A,B, desde 3 pozos w1,w2 y w3.
• Las capacidades de los sistemas intermedios representan las aristas.
• Los vértices b,c,d representan estaciones de bombeo intermedias.
9. • Para obtener una fuente y un sumidero fijos, podemos
obtener una red de transporte equivalente, uniendo la fuente
en una súper fuente y el sumidero en un súper sumidero.
10. Red de flujo de tráfico
• Es posible ir de la ciudad A a la ciudad C directamente o pasar por la
ciudad B.
• Durante el periodo de 6:00- 7:00 pm, los tiempos promedio de viaje son:
– A-B (15 minutos)
– B-C (30 minutos)
– A-C (30 minutos)
• Las capacidades de las carreteras son:
– A-B (3,000 vehículos)
– B-C(2,000 vehículos)
– A-C(4,000 vehículos)
• Un vértice representa una ciudad en un instante dado, una arista conecta
X,t1 con y, t2, si podemos salir de la ciudad X en el instante t1 pm.
• La capacidad de una arista es la capacidad de la ruta.
• Se introduce una fuente y un super sumidero.
13. • El sig. grafo representa una red de bombeo, en la que el petróleo de 3
pozos w1,w2,w3, se entrega a 3 refinerías A,B y C.
• Las capacidades de los sistemas intermedios están sobre las aristas.
• Las aristas b,c,d,e,f representan estaciones intermedias de bombeo.
• Modela el sistema como una red.
• Modela el sistema como una red, suponiendo que el pozo w1, bombea a
lo mas 2 unidades, el pozo w2 a lo mas 4 unidades y el pozo w3 a lo mas 7
unidades.
14.
15. • Existen 2 rutas de la ciudad A a la ciudad B, una ruta pasa por la ciudad B y
la otra por la ciudad C, durante el periodo de 7 a 8:00 am.
• Los tiempos son los sig.:
– A-B 30 min
– A-C 15 min
– B-D 15 min
– C-D 15 min
• Las capacidades máximas son las rutas:
– A-B (1000 vehículos)
– A-C (3000 vehículos)
– B-D (4000 vehículos)
– C-D (2000 vehículos)
• Represente como una red de flujo de trafico de A a D durante el periodo
de 7 a 8:00 am.
16. Un algoritmo de flujo máximo
• Sea G una red de transporte, un flujo máximo en G es
un flujo con valor máximo.
• Comenzar con cierto flujo inicial e incrementar de
manera iterativa el valor del flujo hasta que no pueda
mejorarse más.
• El flujo resultante será el flujo máximo.
• Podemos considerar como flujo inicial aquel en el que
flujo en cada arista es igual a 0.
• Para incrementar el valor de un flujo dado, debemos
determinar un camino de la fuente al sumidero e
incrementar el flujo a lo largo de ese camino.
17. • Un camino de a a z en este grafo no dirigido.
• Si una arista e en P esta dirigida, decimos que e esta
orientada en forma propia (con respecto de P).
• En caso contrario decimos que e esta orientada en forma
impropia (con respecto de P)
18. • Si podemos determinar un camino P de la fuente al sumidero en donde
cada arista de P esté orientada en forma propia y el flujo en cada arista es
menor que la capacidad de la arista, es posible aumentar el valor de flujo.
• Consideremos el camino de a a z de la sig. figura. Todas las aristas de P
están orientadas en forma propia.
• El valor del flujo en esta red se puede incrementar en 1
19. • También es posible incrementar el flujo en
ciertos caminos de la fuente al sumidero que
tengan aristas orientadas en forma propia e
impropia.
• Sea P un camino de a a z y sea x un vértice en
P, que no sea a ni z.
• Existen 4 posibilidades
20.
21.
22.
23. • Teorema.
• Sea P un camino de a a z en una red G
– Para cada arista (i,j) de P, orientada en forma propia, tal que el flujo de la
arista sea menor que la capacidad.
– Para cada arista orientada en forma impropia el flujo de la arista debe ser
mayor a 0.
• Sea entonces ∆=min X
• Donde X consta de la suma de los flujos orientado en forma propia o impropia. Es
decir C-F, para todas las aristas orientadas en forma propia e impropia.
• Entonces F* es un flujo cuyo valor es ∆ unidades mayor que el valor de F
24. Idea principal del algoritmo de flujo
máximo.
1. Iniciar con un flujo (ejemplo, un flujo tal que
el flujo en cada arista sea 0)
2. Buscar un camino que satisfaga las
condiciones del teorema anterior, si no existe
tal camino se termina y el flujo es máximo.
3. Se incrementa el flujo del camino en ∆,
donde ∆ se define como el teorema y se
regresa al punto 2.
25. Algoritmo para determinar el flujo máximo
en una red. (Algoritmo Ford-Fulkerson)
• En algunas redes circula por los arcos un flujo (envío o
circulación de unidades homogéneas de algún producto:
automóviles en una red de carreteras, litros de petróleo en
un oleoducto, bits por un cable de fibra óptica) desde el
origen o fuente al destino, también denominado sumidero
• Los arcos tienen una capacidad máxima de flujo, y se trata
de enviar desde la fuente al sumidero la mayor cantidad
posible de flujo, de tal manera que:
El flujo es siempre positivo y con unidades enteras.
• El flujo a través de un arco es menor o igual que la
capacidad.
• El flujo que entra en un nodo es igual al que sale de él.
26. • En el caso de que el origen o el destino no existan en el problema, se
añaden ficticiamente utilizando arcos unidireccionales de capacidad
infinita, como en grafo mostrado a continuación:
27. • Corte: Un corte define una serie de arcos cuya
supresión de la red causa una interrupción
completa del flujo entre el origen y el destino.
• La capacidad de corte es igual a la suma de las
capacidades de los arcos asociados.
• Entre todos los cortes posibles en la red , el corte
con la menor capacidad proporciona el flujo
máximo en la red.
• El siguiente grafo ilustra 3 cortes: el Corte 1 con
capacidad 60, el Corte 2 con capacidad 110 y el
Corte 3 con capacidad 70.
28. • Todo lo que podemos obtener de los 3 cortes es que el flujo máximo en la red no
excede de 60 unidades.
• No podemos saber cual es el flujo máximo hasta que se hayan enumerado todos
los cortes en la red:
• Las capacidades se identifican como sigue: por ejemplo, para el arco (3,4), el límite
de flujo es de 10 unidades de 3 a 4 y de 5unidades de 4 a 3.
29. • Algoritmo F-F
• El algoritmo de Ford-Fulkerson propone
buscar caminos en los que se pueda aumentar
el flujo, hasta que se alcance el flujo máximo.
• La idea es encontrar una ruta de penetración
con un flujo positivo neto que una los nodos
origen y destino.
30. • Consideraremos las capacidades iniciales del arco que
une el nodo i y el nodo j como Cij y Cji.
• Estas capacidades iniciales irán variando a medida que
avanza el algoritmo, denominaremos capacidades
residuales a las capacidades restantes del arco una vez
pasa algún flujo por él, las representaremos como cij y
cji.
Para un nodo j que recibe el flujo del nodo i, definimos
una clasificación [aj,i] donde aj es el flujo del nodo i al
nodo j.
Los pasos del algoritmo se definen como sigue:
31. • Paso 1: Inicializamos las capacidades
residuales a las capacidades iniciales, hacemos
(cij,cji)=(Cij,Cji) para todo arco de la red.
Suponiendo el nodo 1 como el nodo origen,
hacemos a1=∞ y clasificamos el nodo origen
con *∞,-]. Tomamos i=1 y vamos al paso 2.
32. • Paso 2: Determinamos Si como un conjunto
que contendrá los nodos a los que podemos
acceder directamente desde i por medio de
un arco con capacidad positiva
• Si Si contiene algún nodo vamos al paso 3, en
el caso de que el conjunto sea vacío saltamos
al paso 4.
33. • Paso 3: Obtenemos kЄSi como el nodo destino
del arco de mayor capacidad que salga de i hacia
un nodo perteneciente a Si.
• Es decir, cik = max{cij} con jЄSi.
• Hacemos ak=cik y clasificamos el nodo k con
[ak,i].
• Si k es igual al nodo destino o sumidero, entonces
hemos encontrado una ruta de penetración,
vamos al paso 5.
• En caso contrario continuamos con el camino,
hacemos i=k y volvemos al paso 2.
34. • Paso 4 (retroceso): Si i=1, estamos en el nodo
origen, y como Si es vacío, entonces no
podemos acceder a ningún nodo, ni encontrar
algún nuevo camino, hemos terminado,
vamos al paso 6.
En caso contrario, i≠1, le damos al valor i el del
nodo que se ha clasificado inmediatamente
antes, eliminamos i del conjunto Si actual y
volvemos al paso 2.
35. • Paso 5: Llegados a este paso tenemos un
nuevo camino: Np={1,k1,k2,...,n}, esta será la
p-ésima ruta de penetración desde el nodo
origen al nodo destino.
• El flujo máximo a lo largo de esta ruta será la
capacidad mínima de las capacidades
residuales de los arcos que forman el camino,
es decir: fp=min{a1,ak1,ak2,...,an}.
36. • La capacidad residual de cada arco a lo largo
de la ruta de penetración se disminuye por fp
en dirección del flujo y se incrementa por fp
en dirección inversa, es decir, para los nodos i
y j en la ruta, el flujo residual se cambia de la
(cij,cji) actual a (cij-fp,cji+fp)si el flujo es de i a
j, o (cij+fp,cji-fp) si el flujo es de j a i
Inicializamos i=1 y volvemos al paso 2 para
intentar una nueva ruta de penetración.
37. • Paso 6 (solución): Una vez aquí, hemos
determinado m rutas de penetración. El flujo
máximo en la red será la suma de los flujos
máximos en cada ruta obtenida, es decir:
F=f1+f2+...+fm.
38. • Teniendo en cuenta que las capacidades
residuales inicial y final del arco (i, j) las dan
(Cij,Cji) y (cij,cji) respectivamente, el flujo
máximo para cada arco se calcula como sigue:
sea (α, β)=(Cij-cij, Cji-cji), si α>0, el flujo
óptimo de i a j es α, de lo contrario, si β>0, el
flujo óptimo de j a i es β.
• Es imposible lograr que tanto αcomo β sean
positivas.
40. • Iteración 1
• Determinamos las residuales iniciales (cij,cji) iguales a
las capacidades iniciales (Cij,Cji).
• Paso 1: Hacemos ai=∞, y clasificamos el nodo 1 con
[a1,-]. Tomamos i=1.
• Paso 2: S1={2,3,4} (no vacío).
• Paso 3: k=3 ya que
c13=max{c12,c13,c14}={20,30,10}=30.
• Hacemos a3=c13=30 y clasificamos el nodo 3 con
[30,1]. Tomamos i=3 y repetimos el paso 2.
• Paso 2: S3={4,5}
41. • Paso 3: k=5 y a5=c35=max{10,20}=20. Clasificamos el
nodo 5 con [20,3]. Logramos la penetración, vamos al
paso 5.
• Paso 5: La ruta de la penetración se determina de las
clasificaciones empezando en el nodo 5 y terminando en
el nodo 1, es decir, 5→[20,3]→3→[30,1]→1.Entonces la
ruta es N1={1,3,5} y f1=min{a1,a3,a5}={∞,30,20}=20.
• Las capacidades residuales a lo largo de esta ruta son:
• (c13,c31)=(30-20, 0+20)=(10,20)
• (c35,c53)=(20-20, 0+20)=(0,20)
42. Iteración 2
• Paso 1: Hacemos ai=∞, y clasificamos el nodo 1 con [a1,-]. Tomamos i=1.
Paso 2: S1={2,3,4}. Paso 3: k=2 y a2=c12=max{20,10,10}=20.
• Clasificamos el nodo 2 con [20,1]. Tomamos i=2 y repetimos el paso 2.
Paso 2: S2={3,5} Paso 3: k=3 y a3=c23=max{30,40}=40. Clasificamos el
nodo 3 con [40,2]. Tomamos i=3 y repetimos el paso 2.
43. • Paso 2: S3={4} (c35=0, el nodo 1 ya ha sido clasificado y el nodo 2 cumple ambas
condiciones, por tanto los nodos 1, 2 y 5 no pueden ser incluidos en S3).
• Paso 3: k=4 y a4=c34=10. Clasificamos el nodo 4 con [10,3]. Tomamos i=4 y
repetimos el paso 2.
• Paso 2: S4={5}
• Paso 3: k=5 y a5=c45=20. Clasificamos el nodo 5 con [20,4].
• Logramos la penetración, vamos al paso 5.
• Paso 5: La ruta de la penetración es:
5→[20,4]→4→[10,3]→3→[40,2]→2→[20,1]→1.
• Entonces la ruta es N2={1,2,3,4,5} y f2=min{∞,20,40,10,20}=10.
• Las capacidades residuales a lo largo de esta ruta son:
• (c12,c21)=(20-10, 0+10)=(10,10)
• (c23,c32)=(40-10, 0+10)=(30,10)
• (c34,c43)=(10-10, 5+10)=(0,15)
• (c45,c54)=(20-10, 0+10)=(10,10)
44. Iteración 3
• Paso 1: Hacemos ai=∞, y clasificamos el nodo 1 con [a1,-]. Tomamos i=1.
• Paso 2: S1={2,3,4}.
• Paso 3: k=2 y a2=c12=max{10,10,10}=10, rompemos el empate arbitrariamente.
Clasificamos el nodo 2 con [10,1]. Tomamos i=2 y repetimos el paso 2.
• Paso 2: S2={3,5}
• Paso 3: k=3 y a3=c23=max{30,30}=30. Clasificamos el nodo 3 con [30,2]. Tomamos
i=3 y repetimos el paso 2.
• Paso 2: S3 vacío ya que c34=c35=0. Vamos al paso 4 para retroceder.
45. • Paso 4: La clasificación [30,2] nos dice que el nodo inmediatamente
precedente es el 2. Eliminamos el nodo 3 de una consideración
posterior en esta iteración.
• Tomamos i=2 y repetimos el paso 2.
• Paso 2: S2={5}
• Paso 3: k=5 y a5=c25=30. Clasificamos el nodo 5 con [30,2].
Logramos la penetración, vamos al paso 5.
• Paso 5: La ruta de la penetración es: 5→[30,2]→2→[10,1]→1.
• Entonces la ruta es N2={1,2,5} y f3=min{∞,10,30}=10.
• Las capacidades residuales a lo largo de esta ruta son:
• (c12,c21)=(10-10, 10+10)=(0,20)
• (c25,c52)=(30-10, 0+10)=(20,10)
46. Iteración 4
• Paso 1: Hacemos ai=∞, y clasificamos el nodo 1 con [a1,-]. Tomamos i=1.
• Paso 2: S1={3,4}.
• Paso 3: k=3 y a3=c13=max{10,10}=10. Clasificamos el nodo 3 con [10,1].
Tomamos i=3 y repetimos el paso 2.
• Paso 2: S3={2}
• Paso 3: k=2 y a2=c32=10. Clasificamos el nodo 2 con [10,3]. Tomamos i=2
y repetimos el paso 2.
47. • Paso 2: S2={5}
• Paso 3: k=5 y a5=c25=20. Clasificamos el nodo 5 con
[20,2]. Logramos la penetración, vamos al paso 5.
• Paso 5: La ruta de la penetración es:
5→[20,2]→2→[10,3]→3→[10,1]→1.Entonces la ruta es
N4={1,3,2,5} y f4=min{∞,10,10,20}=10.
• Las capacidades residuales a lo largo de esta ruta son:
• (c13,c31)=(10-10, 20+10)=(0,30)
• (c32,c23)=(10-10, 30+10)=(0,40)
• (c25,c52)=(20-10, 10+10)=(10,20)
48. Iteración 5
• Paso 1: Hacemos ai=∞, y clasificamos el nodo 1 con [a1,-]. Tomamos i=1.
• Paso 2: S1={4}.
• Paso 3: k=4 y a4=c14=10. Clasificamos el nodo 4 con [10,1]. Tomamos i=4 y
repetimos el paso 2.
• Paso 2: S4={3,5}
• Paso 3: k=3 y a3=c23=max{15,10}=15. Clasificamos el nodo 3 con [15,4]. Tomamos
i=3 y repetimos el paso 2.
• Paso 2: S3 vacío ya que c32=c34=c35=0. Vamos al paso 4 para retroceder.
49. • Paso 4: La clasificación [15,4] nos dice que el nodo inmediatamente
precedente es el 4. Eliminamos el nodo 3 de una consideración
posterior en esta iteración. Tomamos i=4 y repetimos el paso 2.
• Paso 2: S4={5}
• Paso 3: k=5 y a5=c45=10.
• Clasificamos el nodo 5 con [10,4]. Logramos la penetración, vamos
al paso 5.
• Paso 5: La ruta de la penetración es:
5→[10,4]→4→[10,1]→1.Entonces la ruta es N2={1,4,5} y
f3=min{∞,10,10}=10.
• Las capacidades residuales a lo largo de esta ruta son:
• (c14,c41)=(10-10, 0+10)=(0,10)
• (c45,c54)=(10-10, 10+10)=(0,20)
50. Iteración 6
• No son posibles más penetraciones, debido a que todos los arcos
fuera del nodo 1 tienen residuales cero. Vayamos al paso 6 para
determinar la solución.
• Paso 6: El flujo máximo en la red es F=f1+f2+...+f5=60 unidades.
• El flujo en los diferentes arcos se calcula restando las últimas
residuales obtenidas en la última iteración de las capacidades
iniciales:
51. Teorema del corte mínimo y flujo
máximo.
• El teorema del corte mínimo y flujo máximo
se utiliza para encontrar ahorros en las rutas
que se determinan.
• Estudiar el acoplamiento así como algunos
tipos de acoplamientos que pueden existir en
una red, así como también la forma de
expresarlos.
52. Corte mínimo
• En lo que respecta a las redes, un corte es un
conjunto en el cual quedan dos partes disjuntas
del conjunto de vértices, V1 y V2 que, situados en
la red, dejan la fuente en una de ellas y al
sumidero en la otra
• Definición de capacidad de un corte
• Se llama capacidad de un corte a la suma:
• Capacidad (v,w) ; v Є V1 , w ЄV2
• V1 es la parte que contiene a la fuente
• V2 es la parte que contiene al sumidero
53. • Sea F un flujo en G y sea (P, P) un corte en G. Entonces la
capacidad de (p, p) es mayor o igual que el valor de F; es decir:
•
• i ЄP JЄP Cij i F ai
•
• La notación i : Significa la suma sobre todos los vértices i
• Demostración: observe j ЄP iЄP Cji = j ЄP iЄP F ij
•
• Pues cada lado de la ecuación es simplemente la suma de Fij sobre
todas las de i, j Є P
• El corte minimal nos da la mínima capacidad del corte efectuado en
el grafo.
54. FLUJO MÁXIMO Y EL CORTE MÍNIMO
• Sea F un flujo en G y sea (P, P) un corte en G si la
igualdad se cumple entonces el flujo es máximo y el
corte es mínimo si y solo si:
• 1) FI J = CI J para i ЄP, J Є P
• 2) Fij =0 para i Є P, J Є P
• El valor del flujo maximal de una red es igual a la
capacidad del corte minimal que se puede aplicar a la
red.
• Se puede obtener, por tanto el corte minimal de una
red, conociendo el flujo maximal de la red obtenido
mediante la aplicación del algoritmo anteriormente
definido.
55. • Metodología
• En el último grafo del algoritmo de flujo maximal, de todos los cortes
posibles, serán cortes minimales aquellos que estén formados por aristas
en las que el valor de la capacidad coincida con el valor del flujo. Para
mejor comprensión ver ejemplo:
• La sig. figura, si hacemos P={a,b,d} entonces K={c,e,f,z} y (P,K) es un corte
en G.
56. Acoplamientos
• A=J2 Y J5
•
• B=J2 Y J5
•
• C=J1, J3, J4 Y J5
•
• D=J2 Y J5
•
• Supóngase que 4 personas A, B, C, y D llenan solicitudes para cinco trabajos j1,j2, j3, j4 y j5.
• Considérese que el solicitante A está calificado para j2 y j5, el solicitante B esta calificado
para j2 y j5, el solicitante C j1, j3, j4 , j5 y D= j2 y j5
57. • La situación puede ser modelada por el grafo de la
figura anterior donde los vértices representan a los
solicitantes y a los trabajos.
• Un lado une a un solicitante con el trabajo para el cual
esta calificado.
• Es posible demostrar que no se puede acoplar un
trabajo con cada solicitante; basta considerar que A, B
y D están calificados solo para los trabajo J2 y J5.
• Si A y B se les asigna un trabajo, no queda trabajo
alguno para D.
• Por lo tanto no existe asignación de trabajo para A, B, C
y D.
58. • En el ejemplo anterior consiste en hallar
trabajos para las personas calificadas.
• Un acoplamiento maximal determina trabajos
para el máximo numero de personas y se
indican con líneas gruesas.
• Un acoplamiento completo halla trabajo para
todos los solicitantes.
• Se prueba que el grafo anterior no es un pareo
completo.
59. • La definición formal es: sea G un grafo dirigido
bipartito con conjuntos disjuntos de vértices V y W,
en el cual los lados están dirigidos desde los vértices
de V a W (cualquier vértice de G esta en V o en W,
pero no en ambos) un acoplamiento para G es un
conjunto de lados E los cuales no tienen vértices
comunes.
• Un acoplamiento maximal para G es un acoplamiento
E que contiene el máximo numero de lados completos.
Un acoplamiento completo para G es un acoplamiento
E que tiene la siguiente propiedad:
60. • Si v V, entonces (v,w) E, para algún wW.
• Ejemplo:
• En la siguiente figura el acoplamiento con líneas gruesas que aparece en
maximal y completo. Este ejemplo también puede modelarse como un
problema de redes.
61. • Modele el problema de esta figura como un
problema de redes:
62. • En primer lugar se asigna la capacidad 1 a
cada lado del grafo.
• A continuación se agrega una superfuente a y
lados con capacidad 1 que van desde a a cada
lado uno de A,B,C y D.
• finalmente, se introduce un superdeposito z y
lados de capacidad 1 en cada lado que van de
J1,J2, J3, J4 Y J5 a z .
63. • El teorema siguiente relaciona las redes acopladas y los
flujos.
• Sea G un grafo dirigido bipartito con conjuntos disjuntos de
vértices V y W, en el cual los lados están dirigidos de los
vértices de V a los vértices de W (cualquier vértice de G
está en V o en W, pero no en ambos).
• Un flujo en la red de acoplamiento proporciona un pareo
en G.
• El vértice v V es pareado con el vértice w W si y solo si
el flujo en el lado (v, w) es 1.
• Un flujo maximal corresponde a un acoplamiento maximal.
• Un flujo de valor V corresponde a un acoplamiento
completo.