我想使用Python中cvxpy强迫一个变量是一个整数(整数约束),但结果一直是一个浮动:强制一个变量是一个整数CVXPY
from cvxpy import *
Fi = Int()
Or = Int()
constr = [Fi <= 3000,
Or <= 3000,
Or >= 1000,
1.25*Or - Fi >= 0,
Fi >= 0,
Or >= 0]
obj= Maximize(50000*Fi + 25000*Or)
prob = Problem(obj, constr)
prob.solve()
print ("Status: ", prob.status)
print ("Fi: ", Fi.value)
print ("Or: ", Or.value)
print ("Obj: ", obj.value)
结果:
Status: optimal
Fi: 2999.9999999
Or: 2999.99999989
Obj: 224999999.992
我能做些什么来强制它?
我曾尝试过:
Fi = Variable()
Or = Variable()
constr = [Fi <= 3000,
Or <= 3000,
Or >= 1000,
1.25*Or - Fi >= 0,
Fi >= 0,
Or >= 0,
Fi == Int(),
Or == Int()]
网络连接,或者是变量。不只是数字。
@nico我也尝试过'Fi = Variable()'并添加约束条件'Fi == Int()',我不能重复。在那个问题中,他们没有使用cvxpy – Aleharu
在你的约束条件下,1.25 *。你如何期望结果是Int? http://www.cvxpy.org/en/latest/tutorial/intro/index.html – ADL
@ADL Fi不能超过Or的125%。这并不意味着Fi必须浮动 – Aleharu