Descenso discreto estocástico

La optimización estocástica abarca una clase de problemas de optimización matemática en los que la función objetivo varía debido a la incertidumbre. Dada la incertidumbre irreducible del futuro, casi todos los problemas de toma de decisiones de la cadena de suministro califican como problemas de optimización estocástica. Un optimizador estocástico es un componente central de la optimización de la cadena de suministro: utiliza pronósticos probabilísticos como entradas y devuelve decisiones optimizadas ajustadas al riesgo.

Lokad ha sido pionero en un enfoque específico para dicha optimización, conocido como el descenso discreto estocástico. Este paradigma de programación aborda específicamente la complejidad de los problemas de la cadena de suministro que involucran incertidumbre, basándose en el concepto más amplio de optimización estocástica para ofrecer decisiones robustas a escala.

Alegoría abstracta del desafío de la optimización estocástica

Resumen de la tecnología

Desde 2016, Lokad ha optimizado predominantemente las cadenas de suministro a través de pronósticos probabilísticos. Sin pronósticos probabilísticos, las decisiones optimizadas inevitablemente se vuelven frágiles, susceptibles incluso a ligeras variaciones en la demanda o el tiempo de espera. En cambio, las decisiones optimizadas contra pronósticos probabilísticos son robustas. Aunque las decisiones robustas pueden calcularse utilizando heurísticas relativamente simples y “codiciosas”, esas heurísticas a menudo fallan al manejar restricciones más complejas.

En 2021, Lokad presentó su primera tecnología de optimización estocástica de propósito general, que llamamos descenso discreto estocástico. Esta innovación aborda las deficiencias de las heurísticas codiciosas cuando se enfrentan a situaciones no lineales en la cadena de suministro. Conceptualmente, los Científicos de la Cadena de Suministro en Lokad diseñan un pipeline de procesamiento de datos con los siguientes pasos:

  1. Preparar los datos históricos.
  2. Generar pronósticos probabilísticos. L7 3. Producir decisiones robustas.

Los datos históricos se preparan utilizando las capacidades generales de ingeniería de datos de Envision, siendo Envision el lenguaje específico de dominio de Lokad. Los pronósticos probabilísticos se producen a través de programación diferenciable, un paradigma ideal para modelar probabilidades, reconocido como un ciudadano de primera clase en Envision. Por último, las decisiones robustas se derivan utilizando el descenso discreto estocástico, entregado como un paradigma de programación dentro de Envision.

En última instancia, los pasos (1), (2) y (3) se ejecutan todos dentro de Envision.

Solucionadores tradicionales y sus límites

La optimización matemática es un área bien establecida dentro de la informática. La mayoría de los productos de software dedicados a la optimización matemática se empaquetan como solucionadores. Cada solucionador típicamente ofrece su propio lenguaje específico de dominio (DSL), permitiendo a los usuarios optimizar matemáticamente una clase específica de problemas. Aunque existen muchos solucionadores en el mercado, incluyendo varias opciones de código abierto, ninguno aborda adecuadamente las realidades de los problemas de la cadena de suministro.

  1. Muy pocos solucionadores manejan el caso estocástico. Casi todas las soluciones existentes se centran en el escenario determinista, donde la incertidumbre está ausente. Desafortunadamente, no se puede simplemente “reutilizar” un solucionador determinista para casos estocásticos sin introducir un nivel inaceptable de aproximación.

  2. La mayoría de los solucionadores no son lo suficientemente escalables. Los problemas de la cadena de suministro pueden crecer extremadamente grandes: un millón de SKU pueden traducirse en decenas de millones de variables una vez modeladas para la optimización. La partición de la cadena de suministro solo para acomodar al solucionador no es viable. El solucionador debe manejar nativamente decenas de millones de variables.

  3. Muchos solucionadores carecen de expresividad adecuada. La función objetivo a menudo no puede asumirse como lineal, cuadrática o incluso convexa. No es aceptable distorsionar el problema bajo suposiciones matemáticas simplistas simplemente para adaptarse a las restricciones del solucionador. En consecuencia, los solucionadores deben ofrecer paradigmas de programación altamente expresivos.

Después de revisar el panorama existente de herramientas de optimización matemática, concluimos que desarrollar nuestra propia tecnología era la única solución viable.

Bajo el capó

Lokad adopta un enfoque algo poco convencional para la optimización estocástica. En lugar de empaquetar la tecnología como un solucionador convencional, abordamos el problema a través de un paradigma de programación dedicado conocido como descenso discreto estocástico. Este enfoque es crucial para aprovechar las ideas y la experiencia de nuestros Científicos de la Cadena de Suministro.

Este paradigma de programación aprovecha el descenso de gradiente estocástico (SGD) porque escala extremadamente bien, por órdenes de magnitud más allá de los métodos tradicionales de optimización no convexa. Sin embargo, SGD no es naturalmente adecuado para problemas discretos (y prácticamente todos los problemas de la cadena de suministro son discretos). Dado que las cantidades de reabastecimiento, producción o transferencia son enteros, los resultados fraccionarios no tienen sentido.

Para superar esta limitación, el descenso discreto estocástico introduce una representación diferenciable alternativa del problema original. Esta representación presenta un conjunto más grande de dimensiones continuas y de valores reales y sirve efectivamente como una parametrización de la solución discreta. A diferencia del modelo discreto original, donde los gradientes degeneran a cero debido a efectos enteros, esta alternativa produce gradientes no degenerados adecuados para SGD.

La principal limitación del descenso discreto estocástico es su incapacidad para abordar problemas combinatorios verdaderamente difíciles, donde las soluciones están tan fuertemente restringidas que no se pueden iterar a través de ningún tipo de descenso directo. Estos problemas requieren optimización latente, una técnica de optimización posterior también desarrollada por Lokad.

Ejemplos

Optimizar decisiones frente a un futuro incierto es un desafío. Muchos escenarios de la cadena de suministro requieren optimización estocástica para una resolución adecuada.

Reposición de tiendas de moda

Considere una red minorista que reabastece tiendas con objetivos de surtido específicos. Por ejemplo, asegurar que todas las tallas estén disponibles para una prenda suele ser más crítico que ofrecer todos los colores, especialmente si algunos colores son muy similares. Si un cliente no encuentra la talla correcta, se va. Por el contrario, solo almacenar colores “populares” o neutros hace que la tienda sea menos atractiva visualmente, reduciendo su atractivo general. Por lo tanto, los artículos “de colores brillantes” deben incluirse, aunque su volumen de ventas pueda ser menor, y su presencia total en la tienda debe mantenerse cuidadosamente equilibrada.

Sin la perspectiva del surtido, el despacho de la tienda se puede manejar con una optimización codiciosa simple, seleccionando cada unidad adicional en función de los rendimientos económicos decrecientes. Este enfoque codicioso funciona cuando los artículos se tratan como independientes. Sin embargo, una vez que se introducen objetivos de surtido, surgen interdependencias y agregar una unidad adicional afecta la deseabilidad de otros productos, debido a las relaciones de tamaño y color descritas anteriormente.

A través del descenso discreto estocástico, Lokad ofrece planes de despacho robustos que optimizan el clásico equilibrio entre los costos de exceso de stock y faltante de stock, al tiempo que abordan simultáneamente factores económicos adicionales, como garantizar la presencia (o ausencia) de colores o tallas específicas, para mejorar el atractivo general de la tienda. Además, debido a que esta optimización se realiza a nivel de red, cada unidad asignada a una tienda en particular se evalúa en función de las necesidades de todas las demás tiendas.

Reparación de motores de aeronaves

Ahora considere el desafío de reparar motores de aeronaves. Cuando llega un motor, no está claro qué piezas se requerirán porque su lista de materiales varía según su condición específica, una lista de materiales genuinamente estocástica. Además, debido al diseño del motor (esencialmente una serie de capas concéntricas), las primeras piezas identificadas como necesarias durante el desmontaje terminan siendo requeridas al final durante el montaje. Como todo el ciclo de reparación puede superar los dos meses, mantener esas primeras piezas en stock puede no ser inmediatamente crítico; solo se vuelven esenciales al final del proceso. Por el contrario, las piezas ubicadas en las capas más internas del motor se necesitan de inmediato, ya que el montaje no puede continuar sin ellas.

Una optimización estocástica, específicamente el descenso discreto estocástico, permite una priorización robusta de las inversiones en piezas, ayudando al proveedor de MRO (Mantenimiento, Reparación y Revisión) a minimizar los tiempos de reparación de motores de aeronaves. Para cada artículo a comprar, la pregunta principal es: “Dado este presupuesto, ¿cuántos días de retraso en la reparación puedo evitar?” De esta manera, las compras de piezas se priorizan estratégicamente para reducir el tiempo de inactividad, crucial ya que el MRO recibe pago por entregar motores en condiciones de servicio, y cualquier retraso es una pérdida directa tanto para el MRO como para la aerolínea. Un enfoque codicioso simple falla aquí porque las dependencias entre las piezas pueden desencadenar retrasos en cascada. Por el contrario, si el MRO decide no almacenar ciertas piezas, es posible que no afecte el cronograma general si esas piezas se pueden obtener en paralelo mientras se espera por componentes con plazos de entrega más largos. El descenso discreto estocástico sí considera estas interdependencias y oportunidades de abastecimiento en paralelo.

Multi-abastecimiento restringido

Ahora consideremos el reabastecimiento con múltiples restricciones y varias opciones de abastecimiento. Los proveedores imponen MOQs (cantidades mínimas de pedido), que pueden expresarse en unidades (para todo el pedido) o en términos monetarios (para el pedido total). Además, se deben apuntar a contenedores completos para reducir los costos de transporte. Los productos pueden ser abastecidos localmente, lo que conlleva plazos de entrega más cortos y MOQs más bajos pero costos unitarios más altos, o de proveedores distantes, que ofrecen costos unitarios más bajos pero implican plazos de entrega más largos y MOQs más altos. Aunque la empresa puede ordenar múltiples contenedores semanalmente, cualquier producto específico suele aparecer en no más de un contenedor al mes.

La optimización estocástica, con el descenso discreto estocástico como técnica habilitadora, aborda el hecho de que realizar un pedido de compra hoy puede evitar realizar otro pedido del mismo producto mañana. Ningún producto individual justifica típicamente un contenedor completo por sí solo, por lo que incluso los artículos más vendidos deben agruparse con otros. En consecuencia, si un artículo se queda sin stock inesperadamente mientras queda un inventario significativo para la mayoría de los productos elegibles para el paquete, no hay una opción rentable para volver a pedir ese artículo específico antes. El proceso de optimización evalúa las ramificaciones a largo plazo de cada pedido, como programar un contenedor completo, y tiene en cuenta cuánto tiempo pasará hasta que todos los productos involucrados puedan reabastecerse nuevamente de manera factible bajo las mismas restricciones.