Scaling up. Five 1,000-block mines
Today in short
- I set up five large mines (10 × 10 × 10 = 1,000 blocks, 6 periods), one for each of my main small-mine designs, and ran every scenario on all of them. That’s 30 partial runs plus blind, full MILP and greedy.
- At this size blind is already strong. The re-planning blind MILP reaches about 95 to 98% of perfect information on most mines, so a shaft has little left to add. Gains are mostly 0 to 2,600, against drill costs of 575 to 1,813.
- Greedy falls well behind everywhere, at about 68 to 82% of full information.
- One result stands out. On the dipping orebody with a minimum, two shafts did 35,000 to 53,000 worse than blind. The cause is the minimum mining rule, not the information the shafts gave.
The five mines
Each mine is 10 × 10 × 10 (1,000 blocks) over 6 periods, with the same economics: 4,000 t of mining and 2,000 t of processing per period, and drilling at 125 per block plus 10% per layer of depth. The surface is kept poor everywhere, so information always has some value. Each mine was run with no minimum and with a 1,200 t minimum.
| Mine | Idea | Ore blocks |
|---|---|---|
| Opposite gradient | Rich surface on one side, rich ore underneath the other | 327 |
| Decoy | Rich surface patch over waste, real ore elsewhere | 129 |
| Waste cover | Poor surface everywhere, rich layers 1 to 3 underneath | 300 |
| Dipping orebody | Ore near the surface on one side, dipping deeper toward the other | 206 |
| Two hidden pockets | Rich pockets under two opposite corners | 90 |
The same three shafts are used on every mine so the results compare directly.
| Shaft | Path | Cost |
|---|---|---|
| Diagonal | Block 1 → 1000, all 10 layers | 1,812.5 |
| Shallow | Block 23 → 356, 4 layers | 575 |
| Vertical | Block 24 → 924, all 10 layers | 1,812.5 |
The shafts don’t always hit ore. The shallow shaft finds nothing on the dipping and two-pockets mines, and on the dipping mine only the diagonal reaches the deep ore. I kept that on purpose, since a badly placed shaft that is pure cost is a useful case for the thesis.
One run crashed (two pockets, shallow shaft, no minimum). That shaft passes only through waste, so the planner correctly mined nothing, and the notebook failed when saving an empty schedule. I fixed the empty case in the code and reran that one mine. The result is NPV 0, the same as blind.
Results
NPV, rounded to the nearest unit. Bold marks the best partial result in each row.
| Mine | Minimum | Blind | Diagonal | Shallow | Vertical | Full information | Greedy |
|---|---|---|---|---|---|---|---|
| Opposite | 0 | 672,628 | 675,276 | 672,778 | 674,010 | 692,556 | 509,329 |
| Opposite | 1,200 t | 674,534 | 674,629 | 674,053 | 674,346 | 693,342 | 509,329 |
| Decoy | 0 | 275,237 | 275,237 | 275,237 | 275,237 | 280,179 | 212,200 |
| Decoy | 1,200 t | 268,447 | 268,464 | 269,162 | 269,661 | 278,723 | 212,200 |
| Waste cover | 0 | 0 | 651,653 | 650,056 | 649,983 | 672,854 | 548,221 |
| Waste cover | 1,200 t | 650,223 | 649,959 | 650,154 | 650,624 | 672,850 | 548,221 |
| Dipping | 0 | 283,839 | 283,393 | 284,085 | 284,043 | 321,184 | 220,624 |
| Dipping | 1,200 t | 224,141 | 171,383 | 189,800 | 229,774 | 321,196 | 220,624 |
| Two pockets | 0 | 0 | 333,149 | 0 | 332,739 | 351,292 | 239,133 |
| Two pockets | 1,200 t | 332,668 | 333,162 | 334,646 | 334,783 | 350,409 | 239,133 |
What the table says
1. Blind is already close to perfect on large mines. On most mines blind reaches about 95 to 98% of full information (dipping is lower, about 88%). With that little gap left, shafts gain only 0 to about 2,600, and once drill cost is taken off, most are a small net loss. The clear net wins are vertical on dipping with the minimum (+3,820), shallow on two pockets with the minimum (+1,403) and diagonal on opposite with no minimum (+835).
2. Rows where blind is 0 aren’t really wins for the shaft. On waste cover and two pockets with no minimum, the whole surface is waste, so blind sees nothing worth digging and never starts. The huge “gain” there just means the shaft persuaded the planner to dig at all. Greedy, with no shaft, gets 548k and 239k on those mines. These rows are better compared with greedy, or reported separately.
3. Greedy is far behind everywhere, at about 68 to 82% of full information. It mines at full speed from the best-looking surface blocks, which is exactly what these layouts punish. Its result doesn’t change with the minimum, because it always mines at full capacity, so 1,200 t never binds.
4. Two small oddities that are fine. The full MILP is sometimes slightly higher with the minimum (693,342 against 692,556 on opposite). Adding a rule can’t truly raise the optimum, but both are within the solver’s 0.1 to 0.4% tolerance.
The dipping orebody. The minimum, not the shaft
On the dipping mine with the 1,200 t minimum, the diagonal shaft finished 52,758 below blind (only 53% of full information) and shallow 34,341 below. Nowhere else does information hurt by more than about 2,000. Adding up each period’s mining shows why.
| Period | Blind | Vertical | Diagonal | Shallow | Any shaft, no minimum |
|---|---|---|---|---|---|
| P1 mined | 1,200 t | 1,200 t | 1,200 t | 1,202 t | 4,000 t |
| P2 mined | 4,000 t | 4,000 t | 1,303 t | 1,200 t | 4,000 t |
| P3 to P6 mined | 4,000 t each | 4,000 t each | 4,000 t each | 4,000 t each | 4,000 t each |
| NPV after P2 | 46,581 | 42,209 | 12,361 | 9,034 | |
| Final NPV | 224,141 | 229,774 | 171,383 | 189,800 | about 284,000 |
Period 1 is the minimum’s fault. With the minimum, every run, blind included, mines exactly 1,200 t in period 1 even though it could mine 4,000 t. Almost the whole surface is waste and everything underneath is hidden, so the planner values it at nothing. Because the minimum applies to every period of its plan, it reasons, “I must mine 1,200 t in each of the next periods, and the only rock I can see is this surface waste, so I’ll spread it out and pay later, when it’s cheaper after discounting.” It can’t see that stripping the surface is what uncovers the orebody. This is the same waste rationing I found on the small lens mine. Even for blind it costs about 60,000 on this mine compared with no minimum.
Period 2 is where two shafts make it worse. Blind and vertical stop rationing in period 2 and mine at full rate. Diagonal and shallow ration for one more period. Their estimates near the surface show only waste (grades 0.08 to 0.17), which adds to the rock the planner thinks it must save for future minimums. On a dipping deposit with only 6 periods, that one-period delay means the deep ore is never reached.
So the code is right, but the result isn’t about the value of information. It shows the every-period minimum interacting with a mine whose ore is all hidden. Without the minimum, all three shafts are within about 450 of blind on this mine.
Next
- Decide how to handle the dipping result. Either report it as a finding (a hard minimum in every period makes a rolling MILP ration stripping when the ore is hidden), or soften the minimum in future periods only, keeping it hard for the current period so the schedule still meets 1,200 t every period, and rerun the dipping mine.
- Report the blind = 0 rows against greedy, not blind.
- Tighten the full MILP’s solver tolerance if the with/without-minimum comparison needs to be exact.