Modelos de Redes

Optimización de redes es un tipo especial de modelo en programación lineal. Los modelos de redes tienen tres ventajas importantes con respecto a la programación lineal.
 
  1. Pueden resolverse muy rápidamente. Problemas que con programación lineal tendrían 1000 filas y 30.000 columnas pueden ser resueltos en segundos. Esto permite que los modelos de redes sean usados en muchas aplicaciones (tal como la toma de decisión en tiempo real) para lo cual la programación lineal no es lo ideal.
  2.  Requieren en forma natural de soluciones enteras. Al reconocer que un problema puede formularse como algún modelo de red nos permitirá  resolver tipos especiales de problemas de programación entera aumentando la eficiencia y reduciendo el tiempo consumido por los algoritmos clásicos de programación lineal.
  3.  Son intuitivos. Los modelos de redes proveen un lenguaje para tratar los problemas, mucho más intuitivo que "variables, objetivo, restricciones".
Obviamente los modelos de redes no son capaces de cubrir la amplia gama de problemas que puede resolver la programación lineal. Sin embargo, ellos ocurren con suficiente frecuencia como para ser considerados como una herramienta importante para una real toma de decisiones.
 

Terminología

Una red o grafo consiste de puntos, y líneas que conectan pares de puntos. Los puntos se llaman nodos o vértices. Las líneas de llaman arcos. Los arcos pueden tener una dirección asociada, en cuyo caso se denominan arcos dirigidos. Si un arco no tiene dirección normalmente se le denomina rama. Si todos los arcos en la red son dirigidos, la red se denomina una red dirigida. Si todos los arcos son no-dirigidos, la red es una red no-dirigida.

Dos nodos pueden estar conectados por un conjutno de arcos. Una trayectoria (path en inglés) es una secuencia de arcos distintos (con nodos no repetidos) conectando a los nodos. Una trayectoria dirigida desde nodo i al nodo j es una sequencia de arcos, cada uno de los cuales apunta al nodo j (si es que hay dirección). Una trayectoria no dirigida puede incluir arcos dirigidos apuntando en cualquiera de dirección.

Una trayectoria que comienza y que termina en el mismo nodo se denomina ciclo y puede ser ya sea dirigida o no-dirigida.

Una red esta conectada si existe una trayectoria no-dirigida entre cualquier par de nodos. Una red conectada que no tiene ciclos se denomina árbol.
 

Ejemplos

Existen muchos ejemplos prácticos con flujo de redes. Estos son los más utilizados:



 

 Problema de Transporte

Considere el siguiente problema de limpieza de nieve: la ciudad está dividida en comunas. Después de una tormenta de nieve, se debe sacar la nieve y botarla en un lugar conveniente. En Helsinki (la ciudad del problema), esos lugares son grandes esplanadas con un sistema de secado artificial. Cada una de esos "destinos" tiene una capacidad. El objetivo es minimizar la distancia recorrida para transportar  la nieve.
Este problema es un ejemplo de un problema de transporte. En tales problemas, existe un conjunto de nodos llamados fuentes y un conjunto de nodos llamados destinos. Todos los arcos van desde el origen al destino. Existe un costo unitario (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.

 figure99 
Figura 1.4:Red de Transporte de Nieve

Un problema que corresponde al modelo de transporte puede ser el asignar clientes a un negocio para poder satisfacer las demandas. En tal caso los almacenes son las fuentes, los clientes son los destinos y los costos representan los costos de transporte por unidad.

Otro ejemplo sería:

Uno de los principales productos de la Compañía P&T son los duraznos en conserva. Los duraznos son preparados en 3 enlatadoras (Washington, Oregon y Minnesota) y luego se despachan en camiones para distribuirlos en tres supermercados en California, Utah, South Dakota, Nuevo México. Debido a que los costos de transporte han aumentado, la administración ha decidido hacer un estudio sobre ellos. Para la próxima estación se ha estimado el número de tarros de conserva generado en cada enlatadora, y la cantidad que requerirá cada almacén para satisfacer a sus clientes. Los costos de trasnporte desde la enlatadora a los almacenes se resume en la siguiente tabla.

 table110

veamos cuál sería el modelo de programación lineal para este problema. Sea tex2html_wrap_inline442  el número de camiones cargados que van desde la enlatadora i al almacén j, el problema sería:

tabular124

Este es un ejemplo de modelo de transporte. Este problema tiene una estructura interesante. Todos los coeficientes son 1 y cada variable aparece exactamente en 2 restricciones. Es esta estructura que hace que el algoritmo simplex sea extremadamente eficiente al resolverlo.

¿Qué define a un modelo de transporte?. 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.

En general, la fuente i tiene una capacidad para abastecer de tex2html_wrap_inline472 unidades, y el destino j tiene una demanda para tex2html_wrap_inline476 unidades. El costo de la distribución de los items desde la fuente al destino es proporcional al número de unidades. Esta información puede expresarse de una manera apropiada a través de una tabla como en el ejemplo.

Se supondrá de una manera general que la oferta es igual a la demanda total. Si esto no fuese verdad para un problema particular, se podrán crear fuentes o destinos dummy para que esta condición se cumpla. Esto se denomina problema de transporte balanceado. Estos centros dummy pueden tener costos de distribución cero.

Supongamos que la enlatadora 3 puede llenar sólo 75 camiones. Asi la cantidad "ofrecida" es ahora 25 unidades menor. Un nodo de oferta dummy se crea para balancear el problema, y el costo de la oferta dummy podría ser cero o representar el costo de NO-satisfacer la demanda.

El costo de transporte tiene varias propiedades interesantes:

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!.

En el ejemplo, una solución básica podría ser llenar 20 camiones desde la enlatadora 1 para enviarlos al negocio 2 y los 55 restantes al almacén 4, 80 desde la enlatadora 2 al almacén 1 y 45 al almacén 2. Finalmente 70 desde la enlatadora 3 al almacén 3 y 30 al almacén 4. La formulación de este problema de programación lineal tiene 7 restricciones además de la no-negatividad, y una solución básica tiene sólo 6 variables básicas. Esto se debe a que las restricciones son linealmente dependientes: La suma de las primeras tres restricciones es igual a la suma de la cuarta restricción. En consecuencia, la región factible definida por las restricciones será la misma si nosotros mantenemos sólo 6 de ellas.
En general, una solución básica de un problema de transporte tendrá un número de variables básicas igual al número de orígenes más el número de destinos menos uno.
 

exercise165

exercise169

Ver aqui el  Algoritmo de Transporte



 

 Problema de Asignación

Un caso especial del problema de transporte es el problema de asignación el cuál ocurre cuando cada oferta es 1 y cada demanda es 1. En este caso la integralidad implica que cada abastecedor será asignado sólo a un destino y cada destino tendrá sólo un abastecedor.
 

example176

Este es un problema de transporte con todos las ofertas y demandas iguales a 1, un problema de asignación.

Debe notar que un problema balanceado debe tener el mismo número de puntos de ofertas que de demandas, asi 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.
 

exercise188
 



 

Ruta más corta (Shortest Paths)

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?
 figure54
Figura 1.1: Red Telefónica

Este es un ejemplo de un tipo particular de modelo de red, denominado el problema de la ruta más corta. En tal problema, se tiene una red con costos sobre la ramas y dos nodos especiales: un nodo de inicio y un nodo de término. El objetivo es encontrar una trayectoria desde el nodo de inicio al nodo de término de tal forma que el peso total sea mínimo.

Aqui tenemos otro problema que a priori puede no parecer de la ruta más corta, pero realmente lo es:

En un pequeño pero creciente aeropuerto, la compañía aérea local está comprando un nuevo tractor para el tren transportador del equipaje hacia y desde las aeronaves. Un nuevo sistema mecanizado de transporte de equipaje será instalado en 3 años, por lo tanto el tractor no se necesitará después, Sin embargo, debido a que se le dará un uso fuerte y a que los costos de mantención son elevados, puede ser aún rentable económicamente reemplazar el tractor al cabo de 1 ó 2 años de uso. La siguiente tabla da el costo neto asociado con la compra de un tractor en el año i y su utilización en el año j (donde año 0 es ahora):

tabular67

El problema es determinar ¿Cuántas veces debería ser reemplazado el tractor (si es que se hace) para minimizar los costos totales de los tractores?.¿ Cómo puede formularse este problema como un modelo de la ruta más corta? 


 

Flujo Máximo

Otro tipo de modelo tiene un número en cada arco, pero ahora el número corresponde a la capacidad. Esto limita el flujo sobre el arco (es el máximo flujo por arco). Por ejemplo, en un sistema de distribución la capacidad podría estar limitada por la cantidad de material (digamos toneladas) que pueden ir sobre un canal de distribución dado. Podriamos entonces estar interesados en la capacidad de la red, para saber cuanto puede enviarse desde un nodo fuente a un nodo destino?. Usando la misma red anterior, tratando los números como capacidades, ¿cuánto puede enviarse desde LA hasta Boston?

 figure72
Figura 1.2: Red de Distribución

Asociado al flujo máximo está el "cuello de botella": un conjunto de arcos cuyas capacidades están  igualadas a su flujo máximo, y que al eliminarlas no existe una trayectoria de origen al destino en la red. Este es actualmente un resultado no-trivial el mostrar que el flujo máximo es igual al tamaño del mínimo cuello de botella. Es una tarea interesante el tratar de encontrar el cuello de botella en el ejemplo.

Los modelos del flujo máximo ocurren en aplicaciones donde el costo no está en juego, y el objetivo es maximizar el número de items manejados (en un sentido amplio). Aqui tenemos un problema similar que puede tratarse por el flujo máximo.
 

 exercise83

 figure87
Figura 1.3: Solución del ejercicio.