grbloadmodel.


grbloadmodel.

grbloadmodel. Grbenv. * env,
grbmodel. **型号,
Const Char. * pname,
numvars,
numconstrs,
objsense,
双倍的 objcon,
双倍的 * obj,
char *感觉,
双倍的 * RHS,
* vbeg,
* vlen,
* vind,
双倍的 * vval,
双倍的 *磅,
双倍的 * UB,
char * vtype,
Const Char. ** varnames,
Const Char. ** constrame)

创建一个新的优化模型,使用提供的参数初始化模型数据(目标函数,可变界限,约束矩阵等)。然后,该模型准备好优化,或用于修改(例如,添加变量或约束,变为可变类型或界限等)。

如果约束矩阵可能包含超过20亿的非零值,则应考虑使用grbxloadmodel.这个例程的变体。

返回值:

非零返回值表示创建模型时出现问题。参考错误代码表格有可能的返回值列表。可以通过呼叫获取错误的详细信息grbgeterrormsg.

论点:

env.:应创建新模型的环境。请注意,新模型获取此环境的副本,因此对原始环境的后续修改(例如,参数更改)不会影响新模型。用grbgetenv.修改与模型相关联的环境。

模型:应放置指向新创建的模型的指针的位置。

PNAME.:模型的名称。

numvars.:模型中的变量数。

numconstr.:模型中的约束数。

objsense.:目标函数的感觉。允许值为1(最小化)或-1(最大化)。

objcon.:持续的客观抵消。

obj.:新变量的客观系数。这个论点可以是空值,在这种情况下,物镜系数被设置为0.0

感觉:新约束的感官。选项是'='(平等的),'<'(不到或相等),或'>'(大于或平等)。您也可以使用常量grb_equal.grb_less_equal., 或者grb_greater_equal.

RHS.:新约束的右侧值。这个论点可以是空值如果您没有添加任何约束。

vbeg.:在压缩稀疏列(CSC)格式中将约束矩阵非零值传递到该例程中。约束矩阵中的每个列表示为索引值对列表,其中每个索引条目提供非零系数的约束索引,并且每个值条目提供相应的非零值。模型中的每个变量都有一个vbeg.vlen.值,表示该变量中的非零的起始位置vvval.数组,以及该变量的非零值的数量。因此,例如,如果vbeg [2] = 10Vlen [2] = 2,这表明变量2具有与其相关联的两个非零值。他们的约束指数可以找到Vind [10]Vind [11],并且可以找到这些非零的数值vval [10]vval [11]

vlen.:与每个变量关联的约束矩阵非零值。查看描述的描述vbeg.有关更多信息的论证。

v:与非零值相关联的约束指数。查看描述的描述vbeg.有关更多信息的论证。

vval.:与约束矩阵非零关联的数值。查看描述的描述vbeg.有关更多信息的论证。

:新变量的下限。这个论点可以是空值,在这种情况下,所有变量都会得到下限0.0

UB.:新变量的上限。这个论点可以是空值,在这种情况下,所有变量都有无限的上限。

vtype.:变量类型。选项是grb_continuousgrb_binary.grb_integer.grb_syemont., 或者grb_semiint.。这个论点可以是空值,在这种情况下,假设所有变量都是连续的。

varnames.:新变量的名称。这个论点可以是空值,在这种情况下,所有变量都是给出的默认名称。

约束:新约束的名称。这个论点可以是空值,在这种情况下,所有约束都是给出的默认名称。

重要笔记:

我们建议您一次建立一个模型一个约束或一个变量,使用grbaddconstr.或者Grbaddvar.,而不是使用此例程一次加载整个约束矩阵。它更简单,易于错误,并且它不会引入显着的开销。

示例用法:

/ *最大化x + y + 2 z对x + 2 y + 3 z <= 4 x + y> = 1 x,y,z二进制* / int vars = 3;int约束= 2;int vbeg [] = {0,2,4};int vlen [] = {2,2,1};int vind [] = {0,1,0,1,0};双vval [] = {1.0,1.0,2.0,1.0,3.0};double obj [] = {1.0,1.0,2.0};char sense [] = {grb_less_equal,grb_greater_equal};双RHS [] = {4.0,1.0};char vtype [] = {grb_binary,grb_binary,grb_binary}; error = GRBloadmodel(env, &model, "example", vars, constrs, -1, 0.0, obj, sense, rhs, vbeg, vlen, vind, vval, NULL, NULL, vtype, NULL, NULL);