寻找供应商价格优化算法

Looking for supplier price optimization algorithm

我正在寻找解决以下问题的算法:

我有一组 x 个不同的组件和一组 y 个这些组件的供应商。我知道每个供应商的每个组件的价格 p(x,y)。我也知道每个供应商的运费 s(y),如果你只从几个供应商那里购买,这显然更便宜。并非所有供应商都提供每个组件。我想一次购买所有组件,但需要获得最便宜的总价或至少一个非常接近的小值。

直接的方法是尝试每个组合,如果 x 和 y 变得非常大,这可能需要一些时间,尽管它可以并行化。任何建议表示赞赏。

为简单起见,假设 x = 100,y = 1000。

感谢所有评论。他们为我指明了正确的方向,如下所示制定问题。

最小化所有项目加上运费的总和:

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 的运费

受制于:

  1. 准确检索每一项,如下所示:
p00 + p01 = 1
p12 + p13 + p15 = 1
p20 + p21 = 1
...
  1. 如果从该供应商处购买一件商品,则会考虑运费
y0 >= x00
y0 >= x10
y1 >= x01
...