Skip to content

Releases: DrobyshevDev/decisionrl

v0.4.0

Choose a tag to compare

@DenisDrobyshev DenisDrobyshev released this 18 Jul 03:25

Added

  • decisionrl.solvers: exact dynamic-programming optima (value iteration). The learned inventory policy matches the DP optimum (196.1).
  • JointPricingInventory: coupled price and order decisions with no closed-form optimum (20 environments, 8 applied).
  • Gymnasium registration: gymnasium.make("decisionrl/<Env>-v0") for every built-in environment.
  • Applied RL cookbook and a self-contained in-browser demo of a trained policy vs the base-stock rule.
  • Nightly workflow that re-runs the multi-seed applied verification and fails on a regression.

Changed

  • README rewritten in a concise, professional style.
  • Benchmarks: CleanRL reference column; test coverage (86%) measured in CI with a badge.

Install: pip install -U decisionrl

v0.3.0 — applied-RL hardening

Choose a tag to compare

@DenisDrobyshev DenisDrobyshev released this 17 Jul 22:30

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_rgb on 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

v0.2.0

Choose a tag to compare

@DenisDrobyshev DenisDrobyshev released this 13 Jul 23:21

Highlights

Renamed to decisionrl — one name everywhere (pip install decisionrl, import decisionrl). Breaking: update imports reinforce.*decisionrl.*.

Repositioned around applied RL — reinforcement learning for operational decisions (pricing, inventory, energy, queues, supply chains), each environment shipped with the classic operations-research baseline so a learned policy can be proved better, not just asserted.

Added

  • Four applied environments — DynamicPricing, QueueAdmissionControl, EnergyMicrogrid, SupplyChain — bringing the total to 18 environments (6 applied), each with a baseline and a learning test.
  • examples/applied_rl_demo.py: trains all six applied tasks and prints the learned-vs-baseline proof table (RL beats the naive baseline on five, recovers the base-stock optimum on inventory).
  • Baseline comparison harness vs Stable-Baselines3 (examples/benchmark_vs_baselines.py).
  • TRPO, meta-RL (RL²), and BernoulliBandit.

Changed

  • DistributedActorLearner gained a configurable recv_timeout (no more deadlock on a crashed actor).
  • README, banner and docs repositioned around applied RL. 31 algorithms, 345 tests.

Full details in CHANGELOG.md.

Full Changelog: https://github.com/DenisDrobyshev/decisionrl/commits/v0.2.0