使用string的Excel求解器

我将尽力解释这一点,我可以做到最好。

现在我有一个电子表格,里面有一个足球运动员名单,每个人都有一个分配的薪水和本周的总分数。

我的目标是使用求解器或其他方法来确定最佳组合,最大限度地提高预测点总数,同时保持工资上限。

在这个例子中,我有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来最大化投影点总数,但在这种情况下的variables字段将是玩家的名字,它似乎像variables字段需要是一个数字,而不是一个string列表。

有任何想法吗?

我最喜欢的一种问题:)

这里是模型设置:

在这里输入图像说明

  • 上表显示了决策variables= 1如果选手i = A, B, ..., N L = QB, .., TE则select列表L = QB, .., TE否则=0
  • R条目(顶部表格旁边)是每行的总和。 这些必须受到T列中的数字的限制。 单元格R7是玩家的总数,应该是9:2灵活的,并且按照个人名单的要求是7。
  • 中间表显示薪水(在5万到15万之间随机产生)。 Sum of Salaries公式是=SUMPRODUCT(C11:P14,C3:P6) 。 这里的想法是只考虑select的球员的薪水。 这个SUMPRODUCT应该受到T14单元格的预算约束。 对于我的实验,我把它等于所有工资总额的80%
  • 目标 :底部表格显示每个玩家的投射点数。 在单元格R22的公式是=SUMPRODUCT(C19:P22,C3:P6) (与上面的工资相同的逻辑)。 这是最大化的价值。

求解器模型如下所示: 在这里输入图像说明

我build议selectSimplex LP并转到Options并将Integer Optimality设置为零(0)。

结果

求解器设法find最佳解决scheme。 问题非常小,而且非常快。 求解器可以处理多达200个variables和100个约束,对于需要(商业)扩展版本的大问题:

在这里输入图像说明

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

我希望这有帮助! 让我知道你是否希望我为你上传文件。

最好的,Ioannis

Excel的求解器是基于数值方法build立的。 应用于由离散值组成的域(如string或足球运动员)可能会失败。 你应该考虑用一种“真正的”编程语言编写一个蛮力解决scheme,比如c#,java,python,ruby或者javascript。 如果存在性能问题,那么从那里进行优化。

求解器不能在这里工作,因为它不是你所追求的数字解决scheme。

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