jump-dev / Pajarito.jl

A solver for mixed-integer convex optimization
Mozilla Public License 2.0
130 stars 22 forks source link

Possible Issue with MIQP #242

Closed ccoffrin closed 7 years ago

ccoffrin commented 7 years ago

In starting to update PowerModels to JuMP 0.16 (https://github.com/lanl-ansi/PowerModels.jl/tree/jump-16), I am observing an issues with the MIQP models. The issue is that objective value returned is 0.0 when it should be a significant positive value. This issue does not seem to be occurring on MIQCQP cases.

A detailed example from the head of Pajarito and jump-16 branch of PowerModels,

using PowerModels; using Ipopt; using GLPKMathProgInterface; using Pajarito
ipopt_solver = IpoptSolver(tol=1e-6, print_level=0)
pajarito_solver = PajaritoSolver(mip_solver=GLPKSolverMIP(), cont_solver=ipopt_solver, log_level=3)
run_ots("$(Pkg.dir("PowerModels"))/test/data/case3.m", DCPPowerModel, pajarito_solver)

The output is,

Constraint 1 value -0.0 linear true
Constraint 2 value 0.0 linear true
Constraint 3 value 0.0 linear true
Constraint 4 value 0.0 linear true
Constraint 5 value -0.34409598949170794 linear true
Constraint 6 value -1.1465725422885915 linear true
Constraint 7 value -1.2188792227603555 linear true
Constraint 8 value -0.38794013974209607 linear true
Constraint 9 value -0.38490655239586663 linear true
Constraint 10 value -0.08069398241593378 linear true
Constraint 11 value -0.8914425662239588 linear true
Constraint 12 value -0.16172792091449162 linear true
Constraint 13 value -0.9932385133818897 linear true
Constraint 14 value -0.5289178641044061 linear true
Constraint 15 value -49.80254840568067 linear true
Constraint 16 value -48.55804302765857 linear true
Constraint 17 value -0.23738535527615778 linear true
Constraint 18 value -1.248281363181639 linear true
Constraint 19 value -0.5730989250426937 linear true
Constraint 20 value -0.9397173587834695 linear true
Constraint 21 value -49.185123922133336 linear true
Constraint 22 value -50.7809113521534 linear true
Create supporting hyperplane for objective f(x) <= t
varidx [1,2,3,4,5,6,7,8,9,10,11,12,13]
coef [0.0,0.0,0.0,0.0,0.0,0.0,3306.41,0.0,3306.41,0.0,0.0,0.0,-1.0]
rhs 4776.224358838335

Pajarito started...

MINLP algorithm OA is chosen.
MINLP has 12 variables, 22 linear constraints, 0 nonlinear constraints.
Initial objective =    5638.96795.

Iteration   MIP Objective     NLP Objective   Optimality Gap   Best Solution    Primal Inf.      OA Inf.
MIP Status: Optimal
MIP Solution: [1.0,0.0,1.0,0.0933501,-0.282067,-0.0,1.6,0.0,1.55,-0.5,-0.0,0.45,5638.97]
NLP Solved
NLP Solution: [1.0,0.0,1.0,0.0933501,-0.282067,-5.44859e-14,1.6,0.0,1.55,-0.5,-5.42203e-9,0.45]
MINLP Solved
Number of OA iterations: 0
        0   +5.6389679e+03   +5.7857500e+03   -5.6389679e+03   +0.0000000e+00   +2.2204460e-16   +0.0000000e+00

Pajarito finished...

Status            =       Optimal.
Optimum objective =       0.00000.
Iterations        =             0.
Total time        =       2.42868 sec.
MIP total time    =       0.51322 sec.
NLP total time    =       0.14520 sec.
Subprob load time =       0.20212 sec.

Any insights?

mlubin commented 7 years ago

Is this new behavior?

ccoffrin commented 7 years ago

All tests are passing with JuMP v0.15 and Pajarito v0.3.2

mlubin commented 7 years ago

Very little has been touched recently on the NLP side but I'll take a look.

mlubin commented 7 years ago

I can reproduce the issue but it's hard to figure out what's going on without seeing the JuMP model. Is the solution it's returning feasible with respect to the constraints, just with an incorrect objective value?