小编Poi*_*ePA的帖子

cvxopt.glpk.ilp 关于整数和二进制集键的文档

我有一个混合整数编程问题(通过列生成削减库存),我已经在 AMPL 中解决了这个问题,并且我使用 cvxopt 移植到了 Python。CVXOPT“op”没有提供我需要的二进制变量选项,所以我用 GLPK 扩展它以使用“ILP”。我得到 ilp status =“LP 松弛是原始不可行的”,我知道这是不正确的,因为之前的 AMPL 解决方案。所以我知道我的配置不正确。我试图通过玩弄stackoverflow问题中的示例来理解整数“I”和二进制“B”键的使用CVXOPT中的整数线性规划(ILP)函数返回非整数

我的问题是,I&B 键之间有什么区别,例如:

stat, sol1 = glpk.ilp(W, G.T, h, I=set([0, 1]))
stat, sol2 = glpk.ilp(W, G.T, h, I={0,1})
stat, sol3 = glpk.ilp(W, G.T, h)
Run Code Online (Sandbox Code Playgroud)

有以下 3 种不同的解决方案:( print(soli.T)

  1. [ 0.00e+00 0.00e+00 5.00e-01 5.00e-01 5.00e-01 -0.00e+00 ... ]

  2. [ 0.00e+00 0.00e+00 5.00e-01 5.00e-01 5.00e-01 -0.00e+00 ... ]

  3. [ 5.00e-01 5.00e-01 5.00e-01 5.00e-01 5.00e-01 -0.00e+00 ... ]

我看过help(ilp),但它只是说 I&B 是整数和二进制变量的索引集,(我理解),但它没有描述如果您同时使用 (I&B) 或它们重叠会发生什么,或者一个或另一个是空集,或未定义。我会认为sol1= …

python glpk cvxopt mixed-integer-programming

5
推荐指数
1
解决办法
1958
查看次数

标签 统计

cvxopt ×1

glpk ×1

mixed-integer-programming ×1

python ×1