Repository navigation
Plan on the mean noise in the boiler, kiln and distillation oracles - #58
Merged
Merged
Conversation
Their plant noise (steam demand, raw-meal feed, feed composition) was not declared in noise_fields, so their planners, which roll the simulator with a fixed key, saw the exact noise of protocol seed 0 and a wrong path on every other seed. It is declared now, and a registry test requires every non-zero noise amplitude to be declared (glass furnace, reactor and HVAC pending: their CasADi oracles never roll the simulator). With the noise out of the plan, each optimiser gets the budget the oracle audit measured it needs: boiler 1280 iterations with a step decaying 0.15 -> 0.005; distillation 80 iterations decaying 0.08 -> 0.004; kiln 32 CEM iterations of 96 samples from a 0.1 spread, returning the best sample. Protocol cost: boiler 23.8 -> 4.67, kiln 1.33 -> 0.0705, distillation 0.297 -> 0.0125, zero trips. The NEA floors follow the re-measured holds (rho_floor only; every e_floor stays): kiln 0.468 -> 0.00956, distillation 0.127 -> 8.5e-5, boiler 1.32 -> 1.92 (its old value came from the seed-0 foresight). The three versions are re-stamped in place. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Third step of the oracle audit. The three oracles that saw protocol seed 0's noise now plan on the noise mean, and each gets the optimiser budget it then needs.
The defect
boiler_drum, cement_kiln and distillation have plant noise: steam demand, raw-meal feed and feed composition, respectively. Their registry entries did not declare it in
noise_fields, soplan_paramsleft it on in the planner's copy of the params. These planners roll the simulator with a fixedPRNGKey(0). So on protocol seed 0, whose plant also draws from key 0, they knew the exact future noise, and on seeds 1-2 they planned against a noise path that never happened. The boiler's recorded gain was 0.93 on seed 0 and 38.8 and 31.6 on the others.The fix
noise_fields) for all three, so the planners plan on the mean (certainty equivalence).test_plant_noise_is_declaredis new: every non-zero param ending in_stdor_sigmamust be declared.Zero trips on every seed. More details:
Floors (rho_floor only)
The NEA reference follows the re-measured oracle holds (
scripts/measure_hold.py):(4.89e-5 / 5e-4)^2= 0.00956, from 0.468.(7.64e-7/1e-4)^2 + (5.19e-7/1e-4)^2= 8.5e-5, from 0.127.(2.45e-3/2.67e-3)^2 + (0.0519/0.05)^2= 1.92. That is up from 1.32, because the old pressure term came from the foresight seed's 0.028 bar.Every
e_floorstays. The boiler's 2.67 mm level floor is within 1.1x of the new 2.45 mm hold, and its pressure hold sits just above the 0.05 bar transmitter resolution. Both are inside the 1.5x rule, so the rewards are unchanged and the three versions are re-stamped in place.The boiler planner divides its objective by
rho_floor_tracking, so its hold was re-measured under the new value and is self-consistent: 1.9204 against the 1.9194 set. NEA against the new floors: boiler 0.995, kiln 0.987, distillation about 1.0.Docs
The three PHYSICS.md files,
env.pycomments and factory docstrings, docs/baselines.md (the paragraph on how planners treat noise was wrong and is rewritten; protocol table), docs/reward-shaping.md (floor table, and therho*rule now covers a floor kept within 1.5x), docs/roadmap.md, CHANGELOG, and the generated pages.An adversarial review (four lenses, each finding checked by a skeptic) confirmed the noise plumbing, the floors and the re-stamps. It caught:
sigma_phi0as noise;All are fixed here.
🤖 Generated with Claude Code