C++ 混合整数非线性规划 (MINLP) 求解器

计算科学 C++ 软件 混合整数规划
2021-12-09 19:54:47

做涉及(混合整数非线性规划)MINLP问题的材料研究项目,我们想基于C ++实现MINLP,因为我们的大部分项目都是基于C ++的。我们的选择是什么?

我们注意到 GAMS 是一个很好的建模系统,但它要求(是真的吗?)我们放弃 C++ 中原始材料科学代码的主要部分。

3个回答

MIDACO 以纯 C/C++ 和许多其他语言提供:

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

可以在以下位置找到 MINLP 求解器列表:

MINLPLib 实例

其中一些求解器是用 C++ 编写的,可以直接从您的代码中调用。

在 BrianBorchers 的列表中,我熟悉的主要 MINLP C++ 代码是BonminCouenne两者都是COIN-OR 项目的一部分,并且是开源的。该列表中的其余库是闭源的,或者没有 C++ 接口。一些代码在 Fortran 中;如果你能得到副本,你可能会考虑编写 C++ 接口,假设你愿意付出努力。

我们注意到 GAMS 是一个很好的建模系统,但它要求(是真的吗?)我们放弃 C++ 中的大部分原始材料科学代码。

如果你真的想要,你可以将问题公式写入 GAMS 文件,调用 GAMS,然后读取 GAMS 输出,但这样做很笨拙。除了指定优化问题之外,GAMS 并没有真正设计为做任何事情,因此尝试在 GAMS 中重写代码不是一种选择。