📜  当一个项目总成本的其他项目免费时,获得最大项目(1)

📅  最后修改于: 2023-12-03 15:25:36.034000             🧑  作者: Mango

当一个项目总成本的其他项目免费时,获得最大项目

在项目管理中,倾向于使用同样的资源去完成多个项目,从而提高效率和可持续性。但是,这可能会带来高昂的总成本,使得一些项目很难承受。一种解决方案是将某些项目设为“免费”,让其他项目的成本来分享这部分费用。本文将介绍如何找到获得最大项目收益的方法。

理论

在假设所有项目都没有直接竞争关系的前提下,我们可以使用如下的数学模型来计算一个项目的收益:

$$ R_i = \frac{V_i}{C_i+\sum_j C_j W_{ij}} $$

其中,$R_i$ 表示项目 $i$ 的收益,$V_i$ 表示项目 $i$ 的价值,$C_i$ 表示项目 $i$ 的成本,$\sum_j C_j W_{ij}$ 表示项目 $i$ 分摊给其他项目的成本。

在这个模型中,我们假设每个项目的价值是独立增长的。这是一个较为理想化的假设,实践中可能会出现某些项目的价值相互叠加,或者产生负面的外部性。

实践

在实践中,计算出每个项目的收益后,我们希望找到那些获得最高收益的项目,并为它们分配资源。

具体的步骤如下:

  1. 计算所有项目的收益,并按收益从高到低排序。
  2. 逐个将项目加入一个“选中”列表中,同时计算已选中项目的负担费用并更新所有项目的收益值。
  3. 当加入新的项目会使得总成本(原银行和负担)超过预算时,停止加入项目。此时,“选中”列表中保存的就是获得最大收益的项目。

这个算法能够保证找到全局最优解,操作复杂度为 $O(n^2)$。如果在实践中遇到了效率问题,可以尝试使用近似算法如贪心算法等优化。