# JuMP - Finding feasible discrete solutions

**URL:** <https://discourse.julialang.org/t/jump-finding-feasible-discrete-solutions/124865>\
**Category:** Optimization (Mathematical)\
**Tags:** jump\
**Created:** [January 17, 2025, 10:00am UTC](https://discourse.julialang.org/t/jump-finding-feasible-discrete-solutions/124865 "2025-01-17T10:00:44Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![samram](https://avatars.discourse-cdn.com/v4/letter/s/bc8723/32.png) [@samram](https://discourse.julialang.org/u/samram)\
**Post date:** [January 17, 2025, 10:00am UTC](https://discourse.julialang.org/t/jump-finding-feasible-discrete-solutions/124865/1 "2025-01-17T10:00:44Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![blob](https://avatars.discourse-cdn.com/v4/letter/b/ebca7d/32.png) [@blob](https://discourse.julialang.org/u/blob)\
**Post date:** [January 17, 2025, 10:53am UTC](https://discourse.julialang.org/t/jump-finding-feasible-discrete-solutions/124865/2 "2025-01-17T10:53:17Z")

</div>

I cannot help with the specifics, but a list of available solvers in JuMP is [here](https://jump.dev/JuMP.jl/stable/installation/#Supported-solvers). Maybe one of the MINLP solvers there would work for you?

Also, welcome to the forum 🙂

---

<div class="post-metadata">

**Author:** ![nathan45shafer](https://avatars.discourse-cdn.com/v4/letter/n/b9bd4f/32.png) [@nathan45shafer](https://discourse.julialang.org/u/nathan45shafer)\
**Post date:** [January 17, 2025, 11:35am UTC](https://discourse.julialang.org/t/jump-finding-feasible-discrete-solutions/124865/3 "2025-01-17T11:35:28Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![mike\_k](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mike_k/32/211864_2.png) [@mike\_k](https://discourse.julialang.org/u/mike_k)\
**Post date:** [January 17, 2025, 3:17pm UTC](https://discourse.julialang.org/t/jump-finding-feasible-discrete-solutions/124865/4 "2025-01-17T15:17:07Z")

</div>

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](https://www.sciencedirect.com/science/article/abs/pii/S219244062100109X) is a survey.

---

<div class="post-metadata">

**Author:** ![odow](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/odow/32/28685_2.png) [@odow](https://discourse.julialang.org/u/odow)\
**Post date:** [January 18, 2025, 6:47am UTC](https://discourse.julialang.org/t/jump-finding-feasible-discrete-solutions/124865/5 "2025-01-18T06:47:56Z")

</div>

Hi @samram, welcome to the forum 😄

You might want to check out [GitHub - lanl-ansi/Juniper.jl: A JuMP-based Nonlinear Integer Program Solver](https://github.com/lanl-ansi/Juniper.jl). 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.

---

<div class="post-metadata">

**Author:** ![samram](https://avatars.discourse-cdn.com/v4/letter/s/bc8723/32.png) [@samram](https://discourse.julialang.org/u/samram)\
**Post date:** [January 19, 2025, 11:19am UTC](https://discourse.julialang.org/t/jump-finding-feasible-discrete-solutions/124865/6 "2025-01-19T11:19:59Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![samram](https://avatars.discourse-cdn.com/v4/letter/s/bc8723/32.png) [@samram](https://discourse.julialang.org/u/samram)\
**Post date:** [January 19, 2025, 11:21am UTC](https://discourse.julialang.org/t/jump-finding-feasible-discrete-solutions/124865/7 "2025-01-19T11:21:43Z")

</div>

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.
