Optimización Latente

La optimización latente es un paradigma de optimización pionero desarrollado por Lokad que se enfoca en problemas combinatorios difíciles y complejos. También maneja problemas estocásticos, que surgen cuando hay incertidumbre presente. La optimización latente representa un avance para desafíos como la asignación programada de recursos. A diferencia de los solucionadores clásicos, que operan en el espacio de soluciones, la optimización latente opera en el espacio de la estrategia. Este enfoque permite una reoptimización rápida a medida que evolucionan las condiciones.

Alegoría abstracta del paradigma de optimización latente

Resumen de la tecnología

La optimización latente, introducida en 2024, es la segunda generación de tecnologías de optimización de propósito general desarrolladas por Lokad. Aborda problemas combinatorios más difíciles que los abordados por descenso discreto estocástico, aunque viene con un nivel ligeramente reducido de escalabilidad.

Conceptualmente, los Científicos de la Cadena de Suministro en Lokad diseñan un pipeline de procesamiento de datos que incluye los siguientes pasos:

  1. Preparar los datos históricos.
  2. Generar pronósticos probabilísticos.
  3. Producir una estrategia robusta de toma de decisiones.
  4. Reoptimizar en el último minuto, bajo condiciones modificadas.

Los datos históricos se preparan utilizando las capacidades generales de ingeniería de datos de Envision; Envision es el lenguaje específico de dominio de Lokad. Los pronósticos probabilísticos se producen utilizando programación diferenciable, un paradigma ideal para modelado probabilístico y tratado como un ciudadano de primera clase en Envision.

A continuación, se emplea la optimización latente para generar una estrategia de toma de decisiones. En esencia, el resultado de la optimización latente es un solucionador especializado hecho a la medida para el problema específico. Finalmente, esta estrategia puede ejecutarse, y posiblemente volver a ejecutarse, bajo las condiciones finales, ligeramente cambiantes, para producir las decisiones requeridas. Debido a que la estrategia se ejecuta rápidamente, puede ser utilizada de forma interactiva por las personas involucradas.

Los cuatro pasos—(1), (2), (3) y (4)—se llevan a cabo dentro de Envision.

Límites de los solucionadores tradicionales

La optimización matemática es un segmento maduro de la informática. Una amplia gama de solucionadores—tanto propietarios como de código abierto—están disponibles en el mercado. Desafortunadamente, ninguna de estas tecnologías existentes cumple con nuestros requisitos, especialmente al tratar con problemas de programación ajustada.

Los algoritmos de ramificación y acotación (y todas sus variantes) se basan en dividir la región factible en subproblemas más pequeños (ramificación) y utilizar relajaciones (acotación) para podar grandes secciones del espacio de búsqueda. Este enfoque funciona mal para problemas de cadena de suministro porque siguen siendo demasiado abiertos. Aunque el espacio de soluciones está estrictamente limitado, sigue siendo enorme. Simplemente satisfacer las restricciones está lejos de ser suficiente para producir una buena solución, lo que socava la premisa básica de la partición.

Los algoritmos de búsqueda local (y todas sus variantes) giran en torno a iterar sobre una o varias soluciones actuales, examinando variantes cercanas. Desafortunadamente, este método también funciona mal porque el concepto de “localidad” no está bien definido en estos problemas. Dado lo estrictamente limitados que son estos escenarios, la mayoría de los ajustes locales a una solución violan tantas restricciones que el proceso de búsqueda no puede recuperar una solución mejorada.

En Lokad, establecimos un objetivo de escalabilidad de unos pocos millones de variables para problemas combinatorios difíciles, junto con la capacidad de reoptimizar en unos pocos segundos cuando las condiciones cambian, incluso si esos cambios invalidan completamente la solución original a través de efectos en cascada.

Bajo el capó

Lokad utiliza un enfoque poco ortodoxo para la optimización combinatoria. En lugar de ofrecer un solucionador estándar, abordamos el problema a través de un paradigma de programación especializado llamado optimización latente. Este método es fundamental para integrar las ideas y la experiencia de nuestros Supply Chain Scientists.

La optimización latente introduce una representación alternativa del problema original. Esta representación alternativa es una parametrización de alta dimensionalidad de un solucionador simple hecho a la medida para el problema en cuestión. Estos parámetros luego se aprenden aplicando iterativamente el solucionador parametrizado sobre el problema original (que puede incluir variantes estocásticas). En su núcleo, la optimización latente es un proceso de aprendizaje.

El resultado de la optimización latente es un solucionador simple bien parametrizado que produce soluciones de alta calidad tanto para el problema original como para sus variantes.

Ejemplo: Programación de un sitio de producción de aviación

Considere un fabricante de aviación y uno de sus sitios de producción. Este sitio ensambla un componente crítico de aeronaves. El objetivo general es maximizar la capacidad de producción del sitio dadas los recursos disponibles (personal y activos industriales).

Este proceso de ensamblaje implica alrededor de 100 operaciones distintas. También hay alrededor de 20 espacios disponibles para llevar a cabo estas operaciones, cada espacio con diferentes atributos. Ciertas operaciones solo se pueden realizar en espacios específicos. Un grafo de dependencia complejo conecta las operaciones, pero a diferencia de una línea de producción automotriz, este grafo no forma una secuencia recta; hay una considerable flexibilidad en el orden final de las tareas.

Además, algunas operaciones requieren piezas de equipo específicas, que existen en cantidades limitadas en el sitio. Muchas operaciones también dependen de tener el inventario necesario a mano; a veces las partes esenciales se retrasan. Las operaciones varían en la cantidad de personas que pueden trabajar en ellas simultáneamente para acelerar la finalización, desde 1 hasta 5 individuos.

Un equipo de aproximadamente 100 técnicos opera el sitio en turnos de 20 a 30 personas. Cada técnico tiene uno de tres niveles de calificación para cada operación. El nivel más alto permite al técnico realizar una operación y verificar el trabajo realizado por otros. El nivel intermedio permite a un técnico realizar y autoverificar su propio trabajo. El nivel más bajo permite a un técnico realizar una operación, pero requiere verificación por un compañero con la calificación más alta.

La gerencia del sitio de producción desea un cronograma minuto a minuto para las próximas semanas, especificando exactamente qué técnico trabajará en cada operación para cada componente (con cada componente identificado individualmente por número de serie). Este nivel de detalle es esencial para garantizar la solidez del cronograma.

Sin embargo, las condiciones pueden evolucionar al inicio de cada turno. Un empleado puede estar ausente debido a una enfermedad, o una parte puede retrasarse y, por lo tanto, no estar disponible. Si estos problemas no se abordan rápidamente, rápidamente se convierten en una serie de ineficiencias, dejando a los técnicos y activos inactivos mientras se resuelven los problemas.

Con la optimización latente, la gerencia del sitio puede producir un cronograma detallado que abarca decenas de miles de tareas en las próximas semanas. También pueden volver a ejecutar la herramienta en el último momento para tener en cuenta cambios inesperados. Además, la solución recién generada no es una reorganización aleatoria masiva del plan original, sino un cronograma que se asemeja estrechamente a la versión inicial, requiriendo solo ajustes menores para acomodar las últimas condiciones.