【发布时间】:2010-08-23 06:30:13
【问题描述】:
(我已更改此问题的细节以避免 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 完全问题的组合,尽管它们似乎都不适合。
有代表这类问题的模型吗?
【问题讨论】:
-
“模型”是什么意思? (我的意思是,你在寻找什么样的答案?简化一些你可以使用算法解决的众所周知的问题?或者线性/整数程序?或者其他什么?)
-
我的意思是“旅行推销员”问题可以被视为实际问题的模型。只是一个通用且经过充分研究的 comp-sci 问题,它适合我正在做的相当好的事情。不一定有一个理想的答案,但只是为了不重复(可能)多年的思想/研究的努力。
标签: algorithm computer-science theory np-complete