Planificación de Transporte Eficiente usando R: Resolviendo Problemas de Transporte con Programación Lineal

May 04 2023
El problema del transporte es un problema de optimización bien conocido en el campo de la investigación de operaciones. Implica determinar la forma óptima de transportar bienes desde las fuentes (como fábricas, almacenes, etc.)
Imagen generada usando gencraft.com

El problema del transporte es un problema de optimización bien conocido en el campo de la investigación de operaciones. Implica determinar la forma óptima de transportar mercancías desde los orígenes (como fábricas, almacenes, etc.) hasta los destinos (como tiendas minoristas, clientes, etc.) al mismo tiempo que se minimiza el costo total de transporte. El problema surge en muchas aplicaciones prácticas, como la gestión de la cadena de suministro, la logística y la planificación de la distribución.

El problema de transporte se puede representar como un modelo de programación lineal (LP), donde el objetivo es minimizar el costo total de transporte sujeto a restricciones de oferta y demanda. El modelo LP se puede resolver utilizando varios métodos, incluido el algoritmo simplex, el método del punto interior y los algoritmos de flujo de red.

El problema del transporte tiene varias variantes, como el problema del transporte desequilibrado, donde la oferta total no es igual a la demanda total, y el problema del transporte capacitado, donde la capacidad de la red de transporte es limitada. El problema también se puede extender para incluir otros factores, como ventanas de tiempo, múltiples productos y múltiples modos de transporte.

En este artículo, discutiremos los conceptos básicos del problema del transporte, su formulación PL y varios métodos de solución. También exploraremos algunos ejemplos y aplicaciones del mundo real del problema del transporte y sus variaciones.

Considere un escenario donde hay 6 consumidores y 4 proveedores de un bien ubicados en diferentes lugares. El costo de transporte entre cada proveedor y consumidor está representado por una matriz.

lpSolvees un paquete de R que proporciona un conjunto de funciones para resolver problemas de programación lineal y de enteros mixtos, incluido el problema de transporte. El paquete permite a los usuarios especificar las restricciones del problema, la función objetivo y otros parámetros de optimización, y luego obtener la solución óptima utilizando el solucionador LP.

Descripción del código:

  • row.signs <- rep("<=", 4): Esta línea establece los signos de desigualdad/igualdad para las restricciones del proveedor como "menor o igual que" ya que es un problema de minimización. La función rep()se utiliza para repetir el mismo signo para los 4 proveedores.
  • row.rhs <- c(1560, 3500, 5000, 2500): Esta línea establece los coeficientes del lado derecho para las restricciones del proveedor. Estos valores representan las capacidades máximas de cada proveedor para suministrar el producto.
  • col.signs <- rep(">=", 6): Esta línea establece los signos de desigualdad/igualdad para las restricciones del consumidor como "mayor que o igual a" ya que es un problema de minimización. La función rep()se utiliza para repetir el mismo signo para los 6 consumidores.
  • col.rhs <- c(2000, 4000, 1500, 2000, 1000, 2060): Esta línea establece los coeficientes del lado derecho para las restricciones del consumidor. Estos valores representan las demandas mínimas de cada consumidor por el bien.
  • lp.transport(costs, "min", row.signs, row.rhs, col.signs, col.rhs): Esta línea calcula la solución óptima al problema de transporte llamando a la lp.transport()función y pasando la matriz de costos y la información de restricción.
  • lp.transport(costs, "min", row.signs, row.rhs, col.signs, col.rhs)$solution: esta línea extrae los valores finales de las variables de decisión (es decir, las cantidades de la mercancía transportada de cada proveedor a cada consumidor) del objeto de solución devuelto por lp.transport().

Gracias por leer, sígueme para más