我想最小化一个简单函数,其中x1是连续的,i1是整数
下面的例子给了我一个Can not multiply with type <class 'mip.entities.LinExpr'>
MIP真的不能处理乘法吗
from mip import Model, CONTINUOUS, INTEGER, minimize, xsum
import numpy as np
m = Model()
def func(x1, i1):
return (x1 - .5) * (i1 - 1)
print(func(0, 0))
print(func(.5, 1))
x1 = m.add_var(var_type=CONTINUOUS)
i1 = m.add_var(var_type=INTEGER)
# constraint
m += x1 + i1 >= 0
m.objective = func(x1, i1)
# m.objective = minimize(xsum((x1 - .5) * (i1 - 1)))
status = m.optimize()
print(status)
print(m.objective_value)
for v in m.vars:
print(v.name, v.x)
您需要使用不同的解算器来处理非线性表达式。您可以使用academic solverPySCIPOpt或免费商业版academics solverGurobi,两者都有一个非常好的直观Python界面,看起来与您的代码非常相似
相关问题 更多 >
编程相关推荐