/convex-optimization-admm

Implements the alternating direction method of multipliers and it's faster variants in python to optimize a quadratic program

Primary LanguageJupyter Notebook

ADMM

This repository contains code that implements ADMM in Python 3 (alternating direction method of multipliers), AMA (alternating minimization algorithm), and their faster variants to optimize a linearly constrained quadratic program as outlined in the paper "Fast Alternating Direction Optimization Methods" (Goldstein et. al, 2014)

There is a report attached that contains several theoretical proofs, simulation results, and analysis of the algorithm by taking inspiration from the paper above. It also discusses other related ideas. This work was done as part of the course "Convex Optimization" at IIT Kanpur.

Goldstein, Tom, Brendan O'Donoghue, Simon Setzer, and Richard Baraniuk. 
"Fast alternating direction optimization methods." 
SIAM Journal on Imaging Sciences 7, no. 3 (2014): 1588-1623.