2
$\begingroup$

I face a feasibility problem of type

$$ c_i(\boldsymbol x) \leq 0, i = 1, \dots, \mathcal{I} \\ c_e(\boldsymbol x) = 0, e = 1, \dots, \mathcal{E} $$

where $\mathcal{I} + \mathcal{E} \gg \text{dim}(\boldsymbol x) \sim \mathcal{O} (10^1) $.

Currently, I solve this with Ipopt but since it takes quite some time I thought about looking for some special feasible point solvers.

The "largest" (3) collection of feasible point solvers I could find online are mentioned in section 5.3 of this paper. Unfortunately, there seems to be no implementation of the therein developed algorithm (EFNES) online. The FILTRANE framework of the Galahad package might be quite effective but has a nasty Fortran API which looks even for the example problem quite difficult.

EDIT: The link in the original TRESNEI paper is dead, but I found this working one.

Any suggestions besides the usual suspects from nonlinear optimization, ideally free to use within academia?

$\endgroup$
4
  • 2
    $\begingroup$ In general, a feasibility problem is not easier than an optimization problem. Therefore, there is not much point in building a code for feasibility only. $\endgroup$ Jun 29, 2022 at 11:18
  • $\begingroup$ So I should not expect significant performance improvements? $\endgroup$
    – Dan Doe
    Jun 29, 2022 at 11:56
  • $\begingroup$ To me it seems unlikely. $\endgroup$ Jun 29, 2022 at 14:04
  • $\begingroup$ I often try a few different NLP solvers. They can differ a lot in performance on a given model, and it is not always easy to predict which one will be the fastest. Sometimes one can come up with an explanation afterwards. $\endgroup$ Jun 30, 2022 at 0:02

1 Answer 1

4
$\begingroup$

Stefan Vigerske was kind enough to answer my question on the Ipopt github.

With minimal changes one can basically reduce Ipopt to a feasibility problem solver.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.