v0.3.0 — applied-RL hardening
Highlights
Honest, multi-seed proof. The applied-RL results are now mean ± std over 3 seeds against the strong classical baseline, not single-seed figures or straw men. RL wins five (e.g. non-stationary inventory 278.5 ± 2.4 vs 240.7 best fixed base-stock, +16%; energy vs a greedy price-threshold controller; queue vs the best value threshold) and honestly matches the optimum on two (stationary inventory, pricing).
Real Stable-Baselines3 comparison in the docs: PPO CartPole parity 500/500, DQN CartPole 327 ± 122 vs 96 ± 57.
Added
decisionrl.baselines— reusable classical baselines incl. the exact newsvendor base-stock optimum.NonstationaryInventory— the "classical methods break" environment (19 envs, 7 applied).decisionrl.config— YAML/JSON experiment runner +decisionrl run <config>CLI.decisionrl.tracking— reproducibility manifests (git SHA, versions, seed, config, metrics).render_rgbon every applied env; Applied-RL notebook; multi-seed verification script.
Changed
- Repositioned end-to-end around operational decisions ("Beyond operations" section for the broader library); "Why RL, and not a solver?" section.
- CI slow job parallelized with pytest-xdist.
Install: pip install -U decisionrl