perf(planning): prune candidates that cannot beat the protected prefix #284
Notifications
Due Date
No due date set.
Blocks
Depends on
#286 perf(planning): accept the speed target and lower the hang-guard timeout
nessar/vac-optimizer
#283 perf(planning): update plan observations incrementally
nessar/vac-optimizer
Reference: nessar/vac-optimizer#284
Reference in new issue
Block a user
Parent
#279
What to build
Reject candidate plans before full scoring when the best value they could reach on the protected prefix of the planning objective order cannot beat the current candidate. Bounds come from the incremental observations and must be provably safe: pruning never changes which candidate wins, so planning results stay identical while far fewer candidates are fully scored.
Acceptance criteria
Blocked by
Done in PR #287 (
68a9e33): candidates are rejected before finalization when the first differing finalize-invariant protected objective is worse; leave-placement and earning leave-balance objectives (and unknown kinds) are never pruned. Cancelled-run differential check covers retained incumbents. Loaded year 48.5 s -> 44.3 s. Known gap: no test catches wrongly treating the excluded objectives as exact; see docs/benchmark/issue-279.md.