Beruflich Dokumente
Kultur Dokumente
OPTIMIZACIÓN
INVESTIGACIÓN DE OPERACIONES II
INTEGRANTES:
BIBLIOGRAFIA .................................................................... 26
INTRODUCCIÓN
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 de manera amplia 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, por mencionar sólo algunos
ejemplos. En realidad, una representación de redes proporciona un poderoso
apoyo visual y conceptual para mostrar las relaciones entre las componentes de
los sistemas, de tal modo que se usa casi en todos los ámbitos científicos,
sociales y económicos.
1
Ciclo: Trayectoria que comienza y termina en el mismo nodo.
Red conexa: Red en la que cada par de nodos está conectado.
Árbol: Red conexa (para algún subconjunto de n nodos) que no contiene ciclos no
dirigidos.
Árbol de expansión: Red conexa para los n nodos que contiene ciclos no
dirigidos.
Capacidad del arco: Cantidad máxima de flujo (quizá infinito) que puede circular
en un arco dirigido.
Nodo fuente: Nodo origen, tiene la propiedad de que el flujo que sale del nodo
excede el flujo que entra a él.
Nodo de demanda: Nodo de destino, donde el flujo que llega excede al que sale
de él.
Nodo de trasbordo: Intermedio, satisface la conservación del flujo, es decir, el
flujo que entra es igual al que sale.
2
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:
3
Por ejemplo, una red de distribución de una compañía tiene varias fábricas y
múltiples clientes. En este caso se recurre a una reformulación ingeniosa para
ajustar esta situación al problema de flujo máximo. Se trata de aumentar la red
original para que incluya un origen ficticio, un destino ficticio y algunos arcos
nuevos. El origen ficticio se maneja como el nodo que da origen a todo el flujo que
en realidad se origina en algunos otros nodos. En cada uno de estos otros nodos
se inserta un nuevo arco que va desde el origen ficticio hasta este nodo, donde la
capacidad del arco es igual al flujo máximo que se puede originar en este nodo.
De manera similar, el destino ficticio se trata como el nodo que absorbe todo el
flujo que, en realidad, termina en algún otro nodo. Por lo tanto, se coloca un nuevo
arco desde cada uno de los otros nodos hasta el destino ficticio con capacidad
igual al flujo máximo que en realidad termina en este nodo. Debido a estos
cambios, todos los nodos de la red original se convierten en nodos de trasbordo
para que la red aumentada tenga un solo origen (la fuente ficticia) y un solo
destino (el destino ficticio) y se ajuste al problema del flujo máximo.
4
PROBLEMA DE FLUJO DE COSTO MÍNIMO
El problema del flujo de costo mínimo tiene una posición central entre los modelos
de optimización de redes; primero, abarca una clase amplia de aplicaciones y,
segundo, su solución es muy eficiente.
Igual que el problema del flujo máximo, toma en cuenta un flujo en una red con
capacidades de arco limitadas. Igual que el problema de la ruta más corta,
considera un costo (o distancia) del flujo a través de un arco. Igual que el
problema de transporte o el de asignación del capítulo 8, puede manejar varios
orígenes (nodos fuente) y varios destinos (nodos demanda) del flujo, de nuevo con
costos asociados. En realidad, estos cuatro problemas son casos especiales del
problema del flujo de costo mínimo, como se demostrará en esta sección.
La razón por la que el problema del flujo de costo mínimo se puede resolver de
modo tan eficiente es que se puede formular como un problema de programación
lineal y es posible resolverlo con una versión simplificada del método símplex
llamada método símplex de redes. En la siguiente sección se describirá este
algoritmo.
7. El costo del flujo a través del arco es proporcional a la cantidad de ese flujo,
donde se conoce el costo por unidad.
5
ALGUNAS APLICACIONES
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. Como se
resume en el primer renglón de la tabla 9.3, 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
clientes.
En el caso de algunas aplicaciones de los problemas del flujo de costo mínimo,
todos los nodos de trasbordo son instalaciones de procesamiento y no almacenes.
Éste es el caso de la administración de desechos sólidos, indicado en el segundo
renglón de la tabla 9.3. En ese problema, el flujo de materiales a través de la red
comienza en las fuentes de desechos sólidos, luego va a las instalaciones para
procesar estos materiales de desecho y convertirlos en una forma adecuada para
el relleno y después se envía a los diferentes rellenos. Sin embargo, el objetivo
todavía es determinar el plan de flujo que minimice el costo total, donde el costo
ahora se refiere al embarque y al procesamiento.
En otras aplicaciones, los nodos demanda pueden ser instalaciones de
procesamiento. Por ejemplo, en el tercer renglón de la tabla 9.3, el objetivo es
encontrar el plan de costo mínimo para obtener suministros de varios proveedores
posibles, almacenar los bienes —según se requiera—, y luego enviar los
suministros a las instalaciones de procesamiento de la compañía (fábricas, etc.).
Como la cantidad total que pueden suministrar los proveedores es mayor que las
necesidades de la compañía, la red incluye un nodo de demanda ficticio que
recibe (sin costo) toda la capacidad no usada de los proveedores.
El siguiente tipo de aplicación de la tabla 9.3 —coordinación de mezclas de
productos en las plantas— ilustra que los arcos pueden representar algo distinto a
un canal de envío de un flujo físico de materiales. Esta aplicación se refiere a una
compañía con varias plantas (nodos fuente) que pueden producir los mismos
productos pero con diferentes costos. Cada arco que sale de un nodo fuente
representa la producción de uno de los productos posibles de esa planta, donde el
arco conduce a un nodo de trasbordo que corresponde al producto. En
consecuencia, este nodo de trasbordo tiene un arco que llega desde cada planta
capaz de producir este producto, y después los arcos que salen de este nodo van
a los respectivos clientes (nodos de demanda). El objetivo es determinar cómo
dividir la capacidad de producción de cada planta entre los productos para
minimizar el costo total de satisfacer las demandas de los distintos productos.
La última aplicación de la tabla 9.3 (administración de flujo de efectivo), ejemplifica
que diferentes nodos pueden representar un evento que ocurre en distintos
momentos. En este caso, cada nodo fuente representa un tiempo específico
(periodo) en que la compañía dispone de dinero (por madurez de inversiones,
cuentas por cobrar, venta de acciones, préstamos, etc.). El suministro de cada
nodo es la cantidad de efectivo que estará disponible. De manera similar, cada
nodo destino representa un tiempo específico (periodo) en que la compañía
deberá usar su reserva de efectivo.
6
La demanda de cada uno de estos nodos es la cantidad de efectivo que
necesitará. El objetivo es maximizar el ingreso de la compañía debido a estas
inversiones entre los tiempos en que se dispone de efectivo y se usa. En
consecuencia, los nodos de trasbordo representan la opción de una inversión a
corto plazo —es decir, la compra de certificados de depósito en un banco— por un
periodo específico. La red resultante tendrá una serie de flujos que representan un
programa de efectivo disponible, invertido y utilizado cuando la inversión madura.
Considere una red conexa dirigida en la que los n nodos incluyen al menos un
nodo origen y un nodo destino. Las variables de decisión son:
7
Si se usa 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
sujeta a
La primera suma de las restricciones de los nodos representa el flujo total que sale
del nodo i mientras que la segunda representa el flujo total que entra al nodo i; por
tanto, la diferencia es el flujo neto generado en este nodo.
En algunas aplicaciones es necesario tener una cota inferior Lij 0 para el flujo
que pasa porcada arco i → j. Cuando esto ocurre se hace una conversión de
variables, x´ij = xij - Lij, donde xij se sustituye por x´ij + Lij en todo el modelo, a fi n
de ajustarlo al formato anterior con restricciones de no negatividad.
Es decir, que el flujo total generado por los nodos origen es igual al flujo total
absorbido por los nodos 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 se tenga
8
en exceso— representan en realidad cotas superiores y no cantidades exactas. El
paso análogo es agregar 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 agregar un nodo origen ficticio para generar un flujo equivalente al
exceso de demanda —se agregan arcos con cij = 0 de este nodo a todos los
nodos de demanda—.
En muchas aplicaciones, las cantidades bi y uij tendrán valores enteros y la
solución requerirá que las cantidades de flujo xij también sean enteras. Por fortuna,
igual que para el problema de transporte, este tipo de solución está garantizada
sin tener que establecer restricciones enteras de manera explícita sobre las
variables. Esto se debe a la siguiente propiedad.
Propiedad de soluciones enteras: en el caso de los problemas de flujo de costo
mínimo en donde toda bi y uij tienen un valor entero, todas las variables de cada
solución básica factible (BF), incluida la óptima, tendrán también valores enteros.
9
PROBLEMA DE FLUJO DE COSTE MÍNIMO
el conjunto de vértices y
En el que,
Cada arco tiene asociada una variable xij ≥ 0 que indica el flujo enviado desde i
hasta j, y una cantidad cij que indica el coste de enviar una unidad desde i a j.
sea:
xij ≥ 0, ∀(i,j)
Hay situaciones en las que el flujo que puede pasar por cada arista esta´ limitado,
esto se traduce en cotas para las variables:
lij ≤ xij ≤ uij
10
ALGORITMO DEL ÁRBOL DE MÍNIMA EXPANSIÓN
Este árbol vincula los nodos de una red valiéndose de la longitud mínima total de
las ramas de conexión. Una aplicación común se presenta en la pavimentación de
carreteras que unen poblaciones, o de forma directa, o que pasan por otras
poblaciones. La solución del árbol de mínima expansión proporciona el diseño del
sistema de carreteras.
Ck
A = {(1, 2), (1, 5), (2, 3), (2, 4), (3, 4), (3, 5), (4, 3), (4, 6), (5, 2), (5, 6)}
N = {1, 2, 3, 4, 5, 6}
Paso 0. Establezca y
Ejemplo
11
Las iteraciones del algoritmo se resumen en la figura 6.7. Los arcos delgados
proporcionan todos los candidatos entre C y . Los arcos gruesos son los vínculos
permanentes del conjunto conectado C, y el arco de rayas es el nuevo vínculo
(permanente) agregado en cada iteración. Por ejemplo, en la iteración 1, la rama
(1, 2) es el vínculo más corto (5 1 milla) entre todas las ramas candidatas del nodo
1 a los nodos 2, 3, 4, 5 y 6 en el conjunto no conectado. De ahí que el vínculo (1,
2) se hace permanente y j* 5 2, de lo cual resulta.
12
MODELOS DE REDES DE PROGRAMACIÓN LINEAL
Ejemplos
Existen muchos ejemplos prácticos con flujo de redes. Estos son los más
utilizados:
• Problema de Transporte
• Problema de asignación
• Ruta más corta
Problema de Transporte
13
(por unidad) asociado a cada arco. Cada fuente tiene un concepto de
abastecimiento y cada destino maneja el concepto de demanda. Se asume que la
cantidad total a abastecer es exactamente igual a la cantidad demandada. Para el
problema de la nieve la red puede ser como se muestra en la figura 1.4.
En general el modelo de transporte tiene que ver con distribuir desde un grupo de
centros de abastecimiento, llamados fuentes a un grupo de centros de recepción
denominados destinos para minimizar el costo total.
14
Factibilidad. El problema tiene una solución factible del momento que la oferta
iguala a la demanda.
Integralidad. Si las ofertas y las demandas son enteras, cada solución básica
(incluyendo el óptimo) será entera. De esta manera no es necesario resolverlo por
programación lineal entera. Cabe hacer notar que no significa que cada destino
será abastecido por exactamente un origen.
Problema de asignación
Debe notar que un problema balanceado debe tener el mismo número de puntos
de ofertas que de demandas, así debemos agregar una máquina dummy
(correspondiente a una máquina artificial) y asignar un cero a los costos de
asignar la máquina dummy a una planta.
15
Ruta más corta
Considere una red telefónica. Cierto mensaje puede tomar una cierta cantidad de
tiempo sobre cada línea (debido a la congestión, retardo en los switching, etc).
Este tiempo puede variar considerablemente minuto a minuto y las compañías de
telecomunicaciones gastan muchísimo tiempo y dinero buscando la consecuencia
de los retardos en el sistema. Suponiendo un switcher centralizado que conoce
sus retardos, queda entonces el problema de rutear una llamada de tal forma de
minimizar los retardos. La figura 1.1. muestra el mayor retardo para cada
trayectoria desde LA hasta Boston. ¿Cómo poder determinar la trayectoria más
rápida?
PROBLEMA DE PERT
El método PERT (Program Evaluation and Review Technique –Técnica de
evaluación y revisión de programas) es un método que sirve para planificar
proyectos en los que hace falta coordinar un gran número de actividades.
Por ejemplo, supongamos que queremos hacer un viaje de fin de curso. El PERT
es una herramienta que nos permite planificar las diferentes actividades que son
necesarias para el éxito del viaje. Utilizaremos el PERT para encontrar respuesta
a una serie de preguntas, como
16
¿En qué orden?
Paso nº 1: Hacer una lista de las actividades que tienen que llevarse a cabo:
Tenemos que hacer una lista de todas las tareas que son necesarias para poder
llevar el proyecto a buen término. En este punto, no es necesario que las tareas
estén ordenadas cronológicamente. Simplemente se trata de hacer una lista de
tareas lo más completa posible. Es fundamental que no nos dejemos ninguna
tarea fuera.
En nuestro caso, queremos organizar un viaje de fin de curso y, por tanto, una
posible lista de tareas sería la siguiente:
Actividades
Actividad
precedentes
A -
B A
C A
D A
E B, C, D
F E
G F
H G
I H
J G
18
Nudo inicial:
Precedencias lineales:
Corresponden a los casos en los que hay una única actividad que precede y una
única actividad que procede. Por ejemplo:
E F
Precedencias de divergencia:
Corresponden a los casos en los que hay una actividad que precede y varias
actividades que proceden. En nuestro caso:
B
A
C
Precedencias de convergencia:
Corresponden a los casos en los que hay varias actividades que preceden y una
única actividad que procede.
B
C
E
19
Paso nº 3: Dibujar el grafo:
Un nudo sólo puede numerarse una vez que se han numerado todos los nudos
que le preceden (que tienen flechas que llegan hasta él)
Dos flechas que parten del mismo nudo no pueden tener el mismo nudo de
destino.
Esta última regla es la menos intuitiva. Puede suceder perfectamente que, para
pasar de una fase del proyecto a la siguiente, sean necesarias varias actividades
distintas. Por ejemplo, en nuestro proyecto, las actividades B, C y D son proceden
de A y preceden a E. En principio, esto se podría representar de la siguiente
forma:
B
A E
C
B B’
C
C ’
2 5 6
D
D
’
20
Hemos añadido 3 actividades “ficticias” (con los nombres B’, C’ y D’) y 3 nudos
intermedios simplemente para respetar el principio de designación unívoca.
Para construir el grafo completo, utilizamos estas reglas que acabamos de
describir y obtenemos el siguiente grafo:
3 10
B B’ H
I
A E F G
C C’ J
1 2 4 6 7 8 9 11
D D’
El grafo PERT se utiliza para calcular la duración del proyecto y para evaluar la
importancia de las diferentes tareas:
Tiempo "last" = tiempo máximo que podemos tardar en alcanzar un nudo sin que
el proyecto sufra un retraso.
Las duraciones previstas nos vienen dadas por las características de las diferentes
tareas: hay tareas que llevan más o menos tiempo. Por el contrario, los tiempos
early y last dependen de la relación entre las diferentes tareas, y podemos
calcularlos a través del grafo PERT. Por ejemplo, supongamos que las duraciones
previstas son las siguientes:
Duración
prevista
Actividad
(semanas)
A 4
B 4
C 8
D 1
E 3
F 7
G 3
H 6
I 10
J 2
21
A continuación incorporaríamos estos datos al grafo PERT, de la siguiente forma:
Para los tiempos early: empezamos por el nudo inicial, asignándole un tiempo
early = 0. A partir de este nudo, el tiempo early de cada nudo será igual al tiempo
early del nudo anterior + la duración de la actividad precedente. Si hay varios
nudos y actividades inmediatamente anteriores, se toma el máximo de los
“candidatos”.
Para los tiempos last: empezamos por el nudo final, asignándole un tiempo last
igual a su tiempo early. A partir de este nudo, el tiempo last de cada nudo será
igual al tiempo last del nudo posterior menos la duración de la actividad
procedente. Si hay varios nudos y actividades inmediatamente posteriores, se
toma el valor mínimo entre los “candidatos”.
22
PROBLEMA DEL AGENTE VIAJERO - TSP
El problema del agente viajero tiene una variación importante, y esta depende de
que las distancias entre un nodo y otro sean simétricas o no, es decir, que la
distancia entre A y B sea igual a la distancia entre B y A, puesto que en la práctica
es muy poco probable que así sea.
La cantidad de rutas posibles en una red está determinada por la ecuación:
(n-1)!
Es decir que en una red de 5 nodos la cantidad de rutas probables es igual a (5-1)!
= 24, y a medida que el número de nodos aumente la cantidad de rutas posibles
crece factorialmente. En el caso de que el problema sea simétrico la cantidad de
rutas posibles se reduce a la mitad, es decir:
( (n-1)! ) / 2
MÉTODOS DE SOLUCIÓN
23
MÉTODO DE FUERZA BRUTA
Posibles rutas
A - B - D - C - A = 9 + 15 + 4 + 7 = 35 km
A - B - C - D - A = 9 + 10 + 4 + 8 = 31 km
A - C - B - D - A = 7 + 10 + 15 + 8 = 40 km
Rutas simétricas
A - D - C - B - A = 8 + 4 + 10 + 9 = 31 km
A - C - D - B - A = 7 + 4 + 15 + 9 = 35 km
A - D - B - C - A = 8 + 15 + 10 +7 = 40 km
En la siguiente iteración habrá que considerar los vecinos más cercanos al nodo C
(se excluye A por ser el nodo de origen):
25
BIBLIOGRAFIA
26