我有一个linprog代码,在目标函数中有x1,x2,x3和x4。
我得到的结果是以下列形式给出的值:
x =
6.6667
0.0420
0
0
在我尝试建模的情况下,这并不具有物理意义,因为x表示特定技术的单位数,因此例如0.0420实际上并不存在。无论如何“强制”linprog找到x的最佳整数值
谢谢
答案 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”。