Gilles Bareilles

I'm quite fond of the Julia programming language, here are some of my projects.

  1. Toolboxes
    1. NonSmoothSolvers.jl
    2. RandomizedProgressiveHedging.jl
    3. QuadProgSimplex.jl
    4. QuadProgSpectraplex.jl
  2. Paper code
    1. Additive nonsmooth minimization
    2. Composite nonsmooth minimization
  3. Other projects and dependencies
    1. Optimization Plots
    2. Side projects
    3. Old projects



We consider the problem

minxRnF(x), \min_{x\in \mathbb{R}^n} F(x),

where F:RnRF:\mathbb{R}^n \to \mathbb{R} is nonsmooth: at point xx, one can compute F(x)F(x) and vF(x)v\in\partial F(x).

\triangleright NonSmoothSolvers.jl implements the following algorithms:

\triangleright NonSmoothProblems.jl implements some classical problems:


RandomizedProgressiveHedging.jl: a julia package for solving multistage stochastic problems by randomized versions of the progressive hedging algorithm.


QuadProgSimplex.jl: an active set algorithm to minimize certain quadratic functions on the simplex, in arbitrary precision.[4][5]

minxRm12Ax2+p,x s.t. x0, ixi=1. \min_{x\in\mathbb{R}^m} \frac{1}{2}\|Ax\|^2 + \langle p, x\rangle \quad \text{ s.t. } \quad x \ge 0, \; \sum_i x_i = 1.


QuadProgSpectraplex.jl: an active set algorithm to minimize smooth functions on the spectraplex, in arbitrary precision.

minZRm×mf(x) s.t. Z=Z, Z0, tr(Z)=1. \min_{Z\in\mathbb{R}^{m\times m}} f(x) \quad \text{ s.t. } \quad Z = Z^\top,\; Z \succeq 0, \; \mathrm{tr}(Z) = 1.

Implements the algorithm proposed in: B, Iutzeler, Malick (2022) Newton Acceleration on Manifolds Identified by Proximal Gradient Methods, Mathematical Programming.

Paper code

Additive nonsmooth minimization

minxRnf(x)+g(x),\min_{x\in\mathbb{R}^n} f(x) + g(x),

where ff is smooth and gg is nonsmooth but "prox-easy".

\triangleright B, Iutzeler, Malick (2022) Newton Acceleration on Manifolds Identified by Proximal Gradient Methods, Mathematical Programming.

Composite nonsmooth minimization

minxRngc(x),\min_{x\in\mathbb{R}^n} g \circ c(x),

where cc is a smooth map and gg is nonsmooth but "prox-easy".

\triangleright B, Iutzeler, Malick (2022) Harnessing Structure in Composite Nonsmooth Minimization.

Other projects and dependencies

Optimization Plots

PlotsOptim.jl provides convenience helpers to build PGF/Tikz plots from julia. Tailored for suboptimality type curves, or 2d plots of iterates.

Side projects

Old projects


[1] Mifflin, Sagastizábal (2005) A VU-algorithm for Convex Minimization, Mathematical Programming.
[2] Lewis, Overton (2013) Nonsmooth Optimization via Quasi-Newton Methods, Mathematical Programming.
[3] Burke, Curtis, Lewis, Overton, Simões (2018) Gradient Sampling Methods for Nonsmooth Optimization, Numerical Nonsmooth Optimization.
[4] Kiwiel (1986) A Method for Solving Certain Quadratic Programming Problems Arising in Nonsmooth Optimization, IMA Journal of Numerical Analysis.
[5] Wolfe (1976) Finding the Nearest Point in A Polytope, Mathematical Programming.