线性规划
简单的线性规划(目标函数和约束都是线性函数)
R中常用lpSolve、Rglpk包来解决。lpSolve包的核心函数的lp(),lp.assign,lp.transport()依次解决简单线性规划、分配问题、生产计划和交通运输问题。用法:
简单线性规划
lp (direction = "min", objective.in, mat,dir,rhs, int.vec,binary.vec, all.int=FALSE, all.bin=FALSE)
# mat为系数矩阵 dir 约束的方向 rhs 约束的右端系数
#若为整数规划,可通过int.vec=c(i)制定序号来设定,若全是可通过all.int=TRUE实现。若为0-1规划,则可以通过all.bin=TRUE来实现。
Rglpk包的函数Rglpk_solve_LP()也可以实现上述简单线性规划。用法:
Rglpk_solve_LP(obj, mat, dir, rhs, types = NULL, max = FALSE,control = list(), ...)
#max为最大值的逻辑参数
#type 变量类型 B——0-1变量 I——正整数 C 正实数
分配问题
分配问题,此处以匈牙利问题为例,说明其在R中的实现
- lp.assign()的用法
lp.assign (mat, "min", presolve = 0, compute.sens = 0)