M ODELOS DE T RANSPORTE E LISA S CHAEFFER Programa de Posgrado en Ingenierı́a de Sistemas (P ISIS ) elisa@yalma.fime.uanl.mx I NVESTIGACI ÓN DE O PERACIONES S UMINISTRO Y DEMANDA Utilizamos redes y flujos para modelar problemas de suministro y demanda. Contamos con dos tipos de vértices: 1. vértices de suministro (plantas, fábricas, proveedores) 2. vértices de demanda (clientes, consumidores) Objetivo: encontrar un flujo con origen en los vértices de suministro y destino en los los vértices de demanda sujeto a unas restricciones. ¿R ESTRICCIONES ? Tı́picamente aplican varias restricciones al transporte de las mercancı́as a través de la red: capacidad de transporte por conexión lı́mites en el número de conexiones activas capacidad máximo de producción de los vértices de suministro demanda de los clientes F LUJOS Y PL Este tipo de problemas corresponden a programas lineales con estructura especial. Las variables corresponden a la cantidad de flujo por arista y las restricciones aseguren realismo del modelo: imponer las capacidades conservar del flujo Existe una variación especializada de Simplex (Network Simplex Algorithm) para resolver eficientemente estes problemas. A RISTAS Proveedores producen ciertas cantidades de (diferentes tipos de) productos. Los clientes consumen toda la producción. Las aristas sirven como “conductos”. Cada arista puede tener definidos los datos siguientes: dirección (se diferencia entre el vértice de salida y el vértice de entrada) una capacidad no negativa máxima (y/o mı́nima) de cuántas unidades pueden pasar por la arista, y un costo no negativo por unidad de utilizar la arista. Si se permite varios tipos de productos, la capacidad puede ser total o definido por tipo de producto. Igualmente el costo puede depender del tipo. V ÉRTICES Los vértices de suministro tienen capacidades negativas. Una capacidad −k significa que el proveedor produce k unidades. Los vértices de demanda tienen capacidades no negativas. Una capacidad k significa que el cliente consume k unidades. Además puede haber vértices de transbordo que no tienen capacidad, sino que solamente sirven como conexiones entre diferentes aristas (o sea, hacen un transbordo). ¿V ÉRTICES DE TRANSBORDO ? Sin vértices de transbordo, el grafo de entrada G = (V, E) serı́a bipartito y las rutas de entrega serı́an todas distintas. Se llama problema de transporte. Cuando vértices de transbordo están presentes, productos de diferentes proveedores pueden compartir una arista en su camino a los clientes. E JEMPLO : TRANSPORTE VS . TRANSBORDO Transporte Transbordo En un problema de transporte, la entrega es directa. En problemas de transbordo, las rutas con más complejas. L A CONDICI ÓN DE CONTINUIDAD Vértice de suministro: capacidad negativo Vértice de demanda: capacidad no-negativo Vértice de transbordo: capacidad cero Flujo por cualquier arista: cero o positivo La suma de flujos entrantes a un vértice v menos la suma de los flujos salientes del mismo vértice v debe ser igual a la capacidad del vértice. P ROBLEMA DE OPTIMIZACI ÓN ¿Cuál es el flujo de transporte de cada arista con el cual se puede transportar el material producido desde los vértices de suministro a los vértices de demanda, sin violar las restricciones de capacidad y continuidad ası́ que se minimiza el costo total? A PLICACIONES logı́stica: transporte de mercancı́as flujo de gases y lı́quidos por tuberı́as/cloacas corriente de electricidad lineas de producción/montaje paquetes de datos en redes de comunicaciones tráfico por carreteras o via ferrocarril ¿C ÓMO RESOLVER ? Con algoritmos para flujos en redes añadiendo un fuente universal “antes” de todos los vértices de suministro y un suministro universal “después” de todos los vértices de demanda (si hay vértices de transbordo, no les pasa nada). Las capacidades de las aristas creadas serán los valores absolutos de las capacidades de los vértices de suministro/demanda incidentes (hay solamente uno por arista). (Se utiliza una construcción muy parecida para resolver problemas de acoplamiento con flujos.) P ROBLEMA DE TRANSBORDO COMO UN PL Etiquetar todos los vértices: V = {v1 , . . . , vn } xij = flujo por la arista (vi , vj ) 0 < cij = capacidad de la arista (vi , vj ) ci = capacidad del vértice vi 0 < wij = costo por unidad de la arista (vi , vj ) E L PROGRAMA QUE RESULTA xij ≥ 0 Para cada arista: xij ≤ cij Para cada vi ∈ V : X xji − x xik = ci (vi ,vk ) (vj ,vi ) mı́n X X (vi ,vj )∈E wij xij A CONTINUACI ÓN ... Ejemplos de flujos y problemas de transporte y transbordo.