JuMP - Finding feasible discrete solutions

Hi - I’ve been enjoying experimenting with JuMP recently and I’m very grateful to the devs for open-sourcing this project. In general, I need to solve constrained non-linear mixed-integer optimisation problems. I’ve had a lot of success with what I think what people might refer to as a continuous relaxation of the problem (where all variables are treated continuously) using JuMP and IPOPT. I’m interested in finding any feasible discrete solutions in the neighbourhood of the optimal continuous solution - these discrete solutions don’t need to be optimal. Is anyone aware of any solvers or other Julia packages that may be able to help with this? Best wishes, Sam

I cannot help with the specifics, but a list of available solvers in JuMP is here. Maybe one of the MINLP solvers there would work for you?

Also, welcome to the forum :slight_smile:

1 Like

Hello,

I’ve been working with JuMP and IPOPT recently, and it’s been great for solving constrained non-linear optimization problems. I’ve had good results with the continuous relaxation approach. Now I’m looking to find some feasible discrete solutions close to the optimal continuous solution.

Best Regard,
Nathan

I am not aware of solvers who can do this out-of-the-box. There are heuristics (based on rounding) called feasibility pumps for finding integer solutions. There exist a lot of papers about that. For instance, here is a survey.

2 Likes

Hi @samram, welcome to the forum :smile:

You might want to check out GitHub - lanl-ansi/Juniper.jl: A JuMP-based Nonlinear Integer Program Solver. It can use Ipopt as the solver for the nonlinear continuous subproblems.

But MINLPs are very much “it depends”. It’d help if you have a reproducible example.

1 Like

@mike_k Thanks very much for the link - I’ll have a read :slight_smile:

Thanks @odow - I’ve experimented with Juniper before but never really delved into the settings. Perhaps I’ll have success with Ipopt and a feasibility pump through Juniper.