Name: | `FIRST_FEASIBLE_SOLUTION` |

Type: | bool |

Default Value: | false |

Available Options: | true, false |

Setting this to true will force the engine to exit the moment a feasible solution is found, ** even if it’s a very bad one**.

This option can be extremely useful if you don’t want to grow old while waiting for the engine to solve a problem to global optimality. Use cases include:

- Getting a quick idea of what feasible values your objective can take
- Taking advantage of the symbolic preprocessing to potentially find a much better feasible solution than a local MINLP solver would give you. Yes you pay for the preprocessing, and yes that sometimes makes it slower than local MINLP solvers,
, you’ll find that the success rate and solution quality are on average far superior to local MINLP solvers.*but* - You want a good solution but you don’t want to computationally pay for branch-and-bound, which is by far the most expensive part of the solving process.
- Your problem is so humongous and difficult that you know branch-and-bound is gg, even on HPC. This option will allow you to actually get a feasible solution where other solvers would simply fail or get stuck forever.

Remember that there’s no free lunch – what you sacrifice here is (potentially significant) solution quality for (potentially a ton of) speed.

If you get a solution using this option, there are a couple of things you can do with it:

- Warm-start the engine with the solution you just found and run branch-and-bound, maybe with a timeout. This will force the engine to find a better solution, or prove that no better solution exists.
- Simply use what you found if it’s good enough for your problem.

If you don’t get a solution, there are a few things you can do as well:

- Try turning
`LOCAL_SEARCH`

on. It’s a much faster engine mode and might work for your problem. - Try relaxing tolerances for bound, integrality, and constraint violation.
- If your problem is mixed-integer, increase the working limit (
`MILP_LB_TIMEOUT`

) for solving MILP lower bounding problems. - Double-check your model for booboos.