首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >get.basis()在lpSolveAPI中

get.basis()在lpSolveAPI中
EN

Stack Overflow用户
提问于 2015-05-15 05:56:49
回答 1查看 488关注 0票数 2

我对函数get.basis()的返回感到困惑。例如,

代码语言:javascript
复制
lprec <- make.lp(0, 4)
set.objfn(lprec, c(1, 3, 6.24, 0.1))
add.constraint(lprec, c(0, 78.26, 0, 2.9), ">=", 92.3)
add.constraint(lprec, c(0.24, 0, 11.31, 0), "<=", 14.8)
add.constraint(lprec, c(12.68, 0, 0.08, 0.9), ">=", 4)
set.bounds(lprec, lower = c(28.6, 18), columns = c(1, 4))
set.bounds(lprec, upper = 48.98, columns = 4)
RowNames <- c("THISROW", "THATROW", "LASTROW")
ColNames <- c("COLONE", "COLTWO", "COLTHREE", "COLFOUR")
dimnames(lprec) <- list(RowNames, ColNames)
solve(lprec)

那么基本变量是

代码语言:javascript
复制
> get.basis(lprec)
[1] -7 -2 -3

然而,解决方案是

代码语言:javascript
复制
> get.variables(lprec)
[1] 28.60000  0.00000  0.00000 31.82759

从解的角度看,变量1和变量4是基本的。因此,向量(-7,-2,-3)是如何来自?的。

我猜想它来自3个约束和4个决策变量。

EN

回答 1

Stack Overflow用户

发布于 2015-05-21 04:45:56

在回顾了有界变量的单纯形方法之后,我终于明白了它是如何发生的。这两个链接是有帮助的。示例视频

回到这个问题上,这个结构就像

lpSolveAPI (lp_solve的R接口)在添加适当的松弛变量后,将按照以下格式重写约束结构。前三列是用于松弛变量的。因此,get.basis()的返回(即-7,-2,-3 )是代表变量4、松弛变量2和3的第7、2、3列。

对于这类具有有界变量的LP,变量在下界或上界都可以是非基本变量。get.basis(lp, nonbasic=TRUE)的返回值是-1,-4,-5,-6。减号表示这些变量在它们的下界。它意味着松弛变量1= 0,变量4= 28.6,变量5= 0,变量6= 0。

因此,最优解为28.6(非基本),0(非基本),0(非基本),31.82(基本)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30252489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档