当前位置:   article > 正文

R语言-大规模优化器(gurobi)_gurobi语言

gurobi语言

gurobi简介

大规模优化器一般针对问题规模比较庞大,变量和约束数量达到几十万或者以上级别的问题。当前运筹学领域公认主流的大规模优化器中,商业优化器包括 Gurobi, Cplex, Xpress;免费优化器包括 SCIP, CBC, GLPK 等。其中Gurobi有提供学术免费版本,并且现在支持特定广义约束,可以直接输入Min, Max, Abs, 逻辑条件(AND, OR)等约束,而不必人为转换为线性约束。

Gurobi 可以解决的数学问题包括:

  • 线性问题(Linear problems)
  • 二次型问题(Quadratic problems)
  • 混合整数线性和二次型问题(Mixed integer linear and quadratic problems)

gurobi的安装

gurobi学术免费版申请

假如在在官网申请了学术免费版后进行安装出现以下的一些错误:

ERROR 303: hostname mymachine.mydomain (xx.xx.xx.xx) not recognized as belonging to an academic domain
# 或  
ERROR 303: hostname xx.xx.xx.xx (xx.xx.xx.xx) not recognized as belonging to an academic domain
  • 1
  • 2
  • 3

可以申请免ip验证学术许可,具体可以看下:http://www.edgestone-it.com/gurobi.htm

R语言安装gurobi包

找到gurobi安装目录下的R文件夹下的gurobi_7.0-1.zip。并在R语言中安装此包,便可以进行在R中调用gurobi接口。
这里写图片描述

R语言中的gurobi

gurobi中,只提供了一条函数gourbi.主要通过两个list进行描述问题。Model描述问题,params描述自定义参量。

Model list

其中Model列表中包含以下元素

参数 作用
model$A 线性约束系数矩阵
model$obj 决策变量(控制变量)系数
model$sense 约束符号,由=, >, <, >=, <=组成
model$rhs 线性约束右端向量
model$lb 求解向量下界
model$ub 求解向量上界
model$vtypes 求解向量的类型,I表示整数,B表示0-1,C表示连续,S表示半连续,N表示半整数次
model$modelsense 设定max,min,默认求解min
model$start MIP初始解的设定,当存在是必须为每个变量都设定初始值。你也可以设定一些变量为NA,MIP求解器会尝试去进行填补NA值。(个人理解是设定初始的基本可行解)
model$vbasis 变量的状态向量(The variable basis status vector.),为单纯形法提供一个较好的起点。进行设置时,需要对变量都进行设置。(个人理解是非基变量的价值系数子向量)
model$cbasis 约束的状态向量(The constraint basis status vect
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/1015646
推荐阅读
相关标签
  

闽ICP备14008679号