El problema del transporte ( el problema de Monge-Kantorovich ) es un problema matemático de programación lineal de un tipo especial. [1] [2] Puede ser visto como un problema del plan óptimo para el transporte de mercancías desde los puntos de partida hasta los puntos de consumo, con costos de transporte mínimos.
De acuerdo con la teoría de la complejidad computacional, el problema de transporte está incluido en la clase de complejidad P. Cuando el volumen total de ofertas (bienes disponibles en los puntos de partida) no es igual al volumen total de demanda de bienes (bienes) solicitados por los puntos de consumo, el problema del transporte se denomina desequilibrado ( abierto ).
El problema del transporte (clásico) es el problema del plan óptimo para transportar un producto homogéneo desde puntos homogéneos de disponibilidad a puntos homogéneos de consumo en vehículos homogéneos (cantidad predeterminada) con datos estáticos y un enfoque lineal (estas son las principales condiciones del problema).
Para la tarea de transporte clásica se distinguen dos tipos de tareas: el criterio de costo (lograr un mínimo de costos de transporte) o distancias y el criterio de tiempo (se dedica el mínimo tiempo al transporte). Bajo el nombre de problema de transporte se define una amplia gama de problemas con un solo modelo matemático, estos problemas están relacionados con problemas de programación lineal y pueden ser resueltos por el método óptimo. Sin embargo, un método especial para resolver un problema de transporte puede simplificar significativamente su solución, ya que el problema de transporte se desarrolló para minimizar el costo de transporte.
La carga homogénea se concentra en los proveedores en volúmenes . Esta carga debe ser entregada a los consumidores en volúmenes . - el costo de transportar bienes desde el proveedor hasta el consumidor . Se requiere elaborar un plan de transporte que le permita exportar completamente los productos de todos los fabricantes, satisfaga completamente las necesidades de todos los consumidores y otorgue un mínimo de costos totales de transporte. Denotar como el volumen de transporte desde el proveedor hasta el consumidor . [3]
, ,El problema fue formalizado por primera vez por el matemático francés Gaspard Monge en 1781 [4] . El matemático y economista soviético Leonid Kantorovich [5] logró avances en la solución del problema durante la Gran Guerra Patriótica . Por lo tanto, a veces este problema se denomina problema de transporte de Monge-Kantorovich .
El problema de transporte clásico puede resolverse por el método símplex , pero debido a una serie de características puede resolverse de forma más sencilla (para problemas de baja dimensión).
Las condiciones del problema se colocan en la tabla, ingresando en las celdas la cantidad de carga transportada de a carga , y en celdas pequeñas, las tarifas correspondientes .
Se requiere determinar el plan básico y, a través de operaciones sucesivas, encontrar la solución óptima. El plan de referencia se puede encontrar mediante los siguientes métodos: "esquina noroeste" , "elemento mínimo" , doble preferencia y aproximación de Vogel .
Método de esquina noroeste (diagonal o mejorado)En cada etapa, la celda superior izquierda del resto de la tabla se llena con el máximo número posible. Llenar de tal manera que la carga se elimine por completo o la necesidad quede completamente satisfecha .
Método de elementos mínimosUna forma de resolver el problema es el método del elemento mínimo (más pequeño) . Su esencia radica en minimizar la redistribución lateral de bienes entre los consumidores.
Algoritmo:
Después de encontrar el plan de transporte básico, debe aplicar uno de los algoritmos para su mejora, acercándose al óptimo.
Consideramos un gráfico bipartito en el que los puntos de producción están en la parte superior y los puntos de consumo en la parte inferior. Los puntos de producción y consumo están conectados en pares por bordes de rendimiento infinito y precio por unidad de flujo .
La fuente está unida artificialmente al lóbulo superior . La capacidad de los bordes desde la fuente hasta cada punto de producción es igual al stock de producto en ese punto. El costo por unidad de flujo de estos bordes es 0.
Del mismo modo, se une al drenaje del lóbulo inferior . El rendimiento de las costillas desde cada punto de consumo hasta el fregadero es igual a la demanda del producto en ese punto. El costo por unidad de flujo para estos bordes también es 0.
A continuación, se resuelve el problema de encontrar el flujo máximo del costo mínimo ( mincost maxflow ). Su solución es similar a encontrar el caudal máximo en el algoritmo de Ford-Fulkerson . Sólo en lugar del flujo complementario más corto, se busca el más barato. En consecuencia, esta subtarea no utiliza la búsqueda en amplitud , sino el algoritmo Bellman-Ford . Cuando se devuelve un flujo , el costo se considera negativo.
El algoritmo "mincost maxflow" se puede ejecutar de inmediato, sin encontrar una línea de base. Pero en este caso, el proceso de decisión será algo más largo. La ejecución del algoritmo “mincost maxflow” tiene lugar en no más que operaciones. ( es el número de aristas, es el número de vértices). Con datos seleccionados al azar, generalmente se requiere mucho menos: el orden de las operaciones.
Al resolver un problema de transporte desequilibrado, se utiliza una técnica para equilibrarlo. Para ello, introduce destinos o salidas ficticias. La implementación del problema de equilibrio del transporte es necesaria para poder aplicar el algoritmo de solución basado en el uso de tablas de transporte.
En esta variante, los puntos no se dividen en puntos de partida y puntos de consumo, todos los puntos son iguales, pero la producción viene dada por un número positivo y el consumo por uno negativo. El transporte se lleva a cabo en una red determinada, en la que los arcos pueden conectar cualquier punto, incluidos productor-productor, consumidor-consumidor.
El problema se resuelve mediante un método de potenciales ligeramente modificado , prácticamente igual que el ajuste clásico.
Una variante del problema de transporte en una configuración de red, en la que se especifica el rendimiento máximo de algunos arcos.
El problema se resuelve mediante un método de potenciales un poco complicado .
Una variante de una tarea de transporte en la que hay varios productos (los puntos pueden producir/consumir varios productos). Para algunos arcos, se establece un límite de rendimiento (sin este límite, la tarea se divide en tareas separadas por producto).
El problema se resuelve por el método simplex (se usa la expansión de Danzig- Wulf, los problemas de transporte de un solo producto se usan como subtareas).