1

我将尽力解释这一点。

现在我有一个包含足球运动员列表的电子表格,每个人都有一个分配的工资和一周的预计总得分。

我的目标是使用 Solver 或其他一些方法来确定球员的最佳组合,以最大限度地提高预计总得分,同时保持在工资帽之下。

在此示例中,我有 4 个单独的播放器列表,如下所示:

QB: 玩家 A, 玩家 B, 玩家 C...玩家 N RB: 玩家 a, 玩家 b, 玩家 c...玩家 N WR: 玩家 X, 玩家 Y, 玩家 Z...玩家 N TE: 玩家 x,玩家 y, 玩家 z...玩家 N

我需要包含 2 个 QB、2 个 RB、2 个 WR、1 个 TE 和 2 个“Flex”的最佳组合,这意味着 RB/WR/TE 中的任何一个。

我尝试使用 Solver 来最大化投影总点数,但在这种情况下,变量字段将是玩家的姓名,并且变量字段似乎需要是一个数字,而不是字符串列表。

有任何想法吗?

4

3 回答 3

2

我最喜欢的问题:)

这是模型设置:

在此处输入图像描述

  • 上表显示决策变量:如果选择列表中的= 1玩家,否则。i = A, B, ..., NL = QB, .., TE=0
  • 列中的条目R,(顶部表格旁边)是每行的总和。这些必须受列中的数字限制T。单元格R7是玩家的总和,根据个人列表要求,应该是9:2灵活和7。
  • 中表显示工资(在 50,000 和 150,000 之间随机生成)。Sum of Salaries公式=SUMPRODUCT(C11:P14,C3:P6)是。这里的想法是只考虑被选中的球员的薪水。这SUMPRODUCT应该受到预算的限制,该预算位于 cell 中T14。对于我的实验,我把它等于80%所有工资的总和。
  • 目标:下表显示每个玩家的投影点数。单元格中的公式R22=SUMPRODUCT(C19:P22,C3:P6)(与上面的薪水相同的逻辑)。这是要最大化的价值。

求解器模型如下所示: 在此处输入图像描述

我建议选择Simplex LP并转到Options并将其设置Integer Optimality为零 (0)。

结果

Solver 设法找到最佳解决方案。问题真的很小,而且很快。Solver 最多可处理 200 个变量和 100 个约束,对于大型问题,您将需要(商业)扩展版本:

在此处输入图像描述

当然,您可以只订购真实的玩家姓名,以便它们适合此设置。例如,如果您按字母顺序对每个列表的玩家进行排序,那么(Player A, QB) = first player of team QB等。

我希望这有帮助!如果您希望我为您上传文件,请告诉我。

最好的,伊奥尼斯

于 2013-10-03T00:52:39.393 回答
0

Excel 的求解器建立在数值方法之上。应用于由离散值组成的域,如字符串或足球运动员可能会失败。您应该考虑使用“真正的”编程语言(如 c#、java、python、ruby 或 javascript)编写强力求解器。如果存在性能问题,则从那里进行优化。

于 2013-10-02T23:01:50.327 回答
0

求解器在这里不起作用,因为它不是您所追求的数字解决方案。

制作一个电子表格,每行包含所有可能的位置玩家组合(符合您的标准)。然后制作一个 Excel 公式,根据该行中的玩家计算投影总分。按投影点列对电子表格进行排序。

于 2013-10-02T23:07:34.477 回答