我在R中开发了一个线性编程模型,我想知道将变量设置为值的命令,这是我的代码和结果:
install.packages("lpSolveAPI")
library(lpSolveAPI)
#want to solve for 6 variables, these correspond to the number of bins
lprec <- make.lp(0, 6)
lp.control(lprec, sense="max")
#MODEL 1
set.objfn(lprec, c(13.8, 70.52,122.31,174.73,223.49,260.65))
add.constraint(lprec, c(13.8, 70.52, 122.31, 174.73, 223.49, 260.65), "=", 204600)
add.constraint(lprec, c(1,1,1,1,1,1), "=", 5000)
结果如下:
> solve(lprec)
[1] 0
> get.objective(lprec)
[1] 204600
> get.variables(lprec)
[1] 2609.309 2390.691 0.000 0.000 0.000 0.000
我想将第一个结果(2609)设置为3200,将最后一个结果设置为48,然后对其他变量进行优化,将非常感谢任何帮助。
答案 0 :(得分:1)
理想情况下,您的期望是针对约束优化,您应根据自己的要求添加更多约束。我不熟悉lpSolveAPI,因此无法进行正确的编码,但您需要以下内容:
add.constraint(lprec, c(1, 0, 0, 0, 0, 0), "=", 3200)
add.constraint(lprec, c(0, 0, 0, 0, 0, 1), "=", 48)
与您现有的约束一起。