我需要编写一个整数程序。它非常简单,但是问题在于,几乎没有关于如何使用可调用库为GLPK编写整数程序的好信息,更不用说GLPK#了。
我的整数程序看起来非常像这样:
Maximise: X[0] + X[1] + ... + X[n];
s.t. X[1] + X[5] <= 1;
X[1] + X[7] <= 1;
X[2] + X[4] <= 1;
X[3] + X[9] <= 1;
...
X[i] = {0,1}
我有一堆二进制X,我想最大化总和。某些X排除了某些其他X。
到目前为止,我要做的就是
LPProblem lp = new LPProblem()
{
ModelClass = MODELCLASS.MIP,
ObjectiveDirection = OptimisationDirection.MAXIMISE,
ObjectiveName = "Z"
};
// Stuff goes here, I'm not sure how to represent the model
SOLVERSTATUS status = lp.SolveInteger();
最佳答案
也许您可以使用GLPK#以外的其他东西。如果您是学者,则可以免费获得CPLEX或Gurobi。否则,Google OR Tools在过去的一年中一直提供C#支持。根据Google OR Tools page,它包括GLPK和CBC的包装。仅出于您可以在两个求解器之间切换的事实,建议您使用Google OR工具。对于您的特定实例,您可能会找到一个比其他解决方案更好的解决方案。
关于c# - GLPK#整数编程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15016702/