如何在Python/Pandas中找到具有给定约束的最大值

如何在Python/Pandas中找到具有给定约束的最大值,python,pandas,optimization,solver,Python,Pandas,Optimization,Solver,对于给定的一组玩家、玩家位置、玩家成本、预算和一组约束条件,我如何找到“最优”解决方案?例如: ID - Pos - cost - pts 1 1 13 10 2 1 5 13 3 2 10 15 4 2 10 8 5 3 12 12 6 3 7 14 预算为30(总成本不得超过30),每个位置限制1名球员 我试图解决的真正问题是:我估计了梦幻足球中每个球员

对于给定的一组玩家、玩家位置、玩家成本、预算和一组约束条件,我如何找到“最优”解决方案?例如:

ID - Pos - cost - pts
1     1     13    10
2     1     5     13
3     2     10    15
4     2     10     8
5     3     12    12
6     3     7     14
预算为30(总成本不得超过30),每个位置限制1名球员

我试图解决的真正问题是:我估计了梦幻足球中每个球员的得分。现在考虑到梦幻足球的限制,即

  • 100英镑的预算
  • 1名守门员
  • 最多5名防守队员,最少3名防守队员
  • 最多5名中场,最少3名中场
  • 最多3名前锋,最少1名前锋
  • 鉴于这些限制,我如何找到最大pts

    对于这种情况,有哪些库和工具可用?我可以想象我自己在Excel solver中这样做,但鉴于我的数据集有1000多个玩家,这是行不通的


    我开始编写一些自定义代码,但很快意识到必须有一些现成的解决方案。Scikit优化是一个很好的起点

    Scikit优化是一个很好的起点

    这几乎就是背包问题(),还有一个额外的约束,即相同的位置不能同时出现,这在这里已经讨论过了:

    如上所述,这个问题是NP难问题


    您可以查看itertools模块,以减少计算的运行时间。

    这几乎就是背包问题(),还有一个附加约束,即相同的位置不能同时进行,这在这里已经讨论过:

    如上所述,这个问题是NP难问题


    您可以查看itertools模块,以减少计算的运行时间。

    这与其说是编程问题,不如说是数学问题(优化)。您可能会在网上找到优化库,根据您的问题类型,您可以选择适当的算法。您应该首先指定要优化的目标函数(或准则)。这在你的Q中并不清楚(是点数吗?)也许scipy可以在这里提供帮助,但是如果没有更多的细节(约束是什么,需要优化什么),很难说它在这里是否合适,或者定制代码是否足够。此外,要求图书馆或其他非网站资源是离题的,因为它吸引了意见或只链接答案。我更新了答案,使之更具体。我不打算直接要求链接。我完全不知道从哪里开始找。我觉得自定义解决方案可能是最好的。这与其说是编程问题,不如说是一个数学问题(优化)。您可能会在网上找到优化库,根据您的问题类型,您可以选择适当的算法。您应该首先指定要优化的目标函数(或准则)。这在你的Q中并不清楚(是点数吗?)也许scipy可以在这里提供帮助,但是如果没有更多的细节(约束是什么,需要优化什么),很难说它在这里是否合适,或者定制代码是否足够。此外,要求图书馆或其他非网站资源是离题的,因为它吸引了意见或只链接答案。我更新了答案,使之更具体。我不打算直接要求链接。我完全不知道从哪里开始找。我觉得定制解决方案可能是最好的。