Skip to main content

Module distributed_admm

Module distributed_admm 

Source
Expand description

Distributed ADMM, PDMM, and EXTRA algorithms.

This module implements distributed optimization methods based on the Alternating Direction Method of Multipliers (ADMM) and related algorithms:

  • Consensus ADMM (Boyd et al. 2011): Scalable distributed optimization using augmented Lagrangian decomposition with warm-starting support.
  • Lasso via ADMM: Canonical example with closed-form x/z updates.
  • PDMM (Chang et al. 2015): Decentralized ADMM over general network topologies.
  • EXTRA (Shi et al. 2015): Gradient-tracking algorithm for exact decentralized consensus without diminishing step sizes.

§Quick Start

use scirs2_optimize::distributed_admm::{solve_lasso_admm, AdmmConfig};

let a = vec![
    vec![1.0, 0.0],
    vec![0.0, 1.0],
    vec![1.0, 1.0],
];
let b = vec![1.0, 0.0, 1.0];
let config = AdmmConfig::default();
let result = solve_lasso_admm(&a, &b, 0.1, &config).expect("Lasso ADMM failed");
println!("Solution: {:?}", result.x);
println!("Converged: {}", result.converged);

§References

  • Boyd et al. (2011). “Distributed Optimization and Statistical Learning via the Alternating Direction Method of Multipliers.” Foundations and Trends in ML.
  • Chang et al. (2015). “Multi-Agent Distributed Optimization via Inexact Consensus ADMM.” IEEE Trans. Signal Processing.
  • Shi et al. (2015). “EXTRA: An Exact First-Order Algorithm for Decentralized Consensus Optimization.” SIAM J. Optim.

Re-exports§

pub use admm::consensus_admm;
pub use admm::solve_lasso_admm;
pub use admm::AdmmSolver;
pub use pdmm_extra::metropolis_hastings_weights;
pub use pdmm_extra::ring_topology;
pub use pdmm_extra::ExtraSolver;
pub use pdmm_extra::PdmmSolver;
pub use types::AdmmConfig;
pub use types::AdmmResult;
pub use types::ConsensusNode;
pub use types::ExtraConfig;
pub use types::PdmmConfig;

Modules§

admm
ADMM (Alternating Direction Method of Multipliers) with warm-starting.
pdmm_extra
PDMM (Primal-Dual Method of Multipliers) and EXTRA algorithms.
types
Types for Distributed ADMM, PDMM, and EXTRA algorithms.