Gurobi 全球用户超过2600家,广泛应用在金融、物流、制造、航空、石油石化、商业服务等多个领域,为智能化决策提供了坚实的基础,成为上千个成熟应用系统的核心优化引擎。 Gurobi 是全局优化器,支持的模型类型包括: (1)连续和混合整数线性问题 (2)凸目标或约束连续和混合整数二次问题 (3)非凸目标或约束连续和混合整数二次问题 (4)含有对数、指数、三角函数、高阶多项式目标或约束,以及任何形式的分段约束的非线性问题 (5)含有绝对值、最大值、最小值、逻辑与或非目标或约束的非线性问题 Gurobi 技术优势: (1)可以求解大规模线性问题,二次型问题和混合整数线性和二次型问题 (2)支持非凸目标和非凸约束的二次优化 (3)支持多目标优化 (4)支持包括SUM, MAX, MIN, AND, OR等广义约束和逻辑约束 (5)支持包括高阶多项式、指数、三角函数等的广义函数约束 (6)问题尺度只受限制于计算机内存容量,不对变量数量和约束数量有限制 (7)采用最新优化技术,充分利用多核处理器优势。支持并行计算 (8)提供了方便轻巧的接口,支持 C++, Java, Python, .Net, Matlab 和R,内存消耗少 (9)支持多种平台,包括 Windows, Linux, Mac OS X
# I% E* g8 u% A6 K激活安装
* E( I/ m2 y& K- l9 }/ ~5 i激活
使用教育邮箱申请https://zhuanlan.zhihu.com/p/212191049免费使用 中文官网:http://www.gurobi.cn/
+ [4 g3 ~2 O! M. o7 _1 e安装
打开Anaconda Prompt,并输入以下两条指令: conda config --add channels http://conda.anaconda.org/gurobiconda install gurobi 即可在anaconda中完成Gurobi包的下载安装。
8 T% J, P1 l6 p: e4 `使用demo
官方文档:https://www.gurobi.com/documentation/9.1/quickstart_windows/cs_simple_python_example.html · Model(name=“”) name是模型的名称, 返回值是一个model对象,初始情况下没有变量和约束条件 调用方式:model1 = Model() · Model.addVar(lb, ub, obj, vtype, name,column) lb是下限,ub是上限,obj是目标的优化系数,vtype是变量类型,name是变量的名称,column是变量参与的约束以及优化系数。 所有的参数都是可选的,不指定就是默认值 变量的类型有GRB.CONTINUOUS, GRB.BINARY, GRB.INTEGER, GRB.SEMICONT, or GRB.SEMIINT · Model.addConstr( lhs, sense=None, rhs=None, name="" ) lhs是约束的右侧,rhs是约束的左侧,sense是约束的类型,有(GRB.LESS_EQUAL, GRB.EQUAL, or GRB.GREATER_EQUAL name是约束的名称 · Model.addConstrs( generator, name="" ) generator是Python表达式。这种表达方式比 2 直观一点,返回值是tupledict类型的 例:model.addConstrs(x + x[j] <= 1 for i in range(5) for j in range(5)) 注意:generator表达式只能由一个比较关系。 · Model.update() 对修改了的模型进行更新 Model.setObjective(expr, sense) 设置模型的优化函数 expr是优化目标表达式,sense是优化类型,优化类型有GRB.MINIMIZE和GRB.MAXIMIZE,如果省略sense可以使用ModelSense函数来指定优化的类型。 · Model.write(filename) 将优化模型,解向量,基向量,起始向量或参数设置写入文件,文件的类型有.mps, .rew, .lp .rlp,也可以只保存的模型的一部分,详见refman · Model.getVars() 返回模型中的所有变量
& U0 i0 j0 Q# J$ y$ I% k2 j; @下面是Gurobi的代码示例:
/ |) C9 |6 z: {& H: n0 I, n. o% \7 L& A% r# }) u4 ]$ b
% J2 y1 m1 M- ~' ]/ w' R) S
1 K! I# D, R1 S$ F7 }$ Z! N' B7 K. u# L ]. y( Q% n
2 {: G! f7 j a d' f. Z' g
|