14.1 线性规划

clpAPI 线性规划求解器。glpk 的两个 R 接口 – glpkAPIRglpk 提供线性规划和混合整数规划的求解能力。lp_solve 的两个 R 接口 – lpSolveAPIlpSolve 也提供类似的能力。ompr 求解混合整数线性规划问题。

举个例子,如下

minx6x15x2s.t.{x1+4x2166x1+4x2282x15x26

写成矩阵形式

minx[65]Txs.t.{[146425]x[16286]

对应成 R 代码如下

# lpSolve 添加约束条件
library(lpSolve)
# 目标
f.obj <- c(-6, -5)
# 约束
f.con <- matrix(c(1, 4, 6, 4, 2, -5), nrow = 3, byrow = TRUE)
# 方向
f.dir <- c("<=", "<=", "<=")
# 右手边
f.rhs <- c(16, 28, 6)
res <- lp("min", f.obj, f.con, f.dir, f.rhs)
res$objval
## [1] -31.4
res$solution
## [1] 2.4 3.4