Фэнтези-футбол линейное программирование в 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]. Можете ли вы придумать лучший способ рассчитать данный риск игроков?