Optimise · Direct Block Scheduling
Direct Block Scheduling
DBS schedules the deposit block-by-block directly against real geotechnical precedence and discounted value, choosing its own economic pit — then bands the result into development shells your existing viewers can render.
See it
What it does
Geotech precedence, not shell nesting
Projects block-level slope-structure arcs onto super-block precedence — DAG-safe, with explicit dropped-edge accounting.
Reblock to stay interactive
Arbitrary reblocking cuts unit count by 1–2 orders of magnitude; economics aggregate onto super-blocks.
Picks the economic pit itself
Runs the discounted schedule across revenue-factor shells and keeps the NPV-best precedence-closed shell.
Two-phase, verified
LP relaxation (bound + timing) then integer build, verified against the bound.
Development shells
Bands the dig sequence by cumulative mined ore into nested masks — a time/tonnage analogue of nested pit shells.
Apples to apples
Reuses the same economic engine as the conventional scheduler, so DBS-vs-shell is a fair comparison.
How it works — the engineeringTechnical detail
NumPy arc projection with a Kahn DAG check; the HPF explicit-arc solver for the pit; the BZ engine for the schedule. The pit selection runs on the same fast pseudoflow engine as the ultimate pit, so DBS scales well across large deposits — and we're continually refining the two-phase schedule solve at the very largest deposit sizes.
- In
- block model + structure-arc file, reblock factors, economics/capacities, optional design-pit mask.
- Out
- per-block scheduled period (.npy), development-shell bands, period physicals/cashflow, optimality gap.
flowopt/services/dbs_precedence.py · dev_shells.py · run_orchestrator_dbs.py