GRBXloadmodel


GRBXloadmodel

int GRBXloadmodel GRBenv * env,
GRBmodel * * modelP,
const char * Pname,
int numvars,
int numconstrs,
int objsense,
objcon,
* obj,
字符 *感,
*,
size_t * vbeg,
int * vlen,
int * vind,
* vval,
*磅,
*乌兰巴托,
字符 * vtype,
const char * * varnames,
const char * * constrnames)

size_t版本的GRBloadmodel.计数非零值的实参是类型的size_t在这个版本中,支持具有超过20亿个非零值的模型。

创建一个新的优化模型,使用提供的参数初始化模型数据(目标函数、变量边界、约束矩阵等)。然后,模型就可以进行优化或修改了(例如,添加变量或约束,改变变量类型或界限,等等)。

返回值:

非零返回值表明在创建模型时发生了问题。指的是错误代码表中可能的返回值列表。关于错误的详细信息可以通过调用GRBgeterrormsg

参数:

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

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

Pname:型号名称。

numvars:模型中变量的数量。

numconstrs:模型中约束的数量。

objsense:目标函数的意义。允许的值是1(最小化)或-1(最大化)。

objcon:不变的目标偏移量。

obj:新变量的目标系数。这个论点可以是,此时目标系数设为0.0

感觉:新约束的感觉。选项是“=”(相等),“<”(小于或等于),或“>”(大于或等于)。你也可以使用常量GRB_EQUALGRB_LESS_EQUAL,或GRB_GREATER_EQUAL

园艺学会:新约束的右边值。这个论点可以是,在这种情况下,右边的值被设置为0.0

vbeg约束矩阵的非零值以压缩稀疏列(CSC)格式传递到这个例程。约束矩阵中的每一列都表示为索引值对的列表,其中每个索引项提供非零系数的约束索引,而每个值项提供相应的非零值。模型中的每个变量都有一个vbegvlen的值,指示该变量的非零的起始位置vindvval数组和该变量的非零值的数量。例如,ifvbeg [2] = 10vlen [2] = 2,表示变量2有两个非零值。它们的约束指标可在vind [10]vind [11],这些非零的数值可以在vval [10]vval [11]

vlen:每个变量对应的约束矩阵非零值的个数。见描述的vbeg争论以获得更多信息。

vind:与非零值相关的约束索引。见描述的vbeg争论以获得更多信息。

vval:与约束矩阵非零相关的数值。见描述的vbeg争论以获得更多信息。

:新变量的下界。这个论点可以是,在这种情况下,所有变量的下界是0.0

乌兰巴托:新变量的上界。这个论点可以是,在这种情况下,所有变量的上界都是无限的。

vtype:变量的类型。选项是GRB_CONTINUOUSGRB_BINARYGRB_INTEGERGRB_SEMICONT,或GRB_SEMIINT.这个论点可以是,在这种情况下,所有变量都假定是连续的。

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

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

重要提示:

我们建议您每次使用一个约束或一个变量来构建模型GRBaddconstrGRBaddvar,而不是使用这个例程一次加载整个约束矩阵。它更简单,更不容易出错,而且不会带来重大开销。

使用示例:

/*将x + y + 2z最大化,服从x + 2y + 3z <= 4 x + y >= 1 x, y, z二进制*/ int var = 3;Int const = 2;Size_t vbeg[] = {0,2,4};Int vlen[] = {2, 2, 1};Int vind[] = {0, 1, 0, 1};Double 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};Double rhs[] = {4.0, 1.0};char vtype[] = {GRB_BINARY, GRB_BINARY, GRB_BINARY}; error = GRBXloadmodel(env, &model, "example", vars, constrs, -1, 0.0, obj, sense, rhs, vbeg, vlen, vind, vval, NULL, NULL, vtype, NULL, NULL);