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