当前位置:网站首页>Gurobi——GRBModel
Gurobi——GRBModel
2022-07-15 16:31:00 【不懂音乐的欣赏者】
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 | 要添加的变量数。 |
| 返回值 | 新变量对象的数组。 请注意,结果是堆分配的,并且必须由用户返回到堆中。 |
参考
边栏推荐
- Distributed basic theory that cannot be ignored
- Extrait d'un bon article
- [system design] 4S analysis method
- [golang] heap structure template based on go language
- LeetCode 188. 买卖股票的最佳时机 IV***(double,need triple)
- The third question of the 13th Landbridge cup 2022 - sum (prefix sum or formula method)
- Diwen serial port screen tutorial (3)
- Quantum computing + semiconductor materials! Quantum and JSR reach cooperation
- fink.15 DataSet模块 算子大全
- FFmpeg 音视频转封装(MP4与FLV互转,流数据转FLV、MP4)
猜你喜欢

Empowering new industries and creating a new future | Tupo software was invited to participate in the Xiamen Industrial Expo

函数高级应用

圖撲 Web 可視化引擎在仿真分析領域的應用

“沉浸式”住宿体验——酒店的新瓶,民宿的老酒

【LeetCode】26、删除有序数组中的重复项

软件研发效能需求价值流分析专题

【森城市】GIS数据漫谈(四)— 坐标系统

2、Deep Learning in Higher Dimensions

Together with Alibaba cloud, grafana labs will provide the first grafana hosting service in China

不能不知道的分布式基础理论
随机推荐
Jerry's use of one driven two burner burning notes [chapter]
[C #] commonly used utils
LocalDateTime格式化日期和@JsonFormat注解用法和@TableField(fill = FieldFill.INSERT)
canal实现从mysql实时同步数据到es
循环语句及数组
R语言dplyr包summarise_all函数计算dataframe数据中所有数值数据列的均值和中位数、使用sapply筛选数值数据列(Summarize all Numeric Variables
LeetCode 188. 买卖股票的最佳时机 IV***(double,need triple)
Function advanced application
Face the object
How to apply knowledge management in enterprise work to solve enterprise problems?
Grafana Labs携手阿里云,将提供国内首款Grafana托管服务
Canal realizes real-time synchronization of data from Mysql to es
【golang】基于go语言的堆结构模板
软件研发效能需求价值流分析专题
After reading these five reasons, I finally know the reason why FTP was replaced
物理学\数学中常用的“等号”
CS5801_ HDMI to EDP advantage replaces lt6711a solution
VI editor commands
R语言使用lm函数构建线性回归模型、使用I运算符嵌入表达式、使用表达式指定回归方程的形式
Animation and encapsulation (offset, client, scroll series)