这是我想在R中最大化的目标:
AX1 + BX2 + CX3 + DX4
存在以下约束
0> = S2> = 8
0> = C3> = 8
0> = MF> = 8
0> = S5> = 8
哪里
S2 = X1 + V.
C3 = Kc2 + X1 + B.
中= X3 + X2 + X1 + B.
C5 = X4 + X3 + X2 + X1 + B.
基本上,约束参考了目标。
例如,如果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的正确值,我认为你有。如果满足最后一个约束,则其他约束将自动完成,因此它是唯一重要的约束。