Фэнтези-футбол линейное программирование в R с RGLPK

слушатель, впервые обращающийся к S.O ... Я задаю вопрос, который был задан очень похожим ранее, однако я не верю, что я достаточно умен, чтобы расшифровать, как реализовать решение, за что извиняюсь. Вот ссылка на вопрос, который я нашел:Ограничения в R Многоцелое Линейное Программирование

Я максимизирую свои прогнозируемые баллы фантазии (FPTS_PREDICT_RF) при условии ограничения в размере 50 000 окладов, одновременно сводя к минимуму расчет «риска», который я придумал.

Теперь проблема заключается в «гибкой» позиции. Команда должна состоять из 9 позиций, 1 QB 2 RB 3 WR 1 TE 1 DEF 1 FLEX

Изгиб может быть RB, WR или TE.
Таким образом, мы можем иметь: 1 QB 2-3 RB 3-4 WR 1-2 TE 1 DEF

Я пытаюсь реализовать ограничение, что #RB + #WR + #TE == 7.

Вот соответствующий код:

library(Rglpk)



# number of variables
num.players <- length(final$PLAYER)
# objective:
obj <- final$FPTS_PREDICT_RF
# the vars are represented as booleans
var.types <- rep("B", num.players)
# the constraints
matrix <- rbind(as.numeric(final$position == "QB"), # num QB
           as.numeric(final$position == "RB"), # num RB
           as.numeric(final$position == "WR"), # num WR
           as.numeric(final$position == "TE"), # num TE
           as.numeric(final$position == "DEF"),# num DEF
           diag(final$riskNormalized),         # player's risk
           final$Salary)                       # total cost

direction <- c("==",
         "<=",
         "<=",
         "<=",
         "==",
         rep("<=", num.players),
         "<=")

rhs <- c(1, # Quartbacks
       3, # Running Backs
       2, # Wide Receivers
       1, # Tight Ends
       1, # Defense
       rep(10, num.players), #HERE, you need to enter a number that indicates how
                             #risk you are willing to be, 1 being low risk,
                             # 10 being high risk.  10 is max.
       50000)                # By default, you get 50K to spend, so leave this number alone. 

sol <- Rglpk_solve_LP(obj = obj, mat = matrix, dir = direction, rhs = rhs,
                      types = var.types, max = TRUE)
sol #Projected Fantasy Points

Может ли кто-нибудь помочь мне реализовать это ограничение? Любая помощь очень, очень ценится!

РЕДАКТИРОВАТЬ: ссылка на набор данных 'окончательный' в формате CSV:https://www.dropbox.com/s/qp35wc4d380hep1/final.csv?dl=0

ПОБОЧНЫЙ ВОПРОС: Для любого из вас, фэнтезийных футболистов, я рассчитываю свой фактор риска непосредственно из S.D. исторических очков фантазии игрока, и нормализация этого числа по поддержке [0,10]. Можете ли вы придумать лучший способ рассчитать данный риск игроков?

Ответы на вопрос(1)

Ваш ответ на вопрос