在gurobi中创建具有多个索引的二进制变量

2024-04-26 09:43:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python和Gurobi还很陌生。我想为几个“维度”添加一个二进制变量:

A = [1,2,3,4]
B = [1,2,3,4]
C = [1,2,3,4,5]
D = [1,2,3]

我需要索引为A,B,C,D的二进制变量x

我不知道如何使用该命令:

m.addVars()

Tags: 命令二进制gurobi陌生addvars
1条回答
网友
1楼 · 发布于 2024-04-26 09:43:17

这是从给定索引列表创建变量的方式:

import gurobipy as gp

A = [1,2,3,4]
model = gp.Model()
variables = model.addVars(A, name='A', vtype='B')

调用model.update()后,您会看到以下变量名/类型:

{1: <gurobi.Var A[1]>,
 2: <gurobi.Var A[2]>,
 3: <gurobi.Var A[3]>,
 4: <gurobi.Var A[4]>}

这在documentation中也有解释。您只需对其他列表BCD重复此过程

编辑

将所有指数组合成一个变量结构的另一种选择是:

A = [1,2,3,4]
B = [1,2]
C = [1,2,3]
model = gp.Model()
variables = model.addVars(A, B, C, vtype='B')

您可以这样访问这些变量:

variables[1,2,1]

相关问题 更多 >