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])