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

本文介绍了如何在R语言中使用Gurobi这个大规模优化器。Gurobi支持学术免费版并能解决线性、二次及混合整数问题。文章详细讲解了Gurobi的安装,特别是解决学术版安装时可能出现的问题,以及在R中安装Gurobi包的步骤。此外,还展示了如何通过Model和Params列表来描述问题和自定义参数。
摘要由CSDN通过智能技术生成

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

可以申请免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
  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值