1
$\begingroup$

Doing research project in material involving (mixed integer nonlinear programming) MINLP problem, we want to implement MINLP based on C++, because the majority of our project is based on C++. What would be our option?

We noted that GAMS is a good modeling system, but it requires (is it true?) us to abandon a major part of our original material science code in C++.

$\endgroup$
2
$\begingroup$

MIDACO is available in plain C/C++ and many other languages:

http://www.midaco-solver.com/index.php/download/c

$\endgroup$
  • 1
    $\begingroup$ What are the strong and weak points of MIDACO? $\endgroup$ – nicoguaro Jun 12 '18 at 20:19
2
$\begingroup$

A list of MINLP solvers can be found at:

MINLPLib Instances

Some of these solvers are written in C++ and could be called directly from your code.

$\endgroup$
1
$\begingroup$

Of that list by BrianBorchers, the main MINLP C++ codes that I'm familiar with are Bonmin and Couenne. Both are part of the COIN-OR project, and are open source. The remainder of the libraries in that list are closed-source, or do not have C++ interfaces. Some of the codes are in Fortran; if you can get copies, you might consider writing C++ interfaces, assuming you are willing to put in that effort.

We noted that GAMS is a good modeling system, but it requires (is it true?) us to abandon major part of our original material science code in c++.

If you really wanted to, you could write a problem formulation to a GAMS file, call GAMS, and then read the GAMS output, but doing so is clumsy. GAMS isn't really designed to do anything other than specify optimization problems, so trying to rewrite your code in GAMS isn't an option.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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