3
我是R新手,有特殊的幻想运动队优化问题我想解决。我已经看到其他文章使用lpSolve类似的问题,但我似乎无法绕过代码。下面的示例数据表。每个球员都在一个球队中,扮演着特定的角色,有薪水,并且每场比赛都有平均得分。我需要的约束是我需要8个玩家。任何一支球队不得超过3名球员。每个角色必须至少有一名玩家(5人)。累计工资不得超过10,000美元。R球队阵容优化w/lpSolve
Team Player Role Avgpts Salary
Bears A T 22 930
Bears B M 19 900
Bears C B 30 1300
Bears D J 25 970
Bears E S 20 910
Jets F T 21 920
Jets G M 26 980
[...]
在R,我在下面的
> obj = DF$AVGPTS
> con = rbind(t(model.matrix(~ Role + 0, DF)), rep(1,nrow(DF)), DF$Salary)
> dir = c(">=",">=",">=",">=",">=","==","<=")
> rhs = c(1,1,1,1,1,8,10000)
> result = lp("max", obj, con, dir, rhs, all.bin = TRUE)
这个代码写在产生最佳的梦幻球队工作正常,没有不超过3名球员的限制可能来自任何一个球队。这是我卡住的地方,我怀疑它涉及到con
的论点。任何帮助表示赞赏。
谢谢!很棒! – altaylor1123
任何想法如何强制玩家进入阵容?我可以看到如何通过在con模型矩阵中将它们置零来消除它们,但不知道如何强制include。 – tcash21
当我尝试查看'result'时,得到'Error:status -1'。结果是否应该存储求解器的结果? – Keith