一种物品的出库分配方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种物品的出库分配方法和装置。
背景技术
当前对于物品出库分配的场景通常不指定物品的出库库房,例如,在电商商品出库分配的场景中,电商商家对于订单商品不指定商品的出库库房,电商信息***根据目前各仓的库存情况制定订单库存分配策略时,无法保证在满足订单需求量的前提下达到拆单率最低。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
现有的物品出库分配方案无法保证在满足需求出库量和仓库数量限制的前提下达到拆分率最低。
发明内容
有鉴于此,本发明实施例提供一种物品的出库分配方法和装置,能够在满足需求出库量和仓库数量限制的前提下达到拆分率最低,提高物品的出库分配效率,并降低出库分配成本。
为实现上述目的,根据本发明实施例的一个方面,提供了一种物品的出库分配方法。
一种物品的出库分配方法,包括:根据待出库物品集合中各物品的单一仓库库存量和需求出库量,确定所述待出库物品集合的子集,所述子集包括全仓出库子集、单仓出库子集、多仓出库子集中的至少一者;根据预设的与各子集对应的出库分配策略,分别生成所述各子集的第一出库分配信息;分别随机生成单仓出库子集、多仓出库子集的预设数量的第二出库分配信息;根据所述各子集的第一出库分配信息和所述第二出库分配信息,利用预设算法确定待出库物品集合的出库分配信息。
可选地,根据待出库物品集合中各物品的单一仓库库存量和需求出库量,确定所述待出库物品集合的子集的步骤之前,包括:确定给定物品集合中的待出库物品集合,其中,所述待出库物品集合内的物品满足:该物品的单一仓库库存量总和大于或等于该物品的需求出库量。
可选地,根据待出库物品集合中各物品的单一仓库库存量和需求出库量,确定所述待出库物品集合的子集的步骤包括:将单一仓库库存量总和等于需求出库量的物品的集合,确定为全仓出库子集;将单一仓库库存量总和大于需求出库量、且至少一个单一仓库库存量大于或等于需求出库量的物品的集合,确定为单仓出库子集;将单一仓库库存量总和大于需求出库量、且任一单一仓库库存量均小于需求出库量的物品的集合,确定为多仓出库子集。
可选地,根据预设的与各子集对应的出库分配策略,分别生成所述各子集的第一出库分配信息的步骤,包括:对于全仓出库子集内的物品,确定物品在各仓库的出库量为该物品在各仓库的库存量;对于单仓出库子集内的物品,根据目标仓库集合与所述全仓出库子集对应仓库集合的交集、该物品所在仓库覆盖的所述待出库物品集合中物品类别数量、该物品的需求出库量,确定该物品在各仓库的出库量,其中,所述目标仓库集合为该物品的单一仓库库存量大于或等于该物品的需求出库量的仓库的集合;对于多仓出库子集内的物品,根据物品所在仓库与所述全仓出库子集对应仓库的交集、该物品在各仓库的库存量、预设的最大拆仓数、该物品的需求出库量,确定该物品在各仓库的出库量;根据各子集中物品在各仓库的出库量,分别生成所述各子集的第一出库分配信息。
可选地,对于单仓出库子集内的物品,根据物品所在的目标仓库集合与所述全仓出库子集对应仓库集合的交集、该物品所在仓库覆盖的所述待出库物品集合中物品类别数量、该物品的需求出库量,确定该物品在各仓库的出库量的步骤,包括:对于单仓出库子集内的物品,判断物品所在目标仓库集合与所述全仓出库子集对应仓库的集合是否存在交集,若是,则从该交集的仓库中选择覆盖的所述待出库物品集合中物品类别数量最少的仓库,作为该物品的出库仓库,否则从所述目标仓库集合中选择覆盖的所述待出库物品集合中物品类别数量最少的仓库,作为物品的出库仓库,物品在出库仓库的出库量为该物品的需求出库量,在除该出库仓库之外的其他仓库的出库量为零。
可选地,对于多仓出库子集内的物品,根据物品所在仓库与所述全仓出库子集对应仓库的交集、该物品在各仓库的库存量、预设的最大拆仓数、该物品的需求出库量,确定该物品在各仓库的出库量的步骤,包括:对于多仓出库子集内的物品,按照排序规则对物品所在仓库排序以得到仓库序列,所述排序规则为:优先排列物品所在仓库的集合与所述全仓出库子集对应仓库的集合的交集中的仓库,且该交集中的仓库与该物品所在的其他仓库分别按照该物品的库存量降序排列,判断该物品在任意P个所在仓库的库存量之和是否均小于该物品的需求出库量,若是,则结束流程;否则选取所述仓库序列中的前K+1个仓库作为该物品的出库仓库,其中,该物品在前K个仓库的出库量分别为该物品在所述前K个仓库的库存量,该物品在第K+1个仓库的出库量为该物品的需求出库量与该物品在所述前K个仓库的库存量总和的差值,其中,P为预设的最大拆仓数,且K同时满足:K≤P-1,所述仓库序列中前K个仓库的该物品库存量总和小于该物品的需求出库量,且前K+1个仓库的该物品库存量总和大于或等于该物品的需求出库量。
可选地,根据所述各子集的第一出库分配信息和所述第二出库分配信息,利用预设算法确定待出库物品集合的出库分配信息的步骤,包括:以单仓出库子集、多仓出库子集的第一出库分配信息和所述预设数量的第二出库分配信息作为初始解,并根据所述初始解生成初始种群;按照遗传算法对所述初始种群逐代进化,其中,每代进化选择适应度值最小的NP个个体以进化得到下一代个体,当进化代数达到预设值时,终止进化流程,并从得到的个体中选择适应度值最小的一个或多个个体作为最优解,NP为初始种群中个体的数量;根据全仓出库子集的第一出库分配信息、所述最优解,确定待出库物品集合的出库分配信息。
可选地,每代进化选择适应度值最小的NP个个体以进化得到下一代个体的步骤,包括:每代进化选择适应度值最小的NP个个体,对选择的所述NP个个体执行交叉运算和变异运算,以进化得到下一代个体,并且按照修复规则修复所述变异运算得到的个体,其中包括:按照预设的仓库优先顺序修正每个个体对应的物品的出库分配信息,以使该物品在各仓库的总出库量与该物品的需求出库量匹配且该物品的出库仓库数量不大于预设的最大拆仓数。
根据本发明实施例的另一方面,提供了一种物品的出库分配装置。
一种物品的出库分配装置,包括:第一确定模块,用于根据待出库物品集合中各物品的单一仓库库存量和需求出库量,确定所述待出库物品集合的子集,所述子集包括全仓出库子集、单仓出库子集、多仓出库子集中的至少一者;第一信息生成模块,用于根据预设的与各子集对应的出库分配策略,分别生成所述各子集的第一出库分配信息;第二信息生成模块,用于分别随机生成单仓出库子集、多仓出库子集的预设数量的第二出库分配信息;出库分配模块,用于根据所述各子集的第一出库分配信息和所述第二出库分配信息,利用预设算法确定待出库物品集合的出库分配信息。
可选地,还包括第二确定模块,用于:确定给定物品集合中的待出库物品集合,其中,所述待出库物品集合内的物品满足:该物品的单一仓库库存量总和大于或等于该物品的需求出库量。
可选地,所述第一确定模块还用于:将单一仓库库存量总和等于需求出库量的物品的集合,确定为全仓出库子集;将单一仓库库存量总和大于需求出库量、且至少一个单一仓库库存量大于或等于需求出库量的物品的集合,确定为单仓出库子集;将单一仓库库存量总和大于需求出库量、且任一单一仓库库存量均小于需求出库量的物品的集合,确定为多仓出库子集。
可选地,所述第一信息生成模块包括信息生成子模块,用于:对于全仓出库子集内的物品,确定物品在各仓库的出库量为该物品在各仓库的库存量;对于单仓出库子集内的物品,根据目标仓库集合与所述全仓出库子集对应仓库集合的交集、该物品所在仓库覆盖的所述待出库物品集合中物品类别数量、该物品的需求出库量,确定该物品在各仓库的出库量,其中,所述目标仓库集合为该物品的单一仓库库存量大于或等于该物品的需求出库量的仓库的集合;对于多仓出库子集内的物品,根据物品所在仓库与所述全仓出库子集对应仓库的交集、该物品在各仓库的库存量、预设的最大拆仓数、该物品的需求出库量,确定该物品在各仓库的出库量;根据各子集中物品在各仓库的出库量,分别生成所述各子集的第一出库分配信息。
可选地,所述信息生成子模块包括第一出库量确定单元,用于:对于单仓出库子集内的物品,判断物品所在目标仓库集合与所述全仓出库子集对应仓库的集合是否存在交集,若是,则从该交集的仓库中选择覆盖的所述待出库物品集合中物品类别数量最少的仓库,作为该物品的出库仓库,否则从所述目标仓库集合中选择覆盖的所述待出库物品集合中物品类别数量最少的仓库,作为物品的出库仓库,物品在出库仓库的出库量为该物品的需求出库量,在除该出库仓库之外的其他仓库的出库量为零。
可选地,所述信息生成子模块包括第二出库量确定单元,用于:对于多仓出库子集内的物品,按照排序规则对物品所在仓库排序以得到仓库序列,所述排序规则为:优先排列物品所在仓库的集合与所述全仓出库子集对应仓库的集合的交集中的仓库,且该交集中的仓库与该物品所在的其他仓库分别按照该物品的库存量降序排列,判断该物品在任意P个所在仓库的库存量之和是否均小于该物品的需求出库量,若是,则结束流程;否则选取所述仓库序列中的前K+1个仓库作为该物品的出库仓库,其中,该物品在前K个仓库的出库量分别为该物品在所述前K个仓库的库存量,该物品在第K+1个仓库的出库量为该物品的需求出库量与该物品在所述前K个仓库的库存量总和的差值,其中,P为预设的最大拆仓数,且K同时满足:K≤P-1,所述仓库序列中前K个仓库的该物品库存量总和小于该物品的需求出库量,且前K+1个仓库的该物品库存量总和大于或等于该物品的需求出库量。
可选地,所述出库分配模块还用于:以单仓出库子集、多仓出库子集的第一出库分配信息和所述预设数量的第二出库分配信息作为初始解,并根据所述初始解生成初始种群;按照遗传算法对所述初始种群逐代进化,其中,每代进化选择适应度值最小的NP个个体以进化得到下一代个体,当进化代数达到预设值时,终止进化流程,并从得到的个体中选择适应度值最小的一个或多个个体作为最优解,NP为初始种群中个体的数量;根据全仓出库子集的第一出库分配信息、所述最优解,确定待出库物品集合的出库分配信息。
可选地,所述出库分配模块包括运算子模块,用于:每代进化选择适应度值最小的NP个个体,对选择的所述NP个个体执行交叉运算和变异运算,以进化得到下一代个体,并且按照修复规则修复所述变异运算得到的个体,其中包括:按照预设的仓库优先顺序修正每个个体对应的物品的出库分配信息,以使该物品在各仓库的总出库量与该物品的需求出库量匹配且该物品的出库仓库数量不大于预设的最大拆仓数。
根据本发明实施例的又一方面,提供了一种电子设备。
一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现本发明提供的物品的出库分配方法。
根据本发明实施例的又一方面,提供了一种计算机可读介质。
一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明提供的物品的出库分配方法。
上述发明中的一个实施例具有如下优点或有益效果:根据待出库物品集合中各物品的单一仓库库存量和需求出库量,确定待出库物品集合的子集,该子集包括全仓出库子集、单仓出库子集、多仓出库子集中的至少一者;根据预设的与各子集对应的出库分配策略,分别生成各子集的第一出库分配信息;分别随机生成单仓出库子集、多仓出库子集的预设数量的第二出库分配信息;根据各子集的第一出库分配信息和第二出库分配信息,利用预设算法确定待出库物品集合的出库分配信息。能够在满足需求出库量和仓库数量限制的前提下达到拆分率最低,提高物品的出库分配效率,并降低出库分配成本。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的物品的出库分配方法的主要步骤示意图;
图2是根据本发明实施例的订单商品的出库分配优选流程示意图;
图3是根据本发明实施例的物品的出库分配装置的主要模块示意图;
图4是本发明实施例可以应用于其中的示例性***架构图;
图5是适于用来实现本发明实施例的服务器的计算机***的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的物品的出库分配方法的主要步骤示意图。
如图1所示,本发明实施例的物品的出库分配方法主要包括如下的步骤S101至步骤S104。
步骤S101:根据待出库物品集合中各物品的单一仓库库存量和需求出库量,确定待出库物品集合的子集。
待出库物品集合的子集可包括全仓出库子集、单仓出库子集、多仓出库子集中的至少一者。
步骤S101之前,确定给定物品集合中的待出库物品集合,其中,待出库物品集合内的物品满足:该物品的单一仓库库存量总和大于或等于该物品的需求出库量。
步骤S101具体包括:将单一仓库库存量总和等于需求出库量的物品的集合,确定为全仓出库子集;将单一仓库库存量总和大于需求出库量、且至少一个单一仓库库存量大于或等于需求出库量的物品的集合,确定为单仓出库子集;将单一仓库库存量总和大于需求出库量、且任一单一仓库库存量均小于需求出库量的物品的集合,确定为多仓出库子集。
步骤S102:根据预设的与各子集对应的出库分配策略,分别生成各子集的第一出库分配信息。
根据预设的与各子集对应的出库分配策略,分别生成各子集的第一出库分配信息,主要是根据各子集中物品在各仓库的出库量,分别生成各子集的第一出库分配信息。下面分别介绍确定各子集中的物品在各仓库的出库量的具体方案。
对于全仓出库子集内的物品,确定物品在各仓库的出库量为该物品在各仓库的库存量。
对于单仓出库子集内的物品,根据目标仓库集合与所述全仓出库子集对应仓库集合的交集、该物品所在仓库覆盖的待出库物品集合中物品类别数量、该物品的需求出库量,确定该物品在各仓库的出库量,其中,目标仓库集合为该物品的单一仓库库存量大于或等于该物品的需求出库量的仓库的集合。
具体地,对于单仓出库子集内的物品,判断物品所在目标仓库集合与全仓出库子集对应仓库的集合是否存在交集,若是,则从该交集的仓库中选择覆盖的待出库物品集合中物品类别数量最少的仓库,作为该物品的出库仓库,否则从目标仓库集合中选择覆盖的待出库物品集合中物品类别数量最少的仓库,作为物品的出库仓库,物品在出库仓库的出库量为该物品的需求出库量,在除该出库仓库之外的其他仓库的出库量为零。
对于多仓出库子集内的物品,根据物品所在仓库与全仓出库子集对应仓库的交集、该物品在各仓库的库存量、预设的最大拆仓数、该物品的需求出库量,确定该物品在各仓库的出库量。
具体地,对于多仓出库子集内的物品,按照排序规则对物品所在仓库排序以得到仓库序列,所述排序规则为:优先排列物品所在仓库的集合与全仓出库子集对应仓库的集合的交集中的仓库,且该交集中的仓库与该物品所在的其他仓库分别按照该物品的库存量降序排列,判断该物品在任意P个所在仓库的库存量之和是否均小于该物品的需求出库量,若是,则结束流程;否则选取仓库序列中的前K+1个仓库作为该物品的出库仓库,其中,该物品在前K个仓库的出库量分别为该物品在前K个仓库的库存量,该物品在第K+1个仓库的出库量为该物品的需求出库量与该物品在所述前K个仓库的库存量总和的差值,其中,P为预设的最大拆仓数,且K同时满足:K≤P-1,仓库序列中前K个仓库的该物品库存量总和小于该物品的需求出库量,且前K+1个仓库的该物品库存量总和大于或等于该物品的需求出库量。
步骤S103:分别随机生成单仓出库子集、多仓出库子集的预设数量的第二出库分配信息。
其中,单仓出库子集的预设数量的第二出库分配信息可以按照如下规则随机生成,对于单仓出库子集内的每个物品,将该物品的单一仓库库存量大于或等于该物品的需求出库量的仓库的集合作为目标仓库集合,从该目标仓库集合中随机生成分别对应各仓库的数值,作为该物品在各仓库的出库量,除该物品的出库仓库之外,该物品在目标仓库集合的其他仓库的出库量为零,根据各物品在各仓库的出库量,生成单仓出库子集的第二出库分配信息。按照同样方法最后生成单仓出库子集的预设数量的第二出库分配信息。
多仓出库子集的预设数量的第二出库分配信息可以按照如下规则随机生成,对于多仓出库子集内的每个物品,随机生成一个或多个数值作为对应该物品的一个或多个出库仓库的出库量,除该物品的出库仓库之外,该物品在目标仓库集合的其他仓库的出库量为零,根据各物品在各仓库的出库量,生成多仓出库子集的第二出库分配信息。按照同样方法最后生成多仓出库子集的预设数量的第二出库分配信息。
步骤S104:根据各子集的第一出库分配信息和第二出库分配信息,利用预设算法确定待出库物品集合的出库分配信息。
步骤S104具体包括:以单仓出库子集、多仓出库子集的第一出库分配信息和预设数量的第二出库分配信息作为初始解,并根据初始解生成初始种群;按照遗传算法对初始种群逐代进化,其中,每代进化选择适应度值最小的NP个个体以进化得到下一代个体,当进化代数达到预设值时,终止进化流程,并从得到的个体中选择适应度值最小的一个或多个个体作为最优解,NP为初始种群中个体的数量;根据全仓出库子集的第一出库分配信息、上述最优解,确定待出库物品集合的出库分配信息。该确定出的待出库物品集合的出库分配信息是最符合预期需求的,也可称为最优出库分配信息。
其中,每代进化选择适应度值最小的NP个个体以进化得到下一代个体的步骤,具体包括:每代进化选择适应度值最小的NP个个体,对选择的NP个个体执行交叉运算和变异运算,以进化得到下一代个体,并且按照修复规则修复所述变异运算得到的个体,其中包括:按照预设的仓库优先顺序修正每个个体对应的物品的出库分配信息,以使该物品在各仓库的总出库量与该物品的需求出库量匹配且该物品的出库仓库数量不大于预设的最大拆仓数。
预设的仓库优先顺序可以为:全仓出库子集对应的仓库、覆盖的待出库物品集合中物品类别数量最少的仓库、预设优先级最高的仓库,以上按照优先程度递减的顺序。
需要说明的是,本发明实施例的物品的出库分配方法所采用的遗传算法是对现有的标准遗传算法进行了改进的基于“君主方案”的遗传算法,本发明实施例的基于“君主方案”的遗传算法相对于标准遗传算法的改进主要体现在两点,一是在遗传算法的初始解获取上,本发明的基于“君主方案”的遗传算法以单仓出库子集、多仓出库子集的第一出库分配信息和预设数量的第二出库分配信息作为初始解(即初始方案),其中,第一出库分配信息是根据预设的与各子集对应的出库分配策略生成的物品的出库分配信息的近优解(即近优方案),而第二出库分配信息是通过随机生成的方式获取,因此,本发明实施例的遗传算法初始解获取方案与现有的标准遗传算法不同;二是本发明实施例的基于“君主方案”的遗传算法的选择运算方案与现有标准遗传算法不同,本发明实施例的遗传算法每代进化选择适应度值最小的NP个个体以进化得到下一代个体。
综上,本发明实施例的基于“君主方案”的遗传算法,从以上两点体现了“君主方案”,即:首先以根据预设的与各子集对应的出库分配策略分别生成各子集的第一出库分配信息,以该物品出库分配信息的近优解(近优方案)作为“君主方案”,与随机生成的第二出库分配信息联合构成遗传算法的初始解(初始方案),从而能够得到更符合实际需求的物品出库分配方案;其次每代进化选择适应度值最小的NP个个体(即NP个方案)作为“君主方案”来进化得到下一代个体,由于每代进化按照修复规则修复变异运算得到的个体,修复规则可以根据实际需求(例如满足拆分率最低)来设置,选出的用来进化的作为“君主方案”的个体更符合实际的出库分配需求。因此,本发明实施例基于“君主方案”的遗传算法能够在满足需求出库量和仓库数量限制的前提下达到拆分率最低,提高物品的出库分配效率,并降低出库分配成本。
本发明实施例的“拆分率”是给定物品集合中的待出库物品集合被拆分出库的比率。在电商领域,拆分率可以是订单商品的拆单率。本发明实施例的物品的出库分配方法适用于各种对物品出库分配的场景,例如电商领域对订单商品出库分配的场景,在该场景下,本发明实施例的物品出库分配方案即订单商品的出库分配方案,也可以称之为订单寻源方案,相应地,订单商品的出库仓库即参与订单寻源的仓库(仓库也可称为库房)。
由于电商商家对于订单不指定出库库房,需要电商信息***根据目前各仓的库存情况制定订单库存分配策略。在满足订单需求量的前提下,追求拆单率最低。其中,参与订单寻源的库房为该商家在该某级地址所有满足的库房,且各仓之前有出库优先级顺序。下面以电商领域的订单商品出库分配为例,介绍本发明实施例的物品的出库分配方法。
图2是根据本发明实施例的订单商品的出库分配优选流程示意图。
如图2所示,本发明实施例的订单商品的出库分配优选流程包括如下的步骤S201至步骤S209。
步骤S201:遍历待出库订单中的各SKU(保存库存控制单位),以确定待出库SKU集合。
待出库订单中每个订单商品均对应一个SKU,SKU即保存库存控制单位(StockKeeping Unit)的简称,被引申为产品(商品)统一编号的简称,每种产品(商品)均对应有唯一的SKU。
确定待出库SKU集合主要目的是筛选出满足库存要求的订单商品,即库存不缺货的订单商品。具体地,可以判断每个SKU的单一仓库库存量总和是否大于或等于该SKU的需求出库量,该SKU的需求出库量即待出库订单中SKU的购买数量。如果某一SKU的单一仓库库存量总和大于或等于该SKU的需求出库量,则表示该SKU的订单商品库存不缺货,否则库存缺货。待出库订单中库存不缺货订单商品的SKU构成待出库SKU集合。如果某一SKU库存缺货,则输出该SKU的信息,如果待出库订单中所有SKU均库存缺货,则输出此订单均缺货,流程结束。
步骤S202:遍历待出库SKU集合中的各SKU,以确定待出库SKU集合中的子集。
待出库SKU集合中的子集包括全仓出库子集、单仓出库子集、多仓出库子集中的至少一者。
具体地,对于待出库SKU集合中的每一个SKU,将该SKU的单一仓库库存量总和与该SKU的需求出库量进行比较。假设待出库SKU集合中一SKUj,SKUj在仓库i的库存量以Sij表示,则SKUj的单一仓库库存量总和为其中n为SKUj的仓库数量。SKUj的需求出库量以Dj表示。
如果SKUj的单一仓库库存量总和等于SKUj的需求出库量,即则SKUj为全仓出库的SKU,即由SKUj对应商品所在的所有仓库出库该商品。
如果SKUj的单一仓库库存量总和大于SKUj的需求出库量,且SKUj的至少一个单一仓库库存量大于或等于SKUj的需求出库量,即:且存在至少一个i'使Si'j≥Dj,则SKUj为单仓出库的SKU,即由单一仓库对该SKU对应的商品出库。
如果SKUj的单一仓库库存量总和大于SKUj的需求出库量、且SKUj的任一单一仓库库存量均小于SKUj的需求出库量,即:且对于任一i”,均满足Si”j<Dj,则SKUj为多仓出库的SKU,即由两个或两个以上存有SKUj对应商品的仓库出库该商品。
全仓出库的SKU构成全仓出库子集,单仓出库的SKU构成单仓出库子集,多仓出库的SKU构成多仓出库子集。
将全仓出库子集中SKU对应商品所在的仓库的集合记录为仓库集合J。
步骤S203:根据预设的与各子集对应的出库分配策略,分别生成各子集的第一出库分配信息。
可以根据各子集中SKU在各仓库的出库量来生成各子集的第一出库分配信息,各子集的第一出库分配信息可以是编码序列的形式,序列中每位编码表示一个仓库,编码的数值表示SKU在对应仓库的出库量。
对于全仓出库子集内的SKU,确定SKU在各仓库的出库量即为该SKU在各仓库的库存量。例如,某SKU的编码为[1,3,1,4,5,6,6,2,6],则表示该SKU在9个仓库的出库量分别为1,3,1,4,5,6,6,2,6。
对于单仓出库子集内的SKU,将该SKU的单一仓库库存量大于或等于该SKU的需求出库量的仓库的集合作为目标仓库集合,判断该目标仓库集合与仓库集合J是否存在交集,若是,则从该交集的仓库中选择覆盖的该待出库订单中SKU数量最少的仓库,作为该SKU的出库仓库,否则从该目标仓库集合中选择覆盖的待出库订单中SKU数量最少的仓库,作为该SKU的出库仓库,该SKU在出库仓库的出库量为该SKU的需求出库量,在除该出库仓库之外的其他仓库的出库量为零。
对于单仓出库子集内的SKU,以SKUj为例,将满足Si'j≥Dj的仓库i'的集合作为目标仓库集合,判断目标仓库集合中是否存在仓库集合J中的仓库,若存在,则对仓库集合J中的SKUj所在仓库按照覆盖该待出库订单中SKU数量从大到小排序,然后选择其中覆盖该待出库订单中SKU数量最少的仓库作为SKUj的出库仓库。若目标仓库集合中不存在仓库集合J中的仓库,则直接将目标仓库集合按照覆盖该待出库订单中SKU数量从大到小排序,然后选择其中覆盖该待出库订单中SKU数量最少的仓库作为SKUj的出库仓库。SKUj在出库仓库的出库量为SKUj的需求出库量,在除该出库仓库之外的其他仓库的出库量为零。假设总计9个仓库中,SKUj在仓库3(第3个仓库)出库,SKUj的需求出库量为5,则SKUj的出库分配信息为[0,0,5,0,0,0,0,0,0]。
对于多仓出库子集内的SKU,遍历各SKU,对于每个SKU,按照排序规则对该SKU所在仓库排序以得到仓库序列,排序规则为:优先排列该SKU所在仓库的集合与仓库集合J的交集中的仓库,且该交集中的仓库与该SKU所在的其他仓库分别按照该SKU的库存量降序排列,判断该SKU在任意P个所在仓库的库存量之和是否均小于该SKU的需求出库量,若是,则结束流程;否则选取仓库序列中的前K+1个仓库作为该SKU的出库仓库,其中,该SKU在前K个仓库的出库量分别为该SKU在前K个仓库的库存量,该SKU在第K+1个仓库的出库量为该SKU的需求出库量与该SKU在前K个仓库的库存量总和的差值,其中,P为预设的最大拆仓数,且K同时满足:K≤P-1,仓库序列中前K个仓库的该SKU库存量总和小于该SKU的需求出库量,且前K+1个仓库的该SKU库存量总和大于或等于该SKU的需求出库量。
对于多仓出库子集内的SKU,以SKUj为例,对SKUj所在仓库按照SKUj的库存量从大到小排序,其中,排序优先时优先考虑仓库集合J中的仓库,即如果SKUj所在仓库与仓库集合J中的仓库存在交集,则优先排列SKUj所在仓库的集合与仓库集合J的交集中的仓库,且该交集中的仓库与SKUj所在的其他仓库分别按照SKUj的库存量降序排列,如果SKUj所在仓库与仓库集合J中的仓库不存在交集,则直接将SKUj所在仓库按照SKUj的库存量降序排列,上述排序最终得到一个仓库序列。如果SKUj在任意P个所在仓库的库存量之和均小于SKUj的需求出库量,即任意则输出SKUj仓数过少的通知消息,并结束流程,以便人工处理该SKUj的出库分配,其中P为预设的最大拆仓数。当仓库序列中前K个仓库的SKUj库存量总和小于SKUj的需求出库量,且前K+1个仓库的SKUj库存量总和大于或等于SKUj的需求出库量,并且,K同时满足:K≤P-1,P为预设的最大拆仓数,则选取仓库序列中的前K+1个仓库作为SKUj的出库仓库,其中,SKUj在前K个仓库的出库量分别为SKUj在前K个仓库的库存量,SKUj在第K+1个仓库的出库量为SKUj的需求出库量与SKUj在前K个仓库的库存量总和的差值。即当满足且其中K≤P-1,当i'∈{1,2,……K}时,则选取仓库序列中的前K+1个仓库作为SKUj的出库仓库,当i'∈{1,...,K}时,SKUj在第i'个仓库的出库量xi'j=Si'j,当i'=K+1时,SKUj在第i'个仓库的出库量当i'>K+1时,SKUj在第i'个仓库的出库量xi'j=0。
步骤S204:随机生成单仓出库子集、多仓出库子集的预设数量的第二出库分配信息。
该预设数量与预先设定的初始种群中个体数量NP相关,假设设置NP=50,则预设数量为49。
其中,单仓出库子集的预设数量的第二出库分配信息可以按照如下规则随机生成,对于单仓出库子集内的每个SKU,将该SKU的单一仓库库存量大于或等于该SKU的需求出库量的仓库的集合作为目标仓库集合,从该目标仓库集合中随机生成分别对应各仓库的数值,作为该SKU在各仓库的出库量,除该SKU的出库仓库之外,该SKU在目标仓库集合的其他仓库的出库量为零,根据各SKU在各仓库的出库量,生成单仓出库子集的第二出库分配信息。按照同样方法最后生成单仓出库子集的预设数量的第二出库分配信息。
多仓出库子集的预设数量的第二出库分配信息可以按照如下规则随机生成,对于多仓出库子集内的每个SKU,随机生成一个或多个数值作为对应该SKU的一个或多个出库仓库的出库量,除该SKU的出库仓库之外,该SKU在目标仓库集合的其他仓库的出库量为零,根据各SKU在各仓库的出库量,生成多仓出库子集的第二出库分配信息。按照同样方法最后生成多仓出库子集的预设数量的第二出库分配信息。
步骤S205:以单仓出库子集、多仓出库子集的第一出库分配信息和预设数量的第二出库分配信息作为基于“君主方案”的遗传算法的初始解,并初始化种群。
单仓出库子集、多仓出库子集的第一出库分配信息分别提供了单仓出库子集、多仓出库子集的一种近优的出库分配方案,单仓出库子集、多仓出库子集的预设数量的第二出库分配信息分别提供了单仓出库子集、多仓出库子集的预设数量随机生成的出库分配方案。上述的一种近优的出库分配方案和预设数量随机生成的出库分配方案构成基于“君主方案”的遗传算法的初始解(初始出库分配方案)。
初始化进化代数计数器g=1,设置最大进化代数G,G值可以根据需求设置。根据上述初始解生成NP个个体作为群体P(t)的初始群体P(1)。每个个体的形式为整数编码的形式,例如个体xj=[x1j,x2j,x3j,...,xNj],xij为整数,假设SKUj的整数编码为[1,0,0,0,0,0,0,2,0],代表SKUj出库量占用第1个仓的库存数量为1个、第8个仓的数量为2、其余仓库不分配出库。
步骤S206:计算群体P(t)中每个个体的适应度,以进行个体评价。
根据目标函数计算群体P(t)中每个个体的适应度。
其中,为目标函数,表示最小化仓库数量和库房优先级之和,其中Q1为预设的仓库数权重,Q2为预设的优先级权重,由于仓库数量的权重高于库房优先级,所以Q1>>Q2。Ai代表仓库优先级,仓库优先级可以预先设定,例如可以设定订单地址所在的仓库优先级最高。yi为辅助变量,具体地,
对NP个个体的适应度升序排列,然后进行下一步骤。
步骤S207:对群体P(t)进化得到下一代群体P(t+1)。
其中,通过选择运算、交叉运算、变异运算等步骤完成对群体P(t)的进化过程。
在选择运算步骤,选择NP个个体的适应度升序序列中的前NP个个体(即前NP个方案),作为“君主方案”,进化得到下一代群体P(t+1)。
在交叉运算步骤,按照预设的交叉概率Pc进行基因交叉操作,以产生新的个体。其中,采用单切点交叉,随机产生εi∈U(0,1),若εi<Pc则进行交叉。切点取值范围[1,N-1],父代两个个体交叉操作,仅对切点后的基因片段进行交换。例如父代两个个体分别为C1[2,0,1];C2[1,0,2],切点在C1的0和1之间以及C2的0和2之间,则交叉后的子代为C1[2,0,2];C2[1,0,1]。
在变异运算步骤,按预设的变异概率Pm进行基因变异操作,产生新的个体。其中,对于基因片段xi的变异,先随机产生εj∈U(0,1),若εj<Pm进行则变异,变异随机选择一个基因进行变异,然后依次选择修复策略,直至个体有效。修复策略可以包括如下两个规则。
规则1:库存量与需求量需要匹配,并且优先从仓库集合J中仓库出库,如果没有仓库集合J中仓库,则由覆盖本待出库订单中SKU数最少的仓库出库,如果该SKU数最少的仓库有多个,则由其中优先级最高的一个或多个仓库出库,其中,仓库优先级可预定义,例如订单收货地仓库优先级高等。按照上述规则1重新分配仓库得到修复后的个体。
规则2:出库仓库数修复,优先从仓库集合J中仓库出库,如果没有仓库集合J中仓库,则由覆盖本待出库订单中SKU数最少的仓库出库,如果该SKU数最少的仓库有多个,则由其中优先级最高的一个或多个仓库出库,按照上述规则2重新分配仓库得到修复后的个体,使出库仓库数不大于预设的最大拆仓数。
本发明实施例的基于“君主方案”的遗传算法的交叉运算和变异运算环节,保证了算法的爬山能力(即寻优能力),在选择运算环节采用的“君主方案”较传统的遗传算法更易于收敛,时效性要高。
步骤S208:判断是否达到停止条件,若是,则执行步骤S209,否则返回执行步骤S206。
判断是否达到停止条件即判断进化代数计数器g的值是否大于设置的最大进化代数G,若是,则达到停止条件,否则,未达到停止条件。如未达到停止条件,则返回步骤S206继续本发明实施例遗传算法的进化过程。
步骤S209:遍历待出库订单所有SKU,输出待出库订单的最优出库分配信息。
如果g>G,则从群体P(t)的当前子代中选择适应度最优的个体(或个体集)作为本发明基于“君主方案”的遗传算法的最优解(或最优解集)。该最优解(或最优解集)包括单仓出库子集、多仓出库子集的最优出库分配信息,其中,单仓出库子集的最优出库分配信息包括单仓出库子集中每个SKU的出库分配信息,多仓出库子集的最优出库分配信息包括多仓出库子集中每个SKU的出库分配信息,每个SKU的出库分配信息包括出库仓库和相应出库量。
根据全仓出库子集的第一出库分配信息、该最优解(或最优解集),确定待出库订单的的最优出库分配信息。其中,全仓出库子集的第一出库分配信息中包括全仓出库子集中各SKU的出库仓库和相应出库量。从而待出库订单的最优出库分配信息包括了待出库订单中所有SKU的出库仓库和相应出库量的信息,即待出库订单的最优出库分配信息为待出库订单在订单维度上各SKU总体的最优出库分配方案。
本发明实施例涉及的相关参数及对应的参考数值详见表1。
表1
序号 |
参数 |
参考数值 |
含义 |
1 |
10≤Q<sub>1</sub>≤1000 |
1000 |
仓库数权重 |
2 |
Q<sub>2</sub> |
1 |
优先级权重 |
3 |
100≤G≤1000 |
100 |
最大进化代数 |
4 |
20≤NP≤200 |
50 |
群体数目 |
5 |
0.25≤Pc≤1 |
0.8 |
交叉概率 |
6 |
0.001≤Pm≤0.1 |
0.05 |
变异概率 |
本发明实施例的订单商品的出库分配优选流程,针对电商信息***根据目前各仓的库存情况制定订单库存分配方法。在满足订单需求量和库房数限制的的前提下,降低拆单率,提高订单商品的出库分配效率,降低了出库分配成本。
图3是根据本发明实施例的物品的出库分配装置的主要模块示意图。
如图3所示,本发明实施例的物品的出库分配装置300主要包括:第一确定模块301、第一信息生成模块302、第二信息生成模块303、出库分配模块304。
第一确定模块301用于根据待出库物品集合中各物品的单一仓库库存量和需求出库量,确定待出库物品集合的子集,该子集包括全仓出库子集、单仓出库子集、多仓出库子集中的至少一者。
第一确定模块301具体可以用于:将单一仓库库存量总和等于需求出库量的物品的集合,确定为全仓出库子集;将单一仓库库存量总和大于需求出库量、且至少一个单一仓库库存量大于或等于需求出库量的物品的集合,确定为单仓出库子集;将单一仓库库存量总和大于需求出库量、且任一单一仓库库存量均小于需求出库量的物品的集合,确定为多仓出库子集。
物品的出库分配装置300还可以包括第二确定模块,用于:确定给定物品集合中的待出库物品集合,其中,待出库物品集合内的物品满足:该物品的单一仓库库存量总和大于或等于该物品的需求出库量。
第一信息生成模块302用于根据预设的与各子集对应的出库分配策略,分别生成各子集的第一出库分配信息。
第一信息生成模块302包括信息生成子模块,用于:对于全仓出库子集内的物品,确定物品在各仓库的出库量为该物品在各仓库的库存量;对于单仓出库子集内的物品,根据目标仓库集合与全仓出库子集对应仓库集合的交集、该物品所在仓库覆盖的待出库物品集合中物品类别数量、该物品的需求出库量,确定该物品在各仓库的出库量,其中,所述目标仓库集合为该物品的单一仓库库存量大于或等于该物品的需求出库量的仓库的集合;对于多仓出库子集内的物品,根据物品所在仓库与全仓出库子集对应仓库的交集、该物品在各仓库的库存量、预设的最大拆仓数、该物品的需求出库量,确定该物品在各仓库的出库量;根据各子集中物品在各仓库的出库量,分别生成各子集的第一出库分配信息。
信息生成子模块可以包括第一出库量确定单元,用于:对于单仓出库子集内的物品,判断物品所在目标仓库集合与全仓出库子集对应仓库的集合是否存在交集,若是,则从该交集的仓库中选择覆盖的待出库物品集合中物品类别数量最少的仓库,作为该物品的出库仓库,否则从目标仓库集合中选择覆盖的待出库物品集合中物品类别数量最少的仓库,作为物品的出库仓库,物品在出库仓库的出库量为该物品的需求出库量,在除该出库仓库之外的其他仓库的出库量为零。
信息生成子模块还可以包括第二出库量确定单元,用于:对于多仓出库子集内的物品,按照排序规则对物品所在仓库排序以得到仓库序列,所述排序规则为:优先排列物品所在仓库的集合与全仓出库子集对应仓库的集合的交集中的仓库,且该交集中的仓库与该物品所在的其他仓库分别按照该物品的库存量降序排列,判断该物品在任意P个所在仓库的库存量之和是否均小于该物品的需求出库量,若是,则结束流程;否则选取仓库序列中的前K+1个仓库作为该物品的出库仓库,其中,该物品在前K个仓库的出库量分别为该物品在前K个仓库的库存量,该物品在第K+1个仓库的出库量为该物品的需求出库量与该物品在前K个仓库的库存量总和的差值,其中,P为预设的最大拆仓数,且K同时满足:K≤P-1,仓库序列中前K个仓库的该物品库存量总和小于该物品的需求出库量,且前K+1个仓库的该物品库存量总和大于或等于该物品的需求出库量。
第二信息生成模块303用于分别随机生成单仓出库子集、多仓出库子集的预设数量的第二出库分配信息。
其中,单仓出库子集的预设数量的第二出库分配信息可以按照如下规则随机生成,对于单仓出库子集内的每个物品,将该物品的单一仓库库存量大于或等于该物品的需求出库量的仓库的集合作为目标仓库集合,从该目标仓库集合中随机生成分别对应各仓库的数值,作为该物品在各仓库的出库量,除该物品的出库仓库之外,该物品在目标仓库集合的其他仓库的出库量为零,根据各物品在各仓库的出库量,生成单仓出库子集的第二出库分配信息。按照同样方法最后生成单仓出库子集的预设数量的第二出库分配信息。
多仓出库子集的预设数量的第二出库分配信息可以按照如下规则随机生成,对于多仓出库子集内的每个物品,随机生成一个或多个数值作为对应该物品的一个或多个出库仓库的出库量,除该物品的出库仓库之外,该物品在目标仓库集合的其他仓库的出库量为零,根据各物品在各仓库的出库量,生成多仓出库子集的第二出库分配信息。按照同样方法最后生成多仓出库子集的预设数量的第二出库分配信息。
出库分配模块304用于根据各子集的第一出库分配信息和第二出库分配信息,利用预设算法确定待出库物品集合的出库分配信息。
出库分配模块304具体用于:以单仓出库子集、多仓出库子集的第一出库分配信息和预设数量的第二出库分配信息作为初始解,并根据所述初始解生成初始种群;按照遗传算法对初始种群逐代进化,其中,每代进化选择适应度值最小的NP个个体以进化得到下一代个体,当进化代数达到预设值时,终止进化流程,并从得到的个体中选择适应度值最小的一个或多个个体作为最优解,NP为初始种群中个体的数量;根据全仓出库子集的第一出库分配信息、上述最优解,确定待出库物品集合的出库分配信息。
出库分配模块304具体包括运算子模块,用于:每代进化选择适应度值最小的NP个个体,对选择的NP个个体执行交叉运算和变异运算,以进化得到下一代个体,并且按照修复规则修复变异运算得到的个体,其中包括:按照预设的仓库优先顺序修正每个个体对应的物品的出库分配信息,以使该物品在各仓库的总出库量与该物品的需求出库量匹配且该物品的出库仓库数量不大于预设的最大拆仓数。
预设的仓库优先顺序可以为:全仓出库子集对应的仓库、覆盖的待出库物品集合中物品类别数量最少的仓库、预设优先级最高的仓库,优先程度递减的顺序。即优先由全仓出库子集对应的仓库出库,如果没有全仓出库子集对应的仓库,则由覆盖本待出库物品集合中物品类别数量最少的仓库出库,如果覆盖本待出库物品集合中物品类别数量最少的仓库有多个,则由其中优先级最高的一个或多个仓库出库。
另外,在本发明实施例中物品的出库分配装置的具体实施内容,在上面所述物品的出库分配方法中已经详细说明了,故在此重复内容不再说明。
图4示出了可以应用本发明实施例的物品的出库分配方法或物品的出库分配装置的示例性***架构400。
如图4所示,***架构400可以包括终端设备401、402、403,网络404和服务器405。网络404用以在终端设备401、402、403和服务器405之间提供通信链路的介质。网络404可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备401、402、403通过网络404与服务器405交互,以接收或发送消息等。终端设备401、402、403上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备401、402、403可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器405可以是提供各种服务的服务器,例如对用户利用终端设备401、402、403所浏览的网站提供支持的后台管理服务器。后台管理服务器可以对接收到的信息查询请求等数据进行分析等处理,并将处理结果(例如产品信息)反馈给终端设备。
需要说明的是,本发明实施例所提供的物品的出库分配方法一般由服务器405执行,相应地,物品的出库分配装置一般设置于服务器405中。
应该理解,图4中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图5,其示出了适于用来实现本申请实施例的服务器的计算机***500的结构示意图。图5示出的服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,计算机***500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有***500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本申请的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括第一确定模块301、第一信息生成模块302、第二信息生成模块303、出库分配模块304。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,第一确定模块301还可以被描述为“用于根据待出库物品集合中各物品的单一仓库库存量和需求出库量,确定待出库物品集合的子集的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:根据待出库物品集合中各物品的单一仓库库存量和需求出库量,确定所述待出库物品集合的子集,所述子集包括全仓出库子集、单仓出库子集、多仓出库子集中的至少一者;根据预设的与各子集对应的出库分配策略,分别生成所述各子集的第一出库分配信息;随机生成单仓出库子集、多仓出库子集的预设数量的第二出库分配信息;根据所述各子集的第一出库分配信息和所述第二出库分配信息,利用预设算法确定待出库物品集合的出库分配信息。
根据本发明实施例的技术方案,根据待出库物品集合中各物品的单一仓库库存量和需求出库量,确定待出库物品集合的子集,该子集包括全仓出库子集、单仓出库子集、多仓出库子集中的至少一者;根据预设的与各子集对应的出库分配策略,分别生成各子集的第一出库分配信息;分别随机生成单仓出库子集、多仓出库子集的预设数量的第二出库分配信息;根据各子集的第一出库分配信息和第二出库分配信息,利用预设算法确定待出库物品集合的出库分配信息。能够在满足需求出库量和仓库数量限制的前提下达到拆分率最低,提高物品的出库分配效率,并降低出库分配成本。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。