Saltar al contenido principal

Simulación Monte Carlo

Cómo AInventory genera ~1.000 escenarios de demanda por SKU (200 en procesamiento masivo) y evalúa todas las políticas sobre los mismos escenarios.

Para qué sirve la simulación

La optimización de inventarios requiere saber cómo se comportaría una política de reabastecimiento ante demandas futuras desconocidas. La fórmula clásica responde a esa pregunta con una aproximación analítica que asume demanda Normal; la simulación Monte Carlo responde con una muestra representativa de futuros posibles, coherente con la incertidumbre observada del SKU.

En lugar de preguntar "¿cuál es la solución óptima en promedio bajo supuestos distribucionales?", el sistema pregunta: "dado este conjunto de escenarios plausibles, ¿qué política produce el menor costo total esperado?". La diferencia no es filosófica: es operativa cuando la demanda es asimétrica, tiene colas gruesas o el histórico es corto.

La ventana de análisis W

Toda la simulación opera sobre una ventana W:

W = L + R

donde L = lead time (periodos desde que se coloca el pedido hasta que llega) y R = periodo de revisión (con qué frecuencia se revisa el inventario). La ventana define el horizonte durante el cual el inventario debe cubrir la demanda con el stock disponible más el pedido que acaba de colocarse.

Una sola decisión en t = 0

El modelo supone que el planificador toma una sola decisión de pedido Q en t = 0 y no coloca más órdenes durante la ventana W. Esto es consistente con un sistema de revisión periódica: en cada ciclo de revisión se decide cuánto pedir, y esa cantidad tiene que durar hasta el próximo ciclo más el lead time.

El cronograma de llegadas es:

  • El inventario en tránsito (pedidos ya colocados antes de t = 0) llega en el horizonte h = 1.
  • El pedido Q colocado en t = 0 llega en h = L + 1.

La identidad de inventario en cada horizonte es estricta:

inv_fin[h] = inv_inicio[h] − ventas[h]

No hay ventas perdidas acumuladas ni backorders: las unidades no servidas en un horizonte no se trasladan al siguiente como demanda pendiente (el modelo asume que el faltante se pierde o se resuelve por otros medios fuera del alcance del pedido actual).

Generación de escenarios y semilla fija

Para cada SKU se generan ~1.000 escenarios (200 en procesamiento masivo por desempeño) de rutas de demanda futura. Cada escenario es una secuencia de W valores de demanda, construida a partir de los errores históricos del forecast según el nivel de la cascada estadística.

Los tres métodos de muestreo disponibles son:

MétodoDescripciónCuándo aplica
Remuestreo por filasRemuestrea filas completas de la matriz de errores (preserva la correlación intra-horizonte)Por defecto; todos los niveles con histórico
Remuestreo independienteRemuestrea escalares individuales de errores (rompe la correlación entre horizonte)Alternativa cuando la correlación no es relevante
Ajuste paramétrico de respaldoMuestrea de Normal(0, σ_W/√W) cuando no hay matriz de erroresRespaldo para SKUs con poco histórico

La semilla es fija por SKU y por ejecución. Esto garantiza reproducibilidad: si el planificador revisa el detalle de un SKU horas después de correr la optimización, verá exactamente los mismos escenarios y los mismos costos que aparecen en la tabla de resumen. Las dos vistas de resultados son idénticas porque computan sobre el mismo bundle de escenarios con la misma semilla.

Por qué todas las políticas comparten los mismos escenarios

Las cinco políticas de reabastecimiento se evalúan sobre el mismo bundle de escenarios para cada SKU. Esto no es un detalle técnico menor: es lo que hace que sus costos sean comparables.

Si cada política generara sus propios escenarios (incluso con la misma distribución), las diferencias de costo entre ellas estarían contaminadas por varianza muestral. Al compartir los mismos escenarios, la única fuente de diferencia es el desempeño real de cada política ante la misma demanda futura posible. El argmin de costo total esperado entre políticas es entonces un ranking limpio.

Convención de signo del error

El error de pronóstico sigue la convención:

error = demanda_real − pronóstico

Error positivo significa que la demanda superó al pronóstico (el sistema subestimó la demanda). Error negativo significa que el pronóstico fue mayor que la demanda real. Esta convención es consistente con la interpretación de sesgo: un historial de errores con media positiva indica que el forecast tiende a subestimar.