24

我是整数线性规划的新手。我计划使用整数线性规划求解器来解决我的组合优化问题。我更熟悉 IDE 上的 C++/面向对象编程。现在我大部分时间都在使用带有 Cygwin 的 NetBeans 来编写我的应用程序。

请问是否有适合我的易于使用的 ILP 求解器?还是取决于我要解决的问题?我正在尝试做一些资源映射优化。如果需要任何进一步的信息,请告诉我。

非常感谢你,卡西。

4

5 回答 5

8

我曾多次成功使用 lp_solve ( http://lpsolve.sourceforge.net/5.5/ )。如果你的线性编程技能生疏,它是成熟的、功能丰富的,并且有很多很好的建议。整数线性规划不仅仅是一个附加功能,而且在这个包中得到了强烈的强调。

刚刚注意到你说你是一个“新手”。好吧,那么我强烈推荐这个包,因为文档中充满了示例和温和的教程。我尝试过的其他软件包倾向于假设很多用户。

于 2010-10-29T14:51:06.480 回答
8

如果你想要的是线性混合整数规划,那么我会指向 Coin-OR(特别是模块 CBC)。它是免费软件(作为语音) 您可以将它与特定语言一起使用,也可以使用 C++。

如果您的数据需要大量预处理,或者如果您想将双手投入求解器(选择枢轴点、列生成、添加切割等),请使用 C++。

如果您想将求解器用作黑匣子,请使用集成语言(您只对结果感兴趣,并且问题很简单或足够经典,无需调整即可解决)。

但是在标签中,您提到了遗传算法和图形算法。也许你应该从更好地定义你的问题开始......对于我非常喜欢的图表 Boost::Graph

于 2010-05-07T21:08:30.240 回答
4

对于大问题,您可以查看AMPL,它是一个优化解释器,有许多可用的后端求解器。它作为一个单独的进程运行;C++ 将用于写出输入数据。

然后,您可以尝试各种最先进的求解器。

于 2010-05-07T20:58:23.757 回答
2

查看GLPK。附带一些示例,并与 AMPL 的一个子集一起使用,尽管恕我直言,当您坚持使用 C/C++ 进行模型设置时效果最好。也可以处理相当大的模型。

于 2011-02-27T08:13:17.797 回答
1

来自 Wikipedia 的线性规划涵盖了一些不同的算法,您可以深入研究一下,看看哪种算法最适合您。这有帮助还是您想要更具体的东西?

于 2010-05-07T20:46:47.443 回答