Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)

Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)

En este artículo te contamos cómo resolvimos el problema de la falta de celdas libres en un almacén y el desarrollo de un algoritmo de optimización discreto para solucionar dicho problema. Hablemos de cómo "construimos" el modelo matemático del problema de optimización y de las dificultades que encontramos inesperadamente al procesar los datos de entrada para el algoritmo.

Si está interesado en las aplicaciones de las matemáticas en los negocios y no le temen las rígidas transformaciones de identidad de las fórmulas en el nivel de quinto grado, ¡bienvenido al gato!

El artículo será útil para quienes implementen. Almacenaje-sistemas, trabajos en la industria de logística de producción o almacén, así como programadores interesados ​​en aplicaciones de las matemáticas en los negocios y optimización de procesos en una empresa.

Parte introductoria

Esta publicación continúa la serie de artículos en los que compartimos nuestra exitosa experiencia en la implementación de algoritmos de optimización en procesos de almacén.

В artículo anterior describe los detalles del almacén donde implementamos Almacenaje-sistema, y ​​también explica por qué necesitábamos resolver el problema de agrupar lotes de productos restantes durante la implementación Almacenaje-sistemas, y cómo lo hicimos.

Cuando terminamos de escribir el artículo sobre algoritmos de optimización, resultó ser muy extenso, por lo que decidimos dividir el material acumulado en 2 partes:

  • En la primera parte (este artículo) hablaremos de cómo “construimos” el modelo matemático del problema y de las grandes dificultades que encontramos inesperadamente al procesar y transformar los datos de entrada para el algoritmo.
  • En la segunda parte consideraremos en detalle la implementación del algoritmo en el lenguaje. C + +, realizaremos un experimento computacional y resumiremos la experiencia que adquirimos durante la implementación de dichas "tecnologías inteligentes" en los procesos comerciales del cliente.

Cómo leer un artículo. Si leyó el artículo anterior, puede ir inmediatamente al capítulo "Resumen de las soluciones existentes", si no, la descripción del problema que se está resolviendo se encuentra en el spoiler a continuación.

Descripción del problema que se está resolviendo en el almacén del cliente.

Cuello de botella en los procesos

En 2018, completamos un proyecto para implementar Almacenaje-sistemas en el almacén “Trading House “LD” en Chelyabinsk. Implementamos el producto “1C-Logistics: Warehouse Management 3” para 20 lugares de trabajo: operadores Almacenaje, tenderos, conductores de montacargas. El almacén medio tiene una superficie de unos 4 mil m2, el número de celdas es de 5000 y el número de referencias es de 4500. En el almacén se almacenan válvulas de bola de producción propia de varios tamaños, desde 1 kg hasta 400 kg. El inventario en el almacén se almacena en lotes, ya que es necesario seleccionar mercancías según FIFO.

Durante el diseño de esquemas de automatización de procesos de almacén, nos enfrentamos al problema existente de almacenamiento de inventario no óptimo. Las particularidades del almacenamiento y la colocación de grúas son tales que en una celda unitaria de almacenamiento sólo pueden contener artículos de un lote (ver Fig. 1). Los productos llegan al almacén diariamente y cada llegada es un lote separado. En total, como resultado de 1 mes de funcionamiento del almacén, se crean 30 lotes separados, a pesar de que cada uno debe almacenarse en una celda separada. Los productos a menudo se seleccionan no en paletas enteras, sino en piezas, y como resultado, en la zona de selección de piezas en muchas celdas se observa la siguiente imagen: en una celda con un volumen de más de 1 m3 hay varias piezas de grúas que Ocupan menos del 5-10% del volumen celular.

Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)
Fig 1. Foto de varias piezas en una celda.

Está claro que la capacidad de almacenamiento no se está utilizando de forma óptima. Para imaginar la magnitud del desastre, puedo dar cifras: en promedio, hay de 1 a 3 celdas de este tipo con un volumen de más de 100 m300 con saldos "minúsculos" durante los diferentes períodos de funcionamiento del almacén. Dado que el almacén es relativamente pequeño, durante las temporadas de mayor actividad del almacén, este factor se convierte en un "cuello de botella" y ralentiza en gran medida los procesos de aceptación y envío del almacén.

idea de solución de problema

Surgió una idea: los lotes de sobras con las fechas más cercanas deberían reducirse a un solo lote, y los sobrantes con un lote unificado deberían colocarse de forma compacta en una celda, o en varias, si no hay suficiente espacio en una para acomodar las cantidad total de sobras. En la Figura 2 se muestra un ejemplo de dicha “compresión”.

Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)
Figura 2. Esquema para comprimir residuos en células.

Esto le permite reducir significativamente el espacio ocupado del almacén que se utilizará para colocar nuevas mercancías. En una situación en la que la capacidad del almacén está sobrecargada, esta medida es extremadamente necesaria; de lo contrario, es posible que simplemente no haya suficiente espacio libre para acomodar mercancías nuevas, lo que provocará una parada en los procesos de colocación y reposición del almacén y, como consecuencia, a detener la aceptación y el envío. Anteriormente, antes de la implementación del sistema WMS, esta operación se realizaba manualmente, lo que resultaba ineficaz, ya que el proceso de búsqueda de saldos adecuados en las celdas era bastante largo. Ahora, con la introducción de un sistema WMS, decidimos automatizar el proceso, acelerarlo y hacerlo inteligente.

El proceso de resolución de dicho problema se divide en 2 etapas:

  • en la primera etapa encontramos grupos de lotes cercanos en fecha de compresión (dedicados a esta tarea artículo anterior);
  • en la segunda etapa, para cada grupo de lotes calculamos la ubicación más compacta de los productos restantes en las celdas.

En el artículo actual nos centraremos en la segunda etapa del algoritmo.

Revisión de soluciones existentes.

Antes de pasar a la descripción de los algoritmos que hemos desarrollado, conviene hacer un breve repaso de los sistemas ya existentes en el mercado. Almacenaje, que implementan una funcionalidad de compresión óptima similar.

En primer lugar, cabe destacar el producto “1C: Enterprise 8. WMS Logistics. Gestión de almacén 4", propiedad de 1C y replicada por ella y que pertenece a la cuarta generación. Almacenaje-sistemas desarrollados por AXELOT. Este sistema afirma tener funcionalidad de compresión, que está diseñada para unir restos de productos dispares en una celda común. Vale la pena mencionar que la funcionalidad de compresión en dicho sistema también incluye otras posibilidades, por ejemplo, corregir la ubicación de mercancías en celdas según sus clases ABC, pero no nos detendremos en ellas.

Si analizamos el código del sistema 1C: Enterprise 8. WMS Logistics. Gestión de almacén 4" (que está abierta en esta parte de la funcionalidad), podemos concluir lo siguiente. El algoritmo de compresión residual implementa una lógica lineal bastante primitiva y no se puede hablar de ninguna compresión "óptima". Naturalmente, no prevé la agrupación de partidos. Varios clientes que implementaron un sistema de este tipo se quejaron de los resultados de la planificación de la compresión. Por ejemplo, en la práctica a menudo se producía la siguiente situación durante la compresión: 100 uds. Está previsto trasladar los bienes restantes de una celda a otra celda, donde se encuentra 1 pieza. bienes, aunque lo óptimo desde el punto de vista del consumo de tiempo es hacer lo contrario.

Además, en muchos países extranjeros se declara la funcionalidad de comprimir los productos restantes en celdas. Almacenaje-sistemas, pero, desafortunadamente, no tenemos información real sobre la efectividad de los algoritmos (esto es un secreto comercial), y mucho menos una idea sobre la profundidad de su lógica (software propietario de código cerrado), por lo que no podemos juzgar.

Buscar un modelo matemático del problema.

Para diseñar algoritmos de alta calidad para resolver un problema, primero es necesario formular claramente este problema matemáticamente, que es lo que haremos.

hay muchas celulas Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1), que contienen restos de algunos bienes. En lo que sigue, llamaremos a estas células células donantes. denotemos Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) volumen de mercancías en la celda Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)$.

Es importante decir que solo un producto de un lote, o varios lotes previamente combinados en un grupo (léase: Artículo anterior), lo que se debe a las particularidades del almacenamiento y almacenamiento de mercancías. Diferentes productos o diferentes grupos de lotes deben ejecutar su propio procedimiento de compresión por separado.

hay muchas celulas Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1), en el que potencialmente se pueden colocar residuos de células de donantes. A estas células las llamaremos además células contenedoras. Pueden ser células libres en el almacén o células donadas de una variedad de Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1). siempre mucho Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) es un subconjunto Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1).

Para cada celda Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) desde muchos Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) Se han establecido restricciones de capacidad Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1), medido en dm3. Un dm3 es un cubo de 10 cm de lado, los productos almacenados en el almacén son bastante grandes, por lo que en este caso dicha discretización es suficiente.

Dada una matriz de distancias más cortas Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) en metros entre cada par de celdas Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)Donde Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) и Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) pertenecen a conjuntos Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) и Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) respectivamente.

denotemos Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) “Costos” de mover bienes desde la celda.Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) en una celda Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1). denotemos Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) “Costos” de elegir un contenedor. Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) para mover residuos de otras células hacia él. Cómo exactamente y en qué unidades de medida se calcularán los valores Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) и Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) Lo consideraremos más a fondo (consulte la sección sobre preparación de datos de entrada), por ahora basta con decir que dichos valores serán directamente proporcionales a los valores. Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) и Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) respectivamente.

Denotamos por Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) una variable que toma el valor 1 si el resto es de la celda Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) movido al contenedor Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)y 0 en caso contrario. Denotemos por Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) una variable que toma el valor 1 si el contenedor Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) contiene los bienes restantes y 0 en caso contrario.

La tarea se expresa de la siguiente manera.: necesitas encontrar tantos contenedores Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) y así "unir" las células del donante a las células del contenedor para minimizar la función

Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)

bajo restricciones

Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)

En total, al calcular la solución al problema, nos esforzamos por:

  • en primer lugar, ahorrar capacidad de almacenamiento;
  • en segundo lugar, ahorrar tiempo a los tenderos.

La última restricción significa que no podemos mover mercancías a un contenedor que no elegimos y, por lo tanto, no “incurrimos en costos” por elegirlo. Esta restricción también significa que el volumen de mercancías trasladadas desde las celdas al contenedor no debe exceder la capacidad del contenedor. Al resolver un problema nos referimos a un conjunto de contenedores. Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) y métodos para unir células de donantes a contenedores.

Esta formulación del problema de optimización no es nueva y ha sido estudiada por muchos matemáticos desde principios de los años 80 del siglo pasado. En la literatura extranjera existen 2 problemas de optimización con un modelo matemático adecuado: Problema de ubicación de instalaciones capacitadas de fuente única и Problema de ubicación de instalaciones capacitadas de múltiples fuentes (hablaremos de las diferencias en las tareas más adelante). Vale la pena decir que en la literatura matemática, la formulación de estos dos problemas de optimización se formula en términos de la ubicación de las empresas en el terreno, de ahí el nombre "Ubicación de las instalaciones". En su mayor parte, se trata de un homenaje a la tradición, ya que por primera vez la necesidad de resolver este tipo de problemas combinatorios surgió del campo de la logística, principalmente del sector militar-industrial en los años 50 del siglo pasado. En términos de ubicación de la empresa, dichas tareas se formulan de la siguiente manera:

  • Hay un número finito de ciudades donde es potencialmente posible ubicar empresas manufactureras (en adelante, ciudades manufactureras). Para cada ciudad manufacturera, se especifican los costos de abrir una empresa en ella, así como una limitación en la capacidad de producción de la empresa abierta en ella.
  • Existe un conjunto finito de ciudades donde realmente se encuentran los clientes (en adelante, ciudades clientes). Para cada una de estas ciudades clientes, se especifica el volumen de demanda de productos. Para simplificar, supondremos que sólo hay un producto producido por las empresas y consumido por los clientes.
  • Para cada par de ciudad-fabricante y ciudad-cliente, se especifica el valor de los costos de transporte para entregar el volumen requerido de productos del fabricante al cliente.

Necesita encontrar en qué ciudades abrir negocios y cómo vincular clientes a dichos negocios para:

  • Los costos totales de apertura de empresas y los costos de transporte fueron mínimos;
  • El volumen de demanda de los clientes asignados a cualquier empresa abierta no excedía la capacidad de producción de esa empresa.

Ahora vale la pena mencionar la única diferencia entre estos dos problemas clásicos:

  • Problema de ubicación de instalaciones capacitadas de fuente única: el cliente recibe suministro desde una sola instalación abierta;
  • Problema de ubicación de instalaciones capacitadas de múltiples fuentes: el cliente puede recibir suministro desde varias instalaciones abiertas al mismo tiempo.

Esta diferencia entre los dos problemas es insignificante a primera vista, pero, de hecho, conduce a una estructura combinatoria completamente diferente de tales problemas y, como consecuencia, a algoritmos completamente diferentes para resolverlos. Las diferencias entre las tareas se demuestran en la siguiente figura.

Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)
Fig. 3. a) Problema de ubicación de instalaciones capacitadas de múltiples fuentes

Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)
Fig. 3. b) Problema de ubicación de instalaciones capacitadas de fuente única

Ambas tareas Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)-difícil, es decir, no existe un algoritmo exacto que resuelva tal problema en un polinomio de tiempo en el tamaño de los datos de entrada. En palabras más simples, todos los algoritmos exactos para resolver un problema funcionarán en un tiempo exponencial, aunque quizás más rápido que una búsqueda completa de opciones. Desde la tarea Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)-difícil, entonces consideraremos solo heurísticas aproximadas, es decir, algoritmos que calcularán consistentemente soluciones muy cercanas a las óptimas y funcionarán con bastante rapidez. Si está interesado en una tarea de este tipo, puede encontrar una buena descripción general en ruso aquí.

Si pasamos a la terminología de nuestro problema de compresión óptima de bienes en celdas, entonces:

  • Las ciudades clientes son células donantes. Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) con los bienes restantes,
  • ciudades manufactureras – células de contenedores Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1), en el que se supone que se depositarán los restos de otras celdas,
  • costos de transporte - costos de tiempo Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) tendero para mover el volumen de mercancías de la célula donante Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) en una celda contenedora Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1);
  • costos de abrir un negocio - costos de elegir un contenedor Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1), igual al volumen de la celda contenedora Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1), multiplicado por un determinado coeficiente para ahorrar volúmenes libres (el valor del coeficiente es siempre > 1) (consulte la sección de preparación de datos de entrada).

Una vez establecida la analogía con las conocidas soluciones clásicas del problema, es necesario responder a una pregunta importante de la que depende la elección de la arquitectura del algoritmo de solución: mover los restos de la célula donante sólo es posible a una y solo un contenedor (fuente única), o ¿es posible mover los restos a varias celdas de contenedor (fuente múltiple)?

Vale la pena señalar que en la práctica se dan ambas formulaciones del problema. A continuación presentamos todos los pros y los contras de cada una de estas configuraciones:

Variante del problema Ventajas de la opción Contras de la opción
Única fuente Operaciones de movimiento de mercancías calculadas utilizando esta variante del problema:

  • requieren menos control por parte del almacenista (tomó TODO de una celda, puso TODO en otra celda del contenedor), lo que elimina los riesgos de: errores al recalcular la cantidad de mercancías al realizar operaciones de “Poner en celda”; errores al ingresar la cantidad recalculada en el TSD;
  • No se requiere tiempo para volver a calcular la cantidad de mercancías al realizar operaciones de "Poner en celda" e ingresarlas en el TSD
Múltiples fuentes Las compresiones calculadas con esta versión del problema suelen ser entre un 10 y un 15 % más compactas en comparación con las compresiones calculadas con la opción "Fuente única". Pero también observamos que cuanto menor es el número de residuos en las células del donante, menor es la diferencia en la compacidad. Operaciones de movimiento de mercancías calculadas utilizando esta variante del problema:

  • requieren un mayor control por parte del almacenista (es necesario recalcular la cantidad de mercancías movidas en cada una de las celdas de contenedores planificadas), lo que elimina el riesgo de errores al recalcular la cantidad de mercancías y al ingresar datos en el TSD al realizar " Operaciones de “poner en celda”
  • Se necesita tiempo para volver a calcular la cantidad de productos al realizar operaciones de "Poner en celda"
  • Se necesita tiempo para los “gastos generales” (detenerse, ir al palet, escanear el código de barras de la celda del contenedor) al realizar las operaciones de “Poner en la celda”
  • En ocasiones, el algoritmo puede “dividir” la cantidad de un pallet casi completo entre un gran número de celdas de contenedores que ya tienen un producto adecuado, lo que, desde el punto de vista del cliente, era inaceptable.

Tabla 1. Pros y contras de las opciones de fuente única y fuente múltiple.

Dado que la opción de fuente única tiene más ventajas, y teniendo en cuenta también el hecho de que cuanto menor es el número de residuos en las células del donante, menor es la diferencia en el grado de compacidad de compresión calculado para ambas variantes del problema, nuestra elección recayó en la opción de Fuente única.

Vale decir que también se produce la solución a la opción Multi-Source. Existe una gran cantidad de algoritmos efectivos para resolverlo, la mayoría de los cuales se reducen a resolver una serie de problemas de transporte. Además, no sólo existen algoritmos eficientes, sino también elegantes, por ejemplo, aquí.

Preparar datos de entrada

Antes de comenzar a analizar y desarrollar un algoritmo para resolver un problema, es necesario decidir qué datos y de qué forma los alimentaremos como entrada. No hay problemas con el volumen de mercancías restantes en las celdas donantes y la capacidad de las celdas contenedoras, ya que esto es trivial: tales cantidades se medirán en m3, pero con los costos de usar una celda contenedora y la matriz de costos de movimiento, no todo ¡Es tan simple!

Veamos primero el cálculo. costos de mover mercancías desde la célula donante a la célula contenedora. En primer lugar, es necesario decidir en qué unidades de medida calcularemos los costes de movimiento. Las dos opciones más obvias son los metros y los segundos. No tiene sentido calcular los costes de viaje en metros “puros”. Demostremos esto con un ejemplo. deja que la celda Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) ubicado en el primer nivel, celda Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) eliminado por 30 metros y ubicado en el segundo nivel:

  • Moviendo desde Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) в Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) más caro que mudarse de Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) в Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1), ya que bajar del segundo nivel (a 1,5-2 metros del suelo) es más fácil que subir al segundo, aunque la distancia será la misma;
  • Mover 1 ud. bienes de la celda Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) в Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) Será más fácil que mover 10 piezas. el mismo producto, aunque la distancia será la misma.

Es mejor considerar los costos de mudanza en segundos, ya que esto le permite tener en cuenta tanto la diferencia en los niveles como la diferencia en la cantidad de bienes transportados. Para contabilizar el costo del movimiento en segundos, debemos descomponer la operación de movimiento en componentes elementales y tomar medidas de tiempo para la ejecución de cada componente elemental.

dejar desde la celda Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) se mueve Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) ORDENADOR PERSONAL. mercancías en contenedor Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1). dejar Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) – la velocidad media de movimiento de un trabajador en el almacén, medida en m/seg. Dejar Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) и Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) – velocidades medias de operaciones puntuales de toma y colocación, respectivamente, para un volumen de mercancías igual a 4 dm3 (el volumen medio que un empleado toma a la vez en un almacén cuando realiza operaciones). Dejar Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) и Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) la altura de las celdas desde las que se realizan las operaciones de toma y venta, respectivamente. Por ejemplo, la altura promedio del primer nivel (piso) es de 1 m, el segundo nivel es de 2 m, etc. Entonces la fórmula para calcular el tiempo total para completar una operación de movimiento es Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) siguiente:

Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)

La Tabla 2 muestra estadísticas sobre el tiempo de ejecución de cada operación elemental, recopiladas por los empleados del almacén, teniendo en cuenta las particularidades de la mercancía almacenada.

Nombre de la operación designación promedio
Velocidad media de un trabajador moviéndose por el almacén Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) 1,5 m / s
Velocidad media de una operación a poner (para un volumen de producto de 4 dm3) Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) 2,4 sec

Tabla 2. Tiempo promedio para completar las operaciones de almacén

Hemos decidido el método para calcular los costes de mudanza. Ahora tenemos que descubrir cómo calcular Costos de elegir una celda contenedora.. Aquí todo es mucho, mucho más complicado que con los costes de mudanza, porque:

  • En primer lugar, los costos deben depender directamente del volumen de la célula: es mejor colocar el mismo volumen de residuos transferidos de las células del donante en un recipiente de menor volumen que en uno grande, siempre que dicho volumen quepa completamente en ambos contenedores. Así, minimizando los costes totales de selección de contenedores, se procura ahorrar la “escasa” capacidad de almacenamiento libre en la zona de selección para realizar posteriores operaciones de colocación de mercancías en las celdas. La Figura 4 demuestra las opciones para transferir residuos a contenedores grandes y pequeños y las consecuencias de estas opciones de transferencia en operaciones de almacén posteriores.
  • en segundo lugar, dado que para resolver el problema original necesitamos minimizar exactamente los costos totales, y esta es la suma de los costos de mudanza y los costos de elegir contenedores, entonces los volúmenes de las celdas en metros cúbicos deben estar de alguna manera vinculados a segundos, lo cual está lejos de ser trivial.

Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)
Arroz. 4. Opciones para trasladar las sobras a contenedores de diferentes capacidades.

La figura 4 muestra en rojo el volumen de sobras que ya no cabe en el contenedor en la segunda etapa de colocación de mercancías posteriores.

Ayudará a vincular los metros cúbicos de costos para elegir un contenedor con los segundos de costos para mover los siguientes requisitos para soluciones calculadas al problema:

  • Es necesario que los saldos del contenedor donante se trasladen al contenedor contenedor en cualquier caso si esto reduce el número total de contenedores que contienen el producto.
  • Es necesario mantener un equilibrio entre el volumen de contenedores y el tiempo empleado en su traslado: por ejemplo, si en una nueva solución a un problema en comparación con la solución anterior, la ganancia de volumen es grande, pero la pérdida de tiempo es pequeña. , entonces es necesario elegir una nueva opción.

Comencemos con el último requisito. Para aclarar la ambigua palabra "saldo", realizamos una encuesta entre los empleados del almacén para descubrir lo siguiente. Sea una celda contenedora de volumen. Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1), al que se le asigna el movimiento de los bienes restantes de las células del donante y el tiempo total de dicho movimiento es igual a Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1). Que haya varias opciones alternativas para colocar la misma cantidad de productos de las mismas células del donante en otros contenedores, donde cada colocación tiene sus propias estimaciones. Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)Donde Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)<Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) и Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)Donde Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)>Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1).

Se plantea la pregunta: ¿cuál es la ganancia mínima de volumen? Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) aceptable, para un valor de pérdida de tiempo determinado Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)? Expliquemos con un ejemplo. Inicialmente, los restos debían ser colocados en un contenedor con un volumen de 1000 dm3 (1 m3) y el tiempo de traslado fue de 70 segundos. Existe la opción de colocar los residuos en otro contenedor con un volumen de 500 dm3 y un tiempo de 130 segundos. Pregunta: ¿estamos dispuestos a dedicar 60 segundos adicionales del tiempo del tendero a mover la mercancía para ahorrar 500 dm3 de volumen libre? Con base en los resultados de una encuesta a los empleados del almacén, se compiló el siguiente diagrama.

Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)
Arroz. 5. Diagrama de la dependencia del ahorro de volumen mínimo permitido del aumento en la diferencia en el tiempo de operación.

Es decir, si los costes de tiempo adicionales son de 40 segundos, entonces estamos dispuestos a gastarlos sólo cuando la ganancia de volumen sea de al menos 500 dm3. A pesar de que existe una ligera no linealidad en la dependencia, para simplificar cálculos posteriores asumiremos que la dependencia entre las cantidades es lineal y se describe mediante la desigualdad

Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)

En la siguiente figura, consideramos los siguientes métodos para colocar mercancías en contenedores.

Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)
Arroz. 6. Opción (a): 2 contenedores, volumen total 400 dm3, tiempo total 150 seg.
Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)
Arroz. 6. Opción (b): 2 contenedores, volumen total 600 dm3, tiempo total 190 seg.
Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)
Arroz. 6. Opción (c): 1 contenedor, volumen total 400 dm3, tiempo total 200 seg.

La opción (a) para elegir contenedores es más preferible que la opción original, ya que la desigualdad se cumple: (800-400)/10>=150-120, lo que implica 40 >= 30. La opción (b) es menos preferible que la original opción, ya que la desigualdad no se cumple: (800-600)/10>=190-150 lo que implica 20 >= 40. ¡Pero la opción (c) no encaja en esa lógica! Consideremos esta opción con más detalle. Por un lado, la desigualdad (800-400)/10>=200-120, lo que significa que la desigualdad 40 >= 80 no se satisface, lo que sugiere que la ganancia en volumen no compensa una pérdida tan grande en el tiempo.

Pero, por otro lado, en esta opción (c) no sólo reducimos el volumen total ocupado, sino que también reducimos el número de celdas ocupadas, que es el primero de dos requisitos importantes para soluciones computables a los problemas enumerados anteriormente. Obviamente, para que este requisito comience a cumplirse es necesario sumar alguna constante positiva al lado izquierdo de la desigualdad Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1), y dicha constante debe agregarse solo cuando la cantidad de contenedores disminuye. Recordemos que Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) es una variable igual a 1 cuando el contenedor Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) seleccionado, y 0 cuando el contenedor Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) no seleccionado. denotemos Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) – muchos contenedores en la solución inicial y Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) – muchos contenedores en la nueva solución. En general, la nueva desigualdad se verá así:

Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)

Transformando la desigualdad anterior, obtenemos

Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)

En base a esto, tenemos una fórmula para calcular el costo total. Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) alguna solución al problema:

Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)

Pero ahora surge la pregunta.: ¿Qué valor debería tener tal constante? Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)? Obviamente, su valor debe ser lo suficientemente grande como para que siempre se cumpla el primer requisito de solución al problema. Por supuesto, se puede tomar el valor de la constante igual a 103 o 106, pero me gustaría evitar esos "números mágicos". Si consideramos las características específicas de las operaciones de almacén, podemos calcular varias estimaciones numéricas bien fundamentadas del valor de dicha constante.

Dejar Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) – la distancia máxima entre las celdas del almacén de una zona ABC, igual en nuestro caso a 100 m. Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) – el volumen máximo de una celda contenedora en un almacén, equivalente en nuestro caso a 1000 dm3.

La primera forma de calcular el valor. Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1). Consideremos una situación en la que hay 2 contenedores en el primer nivel, en los que los bienes ya están ubicados físicamente, es decir, ellos mismos son células donantes, y el costo de mover los bienes a las mismas celdas es naturalmente igual a 0. es necesario encontrar tal valor para la constante Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1), en el que sería ventajoso mover siempre los restos del contenedor 1 al contenedor 2. Sustituyendo los valores Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) и Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) En la desigualdad dada arriba obtenemos:

Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)

que sigue

Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)

Sustituyendo los valores del tiempo promedio para realizar operaciones elementales en la fórmula anterior obtenemos

Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)

La segunda forma de calcular el valor. Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1). Consideremos una situación en la que hay Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) células donantes desde las cuales se planea mover la mercancía al contenedor 1. Denotemos Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) – distancia de la célula donante Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) al contenedor 1. También está el contenedor 2, que ya contiene mercancías y cuyo volumen permite acomodar el resto de todos. Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) células. Para simplificar, asumiremos que el volumen de bienes trasladados desde las células del donante a los contenedores es el mismo e igual a Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1). Se requiere encontrar tal valor de la constante. Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1), en el que la colocación de todos los restos de Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) celdas en el contenedor 2 siempre sería más rentable que colocarlas en contenedores diferentes:

Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)

Transformando la desigualdad que obtenemos

Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)

Para “fortalecer” el valor de la cantidad Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1), supongamos que Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) = 0. El número medio de celdas que suelen intervenir en el procedimiento de compresión de saldos de almacén es 10. Sustituyendo los valores conocidos de las cantidades, tenemos el siguiente valor de la constante

Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)

Tomamos el valor mayor calculado para cada opción, este será el valor de la cantidad Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) para los parámetros de almacén dados. Ahora, para completar, escribamos la fórmula para calcular los costos totales. Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1) para alguna solución factible Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1):

Matemáticas discretas para WMS: algoritmo para comprimir bienes en celdas (parte 1)

Ahora, después de todo esfuerzos titánicos Al transformar los datos de entrada, podemos decir que todos los datos de entrada se han convertido a la forma deseada y están listos para usarse en el algoritmo de optimización.

Conclusión

Como muestra la práctica, a menudo se subestima la complejidad y la importancia de la etapa de preparación y transformación de los datos de entrada para un algoritmo. En este artículo, prestamos mucha atención específicamente a esta etapa para mostrar que solo los datos de entrada preparados inteligentemente y de alta calidad pueden hacer que las decisiones calculadas por el algoritmo sean realmente valiosas para el cliente. Sí, hubo muchas derivaciones de fórmulas, pero te lo advertimos incluso antes del kata :)

En el próximo artículo, finalmente llegaremos al propósito de las 2 publicaciones anteriores: un algoritmo de optimización discreto.

preparó el artículo
Roman Shangin, programador del departamento de proyectos,
Compañía First Bit, Chelyabinsk


Fuente: habr.com

Añadir un comentario