Clase 28 - Flujo en redes II - Pontificia Universidad Católica de Chile

Anuncio
ICS 1102 (3)
Optimización
Departamento de Ingeniería Industrial y de Sistemas
Pontificia Universidad Católica de Chile
Clase 28 - Flujo en redes II
Prof. Claudio Seebach - Semestre II 2006
Problemas clásicos de Flujo en Redes
• Problema de flujo de mínimo costo
• Minimum cost flow problem
• Problema de la ruta más corta
• Shortest path problem
• Problema de máximo flujo
• Maximum flow problem
Una aplicación de flujo de mínimo costo
• Enviar de productores a consumidores, a
través de bodegas, a mínimo costo y
satisfaciendo la demanda
El problema de Transporte
• Corresponde a un problema de flujo de
mínimo costo
• Supongamos que deseamos enviar productos
desde las bodegas a los lugares de venta
• Ejemplo:
• 3 bodegas
• 4 puntos de venta
• ai: oferta en bodega i
• bj: demanda de vendedor j
• cij: costo de envio de i a j
• Sea xij la cantidad enviada de i a j
• Formule el LP
El problema de Transporte
• En general, la formulación es
• Min
Nodos de oferta
Nodos de demanda
El problema de Asignación
• Supongamos que una empresa tiene que
cumplir con cuatro tareas y tiene cuatro
máquinas
• Estás máquinas tienen los siguientes tiempos
de setup
tiempo
T1
T2
T3
T4
M1
14
5
8
7
M2
2
12
6
5
M3
7
8
3
9
M4
2
4
6
10
• Formule un LP para optimizar la asignación
El problema de Asignación
• En general, formulación es:
• Min
Cada demanda suma 1
Cada oferta suma 1
• Nuevamente el problema es unimodular, por lo
que el problema relajado entregará la solución
óptima
Problema de la ruta más corta
• ¿ cuál es el camino más corto desde la origen
(s de “source”) hasta el destino (t) ?
• Supuestos:
• Existe un camino de la fuente a todos los demás nodos
• Todos los largos de los arcos son no negativos
• ¿ cuál es el camino más corto del nodo 1 al 6 ?
Problema de la ruta más corta
• En general la formulación con LP de este
problema, desde una origen s a un destino t
está dada por
Min
S.a
En los demás casos
Problema de la ruta más corta
• Otra formulación, para determinar la ruta más
corta a n nodos es enviar “un” paquete a
desde s a cada n-1 nodos.
Min
S.a
El algoritmo de Dijkstra
• La ruta más corta es un caso especial de mínimo costo
• El algoritmo de Dijkstra nos permite encontrar la ruta
más corta, definiendo:
•
•
•
•
•
d(i): la distancia del nodo i al nodo s
pred(i): el nodo antecesor de i
d(1) = 0, pred(1) = 0
d(2) = 2, pred(2) = 1
Encontrar las demás distancias en orden de distancia decreciente
del nodo 1 (=s)
• Sea d() un vector con distancia temporales
•
d(j): la distancia por alguna ruta del nodo 1 al nodo j.
• Procedimiento de actualización:
•
Para todo (i,j):
• Si d(j) > d(i) + cij hacer d(j):= d(i) + cij y hacer pred(j):= i
El algoritmo de Dijkstra
• Nodo 2
d(2) = 2
pred(2) = 1
d(4) = !
pred(4) =
d(1) = 0
pred(1) = 0
d(6) = !
pred(6) =
d(3) = !
pred(3) =
d(5) = !
pred(5) =
El algoritmo de Dijkstra
• Nodo 3
d(2) = 2
pred(2) = 1
d(4) = !
pred(4) =
d(1) = 0
pred(1) = 0
d(6) = !
pred(6) =
d(3) = !, 4
pred(3) = 1
d(5) = !
pred(5) =
El algoritmo de Dijkstra
• Nodo 3
d(2) = 2
pred(2) = 1
d(4) = !
pred(4) =
d(1) = 0
pred(1) = 0
d(6) = !
pred(6) =
d(3) = !, 4, 3
pred(3) = 1, 2
d(5) = !
pred(5) =
El algoritmo de Dijkstra
• Nodo 4
d(2) = 2
pred(2) = 1
d(4) = !, 6
pred(4) = 2
d(1) = 0
pred(1) = 0
d(6) = !
pred(6) =
d(3) = !, 4, 3
pred(3) = 1, 2
d(5) = !
pred(5) =
El algoritmo de Dijkstra
• Nodo 5
d(2) = 2
pred(2) = 1
d(4) = !, 6
pred(4) = 2
d(1) = 0
pred(1) = 0
d(6) = !
pred(6) =
d(3) = !, 4, 3
pred(3) = 1, 2
d(5) = !, 4
pred(5) = 2
El algoritmo de Dijkstra
• Nodo 6
d(2) = 2
pred(2) = 1
d(4) = !, 6
pred(4) = 2
d(1) = 0
pred(1) = 0
d(6) = !, 6
pred(6) = 5
d(3) = !, 4, 3
pred(3) = 1, 2
d(5) = !, 4
pred(5) = 2
El algoritmo de Dijkstra
• Para encontrar la ruta más corta a k, basta
retroceder desde el nodo k al nodo 1.
• El algoritmo provee el árbol de menor
distancia del nodo 1 a todos los demás nodos
Descargar