GRBModel
Gurobi 模型对象。 常用的方法包括addVar(给模型增加一个新的决策变量)、addConstr(给模型增加一个新的约束)、optimize(优化当前模型)、get(检索一个属性的值)。
GRBModel GRBModel(const GRBEnv& env)
模型构造函数。
参数 | 详解 |
---|---|
env | 新模型的环境。 |
返回值 | 新模型对象。 模型最初不包含变量或约束。 |
GRBModel GRBModel(const GRBEnv& env,
const string& filename)
从文件中读取模型。 请注意,文件的类型编码在文件名后缀中。 有效的后缀是 .mps、.rew、.lp、.rlp、.dua、.dlp、.ilp 或 .opb。 这些文件可以被压缩,因此可以接受附加的 .zip、.gz、.bz2 或 .7z 后缀。
参数 | 详解 |
---|---|
env | 新模型的环境。 |
modelname | 包含模型的文件的名称。 |
返回值 | 新模型对象。 |
GRBModel GRBModel(const GRBModel& model)
创建现有模型的副本。 请注意,由于 Gurobi 中的惰性更新方法,您必须在复制之前调用 update 。
参数 | 详解 |
---|---|
model: 需要被复制的模型。 | |
返回值 | 新模型对象。 模型是输入模型的克隆。 |
GRBModel::addConstr()
向模型添加单个线性约束。 多个签名(signatures)可用。
-
GRBConstr addConstr(const GRBLinExpr& lhsExpr, char sense, const GRBLinExpr& rhsExpr, string name="" )
向模型添加单个线性约束。
参数 详解 lhsExpr 新线性约束的左侧表达式。 sense 感知新的线性约束(GRB_LESS_EQUAL、GRB_EQUAL 或 GRB_GREATER_EQUAL)。 rhsExpr 新线性约束的右侧表达式。 names(可选) 新约束的名称。 返回值 新的约束对象。 -
GRBConstr addConstr(const GRBLinExpr& lhsExpr, char sense, GRBVar rhsVar, string name="" )
向模型添加单个线性约束。
参数 详解 lhsExpr 新线性约束的左侧表达式。 sense 感知新的线性约束(GRB_LESS_EQUAL、GRB_EQUAL 或 GRB_GREATER_EQUAL)。 rhsVar 新线性约束的右侧变量。 name(可选) 新约束的名称。 返回值 新的约束对象。 -
GRBConstr addConstr (const GRBLinExpr& lhsExpr, char sense, double rhsVal, string name="")
向模型添加单个线性约束。
参数 详解 lhsExpr 新线性约束的左侧表达式。 sense 感知新的线性约束(GRB_LESS_EQUAL、GRB_EQUAL 或 GRB_GREATER_EQUAL)。 rhsVal 新线性约束的右侧值。 name(可选) 新约束的名称。 返回值 新的约束对象。 -
GRBConstr addConstr(GRBVar lhsVar, char sense, GRBVar rhsVar, string name="" )
向模型添加单个线性约束。
参数 详解 lhsVar 新线性约束的左侧变量。 sense 感知新的线性约束(GRB_LESS_EQUAL、GRB_EQUAL 或 GRB_GREATER_EQUAL)。 rhsVar 新线性约束的右侧变量。 name(可选) 新约束的名称。 返回值 新的约束对象。 -
GRBConstr addConstr(GRBVar lhsVar, char sense, double rhsVal, string name="")
向模型添加单个线性约束。
参数 详解 lhsVar 新线性约束的左侧变量。 sense 感知新的线性约束(GRB_LESS_EQUAL、GRB_EQUAL 或 GRB_GREATER_EQUAL)。 rhsVal 新线性约束的右侧值。 name(可选) 新约束的名称。 返回值 新的约束对象。 -
GRBConstr addConstr(GRBTempConstr& tc, string name="")
向模型添加单个线性约束。
参数 详解 tc 临时约束对象,使用重载的比较运算符创建。 有关详细信息,请参阅 GRBTempConstr。 name(可选) 新约束的名称。 返回值 新的约束对象。
GRBModel::addVar()
向模型添加单个决策变量。
模板1
GRBVar addVar (double lb,
double ub,
double obj,
char type,
string name="" )
添加一个变量; 稍后将添加非零条目。
参数 | 详解 |
---|---|
lb | 新变量的下限。 |
ub | 新变量的上限。 |
obj | 新变量的客观系数。 |
type | 新变量的变量类型(GRB_CONTINUOUS、GRB_BINARY、GRB_INTEGER、GRB_SEMICONT 或 GRB_SEMIINT)。 |
names(可选) | 新变量的名称。 |
返回值 | 新的变量对象。 |
模板2
GRBVar addVar (double lb,
double ub,
double obj,
char type,
int numnz,
const GRBConstr* constrs,
const double* coeffs,
string name="" )
添加一个变量,以及相关的非零系数。
参数 | 详解 |
---|---|
lb | 新变量的下限。 |
ub | 新变量的上限。 |
obj | 新变量的客观系数。 |
type | 新变量的变量类型(GRB_CONTINUOUS、GRB_BINARY、GRB_INTEGER、GRB_SEMICONT 或 GRB_SEMIINT)。 |
numnz | 这个新变量参与的约束数量。 |
constrs | 变量参与的约束数组。 |
coeffs | 变量参与的每个约束的系数数组。 |
names(可选) | 新变量的名称。 |
返回值 | 新的变量对象。 |
模板3
GRBVar addVar (double lb,
double ub,
double obj,
char type,
const GRBColumn& col,
string name="" )
添加一个变量,以及相关的非零系数。
参数 | 详解 |
---|---|
lb | 新变量的下限。 |
ub | 新变量的上限。 |
obj | 新变量的客观系数。 |
type | 新变量的变量类型(GRB_CONTINUOUS、GRB_BINARY、GRB_INTEGER、GRB_SEMICONT 或 GRB_SEMIINT)。 |
col | GRBColumn 对象,用于指定新变量所属的一组约束。 |
names(可选) | 新变量的名称。 |
返回值 | 新的变量对象。 |
GRBModel::addVars()
向模型添加新的决策变量。
模板1
GRBVar* addVars(int count,
char type=GRB_CONTINUOUS)
向模型添加count个新的决策变量。 所有关联的属性都采用它们的默认值,但变量类型除外,它被指定为参数。
参数 | 详解 |
---|---|
count | 需要添加变量的数量 |
type (可选) | 新加变量的类型,可选类型: GRB_CONTINUOUS, GRB_BINARY, GRB_INTEGER, GRB_SEMICONT, or GRB_SEMIINT |
返回值 | 新变量对象的数组。 请注意,结果是堆分配的,并且必须由用户返回到堆中。 |
模板2
GRBVar* addVars(const double* lb,
const double* ub,
const double* obj,
const char* type,
const string* names,
int count )
向模型添加计数新决策变量。 此函数名允许使用数组来保存各种变量属性(例如下限、上限等)。
参数 | 详解 |
---|---|
lb | 新变量的下限。 可以为 NULL,在这种情况下,变量的下限为 0.0。 |
ub | 新变量的上限。 可以为 NULL,在这种情况下,变量获得无限的上限。 |
obj | 新变量的客观系数(Objective coefficients)。 可以为 NULL,在这种情况下,变量的客观系数为 0.0。 |
type | 新变量的变量类型(GRB_CONTINUOUS、GRB_BINARY、GRB_INTEGER、GRB_SEMICONT 或 GRB_SEMIINT)。 可以为 NULL,在这种情况下假定变量是连续的。 |
names | 新变量的名称。 可以为 NULL,在这种情况下,所有变量都被赋予默认名称。 |
count | 要添加的变量数。 |
返回值 | 新变量对象的数组。 请注意,结果是堆分配的,并且必须由用户返回到堆中。 |
模板3
GRBVar* addVars(const double* lb,
const double* ub,
const double* obj,
const char* type,
const string* names,
const GRBColumn* cols,
int count )
向模型添加新的决策变量。 此函数允许使用 GRBColumn 对象数组指定每个新变量所属的一组约束。
参数 | 详解 |
---|---|
lb | 新变量的下限。 可以为 NULL,在这种情况下,变量的下限为 0.0。 |
ub | 新变量的上限。 可以为 NULL,在这种情况下,变量获得无限的上限。 |
obj | 新变量的客观系数。 可以为 NULL,在这种情况下,变量的客观系数为 0.0。 |
type | 新变量的变量类型(GRB_CONTINUOUS、GRB_BINARY、GRB_INTEGER、GRB_SEMICONT 或 GRB_SEMIINT)。 可以为 NULL,在这种情况下假定变量是连续的。 |
names | 新变量的名称。 可以为 NULL,在这种情况下,所有变量都被赋予默认名称。 |
cols | GRBColumn 对象,用于指定每个新列所属的一组约束。 |
count | 要添加的变量数。 |
返回值 | 新变量对象的数组。 请注意,结果是堆分配的,并且必须由用户返回到堆中。 |