You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
using Complementarity, JuMP
m =MCPModel()
@variable(m, x >=0)
@mapping(m, F, x+2)
@complementarity(m, F, x)
status =solveMCP(m)
@showresult_value(x)
Mathematical Programs with Equilibrium Constraints (MPEC)
NOTE: For solving MPEC, JuMP.jl v0.21 has started supporting complementarity constraints. At this moment, GAMS.jl and KNITRO support complementarity constraints.
For solving mathematical programs with equilibrium constraints (MPEC), this package provides an extension to JuMP.jl by providing a macro that accepts complementarity conditions as constraints. Then it reformulates the complementarity conditions as a set of equality and inequality constraints so that a nonlinear optimization solver such as Ipopt.jl can solve the problem. See the documentation.
min f(x)
s.t. g(x) ≤ 0
F(x) ⟂ lb ≤ x ≤ ub
A very simple example:
min x^3
s.t. (x+2) x = 0, x ≥ 0, x+2 ≥ 0
using JuMP, Ipopt, Complementarity
m =Model(Ipopt.Optimizer)
@variable(m, x>=0)
@NLobjective(m, Min, x^3)
@complements(m, 0<= x+2, x >=0)
solve(m)
@showgetvalue(x)
Installation
Pkg.add("Complementarity")
This will also install a few other packages.
About
provides a modeling interface for mixed complementarity problems (MCP) and math programs with equilibrium problems (MPEC) via JuMP