找到一种算法来平衡成功率和成本

时间:2018-02-14 09:40:42

标签: algorithm

假设我有一个包含2个步骤的任务。每个步骤都有成功率和成本。可以将每个步骤分配给一个或多个人来完成以提高成功率。任何人都可以帮我找到一个算法来平衡它们吗?

例如:

有两个步骤的任务。步骤1的成功率为50%,成本为1美元。第2步成功75%,成本2美元。如果我将每个步骤分配给一个人,则总体成功率将为50%* 75%= 37.5%。我想达到的门槛是80%。

在这种情况下,我应该指定步骤1到3个人获得87.5%的成功率,并将步骤2分配给2个人以获得93.75%。然后整体成功率为82.08%

但我不知道如何用算法实现它。

更新

分配给更多人意味着人们可以同时执行此步骤。如果有3个人执行50%的成功率任务。至少有一个人成功的可能性是1 - 0.5 ^ 3 = 87.5%。

1 个答案:

答案 0 :(得分:1)

一旦您做出以下观察,这实际上非常容易:为了达到高于阈值T的总体成功率,个人成功率不能低于T.否则,因为总体成功率是每个人的产物一,你需要至少一个高于1(> 100%)的比率来平衡。

在您的示例中,您需要每个单独的成功率高于80%,并且每个任务所需的最少人数,正如您计算出的那样,步骤1为3,步骤2为2。

使用公式S = 1 - (1-B)^N,基于基本成功率B和人数N计算个人成功率S.您想要找到的是N:N = ln(1-S)/ln(1-B)。最后,由于您需要S > T,因此获得N = ceil[ln(1-T)/ln(1-B)]

为每一步计算此N,您将获得高于阈值的总体成功率。此外,没有N可以更小,否则相应的成功率,以及总体成功率,将低于阈值。

您提到每个步骤都有成本,但在问题中没有任何作用,因为每个步骤的人数都有严格的限制。