Академический Документы
Профессиональный Документы
Культура Документы
2009
INSTITUTO TECNOLÓGICO DE TIJUANA
OPTIMIZACIÓN DE
REDES
Investigación de Operaciones II
Hero
10/26/2009
MODELOS DE OPTIMIZACIÓN DE REDES
Los problemas de redes surgen en una gran variedad de situaciones. Las redes de
transporte, eléctricas y de comunicaciones predominan en la vida diaria. La representación
de redes se utiliza ampliamente en áreas tan diversas como producción, distribución,
planeación de proyectos, localización de instalaciones, administración de recursos y
planeación financiera, para nombrar sólo unos ejemplos. De hecho, una representación de
redes proporciona un panorama general tan poderoso y una ayuda conceptual para
visualizar las relaciones entre los componentes del sistema, que se usa casi en todas las
áreas científicas, sociales y económicas.
Se darán a conocer en este trabajo cinco tipos importantes de problemas de redes y algunas
ideas básicas sobre cómo resolverlos (sin profundizar en los aspectos de estructuras de
bases de datos, tan vitales para la aplicación exitosa en los problemas de gran escala). Los
tres primeros tipos de problemas –el problema de la ruta más corta, el problema del árbol
de mínima expansión y el problema del flujo máximo- tienen una estructura específica que
surge con frecuencia en la práctica.
El cuarto tipo –el problema del flujo de costo mínimo- proporciona un enfoque unificador de
muchas otras aplicaciones por su estructura mucho más general. Y por último el método del
CPM.
Terminología de Redes
Considere una red conexa y no dirigida con dos nodos especiales llamados origen y
destino. A cada ligadura (arco no dirigido) se asocia una distancia no negativa. El objetivo
es encontrar la ruta más corta (la trayectoria con la mínima distancia total) del origen al
destino.
Nodos resultos conectados Nodo no resulto mas Distanica Total n-esimo nodo Distancia Ultima
n
directamente a nodos no resuletos cercano conectado involucrada mas cercano minima conexion
1 O A 2 A 2 OA
2 O C 4 C 4 OC
3 A B 2+2-4 B 4 AB
A D 2+7=9
4 B E 4+3=7 E 7 BE
C E 4+4=8
A D 2+7=9
5 B D 4+4=8 D 8 BD
E D 7+1=8 D 8 ED
D T 8+5=13
6
E T 7+7=14 T 13 DT
DE A DISTANCIA
1 O A 1 2
2 O B 0 5
3 O C 0 4
4 A B 1 2
5 A D 0 7
6 B C 0 1
7 B D 1 4
8 B E 0 3
9 C B 0 1
10 C E 0 4
11 D E 0 1
12 D T 1 5
13 E D 0 1
14 E T 0 7
NODOS DEMANDA
O 1 = 1
A 0 = 0
B 0 = 0
C 0 = 0
D 0 = 0
E 0 = 0
T -1 = -1
FLUJO DE COSTO MÍNIMO
¿Qué es?
El problema del flujo de costo mínimo tiene una posición medular entre los modelos de
optimización de redes; primero, abarca una clase amplia de aplicaciones y segundo, su
solución es muy eficiente. Toma en cuenta un flujo en una red con capacidades limitadas en
sus arcos. Considera un costo (o distancia) para el flujo a través de un arco. Puede manejar
varios orígenes (nodo fuente) y varios destinos (nodos demanda) para el flujo, de nuevo con
costos asociados.
La razón por la que el problema de flujo de costo mínimo se puede resolver de modo tan
eficiente es que se puede formular como un problema de programación línea y es posible
resolverlo con una versión simplificada del método símplex llamada método símplex de
redes.
Objetivo
Tal vez el tipo más importante de aplicación del problema del flujo de costo mínimo es en la
operación de la red de distribución de una compañía (Fig. 1). Este tipo de aplicación
siempre incluye determinar un plan para enviar bienes desde las fuentes (fábricas, etc.) a las
instalaciones de almacenamiento intermedias (según se necesite) y después a los
consumidores. Siendo así, el objetivo es minimizar el costo total de mandar los recursos a
través de la red para satisfacer la demanda dada.
¿Cómo se realiza?
Para la formulación del modelo considere una red conexa dirigida en la que los n nodos
incluyen al menos un nodo origen y al menos un nodo destino. Las variables de decisión
son:
El objetivo es minimizar el costo total de mandar los recursos disponibles a través de la red
para satisfacer la demanda dada. Usando la convención de que las sumas se toman sólo
sobre arcos existentes, la formulación de programación lineal de este problema es:
Minimizar
No se garantiza que el problema posea soluciones factibles; esto depende en parte de qué
arcos están presentes en la red y de sus capacidades.
Propiedades de soluciones factibles: una condición necesario para que un problema de flujo
de costo mínimo tenga soluciones factibles es que
Es decir, el flujo total generado en los nodos origen es igual al flujo total absorbido por los
nodos de destino.
Si los valores de bi que se dan en alguna aplicación violan esta condición, la interpretación
más común es que los recursos o las demandas (lo que tenga el exceso) representan en
realidad cotas superiores y no cantidades exactas. Cuando esta situación se presente, se
aumenta un destino ficticio para recibir los recursos que sobraban o bien se aumenta un
origen ficticio para mandar el exceso de demanda. El paso análogo en este caso es que
debe agregarse un nodo de demanda ficticio para absorber el exceso de recursos (se
agregan arcos con cij=0 desde todos los nodos origen hasta este nodo), o bien debe
agregarse un nodo origen ficticio para generar u flujo equivalente al exceso de demanda (se
agregan arcos con cij=0 de este nodo a todos los nodos de demanda).
EJEMPLO DE FLUJO DE COSTO MINIMO
En la figura 2 se muestra un ejemplo del problema de flujo de costo mínimo. Esta red, de
hecho, es la red de distribución para el problema de Distribution Unlimited Co. Los valores
de bi en la figura 2 se muestran entre paréntesis cuadrados cerca de los nodos; entonces, los
nodos origen (bi>0) son A y B (las dos fábricas de la compañía), los nodos destino (b i>0) son
D y E (los dos almacenes), y el único nodo de trasbordo (b i=0) es C (un centro de
distribución). Los valores cij se muestran junto a los arcos. En este ejemplo, todos menos
dos de los arcos tienen capacidades que exceden el flujo total generado (90), de manera
que uij=∞ para cualquier propósito práctico. Las dos excepciones son el arco A→B, donde
uAB=10 y el arco C→E que tiene uCE=80.
De forma manual se realizaría por el método simplex, obteniendo como se observa 5 tablas
de la fase I y 2 tablas par la fase II.
Después de este largo procedimiento obtenemos que la solución óptima es Z= 490, con X1=
0; X2= 40; X3= 10; X4= 40; X5= 80; X6= 0 y X7 = 20.
Uso de Excel
Excel proporciona una manera conveniente de formular y resolver problemas del flujo de
costo mínimo como éste, y algunos más grandes. La figura 3 muestra cómo se puede hacer
esto. Se deben incluir los costos unitarios (cij), en la columna G. Como se especifican los
valores de bi para cada nodo, se requieren las restricciones de flujo neto para todos los
nodos. Sin embargo, en realidad sólo dos arcos necesitan restricciones de capacidad. La
celda objetivo (D12) ahora da el costo total del flujo (embarques) a través de la red, de
manera que el objetivo especificado en el cuadro de diálogo de Solver es minimizar esta
cantidad. Las celdas que cambian (D4:D10) en esta hoja de cálculo muestran la solución
óptima obtenida después de hacer clic en resolver.
Para problemas más grandes de flujo de costo mínimo, el método símplex de redes
proporciona un procedimiento de solución mucho más eficiente.
1. Todo flujo a través de una red conexa dirigida se origina en un nodo, llamado fuente, y
termina en otro nodo llamado destino.
3. Se permite el flujo a través de un arco solo en la dirección indicada por la flecha, donde la
cantidad máxima de flujo está dada por la capacidad del arco. En la fuente, todos los arcos
señalan hacia afuera. En el destino, todos señalan hacia el nodo.
Algunas aplicaciones:
A continuación se menciona algunos tipos de aplicaciones comunes del problema del flujo
máximo.
1. Maximizar el flujo a través de la red de distribución de una compañía desde sus fabricas
hasta sus clientes.
Sea
f = cantidad total de flujo que se lleva desde el nodo fuente al nodo destino.
Ejemplo:
s = nodo fuente
n = nodo destino
1, 2 = nodos intermedios
Objetivo:
Determinar el máximo flujo f que se puede enviar desde el nodo fuente s al nodo destino n,
teniendo en cuenta las capacidades kij sobre el flujo de cada arco (i,j) y que el flujo se debe
conservar.
Modelo de programación lineal:
Las ecuaciones (1.1) representan la conservación del flujo en los nodos. Mientras que las
restricciones (1.2) son sobre el flujo que circula por cada arco, para que no sea negativo y no
supere la capacidad del arco.
Veamos un método eficiente para resolver el problema del flujo máximo directamente sin
usar el método del simplex.
Conceptos previos:
Definición: Dado cualquier nodo i todos los arcos que salen del nodo i se denominan arcos
hacia delante con respecto al nodo i.
Definición: Dado cualquier nodo i todos los arcos que entran al nodo i se denominan arcos
hacia atrás para el nodo i.
Definición: Un corte que separa el nodo fuente del nodo destino es una partición de los
nodos de la red en dos subconjuntos S y S* tal que el nodo fuente está en S y el nodo destino
está en S*.
Un ejemplo de corte en el ejemplo anterior podría ser (S, S*) dado por S = {s,1,2}.
Definición:
A partir de los ejemplos anteriores de cortes se puede apreciar que si todos los arcos de un
corte se eliminan de la red entonces no existe un camino que una el nodo fuente con el
nodo destino, de aquí que el flujo de s a n no seria posible. En otras palabras, cualquier flujo
de s a n debe atravesar los arcos en el corte, y por consiguiente, el flujo f estará limitado por
la capacidad de ese corte. La relación entre flujos y cortes vendrá dada por el siguiente
lema:
Lema: Para cualquier red dirigida, si f es el flujo desde el nodo fuente al nodo destino, y (S,
S*) es un corte, entonces el valor de f es menor o igual que la capacidad de ese corte K(S,S *).
Como consecuencia de este lema se tiene que cualquier flujo compatible desde el nodo
fuente al nodo destino no puede exceder la capacidad de ningún corte. Por tanto, el flujo
máximo a través de la red está limitado por la capacidad del corte mínimo. El siguiente
teorema establece que siempre es posible encontrar el flujo de s a n igual a la capacidad del
corte mínimo.
Para cualquier red el flujo máximo desde el nodo fuente al nodo destino es igual a la
capacidad del corte mínimo.
A partir de este teorema el problema de encontrar el flujo máximo en una red se traduce en
encontrar las capacidades de todos los cortes y elegir la mínima capacidad. Por otra parte,
dado el valor máximo de f no se especifica como este flujo es distribuido a través de los
distintos arcos. Además este método es poco recomendable ya que el número de posibles
cortes que separan el nodo fuente del destino son 2n-2.
Definición: Dada una red G = (V,A) llamamos Red Residual o Incrementeal R(f), a aquella red
formada a partir de G, con el mismo conjunto de nodos que ésta, y dado cada arco dirigido
(i,j) ∈ A en la red original, que no tiene arco en la dirección opuesta (es decir, (j,i) ∉ A), tal
que 0 ≤ fij ≤ kij se consideran en la Red Incremental dos arcos (i,j) y (j,i) con capacidades r ij =
kij - fij y rji = fij , respectivamente. A dichas capacidades se las denomina capacidades
residuales o incrementales.
Al principio que no circula ningún flujo por los arcos de la red original, la red residual difiere
de la original en que para cada arco dirigido de la red original sin arco opuesto, ahora se le
añade su opuesto con capacidad nula.
Definición: Se denomina Camino Incremental a todo camino dirigido desde el nodo fuente al
nodo destino en la red incremental.
δ= 2
Definición: Un arco se dice saturado sí y solo sí fij = kij ó rij = 0 y kij > 0.
El algoritmo de flujo máximo consiste en encontrar un camino a través del cual se puede
enviar un flujo positivo desde el nodo fuente al nodo destino. Tal camino es a lo que
denominabamos camino incremental, y se usa para enviar tanto flujo como sea posible
desde s a n. El proceso se repite hasta que no se pueda encontrar ningún otro camino
incremental, que mejore el flujo total de s a n. En dicho caso, se ha encontrado el flujo
máximo.
Proceso de etiquetado:
Este proceso se usa para encontrar un camino incremental desde el nodo fuente al nodo
destino. Comenzando con el nodo fuente s, se dice que cualquier nodo j se puede etiquetar
si podemos enviar un flujo positivo desde s a j. En general, desde cualquier nodo i podemos
etiquetar el nodo j si se satisface una de las siguientes condiciones:
1.- El arco que conecta los nodos i y j es un arco hacia delante y el flujo en el arco (i,j) es
menor que su capacidad ( es decir, fij ≤ kij).
2.- El arco que conecta i y j es un arco hacia atrás y el flujo en el arco (j,i) es mayor que 0.
Se continúa el proceso de etiquetado hasta que el nodo destino sea etiquetado. Entonces se
ha conseguido un camino incremental.
El algoritmo se inicializa con un flujo nulo o cualquier flujo factible en todos los arcos, esto
es, satisfaciendo las restricciones de capacidad y conservación de los flujos en todos los
nodos. Para mejorar este flujo, se etiqueta inicialmente el nodo s y se aplica el proceso de
etiquetado para etiquetar los otros nodos hasta alcanzar el destino. Cuando esto ocurra
tendremos un camino incremental desde s a n a través del cual se puede enviar un flujo
positivo. A continuación, volvemos hacia atrás en el camino incremental con la ayuda de las
etiquetas de los nodos y calculamos el flujo máximo δ que puede ser enviado por el camino.
Entonces incrementamos el flujo en δ unidades en todos los arcos hacia delante en el
camino incremental y decrementamos el flujo en δ unidades en todos los arcos hacia atrás.
Repetimos el proceso de etiquetado para encontrar otro camino incremental desde s a n. El
algoritmo termina cuando no se pueda encontrar ningún otro camino incremental, lo que
nos conduce al máximo flujo posible de s a n.
ALGORITMO:
Paso 0:
rij = kij para todo arco en la red original y se añade su opuesto con r ji = 0.
Paso 1:
Se elige un j ∈ Γ(i) no marcado tal que rij > 0 para el arco (i,j) y se marca con Predj = i.
Si j = n, hacer f = f + δ, e ir al paso 3.
Paso 3:
Paso 4:
Ejemplo: Sea la siguiente red en la cual los números sobre los arcos representan las
capacidades.
Flujo máximo es igual a 15.
CPM
METODO DE LA RUTA CRITICA
Decidir el programa de fechas en el que deben iniciarse y terminarse una serie de tareas
para llevar a cabo un proyecto. Camino crítico (CPM).
Por ejemplo, queremos saber ¿Cuanto tiempo durará el proyecto?, ¿Cuándo se estará listo
para comenzar una tarea en particular?, si la tarea no es completada a tiempo, ¿El resto del
proyecto se retrasará?, ¿Qué tareas deben ser aceleradas (efectivo) de forma tal de
terminar el proyecto antes?
El objetivo suele ser llevar a cabo el proyecto en el menor tiempo posible. La ruta crítica
será la ruta de máxima duración
Procedimiento:
3. Resolver el problema
A. Elaborar una lista con todas las actividades del proyecto indicando para cada una de
ellas:
Las relaciones de precedencia entre actividades se realizan mediante arcos. Cada arco
(i, j) tiene asociado un coste que indica el tiempo de ejecución de la actividad i.
Cada vértice puede tener asociado un peso que representa la cantidad de recursos que
consume la actividad i.
EJEMPLO DE LA RUTA CRITICA
New Computer está a punto de lanzar una oferta de nuevos ordenadores. Cada ordenador
consta de dos partes, una pantalla y un pack formado por, la CPU, el teclado y el ratón.
Antes de producir cualquiera de las componentes es necesario conseguir los materiales y
formar a los trabajadores que deben realizar el montaje. El pack que incluye la CPU requiere
pasar por un control de calidad antes de ser embalado con la pantalla. La siguiente tabla
indica la duración de cada actividad y sus predecesores. Diseñar la red que permite describir
el proyecto.
C = Producción de 1 pantalla A, B 8
D = Producción de un Pack A, B 7
F = Embalado C, E 12
Para cada actividad i definimos: xi = instante en el que comienza i
Sa: xA ¸ xInicio
xB ¸ xInicio
xC ¸ xA + 6
xC ¸ xB + 9
xD ¸ xA + 6
xD ¸ xB + 9
xE ¸ xD + 7
xF ¸ xC + 8
xF ¸ xE + 10
xFinal ¸ xF + 12
http://www.fdi.ucm.es/profesor/rosa_ramos/Investigaci%C3%B3n%20Operativa%20(ITS)%20Curso
%202005-2006/2ndo.%20Parcial/Problemas%20de%20flujos.pdf