本公开大体上涉及电子商务,并且更具体地,涉及用于将库存有效地分配给不同层级的配送中心的方法和系统以及计算系统。
背景技术:
本文中提供的背景描述是为了大体上呈现本公开内容的目的。在本背景部分中描述的范围内目前署名的发明人的工作,以及在申请时可能无法以其他方式视为现有技术的描述的方面,既没有未明确地也没有隐含地被视为反对本公开的现有技术。电子商务已经经历了多年的高速增长,并且巨大的在线零售平台提供了数百万种产品供客户选择。为了获得愉快的在线购物体验,客户可能期望便捷的订购过程和快速配送购买的产品。为了使产品的配送更容易,一些电子商务提供商已经在不同位置建立了配送中心和仓库。然而,在这些配送中心之间分配产品是一项艰巨的任务。
因此,在本领域中存在解决上述缺陷和不足的未解决的需求。
技术实现要素:
在某些方面,本公开涉及用于在一级配送中心与多个二级配送中心之间分配库存的系统。在某些实施例中,该方法包括:
对于每个二级配送中心:基于每种产品的当前库存和需求预测以及二级配送中心的运输能力极限来确定产品的理想补货水平;
对于每种产品:基于二级配送中心中的理想补货水平、一级配送中心中产品的当前可用库存、二级配送中心中当前库存和需求预测以及二级配送中心的优先级来确定二级配送中心中的实际补货水平;以及
在即将进行的补货操作中,基于二级配送中心中产品的实际补货水平从一级配送中心向二级配送中心分配库存。
在某些实施例中,通过优化以下目标函数来执行确定一个二级配送中心中产品的理想补货水平的步骤:
其中:
∑ixi≤m(1a),
∑iyi≤n(1b),
xi≥0&xi∈z(1d);
其中e是取函数
其中m为即将进行的补货操作能够递送给二级配送中心的产品单位的最大数量;n为即将进行的补货操作能够递送给二级配送中心的产品的最多类型;以及
其中b为大正数,
在某些实施例中,当xi为0时yi的值为零,并且当xi为正整数时yi的值为1。
在某些实施例中,通过优化以下目标函数来执行确定二级配送中心中的实际补货水平的步骤:
其中:
∑jvj≤q(2a),
vj≥0&vj∈z(2c),
其中e是取函数(dj-sj-vj) 的期望值;j为二级配送中心的索引,j为正整数;γj为第j个二级配送中心的优先级;dj为预定时间内第j个二级配送中心中产品的需求预测;sj为第j个二级配送中心处产品的当前库存;vj为从一级配送中心向第j个二级配送中心的产品的实际补货水平;xj为从一级配送中心向第j个二级配送中心的产品的理想补货水平;以及
其中q为在即将进行的补货操作期间一级配送中心处可用于分配给二级配送中心的产品的数量;
在某些实施例中,预定时间在一天至七天的范围内。在某些实施例中,预定时间为两天。
在某些实施例中,j为3至10范围内的预定数,第j个二级配送中心的优先级γj在0.9至1.0的范围内。
在某些实施例中,每个需求预测为向量。该向量可以具有k个维度,由于预测的不确定性,因此它是需求预测的分布。
在某些方面中,本公开涉及用于在一级配送中心与多个二级配送中心之间分配库存的系统。在某些实施例中,该系统包括计算设备。该计算设备具有处理器和存储计算机可执行代码的存储设备。计算机可执行代码在处理器处执行时,被配置为执行如上所述的方法。
在某些方面中,本公开涉及存储计算机可执行代码的非暂时性计算机可读介质。计算机可执行代码在计算设备的处理器处执行时,被配置为执行如上所述的方法。
在一些实施例中,还提供了一种用于分配库存的计算系统,包括库存分配计算设备以及通过网络与所述计算设备通信的需求预测系统、库存数据库和产品数据库,其中,
所述库存分配计算设备包括处理器、存储器和存储设备,所述存储设中存储有库存分配应用,所述库存分配应用包括补货模块和分配模块,其中,
所述补货模块被配置为对于每个二级配送中心,基于每种产品的当前库存和需求预测以及二级配送中心的运输能力极限来确定产品的理想补货水平;并且
所述分配模块被配置为对于每种产品基于二级配送中心中的理想补货水平、一级配送中心中产品的当前可用库存、二级配送中心中的当前库存和需求预测以及二级配送中心的优先级来确定二级配送中心中的实际补货水平,以及在即将进行的补货操作中,基于二级配送中心中产品的实际补货水平,从一级配送中心向二级配送中心分配库存,
所述需求预测系统被配置为基于历史数据来提供一级配送中心和二级配送中心的需求预测;
所述库存数据库被配置为记录一级配送中心和二级配送中心的库存;并且
所述产品数据库被配置为提供产品信息。
根据以下接合附图及其附图标记对优选实施例的描述,本公开的这些和其他方面将变得显而易见,然而在不脱离本公开新颖构思的精神和范围的情况下,可以影响其变型和修改。
附图说明
附图示出了本公开的一个或多个实施例,并且与具体实施方式一起用于解释本公开的原理。在所有附图中,尽可能地使用了相同的附图标记指代实施例的相同或相似元件。
图1示意性地描绘了根据本公开的某些实施例的分配系统的示例。
图2示意性地描绘了根据本公开的某些实施例的库存分配系统。
图3示意性地描绘了根据本公开的某些实施例的两级库存分配系统。
图4示意性地描绘了根据本公开的某些实施例的两级库存分配系统的计算系统。
图5示意性地描绘了根据本公开的某些实施例的分配库存的方法。
具体实施方式
在以下示例中更具体地描述了本公开,由于这些示例中的许多修改和变化对本领域技术人员而言是显而易见的,因此这些示例仅旨在举例说明。现在详细地描述本公开的各种实施例。参考附图,相似的附图标记在所有的附图中表示相似的组件。如在本文中的描述和所附整个权利要求书中所使用的,除非上下文另外明确指出,否则“一”、“一个”和“所述”的含义包括复数引用。而且,如本文中的描述和所附整个权利要求书中所使用的,除非上下文另外明确指出,否则“在...中”的含义包括“在...中”和“在...上”。而且,为了方便读者,可以在说明书中使用标题或副标题,这将不影响本公开的范围。另外,本说明书中使用的一些术语在下面更具体地定义。
在本公开的上下文内以及在使用每个术语的特定上下文中,本说明书中使用的术语通常具有其领域的普通含义。在下面或本书明书的其他地方讨论了用于描述本公开的某些术语,以向从业者提供关于本公开的描述的附加指导。应当理解,可以以一种以上的方式叙述同一事物。因此,备选的语言和同义词可以用于本文中讨论的任何一个或多个术语,而不管本文中是否阐述或讨论术语都没有任何特殊的意义。提供了某些术语的同义词。提及一个或多个同义词不排除使用其他同义词。本说明书中的任何地方使用的示例(包括本文中讨论的任何术语的示例)仅是说明性的,并且绝不限制本公开或任何举例说明的术语的范围和含义。同样,本公开不限于本说明书中给出的各种实施例。
除非另外定义,否则本文中使用的所有术语(包括技术和科学术语)具有与本公开所属领域的普通技术人员通常理解的含义相同的含义。还应当理解,诸如在常用词典中定义的术语应该被解释为具有与它们在相关领域和本公开的上下文中的含义一致的含义,除非在本文中明确定义,否则将不会以理想化或过于正式的意义进行解释。
除非另有定义,否则在相同对象之前使用的“第一”、“第二”、“第三”等旨在区分这些不同的对象,但是并不限制其任何顺序。
如本文中所使用的,“左右”、“大约”、“基本上”或“大致”应通常是指给定值或范围的百分之二十以内,优选地百分之十以内,并且更优选地百分之五以内。本文中给出的数量是近似的,意味着如果没有明确说明,则可以推断出术语“左右”、“大约”、“基本上”或“大致”。
如本文中所使用的,“多个”是指两个或更多。
如本文中所使用的,术语“包含”、“包括”、“携带”、“具有”、“含有”,“囊括”等被理解为开放式的,即是指包括但不限于。
如本文中所使用的,短语a、b和c中的至少一个应该解释为是指使用非排他性逻辑“或”的逻辑(a或b或c)。应当理解,在不改变本公开的原理的情况下,可以以不同的顺序(或同时)执行方法内的一个或多个步骤。如本文中所使用的,术语“和/或”包括一个或多个相关的所列项目的任何和所有组合。
如本文中所使用的,术语“模块”可以指代下项中的一部分或包括下项:专用集成电路(asic)、电子电路、组合逻辑电路、现场可编程门阵列(fpga)、执行代码的处理器(共享的、专用的或组的)、提供上述功能的其他合适的硬件组件、或上项中的一些或全部的组合,比如在片上系统中。术语模块可以包括存储由处理器执行的代码的存储器(共享的、专用的或组的)。
如本文中所使用的,术语“代码”可以包括软件、固件和/或微代码,并且可以指代程序、例程、功能、类和/或对象。如上面所使用的,术语共享是指可以使用单个(共享)处理器来执行来自多个模块的一些或全部代码。另外,来自多个模块的一些或全部代码可以由单个(共享)存储器来存储。如上面所使用的,术语组是指可以使用一组处理器来执行来自单个模块的一些或全部代码。另外,可以使用一组存储器来存储来自单个模块的一些或全部代码。
如本文中所使用的,术语“接口”通常指代在组件之间的交互点处用于在组件之间执行数据通信的通信工具或装置。通常,接口可以适用在硬件和软件两者上,并且可以是单向或双向的接口。物理硬件接口的示例可以包括电连接器、总线、端口、电缆、终端和其他i/o设备或组件。与接口通信的组件可以是例如计算机系统的多个组件或外围设备。
本公开涉及计算机系统。如附图中所描绘的,计算机组件可以包括:物理硬件组件,被示为实线框;虚拟软件组件,被示为虚线框。本领域普通技术人员将会理解,除非另外指出,否则可以以但不限于软件、固件或硬件组件或其组合的形式来实现这些计算机组件。
本文中描述的装置、系统和方法可以由一个或多个处理器执行的一个或多个计算机程序来实现。所述计算机程序包括存储在非暂时性有形计算机可读介质上的处理器可执行指令。计算机程序还可以包括存储的数据。非暂时性有形计算机可读介质的非限制性示例是非易失性存储器、磁性存储器和光学存储器。
现在将在下文中参考示出了本公开的实施例的附图更全面地描述本公开。然而,本公开可以以许多不同的形式来具体实现,并且不应被解释为受限于本文中阐述的实施例;相反,提供这些实施例使本公开将是透彻和完整的,并且向本领域技术人员充分传达本公开的范围。
图1示意性地描绘了根据本公开的某些实施例的分配系统的示例。如图1中所示,所述系统包括区域性配送中心(rdc)110和若干前端配送中心(fdc)130,例如fdc-1(130-1)、fdc-2(130-2)和fdc-3(130-3)。rdc110是高等级配送中心,负责对其覆盖范围内的fdc130进行补货,并且将产品递送到其相关的都市区域及其周围区域。每个fdc130是较低级别的配送中心,负责向其相关的都市区域及其周围区域递送。当rdc110对一sku或产品下订单时,相应的制造商或供应商在供应商提前期(vlt)内运送该sku。rdc110在rdc110与fdc130之间分配sku的库存,并且将一定量的sku运输到fdc130。在某些实施例中,分配基于rdc110和fdc130的需求和库存,以及可选地,sku价格和损失信息。
图2示意性地描绘了根据本公开的某些实施例的库存分配系统。如图2中所示,库存分配系统包括rdc储备比率模型、单个fdc补货模型和平衡库存分配模型。当rdc储备比率模型已经确定了产品的最优储备比率时,本公开的某些实施例定义了单个fdc补货模型和平衡库存分配模型的操作。
rdc储备比率模型被配置为基于vlt的预测和基于sku的vlt的销售预测来获得rdc110中的sku最优储备比率。具体地,可以基于rdc110和fdc130的需求和库存、sku单价、从rdc110而不是从相应的一个fdc130运送的单个sku的直接满足成本以及当使用从rdc110到fdc130的直接满足时招致的销售损失率来计算rdc110与fdc130之间的sku最优目标分配比率。当rdc储备比率模型已经计算出sku的最优储备比率时,确定可以分配给fdc130的sku量。然后,单个fdc补货模型可以使用rdc110中的sku数量来进行进一步分析。
单个fdc补货模型被配置为基于当前库存、销售预测(或需求预测)、sku的分配能力和目标库存来确定fdc130中的sku补货数量。在某些实施例中,对于每个fdc130,单个fdc补货模型基于sku的需求(比如,需求预测)而不是仅基于sku的短缺来确定要补货的sku。此外,单个fdc补货模型将分配量控制在预定的分配量水平内。
平衡库存分配模型被配置为基于sku的分配阈值和目标库存以及fdc权重来确定向fdc130的sku分配。平衡库存分配模型不仅考虑了fdc130的优先级或权重,还确保了向所有fdc130的sku平衡量。
从rdc110向fdc130的库存分配频率和数量的控制是该过程中的关键决策(请注意,分配给fdc130的库存通常无法再次运送到另一个fdc130或返回到rdc110)。此外,库存分配问题具有几个其他的重点:(1)库存分配的频率是每天;(2)每个rdc-fdc车道都有每天运输量极限。这主要意味着在运输能力不足的情况下,系统需要选择最紧急的产品进行分配;(3)rdc110需要直接满足很多需求(回顾一下,rdc与都市相关联)。至关重要的是,我们不要将过多的库存分配给fdc130,以免使rdc110自身面临缺货的风险。(4)fdc130按其覆盖的人口来排名,该业务要求将较高的分配优先级分配给排名较高的fdc130。
当在rdc110处的库存足够且运输能力足够时,由于所有fdc130都有很好的机会被补货到其理想库存水平,因此库存分配决策相对容易,然而,当rdc110库存或运输能力不足时,该问题变得困难。当rdc110库存不足以满足所有fdc130的需求时,该问题就变成了如何最佳地分配有限的库存,以尽可能地减少销售损失并保证递送速度承诺。当运输能力不足时,问题在于如何选择正确的产品和正确的数量以运送到fdc130来最大化分配效率。
为了解决上面的实施例中描述的问题,在某些方面,本公开提供一种使用数据驱动且算法控制的决策来计划库存分配的系统和方法。该系统称为两级(或两层)平衡库存分配系统(tebias或ttbias)。在某些实施例中,提供该系统以在针对每个目标sku预定了rdc110中的产品的储备比率之后解决该问题。
图3示意性地描绘了根据本公开的某些实施例的tebias框架。如图3中所示,tebias采用两阶段法来解决库存分配问题。它明确考虑了rdc110与fdc130之间的库存平衡以及运输能力约束。在操作中,tebias收集数据集,比如需求预测、容量设置、当前库存状态等。请注意,rdc可用库存是系统的关键输入。该输入由rdc研究存货引擎来计算,rdc研究存货引擎除了提供在rdc110储备的库存之外,还提供可以用于分配的库存数量。
tebias中的第一阶段是确定每个单个fdc130中的所有产品所需的库存理想水平,并且明确考虑了运输能力约束。该阶段被称为补货计划阶段。通过优化目标函数来执行计划,以便最小化单个仓库级(fdc)的总销售损失。第一阶段的输入包括当前fdc的现有库存、需求预测、即将进行的补货操作的fdc产品单位总数量的运输能力极限以及即将进行的补货操作的产品总类型的运输能力极限。在某些实施例中,运输能力极限随时间具有小变化,并且在一段时间(比如,一个月)内可以是相同的值。在某些实施例中,运输能力极限随时间具有较小的变化,并且在一段时间(比如,一个月)内可以是相同的值。参考公式(1)中所示的该阶段中的数学表达式,这是非线性混合整数规划,其目标是最小化单个仓库级的总销售损失。通过首先进行一些新颖的预设,然后转换为线性整数规划,可以非常有效地将该问题解为最优。这种转换的关键在于确保所有产品都保持相同的服务水平(一阶导数等于零),这在该问题的最优点处使必要的条件。
当第一阶段完成时,确定每个fdc130所需的sku理想数量。然而,由于rdc110中的sku数量有限,因此可能无法按要求对fdc130所需的sku进行补货。tebias的第二阶段是在给定在补货计划阶段中计算出的理想库存水平的情况下,针对每种产品确定如何将rdc110处有限数量的可用库存分配给多个fdc130。此阶段被称为库存分配阶段。通过优化目标函数来执行分配,从而最小化所有fdc130处目标产品的总销售损失。该阶段的输入包括rdc110处的当前可用库存、当前fdc的现有库存和需求预测以及fdc优先级。参考公式(2)中所示的该阶段中的数学表达式,这是非线性整数规划,其目标函数是最小化所有fdc130处的目标产品的总销售损失。参数γj表示fdc的优先级。对于所有产品将这个问题解决为最优状态在计算时间方面是昂贵的。在某些实施例中,系统利用有效的启发式算法来逼近最优解,该算法在实践中实现了极优的性能。该算法的一个关键在于,当rdc110的可用库存不足时,fdc130处的服务水平应该与fdc优先级参数γj成比例(一阶导数等于零)。换言之,较高排名的fdc130应该与较高服务水平的设置相关联。
通过执行该系统的第一阶段和第二阶段,针对向所有fdc130的每种产品作出最终库存分配决策,使得系统可以指示分别向fdc130递送适当数量的产品。
图4示意性地示出了分配系统的计算系统,其中计算系统被配置为管理rdc110与fdc130之间的分配。如图4中所示,分配系统的计算系统包括库存分配计算设备150,并且库存分配计算设备150通过网络与包括需求预测系统190、库存数据库192和产品数据库194的外部数据或服务通信。在某些实施例中,网络170可以是有线或无线网络,并且可以具有各种形式。网络170的示例可以包括但不限于局域网(lan)、包括互联网的广域网(wan)或任何其他类型的网络。最著名的计算机网络是互联网。
库存分配计算设备150被配置为在rdc110与fdc130之间实现库存分配。在某些实施例中,库存分配计算设备150可以是服务器计算机、机群、云计算机、通用计算机或专用计算机,它们可以收集rdc110和fdc130的需求和库存信息以及运输能力极限,并且提供从rdc110向fdc130的实际产品分配。
需求预测系统190可以包括诸如云计算设备的计算设备,所述计算设备主要基于历史数据来提供rdc110和fdc130的需求的预测。在某些实施例中,需求预测系统190为每个sku提供未来每天预测。在某些实施例中,每个每天预测可以是sku的一定量的单位或一定量单位的范围。例如,接下来的7天的sku每天预测可能分别为200个单位、220个单位、280个单位、230个单位、200个单位、170个单位、190个单位;或者分别为170至220单位、200至240单位、260至310单位、200至260单位、190至210单位、170至190单位、170至200单位。在某些实施例中,预测还可以是预定时间段(比如,接下来的5天)内sku的单位总数。每天预测或一段时间内的预测可以是特定数量的单位、具有差异的特定数量的单位或一定量单位的分布。
库存数据库192存储在诸如云计算设备的计算设备中,该计算设备记录rdc110和fdc130的库存,以及可选地,其他库存相关信息和分析。
产品数据库194存储在提供产品信息的计算设备中,比如云计算设备中。每种产品都具有sku作为标识。sku的产品信息可以包括产品的标识(即sku)、产品的类别、产品的名称或标题、产品单位的尺寸和重量、产品的颜色、产品的单价、从rdc110向fdc130运送的产品的直接满足成本、当使用从rdc110向fdc130(或者,fdc130覆盖的客户)的直接满足时针对产品招致的销售损失比。因为每种特定产品具有对应的sku,所以在本公开中产品和sku可以互换使用。
需求分配系统190、库存数据库192和产品数据库194中的这些信息对于库存分配计算设备150是可访问的。
如图4中所示,库存分配计算设备150可以包括但不限于处理器152、存储器154和存储设备156。在某些实施例中,库存分配计算设备150可以包括其他硬件组件和软件组件(未示出)以执行其相应的任务。这些硬件和软件组件的示例可以包括但不限于其他所需的存储器、接口、总线、输入/输出(i/o)模块或设备、网络接口和外围设备。在某些实施例中,库存分配计算设备150是云计算机或服务器计算机,并且处理器152、存储器154和存储设备156是通过互联网按需提供的共享资源。
处理器152可以是被配置为控制库存分配计算设备150的操作的中央处理单元(cpu)。处理器152可以执行库存分配计算设备150的操作系统(os)或其他应用。在一些实施例中,库存分配计算设备150可以具有一个以上的cpu作为处理器,例如两个cpu、四个cpu、八个cpu或任何合适数量的cpu。
存储器154可以是易失性存储器,比如随机存取存储器(ram),用于在库存分配计算设备150的操作期间存储数据和信息。在某些实施例中,存储器154可以是易失性存储器阵列。在某些实施例中,库存分配计算设备150可以在一个以上的存储器154上运行。
存储设备156是用于存储库存分配计算设备150的os(未示出)和其他应用的非易失性数据存储介质。存储设备156的示例可以包括非易失性存储器,比如闪存、存储卡、usb驱动器、硬盘驱动器、软盘、光盘驱动器或任何其他类型的数据存储设备。在某些实施例中,库存分配计算设备150可以具有多个存储设备156,多个存储设备156可以是相同的存储设备或不同类型的存储设备,并且库存分配计算设备150的应用可以存储在库存分配计算设备150的一个或多个存储设备156中。如图4中所示,存储设备156包括库存分配应用160(“应用”)。库存分配应用160提供了用于收集产品库存、产品需求和运输极限并且提供优化产品配送的分配指令的系统。在某些实施例中,库存分配应用160定期执行,比如每天在将产品从rdc110递送到fdc130之前执行。对于每次更新,库存分配应用160被配置为检索最新的数据或最后的历史数据。在某些实施例中,库存分配应用160能够在几分钟内执行一轮计算。在某些实施例中,库存分配应用160被编程为每天在预定时间运行一次。库存分配应用160通过每天更新处理的数据来提供几乎实时的配送安排。
如图4中所示,库存分配应用160包括fdc补货模块162和rdc分配模块164等。在某些实施例中,库存分配应用160可以包括模块162和164的操作所必需的其他应用或模块。应该注意,每个模块由形成一个应用的计算机可执行代码或指令、或者数据表或数据库来实现。在某些实施例中,每个模块还可以包括子模块。备选地,一些模块可以组合为一个堆栈。在其他实施例中,某些模块可以被实现为电路而不是可执行代码。在某些实施例中,库存分配应用160的一些模块可以位于远程计算设备处,并且本地计算设备150中的库存分配应用160的模块通过有线或无线网络与远程计算设备中的模块通信。在某些实施例中,库存分配计算设备150是云计算机服务器。
fdc补货模块162被配置为:当库存分配应用160在运行时,检索一个特定fdc130中的每个sku的当前fdc库存和在预定的未来时间内该fdc130中的每个sku的需求预测,获得fdc130的运输能力极限(单位)m和运输能力极限(单一产品)n,使用这些检索到的数据来计算在该fdc130中要补货的sku和该要补货的sku的单位数量,并且将这些计算出的结果发送到rdc库存分配模块164。
fdc补货模块162旨在对每个fdc130执行上述计算。在某些实施例中,fdc补货模块162被配置为从库存数据库192中检索特定fdc130中的每个sku的库存,并从需求预测系统190中检索在预定的未来时间内该fdc130中的每个sku的需求预测。在某些实施例中,预定的未来时间(或预定时间)在1天至1周的范围内。在某些实施例中,基于补货的频率和完成补货在道路上所需的时间来确定预定时间。在一个实施例中,补货频率为每天,并且补货的路上时间为1天,从而预定时间可以设置为1天。在一个实施例中,补货频率为每天,并且补货的路上时间为2天,从而预定时间可以设置为2天。在一个实施例中,补货频率为每天,并且补货的路上耗费时间为1天,但是预定时间可以设置为2天以补偿产品销售的不确定性和补货的路上时间的不确定性。在一个实施例中,补货频率为每天,并且补货的路上时间为2天,但是预定时间可以设置为3天,以补偿产品销售的不确定性和补货的路上时间的不确定性。
在某些实施例中,fdc补货模块162被配置为从库存分配计算设备150的管理者(该管理者可以通过接口输入m和n的值)获得运输能力极限m和n,或者从其他部门或服务接收值m和n,比如从补货操作部门或从每个fdc130。运输能力极限m为即将进行的补货操作能够递送的单位的总数量,并且运输能力极限n为即将进行的补货操作能够递送的产品的总类型数。为了方便起见,在本公开中,极限m还可以被称为最大运输单位且极限n还可以被称为最大运输sku类型。在某些实施例中,不同fdc130的极限m和n可以不同。在某些实施例中,一个fdc130的极限m和n与该fdc130所关联的区域的整体需求成比例。
在获得这些信息之后,fdc补货模块162被配置为使用这些获得的数据来最小化目标函数(1):
对于公式(1)的目标函数,fdc补货模块162寻找一个fdc130中的所有sku的计算总和的最小期望值。在公式(1)中,对于一个fdc130中,e是取期望值;i为该fdc130中的sku的索引,并且为从1至i的范围内选出的正整数,其中i为该fdc130中的sku的总数量;
对于目标函数(1)的优化,fdc补货模块还被配置为定义该目标函数中的以下参数:
s.t.∑ixi≤m(1a),
∑iyi≤n(1b),
xi≥0&xi∈z(1d)。
s.t.是指“使得”。公式(1a)定义了fdc130的总能力极限m,即,即将进行的补货操作能够提供的产品的总单位数量。所有sku的所有补货量的总和小于极限m。当fdc130中的特定产品的xi值为0时,将不会在即将进行的补货操作期间中对该产品进行补货。换言之,在fdc130中的全部sku中,一些sku的xi值为正整数,并且将对其补货xi个单位;一些sku的xi值为0,并且将不对其进行补货。
此外,公式(1b)定义了fdc130的总容量极限n,该总容量极限n是补货将会处理的sku的最大数量。换言之,即将进行的补货不能配送超过n种类型的sku。这里yi在相应的sku包括在该次补货中时为1,yi在相应的sku未包括在该次补货中时为0。
另外,如公式(1c)中所示,b为大的正整数或大的正实数,例如10,000或100,000。通过该约束,当sku包含在补货中时,对应的yi为1,并且sku的单位数量xi小于非常大的数量;以及当sku未包括在补货中时,对应的yi为0,并且sku的单位数量xi等于0。该约束建立了sku的单元数量与sku的类型数量之间的关系。
此外,如公式(1d)所示,对要补货的sku的单元数量xi的限制是等于或大于0并且是整数。
在最小化一个fdc130的目标函数之后,确定了该fdc130中的sku的补货数量和类型。然后,对每个fdc130执行目标函数的最小化,并且fdc补货模块162还被配置为向rdc分配模块164发送这些信息。由fdc补货模块162向rdc分配模块164发送的该信息至少包括每个相关的fdc130中的所有产品的理想补货水平。在某些实施例中,该信息可以被布置为两部分,fdc补货产品列表和列表中的产品对于每个fdc130的理想补货水平。表1示出了fdc补货模块162向rdc分配模块164发送的信息的示例。如表1中所示,基于第一阶段中的计算,总共需要补货p个sku。请注意,并不是每个fdc130都需要所有的p个sku。换言之,一个fdc130或一些fdc130需要p个sku中的一些sku,而另一fdc130或一些其他fdc130需要p个sku中的一些其他sku。总共有j个fdc至少需要对至少一个sku进行补货。对于sku1127(产品的标识),fdc-1、fdc-2和fdc-j中的产品的理想补货分别为60个单位、0个单位和30个单位。因此,fdc-2不需要对sku1127进行补货。
rdc分配模块164被配置为在从fdc补货模块162接收fdc130中的产品的理想补货水平时,在rdc110处检索可用库存,检索要补货的产品的当前fdc库存,检索要补货的产品的需求预测,以及获得fdc优先级,以获取最终库存分配决策给fdc130。
rdc分配模块164旨在对每种产品执行以上计算。在某些实施例中,当fdc补货模块162将产品的理想补货水平发送到rdc分配模块164时,可能存在列出具有其理想补货水平的产品的产品列表。不需要补货的产品不包括在列表中。通过组合来自所有fdc130的产品列表,可以获得fdc补货产品列表(组合列表)。fdc补货产品列表中的每种产品至少由需要补货产品的一个fdc130列出。fdc补货产品列表中的每种产品都可以由几个不同的fdc130请求,例如,表1中的sku2006由fdc-1和fdc-2请求,而不由fdc-j请求。rdc分配模块164被配置为处理该fdc补货产品列表中的产品。对于fdc补货产品列表中的每种产品,rdc分配模块164被配置为仅将产品分配给相关的fdc130。例如,当rdc分配模块164根据表1重新分配sku2006时,其仅决定sku2006从rdc110向fdc-1和fdc-2的分配,而不是向fdc-j的分配,因为fdc-j不需要对sku2006进行补货,因此在即将进行的补货中与sku2006无关。
对于fdc补货产品列表中的每种产品,rdc分配模块164被配置为从库存数据库192或从存储设备156处的计算当前可用库存o的模块检索rdc110处的当前可用库存q。当前可用库存o是rdc110中可以向fdc130配送的产品单位。产品的其余库存储备在rdc110中。
此外,对于fdc补货产品列表中的每种产品,rdc分配模块164被配置为从库存数据库192中检索每个fdc130中的产品的当前fdc现有库存s。
此外,对于fdc补货产品列表中的每种产品,rdc分配模块164被配置为在预定时间内从需求预测系统190中检索每个fdc130中的产品的需求预测d。在某些实施例中,fdc补货模块162可以提供这些需求预测,从而rdc分配模块164不必再次检索这些需求信息。
此外,rdc分配模块164被配置为针对每个fdc130检索fdc优先级γ。fdc优先级可以是由系统管理员提供或从其他服务中检索到的预定值。在某些实施例中,fdc130被同等加权且所有fdc130的fdc优先级设置为1。在某些实施例中,基于诸如人口、交通便利、销售历史的fdc区域信息,fdc优先级设置为0.8至1.0,优选地在0.9至1.0之间。fdc越重要,优先级值越高。
在获得上述信息之后,rdc分配模块164被配置为使用所获得的数据来最小化目标函数(2):
对于公式(2)的目标函数,rdc分配模块164在不同的fdc130中寻找每个产品的加权期望总和的最小值。通过针对fdc补货产品列表中的每个产品的这种优化,rdc分配模块164被配置为实现每种特定产品向不同fdc130的平衡分配。公式(2)是针对一种特定产品的函数,并且在公式(2)中,e是取期望值;j为fdc130的索引,总共有j个fdc130,j为正整数,并且j为选自1至j的正整数;γj为第j个fdc130的fdc优先级;dj为预定时间内第j个fdc130中的特定产品的需求;sj为第j个fdc130中的特定产品的当前库存;vj为特定产品向第j个fdc130的即将进行的补货单位;以及 是指仅当(dj-sj-vj)为正时对其执行求和,当对于第j个fdc130的(dj-sj-vj)为负时,从求和运算中舍弃(dj-sj-vj)的值或将其设置为0。例如,fdc130可以具有足够的库存sj,并且特定sku的(dj-sj-vj)为负,则无需将更多的sku配送到fdc130,并且在目标函数中不考虑(或者,舍弃或将其设置为0)与该sku相对应的(dj-sj-vj)的负值。
对于目标函数(2)的优化,rdc分配模块164还被配置为定义目标函数中的以下参数:
s.t.∑ivj≤q(2a),
vj≥0&vj∈z(2c)。
s.t.是指“使得”。公式(2a)定义了特定产品向j个fdc130的总分配单位应该等于或小于q,其中q为rdc110中可用于分配的产品的单位数量。
此外,公式(2b)定义了特定产品向第j个fdc130的特定产品的实际分配量等于或小于在第一阶段中计算的第j个fdc130中该产品的理性补货水平。这里xj是针对第j个fdc130在第一阶段中计算的xi。
另外,如公式(2c)所示,对特定sku给第j个fdc的分配单位数量的限制为0或正整数。
针对一个sku执行公式(2)的目标函数,并且针对fdc补货产品列表中的所有sku重复执行。因此,公式(2)的目标函数的最终结果提供了将要实际补货的每个sku向j个fdc130中的每个fdc130的分配。
图5描绘了根据本公开的某些实施例的用于库存分配的方法。在某些实施例中,方法500由图4中示出的库存分配计算设备150来实现。应当特别注意,除非本公开中另有说明,否则该方法的步骤可以按照不同的顺序来排列,因此并不限于图5中示出的顺序。为了简单起见,在此可以省略先前已经讨论的一些详细描述。
如图5中所示,在步骤502,对于一个fdc130中的所有sku或具有sku的产品,fdc补货模块162从库存数据库192中检索所有sku的当前现有库存s,从需求预测系统190中检索所有sku在预定时间内的需求预测d,从库存分配系统的管理者或从相应的fdc130中或从外部服务中获得运输能力极限(单位)m和运输能力极限(单一产品)n。预定时间可以是当前时间至fdc130的下一次补货时间,或者比当前时间至fdc130的下一次补货时间的时段长一天或两天的时间。在某些实施例中,预定时间为一天或两天。运输能力极限m为即将进行的补货操作能够向fdc130递送的最大单位数量;以及运输能力极限n是即将进行的补货操作能够向fdc130递送的最多sku类型。
然后在步骤504,fdc补货模块162使用上面检索或获得的fdc130中的所有sku的数据来优化公式(1)的目标函数。在优化之后,fdc补货模块162确定fdc130中的需要补货的每个sku的理想补货水平。
针对每个fdc130重复步骤502和504,获得了每个fdc130中的所有sku的理性补货水平。请注意,在针对每个fdc130重复步骤502和504期间,如果运输能力极限m和n对于所有fdc都相同,则fdc补货模块162可能不必每次都获得极限m和n。但是如果不同fdc的运输能力极限m和n不同,则fdc补货模块162需要获得这些不同的m和n。在某些实施例中,fdc模块162可以批量获得这些不同的m和n,并且不需要分别检索这些值。
在某些实施例中,在获得每个fdc130中的所有产品的理想补货水平之后,fdc补货模块162可以将这些结果以诸如表1所示的格式进行组合。在某些实施例中,组合的结果可以包括与任何一个fdc130中需要补货的所有产品和相对应的fdc补货产品列表,和一个或多个fdc130的列表中产品的理想补货水平。然后,fdc补货模块162将产品列表和列表中每个产品的理想补货水平发送到rdc分配模块164,其中该产品列表约束了rdc分配模块164需要分析的产品数量,产品的理想补货水平约束了能够对产品实际补货的最大值。
在步骤506,在接收到产品列表和产品的理想补货水平时,rdc分配模块164分别处理这些产品。具体地,对于每种产品,rdc分配模块164获得rdc处该产品的当前可用库存,获得需要该产品的不同fdc130中该产品的当前fdc库存,获得在需要该产品的不同fdc130中在预定时间内该产品的需求预测,并且获得fdc优先级,并且这些数据可用于获得产品在需要该产品的不同fdc130之间的分配。
在某些实施例中,rdc分配模块164从存储设备156的储备比率模块获得rdc110处产品的当前可用库存,该储备比率模块提供可用于向fdc130分配的rdc110中的产品的最优比率。该比率乘以rdc110中产品的总单位数量得出rdc110处的当前可用库存o。
在某些实施例中,rdc分配模块164从库存数据库192获得需要该产品的不同fdc130中该产品的当前fdc库存。在某些实施例中,因为fdc补货模块162已经检索了所需数据,所以rdc分配模块164还可以从fdc补货模块162中获得产品的当前fdc库存。
在某些实施例中,rdc分配模块164从需求预测系统190获得需要该产品的不同fdc130中产品的需求预测。在某些实施例中,因为fdc补货模块162已经检索了所需数据,所以rdc分配模块164还可以从fdc补货模块162获得产品的需求预测。
在某些实施例中,rdc分配模块164从分配系统的管理者的输入或从外部源中获得fdc优先级。在某些实施例中,fdc优先级是相同的,例如对于所有fdc为1.0;在某些实施例中,基于fdc的优先级,每个fdc的fdc优先级是在0.8-1.0的范围内(优选地在0.9-1.0的范围内)的预定数。具有较多人口的fdc可以具有较高的优先级,而具有较少人口的fdc可以具有较低的优先级。
在步骤508,在获得所有的上述数据之后,rdc分配模块164使用这些数据来优化公式(2)的目标函数,从而获得需要该产品的不同fdc130之间的产品分配。
rdc分配模块164针对来自列表的每个产品重复步骤506和508。在将每个产品分配给相应的fdc130之后,该结果用于指示即将进行的补货操作。
在某些实施例中,对于fdc130中的每个产品,最终分配等于或小于理想分配,需要在fdc130中进行补货的sku的最终分配的总数量可能小于需要在fdc130中进行补货的sku的理想分配的总数量。为了补偿两个总数量之间的差异,在某些实施例中,极限m和n可以少量增加,比如增加1%至10%,优选地增加2%。
在另一方面,本发明涉及一种存储计算机可执行代码的非暂时性计算机可读介质。当在计算设备的处理器处执行时,该代码可以执行如上所述的方法500。在某些实施例中,非暂时性计算机可读介质可以包括但不限于物理或虚拟的存储介质。在某些实施例中,非暂时性计算机可读介质可以被实现为如图4中所示的库存分配计算设备150的存储设备156。
在某些实施例中,tebias的优点包括:(1)tebias平衡fdcs之间的库存以最小化总销售损失;(2)tebias妥善处理fdc的优先级(而不是过度保护较高排名的fdc);(3)tebias明确考虑运输能力极限以避免超时的工作量,等等。
前面已经呈现了本公开的示例性实施例的描述,这么做仅出于说明和描述的目的而并非意在穷举或限制本公开的确切形式。鉴于上述教导,许多修改和变化是可能的。
选择和描述实施例是为了解释本公开的原理及其实际应用,从而使本领域的其他技术人员能够利用本公开和各种实施例,以及对其进行各种修改以适合于预期的特定用途。在不脱离本发明的精神和范围的情况下,备选实施例对于本公开所属领域的技术人员将变得显而易见。因此,本公开的范围由所附权利要求书而不是前面的描述和其中描述的示例性实施来限定。
1.一种用于在一级配送中心与多个二级配送中心之间分配库存的方法,所述方法包括:
对于每个二级配送中心,基于每种产品的当前库存和需求预测以及二级配送中心的运输能力极限来确定产品的理想补货水平;
对于每种产品,基于二级配送中心中的理想补货水平、一级配送中心中产品的当前可用库存、二级配送中心中的当前库存和需求预测以及二级配送中心的优先级来确定二级配送中心中的实际补货水平;以及
在即将进行的补货操作中,基于二级配送中心中产品的实际补货水平,从一级配送中心向二级配送中心分配库存。
2.根据权利要求1所述的方法,其中通过优化以下目标函数来执行确定二级配送中心之一中产品的理想补货水平的步骤:
其中:
∑ixi≤m(1a),
∑iyi≤n(1b),
xi≥0&xi∈z(1d),
其中e是取函数
其中m为所述即将进行的补货操作能够递送给二级配送中心的产品单位的最大数量;n为所述即将进行的补货操作能够递送给二级配送中心的产品的最多类型;以及
其中b为大正数,
3.根据权利要求2所述的方法,其中当xi为0时yi的值为0,以及当xi为正整数时yi的值为1。
4.根据权利要求2所述的方法,其中通过优化以下目标函数来执行确定二级配送中心中的实际补货水平的步骤:
其中:
∑jvj≤q(2a),
vj≥0&vj∈z(2c),
其中e是取函数(dj-sj-vj) 的期望值;j为二级配送中心的索引,j为正整数;γi为第j个二级配送中心的优先级;dj为预定时间内第j个二级配送中心中产品的需求预测;sj为第j个二级配送中心处产品的当前库存;vj为从一级配送中心向第j个二级配送中心的产品的实际补货水平;xj为从一级配送中心向第j个二级配送中心的产品的理想补货水平;以及
其中q为在所述即将进行的补货操作期间一级配送中心处可用于分配给二级配送中心的产品的数量;
5.根据权利要求4所述的方法,其中所述预定时间在一天至七天的范围内。
6.根据权利要求5所述的方法,其中所述预定时间为两天。
7.根据权利要求4所述的方法,其中j在3至10的范围内。
8.根据权利要求4所述的方法,其中第j个二级配送中心的优先级γj在0.9至1.0的范围内。
9.根据权利要求1所述的方法,其中每个需求预测为向量。
10.一种用于在一级配送中心与多个二级配送中心之间分配库存的系统,所述系统包括计算设备,所述计算设备包括处理器和存储计算机可执行代码的存储设备,其中所述计算机可执行代码在所述处理器处执行时,被配置为执行根据权利要求1至9中任一项所述的方法。
11.一种存储计算机可执行代码的非暂时性计算机可读介质,其中所述计算机可执行代码在计算设备的处理器处执行时,被配置为执行根据权利要求1至9中任一项所述的方法。
12.一种用于分配库存的计算系统,包括库存分配计算设备以及通过网络与所述计算设备通信的需求预测系统、库存数据库和产品数据库,其中,
所述库存分配计算设备包括处理器、存储器和存储设备,所述存储设中存储有库存分配应用,所述库存分配应用包括补货模块和分配模块,其中,
所述补货模块被配置为对于每个二级配送中心,基于每种产品的当前库存和需求预测以及二级配送中心的运输能力极限来确定产品的理想补货水平;并且
所述分配模块被配置为对于每种产品基于二级配送中心中的理想补货水平、一级配送中心中产品的当前可用库存、二级配送中心中的当前库存和需求预测以及二级配送中心的优先级来确定二级配送中心中的实际补货水平,以及在即将进行的补货操作中,基于二级配送中心中产品的实际补货水平,从一级配送中心向二级配送中心分配库存,
所述需求预测系统被配置为基于历史数据来提供一级配送中心和二级配送中心的需求预测;
所述库存数据库被配置为记录一级配送中心和二级配送中心的库存;并且
所述产品数据库被配置为提供产品信息。
技术总结