-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix MINLPTest 007_020 #54
Comments
Most are expected because the underlying problem is non-convex. However, using Pavito, JuMP, GLPK, Ipopt
mip_solver = MOI.OptimizerWithAttributes(
GLPK.Optimizer,
"msg_lev" => 0,
"tol_int" => 1e-9,
"tol_bnd" => 1e-7,
"mip_gap" => 0.0,
)
cont_solver = MOI.OptimizerWithAttributes(Ipopt.Optimizer, MOI.Silent() => true)
optimizer = MOI.OptimizerWithAttributes(
Pavito.Optimizer,
"timeout" => 120.0,
"mip_solver_drives" => true,
"mip_solver" => mip_solver,
"cont_solver" => cont_solver,
"log_level" => 1,
)
model = Model(optimizer; add_bridges = false)
@variable(model, -2 <= x <= 3, Int)
@variable(model, y, Bin)
@NLconstraint(model, (x - 0.5)^2 + (4 * y - 2)^2 <= 3)
julia> optimize!(model)
MINLP has a linear objective, 2 continuous variables, 2 integer variables, 1 nonlinear constraints, and 0 quadratic constraints
Pavito started, using MIP-solver-driven method...
┌ Warning: Infeasible NLP problem terminated with primal status: UNKNOWN_RESULT_STATUS
└ @ Pavito ~/.julia/dev/Pavito/src/optimize.jl:693
┌ Warning: Integer-infeasible solution in lazy callback
└ @ Pavito ~/.julia/dev/Pavito/src/optimize.jl:173
Pavito finished...
Status LOCALLY_SOLVED
Objective value Inf
Objective bound 0.00000
Objective gap Inf
Callbacks 2
Total time 0.01550 sec
MIP total time 0.00000 sec
NLP total time 0.01469 sec
julia> solution_summary(model)
* Solver : Pavito
* Status
Termination status : LOCALLY_SOLVED
Primal status : FEASIBLE_POINT
Dual status : NO_SOLUTION
Message from the solver:
"LOCALLY_SOLVED"
* Candidate solution
Objective value : Inf
Objective bound : 0.0
* Work counters
Solve time (sec) : 0.01550 |
Yes I think some bugs have crept in as the package has become more complex. I don't have time to look at these issues before I graduate because Pavito isn't part of my thesis but hopefully someone can! Ideally the package would be simplified again, e.g. by removing all of the messy quadratic stuff in favor of a QP to NLP bridge. |
To update this, only Lines 49 to 62 in 820a1f0
|
Pinging @ccoffrin in case he has any thoughts |
@chriscoey it looks to me that Pavito claims to find a "feasible" solution when none exists. The objective value of Can someone post the solution vector returned by Pavito on this case? This should provide some additional insights into what might be wrong. |
I fixed the issue for the iterative algorithm in #60, but not for the MSD algorithm.
|
We shouldn't be failing MINLPTests. They're intended to be "easy" to solve:
Pavito.jl/test/jump_tests.jl
Lines 49 to 58 in 5805d1d
The text was updated successfully, but these errors were encountered: