我是R编程的初学者。我正在尝试在R中进行整数编程。当我使用int.vec
时,所有决策变量的输出都为0。谁能帮我了解为什么会这样。以下是我的代码。
library(lpSolve)
f.obj=c(900,900,900,900,1800,1800,1800,1800)
f.con=matrix(c(3,0,0,0,6,0,0,0,
0,3,0,0,0,6,0,0,
0,0,3,0,0,0,6,0,
0,0,0,3,0,0,0,6,
1,0,0,0,0,0,0,0,
0,1,0,0,0,0,0,0,
0,0,1,0,0,0,0,0,
0,0,0,1,0,0,0,0,
0,0,0,0,1,0,0,0,
0,0,0,0,0,1,0,0,
0,0,0,0,0,0,1,0,
0,0,0,0,0,0,0,1,
1/13,1/19,1/24,1/15,0,0,0,0,
0,0,0,0,1/13,1/19,1/24,1/15), ncol=8, byrow=TRUE)
f.dir=c("=","=","=","=","<=","<=","<=","<=","<=","<=","<=","<=","<=","<=")
f.rhs=c(2500,500,2500,500,650,1200,800,1200,650,1200,800,1200,100,100)
solution=lp("max",f.obj,f.con,f.dir,f.rhs,int.vec = 1:8)
solution$solution
输出:
#[1] 0 0 0 0 0 0 0 0
答案 0 :(得分:0)
我认为您得到的都是零,因为它是唯一的“整数”解决方案。解决方案状态= 2,表示该问题不可行。如果我们不要求前四个变量为整数,则解决方案为非零:
solution=lp(direction = "max",f.obj,f.con,f.dir,f.rhs,int.vec = 5:8)
> solution$solution
[1] 1.3333333 0.6666667 1.3333333 0.6666667 416.0000000 83.0000000
[7] 416.0000000 83.0000000