linprog可以给出x的整数值吗?

时间:2012-07-02 19:56:38

标签: matlab integer mathematical-optimization linear-programming

我有一个linprog代码,在目标函数中有x1,x2,x3和x4。

我得到的结果是以下列形式给出的值:

 x = 
6.6667
0.0420
0 
0

在我尝试建模的情况下,这并不具有物理意义,因为x表示特定技术的单位数,因此例如0.0420实际上并不存在。无论如何“强制”linprog找到x的最佳整数值

谢谢

2 个答案:

答案 0 :(得分:3)

这称为integer programming,一般来说是NP难的。它不在linprog覆盖,因为它是一个完全不同且更难的问题。

Here's a related question (but not a duplicate) from Stack Overflow about Integer Programming

答案 1 :(得分:1)

你应该考虑使用混合整数编程(你会在向linprog中的线性程序添加“整数约束”,例如“x integer”时得到一个)。

直接向前我建议使用Scip,因为它是“免费”或Gams这是商业产品,但为较小的实例提供免费试用版。

关于混合整数规划和对应解算器的更详细的文章可以在[scicomp] [3]

找到

[3]:https://scicomp.stackexchange.com/questions/2679/objects-in-buckets-assignment-optimization-problem“scicomp”。