具体实施方式
根据结合附图对本发明示例性实施例的以下详细描述,本发明的其它方面、优势和突出特征对于本领域技术人员将变得显而易见。
在本发明中,术语“包括”和“含有”及其派生词意为包括而非限制;术语“或”是包含性的,意为和/或。
在本说明书中,下述用于描述本发明原理的各种实施例只是说明,不应该以任何方式解释为限制发明的范围。参照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本发明的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅是示例性的。因此,本领域普通技术人员应认识到,在不背离本发明的范围和精神的情况下,可以对本文中描述的实施例进行多种改变和修改。此外,为了清楚和简洁起见,省略了公知功能和结构的描述。此外,贯穿附图,相同参考数字用于相思功能和操作。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。
因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用。在本公开的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
图1示意性示出了根据本发明实施例的拣货区域示意图。
如图1所示,拣货区域内包括货格、巷道以及主干道。图1中标记数字的方格表示货格,货格成排放置。图1中写有1号巷道和2号巷道的通道表示巷道,通过巷道可以到达货格。图1中的圆圈表示巷道对应的巷道口,巷道通过巷道口连接到主干道,从主干道可以经由巷道口进入巷道内。根据本发明的实施例,在接收到订单后,可以对该订单上的货品进行定位,确定货品所在的货格作为拣货的目的地货格。然后,根据目的地货格的位置计算拣货路径,所述计算拣货路径包括计算在主干道上以及巷道上的拣货路径,从而到达目的地货格,拣取货品。
图2示意性示出了根据本发明实施例的计算拣货路径的原理示意图。
如图2所示,根据本发明的实施例,拣货员由目的地货格所在巷道所对应的主干道的十字路口进入主干道,推车在主干道上行驶,小车不能进入巷道。拣货员推小车到达目的地货格所在巷道的巷道口后,拣货员进入巷道针对目的地货格拣取货品,完成拣取后,将货品带出巷道,放在拣货小车中,一个巷道中若有多个目的地货格,则一次进入巷道完成拣取。继续推小车到达下一个目的地货格所在的巷道口,依次拣取完订单上所有的货品。
根据本发明实施例,当一张订单有多个目的地货格时,或多个订单有多个目的地货格时,就需要计算多个目的地货格的拣货路径。此拣货路径由两部分组成:小车的行走路径与拣货员的行走路径。由于拣货员推小车时,速度比拣货员步行速度降低一半。可视为拣货员推小车时经过的路径成本要远高于拣货员单独步行时,因此,要首先考虑小车的行走路径,取此路径的最短路径。
下面参考图3和图4描述根据本发明实施例的拣货路径计算系统及计算区域中的拣货路径的方法。
图3示意性示出了根据本发明实施例的拣货路径计算系统100的应用场景。根据本发明的实施例,拣货路径计算系统100可以应用于计算拣货员在仓库中的拣货路径,但本领域技术人员可以理解,拣货路径计算系统100也可以应用于其他应用场景的拣货路径计算。如图3所示,拣货路径计算系统100可以与电商平台系统200、仓储数据库系统300以及拣货系统400进行交互。上述系统可以采用一个或多个计算机系统来实现。所述一个或多个计算机系统可以集中部署在本地,或者可以分布式地布置在多个地点,并且通过通信网络实现交互。根据本发明的实施例,电商平台系统200接收客户订单。仓储数据库系统300存储和维护各货品的存储位置,例如其所在的货格。仓储数据库系统300还可以包括存储货品的各个货格、货格所对应的巷道、该巷道连接到的主干道、该巷道的巷道口等的位置数据。仓储数据库系统300还可以包括巷道和主干道的长度、宽度等信息。拣货路径计算系统100将电商平台系统200收到的订单数据,从仓储数据库系统300获得订单中货品的定位情况,例如订单的目的地货格,货格所在的巷道,巷道对应的主干道等。然后,拣货路径计算系统100根据该定位情况,按照一定规则计算拣货路径,然后将拣货路径分配给拣货系统400。拣货系统400根据拣货路径安排拣货。
可以理解的是,拣货路径计算系统100、电商平台系统200、仓储数据库系统300和拣货系统400可以集成或分离地实现,即,不同系统或系统的功能可以组合在一起,或者单个系统的功能可以拆分为多个系统来实现。
图4示意性示出了根据本发明实施例的计算区域中的拣货路径方法。根据本发明的实施例,该方法例如可以由拣货路径计算系统100实现。
该方法开始于步骤S401。
在步骤S402,从电商平台系统200读取电子订单数据。所述读取可以是拣货路径计算系统100从电商平台系统200拉取订单数据,也可以是电商平台系统200向拣货路径计算系统100推送订单数据。根据本发明实施例,所述读取可以是定时自动读取,也可以是根据系统管理者的指令而读取。订单数据例如可以包括货物种类、型号、供货商名称、购买数量等,但不限于此。每张订单上指定一个或多个货品。
在步骤S403,根据订单数据在地理信息系统300中确定目的地货格。根据本发明实施例,根据所述电子订单数据,确定目的地货格,所述目的地货格存放有要拣取的货品。确定目的地货格后,可以相应确定货格所在的巷道、该巷道的巷道口以及可以到达该巷道口的主干道。
在步骤S404,确定待进入主干道。根据本发明实施例,根据每条主干道上的待进入巷道口的数量、从该主干道进入待进入巷道口能够拣取的货品数量、该主干道上待进入巷道口之间的最远距离、以及从该主干道上的待进入巷道口到相应巷道中最远目的地货格之间的距离,确定待进入主干道,其中,待进入巷道是目的地货格对应的巷道,待进入巷道口是待进入巷道与主干道相交处的巷道口。
根据本发明实施例,根据每条主干道上的待进入巷道口的数量、从该主干道进入待进入巷道口能够拣取的货品数量、该主干道上待进入巷道口之间的最远距离、以及从该主干道上的待进入巷道口到相应巷道中最远目的地货格之间的距离,对该主干道打分。所述对每条主干道打分包括:
式中,Sj表示第j条主干道的得分,j表示第j条主干道,Nj表示第j条主干道上的待进入巷道口的数量,n表示在第j条主干道上的目的地货格总数,pi表示每个目的地货格可以拣到的货品数量,i=1,2,3,…,n,Dj表示在第j条主干道上巷道口之间最远的距离,dj表示在相应巷道中目的地货格距离与待进入巷道口之间的最远距离。
例如,根据目的地货格确定货格所在的巷道为待进入巷道,若该巷道的巷道口在主干道上,则将该巷道口标记为待进入巷道口,若巷道口有两个,且两个都在主干道上,则把两个巷道口都标记为待进入巷道口。如图5所示,实心圆圈表示目的地货格,雪花型标记表示待进入巷道口,当确定目的地货格后,将货格所在的巷道的两个巷道口标记为待进入巷道口。
根据本发明实施例,将得分最高的主干道确定为待进入主干道。若存在几条主干道得分相同,则判断拣货起始位置到所述几条主干道中点位置的距离,取距离最小的主干道为待进入主干道。所述距离可以为欧几里得距离,但本发明不限于此。
根据本发明实施例,判断所述待进入主干道上的待进入巷道口所对应的巷道在另外一条主干道上是否有另一个待进入巷道口,如果是,则所述另一个待进入巷道口不再作为待进入巷道口。在本发明实施例中,确保一个待进入巷道只有一个待进入巷道口。
根据本发明实施例,对其余主干道重复所述打分、确定和判断操作,直到所有待进入巷道口都在待进入主干道上为止。例如,区域中有10条主干道,对每一个主干道打分,此时主干道1得分最高,则将主干道1确定为待进入主干道,主干道1上的所有待进入巷道口对应的巷道只保留主干道1上的待进入巷道口,另外的巷道口不再作为待进入巷道口。根据更新后的巷道口重新计算剩下九条主干道的打分,重复上述步骤,直到所有待进入巷道口都在待进入主干道上为止。
在步骤S405,计算拣货路径。根据本发明实施例,根据待进入主干道、待进入主干道上的待进入巷道口和目的地货格,计算拣货路径。
根据本发明实施例,根据待进入主干道和待进入主干道上待进入巷道口计算主干道上的拣货路径。在本发明实施例中,将选择好的待进入主干道对应的待进入巷道口视作主干道上拣货路径所必须经过的点,而确定主干道上拣货路径问题就转化成了在整个拣货区域G上以拣货起点为起点的旅行商问题(TSP)。利用任何一种解TSP问题的算法,例如分支定界法、遗传算法等,都可以得到主干道上拣货路径。该计算结果包括拣货路径以及拣货路径的长度。令RC表示主干道上拣货路径,DC表示该路径长度,则
TSPC(G)=(RC,DC)
根据本发明实施例,直接使用待进入巷道口来对TSP问题求解,简化了对于主干道上拣货路径的计算。
根据本发明实施例,根据待进入巷道口和目的地货格,计算巷道中的拣货路径。包括:按照从距离待进入巷道口最远的目的地货格开始拣货,依次拣完该巷道内所有目的地货格,再返回所述待进入巷道口的方式,计算巷道内的拣货路径。在本发明实施例中,当拣货员推小车沿着主干道拣货路线行走时,当到达待进入巷道口后,进入巷道内最远的目的地货格,开始拣取,依次拣完该巷道内的所有目的地货格,在返回所述待进入巷道口。例如:最远的目的地货格格数为g,待进入巷道口坐标为x1,该巷道的另一个巷道口坐标为x2,该巷道总货格数为G,那么单次拣取的距离为Di,i表示为在主干道拣货路径上第i个碰到的待进入巷道口,则
若待进入巷道口有m个,用DP表示所有拣货点都拣完之后的路径长度之和,用RP表示所有拣货点的路径,用TSPP(G)输出拣货员的步行路径和长度,则
TSPP(G)=(RP,DP)
那么可将多个目的地货格的拣货路径表示为:
TSPP(G)=TSPC(G)+TSPP(G)
根据本发明实施例,若计算主干道上的拣货路径有一条最短路径,则选取该最短路径为拣货路径;若计算主干道上的拣货路径有多条最短路径,则比较不同主干道上的拣货路径下,巷道中的拣货路径,选取巷道中的拣货路径最短所对应的主干道上的路径为拣货路径。
在步骤S406,输出拣货路径。根据本发明实施例,将所述拣货路径以电子数据的形式输出。根据本发明的实施例,可以将计算好的拣货路径输出到拣货系统400,拣货系统400可以根据拣货路径安排拣货。
该方法在步骤S407处结束。
根据本发明实施例,针对拣货的实际操作方式进行拣货路径的计算,将主干道上的车行路线和巷道中的人行路线分离,首先考虑车行路线的最小化,并将拣货路径问题转化为旅行商问题,利用现有的算法即可求解,简单,方便。
下面参考图6描述根据本发明实施例的拣货路径计算系统500的结构框图。拣货路径计算系统500可以用作图3中的拣货路径计算系统100,与电商平台系统200、仓储数据库系统300以及拣货系统400进行交互,在此不再赘述。
如图6所示,拣货路径计算系统500包括订单数据读取模块510、目的地货格确定模块520、待进入主干道确定模块530、拣货路径计算模块540以及拣货路径输出模块550。
订单数据读取模块510,从电商平台系统200中读取电子订单数据。根据本发明实施例,所述读取可以是拣货路径计算系统100从电商平台系统200拉取订单数据,也可以是电商平台系统200向拣货路径计算系统100推送订单数据。根据本发明实施例,所述读取可以是定时自动读取,也可以是根据系统管理者的指令而读取。订单数据例如可以包括货物种类、型号、供货商名称、购买数量等,但不限于此。每张订单上指定一个或多个货品。
目的地货格确定模块520,根据订单数据在地理信息系统300中确定目的地货格。根据本发明实施例,根据所述电子订单数据,确定目的地货格,所述目的地货格存放有要拣取的货品。确定目的地货格后,可以相应确定货格所在的巷道、该巷道的巷道口以及可以到达该巷道口的主干道。
待进入主干道确定模块530,根据每条主干道上的待进入巷道口的数量、从该主干道进入待进入巷道口能够拣取的货品数量、该主干道上待进入巷道口之间的最远距离、以及从该主干道上的待进入巷道口到相应巷道中最远目的地货格之间的距离,确定待进入主干道,其中,待进入巷道是目的地货格对应的巷道,待进入巷道口是待进入巷道与主干道相交处的巷道口。
如图7所示,待进入主干道确定模块530包括主干道打分模块531、待进入主干道选取模块532、起始位置确定模块533、待进入巷道口判断整理模块534以及循环控制模块535。
主干道打分模块531,根据每条主干道上的待进入巷道口的数量、从该主干道进入待进入巷道口能够拣取的货品数量、该主干道上待进入巷道口之间的最远距离、以及从该主干道上的待进入巷道口到相应巷道中最远目的地货格之间的距离,对该主干道打分。所述对每条主干道打分包括:
式中,Sj表示第j条主干道的得分,j表示第j条主干道,Nj表示第j条主干道上的待进入巷道口的数量,n表示在第j条主干道上的目的地货格总数,pi表示每个目的地货格可以拣到的货品数量,i=1,2,3,…,n,Dj表示在第j条主干道上巷道口之间最远的距离,dj表示在相应巷道中目的地货格距离与待进入巷道口之间的最远距离。
例如,根据目的地货格确定货格所在的巷道为待进入巷道,若该巷道的巷道口在主干道上,则将该巷道口标记为待进入巷道口,若巷道口有两个,且两个都在主干道上,则把两个巷道口都标记为待进入巷道口。如图5所示,实心圆圈表示目的地货格,雪花型标记表示待进入巷道口,当确定目的地货格后,将货格所在的巷道的两个巷道口标记为待进入巷道口。
待进入主干道选取模块532,将得分最高的主干道确定为待进入主干道。
起始位置确定模块533,若存在几条主干道得分相同,则判断拣货起始位置到所述几条主干道中点位置的距离,取距离最小的主干道为待进入主干道。所述距离可以为欧几里得距离,但本发明不限于此。
待进入巷道口判断整理模块534,判断所述待进入主干道上的待进入巷道口所对应的巷道在另外一条主干道上是否有另一个待进入巷道口,如果是,则所述另一个待进入巷道口不再作为待进入巷道口。在本发明实施例中,确保一个待进入巷道只有一个待进入巷道口。
循环控制模块535,对其余主干道重复所述打分、确定和判断操作,直到所有待进入巷道口都在待进入主干道上为止。例如,区域中有10条主干道,对每一个主干道打分,此时主干道1得分最高,则将主干道1确定为待进入主干道,主干道1上的所有待进入巷道口对应的巷道只保留主干道1上的待进入巷道口,另外的巷道口不再作为待进入巷道口。根据更新后的巷道口重新计算剩下九条主干道的打分,重复上述步骤,直到所有待进入巷道口都在待进入主干道上为止。
拣货路径计算模块540,根据待进入主干道、待进入主干道上的待进入巷道口和目的地货格,计算拣货路径。
如图8所示,拣货路径计算模块540包括主干道拣货路径计算模块541、巷道拣货路径计算模块542以及主干道拣货路径选择模块543。
主干道拣货路径计算模块541,根据待进入主干道和待进入主干道上待进入巷道口计算主干道上的拣货路径。根据本发明实施例,将选择好的待进入主干道对应的待进入巷道口视作主干道上拣货路径所必须经过的点,而确定主干道上拣货路径问题就转化成了在整个拣货区域G上以拣货起点为起点的旅行商问题(TSP)。利用任何一种解TSP问题的算法,例如分支定界法、遗传算法等,都可以得到主干道上拣货路径。该计算结果包括拣货路径以及拣货路径的长度。令RC表示主干道上拣货路径,DC表示该路径长度,则
TSPC(G)=(RC,DC)
根据本发明实施例,直接使用待进入巷道口来对TSP问题求解,简化了对于主干道上拣货路径的计算。
巷道拣货路径计算模块542,根据待进入巷道口和目的地货格,计算巷道中的拣货路径。包括:按照从距离待进入巷道口最远的目的地货格开始拣货,依次拣完该巷道内所有目的地货格,再返回所述待进入巷道口的方式,计算巷道内的拣货路径。在本发明实施例中,当拣货员推小车沿着主干道拣货路线行走时,当到达待进入巷道口后,进入巷道内最远的目的地货格,开始拣取,依次拣完该巷道内的所有目的地货格,在返回所述待进入巷道口。例如:最远的目的地货格格数为g,待进入巷道口坐标为x1,该巷道的另一个巷道口坐标为x2,该巷道总货格数为G,那么单次拣取的距离为Di,i表示为在主干道拣货路径上第i个碰到的待进入巷道口,则
若待进入巷道口有m个,用DP表示所有拣货点都拣完之后的路径长度之和,用RP表示所有拣货点的路径,用TSPP(G)输出拣货员的步行路径和长度,则
TSPP(G)=(RP,DP)
那么可将多个目的地货格的拣货路径表示为:
TSPP(G)=TSPC(G)+TSPP(G)
主干道拣货路径选择模块543,若计算主干道上的拣货路径有一条最短路径,则选取该最短路径为拣货路径;若计算主干道上的拣货路径有多条最短路径,则比较不同主干道上的拣货路径下,巷道中的拣货路径,选取巷道中的拣货路径最短所对应的主干道上的路径为拣货路径。
拣货路径输出模块550,将所述拣货路径以电子数据的形式输出。根据本发明的实施例,可以将计算好的拣货路径输出到拣货系统400,拣货系统400可以根据拣货路径安排拣货。
可以理解的是,订单数据读取模块510、目的地货格确定模块520、待进入主干道确定模块530、拣货路径计算模块540、拣货路径输出模块550、以及它们的子模块中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,订单数据读取模块510、目的地货格确定模块520、待进入主干道确定模块530、拣货路径计算模块540、拣货路径输出模块550、以及它们的子模块中的至少一项可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以以用于对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,订单数据读取模块510、目的地货格确定模块520、待进入主干道确定模块530、拣货路径计算模块540、拣货路径输出模块550、以及它们的子模块中的至少一项可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。
图9是示出了根据本公开实施例的拣货路径计算系统600的框图。拣货路径计算系统600包括处理器610,例如通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器610还可以包括用于缓存用途的板载存储器。处理器610可以是用于执行参考图4描述的根据本发明实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
拣货路径计算系统600还可以包括具有非易失性或易失性存储器形式的至少一个可读存储介质620,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
可读存储介质620包括计算机程序621,该计算机程序621包括代码/计算机可读指令,其在由处理器610执行时使得处理器610可以执行例如上面结合图4所描述的方法流程及其任何变形。
计算机程序621可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序621中的代码可以包括一个或多个程序模块,例如包括621A、模块621B、……模块621F。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器610执行时,使得处理器610可以执行例如上面结合图3和4所描述的方法流程及其任何变形。
根据本发明的实施例,拣货路径计算600还可以包括用于从其他实体接收信号的输入单元630、以及用于向其他实体提供信号的输出单元640。输入单元630和输出单元640可以被布置为单一实体或者是分离的实体。输入单元630和输出单元640可以在处理器610的控制下,用于拣货路径计算系统600与电商平台系统200、仓储数据库系统300和拣货系统400之间的交互。
结合图3和图6所示,根据本发明的实施例,订单数据读取模块510、目的地货格确定模块520、待进入主干道确定模块530、拣货路径计算模块540以及拣货路径输出模块550以及它们的子模块可以实现为参考图9描述的计算机程序模块,其在被处理器110执行时,可以实现上面描述的相应操作。
尽管已经参照本发明的特定示例性实施例示出并描述了本发明,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本发明的精神和范围的情况下,可以对本发明进行形式和细节上的多种改变。因此,本发明的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。