DispatchLab — Banco de Despacho Camión-a-Pala para Minería de Rajo Abierto
Un banco de despacho camión-a-pala en el navegador: una simulación de eventos discretos determinista de un rajo abierto donde eliges un caso y una política de despacho y ves formarse tonelaje, match factor y colas. Nueve políticas (heurística, OR-Hungarian y aprendidas) compiten contra un oráculo de capacidad de forma cerrada, sobre casos generados por minehaulsim, el paquete PyPI Apache-2.0 propio del autor. Honesto por diseño: el rollout Monte-Carlo destilado es un resultado nulo publicado, ganando 0 de 8 semillas bajo incertidumbre de tiempo de ciclo.
Contexto de Negocio
El despacho de camiones es una de las decisiones de software de mayor palanca en un rajo abierto: los sistemas de gestión de flota de producción (Modular DISPATCH, Wenco, MineStar) existen precisamente porque reasignar camiones en tiempo real mueve tonelaje extra medible sobre el mismo capital. Pero el mercado está ruidoso con afirmaciones, y una mina no puede hacer A/B testing de una política sobre producción en vivo. Un banco de simulación determinista con números aleatorios comunes permite comparar políticas sobre condiciones estocásticas idénticas y puntuar cada una contra un techo de capacidad, de modo que la comparación es justa. El valor es un banco de pruebas que muestra cuánto cierra cada receta la brecha al oráculo, y que tiene la disciplina de publicar cuándo una política sofisticada no le gana a una simple.
Valor Estratégico
DispatchLab demuestra una comparación justa con números aleatorios comunes de nueve políticas de despacho sobre una simulación determinista, puntuadas contra un oráculo de capacidad de forma cerrada, y se apoya en la honestidad en vez de un titular de política ganadora. Su pieza central es un resultado nulo publicado: el rollout Monte-Carlo de equivalencia cierta destilado gana 0 de 8 semillas de evaluación bajo incertidumbre de tiempo de ciclo, y solo se cumple la cota exacta de mejora de política determinista (el rollout al menos iguala a la base, con ganancias medidas de +0,42 a +1,64 por ciento de tonelaje). Hay cero datos reales de flota: los casos son generados por minehaulsim, el paquete PyPI Apache-2.0 propio del autor, más dos configuraciones de OpenMines desensibilizadas de una mina de carbón real, y las políticas aprendidas son imitación, no aprendizaje por refuerzo. La mejor política alcanza 94,9 a 96,0 por ciento del oráculo en los casos simétricos y solo 47,6 por ciento en el más difícil. Publicar dónde una política ingeniosa no le gana a una simple es el patrón reutilizable.
El Desafío
En un rajo abierto, una flota de camiones de extracción alimenta un conjunto de palas, y la decisión de despacho (a qué pala va cada camión) fija cuánto mineral se mueve en un turno. Si se equivoca, los camiones hacen cola en una pala mientras otra se queda sin alimentar; si acierta, la misma flota mueve más. Lo difícil es que la decisión se toma bajo incertidumbre (los tiempos de ciclo varían, los caminos se agolpan, las palas se detienen) y el campo está lleno de recetas que compiten, desde heurísticas simples hasta asignación de investigación de operaciones y aprendizaje por refuerzo, con poca comparación honesta de cuándo cada una realmente ayuda. Es fácil afirmar que una política ingeniosa gana; es más difícil probarla de forma justa y reportar cuándo no lo hace.
Nuestro Enfoque
DispatchLab es un banco de navegador construido sobre una simulación de eventos discretos real con avance al próximo evento en el tiempo de un rajo abierto: un reloj de ticks enteros con clave de evento (tiempo, prioridad, secuencia), flujos de aleatoriedad nombrados y sembrados para números aleatorios comunes entre políticas, cinemática de camiones con rimpull y resistencia por pendiente, una topología de red de caminos con tráfico (agolpamiento, distancia de seguridad, sin adelantamiento, cruce en dos sentidos), match factor, y un oráculo de capacidad de forma cerrada contra el cual puntuar. Eliges un caso y una política de despacho y ves formarse tonelaje, match factor y colas. Nueve políticas compiten: cinco heurísticas (fija, greedy de finalización más temprana, espera más corta, criterios de máx-camiones y máx-palas), una capa de investigación de operaciones (asignación conjunta Hungarian camión-a-ranura-de-pala), dos políticas aprendidas (un scorer MLP entrenado por imitación y una clonación de comportamiento de la mejor política, ambas ONNX), y un MLP de rollout Monte-Carlo destilado cuyo rollout acotado verdadero también corre en vivo bajo demanda en un panel inspector, nunca en autoplay. Una vía de replay y contrafactual re-simula logs de ciclo generados bajo una política alternativa. Todo del lado del cliente, estático en GitHub Pages.
Indicadores Clave de Rendimiento
| KPI | Línea Base | Resultado | Impacto |
|---|---|---|---|
| Política aprendida, reportada honestamente | Una victoria afirmada para una política sofisticada | Resultado NULO publicado: el rollout Monte-Carlo gana 0 de 8 semillas de evaluación bajo incertidumbre de tiempo de ciclo | Solo se cumple la cota exacta de mejora de política determinista (+0,42 a +1,64% de tonelaje) |
| Comparación justa | Políticas probadas en condiciones distintas | 9 políticas sobre una DES con números aleatorios comunes, puntuadas vs un oráculo de capacidad de forma cerrada | La mejor política alcanza 94,9-96,0% del oráculo (casos simétricos), 47,6% en el más difícil |
| Aprendido por imitación, no RL | Una afirmación de victoria de RL | Imitación de las decisiones del sim sobre 141.149 decisiones registradas; la destilación del rollout alcanza 0,841 de accuracy | Declarado como aprendizaje por imitación; el RL verdadero es backlog, no se afirma |
| Procedencia de los datos | Necesita un log de despacho FMS propietario | Cero datos reales de flota: 10 muestras de minehaulsim (paquete PyPI Apache-2.0 del autor) + 2 configuraciones de OpenMines desensibilizadas | Reproducible; ningún log de operación real usado ni afirmado |
Arquitectura
dispatchlab pipeline
A fair bench for the truck-to-shovel decision
DispatchLab is an in-browser truck-to-shovel dispatch bench: a deterministic discrete-event simulation of an open pit where you pick a case and a dispatch policy and watch tonnes, match factor and queues form. Nine policies compete against a closed-form capacity oracle, on identical stochastic conditions via common random numbers. Live at dispatchlab.fasl-work.com, part of the Faena mining-analytics hub.
Nine policies, one engine
Five heuristics (fixed, greedy earliest-completion, shortest-wait, the max-trucks and the provably-opposite max-shovels criteria), an operations-research tier (Hungarian joint truck-to-shovel-slot assignment), two learned policies (an MLP scorer and a behaviour-cloning of the best policy, both ONNX), and a distilled Monte-Carlo rollout whose true bounded rollout also runs live on demand in an inspector panel, never on autoplay. The engine underneath is real: a next-event-time-advance DES with an integer-tick clock, seeded common random numbers, rimpull and grade-resistance kinematics, road traffic (bunching, safety distance, no overtaking) and a capacity oracle to score against.
The data, stated plainly
There is zero real fleet data: no ground-truthed open-pit dispatch log is public. The eight synthetic cases are anchored to published Cat 793F figures. The twelve “real” samples are structure-real generated cycle logs: ten from minehaulsim, the author own Apache-2.0 DES package published on PyPI, plus two OpenMines configs desensitized from the Huolinhe coal mine (only the config traces to the mine, not the rows). No calibration to any real operation is claimed, and the coal-versus-copper domain-transfer caveat is recorded.
The honest null result
The learned policies are imitation (a scorer and a behaviour-cloning), not reinforcement learning; true RL is backlog. Trained on 141,149 logged decisions, the rollout distillation reaches 0.841 imitation accuracy. The headline finding is a published null: the certainty-equivalent Monte-Carlo rollout wins 0 of 8 evaluation seeds under cycle-time uncertainty, because the base policies are already within a few percent of the oracle. What is validated is the exact deterministic policy-improvement bound: the rollout at least matches the base, with measured deterministic gains of +0.42 to +1.64 percent tonnes. Best policy reaches 94.9 to 96.0 percent of the oracle on the symmetric cases and 47.6 percent on the hardest. Counterfactual tonnes are model estimates, not a generator re-run.
Stack Tecnológico
En acción
Un recorrido corto por la app en vivo: la interfaz real, grabada desde el sitio desplegado.

Capturas de la Aplicación

