Expand description
Distributionally Robust Optimization (DRO).
This module provides optimization algorithms that are robust against distributional uncertainty. Rather than assuming that the true data distribution is exactly the empirical distribution P_N, DRO seeks a decision that minimises the worst-case expected loss over an ambiguity set of plausible distributions.
§Sub-modules
types: shared configuration and result typeswasserstein_dro: Wasserstein-ball DRO (Esfahani & Kuhn 2018)cvar_dro: CVaR-based DRO (Rockafellar & Uryasev 2000)
§Quick start
use scirs2_optimize::dro::{portfolio_dro, solve_cvar_dro, DroConfig};
// Synthetic return data (3 assets, 20 observations).
let returns: Vec<Vec<f64>> = (0..20)
.map(|i| vec![0.01 * i as f64, 0.02, -0.005 * i as f64])
.collect();
// Wasserstein DRO portfolio (ε = 0.05).
let result = portfolio_dro(&returns, 0.05, None).expect("dro ok");
println!("Robust weights: {:?}", result.optimal_weights);
println!("Worst-case loss: {:.4}", result.worst_case_loss);
// CVaR-DRO with α = 0.9.
let samples: Vec<Vec<f64>> = (0..20).map(|i| vec![0.01 * i as f64, 0.02]).collect();
let cvar_result = solve_cvar_dro(2, &samples, 0.9, 0.1, None).expect("cvar dro ok");
println!("CVaR-DRO weights: {:?}", cvar_result.optimal_weights);§References
- Esfahani, P. M. & Kuhn, D. (2018). “Data-driven distributionally robust optimization using the Wasserstein metric.” Mathematical Programming.
- Rockafellar, R. T. & Uryasev, S. (2000). “Optimization of conditional value-at-risk.” Journal of Risk.
Re-exports§
pub use cvar_dro::solve_cvar_dro;pub use cvar_dro::CvarDro;pub use cvar_dro::CvarEstimator;pub use types::DroConfig;pub use types::DroResult;pub use types::DroSolver;pub use types::RobustObjective;pub use types::WassersteinBall;pub use wasserstein_dro::portfolio_dro;pub use wasserstein_dro::portfolio_erm;pub use wasserstein_dro::WassersteinDro;
Modules§
- cvar_
dro - CVaR-based Distributionally Robust Optimization.
- types
- Types for Distributionally Robust Optimization (DRO).
- wasserstein_
dro - Wasserstein Distributionally Robust Optimization.