Why is this LP hard?

Created by Zikai Xiong · Based on Xiong, arXiv:2410.04043

Restarted PDHG (rPDHG) is a first-order method for linear programs. Here it solves a tiny LP (4 variables, 2 constraints) and its dual at the same time. Start with the three steps below.

The LP

min c⊤x  s.t.  Ax = b, x ≥ 0
–

Its dual

max b⊤y  s.t.  A⊤y ≤ c
–

Iterations of rPDHG to reach ε = 10⁻⁶

–

What makes it hard: Φ

Φ = min{ , } = –

θp and θd are the angles marked in the two pictures (here ‖c‖ = ‖b‖ = 1). The iteration bound of [A] grows with Φ. Hover over a term for its meaning.

Every direction of the arrows

iterationsΦexact tie

After step 3, these charts show the iterations for every direction of each arrow.

Convergence of this run

errorrestart

The error of rPDHG’s average iterate; ticks mark restarts. Near a tie, each restart cycle takes longer.

© 2026 Zikai Xiong · All interactive demos