Skip to content

Add a square slack model #139

Closed
Closed

Description

@MaxenceGollier

I propose to add a new slack-model: square-slack-model.
It would transform the problem

$$\begin{aligned} \min_x \quad & f(x)\\\ \mathrm{s.t.} \quad & g(x) \leq 0, \\\ \end{aligned}$$

into

$$\begin{aligned} \min_{x, y} \quad & f(x)\\\ \mathrm{s.t.} \quad & g(x) + y^2 = 0,\\\ \end{aligned}$$

see

I have a few questions @dpo, is this the formulation you had in mind last week ? Do we apply this procedure only on nonlinear inequality constraints or to box constraints as well ? For my solver, I'd need to apply it to both but i am not sure whether this is a good thing to do in general.

Activity

  1. dpo commented on Mar 12, 2026

    @dpo
    Member

    @MaxenceGollier The squared slacks transformation is useful in theory (for example, to derive the augmented Lagrangian method for inequality constraints or the second-order stationarity conditions for problems with inequality constraints), but in practice, it has serious disadvantages: https://publications.polymtl.ca/4755/1/2012_Armand_Squared_slacks_transformation_nonlinear_programming.pdf

  2. MaxenceGollier commented on Mar 16, 2026

    @MaxenceGollier
    ContributorAuthor

    @dpo, I am confused, you suggested a few weeks ago for me to use this approach to allow my equality-constraint solver to handle inequalities ?

  3. dpo commented on Mar 16, 2026

    @dpo
    Member

    I said it would be an easy way to perform quick tests on inequality-constrained problems, but I don't think it's a viable long-term approach.

  4. MaxenceGollier commented on Mar 19, 2026

    @MaxenceGollier
    ContributorAuthor

    Ha, ok, closing this then.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions