星期三, 五月 04, 2011

用R语言来进行线性规划

线性规划是运筹学中研究较早、发展较快、应用广泛、方法较成熟的一个重要分支,它是辅助人们进行科学管理的一种数学方法.研究线性约束条件下线性目标函数的极值问题的数学理论和方法,英文缩写LP。它是运筹学的一个重要分支,广泛应用于军事作战、经济分析、经营管理和工程技术等方面。为合理地利用有限的人力、物力、财力等资源作出的最优决策,提供科学的依据。

下面用R语言的lpSolve扩展包来解决一个简单的线性规划问题


target: max C = 5*x1 + 8*x2
subject to:
 x1 + x2 <= 2
 x1 + 2*x2 = 3
 x1,x2 >=0

R语言代码如下:

library(lpSolve)
eg.lp <- lp(objective.in=c(5, 8),
const.mat=matrix(c(1, 1, 1, 2), nrow=2),
const.rhs=c(2, 3),
const.dir=c("<=", "="), direction="max")
eg.lp$solution

求解为1,1

3 条评论:

  1. 阅读你的博文后,受益匪浅。
    有一问题:
    线性规划是否可以解不定方程,如下的不定方程如何用lpSolve来表示求解

    10330 x +10335 y + 10340 z = 558340;
    x + y + z = 54;
    x >= 0;
    y >= 1;
    z >= 0;

    回复删除
    回复
    1. 我对于运筹不太在行,你可以问问魏太云。他曾经发表过一篇关于“R软件与最优化”的文章。

      删除
    2. 找到 R软件与最优化 了,在研究中

      删除