Как написать ограничение, которое ссылается на цель в R оптимизации - PullRequest
0 голосов
/ 11 декабря 2018

Вот цель, которую я хотел бы максимизировать в 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) в функции ограничения?

Заранее спасибо

1 Ответ

0 голосов
/ 11 декабря 2018

Не работает следующее?

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, которые, я полагаю, у вас есть.Если последнее ограничение выполнено, остальные будут автоматически, поэтому это единственное, что имеет значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...