Excel解算器使用字符串

时间:2013-10-02 22:53:48

标签: excel excel-formula solver

我会尽力解释这个问题。

现在我有一个包含足球运动员名单的电子表格,每个足球运动员都有一个指定的工资和本周预计的总分。

我的目标是使用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来最大化投影点总数,但在这种情况下,变量字段将是玩家的名称,似乎变量字段需要是一个数字,而不是字符串列表。

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

我最喜欢的问题:)

以下是模型设置:

enter image description here

  • 如果选择了列表= 1的播放器i = A, B, ..., N,则{@ 1}显示 决策变量 L = QB, .., TE否则。
  • =0中的条目(顶部表旁边)是每行的总和。这些必须使用R列中的数字进行约束。单元格T是玩家的总和,灵活性应为9:2,根据个人列表要求为7。
  • 中间表显示工资(随机生成50,000到150,000之间)。 R7公式为Sum of Salaries。这里的想法是只考虑所选玩家的工资。此=SUMPRODUCT(C11:P14,C3:P6)应受预算限制,该预算位于单元格SUMPRODUCT中。对于我的实验,我把它等于所有工资总额的T14
  • 目标:下表显示了每位玩家的预计积分。单元格80%中的公式为R22(与上面的工资相同)。这是要最大化的价值。

解算器模型如下所示: enter image description here

我建议选择=SUMPRODUCT(C19:P22,C3:P6)并转到Simplex LP并将Options设置为零(0)。

<强>结果

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

enter image description here

当然,您可以订购真实的玩家名称,使其符合此设置。例如,如果您按字母顺序对每个列表的玩家进行排序,则Integer Optimality等等

我希望这有帮助!如果您希望我为您上传文件,请与我们联系。

最佳, 扬

答案 1 :(得分:0)

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

答案 2 :(得分:0)

Solver在这里不起作用,因为它不是你想要的数字解决方案。

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

相关问题