(我已经改变了这个问题的细节以避免NDA问题。我知道如果从字面上理解,有更好的方法来运行这个理论公司。)
有一组仓库,每个仓库都能够存储和分配200种不同的产品,这些产品可能是A公司生产的1000种产品。每个仓库都备有200种产品,并分配订单,然后由他们手头的库存填写。
挑战在于每个仓库都需要自给自足。将订购任意数量的产品(通常为5-10个),并将其分配给仓库。然后仓库为订单包装所需的产品,并将它们一起装运。对于仓库中没有的任何物品,物品必须在订单发货前单独交付给仓库。
因此,问题在于确定最佳仓库/产品配置,以便无需订购和等待单个物品即可打包尽可能多的订单。
例如(使用每个以字母表示的产品,以及能够存储5个产品系列的仓库):
Warehouse 1: [A, B, C, D, E]
Warehouse 2: [A, D, F, G, H]
Order: [A, C, D] -> Warehouse 1
Order: [A, D, H] -> Warehouse 2
Order: [A, B, E, F] -> Warehouse 1 (+1 separately ordered)
Order: [A, D, E, F] -> Warehouse 2 (+1 separately ordered)
目标是使用历史数据来最大限度地减少将来单独订购的产品的数量。一旦仓库以某种方式设置,软件就会确定哪个仓库能够以最小的开销处理订单。
这立刻让我觉得机器学习风格问题。它似乎也是某些众所周知的NP-Complete问题的组合,尽管它们似乎都不合适。
是否有代表此类问题的模型?
答案 0 :(得分:2)
如果我理解正确,你必须分开问题:
对于第一个问题,我指出netflix prize:这几乎是同一个问题,并提出了很好的解决方案。 (我的数据挖掘手册在家里,我不记得谷歌的精确关键词,抱歉。试试“数据挖掘时间序列”)
对于第二个,这是Prolog的一个问题。
如果您不想使用Prolog,那么有几个约束库。只需谷歌“约束库<insert your programming language here
&gt;”
答案 1 :(得分:1)
问题的第一部分(哪些项目经常一起排序)有时被称为共现问题,并且是数据挖掘文献的重要组成部分。 (我的回忆是问题出在NP中,但是存在相当不错的近似算法)。
一旦您获得了共处数据,您仍然可以将物品分配给仓库。这有点像集合覆盖问题,但不完全相同。这个问题是NP难的。