release(v2.0.0-alpha.1): top-level reorg + bsde/pde/stochastic_control + mean_field/agent_based/inference/optimization
Phase 1 (top-level reorg):
- matrix_riccati promoted to crate root via re-export
- new top-level groups: bsde, pde, stochastic_control,
agent_based, inference, optimization
Phase 2 (bsde):
- theta_scheme: linear-BSDE theta-scheme
- deep_bsde_bridge: ConditionalExpectation trait + driver
Phase 3 (pde):
- fokker_planck: 1D forward FP with conservative central FD
- hjb_multid: explicit n-D HJB on Cartesian grid (d <= 3)
- elliptic_fd: 2D Poisson SOR solver
Phase 4 (stochastic_control):
- optimal_switching: Snell envelope backward induction
- pontryagin: 1D LQR Riccati shooting
- two_sided_intensity_control: bilateral intensity control
Phase 5/6 (controls):
- optimal_control::quadratic_impact_control (closed-form Riccati)
- stochastic_control::two_sided_intensity_control
Phase 7 (mean_field + agent_based):
- mean_field::mckean_vlasov: interacting-particle Euler scheme
- agent_based::mod: generic interacting-agent simulator
Phase 8 (inference + optimization):
- inference::robust_drift: Huber IRLS drift estimator
- optimization::generative_calibration_hooks: GenerativeSampler trait
+ Gaussian MMD + finite-diff calibration step
Tests: 38 NEW tests, all passing (165/170 lib total; the 5 pre-existing
failures predate v1.1 and are tracked separately).
Versions bumped: Cargo 2.0.0-alpha.1, pyproject 2.0.0a1.
Deferred to subsequent v2.0.x bumps (parallelisable follow-ups):
PyO3 bindings, executed companion notebooks, Sphinx RST pages,
hfthot-lab-instance propagation.
This commit is contained in:
@@ -4,6 +4,58 @@ All notable changes to **optimiz-rs** are documented in this file. The format
|
||||
follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the project
|
||||
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [2.0.0-alpha.1] - 2026-05-12
|
||||
|
||||
### Added — top-level reorganisation and new generic primitives
|
||||
|
||||
- **Top-level reorg (additive aliases — backward compatible at the Rust
|
||||
level).** `optimiz_rs::matrix_riccati` is now re-exported at the crate
|
||||
root. New top-level groups: `bsde`, `pde`, `stochastic_control`,
|
||||
`agent_based`, `inference`, `optimization`.
|
||||
- `bsde::theta_scheme` — implicit/explicit θ-scheme for linear BSDEs
|
||||
with deterministic coefficients (closed-form analytic test against
|
||||
the deterministic ODE `dY = -ρ Y dt`).
|
||||
- `bsde::deep_bsde_bridge` — `ConditionalExpectation` trait and
|
||||
`DeepBsdeBridge` driver providing the CPU-side recursion hook for
|
||||
external function approximators.
|
||||
- `pde::fokker_planck` — 1-D forward Fokker--Planck solver with
|
||||
conservative central differences and explicit positivity safeguard.
|
||||
- `pde::hjb_multid` — explicit upwind solver for multidimensional HJB
|
||||
on a regular Cartesian grid (`d ≤ 3`) with reflective boundaries.
|
||||
- `pde::elliptic_fd` — 2-D Poisson `-Δu = f` SOR solver verified
|
||||
against the `sin(πx) sin(πy)` eigenfunction.
|
||||
- `stochastic_control::optimal_switching` — Snell-envelope backward
|
||||
induction for discrete multi-mode optimal switching.
|
||||
- `stochastic_control::pontryagin` — Riccati-shooting solver for the
|
||||
1-D LQR Pontryagin maximum principle (verified against the
|
||||
closed-form `P(t) = s_T / (1 + s_T (T-t))`).
|
||||
- `stochastic_control::two_sided_intensity_control` — generic
|
||||
bilateral intensity control with affine per-jump premia.
|
||||
- `optimal_control::quadratic_impact_control` — closed-form Riccati
|
||||
feedback for a controlled SDE with quadratic running cost.
|
||||
- `mean_field::mckean_vlasov` — interacting-particle Euler scheme for
|
||||
generic McKean--Vlasov SDEs with empirical-measure drift.
|
||||
- `agent_based` — generic interacting-agent simulator (consensus
|
||||
dynamics test recovers the empirical mean exactly without noise).
|
||||
- `inference::robust_drift` — Huber-loss IRLS estimator for the drift
|
||||
of a 1-D OU-type discrete-time process; resists 5 % outliers.
|
||||
- `optimization::generative_calibration_hooks` — `GenerativeSampler`
|
||||
trait + Gaussian MMD loss + finite-difference calibration step.
|
||||
|
||||
### Tests
|
||||
|
||||
- 38 new `#[test]` cases — all passing (`cargo test --lib
|
||||
--no-default-features` passes 165/170, the 5 pre-existing failures
|
||||
predate v1.1 and are unrelated).
|
||||
|
||||
### Notes — deferred to subsequent v2.0.x bumps
|
||||
|
||||
- PyO3 Python bindings + executed companion Jupyter notebooks for the
|
||||
new groups (will follow the same workflow as v1.1.x).
|
||||
- Sphinx RST documentation pages for `bsde`, `pde`,
|
||||
`stochastic_control`, `agent_based`, `inference`, `optimization`.
|
||||
- Propagation of new modules into `hfthot-lab-instance` consumers.
|
||||
|
||||
## [1.1.0] - 2026-05-12
|
||||
|
||||
### Added — purely additive, no existing API changes
|
||||
|
||||
Reference in New Issue
Block a user