我正在寻找解决以下问题的算法:
我有一组x个不同的组件和一组y个组件的供应商。我知道每个供应商每个部件的价格p(x,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 + ...
在[0,1]中有x和y,p(n,m(是供应商m的项目n的价格,ship(m(是提供商m的运输成本
受制于:
- 只检索一次每个项目,如下所示:
p00 + p01 = 1
p12 + p13 + p15 = 1
p20 + p21 = 1
...
- 如果从该供应商处购买一件商品,则会考虑运输成本
y0 >= x00
y0 >= x10
y1 >= x01
...