【发布时间】:2022-01-07 01:14:52
【问题描述】:
我正在寻找以下问题的算法:
我有一组 x 不同的组件和一组用于这些组件的 y 供应商。我知道每个供应商的每个组件的价格 p(x,y)。我也知道每个供应商的运输成本 s(y),如果你只是从几个供应商那里购买,这显然更便宜。并非所有供应商都有可用的每个组件。我想一次购买所有组件,但需要获得最便宜的总价或至少一个非常接近的小值。
直接的方法是尝试每种组合,如果 x 和 y 变得非常大,这可能需要一些时间,尽管它可以并行化。任何建议表示赞赏。
为简单起见,假设 x = 100,y = 1000。
【问题讨论】:
-
为什么不简单地从价格最低的供应商那里获得每个组件?还是您需要所有东西都来自同一个供应商?
-
好点,感谢您指出这一点!如果您只从一个供应商处订购,我完全忘了提及运费较低的优势。编辑我的帖子。
-
哇,编辑将问题提升到了一个全新的水平。首先是一个简单的贪心算法。现在是dp问题。请添加约束,因为这将对实施/方法产生重大影响。
-
这里没有太多细节。这很容易表述为混合整数编程模型。当然,这取决于“非常大”的含义。无论如何,它可能很有用,以便与一些启发式进行比较(以了解启发式有多好)。
-
这看起来像是固定费用问题(运费看起来像是固定成本)。由于并非所有组件/供应商组合都被允许,这是一个稀疏问题。如果建模正确,这会导致一个很大但非常可行的 MIP 问题。使用好的 MIP 求解器,我怀疑这需要几分钟。
标签: algorithm optimization cost-optimization