使用 lpsolve 为决策变量子集的比例定义约束
Using lpsolve to define constraint for the proportion over a subset of decision variables
我正在制定一个 lp 解决方案,但在定义约束方面遇到困难。
假设我有 9 个决策变量,{x1,x2...n}
假设我还有一个涉及所有决策变量子集的约束:
x1 / (x1+x2+x3) = 40/100
那我要怎么写才能让lpsolve使用呢?
我试过:
add.constraint(model, c(1,0,0,0,0,0,0,0,0), "=", c(.4,.4,.4,0,0,0,0,0,0))
和
add.constraint(model, c(0.4,0,0,0,0,0,0,0,0), "=", c(1,1,1,0,0,0,0,0,0))
提前致谢。
假设你的意思是 (x1+x2+x3) 我们有
x1 / (x1+x2+x3) = 40/100
相当于
x1 = (40/100) (x1+x2+x3)
相当于
(1-40/100)x1 - (40/100)x2 - (40/100)x3 = 0
为了得到一个完整的问题,假设下面的objective是ones
并且还要添加9个约束x[i] <= 1, i = 1, ..., 9 in在这种情况下,我们有以下最大化问题:
library(lpSolve)
ones <- rep(1, 9)
a <- c(1-40/100, -40/100, -40/100, 0, 0, 0, 0, 0, 0)
A <- rbind(a, diag(9))
lp("max", ones, A, c("=", rep("<=", 9)), c(0, ones))
我正在制定一个 lp 解决方案,但在定义约束方面遇到困难。
假设我有 9 个决策变量,{x1,x2...n}
假设我还有一个涉及所有决策变量子集的约束:
x1 / (x1+x2+x3) = 40/100
那我要怎么写才能让lpsolve使用呢?
我试过:
add.constraint(model, c(1,0,0,0,0,0,0,0,0), "=", c(.4,.4,.4,0,0,0,0,0,0))
和
add.constraint(model, c(0.4,0,0,0,0,0,0,0,0), "=", c(1,1,1,0,0,0,0,0,0))
提前致谢。
假设你的意思是 (x1+x2+x3) 我们有
x1 / (x1+x2+x3) = 40/100
相当于
x1 = (40/100) (x1+x2+x3)
相当于
(1-40/100)x1 - (40/100)x2 - (40/100)x3 = 0
为了得到一个完整的问题,假设下面的objective是ones
并且还要添加9个约束x[i] <= 1, i = 1, ..., 9 in在这种情况下,我们有以下最大化问题:
library(lpSolve)
ones <- rep(1, 9)
a <- c(1-40/100, -40/100, -40/100, 0, 0, 0, 0, 0, 0)
A <- rbind(a, diag(9))
lp("max", ones, A, c("=", rep("<=", 9)), c(0, ones))