Skip to content

Commit dbba4dd

Browse files
frapacblegat
andauthored
Implement main nonlinear reformulations for complementarity constraints (#9)
* implement main nonlinear reformulations for complementarity constraints * fix CI * fix formulation of Fischer-Burmeister relaxation * Relax tol * Fix test --------- Co-authored-by: Benoît Legat <benoit.legat@gmail.com>
1 parent e3969ed commit dbba4dd

7 files changed

Lines changed: 387 additions & 73 deletions

File tree

src/ComplementOpt.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ module ComplementOpt
33
using JuMP
44
const MOIU = MOI.Utilities
55

6+
include("utils.jl")
67
include("vertical.jl")
78
include("nonlinear.jl")
89
include("MOI_wrapper.jl")

src/MOI_wrapper.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ struct Reformulation <: MOI.AbstractOptimizerAttribute end
22

33
struct Optimizer{O<:MOI.ModelLike} <: MOI.AbstractOptimizer
44
optimizer::O
5-
reformulation
5+
reformulation::AbstractComplementarityRelaxation
66
function Optimizer(optimizer::MOI.ModelLike)
77
return new{typeof(optimizer)}(
88
optimizer,
9-
NonlinearReformulation(),
9+
ScholtesRelaxation(0.0),
1010
)
1111
end
1212
end
@@ -59,7 +59,7 @@ function MOI.copy_to(dest::Optimizer, src::MOI.ModelLike)
5959
)
6060
tmp_index_map = MOI.copy_to(tmp, src)
6161
reformulate_to_vertical!(tmp)
62-
reformulate_as_nonlinear_program!(tmp)
62+
reformulate_as_nonlinear_program!(tmp, dest.reformulation)
6363
# TODO combine with `tmp_index_map`
6464
return MOI.copy_to(dest.optimizer, tmp)
6565
end

0 commit comments

Comments
 (0)