2026-04-29__001_synthetic_mine_throughput__claude-code__claude-opus-4-7__superpowers-max-thinking

Date: 2026-04-29 · Benchmark: 001_synthetic_mine_throughput · Harness: claude-code · Model: claude-opus-4-7 (superpowers-max-thinking) · ? Unrecorded

Scores

Category Points Max
Conceptual modelling 18 20
Data and topology 14 15
Simulation correctness 19 20
Experimental design 14 15
Results & interpretation 14 15
Code quality 10 10
Traceability 5 5
Total 94 100

Run metrics

Evaluation report

Scenario Mean throughput
baseline 12,256.667
trucks_4 7,930
trucks_12 12,620
ramp_upgrade 12,183.333
crusher_slowdown 6,526.667
ramp_closed 12,120

Source files

Downloads

Conceptual model

Conceptual Model: Synthetic Mine Throughput

System boundary

Included: the truck haulage cycle from PARK to ore loaders (LOAD_N, LOAD_S) to the primary crusher (CRUSH) and back, traversing the road network defined in data/edges.csv. Loaders, the crusher, and capacity-constrained roads are modelled as constrained resources. The 8-hour shift is the simulated horizon.

Excluded: waste dump routing, the maintenance bay, breakdowns, refuelling, weather, blasting events, shift handover, operator skill variation, ore grade variation, and grade-resistance effects on truck speed beyond the loaded/empty speed factor.

Entities

Resources

Events

dumping_ended at CRUSH is the throughput-recording event.

State variables

Assumptions

Derived from data

Introduced

Limitations

Performance measures

README

Mine Throughput Simulation

A SimPy discrete-event simulation of an open-pit mine haulage system. Estimates ore throughput to the primary crusher over an 8-hour shift across six required scenarios with 30 replications each.

Install

python3 -m venv .venv
source .venv/bin/activate           # Windows: .venv\Scripts\activate
pip install -r requirements.txt

Run

All six required scenarios with 30 replications each (default):

python -m mine_sim.run

Single scenario or smoke test:

python -m mine_sim.run --scenario baseline
python -m mine_sim.run --replications 5

Outputs (in results/):

Total runtime is well under one minute on a modern laptop (~2.5 s for all 6 scenarios × 30 reps).

Reproduce

The simulation uses one numpy.random.Generator per replication, seeded from config["simulation"]["base_random_seed"] + replication_idx (12345 by default). Same seed → byte-identical event log. To verify:

python -m mine_sim.run --scenario baseline
cp results/baseline__event_log.csv /tmp/run1.csv
python -m mine_sim.run --scenario baseline
diff /tmp/run1.csv results/baseline__event_log.csv   # must be empty

Conceptual model

See conceptual_model.md for the full system boundary, entities, resources, events, state, assumptions, and performance measures.

In short: trucks loop PARK → loader → crusher → loader → … . Loaders and the crusher are capacity-1 SimPy resources. The narrow ramp E03 and pit-access roads E07/E09 are paired bidirectional resources (one physical road, capacity 1 across both directions — supported by the dataset’s metadata note “same physical constraint simplified as separate edge”). E05 crusher approach has per-direction capacity-1 lanes. All other roads are unconstrained.

Main assumptions

Routing and dispatching

Key results

Headline tonnes/hour with 95% CI (Student-t, df=29) per scenario, from results/summary.json:

Scenariotonnes/h mean95% CItotal tonnes meanavg cycle (min)crusher util
baseline1,532.1(1,525.5, 1,538.6)12,25730.40.895
trucks_4991.2(985.7, 996.8)7,93023.60.579
trucks_121,577.5(1,568.8, 1,586.2)12,62043.60.927
ramp_upgrade1,522.9(1,514.4, 1,531.4)12,18330.60.886
crusher_slowdown815.8(807.6, 824.0)6,52755.50.945
ramp_closed1,515.0(1,506.1, 1,523.9)12,12030.70.886

Loader utilisation is asymmetric in every scenario: the dispatcher strongly prefers LOAD_S (faster service: 4.5 min vs 6.5 min) so L_S runs near 87 % under baseline while L_N is used as a spillover at ~46 %.

Answers to operational decision questions

1. Expected ore throughput in baseline 8-hour shift

~1,532 tonnes/hour (95 % CI 1,526 – 1,539), or ~12,257 tonnes per shift (CI 12,204 – 12,309) with 8 trucks. Average truck cycle time ~30.4 min; trucks are productive ~75 % of the shift.

2. Likely bottlenecks

The primary crusher dominates in all configurations except trucks_4. Baseline ranking by utilisation × avg_queue_wait_min:

ResourceUtilisationAvg queue wait (min)Score
crusher0.8952.822.52
loader_L_S0.8712.241.95
road_PIT_S0.8531.241.06
loader_L_N0.4581.870.86

The southern pit access road (PIT_S) ranks third — it is congested because the dispatcher routes most traffic to LOAD_S. The main ramp (E03) is not a binding constraint in any scenario at baseline truck counts (utilisation < 0.10 in every run except the trucks_12 scenario).

3. Does adding more trucks materially improve throughput?

No — the system saturates between 8 and 12 trucks. Marginal gain per added truck:

StepΔ tonnes/hΔ tph per truck
4 → 8 trucks+540.9+135
8 → 12 trucks+45.4+11

The 95 % CI for trucks_12 (1,569 – 1,586) barely separates from baseline (1,526 – 1,539); meanwhile crusher queue wait grows from 2.8 min at baseline to 13.1 min at 12 trucks, and average truck utilisation drops from 0.75 → 0.53. Operationally, ~8 trucks is near optimal under current crusher capacity.

4. Would improving the narrow ramp materially improve throughput?

No. ramp_upgrade (capacity 999, max speed 28 kph) gives 1,522.9 tph vs baseline 1,532.1 tph — the difference is within statistical noise (CIs overlap heavily; the ramp_upgrade mean is even slightly lower, which is plausible random variation). Ramp utilisation under baseline is < 10 %, so freeing it has nothing to free up. The crusher is the binding constraint.

5. How sensitive is throughput to crusher service time?

Highly sensitive. Doubling the crusher mean dump time from 3.5 → 7.0 min (crusher_slowdown) reduces throughput by 47 % (1,532 → 816 tph). Crusher utilisation rises to 0.94 and crusher queue wait jumps to 27 min — the crusher becomes a hard bottleneck and cycle time nearly doubles to 55.5 min. Any operational change that even modestly slows the crusher will cost throughput roughly proportional to the slowdown.

6. Operational impact of losing the main ramp route

Minor, ~1 %. ramp_closed (E03 unavailable; trucks reroute via the western bypass J2 → J7 → J8 → J4) gives 1,515 tph vs baseline 1,532 tph — about a 1 % drop, well within the bench’s CI for either scenario. The bypass adds a few minutes per cycle but the crusher remains the binding constraint, so cycle slack absorbs the rerouting cost. The model would still run safely without the main ramp.

Limitations

See conceptual_model.md for the full list. Headline limitations:

Suggested improvements / further scenarios

← Back to leaderboard