GUROBI之addMConstr()和addConstr()用法的区别

一下面这个例子来说明两者的区别:

import gurobipy as gb
from gurobipy import GRB
import numpy as np

model=gb.Model("model")
x=model.addMVar(10)
obj_vector = np.array([1,2,3,4,5,6,7,8,9,0])
A=np.full((5,10),1)
print(A)
b = np.full(5, 1)
print(b)

model.setObjective(obj_vector@x, GRB.MAXIMIZE)
model.addMConstr(A, x, "=", b, name="c1")  # 以矩阵的形式
#model.addConstr(A@x==b, name="c2")  # 以表达式的形式

model.optimize()
for v in model.getVars():
    print(f"{v.VarName} {v.X:g}")
print(f"Objective: {model.ObjVal:g}")

注意:两者的变量x和约束系数A以及等式右边的常数b均是以矩阵的形式来创建的,仅在给模型添加约束时使用的方法不同,一种是以矩阵的形式来传入约束(.addMConstr),一种是以表达式的形式传入约束(.addConstr)

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值