окунание ног в R после использования excel в течение многих лет и вопрос. Я полностью впечатлен тем, насколько быстрее R, он использовал Excel за час, чтобы выполнить 10 000 симуляций, а R сделал 25 000 из того же сима за 4 минуты. Потрясающие.Условные ограничения в библиотеке RGLPK для R
Это фэнтезийный футбол, связанный, поскольку я пытаюсь создать оптимизатор линейки в R и нашел, что библиотека RGLPK является хорошим вариантом. Есть много других вопросов о SO, которые помогли мне добраться до того места, где я нахожусь сегодня, однако я попал в дорожный блок. Вот некоторые из других тем.
Fantasy football linear programming in R with RGLPK
Rglpk - Fantasy Football Lineup Optimiser - Rbind of For Loop Output
Rglpk - Fantasy Football Lineup Optimiser - Forcing the Inclusion of a Player
Вот мой запас оптимизатор
#stock optimal linups solver
name <- myData$Name
pos <- myData$Pos
pts <- myData$Projection
cost <- myData$Salary
team <- myData$Team
opp <- myData$Opp
num.players <- length(name)
f <- pts
var.types <- rep("B", num.players)
A <- rbind(as.numeric(pos=="QB")
, as.numeric(pos=="RB")
, as.numeric(pos=="WR")
, as.numeric(pos=="TE")
, as.numeric(pos=="K")
, as.numeric(pos=="D")
,cost)
dir <- c("=="
,"=="
,"=="
,"=="
,"=="
,"=="
,"<=")
b <- c(1
, 2
, 3
, 1
, 1
, 1
, 60000)
library(Rglpk)
sol <- Rglpk_solve_LP(obj = f
, mat = A
, dir = dir
, rhs = b
, types = var.types
, max=TRUE)
myData[sol$solution == 1,]
sprintf('Cost is:$%i', sum(cost[sol$solution > 0]))
sprintf('Projected Points is: %f', sol$optimum)
Вот ссылка на данные, я использую.
https://www.dropbox.com/s/d5m8jjnq32f0cpe/Week6NFLProjections.csv?dl=0
Я тоже до точки, где я могу мертвый код для создания нескольких составов команд, установив цель = к предыдущему балла - .01. В качестве побочного примечания этот процесс значительно замедляется, поскольку он продолжает развиваться (скажем, по линейке №50), является ли это нормальным, и есть ли более эффективный способ этого цикла?
Мой настоящий вопрос: как я могу добавить некоторые более обширные ограничения. В фэнтезийном футболе полезно «спарить» игроков из одной и той же команды, и я не могу понять, как бы это повлияло на ограничения.
Для простого примера спаривания, как я могу добавить ограничение, чтобы моя «оптимальная модель» имела бы D и K из той же команды? Я действительно смог решить этот вопрос, просто объединив D + K в CSV-файле, но меня интересует, как я буду кодировать его в R.
Более сложный сценарий сопряжения должен состоять в том, чтобы иметь QB и просто 1 из (3) WR/(1) TE находится в одной команде.
Другим было бы убедиться, что ни один из наступательных игроков не играет против моей собственной защиты.
Любая помощь была бы принята с благодарностью. Кажется, я не могу найти ответ на этот вопрос.
Я думаю, что могу создать вектор для команд i.e «code' teams <- myData $ Team' code' Но как я могу использовать это, чтобы убедиться, что выбранный мной D = выбран K – NxtWrldChamp