具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要说明的是,本发明实施例适用于仓储区的订单组单场景,且暂不考虑货架中物品数量这一因素。
对于本发明中所涉及的名词做如下解释:
1)订单集合K:为本次需排产订单的集合,订单k∈K,例如订单k={a:5,b:5},表示订单k中包含5个物品a、5个物品b;
2)订单品类集合:为订单中所包含的物品所属品类的集合,例如,对于订单k,其订单品类集合为kd={a,b};
3)物品品类集合:为当前货架所包含SKU(Stock Keeping Unit,库存量单位)的品类集合;
4)向量Vk:物品品类集合中每一个SKU在订单k中的权重,该权重表示为tf,是一个抽象概念;
5)深度Lk-s:订单k扩展到物品s的层次数,是个标量。
参见图1,示出的是本发明实施例提供的一种对订单进行组单的方法的主要流程图,包括如下步骤:
S101:接收订单,根据订单中的物品品类信息,遍历货架库,确定与订单相关联的货架。
S102:基于货架的物品品类集合以及订单的物品品类信息,确定与订单相关联的订单品类集合,计算订单品类集合中每个物品品类在订单中的权重,得到订单的向量。
S103:获取与向量的关联度超出预定关联度阈值的关联订单,与订单组合生成集合单。
上述实施方式中,对于步骤S101,在每个货架上,都有一个或多个SKU,每个SKU中存放同一种类的物品,因此,可以根据订单中物品位于哪个货架上,来确定订单中相应的物品需要从哪个货架中提取。
但存在同一类物品可能存放在多个不同的货架中的情况,因此,对于同一订单,所关联货架的数量,可能基于仓储区货架SKU分布情况的不同而不同。为防止货架信息的遗漏,包含该订单中任意物品的货架,都需要考虑。
以订单1={a:5,b:5}为例,根据物品a、b,获取到相关联的所有货架,具体有:货架1={a}、货架2={b}、货架3={a,b}、货架4={a,b,c},货架5={a,b,c,d}。
另外,货架也可以有货架标识信息,例如货架编号等,连同所存储的物品信息品类,一同存储在货架库中,也可以生成货架信息表进行存储,便于后续确定与订单关联的货架。也可以对货架上的物品品类建立索引,例如,参见表1所示:
表1物品索引表
索引 |
物品编码 |
1 |
Sku_1 |
2 |
Sku_2 |
… |
… |
K |
Sku_k |
对于步骤S102,当订单中包含的物品品类数量较多时,与该订单关联的货架数量也较多,此时需要根据每个货架所包含的物品,确定该订单在每个货架的物品集合;其中,货架与物品品类集合是一对一的关系。例如,订单1={a:5,b:5},通过该订单包含的sku查找到货架4={a:20,b:30,c:40},则相应的订单品类集合为{a,b,c}。
之后,计算订单品类集合中每个物品在该订单中的权重,以确定该订单的向量。以订单1={a:5,b:5}、货架4={a,b,c}为例,对于货架4中的物品c,其权重可以计算得到1/3*(1/2)**2=1/12;其中,分母1表示深度为2,即从订单1(记为深度1)通过一层扩展得到的,指数2表示平衡参数。
由于各订单中所包含的物品可能不一样,因此,对于各订单中与物品品类相应的权重也不一样,例如,订单1包含物品a、b,订单2包含物品c、d。
为便于后续订单关联度计算,可以按照一定的规则,例如,按照物品品类a,b,c……,x,y,z的排序,对各订单的向量进行排序表示,不足部分或者不存在部分用0代替,例如,订单1在货架4中的向量为{1/3,1/3,1/12,0,…,0}。
例如,对于订单1,在每个所关联货架中的订单品类集合以及相应的向量有:
货架1={a}—订单品类集合{a}—向量{1,0,……,0};
货架2={b}—订单品类集合{b}—向量{0,1,0,……,0};
货架3={a,b}—订单品类集合{a,b}—向量{1/2,1/2,0,……,0};
货架4={a,b,c}—订单品类集合{a,b,c}—向量{1/3,1/3,1/12,0,……,0};
货架5={a,b,c,d}—订单品类集合{a,b,c,d}—向量{1/4,1/4,1/16,1/16,0,……,0}。
对于步骤S103,基于订单向量可以确定订单之间的关联度,例如,根据cos余弦公式计算。也可以设定预定关联度阈值,对订单向量之间的关联度进行降序排列,选取关联度较高的订单进行组单,并分配到工作站进行排产。
工作站对于订单的排产,可以通过机器人或小车,例如,无人机小车,从货架取货传输到工作站进行排产,将该货架从仓储区挑拣出来,并送到该工作站,最后由分拣人员从该货架的SKU中拣选出这些关联订单所需的物品。
进一步的,对于工作站,可以设定订单数量上限值,例如,工作站只能处理50个订单,但当前统计到有100个订单关联,则将其中50个订单分配至另一个工作站进行排产。也可以设定时间阈值,例如,当临近生产时间30min时直接下发订单,也可以继续等待新的订单下发。
对于后续订单处理,若一个订单已经下发至工作站,当新来的订单与该订单匹配度较高时,会直接下发至给工作站进行排产,该匹配度可以为正在工作站拣货排产的货架上的物品,在新下发的订单池中是否存在,若存在,直接下发至给工作站。
上述实施例所提供的方法,提供了一种基于货架所包含的物品品类因素,对订单进行关联组单的思路,以将可以在同一货架处理的订单分发至同一工作站上,减少运输小车的来回运输,提高货架取出后的使用效率以及使用次数,加快订单排产速度。
参见图2,示出了根据本发明实施例的一种可选的对订单进行组单的方法流程示意图,包括如下步骤:
S201:接收订单,根据订单中的物品品类信息,遍历货架库,确定与订单相关联的货架。
S202:确定货架的物品品类集合,当物品品类集合还包括第一物品品类信息时,获取与第一物品品类信息相关联的第一货架。
S203:基于货架的物品品类集合、第一货架的第一物品品类集合以及订单的物品品类信息,确定与订单相关联的第一订单品类集合。
S204:重复上述步骤,直到获取货架的深度达到预定深度阈值时停止,组合所获取货架的物品品类集合以及订单的物品品类信息,确定与订单相关联的订单品类集合。
S205:计算所确定的订单品类集合中每个物品品类在订单中的权重,得到订单的向量。
S206:获取与向量的关联度超出预定关联度阈值的关联订单,与订单组合生成集合单。
上述实施方式中,对于步骤S201可参见图1所示步骤S101的描述,步骤S206可参见图1所示步骤S103的描述,在此不再赘述。
对于大宗订单出库的情况,在实际货架的物品在入库或补货时,已经使用分散策略,将关联度高的物品放在相同的货架上,并且保证足够的分散,即一个货架只有1~2个SKU的情况。
查找深度为1的订单很容易组成一个集合单,但实际情况中,查找深度为1的订单较少,故在此基础上,可以进行深度查找,以表达不同订单通过货架物理因素,建立不同订单之间的关联关系,以纳入更多订单组合在一起。
上述实施方式中,对于步骤S202,对于初始获取的与订单相关联的货架,其所包含的物品品类集合包含该订单中至少一个物品品类。例如,订单1与货架3。
但当货架还包括除订单中物品品类之外的物品品类时,该物品品类也是需要考虑的对象。具体地,可以基于该物品品类信息,确定与之关联的货架。例如:
1)订单1={a:5,b:5},通过该订单所包含的SKU查找货架,找到货架4={a:20,b:30,c:40};
2)通过该货架4扩展出物品品类c,并根据该物品品类c找到货架6={c:10,d:20},进一步扩展出物品品类d。
对于步骤S203,每当扩展一个货架时,即基于该货架所包含的物品品类集合,对该订单的订单品类集合进行更新。
同样以订单1为例,结合步骤S202所举示例,有:
深度为1的订单品类集合kd={a,b};
深度为2的订单品类集合kd’={a,b,c};
深度为3的订单品类集合kd”={a,b,c,d};
其中,对于该订单的初始订单品类集合kd的深度设定为1,是为了便于后续权重的简化处理、统一计算。
但需要说明的是,扩展越深订单间所存在关联度越低,效果越差,所以查找深度值要得到有效控制,该最大深度本发明不做限制。本发明最大查找深度选取为2,即存在一个小车负责两个货架的情况,且深度为1的订单关联度与深度为2的订单关联度不在一个数量级上。
对于步骤S204~S205,对于订单品类集合中每个物品品类在该订单中出现的权重,可以在图1所示步骤S102的基础上,结合货架的查找深度进行确定,以订单品类集合kd为例,具体地:
权重tf:
其中,tfs_kd表示物品品类s在订单品类集合kd中的权重;ns_kd表示物品品类s在订单品类集合kd是否存在,存在为1,否则为0;∑Ss_kd表示物品集合S中每个物品品类在订单品类集合kd中出现的概率之和,其中,s∈S;u表示调节深度权重的参数,且u∈Z,Z表示最大查找深度。
对于订单品类kd以及订单1为例,则有:
物品品类a的权重tf=1/(1+1)=1/2;
物品品类b的权重tf=1/(1+1)=1/2;
若预定向量的格式为{a,b,c,d},则该订单的向量为{1/2,1/2,0,0}。
同样对于订单品类kd’,为订单1通过一层扩展得到,则有:
物品品类a的权重tf=1/3*(1/1)**2=1/3;
物品品类b的权重tf=1/3*(1/1)**2=1/3;
物品品类c的权重tf=1/3*(1/2)**2=1/12,该订单对应的权重为{1/3,1/3,1/12,0}。
上述实施例所提供的方法,提供了一种深度查找货架的方式,以将表示不同订单通过货架的物理因素建立关系,并将有关联的订单或者关联度较高的订单进行组单,以同时基于多个货架对多个订单进行排产,进而提高订单排产效率。
参见图3,示出了根据本发明实施例的另一种可选的对订单进行组单的方法流程示意图,包括如下步骤:
S301:接收订单,根据订单中的物品品类信息,遍历货架库,确定与订单相关联的货架。
S302:基于货架的物品品类集合以及订单的物品品类信息,确定与订单相关联的订单品类集合,计算订单品类集合中每个物品品类在订单中的权重,得到订单的向量。
S303:获取待测订单以及相应的向量,计算每个待测订单的向量与订单的向量之间夹角的余弦值,提取余弦值超出预定余弦值的待测订单,作为与订单相关联的关联订单,与订单组合生成集合单。
上述实施方式中,步骤S301可参见图1所示步骤S101的描述;步骤S302可参见图1所示步骤S102的描述,也可以参见图2所示步骤S202~S204的描述,在此不再赘述。
上述实施方式中,对于步骤S303,对于各订单之间的关联度计算方式,可以是使用余弦公式,计算各订单向量之间的夹角余弦值。且余弦夹角计算方式,可以屏蔽向量内元素个数的影响。
该余弦公式为:
cos(Vk_a,Vk_b)=[Vk_a*Vk_b]/[|Vk_a|*|Vk_b|]
也可以是,通过两个向量之间夹角的大小,来判断向量的关联程度,夹角越小,就代表两个订单之间越关联,体现“余弦关联性”。
例如,参见图4所示,为向量余弦夹角的图形化表示,其中,订单1={a:5,b:5}的向量为
订单2={a:5,b:5,c:1}的向量为
订单3={e:1,f:1}的向量为
其中,向量
与
的夹角较小,证明订单1与订单2的相关度较高。
在对订单进行组单之前,可以基于订单向量之间的余弦值,对订单关联性进行降序排列,并选取余弦值超出预定阈值的订单进行组单,至此,所发送至工作站上的订单存在较强的关联性。
上述实施例所提供的方法,提供了一种基于余弦方式,计算订单之间的关联性,该方式可以屏蔽向量内物品品类个数的影响,使得计算所得结果更为准确,降低后续计算错误导致订单需要重新排产的情况。
本发明实施例所提供的方法,根据订单与货架之间的关联关系,从订单池中筛选出与该货架以及与该订单相关联的订单,使得在拣货工作站上可以组合相关度较高的订单组,以搬运更少的货架集合,对更多的订单进行拣货,从而达到提升排产效率、降低物流运营成本的效果;另外,所采用的余弦相似度计算方式,可以屏蔽订单向量内物品个数的影响,提升了组单准确性。
参见图5,示出了本发明实施例提供的一种对订单进行组单的装置900的主要模块示意图,包括:
订单接收模块501,用于接收订单,根据所述订单中的物品品类信息,遍历货架库,确定与所述订单相关联的货架;
向量确定模块502,用于基于所述货架的物品品类集合以及所述订单的物品品类信息,确定与所述订单相关联的订单品类集合,计算所述订单品类集合中每个物品品类在所述订单中的权重,得到所述订单的向量;
订单关联模块503,用于获取与所述向量的关联度超出预定关联度阈值的关联订单,与所述订单组合生成集合单。
本发明实施装置中,所述向量确定模块502,用于:
确定所述货架的物品品类集合,当所述物品品类集合还包括第一物品品类信息时,获取与所述第一物品品类信息相关联的第一货架;
基于所述货架的物品品类集合、所述第一货架的第一物品品类集合以及所述订单的物品品类信息,确定与所述订单相关联的第一订单品类集合;
重复上述步骤,直到获取货架的深度达到预定深度阈值时停止,组合所获取货架的物品品类集合以及所述订单的物品品类信息,确定与所述订单相关联的订单品类集合。
本发明实施装置中,所述向量确定模块502,用于:
当物品品类在所述订单品类集合中不存在时,确定所述向量中与所述物品品类相应的值为零;或
当物品品类在所述物品品类集合中存在时,确定首次获取所述物品品类所在货架的深度、以及每个物品品类在所述订单品类集合中出现的概率,以计算所述物品品类在所述订单中的权重。
本发明实施装置中,所述订单关联模块503,用于:
获取待测订单以及相应的向量,计算每个待测订单的向量与所述订单的向量之间夹角的余弦值,提取余弦值超出预定余弦值的待测订单,作为与所述订单相关联的关联订单。
本发明实施例所提供的装置,根据订单与货架之间的关联关系,从订单池中筛选出与该货架以及与该订单相关联的订单,使得在拣货工作站上可以组合相关度较高的订单组,以搬运更少的货架集合,对更多的订单进行拣货,从而达到提升排产效率、降低物流运营成本的效果;另外,所采用的余弦相似度计算方式,可以屏蔽订单向量内物品个数的影响,提升了组单准确性。
参见图6示出了可以应用本发明实施例的对订单进行组单方法或对订单进行组单装置的示例性系统架构600。
如图6所示,系统架构600可以包括终端设备601、602、603,网络604和服务器605。网络604用以在终端设备601、602、603和服务器605之间提供通信链路的介质。网络604可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备601、602、603通过网络604与服务器605交互,以接收或发送消息等。终端设备601、602、603上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交系统软件等(仅为示例)。
终端设备601、602、603可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器605可以是提供各种服务的服务器,例如对用户利用终端设备601、602、603所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的对订单进行组单方法一般由服务器605执行,相应地,对订单进行组单装置一般设置于服务器605中。
应该理解,图6中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
参见图7,其示出了适于用来实现本发明实施例的终端设备的计算机系统700的结构示意图。图7示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括订单接收模块、向量确定模块、订单关联模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,向量确定模块还可以被描述为“确定订单的向量模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:
接收订单,根据所述订单中的物品品类信息,遍历货架库,确定与所述订单相关联的货架;
基于所述货架的物品品类集合以及所述订单的物品品类信息,确定与所述订单相关联的订单品类集合,计算所述订单品类集合中每个物品品类在所述订单中的权重,得到所述订单的向量;
获取与所述向量的关联度超出预定关联度阈值的关联订单,与所述订单组合生成集合单。
根据本发明实施例的技术方案,根据订单与货架之间的关联关系,从订单池中筛选出与该货架以及与该订单相关联的订单,使得在拣货工作站上可以组合相关度较高的订单组,以搬运更少的货架集合,对更多的订单进行拣货,从而达到提升排产效率、降低物流运营成本的效果;另外,所采用的余弦相似度计算方式,可以屏蔽订单向量内物品个数的影响,提升了组单准确性。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。