首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用乘法的混合整数编程

使用乘法的混合整数编程
EN

Stack Overflow用户
提问于 2021-04-30 16:23:05
回答 1查看 200关注 0票数 2

我想最小化一个简单的函数,其中x1是连续的,i1是一个整数。

下面的示例给出了一个Can not multiply with type <class 'mip.entities.LinExpr'>

MIP真的不能处理乘法吗?

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2021-05-01 19:10:42

您需要使用不同的求解器来处理非线性表达式。您可以使用学术求解器PySCIPOpt或商业的、免费的学术求解器Gurobi -两者都有一个非常好的、直观的Python界面,看起来与您的代码非常相似。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67330567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档