3. User Guide

Use this chapter as a guided path from your first ADMM model to the deeper ideas behind the modeling workflow. For exact signatures, see the Python API.

How to Use This Chapter

Read this chapter in two passes. Getting Started is the hands-on path: begin with a minimal example, confirm that your formulation fits the supported structure, and then work through the standard modeling sequence from variables to solve-time results. Conceptual Background is the deeper path: return there after the workflow feels familiar to understand the available building blocks, the symbolic rewrites performed under the hood, and how to extend the library when built-in atoms are not enough.

If you are new to ADMM, follow the roadmap below from top to bottom. If you already know the basic workflow and want the reasoning behind it, jump directly to the conceptual material.

Guided roadmap

Section

What you learn next

Minimal Model

build a first working model with one parameter, one objective, and simple constraints

Supported Problem Structure

check early whether your formulation matches the patterns that ADMM is designed to handle

Modeling Workflow

see the full end-to-end sequence so the rest of the chapter has a clear map

Variables

introduce scalar, vector, and matrix variables together with the structural attributes they need

Parameters

separate reusable model structure from named data that you bind at solve time

Objective

assemble a scalar objective from affine terms, quadratics, and supported atoms

Constraints

add equality, inequality, and cone-style conditions to complete the model

Solver Options

tune practical solver settings and learn the checks that matter for reliable runs

Solve the Model

run the solve step and interpret the returned results with the right expectations

Model Save and Reload

save a finished model and reload it for later runs or downstream workflows

Supported Building Blocks

step back from the workflow and study the losses, penalties, indicators, and structural atoms

Symbolic Canonicalization

understand how ADMM rewrites expressions into solver-ready forms behind the scenes

User-Defined Proximal Extensions

extend the library with custom proximal operators when the standard path is no longer enough

This is the practical route through the modeling workflow. Follow these pages in order if you want to get a model running before diving into the internals.

This is the follow-on reading path for understanding what the workflow is built from and how it can be extended.