对于那些不熟悉FPL的人来说,这是一个简短的版本。您有球员担任守门员,后卫,中场或前锋。每个玩家都有一定的价格(四舍五入为0.5或.0),并且根据他们的真实生活表现,您可以获得积分。您的预算为100英镑,并且需要组建团队,请注意每个位置的球员人数都受到限制。
现在,问题是:如果您拥有一个季节中所有球员的价格,他们的位置和得分总数,那么如何找到得分最高的球队,例如4-4-2阵型? (1GK,4DEF,4MID,2FWD)
我想这是背包问题的一个变体,在这个问题中,您只能有11名球员和4-4-2阵型。 那么,这是解决该问题的最佳方法吗,您将如何通过这些修改/限制解决它,还是有更好的解决方案?
答案 0 :(得分:1)
将问题表示为整数程序,然后使用您喜欢的IP解算器(例如https://www.gnu.org/software/glpk/)解决。
对于每个球员p
,该公式具有0-1决策变量x_p
,如果该球员在团队中,则该决策变量为1。
maximize sum_{p in players} points-scored(p)
subject to
sum_{p in players} price(p) x_p <= 100
sum_{p in goalkeepers} x_p <= 1
sum_{p in defenders} x_p <= 4
sum_{p in midfielders} x_p <= 4
sum_{p in forwards} x_p <= 2
for all p in players, x_p in {0, 1}