通过选择分配有限的资源

时间:2016-10-26 20:59:49

标签: algorithm

我正在寻找一种算法来计算产品的最大数量"这可以通过有限的资源选择和#34;来创建。

例如,让我们说我想创建一个ABC并给出这些资源选择:

  • A或B:3
  • A或C:1
  • B:1
  • C:1

在这种情况下,我可以通过从第一个选项中选择2 A和1 B以及从第二个选项中选择1 C来创建最多2个ABC。然后我总共有2个A,2个B和2个C,可以创建2个ABC。

是否有一种算法,除了暴力强迫排列,这解决了这个问题?

为了完整性,以下是我实际问题中的约束:

  • 产品中不同资源的最大数量:10
  • 最大资源选择数:20
  • 选择的最大数量:50

1 个答案:

答案 0 :(得分:1)

可以使用Linear Programming或使用Ford-Fulkerson Algorithm来解决所谓的Maximum Network Flow问题。我会安静一段时间来尝试解释上面提到的两种算法中的任何一种,所以我认为你应该看看一些在线资源。如果您需要解决一些实际问题,我建议您仔细阅读算法,以了解如何对此特定问题进行建模,然后使用一些现有库。如果您想学习算法,请随时编写您的实现:)