我是 R 新手,有一个特别想解决的梦幻运动队优化问题。我已经看到其他帖子使用 lpSolve 来解决类似的问题,但我似乎无法理解代码。下面的示例数据表。每个球员都在一个团队中,扮演一个特定的角色,有薪水,并且每场比赛都有平均得分。我需要的限制是我需要正好 8 个玩家。任何一支球队不得超过 3 名球员。每个角色必须至少有一名球员(共 5 名)。累计工资不得超过 10,000 美元。
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
争论有关。任何帮助表示赞赏。