El primer principio de nuestro manifiesto de Supply Chain Cuantitativa establece que todos los futuros deben ser considerados. Por lo tanto, expandimos Envision hace dos años para trabajar nativamente con variables aleatorias. Esta álgebra probabilística es la piedra angular de nuestra forma de lidiar con futuros inciertos.

Luego, el segundo principio establece que todas las decisiones factibles deben ser consideradas, por ejemplo, las cantidades a comprar a los proveedores. Sin embargo, mientras esas decisiones no son variables aleatorias, las cantidades asociadas a esas decisiones son indecididas, no inciertas. Nuestra álgebra probabilística no era suficiente por sí sola para reflejar adecuadamente esas decisiones aún por tomar.

Máquina de economía

Por lo tanto, el año pasado, implementamos silenciosamente y gradualmente un álgebra complementaria: el álgebra de zedfuncs. Un zedfunc es un tipo de dato en Envision destinado a reflejar recompensas o pérdidas económicas asociadas a decisiones cuantificadas. El truco principal es que un zedfunc no calcula el resultado para una decisión, sino para todas las decisiones; por ejemplo, todas las recompensas por activar una producción desde 1 unidad hasta un infinito [^infinito] de unidades.

Al combinar ranvars y zedfuncs, es posible lidiar con complicaciones viciosas de la cadena de suministro, como los descuentos de precios, con un esfuerzo mínimo. Los zedfuncs son un ingrediente esencial para una optimización de la cadena de suministro cuantitativa con el fin de producir listas priorizadas de decisiones, donde todas las decisiones factibles se ordenan por retorno de inversión decreciente.

Como desventaja menor, los zedfuncs son bastante exigentes en términos de recursos informáticos. Son el tipo de tipos de datos numéricos avanzados que simplemente no encajan en una hoja de cálculo promedio. Afortunadamente para nosotros, Lokad distribuye de manera transparente la carga de trabajo en una flota de máquinas obtenidas de nuestra plataforma favorita de computación en la nube, y en general, la potencia de procesamiento en bruto nunca ha sido más barata. Por lo tanto, en la práctica, lidiar con cientos de millones de zedfuncs sigue siendo un desafío insignificante para el backend de Envision. El diseño actual de los zedfuncs de Lokad nos llevó un esfuerzo serio, y pasamos por una reescritura completa de nuestro primer intento. El meollo del desafío fue nuestro propio algoritmo de compresión con pérdida utilizado para los zedfuncs, un componente necesario para mantener el tamaño de memoria de los zedfuncs bajo control, que no era lo suficientemente bueno. Más precisamente, nuestra primera versión no retenía suficiente precisión numérica donde más importaba. Sin embargo, la segunda versión lo logró gracias a las ideas que habíamos recopilado en nuestros sistemas de producción.

A medida que el pronóstico de demanda probabilístico gana terreno entre las cadenas de suministro, muchas soluciones aún solo están rascando la superficie cuando se trata de aprovechar al máximo estas nuevas perspectivas. Las herramientas adecuadas son esenciales. Generar miles de millones de probabilidades es (hasta cierto punto) fácil; convertir esas probabilidades en decisiones que maximicen su retorno de inversión ahora es mucho más desafiante. Para eso sirven los zedfuncs.

Los zedfuncs son el tipo de herramienta invaluable que probablemente nunca se incluirá en ninguna de las muchas solicitudes de propuestas que recibimos; y sin embargo, la mayoría de la Supply Chain Quantitativa no se puede lograr con esos zedfuncs, ni con sus mejores alternativas (futuras).