1
我正在研究R中的一些代码来优化我的幻想足球阵容,但是我遇到了一些限制。我基本上有一个球员名单,他们的位置,预期的点数和成本。R多重整数线性规划中的约束
名册必须包括:
1 QB 2 RB 2 WR 1 TE 1 FLEX(无论是RB,WR,或TE) 总在$ 200
我的问题的成本是我的代码希望选择FLEX位置作为WR,RB或TE已选择的播放器。这里是我正在使用的代码,我有一张表,我输入了用于播放器,位置,点数和成本的列。在表中,任何RB,WR或TE都与FLEX一样位置重复。我试图改变将pos ==“FLEX”设置为pos ==“WR”|| pos ==“RB”|| pos ==“TE”的那一行,但那不起作用,我唯一的想法是运行代码,如果它复制了FLEX播放器,我将它从源表中删除。虽然这有点痛苦。
任何想法,不胜感激。
name <- mydata$name
pos <- mydata$pos
pts <- mydata$pts
cost <- mydata$cost
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=="FLEX")
,cost)
dir <- c("=="
,"=="
,"=="
,"=="
,"=="
,"<=")
b <- c(1
, 2
, 2
, 1
, 1
, 200)
library(Rglpk)
sol <- Rglpk_solve_LP(obj = f
, mat = A
, dir = dir
, rhs = b
, types = var.types
, max=TRUE)
sol
name[sol$solution == 1]
咄,那是很容易的。感谢您的帮助,我知道我正在推翻它。 – user1723699 2014-10-01 21:14:08