我目前正在使用CyLP
Python 中的包进行混合整数线性编程。但是,我无法初始化整数变量。根据文档,我已经传递isInt = True
给addVariable
方法,但它什么也没做。
我的程序的一个最小示例如下所示。时的最佳值应该是 2 x = y = 1
,但结果却不如预期。
import cylp
from cylp.cy import CyClpSimplex
print(cylp.__version__) # 0.91.0
s = CyClpSimplex()
x = s.addVariable('x', 1, isInt = True)
y = s.addVariable('y', 1, isInt = True)
s += x >= 0.5
s += y >= 0.7
s.objective = x + y
s.optimizationDirection = 'min'
s.primal()
# Clp3002W Empty problem - 0 rows, 2 columns and 0 elements
# Clp0000I Optimal - objective value 1.2
x_opt = s.primalVariableSolution['x'][0]
y_opt = s.primalVariableSolution['y'][0]
print(x_opt, y_opt) # 0.5, 0.7
有没有其他方法来初始化整数变量CyLP
?或者我错过了一些关于addVariable
方法的东西?
顺便说一句,我想Clp3002W Empty problem
知道s.primal()
.
提前致谢。