首页>软件资讯>常见问题

常见问题

Gurobi 10.0 优化引擎

发布时间:2024-08-07 21:17:17人气:30

Gurobi 10.0 优化引擎

易⽤功能 – 产品特⾊


• 极⼤提升了Gurobi Python 矩阵 API,使⽤更友好

• 所有矩阵对象都⽀持多维度

• 维度处理规则和 Numpy 规则保持⼀致,包括传播机制(broadcasting)

• 新增逻辑(logistic)函数⼴义约束

• 更容易在MIP模型中增加逻辑函数做为约束

• 逻辑函数有多种⽤途,包括⽣态学、统计学、机器学习、医药化⼯等领域

• .NET 的 NuGet ⽀持

• 允许 .NET ⽤户直接从 NuGet 服务器下载 Gurobi 

• 内存限制终⽌参数,允许优雅退出

• ⽤户可以设定⼀个内存使⽤上限,⼀旦达到,可以优雅退出并获得最好的结果


Gurobipy

多维度建模

• 到 9.5 为⽌,对于多维建模的⽀持是有限的

• 对于 10.0:

• 所有 MVar, MLinExpr 和 MQuadExpr ⽀持任意维度

• 从这些表达式添加到约束中会产⽣多维度 MConstr/MQConstr。

2-d线性约束.png

Gurobipy

多维度建模

到 9.5 为⽌,对于多维建模的⽀持是有限的

• 对于 10.0:

• 所有 MVar, MLinExpr 和 MQuadExpr ⽀持任意维度

• 从这些表达式添加到约束中会产⽣多维度 MConstr/MQConstr

1-D ⼆次约束.png

Gurobipy

传播 Broadcasting

• 到 9.5 为⽌: 对于⼤多数操作, 维度要匹配

• 对于 10.0:

• 所有 MVar, MLinExpr 和 MQuadExpr ⽀持传播

• ⽀持 scalar, ndarray, SciPy sparse matrices, 和所有⽀持矩阵接⼝的对象

向量化的 VUB 约束.png

到 9.5 为⽌: 对于⼤多数操作, 维度要匹配

• 对于 10.0:

• 所有 MVar, MLinExpr 和 MQuadExpr ⽀持传播

• ⽀持 scalar, ndarray, SciPy sparse matrices, 和所有⽀持矩阵接⼝的对象

传播.png

Gurobipy

其他矩阵接⼝功能和⽅法

• 概要

• 对于经验丰富的 Numpy ⽤户操作结果的意外会⼤⼤减少

• ⽀持矩阵相乘和按元素相乘⼆种乘法

• MVar

• 从 MVar 类型变量 X, 提取对⾓线 : X.diagonal(offset).

• 从⼀列常规变量 Var 转换成 MVar: x = MVar.fromlist(varlist)

• 对 MVar 按照轴向进⾏加和: X.sum(axis=…)

• 按照元素对 Mvar 变量进⾏平⽅: pow(X, 2), X**2

• MLinExpr

• 全零表达式: MLinExpr.zeros(shape)

• 对 MLinExpr 按照轴向进⾏加和: mle.sum(axis=…)

• 新类型 MQuadExpr

• ⽤于多维⼆次约束建模

• 与 MLinExpr 类似的⽅法和属性

• 新类型 MQConstr • 构造多维度⼆次约束时,调⽤ model.addConstr(…) 的返回类型

• 与 MConstr 类似的⽅法和属性。

逻辑函数⼴义约束 Logistic General Constraint

Gurobi 中的广义函数约束

允许定义y=f(x)

• f 是预先定义的函数

• y和x是一维变量

Gurobi 会自动在x 取值范围内对f 进行分段线性化近

将逻辑函数添加f 函数集中



上一条:Gurobi 10.0 新亮点

下一条:Gurobi 10.0 – 开源 GitHub 应⽤库