CN117853020B - 库存调拨方法、装置及存储介质 - Google Patents

库存调拨方法、装置及存储介质 Download PDF

Info

Publication number
CN117853020B
CN117853020B CN202410260214.6A CN202410260214A CN117853020B CN 117853020 B CN117853020 B CN 117853020B CN 202410260214 A CN202410260214 A CN 202410260214A CN 117853020 B CN117853020 B CN 117853020B
Authority
CN
China
Prior art keywords
warehouse
demand
inventory
time
allocation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202410260214.6A
Other languages
English (en)
Other versions
CN117853020A (zh
Inventor
杨辉
唐伟
钟鼎
叶舟
童兴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongke Yungu Technology Co Ltd
Original Assignee
Zhongke Yungu Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhongke Yungu Technology Co Ltd filed Critical Zhongke Yungu Technology Co Ltd
Priority to CN202410260214.6A priority Critical patent/CN117853020B/zh
Publication of CN117853020A publication Critical patent/CN117853020A/zh
Application granted granted Critical
Publication of CN117853020B publication Critical patent/CN117853020B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请公开了一种库存调拨方法、装置及存储介质,方法包括:确定任一非需求仓库和任一需求仓库对应的全局时间库存量数组,为每个仓库对应的全局时间库存量数组设置中转约束,将每个仓库对应的全局时间调出量数组和每个需求仓库对应的全局时间需求解决量数组作为决策变量,将为每个仓库对应的全局时间库存量数组设置的中转约束作为约束条件,将调拨成本作为目标函数后,求解得到每个仓库对应的第一最佳全局时间调出量数组和每个需求仓库对应的第一最佳全局时间需求解决量数组,以此控制仓库架构中的仓库执行针对库存调拨需求的库存调拨。本方案使得最终生成的调拨方案能够适用于存在库存中转的调拨场景,有助于提高库存调拨的时间满意度。

Description

库存调拨方法、装置及存储介质
技术领域
本申请涉及路径规划技术领域,具体地涉及一种库存调拨方法、装置及存储介质。
背景技术
库存调拨是指将库存从一个地点或仓库转移至另一个地点或仓库的过程,库存调拨的目的是满足不同地点的库存需求,优化库存管理和分布,提高整体的运营效率。
库存调拨可以被视为路径规划类的优化问题,其通常要求在解决既定仓库的库存需求的条件下尽可能地减小运输成本,从而实现一套高效且低成本的库存调拨策略。然而,现有的库存调拨策略在对仓库架构建模时采用点对点的直达模型,仓库之间的调拨仅在库存量上考虑约束而没有考虑调拨时间维度上的约束,无法适用于存在库存中转的调拨场景。
发明内容
本申请实施例的目的是提供一种库存调拨方法、装置及存储介质,用以解决现有技术中无法适用于存在库存中转的调拨场景的技术问题。
为了实现上述目的,本申请第一方面提供一种库存调拨方法,该方法应用于包含需求仓库集合与非需求仓库集合的仓库架构,该方法包括:
根据仓库架构中每个仓库的可调出仓库集合,确定每个仓库的可调入仓库集合;
获取库存调拨需求以及仓库架构的运输时长表,库存调拨需求包括需求仓库集合中各需求仓库的库存需求,运输时长表包括仓库架构中的任意一个仓库调往其的可调出仓库集合中每一个仓库的运输时长;
针对需求仓库集合中的任一需求仓库,生成任一需求仓库对应的全局时间需求解决量数组;
基于仓库架构中任一仓库的可调出仓库集合,生成任一仓库对应的全局时间调出量数组;
基于运输时长表以及任一仓库的可调入仓库集合中每一个仓库对应的全局时间调出量数组,生成任一仓库对应的全局时间调入量数组;
基于非需求仓库集合中的任一非需求仓库对应的全局时间调出量数组以及全局时间调入量数组,确定任一非需求仓库对应的全局时间库存量数组;
基于任一需求仓库对应的全局时间调出量数组、全局时间调入量数组以及全局时间需求解决量数组,确定任一需求仓库对应的全局时间库存量数组;
为每个仓库对应的全局时间库存量数组设置中转约束,中转约束用于限制仓库在每个时刻的当前库存变量不小于零;
基于需求仓库集合中每个需求仓库对应的全局时间需求解决量数组确定调拨成本;
将每个仓库对应的全局时间调出量数组以及每个需求仓库对应的全局时间需求解决量数组作为决策变量,将为每个仓库对应的全局时间库存量数组设置的中转约束作为约束条件,将调拨成本作为目标函数后,求解得到每个仓库对应的第一最佳全局时间调出量数组以及每个需求仓库对应的第一最佳全局时间需求解决量数组;
根据每个仓库对应的第一最佳全局时间调出量数组以及每个需求仓库对应的第一最佳全局时间需求解决量数组,控制仓库架构中的仓库执行针对库存调拨需求的库存调拨。
本申请第二方面一种库存调拨装置,包括:
存储器,被配置成存储指令;以及
处理器,被配置成从所述存储器调用所述指令以及在执行所述指令时能够实现根据上述的库存调拨方法。
本申请第三方面一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行根据上述的库存调拨方法。
通过上述技术方案,生成任一仓库对应的全局时间调出量数组,基于运输时长表以及任一仓库的可调入仓库集合中每一个仓库对应的全局时间调出量数组,生成任一仓库对应的全局时间调入量数组,基于非需求仓库集合中的任一非需求仓库对应的全局时间调出量数组以及全局时间调入量数组,确定任一非需求仓库对应的全局时间库存量数组,基于任一需求仓库对应的全局时间调出量数组、全局时间调入量数组以及全局时间需求解决量数组,确定任一需求仓库对应的全局时间库存量数组,为每个仓库对应的全局时间库存量数组设置中转约束,中转约束用于限制仓库在每个时刻的当前库存变量不小于零,基于需求仓库集合中每个需求仓库对应的全局时间需求解决量数组确定调拨成本,将每个仓库对应的全局时间调出量数组以及每个需求仓库对应的全局时间需求解决量数组作为决策变量,将为每个仓库对应的全局时间库存量数组设置的中转约束作为约束条件,将调拨成本作为目标函数后,求解得到每个仓库对应的第一最佳全局时间调出量数组以及每个需求仓库对应的第一最佳全局时间需求解决量数组,以此控制仓库架构中的仓库执行针对库存调拨需求的库存调拨。在本说明书实施例中,通过在建模中充分考虑了库存中转的场景,为每个需求仓库与每个非需求仓库定义全局时间库存量数组的表示并设置相应的中转约束,从而在时间维度上建立了约束条件,使得最终生成的调拨方案能够适用于存在库存中转的调拨场景;同时通过每个需求仓库对应的全局时间需求解决量数组确定调拨成本,在成本上考虑到因需求解决快慢而导致的时间成本,有助于提高库存调拨的时间满意度。
本申请实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本申请实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本申请实施例,但并不构成对本申请实施例的限制。在附图中:
图1示意性示出了根据本申请实施例的一种库存调拨方法的流程示意图;
图2示意性示出了根据本申请实施例的一种库存架构的示意图;
图3示意性示出了根据本申请实施例的另一种库存架构的示意图;
图4示意性示出了根据本申请实施例的一种库存调拨装置的结构框图;
图5示意性示出了根据本申请实施例的一种计算机设备的内部示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解的是,此处所描述的具体实施方式仅用于说明和解释本申请实施例,并不用于限制本申请实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明,若本申请实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
另外,若本申请实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
图1示意性示出了根据本申请实施例的一种库存调拨方法的流程示意图。如图1所示,本申请实施例提供一种库存调拨方法,该方法应用于包含需求仓库集合与非需求仓库集合的仓库架构,该方法可以包括下列步骤。
S102,根据仓库架构中每个仓库的可调出仓库集合,确定每个仓库的可调入仓库集合。
本说明书实施例所涉及的仓库架构包含有多个仓库,这些仓库按照是否能够产生库存需求可以分为需求仓库和非需求仓库,分别归属于需求仓库集合和非需求仓库集合,其中,能够产生库存需求的仓库称为需求仓库,其通常作为库存调拨的终点,而无法产生库存需求的仓库称为非需求仓库,其通常作为库存调拨的起点或中转点。
在本说明书实施例中,确定每个仓库的可调入仓库集合,包括:遍历每个仓库的可调出仓库集合,在第一仓库的可调出仓库集合中包含第二仓库的情况下,将第一仓库加入至第二仓库的可调入仓库集合。作为执行库存调拨方法的数据条件,首先需要获取仓库架构中每个仓库的可调出仓库集合,然后再基于这些可调出仓库集合确定出每个仓库的可调入仓库集合。本说明书实施例的任一仓库的可调出仓库集合是指:允许该任一仓库向外调拨库存的仓库所构成的集合。这意味着在仓库架构所规定的调拨规则中,只允许任一仓库向该任一仓库的可调出仓库集合中的包含的仓库进行库存调拨,而不允许任一仓库向未包含在该任一仓库的可调出仓库集合中仓库进行库存调拨。在确定每个仓库的可调入仓库集合时,我们首先针对每个仓库都初始化一个空的可调入仓库集合,然后遍历每个仓库的可调出仓库集合中的每个仓库,每次在第一仓库的可调出仓库集合中确认到第二仓库,就在第二仓库的可调入仓库集合中加入第一仓库,重复上述过程直到确认每个仓库的可调出仓库集合中的每个仓库,此时可以得到每个仓库的完整的可调入仓库集合。
在一说明书实施例中,仓库架构包括1至N共N个层级的仓库集合,其中,第M级仓库集合中的仓库属于非需求仓库集合,第N级仓库集合中的仓库属于需求仓库集合,第M级仓库集合中的仓库的可调出仓库集合包括第M级仓库集合中的其他仓库以及第M+1级仓库集合中的仓库,第N级仓库集合中的仓库的可调出仓库集合包括第N级仓库集合中的其他仓库,N为不小于3的正整数,M为小于N的正整数。本说明书实施例引入了多级仓库架构,从而为解决多级仓库架构中存在库存中转情况的库存调拨问题提供了支持。
如图2所示,仓库架构包括1至3共3个层级的仓库集合,其中,第1或2级仓库集合中的仓库属于非需求仓库集合,第3级仓库集合中的仓库属于需求仓库集合,第1级仓库集合包括仓库A,第2级仓库集合包括仓库B、C,第3级仓库集合包括仓库D、E、F、G。仓库之间的调拨规则可以通过每个仓库的可调出仓库集合来定义。例如,处于第1级仓库集合中仓库A的可调出仓库集合就包括所有处于第2级仓库集合中的仓库B、C;仓库B的可调出仓库集合就包括处于同级仓库集合中的仓库C以及下一级仓库集合(第3级仓库集合)中的仓库D、E、F、G;仓库D的可调出仓库集合就包括处于同级仓库集合中的仓库E、F、G。显然,在本说明书实施例的仓库架构中,最终确定的各仓库的可调入仓库集合的部分情况如下:仓库A的可调入仓库集合为空集;仓库B的可调入仓库集合包括仓库A、C;仓库D的可调入仓库集合包括仓库B、C、E、F、G。
仓库架构中的每个仓库一一对应于仓库树形结构中的结点,仓库树形结构的最大层数为N,其中,仓库树形结构中的非叶子结点对应的仓库属于非需求仓库集合,仓库树形结构中的叶子结点对应的仓库属于需求仓库集合,仓库树形结构中任一父结点对应仓库的可调出仓库集合包括该任一父结点的每个子结点和每个兄弟结点对应的仓库,树形结构中任一叶子结点对应仓库的可调出仓库集合包括该任一叶子结点的兄弟结点对应的仓库。说明书实施例引入了基于仓库树形结构的仓库架构,从而为解决树形仓库架构中存在库存中转情况的库存调拨问题提供了支持。
如图3所示,仓库架构对应的仓库树形结构的最大层数为3,其中,作为仓库树形结构中非叶子结点的仓库A、B、C属于非需求仓库集合,作为仓库树形结构中叶子结点的仓库D、E、F、G属于需求仓库集合。仓库之间的调拨规则可以通过每个仓库的可调出仓库集合来定义。例如,仓库A的可调出仓库集合就包括其子结点对应的仓库B、C;仓库B的可调出仓库集合包括其兄弟结点对应的仓库C以及其子结点对应的仓库D、E;作为叶子结点对应的仓库D的可调出仓库集合就包括其兄弟结点对应的仓库E。显然,在本说明书实施例的仓库架构中,最终确定的各仓库的可调入仓库集合的部分情况如下:仓库A的可调入仓库集合为空集;仓库B的可调入仓库集合包括仓库A、C;仓库D的可调入仓库集合包括仓库B、E。
在一些实施例中,我们结合地理空间的递进关系来对仓库架构进行设计。例如,可以在上述基于仓库树形结构的仓库架构的基础上,将第1层的仓库设置为全球总仓库,将第2层的仓库设置为每个国家的国家总仓,第3层的仓库设置为国家中不同分区/省/州的地区中转仓,第4层的仓库设置为地区内部不同市区的市区仓,以此类推。由此一来,可以使得某个国家内部的库存需求只能通过该国家的国家总仓来调拨,而不会通过其他国家中的下级仓进行调拨,从而形成有效的国家间、地区间调拨隔离,从而能够支持全球级别的库存管理与调拨布局。
S104,获取库存调拨需求以及仓库架构的运输时长表,库存调拨需求包括需求仓库集合中各需求仓库的库存需求,运输时长表包括仓库架构中的任意一个仓库调往其的可调出仓库集合中每一个仓库的运输时长。
在本说明书实施例中,库存调拨需求是指每个需求仓库在本轮调拨周期内所要求得到的库存需求,其通常以库存调拨需求数组来表示。以图2为例,需求仓库集合包括仓库D、E、F、G,假设其在当前调拨周期内的库存调拨需求数组为,代表需求仓库D、E、G在当前调拨周期内所需获得的库存需求分别为2、4、3,而需求仓库F在当前调拨周期内所需获得的库存需求为0,这意味着需求仓库F在当前调拨周期内不需要获得库存需求。本说明书实施例所涉及的库存调拨需求可以是由需求预测模型预测得到,也可以是在当前调拨周期之前的上个需求收集周期内累计收集的各需求仓库上报的实际需求。
在本说明书实施例中,为了求解全局时间调入量数组,我们需要获取仓库架构的运输时长表,该运输时长表包括仓库架构中的任意一个仓库调往其的可调出仓库集合中每一个仓库的运输时长。由于事先通过每个仓库的可调出仓库集合规定了仓库架构的调拨规则,因此运输时长表所包括的任意两个仓库之间的运输时长必定是调拨规则所允许调拨的两个仓库之间的运输时长。在本说明实施例中,假设两个仓库(第一仓库和第二仓库)之间可以互相进行库存调拨,可以将第一仓库调往第二仓库的运输时长与第二仓库调往第一仓库的运输时长设置为相同或不同,以适应不同的实际运输情况。
S106,针对需求仓库集合中的任一需求仓库,生成任一需求仓库对应的全局时间需求解决量数组。
在本说明书实施例中,任一需求仓库对应的全局时间需求解决量数组包括任一需求仓库在不同时刻完成解决的库存需求解决变量,具体而言,是包括任一需求仓库在当前调拨周期内的每个时刻完成解决的库存需求解决变量。对于任意一个在当前调拨周期内具有库存需求的需求仓库而言,其主要目标就是在当前调拨周期内对其具有的所有库存需求进行解决。本说明书实施例中需求仓库在任一时刻完成解决的库存需求解决变量,是指将该需求仓库在该任一时刻下的一部分库存量作为库存需求的解决量进行“固定”,这意味着这一部分被解决的库存需求(库存需求解决变量)将不能在之后的任一时刻作为可调拨至其他仓库的库存量,而是被永久“固定”在其所被解决的当前需求仓库中。
从实际场景来看,这种“对库存需求的解决”可以看作是将这部分作为库存需求解决量的库存量发往作为需求终端的下级客户。需要注意的是,此时生成的全局时间需求解决量数组中的库存需求解决变量均为未知变量,用于表征在当前调拨周期内的任意时刻都有解决任意数量库存需求的可能性(但会受到约束条件的限制),需要在后续进行最优库存调拨策略的求解后才会常量化。任一需求仓库对应的全局时间需求解决量数组一共包括个数组,/>表示调拨周期时长,由于本说明书实施例中的所有时间和时刻均做了离散化处理(例如/>表示当前调拨周期的开始时刻,/>表示距当前调拨周期开始后的1个时间单位的时刻,/>表示距当前调拨周期开始后/>个时间单位后的时刻,也表示调拨周期一共所包含的时间单位的数量),因此/>在数值上为正整数,例如0,代表每个调拨周期一共有10个时间单位。本说明书实施例所涉及的时间单位包括但不限于以下任何一种时间单位:秒、分钟、小时、天、周、月、季度、年。
以图3为例,将仓库A-G分别编号为仓库1-7,设,则需求仓库D对应的全局时间需求解决量数组可以表示为/>。其中,/>表示需求仓库i在时刻t完成解决的库存需求解决变量。
S108,基于仓库架构中任一仓库的可调出仓库集合,生成任一仓库对应的全局时间调出量数组。
在本说明书实施例中,任一仓库对应的全局时间调出量数组包括任一仓库在不同时刻向任一仓库的可调出仓库集合中每一个仓库调出的库存调出变量,具体而言,是包括任一仓库在当前调拨周期内的每个时刻向任一仓库的可调出仓库集合中每一个仓库调出的库存调出变量。需要注意的是,此时生成的全局时间需求调出量数组中的库存调出变量均为未知变量,用于表征该仓库在当前调拨周期内的任意时刻都有调往至其可调出仓库集合中每一个仓库任意数量库存的可能性(但会受到约束条件的限制),需要在后续进行最优库存调拨策略的求解后才会常量化。任一仓库i对应的全局时间调出量数组中一共包括个元素,其中,/>表示仓库i的可调出仓库集合,/>表示/>的元素数量,/>表示调拨周期时长。
以图3为例,将仓库A-G分别编号为仓库1-7,设,则部分仓库的全局时间调出量数组情况如下:仓库A对应全局时间调出量数组可以表示为/>;仓库B对应的全局时间调出量数组可以表示为/>;仓库D对应的全局时间调出量数组可以表示为/>。其中,/>表示仓库i在时刻t向仓库j调出的库存调出变量。
S110,基于运输时长表以及任一仓库的可调入仓库集合中每一个仓库对应的全局时间调出量数组,生成任一仓库对应的全局时间调入量数组。
在本说明书实施例中,任一仓库对应的全局时间调出量数组包括任一仓库在不同时刻向任一仓库的可调出仓库集合中每一个仓库调出的库存调出变量,任一仓库对应的全局时间调入量数组包括任一仓库在不同时刻调入的来自任一仓库的可调入仓库集合中每一个仓库的库存调入变量;生成任一仓库对应的全局时间调入量数组,包括:
针对任一仓库i,确定仓库i的可调入仓库集合
针对可调入仓库集合中的每一仓库j在不同时刻t向仓库i调出的库存调出变量/>,在仓库i对应的全局时间调入量数组中对应生成仓库i在时刻/>调入的来自仓库j的库存调入变量/>且/>,其中/>为仓库j调往仓库i的运输时长。
在本说明书实施例中,任一仓库对应的全局时间调入量数组具体是包括任一仓库在当前调拨周期内的每个时刻调入的来自任一仓库的可调入仓库集合中每一个仓库的库存调入变量。与确定全局时间调出量数组类似,我们会先针对每个仓库按照其对应的可调入仓库集合初始化所有的库存调入变量,然后再按照上述规则遍历中每个仓库对应的全局时间输出量数组,针对每个库存输出变量对相应的库存调入变量进行赋值。仓库i对应的全局时间调入量数组中一共包括/>个元素,其中,/>表示仓库i的可调出仓库集合,/>表示/>的元素数量,/>表示调拨周期时长。
通过上述步骤,可以基于运输时长表(包含)、任一仓库的可调入仓库集合中各仓库对应的全局时间调出量数组(包含/>),确定出该任一仓库的全局时间调入量数组的具体赋值。需要注意的是,因为我们事先规定了所有的调拨流程需要在一个调拨周期内完成,因此在/>的情况下,可以直接设置/>,而在/>的情况下,应取消这部分/>的定义或定义这部分/>。另外,对于所有初始化后但无法通过/>赋值的/>,因为不存在相应的库存输出变量进行赋值,我们需要将这些/>赋值为0,其中,/>表示仓库i在时刻t调入的来自仓库j的库存调入变量。不难发现,本说明实施例所涉及的任一仓库的全局时间调入量数组中的各库存调入变量最终都可以由相应的库存调出变量或常量0所表示,因此实质上在后续进行最优库存调拨策略的求解时,全局时间调入量数组仅为形式上的决策变量,实质的决策变量仍为各个全局时间调出量数组。
以图3为例,将仓库A-G分别编号为仓库1-7,设,则部分仓库的全局时间调出量数组情况如下:仓库A对应的全局时间调入量数组为空;仓库B对应的全局时间调入量数组可以表示为/>;仓库D对应的全局时间调入量数组可以表示为
S112,基于非需求仓库集合中的任一非需求仓库对应的全局时间调出量数组以及全局时间调入量数组,确定任一非需求仓库对应的全局时间库存量数组。
在本说明书实施例中,任一非需求仓库对应的全局时间库存量数组包括任一非需求仓库在不同时刻的当前库存变量;确定任一非需求仓库对应的全局时间库存量数组,包括:
针对任一非需求仓库i,确定非需求仓库i的可调出仓库集合和可调入仓库集合/>
确定非需求仓库i在不超过时刻的不同时刻t向可调出仓库集合/>中的每一仓库j调出的库存调出变量/>
确定非需求仓库i在不超过时刻的不同时刻t调入的来自可调入仓库集合/>中每一仓库j的库存调入变量/>
根据以下公式确定非需求仓库i在时刻的当前库存变量/>:
其中,为非需求仓库i在当前调拨周期的初始时刻的库存量。
在本说明书实施例中,任一非需求仓库对应的全局时间库存量数组具体包括任一非需求仓库在当前调拨周期的每个时刻的当前库存变量。首先,我们会先针对每个非需求仓库初始化其对应的全局时间库存量数组,非需求仓库i对应的全局时间库存量数组中一共包括个元素,其中,/>表示调拨周期时长。然后,再基于任一非需求仓库对应的全局时间调出量数组和全局时间调入量数组,通过上述公式为该任一非需求仓库对应的全局时间库存量数组中的每个当前库存变量进行赋值。不难发现,对于一个非需求仓库i而言,其在时刻/>的当前库存变量/>即为仓库i在时刻/>之前(含时刻/>)的累计调入库存减去累计调出库存再加上初始库存量。同时,由于全局时间调入量数组中的每个库存调入变量都可以由相应全局时间调出量数组中的库存调出变量或其他已知常量所表示,因此本说明实施例所涉及的任一非需求仓库的全局时间库存量数组中的各当前库存变量最终都可以由相应的库存调出变量和其他已知常量(例如常量0和当前调拨周期的初始时刻的库存量)所表示。
以图3为例,将仓库A-G分别编号为仓库1-7,设,则非需求仓库B对应的全局时间库存量数组可以表示为/>。其中,/>表示非需求仓库i在时刻t的当前库存变量。
S114,基于任一需求仓库对应的全局时间调出量数组、全局时间调入量数组以及全局时间需求解决量数组,确定任一需求仓库对应的全局时间库存量数组。
在本说明书实施例中,任一需求仓库对应的全局时间库存量数组包括任一需求仓库在不同时刻的当前库存变量,任一需求仓库对应的全局时间需求解决量数组包括任一需求仓库在不同时刻完成解决的库存需求解决变量;确定任一需求仓库对应的全局时间库存量数组,包括:
针对任一需求仓库i,确定需求仓库i的可调出仓库集合和可调入仓库集合/>
确定需求仓库i在不超过时刻的不同时刻t向可调出仓库集合/>中的每一仓库j调出的库存调出变量/>
确定需求仓库i在不超过时刻的不同时刻t调入的来自可调入仓库集合/>中每一仓库j的库存调入变量/>
确定需求仓库i在不超过时刻的不同时刻t完成解决的库存需求解决变量/>
根据以下公式确定需求仓库i在时刻的当前库存变量/>:
其中,为需求仓库i在当前调拨周期的初始时刻的库存量。
在本说明书实施例中,任一需求仓库对应的全局时间库存量数组具体包括任一需求仓库在当前调拨周期内的每个时刻的当前库存变量。首先,我们会先针对每个需求仓库初始化其对应的全局时间库存量数组,需求仓库i对应的全局时间库存量数组中一共包括个元素,其中,/>表示调拨周期时长。然后,再基于任一需求仓库对应的全局时间调出量数组和全局时间调入量数组,通过上述公式为该任一需求仓库对应的全局时间库存量数组中的每个当前库存变量进行赋值。不难发现,对于一个需求仓库i而言,其在时刻/>的当前库存变量/>即为仓库i在时刻/>之前(含时刻/>)的累计调入库存减去累计调出库存再减去累计解决库存需求最后加上初始库存量。同时,由于全局时间调入量数组中的每个库存调入变量都可以由相应全局时间调出量数组中的库存调出变量或其他已知常量所表示,因此本说明实施例所涉及的任一需求仓库的全局时间库存量数组中的各当前库存变量最终都可以由相应的库存调出变量、库存需求解决变量和其他已知常量(例如常量0和当前调拨周期的初始时刻的库存量)所表示。
以图3为例,将仓库A-G分别编号为仓库1-7,设,则需求仓库D对应的全局时间库存量数组可以表示为/>。其中,/>表示需求仓库i在时刻t的当前库存变量。
S116,为每个仓库对应的全局时间库存量数组设置中转约束,中转约束用于限制仓库在每个时刻的当前库存变量不小于零。
在本说明书实施例中,我们考虑到库存中转的情况,即仓库之间的库存调拨并不是直接点对点的完成,而是需要经由中间仓库进行中转,例如图3中的仓库A如果需要向仓库D调拨库存,则不能直接将库存调至仓库D,而是需要先将库存调拨至作为中转仓的仓库B,然后再由仓库B调拨库存至仓库D。在上述的存在库存中转的库存调拨过程中,我们需要考虑到每个仓库在各个时刻的库存量动态变化情况,作为一个基础要求,首先需要考虑中转约束,即需要限制每个仓库在每个时刻下的当前库存变量均不小于0,这样才能确保库存调拨的正确进行以及最终生成的最优库存调拨策略的可执行性。具体而言,我们针对每个仓库i,对其全局时间库存量数组中的每个设置以下中转约束:
在一实施例中,除了考虑限制每个仓库在调拨过程中的最低库存量,中转约束还用于限制仓库在每个时刻的当前库存变量不大于该仓库对应的仓库容量上限。具体而言,我们针对每个仓库i,对其全局时间库存量数组中的每个设置以下中转约束:
其中,是指仓库i的容量上限。在本实施例中,充分考虑到了仓库容量上限的约束,从而使得调拨规则更加科学且符合实际。
在本说明书实施例中,方法还包括:
为每个需求仓库对应的全局时间需求解决量数组设置需求解决约束,需求解决约束用于限制需求仓库在所有时刻累计的库存需求解决变量不小于该需求仓库对应的库存需求,约束条件还包括为每个需求仓库对应的全局时间需求解决量数组设置的需求解决约束。
在本说明书实施例中,为了确保最终生成的调拨策略可以解决当前调拨周期的库存调拨需求,我们还可以为每个需求仓库对应的全局时间需求解决量数组设置需求解决约束,使得每个需求仓库在当前调拨周期结束后可以确保解决其对应的库存需求。具体而言,针对每个需求仓库,均存在以下需求解决约束:
其中,D为需求仓库集合,表示需求仓库i在当前调拨周期内的库存需求。特别的,对于/>的需求仓库i,可以不设置上述需求解决约束。本说明书实施例通过设置需求解决约束,强制后续求解得到的最优库存调拨策略能够在执行后解决各需求仓库在当前调拨周期的库存调拨需求,从而确保后续求解得到的调拨策略的有效性。由于本说明书实施例涉及的需求解决约束为必须满足的硬约束,因此只有在事先确保能够在当前调拨周期内以当前的仓库架构解决库存调拨需求的情况下,才能适用本实施例,为每个需求仓库对应的全局时间需求解决量数组设置需求解决约束,否则,如果无法确保能够在当前调拨周期内以当前的仓库架构解决库存调拨需求而强行设置需求解决约束,则会导致后续求解最优库存调拨策略时出现无解的情况。
S118,基于需求仓库集合中每个需求仓库对应的全局时间需求解决量数组确定调拨成本。
在本说明书实施例中,任一需求仓库对应的全局时间需求解决量数组包括任一需求仓库在不同时刻完成解决的库存需求解决变量,调拨成本由每个需求仓库在每个时刻完成解决的库存需求解决变量所表示,其中,时刻靠前的库存需求解决变量作用于降低调拨成本的影响力高于时刻靠后的库存需求解决变量。
在本说明书实施例中,我们在确定最优库存调拨策略时,基本目标在于最小化调拨成本,并将调拨成本最小时的调拨策略作为最优库存调拨策略。在现实情况中,一个库存需求从产生到解决之间的时间间隔(调拨时间)越久,则越可能导致需求的丢失,产生隐藏的时间成本,影响客户的时间满意度。因此,可以通过将调拨成本设置为“时刻靠前的库存需求解决变量作用于降低调拨成本的影响力高于时刻靠后的库存需求解决变量”,以确保在最小化调拨成本的过程中,库存需求越早被解决比库存需求越晚解决对于最小化调拨成本的影响力更大,从而可以吸引调拨策略的求解可以朝向更早解决库存需求的方向进行,使得最优库存调拨策略可以充分考虑到需求解决快慢所带来的时间满意度的优先级。
本说明书实施例所涉及的调拨成本至少包括以下成本中的一项:调拨时间成本、调拨运输成本、调拨分批管理成本、额外调拨时间成本。具体而言,当调拨成本仅包括一项时,调拨成本在数值上等于上述成本中的其中一项,当调拨成本包括至少两项时,调拨成本在数值上等于该至少两项加权求和的结果。
在考虑调拨成本仅包括调拨时间成本的情况下,确定调拨成本包括:
针对每个需求仓库在每一时刻对应的库存需求解决变量进行加权求和,得到调拨时间成本,其中,时刻靠前的库存需求解决变量的权重因子小于时刻靠后的库存需求解决变量的权重因子;
基于调拨时间成本确定调拨成本。
在本说明书实施例中,作为一种“时刻靠前的库存需求解决变量作用于降低调拨成本的影响力高于时刻靠后的库存需求解决变量”的实现方式,可以设置时刻靠前的库存需求解决变量的权重因子小于时刻靠后的库存需求解决变量的权重因子。
进一步的,任一需求仓库在任一时刻对应的库存需求解决变量的权重因子由任一需求仓库对应的仓库优先级因子与任一时刻对应的时间优先级因子确定,其中,任一时刻对应的时间优先级因子由时间成本经验函数所确定,时间成本经验函数用于表征时间优先级因子关于调拨时间的关系且在定义域上单调递增,时间成本经验函数由历史统计的调拨时间与退货率之间的关系生成。
在本说明书实施例中,我们可以统计库存商品的退货率与库存需求产生后所间隔的时间(即调拨时间)之间的关系,从而计算出单位数量库存商品在某调拨时间下所损失的毛利润=某调拨时间下的退货率*单位数量的商品价格,并基于上述关系构建时间成本经验函数,从而使得我们可以通过输入调拨时间来估测可能损失的毛利润,我们将这部分可能损失的毛利润称之为时间成本。例如,假设单位数量的商品价格为2000元,我们基于历史统计的数据发现在库存需求产生3个时间单位后,该库存需求对应的商品的退货率为50%,这意味着如果在当前调拨周期开始后的第3个时间单位才解决该库存需求,将产生的时间成本为2000*50%=1000元,而时间优先级因子则与时间成本正相关,例如可以设置时间优先级因子为时间成本乘以一个非负调整因子。
另外,时间成本经验函数描述的是调拨时间与时间优先级因子之间的单调递增关系,时间成本经验函数的定义域为,值域为/>,/>,/>为历史统计的具有数据有效性的最大调拨时间且/>(至少满足/>),/>为历史统计的具有数据有效性的最大时间优先级因子。调拨时间越长,时间优先级因子则越大,在此调拨时间解决的单位库存需求解决变量对应的时间成本就越高,最小化调拨成本时就会越避免在调拨时间短的时刻解决库存需求,而偏向在调拨时间短的时刻解决库存需求,从而实现时刻靠前的库存需求解决变量的权重因子小于时刻靠后的库存需求解决变量的权重因子。
类似的,同样都是解决单位数量的库存需求,在仓库优先级因子相对较大的需求仓库解决相对于在仓库优先级因子相对较小的需求仓库的时间成本更高,因此最小化调拨成本时就会越避免在仓库优先级因子小的需求仓库解决库存需求,而会优先在仓库优先级因子大的需求仓库解决库存需求。从而确保最优库存调拨策略能够考虑到解决某些特定需求仓库产生的库存需求的优先性。
进一步的,调拨时间成本G在已为每个需求仓库对应的全局时间需求解决量数组设置需求解决约束的情况下,通过以下公式确定:
/>
其中,D为需求仓库集合,为需求仓库i在时刻t完成解决的库存需求解决变量,为调拨周期时长,/>为需求仓库i对应的仓库优先级因子,/>为时刻t对应的时间优先级因子,/>用于表征时间成本经验函数在时刻t对应的输出值,需求解决约束用于限制需求仓库在所有时刻累计的库存需求解决变量不小于该需求仓库对应的库存需求,约束条件还包括为每个需求仓库对应的全局时间需求解决量数组设置的需求解决约束;
调拨时间成本G在尚未为每个需求仓库对应的全局时间需求解决量数组设置需求解决约束的情况下,通过以下公式确定:
其中,为需求仓库i对应的仓库优先级因子,/>为时刻t对应的时间优先级因子。
在一实施例中,如果已经为每个需求仓库对应的全局时间需求解决量数组设置需求解决约束,如前,这意味着已经可以确保能够在当前调拨周期内以当前的仓库架构解决库存调拨需求,因此可以将每个仓库的仓库优先级因子设置为非负数,同时将每个时刻t对应的时间优先级因子也设置为随t单调递增的非负数/>。同时,因为/>是单调递增的,因此可以确保调拨时间越长,时间优先级因子越大,而库存调拨需求是固定且可实现的,因此在最小化调拨成本的过程中会导致任一需求仓库的总体库存需求的解决向调拨时间更小的库存需求解决变量上集中。
在另一实施例中,如果尚未为每个需求仓库对应的全局时间需求解决量数组设置需求解决约束,这意味着无法确保在当前调拨周期内以当前的仓库架构解决库存调拨需求,同时在没有需求解决约束的情况下如果仍然以非负的为时刻t的时间优先级,则会导致出现最终求解出的最优库存调拨策略中所有的/>均为0的情况,此时执行该最优调拨策略实际上无法解决任何库存需求。为了避免出现上述无效调拨策略的情况,我们可以通过将每个仓库的仓库优先级因子设置为非负数/>,同时将每个时刻t对应的时间优先级因子设置为随t单调递增的负数/>。由此一来,调拨时间越长,时间优先级因子的绝对值越小但仍为负数,从而使得即使库存调拨需求是无法完全实现的,但在最小化调拨成本的过程中仍然会导致任一需求仓库的库存需求的解决向调拨时间更小的库存需求解决变量上集中。
当然,在已经为每个需求仓库对应的全局时间需求解决量数组设置需求解决约束的情况下,也可以设置为需求仓库i对应的仓库优先级因子,/>为时刻t对应的时间优先级因子。
在考虑调拨成本仅包括调拨时间成本、调拨运输成本、调拨分批管理成本的情况下,确定调拨成本包括:
基于每个需求仓库对应的全局时间需求解决量数组确定调拨时间成本;
基于仓库架构的运输成本表与每个仓库对应的全局时间调出量数组,确定调拨运输成本,运输成本表包括仓库架构中的任意一个仓库将单位库存量的库存调往其的可调出仓库集合中每一个仓库的运输成本;
基于仓库架构的分批管理成本表、每个仓库对应的全局时间调出量数组与全局时间调入量数组,确定调拨分批管理成本,分批管理成本表包括仓库架构中的任意一个仓库每次调出库存的调出管理成本以及每次调入库存的调入管理成本;
将调拨时间成本、调拨运输成本与调拨分批管理成本加权求和得到调拨成本。
在本说明书实施例中,任一仓库对应的全局时间调出量数组包括任一仓库在不同时刻向任一仓库的可调出仓库集合中每个仓库调出的库存调出变量,任一仓库对应的全局时间调入量数组包括任一仓库在不同时刻调入的来自任一仓库的可调入仓库集合中每一个仓库的库存调入变量;确定调拨运输成本,包括:
针对任一仓库i,确定仓库i的可调出仓库集合和可调入仓库集合/>
确定仓库i在不同时刻t向可调出仓库集合中的每一仓库j调出的库存调出变量/>,确定仓库i在不同时刻t调入的来自可调入仓库集合/>中每一仓库j的库存调入变量/>
根据以下公式确定调拨运输成本Q:
其中,为仓库i将单位库存量的库存调往仓库j的运输成本,/>为仓库架构中的仓库总数,/>为调拨周期时长。
在本说明书实施例中,为了求解调拨运输成本,我们需要获取仓库架构的运输成本表,该运输成本表包括仓库架构中的任意一个仓库将单位库存量的库存调往其的可调出仓库集合中每一个仓库的运输成本。例如,运输成本表中记录的一项为:仓库A将一个库存调往仓库B的运输成本为a,那么可以计算出仓库A将b个库存调往仓库B的运输成本为a*b。
本说明书实施例通过在调拨成本中设置调拨运输成本,使得最优库存调拨策略在成本上考虑到单位数量的库存在库存调拨的运输过程上所产生的固定运输成本,有助于降低库存调拨的现实综合成本。
另外,根据以下公式确定调拨分批管理成本P:
其中,为仓库i每次调出库存的调出管理成本,/>为仓库i每次调入库存的调入管理成本,/>
在本说明书实施例中,为了求解调拨分批管理成本,我们需要获取仓库架构的分批管理成本表,它包括仓库架构中的任意一个仓库每次调出库存的调出管理成本以及每次调入库存的调入管理成本。例如,分批管理成本表中记录的一项为:仓库A调出一批库存的调出管理成本为a,仓库B调入一批库存的调入管理成本为b,而那么可以计算出仓库A将x(x为正整数)个库存一次性调往仓库B所产生的分批管理成本为a+b,而仓库A将x个库存分为2次调往仓库B所产生的分批管理成本为2*(a+b)。
本说明实施例中提出了调拨分批管理成本的概念,该成本包括调出管理成本与调入管理成本。其中,调出管理成本体现为一批库存(只需满足单次库存数量大于零即可视为一批库存,而与具体库存数量无关)单次出库、装配、打包、装载、记录等与库存调出相关的管理运营成本,每次有仓库发生库存调出就可以视为产生一次该固定成本;调入管理成本体现为一批库存单次卸载、拆分、拆解、入库、记录等与库存调入相关的管理运营成本,每次有仓库发生库存调入就可以视为产生一次该固定成本。通过在调拨成本中设置调拨分批管理成本,使得最优库存调拨策略在成本上考虑到因分批调入调出库存而导致的管理成本,有助于降低库存调拨的现实综合成本。
需要注意的是,在考虑到调拨成本包括调拨运输成本和/或调拨分批管理成本的情况下,我们需要为每个需求仓库对应的全局时间需求解决量数组设置需求解决约束,如此在求解最佳调拨策略时可以避免出现无效调拨策略的情况(即因缺乏有效约束导致出现最终求解出的最优库存调拨策略中所有的和/>均为0的情况,此时执行该最佳调拨策略实际上无法解决任何库存需求),从而使最佳调拨策略能够实现在最终完成对各需求仓库的库存需求的解决的情况下最小化调拨成本的目标。
S120,将每个仓库对应的全局时间调出量数组以及每个需求仓库对应的全局时间需求解决量数组作为决策变量,将为每个仓库对应的全局时间库存量数组设置的中转约束作为约束条件,将调拨成本作为目标函数后,求解得到每个仓库对应的第一最佳全局时间调出量数组以及每个需求仓库对应的第一最佳全局时间需求解决量数组。
在本说明书实施例中,可以通过线性规划来求解最优库存调拨策略,例如通过混合整数规划来求解。具体而言,是通过对场景建模后,设置相应的决策变量、约束条件以及目标函数,然后利用求解器进行求解,从而找出全局最优的决策变量解,使得在这样的决策变量解下能够使得目标函数的值最小化。本说明书实施例所涉及的最优库存调拨策略即上述的最优的决策变量解,包括每个仓库对应的第一最佳全局时间调出量数组以及每个需求仓库对应的第一最佳全局时间需求解决量数组。
S122,根据每个仓库对应的第一最佳全局时间调出量数组以及每个需求仓库对应的第一最佳全局时间需求解决量数组,控制仓库架构中的仓库执行针对库存调拨需求的库存调拨。
求解得到的每个仓库对应的第一最佳全局时间调出量数组以及每个需求仓库对应的第一最佳全局时间需求解决量数组实际上已经完成了常量化的过程,即第一最佳全局时间调出量数组中包括的每个库存调出变量均已完成赋值(常量化)成为库存调出常量,同时第一最佳全局时间需求解决量数组中包括的每个库存需求解决变量也已完成赋值成为库存需求解决常量。最优库存调拨策略指出了仓库架构在当前调拨周期内如何进行库存调拨和解决库存需求的全局策略,只需要根据任一仓库对应的第一最佳全局时间调出量数组去控制该任一仓库的调拨行为,根据任一需求仓库对应的第一最佳全局时间需求解决量数组控制该任一需求仓库的库存需求解决行为,就能够以最小化的调拨成本实现当前调拨周期的库存调拨需求。
通过上述技术方案,生成任一仓库对应的全局时间调出量数组,基于运输时长表以及任一仓库的可调入仓库集合中每一个仓库对应的全局时间调出量数组,生成任一仓库对应的全局时间调入量数组,基于非需求仓库集合中的任一非需求仓库对应的全局时间调出量数组以及全局时间调入量数组,确定任一非需求仓库对应的全局时间库存量数组,基于任一需求仓库对应的全局时间调出量数组、全局时间调入量数组以及全局时间需求解决量数组,确定任一需求仓库对应的全局时间库存量数组,为每个仓库对应的全局时间库存量数组设置中转约束,中转约束用于限制仓库在每个时刻的当前库存变量不小于零,基于需求仓库集合中每个需求仓库对应的全局时间需求解决量数组确定调拨成本,将每个仓库对应的全局时间调出量数组以及每个需求仓库对应的全局时间需求解决量数组作为决策变量,将为每个仓库对应的全局时间库存量数组设置的中转约束作为约束条件,将调拨成本作为目标函数后,求解得到每个仓库对应的第一最佳全局时间调出量数组以及每个需求仓库对应的第一最佳全局时间需求解决量数组,以此控制仓库架构中的仓库执行针对库存调拨需求的库存调拨。在本说明书实施例中,通过在建模中充分考虑了库存中转的场景,为每个需求仓库与每个非需求仓库定义全局时间库存量数组的表示并设置相应的中转约束,从而在时间维度上建立了约束条件,使得最终生成的调拨方案能够适用于存在库存中转的调拨场景;同时通过每个需求仓库对应的全局时间需求解决量数组确定调拨成本,在成本上考虑到因需求解决快慢而导致的时间成本,有助于提高库存调拨的时间满意度。
通常情况下,只有在每个库存调拨周期的开始时刻才会生成当前库存调拨周期的最优库存调拨策略,然后再基于该最优库存调拨策略进行一次持续一个调拨周期时长的库存调拨,之后会进入下一个库存调拨周期重复上述过程,如此循环往复(通常情况下每个库存调拨周期的调拨周期时长均相同)。然而,在一些特殊情况下,每隔一个库存调拨周期就生成一次最优库存调拨策略并执行一次库存调拨的节奏可能发生变化。例如,在某一个库存调拨周期的中途临时性地生成了一些新的库存调拨需求,并要求此时重新生成一次最优库存调拨策略并根据重新生成的最优库存调拨策略重新安排库存调拨计划,这相当于在某个库存调拨周期的中途时刻强制提前开启了下一轮新的库存调拨周期(而通常情况下是在每个库存调拨周期的结束时刻正常开启下一轮新的库存调拨周期),导致上一个调拨周期的调拨周期时长被缩短。
上述的特殊情况称为紧急调拨情况,在这种情况下,我们不仅需要考虑新调拨周期开启时新生成的库存调拨需求,还需要考虑因上一个调拨周期的调拨策略的突然中断而尚未在上一个调拨周期内完成解决的库存剩余需求,我们需要考虑这部分剩余需求同样也应该在新开启的调拨周期内完成,同时在考虑调拨成本时可以进行综合考虑,除了对为解决新生成的库存调拨需求所带来的调拨成本予以考虑,还可以将为解决之前残余的库存剩余需求所导致的调拨成本考虑在内。另外,虽然紧急调拨情况会强制中断上一个调拨周期的调拨计划,但是对于那些已经完成的库存调出行为却没有约束力,这意味着在新的库存调拨周期中可能会陆陆续续的有一些库存因上一个调拨周期内已执行的调拨任务而被调入到一些仓库中,而这些来自上一个调拨周期的库存调入常量则应该在确定各仓库在新调拨周期的各时刻的当前库存变量时被考虑在内。
为解决紧急调拨情况下的库存调拨规划,我们提出了以下方案以对原始的库存调拨方法进行改进,当然,以下方法也适用于通常调拨场景(上一个调拨周期持续调拨周期时长后正常结束并进入新的调拨周期,此时)下因上一个调拨周期的库存调拨未完成所有上一个调拨周期所应完成的全部库存调拨需求的情况。在本说明书实施例中,方法还包括:
S1011,在当前调拨周期的初始时刻,获取上一个调拨周期的库存调拨剩余需求,库存调拨剩余需求包括需求仓库集合中各需求仓库在上一个调拨周期中尚未完成解决的库存剩余需求。
在本说明书实施例中,各需求仓库在上一个调拨周期中尚未完成解决的库存剩余需求可以通过在上一个调拨周期对应的库存调拨需求和上一个调拨周期的初始时刻到当前调拨周期的初始时刻之间各需求仓库的累计解决的库存需求解决量来确定。具体而言,针对任一需求仓库,我们首先获取上一个调拨周期所预设的用于表征上个调拨周期所原本应该解决的库存需求,同时收集当前时刻(即当前调拨周期的初始时刻)下该任一需求仓库在上一个调拨周期中已经累计解决的库存需求解决常量,并用该任一需求仓库在上一个调拨周期的库存需求减去上述累计解决的库存需求解决常量得到该任一需求仓库的库存剩余需求。
S1012,获取每个仓库在上一个调拨周期对应的第二最佳全局时间调出量数组,生成任一仓库在上一个调拨周期对应的第二最佳全局时间调入量数组。
如前,上一个调拨周期对应的第二最佳全局时间调出量数组是指在上一个调拨周期的初始时刻所生成的针对上一个调拨周期的最佳调拨策略,它已经完成了常量化,同时作为库存调拨计划也已经完成了部分执行,指导了从上一个调拨周期的初始时刻到指到当前时刻的库存调拨任务。而我们可以通过第二最佳全局时间调出量数组来分析出当前时刻有哪些库存调拨任务已经完成,哪些没有完成,哪些库存已经完成调出但还在运输途中而并未调入对应的仓库。对于这些已经发生调出还在运输途中的库存,我们需要将其作为常量考虑到对当前调拨周期的各仓库全局时间的库存量的确定之中。
具体而言,我们可以首先确定出第二最佳全局时间调入量数组,也即如果按照上一个调拨周期的第二最佳全局时间调出量数组在当前时刻之前(不含当前时刻)部分执行库存调拨,最终所导致的每个仓库在各时刻下所调入的库存调入常量,从而构成第二最佳时间调入量数组。第二最佳时间调入量数组一般不仅包括当前时刻之前的库存调入常量,也包括当前时刻之后(含当前时刻)的库存调入常量,而那些当前时刻之后(即作为未来的当前调拨周期)的库存调入常量就是会影响各仓库在当前调拨周期内各时刻的库存量。
在本说明书实施例中,任一仓库对应的第二全局时间调出量数组包括任一仓库在上一个调拨周期内不同时刻向任一仓库的可调出仓库集合中每一个仓库调出的库存调出常量,任一仓库对应的第二全局时间调入量数组包括任一仓库在上一个调拨周期内不同时刻调入的来自任一仓库的可调入仓库集合中每一个仓库的库存调入常量;生成任一仓库在上一个调拨周期对应的第二最佳全局时间调入量数组,包括:
针对任一仓库i,确定仓库i的可调入仓库集合
针对可调入仓库集合中的每一仓库j在上一个调拨周期内小于时刻/>的不同时刻t向仓库i调出的库存调出常量/>,在仓库i对应的第二最佳全局时间调入量数组中对应生成仓库i在时刻/>调入的来自仓库j的库存调入常量/>,其中/>为仓库j调往仓库i的运输时长,/>为当前调拨周期的初始时刻与上一个调拨周期的初始时刻之间的间隔时长,同时/>作为时刻时具体为当前调拨周期的初始时刻在上一个调拨周期中的时刻,其在数值上等于当前调拨周期的初始时刻与上一个调拨周期的初始时刻之间的间隔时长,/>
需要注意的是,对于第二最佳全局时间调出量数组和第二最佳全局时间调入量数组而言,它们的时间基准(即所对应的时刻)是以上一个调拨周期的起始时刻。因此,第二最佳全局时间调出量数组中的/>用于表征仓库i在上一个调拨周期的初始时刻向仓库j调出的库存调出常量,第二最佳全局时间调入量数组中的/>用于表征仓库i在上一个调拨周期的初始时刻调入的来自仓库j的库存调入常量。
S1013,针对需求仓库集合中的任一需求仓库,生成任一需求仓库对应的全局时间剩余需求解决量数组。
本说明书实施例所涉及的任一需求仓库对应的全局时间剩余需求解决量数组包括任一需求仓库在不同时刻完成解决的库存剩余需求解决变量,具体包括任一需求仓库在当前调拨周期内各个时刻完成解决的库存剩余需求解决变量。与设置前述的需求仓库对应的全局时间需求解决量数组的方式与目的类似,由于上一个调拨周期所剩余的库存剩余需求也被要求尽量在当前调拨周期内完成,因此也需要在当前调拨周期的全局时间内设计一整套库存剩余需求解决变量专门用于解决各库存的库存剩余需求。
类似的,此时生成的全局时间剩余需求解决量数组中的库存剩余需求解决变量均为未知变量,用于表征在当前调拨周期内的任意时刻都有解决任意数量库存剩余需求的可能性(但会受到约束条件的限制),需要在后续进行最优库存调拨策略的求解后才会常量化。任一需求仓库对应的全局时间剩余需求解决量数组一共包括个数组,/>表示调拨周期时长。
以图3为例,将仓库A-G分别编号为仓库1-7,设,则需求仓库D对应的全局时间剩余需求解决量数组可以表示为/>。其中,/>表示需求仓库i在时刻t完成解决的库存剩余需求解决变量。
在本说明书实施例中,确定任一非需求仓库对应的全局时间库存量数组,包括:
基于任一非需求仓库对应的全局时间调出量数组、全局时间调入量数组以及第二最佳全局时间调入量数组,确定任一非需求仓库对应的全局时间库存量数组。
具体而言,任一非需求仓库对应的全局时间库存量数组包括任一非需求仓库在不同时刻的当前库存变量;确定任一非需求仓库对应的全局时间库存量数组,包括:
针对任一非需求仓库i,确定非需求仓库i的可调出仓库集合和可调入仓库集合/>
确定非需求仓库i在不超过时刻的不同时刻t向可调出仓库集合/>中的每一仓库j调出的库存调出变量/>
确定非需求仓库i在不超过时刻的不同时刻t调入的来自可调入仓库集合/>中每一仓库j的库存调入变量/>
确定非需求仓库i在上一个调拨周期内不超过时刻且不小于时刻/>的不同时刻t调入的来自可调入仓库集合/>中每一仓库j的库存调入常量/>
根据以下公式确定非需求仓库i在时刻的当前库存变量/>:
其中,为非需求仓库i在当前调拨周期的初始时刻的库存量。
相较于原始的库存调拨方法中非需求仓库的库存量,本改进方案中考虑到已经发生调出还在运输途中的库存,而这部分库存被作为增项加入到库存量的确定中,即作为因此引入的调整项。
在本说明书实施例中,确定任一需求仓库对应的全局时间库存量数组,包括:
基于任一需求仓库对应的全局时间调出量数组、全局时间调入量数组、第二最佳全局时间调入量数组、全局时间需求解决量数组以及全局时间剩余需求解决量数组,确定任一需求仓库对应的全局时间库存量数组。
具体而言,任一需求仓库对应的全局时间库存量数组包括任一需求仓库在不同时刻的当前库存变量,任一需求仓库对应的全局时间剩余需求解决量数组包括任一需求仓库在不同时刻完成解决的库存剩余需求解决变量;确定任一需求仓库对应的全局时间库存量数组,包括:
针对任一需求仓库i,确定需求仓库i的可调出仓库集合和可调入仓库集合/>
确定需求仓库i在不超过时刻的不同时刻t向可调出仓库集合/>中的每个仓库j调出的库存调出变量/>
确定需求仓库i在不超过时刻之前的不同时刻t调入的来自可调入仓库集合/>中每个仓库j的库存调入变量/>
确定非需求仓库i在上一个调拨周期内不超过时刻且不小于时刻/>的不同时刻t调入的来自可调入仓库集合/>中每一仓库j的库存调入常量/>
确定需求仓库i在不超过时刻之前的不同时刻t完成解决的库存需求解决变量;/>
确定需求仓库i在不超过时刻之前的不同时刻t完成解决的库存剩余需求解决变量/>
根据以下公式确定需求仓库i在时刻的当前库存变量/>:
其中,为需求仓库i在当前调拨周期的初始时刻的库存量。
相较于原始的库存调拨方法中非需求仓库的库存量,本改进方案中考虑到已经发生调出还在运输途中的库存,而这部分库存被作为增项加入到库存量的确定中,即作为因此引入的调整项;除此之外,本改进方案还考虑到可以对库存造成影响的为解决库存剩余需求而产生的库存剩余需求解决变量,这部分库存的解决被作为减项加入到库存量的确定中,/>即作为因此引入的调整项。
在本说明书实施例中,方法还包括:
为每个需求仓库对应的全局时间剩余需求解决量数组设置剩余需求解决约束,剩余需求解决约束用于限制需求仓库在所有时刻累计的库存剩余需求解决变量不小于该需求仓库对应的库存剩余需求。
在本说明书实施例中,为了确保最终生成的调拨策略可以解决上一个调拨周期残余的库存调拨剩余需求,我们还可以为每个需求仓库对应的全局时间剩余需求解决量数组设置剩余需求解决约束,使得每个需求仓库在当前调拨周期结束后可以确保解决其对应的库存剩余需求。具体而言,针对每个需求仓库,均存在以下剩余需求解决约束:
其中,D为需求仓库集合,表示需求仓库i的库存剩余需求。特别的,对于/>的需求仓库i,可以不设置上述剩余需求解决约束。本说明书实施例通过设置剩余需求解决约束,强制后续求解得到的最优库存调拨策略能够在执行后解决各需求仓库从上一个调拨周期继承的库存调拨剩余需求,从而确保后续求解得到的调拨策略的有效性。
在考虑到调拨成本包括调拨运输成本和/或调拨分批管理成本,且考虑到为解决库存剩余需求所产生的调拨运输成本与调拨分批管理成本时,我们需要为每个需求仓库对应的全局时间剩余需求解决量数组设置剩余需求解决约束,如此在求解最佳调拨策略时可以避免出现无效调拨策略的情况(即因缺乏有效约束导致出现最终求解出的最优库存调拨策略中所有的均为0的情况,此时执行该最佳调拨策略实际上无法解决任何库存剩余需求),从而使最佳调拨策略能够实现在最终完成对各需求仓库的库存剩余需求的解决的情况下最小化调拨成本的目标。
如前,在考虑调拨成本时,我们可以额外考虑为解决库存调拨剩余需求所导致的调拨成本。例如,在考虑调拨成本仅包括调拨时间成本和额外调拨时间成本的情况下,确定调拨成本,包括:
基于每个需求仓库对应的全局时间需求解决量数组确定调拨时间成本,基于每个需求仓库对应的全局时间剩余需求解决量数组确定额外调拨时间成本,基于调拨时间成本与额外调拨时间成本确定调拨成本。例如,可以将调拨时间成本与额外调拨时间成本加权求和直接得到调拨成本,当然,在考虑调拨成本仅包括调拨时间成本和额外调拨时间成本的基础上,我们还可以额外考虑调拨运输成本和/或调拨分批管理成本,从而设置调拨成本为被考虑的各个成本加权求和后的结果。
在本说明书实施例中,同时考虑了库存调拨需求所决定的调拨时间成本和库存调拨剩余需求所决定的额外调拨时间成本,从而完善了调拨成本的设置,使得在这种调拨成本的设置下所求解得到的最优调拨策略可以在解决库存需求与解决库存剩余需求之间做出决断与平衡,更加符合紧急调拨场景的要求。
在本说明书实施例中,任一需求仓库对应的全局时间剩余需求解决量数组包括任一需求仓库在不同时刻完成解决的库存剩余需求解决变量,额外调拨时间成本由每个需求仓库在每个时刻完成解决的库存剩余需求解决变量所表示,其中,时刻靠前的库存剩余需求解决变量作用于降低调拨成本的影响力高于时刻靠后的库存剩余需求解决变量,具有相同时刻的库存剩余需求解决变量相较于库存需求解决变量作用于降低调拨成本的影响力更高。
在本说明书实施例中,一方面,通过设置“时刻靠前的库存剩余需求解决变量作用于降低调拨成本的影响力高于时刻靠后的库存剩余需求解决变量”,可以确保在最小化调拨成本的过程中,库存剩余需求越早被解决比库存剩余需求越晚解决对于最小化调拨成本的影响力更大,从而可以吸引调拨策略的求解可以朝向更早解决库存剩余需求的方向进行,使得最优库存调拨策略可以充分考虑到剩余需求解决快慢所带来的时间满意度的优先级;另一方面,由于在现实情况中,来自上一个调拨周期所剩余的库存剩余需求所产生的时间总是早于库存需求所产生的时刻(即上一个调拨周期的初始时刻总早于当前调拨周期的初始时刻),所以相对于解决当前调拨周期才生成的库存调拨需求,解决上一个调拨周期的库存调拨剩余需求显得更加紧迫,
因此,可以通过设置“具有相同时刻的库存剩余需求解决变量相较于库存需求解决变量作用于降低调拨成本的影响力更高”,以确保在最小化调拨成本的过程中,库存剩余需求的解决比库存需求的解决对于最小化调拨成本的影响力更大,这意味着如果任一需求仓库在任一时刻下,解决库存需求和解决库存剩余需求都是可选择的,那么该任一需求仓库会优先选择解决库存剩余需求,从而可以吸引调拨策略的求解可以朝向优先解决库存剩余需求的方向进行,使得最优库存调拨策略可以充分考虑到库存剩余需求与库存需求之间的优先级差异,带来更高的综合时间满意度。
在本说明实施例中,确定额外调拨时间成本包括:
针对每个需求仓库在每一时刻对应的库存剩余需求解决变量进行加权求和,得到额外调拨时间成本,其中,时刻靠前的库存剩余需求解决变量的权重因子小于时刻靠后的库存剩余需求解决变量的权重因子,且具有相同时刻的库存剩余需求解决变量相较于库存需求解决变量在对应的权重因子上更小。
本说明书实施例作为一种“时刻靠前的库存需求解决变量作用于降低调拨成本的影响力高于时刻靠后的库存需求解决变量”以及“具有相同时刻的库存剩余需求解决变量相较于库存需求解决变量作用于降低调拨成本的影响力更高”的实现方式。
在本说明书实施例中,任一需求仓库对应的全局时间剩余需求解决量数组包括任一需求仓库在不同时刻完成解决的库存剩余需求解决变量;
额外调拨时间成本在已为每个需求仓库对应的全局时间剩余需求解决量数组设置剩余需求解决约束的情况下,通过以下公式确定:
其中,D为需求仓库集合,为需求仓库i在时刻t完成解决的库存剩余需求解决变量,/>为调拨周期时长,/>为需求仓库i对应的仓库优先级因子,为时刻t对应的时间优先级因子,/>用于表征时间成本经验函数在时刻/>对应的输出值,/>为当前调拨周期的初始时刻与上一个调拨周期的初始时刻之间的间隔时长,剩余需求解决约束用于限制需求仓库在所有时刻累计的库存剩余需求解决变量不小于该需求仓库对应的库存剩余需求。
额外调拨时间成本在未为每个需求仓库对应的全局时间剩余需求解决量数组设置剩余需求解决约束的情况下,通过以下公式确定:
其中,为需求仓库i对应的仓库优先级因子,/>为时刻t对应的时间优先级因子。
在一实施例中,如果已经为每个需求仓库对应的全局时间剩余需求解决量数组设置剩余需求解决约束,如前,这意味着已经可以确保能够在当前调拨周期内以当前的仓库架构解决库存调拨剩余需求。每个时刻t对应的时间优先级因子为随t单调递增的非负数,因为/>是单调递增的,因此可以确保调拨时间越长,时间优先级因子越大,而库存调拨剩余需求是固定且可实现的,因此在最小化调拨成本的过程中会导致任一需求仓库的总体库存剩余需求的解决向调拨时间更小的库存剩余需求解决变量上集中。
另外,在使用上述公式确定额外调拨时间成本的情况下,调拨时间成本应该由公式/>所确定。在这种情况下,具有相同时刻的库存剩余需求解决变量相较于库存需求解决变量作用于降低调拨成本的影响力是不确定的,因为同一时刻下针对解决库存需求的时间优先级因子/>与针对解决库存剩余需求的时间优先级因子/>之间的关系是不确定的。因此,本说明书实施例中更加强调最优调拨策略能够在库存需求与库存剩余需求之间的解决上进行平衡,而不是简单预设解决上的优先级关系。/>
本说明书实施例中确定额外调拨时间成本的公式本质上是忽略了库存剩余需求因在上个调拨周期内的未解决而产生的调拨时间成本,而是在时间成本经验函数的基础上以当前时刻为基点重新构建一个区别于时间成本经验函数的新的时间成本确定函数,并根据这个新的时间成本确定函数来确定不同时刻下解决库存剩余需求的额外调拨时间成本。如果将整体看作该时间成本确定函数/>,则/>本质上是将时间成本经验函数/>向左平移/>并向下平移/>后的结果。
由于通常为S型增长曲线,因此在上述公式的设计下,来自上个周期的库存调拨剩余需求相较于库存调拨需求而言不一定会被优先解决,而是会得到一个应有的平衡。由于上述公式设计的基础前提在于基于历史数据的经验所统计得到的时间成本经验函数,因此,本说明书实施例能够使得最终求解得到的最优库存调拨策略达成现实经济意义上的调拨时间成本最小化。
在另一实施例中,如果尚未为每个需求仓库对应的全局时间剩余需求解决量数组设置剩余需求解决约束,与为调拨时间成本设计公式的理由类似,为了避免因无法确保在当前调拨周期内以当前的仓库架构解决库存调拨剩余需求而出现无效调拨策略的情况,我们可以将每个时刻t对应的时间优先级因子设置为随t单调递增的负数/>。由此一来,调拨时间越长,时间优先级因子的绝对值越小但仍为负数,从而使得即使库存调拨剩余需求是无法完全实现的,但在最小化调拨成本的过程中仍然会导致任一需求仓库的库存剩余需求的解决向调拨时间小的库存剩余需求解决变量上集中。
另外,在使用上述公式确定额外调拨时间成本的情况下,调拨时间成本应该由公式所确定。类似的,在这种情况下,具有相同时刻的库存剩余需求解决变量相较于库存需求解决变量作用于降低调拨成本的影响力是不确定的,因为同一时刻下针对解决库存需求的时间优先级因子/>与针对解决库存剩余需求的时间优先级因子/>之间的关系是不确定的。因此,本说明书实施例同样强调最优调拨策略能够在库存需求与剩余库存需求之间的解决上进行平衡,而不是简单预设解决上的优先级关系。
当然,在已经为每个需求仓库对应的全局时间剩余需求解决量数组设置剩余需求解决约束的情况下,也可以设置为需求仓库i对应的仓库优先级因子,为时刻t对应的时间优先级因子。
图4示意性示出了根据本申请实施例的一种库存调拨装置的结构框图。如图4所示,本申请实施例提供一种库存调拨装置,可以包括:
存储器410,被配置成存储指令;以及
处理器420,被配置成从存储器410调用指令以及在执行指令时能够实现上述任意一项的库存调拨方法。
通过上述技术方案,生成任一仓库对应的全局时间调出量数组,基于运输时长表以及任一仓库的可调入仓库集合中每一个仓库对应的全局时间调出量数组,生成任一仓库对应的全局时间调入量数组,基于非需求仓库集合中的任一非需求仓库对应的全局时间调出量数组以及全局时间调入量数组,确定任一非需求仓库对应的全局时间库存量数组,基于任一需求仓库对应的全局时间调出量数组、全局时间调入量数组以及全局时间需求解决量数组,确定任一需求仓库对应的全局时间库存量数组,为每个仓库对应的全局时间库存量数组设置中转约束,中转约束用于限制仓库在每个时刻的当前库存变量不小于零,基于需求仓库集合中每个需求仓库对应的全局时间需求解决量数组确定调拨成本,将每个仓库对应的全局时间调出量数组以及每个需求仓库对应的全局时间需求解决量数组作为决策变量,将为每个仓库对应的全局时间库存量数组设置的中转约束作为约束条件,将调拨成本作为目标函数后,求解得到每个仓库对应的第一最佳全局时间调出量数组以及每个需求仓库对应的第一最佳全局时间需求解决量数组,以此控制仓库架构中的仓库执行针对库存调拨需求的库存调拨。在本说明书实施例中,通过在建模中充分考虑了库存中转的场景,为每个需求仓库与每个非需求仓库定义全局时间库存量数组的表示并设置相应的中转约束,从而在时间维度上建立了约束条件,使得最终生成的调拨方案能够适用于存在库存中转的调拨场景;同时通过每个需求仓库对应的全局时间需求解决量数组确定调拨成本,在成本上考虑到因需求解决快慢而导致的时间成本,有助于提高库存调拨的时间满意度。
本申请实施例还提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行上述的库存调拨方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器A01、网络接口A02、存储器(图中未示出)和数据库(图中未示出)。其中,该计算机设备的处理器A01用于提供计算和控制能力。该计算机设备的存储器包括内存储器A03和非易失性存储介质A04。该非易失性存储介质A04存储有操作系统B01、计算机程序B02和数据库(图中未示出)。该内存储器A03为非易失性存储介质A04中的操作系统B01和计算机程序B02的运行提供环境。该计算机设备的数据库用于存储库存调拨方法的数据。该计算机设备的网络接口A02用于与外部的终端通过网络连接通信。该计算机程序B02被处理器A01执行时以实现一种库存调拨方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (23)

1.一种库存调拨方法,其特征在于,所述方法应用于包含需求仓库集合与非需求仓库集合的仓库架构,所述方法包括:
根据所述仓库架构中每个仓库的可调出仓库集合,确定所述每个仓库的可调入仓库集合;
获取库存调拨需求以及所述仓库架构的运输时长表,所述库存调拨需求包括所述需求仓库集合中各需求仓库的库存需求,所述运输时长表包括所述仓库架构中的任意一个仓库调往其的可调出仓库集合中每一个仓库的运输时长;
针对所述需求仓库集合中的任一需求仓库,生成所述任一需求仓库对应的全局时间需求解决量数组,其中,任一需求仓库对应的全局时间需求解决量数组包括任一需求仓库在不同时刻完成解决的库存需求解决变量;
基于所述仓库架构中任一仓库的可调出仓库集合,生成所述任一仓库对应的全局时间调出量数组,其中,任一仓库对应的全局时间调出量数组包括任一仓库在不同时刻向任一仓库的可调出仓库集合中每一个仓库调出的库存调出变量;
基于所述运输时长表以及所述任一仓库的可调入仓库集合中每一个仓库对应的全局时间调出量数组,生成所述任一仓库对应的全局时间调入量数组,其中,所述任一仓库对应的全局时间调入量数组包括所述任一仓库在不同时刻调入的来自所述任一仓库的可调入仓库集合中每一个仓库的库存调入变量;
基于所述非需求仓库集合中的任一非需求仓库对应的全局时间调出量数组以及全局时间调入量数组,确定所述任一非需求仓库对应的全局时间库存量数组,其中,所述任一非需求仓库对应的全局时间库存量数组包括所述任一非需求仓库在不同时刻的当前库存变量;
基于所述任一需求仓库对应的全局时间调出量数组、全局时间调入量数组以及全局时间需求解决量数组,确定所述任一需求仓库对应的全局时间库存量数组,其中,任一需求仓库对应的全局时间库存量数组包括任一需求仓库在不同时刻的当前库存变量;
为所述每个仓库对应的全局时间库存量数组设置中转约束,所述中转约束用于限制仓库在每个时刻的当前库存变量不小于零;
基于所述需求仓库集合中每个需求仓库对应的全局时间需求解决量数组确定调拨成本;
将所述每个仓库对应的全局时间调出量数组以及所述每个需求仓库对应的全局时间需求解决量数组作为决策变量,将为所述每个仓库对应的全局时间库存量数组设置的中转约束作为约束条件,将所述调拨成本作为目标函数后,求解得到所述每个仓库对应的第一最佳全局时间调出量数组以及所述每个需求仓库对应的第一最佳全局时间需求解决量数组;
根据所述每个仓库对应的第一最佳全局时间调出量数组以及所述每个需求仓库对应的第一最佳全局时间需求解决量数组,控制所述仓库架构中的仓库执行针对所述库存调拨需求的库存调拨。
2.根据权利要求1所述的方法,其特征在于,所述确定所述每个仓库的可调入仓库集合,包括:
遍历所述每个仓库的可调出仓库集合,在第一仓库的可调出仓库集合中包含第二仓库的情况下,将第一仓库加入至第二仓库的可调入仓库集合。
3.根据权利要求1所述的方法,其特征在于,所述任一仓库对应的全局时间调出量数组包括所述任一仓库在不同时刻向所述任一仓库的可调出仓库集合中每一个仓库调出的库存调出变量,所述任一仓库对应的全局时间调入量数组包括所述任一仓库在不同时刻调入的来自所述任一仓库的可调入仓库集合中每一个仓库的库存调入变量;所述生成所述任一仓库对应的全局时间调入量数组,包括:
针对任一仓库i,确定仓库i的可调入仓库集合
针对可调入仓库集合中的每一仓库j在不同时刻t向仓库i调出的库存调出变量,在仓库i对应的全局时间调入量数组中对应生成仓库i在时刻/>调入的来自仓库j的库存调入变量/>且/>,其中/>为仓库j调往仓库i的运输时长。
4.根据权利要求3所述的方法,其特征在于,所述任一非需求仓库对应的全局时间库存量数组包括所述任一非需求仓库在不同时刻的当前库存变量;所述确定所述任一非需求仓库对应的全局时间库存量数组,包括:
针对任一非需求仓库i,确定非需求仓库i的可调出仓库集合和可调入仓库集合/>
确定非需求仓库i在不超过时刻的不同时刻t向可调出仓库集合/>中的每一仓库j调出的库存调出变量/>
确定非需求仓库i在不超过时刻的不同时刻t调入的来自可调入仓库集合/>中每一仓库j的库存调入变量/>
根据以下公式确定非需求仓库i在时刻的当前库存变量/>
其中,为非需求仓库i在当前调拨周期的初始时刻的库存量。
5.根据权利要求3所述的方法,其特征在于,所述任一需求仓库对应的全局时间库存量数组包括所述任一需求仓库在不同时刻的当前库存变量,所述任一需求仓库对应的全局时间需求解决量数组包括所述任一需求仓库在不同时刻完成解决的库存需求解决变量;所述确定所述任一需求仓库对应的全局时间库存量数组,包括:
针对任一需求仓库i,确定需求仓库i的可调出仓库集合和可调入仓库集合/>
确定需求仓库i在不超过时刻的不同时刻t向可调出仓库集合/>中的每一仓库j调出的库存调出变量/>
确定需求仓库i在不超过时刻的不同时刻t调入的来自可调入仓库集合/>中每一仓库j的库存调入变量/>
确定需求仓库i在不超过时刻的不同时刻t完成解决的库存需求解决变量/>
根据以下公式确定需求仓库i在时刻的当前库存变量/>:
其中,为需求仓库i在当前调拨周期的初始时刻的库存量。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
为所述每个需求仓库对应的全局时间需求解决量数组设置需求解决约束,所述需求解决约束用于限制需求仓库在所有时刻累计的库存需求解决变量不小于该需求仓库对应的库存需求,所述约束条件还包括为所述每个需求仓库对应的全局时间需求解决量数组设置的需求解决约束。
7.根据权利要求1所述的方法,其特征在于,所述任一需求仓库对应的全局时间需求解决量数组包括所述任一需求仓库在不同时刻完成解决的库存需求解决变量,所述调拨成本由每个需求仓库在每个时刻完成解决的库存需求解决变量所表示,其中,时刻靠前的库存需求解决变量作用于降低所述调拨成本的影响力高于时刻靠后的库存需求解决变量。
8.根据权利要求7所述的方法,其特征在于,所述确定调拨成本包括:
针对所述每个需求仓库在每一时刻对应的库存需求解决变量进行加权求和,得到调拨时间成本,其中,时刻靠前的库存需求解决变量的权重因子小于时刻靠后的库存需求解决变量的权重因子;
基于所述调拨时间成本确定所述调拨成本。
9.根据权利要求8所述的方法,其特征在于,所述任一需求仓库在任一时刻对应的库存需求解决变量的权重因子由所述任一需求仓库对应的仓库优先级因子与所述任一时刻对应的时间优先级因子确定,其中,所述任一时刻对应的时间优先级因子由时间成本经验函数所确定,所述时间成本经验函数用于表征时间优先级因子关于调拨时间的关系且在定义域上单调递增,所述时间成本经验函数由历史统计的调拨时间与退货率之间的关系生成。
10.根据权利要求9所述的方法,其特征在于,所述调拨时间成本G在已为所述每个需求仓库对应的全局时间需求解决量数组设置需求解决约束的情况下,通过以下公式确定:
其中,D为所述需求仓库集合,为需求仓库i在时刻t完成解决的库存需求解决变量, 为调拨周期时长,/>为需求仓库i对应的仓库优先级因子,/>为时刻t对应的时间优先级因子,/>用于表征时间成本经验函数在时刻t对应的输出值,所述需求解决约束用于限制需求仓库在所有时刻累计的库存需求解决变量不小于该需求仓库对应的库存需求,所述约束条件还包括为所述每个需求仓库对应的全局时间需求解决量数组设置的需求解决约束;
所述调拨时间成本G在尚未为所述每个需求仓库对应的全局时间需求解决量数组设置需求解决约束的情况下,通过以下公式确定:
其中,为需求仓库i对应的仓库优先级因子,/>为时刻t对应的时间优先级因子。
11.根据权利要求1所述的方法,其特征在于,所述确定调拨成本包括:
基于所述每个需求仓库对应的全局时间需求解决量数组确定调拨时间成本;
基于所述仓库架构的运输成本表与所述每个仓库对应的全局时间调出量数组,确定调拨运输成本,所述运输成本表包括所述仓库架构中的任意一个仓库将单位库存量的库存调往其的可调出仓库集合中每一个仓库的运输成本;
基于所述仓库架构的分批管理成本表、所述每个仓库对应的全局时间调出量数组与全局时间调入量数组,确定调拨分批管理成本,所述分批管理成本表包括所述仓库架构中的任意一个仓库每次调出库存的调出管理成本以及每次调入库存的调入管理成本;
将所述调拨时间成本、所述调拨运输成本与所述调拨分批管理成本加权求和得到所述调拨成本。
12.根据权利要求11所述的方法,其特征在于,所述任一仓库对应的全局时间调出量数组包括所述任一仓库在不同时刻向所述任一仓库的可调出仓库集合中每个仓库调出的库存调出变量,所述任一仓库对应的全局时间调入量数组包括所述任一仓库在不同时刻调入的来自所述任一仓库的可调入仓库集合中每一个仓库的库存调入变量;所述确定调拨运输成本,包括:
针对任一仓库i,确定仓库i的可调出仓库集合和可调入仓库集合/>
确定仓库i在不同时刻t向可调出仓库集合中的每一仓库j调出的库存调出变量,确定仓库i在不同时刻t调入的来自可调入仓库集合/>中每一仓库j的库存调入变量/>
根据以下公式确定所述调拨运输成本Q:
其中,为仓库i将单位库存量的库存调往仓库j的运输成本,/>为所述仓库架构中的仓库总数,/>为调拨周期时长;
所述确定调拨分批管理成本,包括:
根据以下公式确定所述调拨分批管理成本P:
其中,为仓库i每次调出库存的调出管理成本,/>为仓库i每次调入库存的调入管理成本,/>
13.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在当前调拨周期的初始时刻,获取上一个调拨周期的库存调拨剩余需求,所述库存调拨剩余需求包括所述需求仓库集合中各需求仓库在上一个调拨周期中尚未完成解决的库存剩余需求;
获取所述每个仓库在上一个调拨周期对应的第二最佳全局时间调出量数组,生成所述任一仓库在上一个调拨周期对应的第二最佳全局时间调入量数组;
针对所述需求仓库集合中的任一需求仓库,生成所述任一需求仓库对应的全局时间剩余需求解决量数组;
所述确定所述任一非需求仓库对应的全局时间库存量数组,包括:
基于所述任一非需求仓库对应的全局时间调出量数组、全局时间调入量数组以及第二最佳全局时间调入量数组,确定所述任一非需求仓库对应的全局时间库存量数组;
所述确定所述任一需求仓库对应的全局时间库存量数组,包括:
基于所述任一需求仓库对应的全局时间调出量数组、全局时间调入量数组、第二最佳全局时间调入量数组、全局时间需求解决量数组以及全局时间剩余需求解决量数组,确定所述任一需求仓库对应的全局时间库存量数组。
14.根据权利要求13所述的方法,其特征在于,所述任一仓库对应的第二全局时间调出量数组包括所述任一仓库在上一个调拨周期内不同时刻向所述任一仓库的可调出仓库集合中每一个仓库调出的库存调出常量,所述任一仓库对应的第二全局时间调入量数组包括所述任一仓库在上一个调拨周期内不同时刻调入的来自所述任一仓库的可调入仓库集合中每一个仓库的库存调入常量;所述生成所述任一仓库在上一个调拨周期对应的第二最佳全局时间调入量数组,包括:
针对任一仓库i,确定仓库i的可调入仓库集合
针对可调入仓库集合中的每一仓库j在上一个调拨周期内小于时刻/>的不同时刻t向仓库i调出的库存调出常量/>,在仓库i对应的第二最佳全局时间调入量数组中对应生成仓库i在时刻/>调入的来自仓库j的库存调入常量/>,其中/>为仓库j调往仓库i的运输时长,/>为当前调拨周期的初始时刻与上一个调拨周期的初始时刻之间的间隔时长。
15.根据权利要求14所述的方法,其特征在于,所述任一非需求仓库对应的全局时间库存量数组包括所述任一非需求仓库在不同时刻的当前库存变量;所述确定所述任一非需求仓库对应的全局时间库存量数组,包括:
针对任一非需求仓库i,确定非需求仓库i的可调出仓库集合和可调入仓库集合/>
确定非需求仓库i在不超过时刻的不同时刻t向可调出仓库集合/>中的每一仓库j调出的库存调出变量/>
确定非需求仓库i在不超过时刻的不同时刻t调入的来自可调入仓库集合/>中每一仓库j的库存调入变量/>
确定非需求仓库i在上一个调拨周期内不超过时刻且不小于时刻/>的不同时刻t调入的来自可调入仓库集合/>中每一仓库j的库存调入常量/>
根据以下公式确定非需求仓库i在时刻的当前库存变量/>:
其中,为非需求仓库i在当前调拨周期的初始时刻的库存量。
16.根据权利要求14所述的方法,其特征在于,所述任一需求仓库对应的全局时间库存量数组包括所述任一需求仓库在不同时刻的当前库存变量,所述任一需求仓库对应的全局时间剩余需求解决量数组包括所述任一需求仓库在不同时刻完成解决的库存剩余需求解决变量;所述确定所述任一需求仓库对应的全局时间库存量数组,包括:
针对任一需求仓库i,确定需求仓库i的可调出仓库集合和可调入仓库集合/>
确定需求仓库i在不超过时刻的不同时刻t向可调出仓库集合/>中的每个仓库j调出的库存调出变量/>
确定需求仓库i在不超过时刻之前的不同时刻t调入的来自可调入仓库集合/>中每个仓库j的库存调入变量/>
确定非需求仓库i在上一个调拨周期内不超过时刻且不小于时刻/>的不同时刻t调入的来自可调入仓库集合/>中每一仓库j的库存调入常量/>
确定需求仓库i在不超过时刻之前的不同时刻t完成解决的库存需求解决变量/>
确定需求仓库i在不超过时刻之前的不同时刻t完成解决的库存剩余需求解决变量
根据以下公式确定需求仓库i在时刻的当前库存变量/>:
其中,为需求仓库i在当前调拨周期的初始时刻的库存量。
17.根据权利要求13所述的方法,其特征在于,所述确定调拨成本,包括:
基于所述每个需求仓库对应的全局时间需求解决量数组确定调拨时间成本,基于所述每个需求仓库对应的全局时间剩余需求解决量数组确定额外调拨时间成本,基于所述调拨时间成本与所述额外调拨时间成本确定所述调拨成本。
18.根据权利要求17所述的方法,其特征在于,所述任一需求仓库对应的全局时间剩余需求解决量数组包括所述任一需求仓库在不同时刻完成解决的库存剩余需求解决变量;
所述额外调拨时间成本在已为所述每个需求仓库对应的全局时间剩余需求解决量数组设置剩余需求解决约束的情况下,通过以下公式确定:
其中,D为所述需求仓库集合,为需求仓库i在时刻t完成解决的库存剩余需求解决变量,/>为调拨周期时长,/>为需求仓库i对应的仓库优先级因子,为时刻t对应的时间优先级因子,/>用于表征时间成本经验函数在时刻t对应的输出值,/>为当前调拨周期的初始时刻与上一个调拨周期的初始时刻之间的间隔时长,所述剩余需求解决约束用于限制需求仓库在所有时刻累计的库存剩余需求解决变量不小于该需求仓库对应的库存剩余需求;
所述额外调拨时间成本在未为所述每个需求仓库对应的全局时间剩余需求解决量数组设置剩余需求解决约束的情况下,通过以下公式确定:
其中,为需求仓库i对应的仓库优先级因子,/>为时刻t对应的时间优先级因子。
19.根据权利要求13所述的方法,其特征在于,所述方法还包括:
为所述每个需求仓库对应的全局时间剩余需求解决量数组设置剩余需求解决约束,所述剩余需求解决约束用于限制需求仓库在所有时刻累计的库存剩余需求解决变量不小于该需求仓库对应的库存剩余需求。
20.根据权利要求1所述的方法,其特征在于,所述中转约束还用于限制仓库在每个时刻的当前库存变量不大于该仓库对应的仓库容量上限。
21.根据权利要求1所述的方法,其特征在于,所述仓库架构包括1至N共N个层级的仓库集合,其中,第M级仓库集合中的仓库属于所述非需求仓库集合,第N级仓库集合中的仓库属于所述需求仓库集合,第M级仓库集合中的仓库的可调出仓库集合包括第M级仓库集合中的其他仓库以及第M+1级仓库集合中的仓库,第N级仓库集合中的仓库的可调出仓库集合包括第N级仓库集合中的其他仓库,N为不小于3的正整数,M为小于N的正整数;或者,
所述仓库架构中的每个仓库一一对应于仓库树形结构中的结点,所述仓库树形结构的最大层数为N,其中,所述仓库树形结构中的非叶子结点对应的仓库属于所述非需求仓库集合,所述仓库树形结构中的叶子结点对应的仓库属于所述需求仓库集合,所述仓库树形结构中任一父结点对应仓库的可调出仓库集合包括该任一父结点的每个子结点和每个兄弟结点对应的仓库,所述树形结构中任一叶子结点对应仓库的可调出仓库集合包括该任一叶子结点的兄弟结点对应的仓库。
22.一种库存调拨装置,其特征在于,包括:
存储器,被配置成存储指令;以及
处理器,被配置成从所述存储器调用所述指令以及在执行所述指令时能够实现根据权利要求1至21中任一项所述的库存调拨方法。
23.一种机器可读存储介质,其特征在于,该机器可读存储介质上存储有指令,该指令用于使得机器执行根据权利要求1至21中任一项所述的库存调拨方法。
CN202410260214.6A 2024-03-07 2024-03-07 库存调拨方法、装置及存储介质 Active CN117853020B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410260214.6A CN117853020B (zh) 2024-03-07 2024-03-07 库存调拨方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410260214.6A CN117853020B (zh) 2024-03-07 2024-03-07 库存调拨方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN117853020A CN117853020A (zh) 2024-04-09
CN117853020B true CN117853020B (zh) 2024-05-28

Family

ID=90534642

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410260214.6A Active CN117853020B (zh) 2024-03-07 2024-03-07 库存调拨方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN117853020B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011025987A1 (en) * 2009-08-28 2011-03-03 Savi Networks Llc Asset monitoring and tracking system
CN106897854A (zh) * 2017-02-28 2017-06-27 深圳万发创新进出口贸易有限公司 一种基于云平台的物流仓储管理系统
CN106910034A (zh) * 2015-12-22 2017-06-30 阿里巴巴集团控股有限公司 商品对象调拨方法及装置
CN112884404A (zh) * 2021-02-08 2021-06-01 中国科学技术大学 一种智能供应链库存中转优化及异动预警系统
CN113222304A (zh) * 2020-01-21 2021-08-06 北京京东振世信息技术有限公司 一种库存调度方法和装置
CN115713200A (zh) * 2022-11-02 2023-02-24 阿里巴巴(中国)有限公司 库存调拨、订单处理、调度数据的处理方法和装置
WO2023183321A2 (en) * 2022-03-21 2023-09-28 Cargoshot, Inc. Monitoring goods during shipment
CN117273603A (zh) * 2023-09-11 2023-12-22 上海固瑞捷工业科技有限公司 一种仓库库存资源管理方法、装置、设备及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011025987A1 (en) * 2009-08-28 2011-03-03 Savi Networks Llc Asset monitoring and tracking system
CN106910034A (zh) * 2015-12-22 2017-06-30 阿里巴巴集团控股有限公司 商品对象调拨方法及装置
CN106897854A (zh) * 2017-02-28 2017-06-27 深圳万发创新进出口贸易有限公司 一种基于云平台的物流仓储管理系统
CN113222304A (zh) * 2020-01-21 2021-08-06 北京京东振世信息技术有限公司 一种库存调度方法和装置
CN112884404A (zh) * 2021-02-08 2021-06-01 中国科学技术大学 一种智能供应链库存中转优化及异动预警系统
WO2023183321A2 (en) * 2022-03-21 2023-09-28 Cargoshot, Inc. Monitoring goods during shipment
CN115713200A (zh) * 2022-11-02 2023-02-24 阿里巴巴(中国)有限公司 库存调拨、订单处理、调度数据的处理方法和装置
CN117273603A (zh) * 2023-09-11 2023-12-22 上海固瑞捷工业科技有限公司 一种仓库库存资源管理方法、装置、设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Research on enterprise level cross domain integrated data inventory method based on DMAIC model;Ran Ran;《2021 International Conference on Electronics, Circuits and Information Engineering (ECIE)》;20210101;278-82 *
基于PHP+JQuery烟叶中转调拨管理系统设计与实现;彭芳策;《电脑编程技巧与维护》;20160803(第15期);48-50 *

Also Published As

Publication number Publication date
CN117853020A (zh) 2024-04-09

Similar Documents

Publication Publication Date Title
CN110858161A (zh) 资源分配方法、装置、系统、设备和介质
CN105159736B (zh) 一种支持性能分析的SaaS软件部署方案的构建方法
JP4197303B2 (ja) 計算機リソース管理方法及び実施装置並びに処理プログラム
CN113191619A (zh) 一种应急救援物资分配及车辆调度动态优化方法
CN110636388A (zh) 一种业务请求分配方法、系统、电子设备及存储介质
CN117853020B (zh) 库存调拨方法、装置及存储介质
CN112214288B (zh) 基于Kubernetes集群的Pod调度方法、装置、设备和介质
CN117519930A (zh) 批量任务的执行方法、装置及电子设备
CN118037186A (zh) 库存调拨方法、装置及存储介质
US8108340B2 (en) Search engine configured to minimize performance degradation under high load
CN114581220B (zh) 数据处理方法、设备及分布式计算系统
CN116777127A (zh) 一种资源分配方法、电子设备及存储介质
CN113626404B (zh) 分布式文件系统嵌套目录配额的控制方法、装置及介质
CN115344362A (zh) 动态任务负载调度方法及装置
CN115220907A (zh) 资源调度方法、装置、电子设备及存储介质
CN111950869A (zh) 改进航天测控网调度问题初始解的迭代求解方法及系统
CN117519953B (zh) 一种面向服务器无感知计算的分离式内存管理方法
CN113452767B (zh) 一种应用于服务集群内的负载均衡方法及装置
CN116701410B (zh) 数联网数据语用内存状态数据的存储方法及系统
CN114265556B (zh) 一种数据存储方法及装置
US20230195527A1 (en) Workload distribution by utilizing unused central processing unit capacity in a distributed computing system
CN116167550A (zh) 一种共享化固定资产的业务执行方法、设备及介质
CN117492947A (zh) 用于处理延时任务的方法、存储介质及处理器
CN118282956A (zh) 系统服务的处理方法及装置、存储介质和电子设备
CN114968482A (zh) 无服务器处理方法、装置和网络设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant