Skip to main content

scirs2_optimize/distributed_admm/
mod.rs

1//! Distributed ADMM, PDMM, and EXTRA algorithms.
2//!
3//! This module implements distributed optimization methods based on the
4//! Alternating Direction Method of Multipliers (ADMM) and related algorithms:
5//!
6//! - **Consensus ADMM** (Boyd et al. 2011): Scalable distributed optimization
7//!   using augmented Lagrangian decomposition with warm-starting support.
8//! - **Lasso via ADMM**: Canonical example with closed-form x/z updates.
9//! - **PDMM** (Chang et al. 2015): Decentralized ADMM over general network topologies.
10//! - **EXTRA** (Shi et al. 2015): Gradient-tracking algorithm for exact decentralized
11//!   consensus without diminishing step sizes.
12//!
13//! # Quick Start
14//!
15//! ```rust
16//! use scirs2_optimize::distributed_admm::{solve_lasso_admm, AdmmConfig};
17//!
18//! let a = vec![
19//!     vec![1.0, 0.0],
20//!     vec![0.0, 1.0],
21//!     vec![1.0, 1.0],
22//! ];
23//! let b = vec![1.0, 0.0, 1.0];
24//! let config = AdmmConfig::default();
25//! let result = solve_lasso_admm(&a, &b, 0.1, &config).expect("Lasso ADMM failed");
26//! println!("Solution: {:?}", result.x);
27//! println!("Converged: {}", result.converged);
28//! ```
29//!
30//! # References
31//! - Boyd et al. (2011). "Distributed Optimization and Statistical Learning via
32//!   the Alternating Direction Method of Multipliers." Foundations and Trends in ML.
33//! - Chang et al. (2015). "Multi-Agent Distributed Optimization via Inexact
34//!   Consensus ADMM." IEEE Trans. Signal Processing.
35//! - Shi et al. (2015). "EXTRA: An Exact First-Order Algorithm for Decentralized
36//!   Consensus Optimization." SIAM J. Optim.
37
38pub mod admm;
39pub mod pdmm_extra;
40pub mod types;
41
42pub use admm::{consensus_admm, solve_lasso_admm, AdmmSolver};
43pub use pdmm_extra::{metropolis_hastings_weights, ring_topology, ExtraSolver, PdmmSolver};
44pub use types::{AdmmConfig, AdmmResult, ConsensusNode, ExtraConfig, PdmmConfig};