这是我想在R:中最大化的目标
AX1+BX2+CX3+DX4
存在以下约束
0>=S2>=8
0>=S3>=8
0>=S4>=8
0>=S5>=8
其中
S2=X1+V
S3=X2+X1+V
S4=X3+X2+X1+V
S5=X4+X3+X2+X1+V
基本上,约束引用目标。
例如,如果V=4,X1=2,则S2=6。(因此,不违反约束条件0>=S2>=。
如何在约束函数中引用目标(我使用了L_objective函数(?
提前感谢
以下内容不起作用吗?
library(ROI)
obj <- L_objective(c(A, B, C, D)
const.mat <- matrix(c(1, 0, 0, 0,
1, 1, 0, 0,
1, 1, 1, 0,
1, 1, 1, 1),
nrow = 4)
const <- L_constraint(rbind(const.mat, constmat),
dir = c(rep(">=", 4), rep("<=", 4)),
rhs = c(rep(0-V, 4), rep(8-V, 4)))
op <- op(obj, const, maximum = TRUE)
out <- ROI_solve(op)
当然,填写A、B、C、D和V的正确值,我想你已经填写了。如果最后一个约束得到满足,其他约束将自动得到满足,所以这是唯一重要的约束。