EL PROBLEMA DEL ARBOL DE EXPANSIÓN MÍNIMA
EL PROBLEMA DE LA RUTA MÁS CORTA
EL PROBLEMA DE FLUJO MÁXIMO
EL PROBLEMA DE FLUJO A COSTO MÍNIMO
Investigación de Operaciones II
Ing. César Canelo Sotelo
EL PROBLEMA DEL ÁRBOL DE EXPANSIÓN MÍNIMA
• Este problema trata de encontrar un árbol que
conecte o comunique a todos los nodos de una
red, con una longitud total mínima de conexión.
• El problema de Árbol de Expansión Mínima
consiste en determinar el conjunto de aristas de
una red que conecta todos los nodos, tal que se
minimiza la suma de la longitud de las aristas. Es
evidente que este conjunto de aristas no debe
contener ciclos.
• Este problema también se conoce como el
“Problema de Árbol Mínimo de Máximo
Alcance”.
EL PROBLEMA DEL ÁRBOL DE EXPANSIÓN MÍNIMA
DEFINICIÓN
Para una red con n nodos, un árbol de
expansión es un conjunto de n-1 aristas que
conectan los nodos de la red y no contiene
ciclos.
Un árbol de expansión de longitud mínima en
una red es un Árbol de Expansión Mínima.
EL PROBLEMA DEL ÁRBOL DE EXPANSIÓN MÍNIMA
12
4 7
(1,2)-(2,3)-(3,1) es un ciclo.
(1,3)-(1,2) es un árbol de expansión.
(1,2)-(2,3) es un árbol de expansión.
(1,3)-(3,2) es el árbol de expansión mínima.
1
3
2
ALGORITMO PRIM
• Inicialmente consideramos al conjunto de nodos de la
red como nodos no conectados o aislados y lo
denotamos: U = {1, 2, 3, … , n}, y denotamos por S el
árbol que es el conjunto de nodos conectados, que
inicialmente es vacío.
• Comenzamos eligiendo arbitrariamente cualquier nodo
de U, por ejemplo el nodo 2 y lo incluimos dentro de S
excluyéndolo de U, es decir S={2} y U={1, 3, … , n}.
• Identificamos el nodo no conectado más próximo al
árbol S, y lo incluimos en S.
• Se repite el procedimiento, determinando el nodo no
conectado más próximo a cualquiera de los nodos
conectados, es decir el nodo de U más próximo a
cualquiera de los nodos del árbol S, hasta incorporar a
S todos los nodos de la red.
EJEMPLO
El campus de una universidad tiene 5
microcomputadoras. La distancia entre cada
par de computadoras (en 100 mts) se indica
en la figura. Las computadoras deben estar
interconectadas mediante un cable
subterráneo.
Determine cómo deben conectarse las
computadoras para que la longitud total de
cable requerido sea mínimo.
4
1 2
35
1
3
6
4
2
2
4
5
2
Las aristas (1, 2), (2, 5), (5, 3) y (5, 4)
forman el árbol de expansión mínima
Iteración Conjunto de
nodos
conectados
Longitud
de la
arista
Par de
nodos
conectados
Inicial
1
2
3
4
{ 5 }
{5, 2}
{5, 2, 1}
{5, 2, 1, 3}
{5, 2, 1, 3, 4}
--
2
1
2
4
--
5 – 2
2 – 1
5 – 3
5 – 4
Σ = 9
EL PROBLEMA DE LA RUTA MÁS CORTA
• Este problema trata de encontrar la ruta más corta
(trayectoria de longitud mínima) de un nodo origen a
cualquier otro nodo de la red.
• Sea el grafo G=(X, A), en el cual cada arco tiene una
etiqueta no negativa, y donde un nodo se especifica
como origen. El problema es determinar el costo del
camino más corto desde el origen a todos los demás
nodos de X, donde la longitud de un camino es la suma
de los costos de los arcos del camino.
• El costo de un camino puede indicar un costo, tiempo,
distancia o algún recurso que tiene un valor.
EL PROBLEMA DE LA RUTA MÁS CORTA
Si Cij >= 0 es el costo unitario del arco Aij que
va del nodo i al nodo j, entonces, Cij no
satisface la propiedad geométrica:
“La distancia más corta y por ende más
económica entre dos puntos, es la que
emplea la recta que une a esos dos puntos”.
EL PROBLEMA DE LA RUTA MÁS CORTA
En la siguiente figura se tiene que no se cumple
necesariamente la siguiente desigualdad:
Cij + Cjk >= Cik (1)
Cik
Cij Cjk
En una red se puede cumplir cualquiera de las siguientes relaciones:
Cik >= Cij + Cjk o bien Cik <= Cij + Cjk (2)
Si se cumpliera siempre la desigualdad (1), entonces los problemas
de redes ya tendrían soluciones, pero ese no es el caso en la redes
de optimización.
i k
j
ALGORITMO DE DIJKSTRA
• Es un algoritmo ávido que opera a partir de un conjunto S
de nodos, cuya distancia más corta desde el origen ya es
conocida.
• En principio, S contiene sólo el nodo origen.
• En cada iteración, se agrega algún nodo restante de X a S,
cuya distancia desde el origen es la más corta posible.
• Suponiendo que todos los arcos tienen costo no negativo,
siempre es posible encontrar un camino más corto entre el
origen y el nodo de X que pasa solo a través de los nodos
de S.
• En cada iteración, se utiliza un arreglo D[ ] para registrar la
longitud del camino más corto a cada nodo.
• Una vez que S incluya a todos los nodos, D[ ] contendrá la
distancia más corta del origen a cada nodo.
1
52
43
PROBLEMA
En la siguiente red, encontrar los caminos más cortos desde el nodo 1 a todos
Los demás nodos de la red.
10 100
50
30
6010
20
1
52
43
10 100
6050 10
20
30
Iteración S j D[2] D[3] D[4] D[5]
Inicial
1
2
3
4
{1}
{1, 2}
{1, 2, 4}
{1,2,4,3}
{1,2,4,3,5}
-- 10 ∞ 30 100
2 -- 60 30 100
4 -- 50 -- 90
3 -- -- -- 60
5 -- -- -- --
1
5
3 4
2
10
30
20
10Caminos más cortos desde el
nodo 1 a cada uno de los demás
nodos de la red.
EL PROBLEMA DE REEMPLAZO
• Este problema consiste en determinar una política óptima de
reemplazo de una maquina o equipo para un período de tiempo.
• El período de tiempo se puede dividir en unidades de tiempo, y
para cada unidad de tiempo se debe determinar si la máquina es
reemplazada por otra nueva o se continúa con la misma máquina.
• Con todas las alternativas de reemplazo que hay entre las unidades
de tiempo contenidas dentro del período de reemplazo, se puede
modelar una red, en donde los nodos indican el inicio o fin de una
unidad de tiempo, y los arcos indican el transcurrir de una unidad
de tiempo.
• En cada arco (i, j) se determina el costo que significa comprar una
máquina a inicio de la unidad de tiempo i y operarlo hasta el fin de
la unidad de tiempo i (equivalente al inicio de la unidad de tiempo
j).
• El problema se reduce a un problema de la ruta más corta, pues se
trata de hallar la ruta de costo mínimo entre el inicio y el fin del
período de reemplazo. Se aplica el algoritmo de Dijkstra.
EL PROBLEMA DE REEMPLAZO
0 n-11 n2 . . .
C0,2
C2,n
C1,n-1
C0,1 C1,2 Cn-1,n
C0,n-1
C1,n
C0,n
PROBLEMA
Se compra una máquina en el año 1 y se
planea una política de reemplazo para los
próximos 5 años. Sea Cij (i<j) el costo total
(adquisición, operación, mantenimiento y
valor residual).
C12 = 50 C1,3 = 80 C2,3 = 20
C2,4 = 35 C3,4 = 37 C3,5 = 40
C4,5 = 23 C4,6 = 33 C5,6 = 18
La máquina no puede ser usada por más de
dos años. Determine la política óptima de
reemplazo.
CADENAS MÚLTIPLES ECONÓMICAS EN UNA RED
• Este problema trata de determinar la ruta más
económica entre cualquier par de nodos de
una red.
• El conjunto de todas estas rutas, se llaman
“Cadenas Múltiples Económicas”.
• Este problema puede resolverse con el
algoritmo de Dijkstra, tomando por turno cada
vértice como vértice origen. Una forma más
directa de solución es el algoritmo de Floyd.
ALGORITMO DE FLOYD
Se trabajará sobre un grafo G=(X,A) en el cual cada arco
(ij) tiene un costo no negativo Cij. El problema es
encontrar el camino mas corto entre i y j para cada par
de vértices (i,j).
Por conveniencia, se supone que los nodos en X están
numerados 1, 2, … , n. El algoritmo de Floyd usa una
matriz A de nxn en la que se calculan las longitudes de
los caminos más cortos.
• Inicialmente se hace A0[i,j]=C[i,j] para toda i≠j. Si no
existe un arco que vaya de i a j, se supone que C[i,j]=
∞. Cada elemento de la diagonal se hace igual a cero.
• Después se hacen n iteraciones en la matriz A, en cada
iteración A se transforma.
ALGORITMO DE FLOYD
• Al final de la k-ésima iteracion, A[i,j] tendrá por
valor la longitud más pequeña de cualquier
camino que vaya desde el nodo i hasta el nodo j y
que no pase por un nodo con un número mayor
que k. Esto es, i y j, los vértices extremos del
camino, pueden ser cualquier vértice, pero todo
vértice intermedio debe ser menor o igual que k.
• En la k-ésima iteración, se aplica la sgte. fórmula
para calcular A:
Ak-1[i,j]
Ak[i,j] = min Ak-1[i,k]+ Ak-1[k,j]
PROBLEMA
Para el grafo dirigido de la figura, determine los caminos más cortos
entre todos los pares de nodos.
1 2 3
8
2
3
5
EL PROBLEMA DE FLUJO MÁXIMO
• Mucha situaciones se modelan mediante una red
en la que se podrían considerar que los arcos
tienen una capacidad que limita la cantidad de un
producto que se podría enviar a través del arco.
En estas situaciones, a menudo se desea
transportar la cantidad máxima de flujo desde un
punto de partida (conocido como fuente) hacia
un punto terminal (llamado destino).
• Esta clase de problemas se llaman problemas de
flujo máximo.
EL PROBLEMA DE FLUJO MÁXIMO
El flujo que pasa a través de una red debe
satisfacer las siguientes restricciones:
a) El flujo entra a la red únicamente por el nodo
fuente. Matemáticamente se representa por:
Σ Xij - Σ Xjk = - v , si j = s
Donde v >= 0 es el flujo total que entra a la
red y s es el nodo fuente. Por convención, el
flujo que sale de un nodo es negativo (eflujo)
y el flujo que entra a un nodo es positivo
(influjo).
EL PROBLEMA DE FLUJO MÁXIMO
b) Hay conservación de flujo en un nodo
intermedio, es decir el total del flujo que entra en
cierto nodo es igual al total del flujo que sale del
mismo. Matemáticamente se tiene:
Σ Xij - Σ Xjk = 0 , para toda j ≠ s ≠ t.
c) El flujo sale de la red únicamente por el nodo
destino. Matemáticamente se escribe como:
Σ Xij - Σ Xjk = v , si j = t.
d) El flujo en un arco debe conformar lo
requerimientos mínimos y las capacidades
máximas del arco, es decir:
0 <= lij <= xij <= uij para toda Aij.
EL PROBLEMA DE FLUJO MÁXIMO
Modelo de programación lineal:
Xij = cantidad de flujo que pasa del nodo i al nodo j.
Max v = Σ Xsj
s. a. :
- v , si j = s
Σ Xij - Σ Xjk = 0 , si j ≠ s ≠ t
v , si j = t
0 <= lij <= xij <= uij
TEOREMA DE MINIMO CORTE-MÁXIMO FLUJO
En una red de transporte dada, el valor
máximo de un flujo es igual a la capacidad
mínima de un corte, esto es:
Max Ø(xn) = Min C W¯ (Y)
Esto quiere decir, que si se logra encontrar un
flujo igual a la capacidad de un corte, se estará
seguro de que dicho flujo es máximo.
El corte mínimo puede no ser único.
TEOREMA DE MÍNIMO CORTE-MÁXIMO FLUJO
s t
1
2
1
3
1
2 2
Y = 1, 2, t
Min C W¯ (Y) = 1 + 2 = 3 Ømax = 3
ALGORITMO DE FORD Y FULKERSON
Es un algoritmo iterativo, consiste en el aumento
paulatino del flujo (Xo) hasta que éste llegue a ser
máximo.
La búsqueda del flujo máximo se realiza en dos
fases:
1ra Fase: Etiquetado
Se identifica un camino de Xs a Xt, y se coloca una
etiqueta a cada nodo del camino.
2da Fase: Asignación de flujo
Se asigna flujo al camino etiquetado.
NOMENCLATURA EMPLEADA
Xij >= 0 Flujo del nodo i al nodo j.
Xji >= 0 Flujo ficticio que va del nodo j al nodo i.
uij >= 0 Capacidad máximo de flujo del arco Aij (u Є Z).
s: Nodo fuente.
t: Nodo destino.
gij = uij – xij Capacidad no saturada del arco Aij,
(gij=0 arco saturado).
[s⁺, ∞ ] : Etiqueta del nodo fuente.
[i⁺ , δj ] : Etiqueta de un nodo vecino del nodo i. i⁺: Nodo
de donde proviene el flujo. δj: Cantidad de flujo que aún
puede pasar por el arco Aij.
[k¯, δj] : Etiqueta para un nodo j vecino del nodo k, para el
cual es posible un flujo ficticio ( k  j). δj = min(δj , Xkj)
PROBLEMA
Una empresa multinacional tiene un programa
anual de distribución de un determinado
producto. Estos productos se producen en dos
fábricas. La fábrica 1 con una capacidad máxima
de producción de 10 tons. al año y la fábrica 2
con capacidad máxima de producción de 7 tons.
al año. Los excedentes de la fábrica 3 pueden
transferirse a la fábrica 2, para esto existe una
disponibilidad de transporte de un máximo de 8
tons. al año. Hay tres distribuidores mayoristas, la
siguiente matriz indica la capacidad máxima de
transporte anual desde las fábricas hacia los
distribuidores mayoristas.
PROBLEMA
Distribuidores
Fábricas
3 4 5
1 8 4 -
2 2 3 3
Los excedentes de 3 y 5 pueden transferirse a 4. La capacidad
máxima de transporte es de 3 tons. y 4 tons. respectivamente .
De los distribuidores mayoristas se entregan los productos al
mercado consumidor. Los requerimientos de los distribuidores
son de 4, 7 y 5 toneladas respectivamente.
Determine el flujo máximo anual que puede circular por el
sistema.
EL PROBLEMA DE FLUJO MÁXIMO A COSTO
MÍNIMO
• Este problema es una combinación de dos
problemas: Flujo máximo y costo mínimo.
• Un problema de flujo máximo puede tener
soluciones óptimas alternativas, cuando se
incluye costos en la red, al menos una
solución tiene el costo mínimo.
EL PROBLEMA DE FLUJO MÁXIMO A COSTO MÍNIMO
El problema de flujo máximo a costo mínimo
puede representarse matemáticamente como:
Min Z = ΣCijXij
s.a. : - v, si j=s
ΣXij - ΣXjk = 0, si j≠ s ≠ t
v, si j=t
0 <= lij <= Xij < uij
En esta formulación, las variables de decisión son
Xij y el flujo total v.
ALGORITMO DE BUSACKER Y GOWEN
1) Xij=0 para todos los arcos Aij y v=0.
2) Construir nuevos costos Ĉij en el arco Aij
basado en lo siguiente:
• Ĉij= Cij, si Xij=0, cuando no hay flujo en el
arco Aij.
• Ĉij=∞, si Xij=Uij, cuando el arco Aij está
saturado.
• Ĉji=-Cij, si Xij>0, arco en reversa para posible
reducción de flujo.
ALGORITMO DE BUSACKER Y GOWEN
3) Encuéntrese la ruta más económica del nodo s al
nodo t, basado en los costos Ĉij, utilizando
cualquier algoritmo disponible.
4) Envíese la mayor cantidad de flujo por la ruta
más económica, es decir una cantidad de flujo
con el cual uno o varios arcos que componen
esa ruta se saturen.
5) Añádase al flujo actual en toda la red, el flujo
adicional que se encuentre en el paso anterior.
Si todas las rutas que conducen al destino están
saturadas, la solución óptima ha sido
encontrada. De otra manera, regrese al paso 2.
PROB.
En la red de la figura, los números en los arcos representan respectivamente
la capacidad mínima, la capacidad máxima y el costo unitario . Determine el
flujo máximo a costo mínimo.
s 1
3
4
2 t
(0,1,1) (0,1,1)
(0,1,1) (0,1,2) (0,1,1)
(0,2,2)
(0,2,2)
G R A C I A S

Problemas redes

  • 1.
    EL PROBLEMA DELARBOL DE EXPANSIÓN MÍNIMA EL PROBLEMA DE LA RUTA MÁS CORTA EL PROBLEMA DE FLUJO MÁXIMO EL PROBLEMA DE FLUJO A COSTO MÍNIMO Investigación de Operaciones II Ing. César Canelo Sotelo
  • 2.
    EL PROBLEMA DELÁRBOL DE EXPANSIÓN MÍNIMA • Este problema trata de encontrar un árbol que conecte o comunique a todos los nodos de una red, con una longitud total mínima de conexión. • El problema de Árbol de Expansión Mínima consiste en determinar el conjunto de aristas de una red que conecta todos los nodos, tal que se minimiza la suma de la longitud de las aristas. Es evidente que este conjunto de aristas no debe contener ciclos. • Este problema también se conoce como el “Problema de Árbol Mínimo de Máximo Alcance”.
  • 3.
    EL PROBLEMA DELÁRBOL DE EXPANSIÓN MÍNIMA DEFINICIÓN Para una red con n nodos, un árbol de expansión es un conjunto de n-1 aristas que conectan los nodos de la red y no contiene ciclos. Un árbol de expansión de longitud mínima en una red es un Árbol de Expansión Mínima.
  • 4.
    EL PROBLEMA DELÁRBOL DE EXPANSIÓN MÍNIMA 12 4 7 (1,2)-(2,3)-(3,1) es un ciclo. (1,3)-(1,2) es un árbol de expansión. (1,2)-(2,3) es un árbol de expansión. (1,3)-(3,2) es el árbol de expansión mínima. 1 3 2
  • 5.
    ALGORITMO PRIM • Inicialmenteconsideramos al conjunto de nodos de la red como nodos no conectados o aislados y lo denotamos: U = {1, 2, 3, … , n}, y denotamos por S el árbol que es el conjunto de nodos conectados, que inicialmente es vacío. • Comenzamos eligiendo arbitrariamente cualquier nodo de U, por ejemplo el nodo 2 y lo incluimos dentro de S excluyéndolo de U, es decir S={2} y U={1, 3, … , n}. • Identificamos el nodo no conectado más próximo al árbol S, y lo incluimos en S. • Se repite el procedimiento, determinando el nodo no conectado más próximo a cualquiera de los nodos conectados, es decir el nodo de U más próximo a cualquiera de los nodos del árbol S, hasta incorporar a S todos los nodos de la red.
  • 6.
    EJEMPLO El campus deuna universidad tiene 5 microcomputadoras. La distancia entre cada par de computadoras (en 100 mts) se indica en la figura. Las computadoras deben estar interconectadas mediante un cable subterráneo. Determine cómo deben conectarse las computadoras para que la longitud total de cable requerido sea mínimo.
  • 7.
    4 1 2 35 1 3 6 4 2 2 4 5 2 Las aristas(1, 2), (2, 5), (5, 3) y (5, 4) forman el árbol de expansión mínima Iteración Conjunto de nodos conectados Longitud de la arista Par de nodos conectados Inicial 1 2 3 4 { 5 } {5, 2} {5, 2, 1} {5, 2, 1, 3} {5, 2, 1, 3, 4} -- 2 1 2 4 -- 5 – 2 2 – 1 5 – 3 5 – 4 Σ = 9
  • 8.
    EL PROBLEMA DELA RUTA MÁS CORTA • Este problema trata de encontrar la ruta más corta (trayectoria de longitud mínima) de un nodo origen a cualquier otro nodo de la red. • Sea el grafo G=(X, A), en el cual cada arco tiene una etiqueta no negativa, y donde un nodo se especifica como origen. El problema es determinar el costo del camino más corto desde el origen a todos los demás nodos de X, donde la longitud de un camino es la suma de los costos de los arcos del camino. • El costo de un camino puede indicar un costo, tiempo, distancia o algún recurso que tiene un valor.
  • 9.
    EL PROBLEMA DELA RUTA MÁS CORTA Si Cij >= 0 es el costo unitario del arco Aij que va del nodo i al nodo j, entonces, Cij no satisface la propiedad geométrica: “La distancia más corta y por ende más económica entre dos puntos, es la que emplea la recta que une a esos dos puntos”.
  • 10.
    EL PROBLEMA DELA RUTA MÁS CORTA En la siguiente figura se tiene que no se cumple necesariamente la siguiente desigualdad: Cij + Cjk >= Cik (1) Cik Cij Cjk En una red se puede cumplir cualquiera de las siguientes relaciones: Cik >= Cij + Cjk o bien Cik <= Cij + Cjk (2) Si se cumpliera siempre la desigualdad (1), entonces los problemas de redes ya tendrían soluciones, pero ese no es el caso en la redes de optimización. i k j
  • 11.
    ALGORITMO DE DIJKSTRA •Es un algoritmo ávido que opera a partir de un conjunto S de nodos, cuya distancia más corta desde el origen ya es conocida. • En principio, S contiene sólo el nodo origen. • En cada iteración, se agrega algún nodo restante de X a S, cuya distancia desde el origen es la más corta posible. • Suponiendo que todos los arcos tienen costo no negativo, siempre es posible encontrar un camino más corto entre el origen y el nodo de X que pasa solo a través de los nodos de S. • En cada iteración, se utiliza un arreglo D[ ] para registrar la longitud del camino más corto a cada nodo. • Una vez que S incluya a todos los nodos, D[ ] contendrá la distancia más corta del origen a cada nodo.
  • 12.
    1 52 43 PROBLEMA En la siguientered, encontrar los caminos más cortos desde el nodo 1 a todos Los demás nodos de la red. 10 100 50 30 6010 20
  • 13.
    1 52 43 10 100 6050 10 20 30 IteraciónS j D[2] D[3] D[4] D[5] Inicial 1 2 3 4 {1} {1, 2} {1, 2, 4} {1,2,4,3} {1,2,4,3,5} -- 10 ∞ 30 100 2 -- 60 30 100 4 -- 50 -- 90 3 -- -- -- 60 5 -- -- -- -- 1 5 3 4 2 10 30 20 10Caminos más cortos desde el nodo 1 a cada uno de los demás nodos de la red.
  • 14.
    EL PROBLEMA DEREEMPLAZO • Este problema consiste en determinar una política óptima de reemplazo de una maquina o equipo para un período de tiempo. • El período de tiempo se puede dividir en unidades de tiempo, y para cada unidad de tiempo se debe determinar si la máquina es reemplazada por otra nueva o se continúa con la misma máquina. • Con todas las alternativas de reemplazo que hay entre las unidades de tiempo contenidas dentro del período de reemplazo, se puede modelar una red, en donde los nodos indican el inicio o fin de una unidad de tiempo, y los arcos indican el transcurrir de una unidad de tiempo. • En cada arco (i, j) se determina el costo que significa comprar una máquina a inicio de la unidad de tiempo i y operarlo hasta el fin de la unidad de tiempo i (equivalente al inicio de la unidad de tiempo j). • El problema se reduce a un problema de la ruta más corta, pues se trata de hallar la ruta de costo mínimo entre el inicio y el fin del período de reemplazo. Se aplica el algoritmo de Dijkstra.
  • 15.
    EL PROBLEMA DEREEMPLAZO 0 n-11 n2 . . . C0,2 C2,n C1,n-1 C0,1 C1,2 Cn-1,n C0,n-1 C1,n C0,n
  • 16.
    PROBLEMA Se compra unamáquina en el año 1 y se planea una política de reemplazo para los próximos 5 años. Sea Cij (i<j) el costo total (adquisición, operación, mantenimiento y valor residual). C12 = 50 C1,3 = 80 C2,3 = 20 C2,4 = 35 C3,4 = 37 C3,5 = 40 C4,5 = 23 C4,6 = 33 C5,6 = 18 La máquina no puede ser usada por más de dos años. Determine la política óptima de reemplazo.
  • 17.
    CADENAS MÚLTIPLES ECONÓMICASEN UNA RED • Este problema trata de determinar la ruta más económica entre cualquier par de nodos de una red. • El conjunto de todas estas rutas, se llaman “Cadenas Múltiples Económicas”. • Este problema puede resolverse con el algoritmo de Dijkstra, tomando por turno cada vértice como vértice origen. Una forma más directa de solución es el algoritmo de Floyd.
  • 18.
    ALGORITMO DE FLOYD Setrabajará sobre un grafo G=(X,A) en el cual cada arco (ij) tiene un costo no negativo Cij. El problema es encontrar el camino mas corto entre i y j para cada par de vértices (i,j). Por conveniencia, se supone que los nodos en X están numerados 1, 2, … , n. El algoritmo de Floyd usa una matriz A de nxn en la que se calculan las longitudes de los caminos más cortos. • Inicialmente se hace A0[i,j]=C[i,j] para toda i≠j. Si no existe un arco que vaya de i a j, se supone que C[i,j]= ∞. Cada elemento de la diagonal se hace igual a cero. • Después se hacen n iteraciones en la matriz A, en cada iteración A se transforma.
  • 19.
    ALGORITMO DE FLOYD •Al final de la k-ésima iteracion, A[i,j] tendrá por valor la longitud más pequeña de cualquier camino que vaya desde el nodo i hasta el nodo j y que no pase por un nodo con un número mayor que k. Esto es, i y j, los vértices extremos del camino, pueden ser cualquier vértice, pero todo vértice intermedio debe ser menor o igual que k. • En la k-ésima iteración, se aplica la sgte. fórmula para calcular A: Ak-1[i,j] Ak[i,j] = min Ak-1[i,k]+ Ak-1[k,j]
  • 20.
    PROBLEMA Para el grafodirigido de la figura, determine los caminos más cortos entre todos los pares de nodos. 1 2 3 8 2 3 5
  • 21.
    EL PROBLEMA DEFLUJO MÁXIMO • Mucha situaciones se modelan mediante una red en la que se podrían considerar que los arcos tienen una capacidad que limita la cantidad de un producto que se podría enviar a través del arco. En estas situaciones, a menudo se desea transportar la cantidad máxima de flujo desde un punto de partida (conocido como fuente) hacia un punto terminal (llamado destino). • Esta clase de problemas se llaman problemas de flujo máximo.
  • 22.
    EL PROBLEMA DEFLUJO MÁXIMO El flujo que pasa a través de una red debe satisfacer las siguientes restricciones: a) El flujo entra a la red únicamente por el nodo fuente. Matemáticamente se representa por: Σ Xij - Σ Xjk = - v , si j = s Donde v >= 0 es el flujo total que entra a la red y s es el nodo fuente. Por convención, el flujo que sale de un nodo es negativo (eflujo) y el flujo que entra a un nodo es positivo (influjo).
  • 23.
    EL PROBLEMA DEFLUJO MÁXIMO b) Hay conservación de flujo en un nodo intermedio, es decir el total del flujo que entra en cierto nodo es igual al total del flujo que sale del mismo. Matemáticamente se tiene: Σ Xij - Σ Xjk = 0 , para toda j ≠ s ≠ t. c) El flujo sale de la red únicamente por el nodo destino. Matemáticamente se escribe como: Σ Xij - Σ Xjk = v , si j = t. d) El flujo en un arco debe conformar lo requerimientos mínimos y las capacidades máximas del arco, es decir: 0 <= lij <= xij <= uij para toda Aij.
  • 24.
    EL PROBLEMA DEFLUJO MÁXIMO Modelo de programación lineal: Xij = cantidad de flujo que pasa del nodo i al nodo j. Max v = Σ Xsj s. a. : - v , si j = s Σ Xij - Σ Xjk = 0 , si j ≠ s ≠ t v , si j = t 0 <= lij <= xij <= uij
  • 25.
    TEOREMA DE MINIMOCORTE-MÁXIMO FLUJO En una red de transporte dada, el valor máximo de un flujo es igual a la capacidad mínima de un corte, esto es: Max Ø(xn) = Min C W¯ (Y) Esto quiere decir, que si se logra encontrar un flujo igual a la capacidad de un corte, se estará seguro de que dicho flujo es máximo. El corte mínimo puede no ser único.
  • 26.
    TEOREMA DE MÍNIMOCORTE-MÁXIMO FLUJO s t 1 2 1 3 1 2 2 Y = 1, 2, t Min C W¯ (Y) = 1 + 2 = 3 Ømax = 3
  • 27.
    ALGORITMO DE FORDY FULKERSON Es un algoritmo iterativo, consiste en el aumento paulatino del flujo (Xo) hasta que éste llegue a ser máximo. La búsqueda del flujo máximo se realiza en dos fases: 1ra Fase: Etiquetado Se identifica un camino de Xs a Xt, y se coloca una etiqueta a cada nodo del camino. 2da Fase: Asignación de flujo Se asigna flujo al camino etiquetado.
  • 28.
    NOMENCLATURA EMPLEADA Xij >=0 Flujo del nodo i al nodo j. Xji >= 0 Flujo ficticio que va del nodo j al nodo i. uij >= 0 Capacidad máximo de flujo del arco Aij (u Є Z). s: Nodo fuente. t: Nodo destino. gij = uij – xij Capacidad no saturada del arco Aij, (gij=0 arco saturado). [s⁺, ∞ ] : Etiqueta del nodo fuente. [i⁺ , δj ] : Etiqueta de un nodo vecino del nodo i. i⁺: Nodo de donde proviene el flujo. δj: Cantidad de flujo que aún puede pasar por el arco Aij. [k¯, δj] : Etiqueta para un nodo j vecino del nodo k, para el cual es posible un flujo ficticio ( k  j). δj = min(δj , Xkj)
  • 29.
    PROBLEMA Una empresa multinacionaltiene un programa anual de distribución de un determinado producto. Estos productos se producen en dos fábricas. La fábrica 1 con una capacidad máxima de producción de 10 tons. al año y la fábrica 2 con capacidad máxima de producción de 7 tons. al año. Los excedentes de la fábrica 3 pueden transferirse a la fábrica 2, para esto existe una disponibilidad de transporte de un máximo de 8 tons. al año. Hay tres distribuidores mayoristas, la siguiente matriz indica la capacidad máxima de transporte anual desde las fábricas hacia los distribuidores mayoristas.
  • 30.
    PROBLEMA Distribuidores Fábricas 3 4 5 18 4 - 2 2 3 3 Los excedentes de 3 y 5 pueden transferirse a 4. La capacidad máxima de transporte es de 3 tons. y 4 tons. respectivamente . De los distribuidores mayoristas se entregan los productos al mercado consumidor. Los requerimientos de los distribuidores son de 4, 7 y 5 toneladas respectivamente. Determine el flujo máximo anual que puede circular por el sistema.
  • 31.
    EL PROBLEMA DEFLUJO MÁXIMO A COSTO MÍNIMO • Este problema es una combinación de dos problemas: Flujo máximo y costo mínimo. • Un problema de flujo máximo puede tener soluciones óptimas alternativas, cuando se incluye costos en la red, al menos una solución tiene el costo mínimo.
  • 32.
    EL PROBLEMA DEFLUJO MÁXIMO A COSTO MÍNIMO El problema de flujo máximo a costo mínimo puede representarse matemáticamente como: Min Z = ΣCijXij s.a. : - v, si j=s ΣXij - ΣXjk = 0, si j≠ s ≠ t v, si j=t 0 <= lij <= Xij < uij En esta formulación, las variables de decisión son Xij y el flujo total v.
  • 33.
    ALGORITMO DE BUSACKERY GOWEN 1) Xij=0 para todos los arcos Aij y v=0. 2) Construir nuevos costos Ĉij en el arco Aij basado en lo siguiente: • Ĉij= Cij, si Xij=0, cuando no hay flujo en el arco Aij. • Ĉij=∞, si Xij=Uij, cuando el arco Aij está saturado. • Ĉji=-Cij, si Xij>0, arco en reversa para posible reducción de flujo.
  • 34.
    ALGORITMO DE BUSACKERY GOWEN 3) Encuéntrese la ruta más económica del nodo s al nodo t, basado en los costos Ĉij, utilizando cualquier algoritmo disponible. 4) Envíese la mayor cantidad de flujo por la ruta más económica, es decir una cantidad de flujo con el cual uno o varios arcos que componen esa ruta se saturen. 5) Añádase al flujo actual en toda la red, el flujo adicional que se encuentre en el paso anterior. Si todas las rutas que conducen al destino están saturadas, la solución óptima ha sido encontrada. De otra manera, regrese al paso 2.
  • 35.
    PROB. En la redde la figura, los números en los arcos representan respectivamente la capacidad mínima, la capacidad máxima y el costo unitario . Determine el flujo máximo a costo mínimo. s 1 3 4 2 t (0,1,1) (0,1,1) (0,1,1) (0,1,2) (0,1,1) (0,2,2) (0,2,2)
  • 36.
    G R AC I A S