R语言:求解线性规划问题,linprog包中的solveLP()详解

线性规划问题:

min ⁡ c T x s . t . A x ≤ b , x ≥ 0 \min c^\mathrm{T}x \quad s.t. \quad Ax \leq b,x\geq 0 mincTxs.t.Axb,x0

可使用R语言linprog包中的solveLP()对上述问题进行求解。

语法:

solveLP( c, b, A, maximum = FALSE,
   const.dir = rep( "<=", length(b) ),
   maxiter = 1000, zero = 1e-9, tol = 1e-6, dualtol = tol,
   lpSolve = FALSE, solve.dual = FALSE, verbose = 0 )

参数说明:

参数类型含义默认值
cn维向量见公式
bm维向量见公式
Am × \times ×n维矩阵见公式
maximum布尔值优化问题是最大化(TRUE)还是最小化(FALSE)FALSE
const.dir长度为m的字符串向量m个约束条件中的不等号rep( “<=”, length(n) )
maxiter整数最大循环次数1000
zero小数当一个数的绝对值比zero小时,该数可视为01e-9
tol小数可容忍的不满足的约束条件的数量,超过后返回31e-6
dualtol小数对偶问题可容忍的不满足的约束条件的数量,超过后返回非零的数tol
lpSolve布尔值是否使用lpSolve包FALSE
solve.dual布尔值对偶问题是否需要同时求解FALSE
verbose整数指示应打印多少中间结果(0 = 无输出;4 = 最大输出)0

例子:

library(linprog)

c<-c(1800,600,600)
b<-c(40,90,2500)
A<-rbind(c(0.7,0.35,0),
          c(1.5,1,3),
          c(50,12.5,20))
x<-solveLP(c,b,A,TRUE)  #求解最大化问题
x$solution

输出结果:

>x$solution
1 2 3
44 24 0

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值