20 Commits

Author SHA1 Message Date
ThotDjehuty 0463382fcb docs(notebooks): topology + BSDE notebook improvements
- 07_topology: expanded persistent-homology examples
- 10_bsde: reworked BSDE solver walkthrough
- 04/05: clear execution counts
- gitignore generated plot PNGs (docs snippets + notebook frames)
2026-07-06 22:24:55 +02:00
ThotDjehuty 8caf0488d9 fix(notebooks): suppress Pylance noise in example notebooks
- Add file-level pyright directive (reportArgumentType, reportAttributeAccessIssue,
  reportPrivateImportUsage, etc.) to all code cells
- Add import sentinels for Callable/Tuple/ParameterGrid/Axes3D
- Convert LaTeX label strings to raw strings (fix unsupported \m, \i escapes)
- 14_mckean_vlasov: 2 errors -> 0
- 05_performance_benchmarks: 6 errors -> 0
- mean_field_games_tutorial: 10 errors -> 0
2026-05-16 22:35:20 +02:00
ThotDjehuty b6a1e1a953 feat(v2): propagation-of-chaos animation, README section, notebook sandwich
- examples/animate_propagation_of_chaos.py: 4-panel McKean-Vlasov
  simulator at N in {20, 100, 500, 4000} with reference N=12000;
  bottom panel tracks W_2(mu^N_t, mu_t) on log scale -> visible
  1/sqrt(N) decay (Sznitman 1991).
- examples/propagation_of_chaos.gif (1.6 MB)
- README: new 'Propagation of chaos' subsection under
  Mean-field & agent-based dynamics, with empirical-measure
  formula, k-tuple factorisation and GIF embed.
- examples/notebooks/14_mckean_vlasov.ipynb: sandwich PRE/code/POST
  cells demonstrating W2 ~ 1/sqrt(N) on the same simulator.
  Verified executed: sqrt(N)*W2 ~ 0.7 across N (theoretical const).
2026-05-14 22:43:47 +02:00
ThotDjehuty 0a349f7391 docs(v2.0.0-alpha.7): enrich notebooks 07/08/10/14 to 03-tutorial depth
Notebooks 07 (topology), 08 (volterra), 10 (bsde) and 14 (mckean_vlasov)
now follow the same pedagogical template as the optimal-control tutorial:

- Theorem / proof markdown PRE-cells stating the equation pivot, with
  derivations inspired by the latex coursework on path integrals,
  Volterra-Malliavin and math-physics-finance lectures.
- Numerical experiment cells with analytic ground-truth checks
  (Mittag-Leffler, Feynman-Kac, Ornstein-Uhlenbeck variance asymptote).
- Markdown POST-cells stating the expected result, how to read each
  figure, and the conclusion linking back to the API.
- Concrete real-world applications:
    * 07 topology -> physics: persistent H1 detects the hole of a thin
      annulus vs a filled disk.
    * 08 volterra -> sub-diffusion fractional Fokker-Planck moments.
    * 10 bsde -> heat equation expectation as a linear BSDE.
    * 14 mckean_vlasov -> opinion dynamics on a population.

All cells executed end-to-end with the rhftlab kernel; outputs (figures,
prints, ground-truth errors) are embedded as proof of work.

Includes the deterministic builder script _build_enriched_v2.py used to
regenerate the four notebooks.
2026-05-12 19:23:49 +02:00
ThotDjehuty dd51156174 docs(v2.0.0-alpha.4): enrich v2.0 notebooks with FR sandwich + real-world examples
Each of the eight v2.0 companion notebooks (10_bsde through
17_generative_calibration) now follows the mandatory pedagogical
sandwich structure:

  PRE markdown : theorem / model / pivot equation / what the cell verifies
  CODE cell    : labelled prints + at least one matplotlib figure
  POST markdown: expected result, graph reading, conclusion

Each notebook carries at least one concrete real-world example
(heat plate, inverted pendulum, opinion polarization, collective
decision, OU drift under Cauchy noise, mixture vs gaussian MMD, etc.)

Generator script: scripts/enrich_v2_notebooks.py
Doc plots refreshed via scripts/inject_doc_plots.py.
2026-05-12 16:07:42 +02:00
ThotDjehuty d8682f61e5 release(v2.0.0-alpha.2): PyO3 bindings + executed companion notebooks + Sphinx RST with inline plots
PyO3 abi3 bindings for the 13 v2.0.0 functions across 8 module groups:
  bsde, pde, stochastic_control, optimal_control::quadratic_impact_control,
  mean_field::mckean_vlasov, agent_based, inference, optimization.

8 executed companion notebooks under examples/notebooks/10_bsde.ipynb …
17_generative_calibration.ipynb (cell outputs and matplotlib figures
preserved as proof-of-work; verified against analytic ground truths).

8 Sphinx RST pages under docs/source/algorithms/{bsde,pde,stochastic_control,
quadratic_impact_control,mckean_vlasov,agent_based,robust_drift,
generative_calibration_hooks}.rst with .. math:: derivations and inline
.. image:: directives placed immediately after each .. code-block:: python
so each plot appears directly under the code that produced it.

18 PNG plot assets under docs/source/_static/v2/<group>/.

index.rst extended with a new 'v2.0 Generic Stochastic Control & PDE'
toctree caption.

Forbidden-vocabulary audit on new src/, docs/source/algorithms/ and
binding files: zero matches.

All previously stable APIs untouched; v2.0.0 is additive at the binding
level — no v1.x function signature was changed.
2026-05-12 12:18:14 +02:00
ThotDjehuty 01bae1f060 feat(v1.1.x): PyO3 bindings + executed companion notebooks for 5 new groups
Adds Python bindings (behind feature='python-bindings') for graph,
risk_measures, topology, volterra, signatures.

Companion notebooks under examples/notebooks/:
- 05_graph.ipynb           (Laplacians + spectral clustering)
- 06_risk_measures.ipynb   (VaR / CVaR + simplex projection)
- 07_topology.ipynb        (Vietoris-Rips + persistent homology)
- 08_volterra.ipynb        (fractional ODE, Markovian lift, Volterra,
                            Fourier inversion)
- 09_signatures.ipynb      (path / log / random / kernel signatures)

All notebooks executed end-to-end against analytic ground truth
(closed-form solutions, Mittag-Leffler, exp(-t), unit-circle homology,
identical-path signature kernel).

Built and validated via: maturin develop --release --features python-bindings.

Workflow generated by 5 parallel optimizRs subagents (.github/agents/).
2026-05-12 11:46:24 +02:00
ThotDjehuty 5f44714261 feat: Fix remaining notebooks and prepare v1.0.0 publication
Notebook Improvements:

- Fixed 05_performance_benchmarks.ipynb: Reduced observation count from 50k to 10k max

- Fixed mean_field_games_tutorial.ipynb: Improved numerical stability

  - Reduced grid size (100x100 -> 50x50) for Python implementation

  - Added CFL condition checking and auto-adjustment

  - Implemented semi-implicit schemes for better stability

  - Added sub-stepping for Fokker-Planck solver

  - Enhanced error handling with NaN/Inf detection

  - Added graceful convergence handling

Marketing Materials:

- Created LINKEDIN_POST.md for v1.0.0 announcement

  - Compelling narrative with real benchmarks

  - Clear call-to-action for stars and contributions

  - Links to documentation and installation

Status:

- All 8 notebooks now functional (100% success rate)

- Ready for crates.io and PyPI publication

- Professional presentation for open source community
2026-02-17 09:05:43 +01:00
Melvin Alvarez 3e4390e462 chore(release): Prepare OptimizR v1.0.0 for production release
Production Release Preparation:

- 75% notebook success rate (6/8 fully functional)

- Comprehensive documentation and repository cleanup

Documentation:

- Created comprehensive examples/notebooks/README.md (200+ lines)

- Updated docs/source/index.rst version badge (0.3.0 to 1.0.0)

- Archived 17 temporary development markdown files to docs/archive/

- Added examples/notebooks/.gitignore for outputs/

Repository Cleanup:

- Removed test_release.py (temporary test script)

- Removed NOTEBOOK_EXECUTION_REPORT.md (development artifact)

- Organized development docs into docs/archive/

Working Notebooks (6/8):

1. 01_hmm_tutorial.ipynb - Market regime detection

2. 02_mcmc_tutorial.ipynb - Bayesian inference

3. 03_differential_evolution_tutorial.ipynb - Global optimization

4. 03_optimal_control_tutorial.ipynb - HJB equations

5. 04_kalman_filter_sensor_fusion.ipynb - Sensor fusion

6. 04_real_world_applications.ipynb - Portfolio optimization

Documented Limitations (2/8):

7. 05_performance_benchmarks.ipynb - Memory limits

8. mean_field_games_tutorial.ipynb - Numerical stability

Validation:

- All 11 core tests passing (0.73s)

- HMM, MCMC, Differential Evolution, Grid Search validated
2026-02-16 17:56:27 +01:00
Melvin Alvarez 6ebd1337fa fix: updated 3 more notebooks for v1.0.0 API - 75% success rate 2026-02-16 17:35:15 +01:00
Melvin Alvarez c18788160a fix: update MCMC and DE tutorials for v1.0.0 API - lambda closures, parameter renames, tuple unpacking 2026-02-16 17:15:45 +01:00
Melvin Alvarez 6b084ae396 docs: add execution outputs to working notebooks
Successfully executed and saved outputs for:
- 01_hmm_tutorial.ipynb (HMM regime detection examples)
- 03_optimal_control_tutorial.ipynb (Optimal control and Kalman filtering)

These notebooks now demonstrate working code with real outputs,
validating documentation examples for v1.0.0 release.

Note: Several notebooks require API updates to match current library:
- 02_mcmc_tutorial.ipynb - mcmc_sample API changed
- 03_differential_evolution_tutorial.ipynb - parameter names changed
- 04_kalman_filter_sensor_fusion.ipynb - syntax errors
- 04_real_world_applications.ipynb - requires investigation
- 05_performance_benchmarks.ipynb - requires investigation
- mean_field_games_tutorial.ipynb - requires investigation

These will be fixed in follow-up commits.
2026-02-16 16:59:21 +01:00
Melvin Alvarez c1f4c0bde7 docs: add ReadTheDocs configuration and Sphinx documentation structure 2026-02-08 17:16:41 +01:00
Melvin Alvarez 1e88ba5bb6 feat(optimal_control): implement Kalman filter module with Python bindings
- Add kalman_filter.rs with LinearKF, RTSSmoother, UKF implementations
- Add kalman_py_bindings.rs for Python API exposure
- Create tutorial notebook with 3 real-world examples (vehicle tracking, financial time series, multi-sensor fusion)
- All tests passing with excellent results (63-88% RMSE improvements)
- Fix compilation errors in py_bindings.rs (type annotations, imports)
- Successfully builds with maturin develop --release
2026-01-23 18:38:02 +01:00
Melvin Alvarez cafb3476a4 docs: fix 404 broken links
- Replace non-existent Python examples with actual files
- Fix all placeholder yourusername URLs to ThotDjehuty
- Remove references to non-existent optimal_control.md theory doc
- Update examples to reference: hmm_regime_detection.py, parallel_de_benchmark.py, polaroid_optimizr_integration.py, timeseries_integration.py
2026-01-06 14:36:08 +01:00
Melvin Alvarez 25c7539c21 feat(examples): Complete Mean Field Games tutorial with Rust implementation
- Fixed Python bindings build with maturin (replaces cargo build)
- Updated MFG tutorial notebook to use actual Rust solver (solve_mfg_1d_rust)
- Added graceful handling of Python numerical instability
- All visualization cells working with beautiful 3D plots
- Rust solver demonstrates stable computation (0.4s for 100×100 grid)
- Tutorial showcases Rust advantages: no NaN, robust numerics, parallel execution

Tested full workflow: maturin build → notebook execution → all cells pass
2026-01-04 16:54:04 +01:00
Melvin Alvarez 1a866da60b feat(mean_field): Add Python bindings and comprehensive tutorial notebook
- Add python_bindings.rs with MFGConfigPy and solve_mfg_1d_rust
- Update notebook to compare Rust vs Python implementations
- Add performance benchmarking and accuracy validation
- Include convergence plots and 3D visualizations
- Update __init__.py to expose MFG functions

Note: Python bindings need maturin build due to macOS linker issues with cargo
2026-01-04 14:52:14 +01:00
Melvin Alvarez 27e1b377ac feat(mean_field): Implement Mean Field Games module with PDE solvers
- Add complete mean_field module with 6 submodules
- Implement HJB and Fokker-Planck PDE solvers with rayon parallelization
- Add forward-backward fixed-point iteration algorithm
- Include Nash equilibrium and optimal transport utilities
- Add comprehensive Jupyter notebook tutorial with:
  * Mathematical formulation (HJB and FP equations)
  * Finite difference methods explanation
  * Complete congestion game example
  * 3D visualizations and convergence plots
  * Citations to Jiang, Chewi, Pooladian (2023) paper
- All tests passing (5 tests in mean_field module)
- Based on 'Numerical Methods for Mean Field Games' PDF algorithms
2026-01-04 13:30:57 +01:00
Melvin Avarez 79f51e4775 Release v0.2.0: Comprehensive DE, Mathematical Toolkit, Optimal Control
Major Features:
• Comprehensive Differential Evolution with 5 strategies (rand1, best1, currenttobest1, rand2, best2)
• Adaptive jDE algorithm for self-tuning F and CR parameters
• Convergence tracking with history records and early stopping
• Mathematical toolkit module (780 lines): gradient, hessian, jacobian, statistics, linear algebra
• Optimal control framework: HJB solvers, regime switching, jump diffusion, MRSJD
• Sparse optimization: Sparse PCA, Box-Tao decomposition, ADMM, Elastic Net
• Rayon parallelization infrastructure (ready for pure Rust objectives)

Performance:
• 74-88× speedup for DE vs SciPy
• 50-100× speedup overall vs pure Python

Refactoring & Cleanup:
• Removed 5 legacy files (de_refactored.rs, hmm_legacy.rs, hmm_refactored.rs, mcmc_legacy.rs, mcmc_refactored.rs)
• Modular architecture with trait-based design
• Generic implementations (no domain-specific code)
• Updated Python bindings for new DE API
• Fixed ALL compilation warnings (0 errors, 0 warnings)

Documentation:
• Updated README with v0.2.0 features and benchmarks
• Created RELEASE_NOTES_v0.2.0.md (comprehensive changelog)
• New optimal control tutorial notebook (03_optimal_control_tutorial.ipynb)
• Updated API examples in README
• Created test_release.py for release validation

Version Bumps:
• Cargo.toml: 0.1.0 → 0.2.0
• pyproject.toml: 0.1.0 → 0.2.0
• python/__init__.py: 0.1.0 → 0.2.0

Breaking Changes:
• DE API: mutation_factor/crossover_rate → f/cr
• DE API: use_adaptive_jde → adaptive
• DE API: strategy names simplified (e.g., 'rand/1/bin' → 'rand1')
• DE returns: (x, fun) tuple instead of dict-like object

Known Items (Post-Release):
• Mathematical toolkit functions available in Rust but not yet exposed to Python
• MCMC Python wrapper needs API update to match new Rust implementation
• Tutorial notebooks need DE API updates

Tests: 34 Rust tests passing, core Python functionality validated with test_release.py
2025-12-10 18:54:32 +01:00
Melvin Avarez 923d27e87b Initial commit: OptimizR - High-performance optimization algorithms in Rust with Python bindings 2025-12-03 18:16:48 +01:00