model.addvars()


model.addvars()

addvars.(*指标,磅= 0.0,乌兰巴托=浮动(正)、obj = 0.0, vtype =伽马线暴。连续的,name = " ")

向模型中添加多个决策变量。

返回一个Gurobitupledict对象,其中包含新创建的变量。钥匙tupledict都是由指数论点。此方法的参数可以采用几种不同的形式,现在将描述。

第一个参数提供索引,这些索引将被用作键来访问返回的变量tupledict.在其最简单的版本中,您将指定一个或多个整数值,该方法将创建相当于多维变量数组的内容。例如,X = Model.Addvars(2,3)将创建6个变量,以x (0,0)x [0, 1]x (0, 2)x (1,0)x [1],x [1, 2]

在更复杂的版本中,您可以指定任意的不可变对象列表,这个方法将为这些列表的叉乘的每个成员创建变量。例如,x =模型。addvars.([3, 7], ['a', 'b', 'c'])将创建6个变量,以x[3, '一']x [7, ' c ']等。

您还可以提供自己的元组列表作为索引。例如,x = model.addVars ([(3 ' '), (b)、(7 b), (7 ' c ')))将以与前面示例相同的方式访问(x[3, '一']x [7, ' c '],等等),但并非所有的组合都将出现。这通常是稀疏索引的处理方式。

请注意,虽然索引可以作为多个对象列表或元组列表提供,但特定索引的成员值必须始终为标量(浮动字符串,……)。例如,x =模型。addvars.([(1, 3), 7], ['a'])不允许,因为第一个成员的第一个参数是(1、3).同样的,x =模型。addvars.([((1, 3),'a'), (7,'a')])也不允许。

命名参数(obj等)可以有几种形式。如果提供标量值(或使用默认值),则每个变量都将使用该值。因此,例如,磅= 1.0将给每个创建的变量一个1.0的下界。注意,name参数的标量值有特殊含义,我们将单独讨论。

您还可以提供一个Pythondict作为论点。在这种情况下,使用指数参数来构建密钥,将从DICT中拉出每个变量的值。例如,如果此方法创建的变量被索引为x (i, j),那么dict为参数提供的每一种可能都应该有一个条目(i, j)价值。

最后,如果你指数参数是单个列表,则可以提供一个Python列表命名参数的长度相同。对于每个变量,它将从列表中的相应位置拉出值。

如前所述的名字参数是特别的。如果为名称提供标量参数,则该参数将被转换为与关联变量的索引相对应的下标。例如,如果你做了x = model.addVars(2 3名= " x "),变量将获取名称x (0,0)x [0, 1]等。

参数:

指数:访问新变量的索引。

LB(可选):新变量的下界。

乌兰巴托(可选):新变量的上界。

obj(可选):新变量的客观系数。

VTYPE(可选):新变量的类型。

名称(可选):新变量的名称。给定的名称将由生成器表达式的索引订阅,因此如果索引是整数,c将成为c [0]c [1]等。注意,生成的名称将存储为ASCII字符串,因此应该避免使用包含非ASCII字符的名称。另外,强烈反对包含空格的名称,因为不能将它们写入LP格式文件。

返回值:

tupledict对象,该对象使用提供的索引作为键,将新变量作为值。

示例用法:

#二进制变量x = model的三维数组。addvars.(3, 4, 5, vtype=GRB.BINARY) # variables index by tuplelist l = tuplelist([(1, 2), (1, 3), (2, 3)]) y = model.addVars(l, ub=[1, 2, 3])