需要通过优化资源分配来最大化收入

时间:2019-06-22 20:37:58

标签: .net optimization mathematical-optimization

假设有5个组件,并且每个组件都有随机供应:

-------------------
| Comp | Quantity |
|------|----------|
| C1   | 500      |
| C2   | 700      |
| C3   | 400      |
| C4   | 1000     |
| C5   | 850      |
-------------------

我的工厂可以生产25种不同的产品,每种产品需要不同数量的每种成分:

--------------------------------------------
| Product | Price | C1 | C2 | C3 | C4 | C5 |
|---------|-------|----|----|----|----|----|
| P1      | $450  | 6  | 7  | 2  | 9  | 4  |
| P2      | $300  | 8  | 5  | 3  | 3  | 7  |
| P3      | $100  | 2  | 4  | 9  | 4  | 6  |
| P4      | $500  | 4  | 1  | 0  | 9  | 8  |
| ..      | ..    | .. | .. | .. | .. | .. |
--------------------------------------------

我需要确定我需要制造每种产品中的多少种,以便在不超出每种成分供应的情况下最大化最终收益?

到目前为止,我已经编写了最好的算法,循环遍历每种产品,找到可以生产的最大数量,然后选择收益最高(价格*最大数量)的产品,然后从列表中删除该产品并减去供应中的组件数量,然后对其余产品重复该过程。

这是我到目前为止拥有的伪代码:

foreach (var product in productList)
{
    product.MaxQty = MaxQty(product, supply);
    product.Revenue = product.Price * product.MaxQty;
}
// Take product with highest Revenue;
// Update supply;
// Repeat the loop;

我知道这不是最佳方法,因为有时获得最高收益的产品并不是最佳选择,因为我的目标是使所有生产的产品总和最大,而不是一次只生产一种产品。

0 个答案:

没有答案