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

Descripción general 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 que aborda stochastic discrete descent, aunque viene con un nivel de escalabilidad ligeramente reducido.
Conceptualmente, los Supply Chain Scientists de Lokad diseñan una cadena de procesamiento de datos que incluye los siguientes pasos:
- Preparar los datos históricos.
- Generar forecast probabilísticos.
- Producir una estrategia de toma de decisiones robusta.
- 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. Luego se producen forecast probabilísticos utilizando programación diferenciable, un paradigma idealmente adecuado para la modelización probabilística 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 re-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. En el mercado se dispone de una amplia gama de solucionadores—tanto propietarios como de código abierto. Desafortunadamente, ninguna de estas tecnologías existentes cumple con nuestros requisitos, en particular al tratar con problemas de programación ajustada.
Los algoritmos de ramificación y poda (y todas sus variantes) se basan en dividir la región factible en subproblemas más pequeños (ramificación) y en usar relajaciones (poda) para recortar grandes secciones del espacio de búsqueda. Este enfoque funciona mal para los problemas de supply chain porque siguen siendo demasiado abiertos. Aunque el espacio de soluciones está estrictamente limitado, sigue siendo enorme. Cumplir únicamente con las restricciones está lejos de ser suficiente para producir una buena solución, lo que socava la premisa central de la partición.
Los algoritmos de búsqueda local (y todas sus variantes) se centran en 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 infringen tantas restricciones que el proceso de búsqueda no puede recuperar una solución mejorada.
En Lokad, hemos establecido 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—even si esos cambios invalidan por completo la solución original debido a 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 mediante un paradigma de programación especializado llamado optimización latente. Este método es fundamental para integrar los conocimientos 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 dimensión de un solucionador simple hecho a la medida para el problema en cuestión. Esos parámetros se aprenden iterando la aplicación del solucionador parametrizado sobre el problema original (que en muchos casos incluye variantes estocásticas). En esencia, 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 aeronáutica
Considera un fabricante de aeronaves y uno de sus sitios de producción. Este sitio ensambla un componente crítico de una aeronave. El objetivo general es maximizar el rendimiento del sitio dado los recursos disponibles (personas y activos industriales).
Este proceso de ensamblaje involucra alrededor de 100 operaciones distintas. También hay aproximadamente 20 espacios disponibles para llevar a cabo estas operaciones, cada uno con atributos diferentes. Ciertas operaciones solo pueden realizarse en espacios específicos. Un complejo grafo de dependencias conecta las operaciones, pero a diferencia de una línea de producción automotriz, este grafo no forma una secuencia lineal; existe una flexibilidad considerable en el orden final de las tareas.
Además, algunas operaciones requieren piezas específicas de equipo, que existen en cantidades limitadas en el sitio. Muchas operaciones también dependen de contar con el inventario necesario; a veces, piezas esenciales se retrasan. Las operaciones varían en la cantidad de personas que pueden trabajar en ellas simultáneamente para acelerar su finalización, desde 1 hasta 5 individuos.
Una fuerza laboral 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 auto-verificar su propio trabajo. El nivel más bajo permite a un técnico realizar una operación, pero requiere la verificación por parte de un colega con la calificación más alta.
La dirección del sitio de producción desea un cronograma de trabajo minuto a minuto para las próximas semanas, especificando exactamente qué técnico trabajará en cada operación para cada componente (siendo cada componente identificado individualmente por número de serie). Este nivel de detalle es esencial para garantizar la confianza en la solidez del cronograma.
Sin embargo, las condiciones pueden evolucionar al inicio de cada turno. Un empleado puede estar ausente por enfermedad, o una pieza puede retrasarse y, por lo tanto, estar no disponible. Si estos problemas no se abordan de inmediato, se transforman rápidamente en una serie de ineficiencias, dejando a técnicos y activos inactivos mientras se resuelven los problemas.
Con la optimización latente, la dirección del sitio puede producir un cronograma de trabajo detallado que abarca decenas de miles de tareas para 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 remezcla masiva y aleatoria del plan original, sino un cronograma que se asemeja estrechamente a la versión inicial, requiriendo únicamente ajustes menores para adaptarse a las condiciones más recientes.