Optimization Solvers
A comprehensive Rust library implementing composable state-of-the-art numerical optimization algorithms with WebAssembly support for browser-based optimization.
Quick Start
use ;
// Run optimization with any solver
let result = solver.minimize;
📚 Documentation & Resources
- Documentation - Full Rust API documentation
- Examples - Complete examples for all optimization algorithms
- WASM Documentation - Browser-based optimization with WebAssembly
- Academic resources - Misc of papers/books about numerical optimization
🧮 Solver Categories
First-Order Methods
- Gradient Descent - Classic steepest descent
- Projected Gradient - Constrained optimization
- Coordinate Descent - Coordinate-wise optimization
- SPG - Spectral Projected Gradient
- P-Norm Descent - Lp-norm based descent
Quasi-Newton Methods
- BFGS - Broyden-Fletcher-Goldfarb-Shanno
- DFP - Davidon-Fletcher-Powell
- Broyden - Broyden's method
- L-BFGS-B - Limited-memory BFGS with bounds (enable
lbfgsbfeature flag)
Second-Order Methods
- Newton's Method - Classical Newton optimization
- Projected Newton - Constrained Newton
- SPN - Spectral Projected Newton
🚀 Getting Started
# Add to Cargo.toml
# Run examples
# Build for WebAssembly
&&
📦 Features
- Multiple Algorithms: 15+ optimization algorithms
- WebAssembly Support: Run in browsers with full performance
- Line Search Methods: Backtracking, More-Thuente, and more
- Bounded Optimization: Support for box constraints
- Comprehensive Examples: Ready-to-run examples for all solvers