在收集收集器上负载期间可减少无序的对自动化分配系统中负载进行排序的方法

文档序号:1387219 发布日期:2020-08-18 浏览:10次 >En<

阅读说明:本技术 在收集收集器上负载期间可减少无序的对自动化分配系统中负载进行排序的方法 (Method for ordering loads in an automated distribution system that reduces out-of-order during collection of loads on collectors ) 是由 让-米歇尔·科林 布兰丁·瓦彻 安托万·约格莱特 德里坦·内斯 于 2020-02-10 设计创作,主要内容包括:一种用于对自动负载分配系统中负载进行排序的方法,该系统包括k≥2的k个源(S1-S5);至少一个目的地;k个FIFO型源缓冲设备,每个设备接收从k个源之一中出来的负载;收集器,收集从所述k个源缓冲设备中出去的负载并将其传送到所述至少一个目的地,所述收集器包括k个连续的节点,每个节点被配置为收集从所述源缓冲设备之一中出去的负载;控制系统被配置为处理客户订单,每个客户订单列出给定目的地的负载,并且每个给定目的地的负载与目的地排序顺序号相关联。控制系统执行以下步骤:建立包含要收集的n个负载的收集列表,并相对于目的地排序顺序号以上升顺序方式减少n个负载的无序,其中n个负载被容纳在源缓冲设备中,&lt;Image he="79" wi="348" file="DDA0002381711690000011.GIF" imgContent="drawing" imgFormat="GIF" orientation="portrait" inline="no"&gt;&lt;/Image&gt;其中p(i)是第i个源缓冲设备中要收集的负载数;以及,控制(32)收集器和源缓冲设备,以遵循所述收集列表执行对收集器上负载的收集。(A method for ranking loads in an automatic load distribution system, the system comprising k sources of k ≧ 2 (S1-S5); at least one destination; k FIFO type source buffer devices, each device receiving a load coming from one of the k sources; a collector that collects outgoing loads from the k source buffer devices and transmits them to the at least one destination, the collector comprising k consecutive nodes, each node configured to collect outgoing loads from one of the source buffer devices; the control system is configured to process the customer order,each customer order lists the load for a given destination, and the load for each given destination is associated with a destination sort order number. The control system performs the following steps: establishing a collection list containing n loads to be collected, and reducing the unordered number of n loads in an ascending order relative to a destination sort order number, wherein the n loads are accommodated in a source buffer device, wherein p (i) is the number of loads to be collected in the ith source buffer device; and controlling (32) the collector and the source buffering device to perform collection of the load on the collector following the collection list.)

在收集收集器上负载期间可减少无序的对自动化分配系统中 负载进行排序的方法

技术领域

本发明的领域是物流领域,尤其是自动负载分配系统的领域。

更具体地,本发明涉及一种用于在这种自动化分配系统中对负载进行排序的方法。

一般来说,自动化分配系统包括:

·k个源,k≥2;

·至少一个目的地;

·k个FIFO(先进先出)类型的源缓冲设备,每个源缓冲设备接收从k个源之一中出来的负载;

·收集器,收集从k个源缓冲设备中出来的负载并将其传送到所述至少一个目的地,该收集器包括k个连续的节点,每个节点被配置为收集从k个源缓冲设备之一中出去的负载;和

·控制系统,配置为处理客户订单,每个客户订单列出将从源中提取并提供给给定目的地的负载,理想情况下以给定目的地的上升顺序次序(可以是严格的上升顺序次序),例如“1 2 3 4 5”,或不严格的,例如“1 1 2 2 2 3 4 4 5”)。每个给定目的地的负载都与目的地排序顺序号相关联。

因此,一般来说,从k个源缓冲设备输出的负载形成k个负载输入流,并且在收集器上收集之后的负载形成负载输出流,这里的问题是从k个负载输入流形成输出流(即,将k个输入流分组为一个传出流)。有必要思考在排序(或预排序)以及工作率方面尽可能高效地形成此输出流。在注意负载的输出或退出的排序顺序同时,确实希望有尽可能密集的输出流。

控制系统处理客户订单并输出指令,从而可以控制(命令)自动化分配系统的各单元,尤其是源、FIFO型源缓冲设备、收集器以及目的地。该控制系统是,例如,中央仓库管理系统或仓库控制系统(WCS)。

当自动化分配系统的每个源是储存库的一部分(此部分在下文中也称为“储存单元”)并且自动化分配系统的每个目的地是客户订单准备站或拣配站时,可以特别地但不排他地应用本发明。

然而,很明显,在不脱离本发明的框架的情况下可以设想许多替代方案。例如,每个源可以定义为一个仓库、包含多个储存库的组,或者仍旧定义为一个储存设备(比储存仓库更简单)。

背景技术

在下文中,我们将特别努力描述在使用自动化分配系统来准备包裹的特殊情况下存在的问题。当然,本发明不限于该特定应用。

包裹准备系统更特别地被用于公司的邮购和小批量销售。这些准备包裹的自动化系统的用户的主要示例是办公设备、服装、化妆品、机械工程行业中的工具和备件的供应商。这些系统使得可以在最短的时间内以最少的劳动力并通过精确的库存跟踪来准备与精确的客户订单相对应的包裹,该客户订单涉及不同数量的不同产品,每种产品其相应的数量由客户订单行标识(每个客户订单行都定义了所需产品所在的储存容器)。

在本申请人提交的专利FR2915979A1中特别描述了这种自动包裹准备系统的一个例子。它包括例如:

·自动化储存库,在储存容器中容纳产品(对应于上述负载),每个储存容器都与单一的产品参考关联(这些容器也可以是包含特定客户订单和/或混合产品的容器);

·客户订单准备站或分拣站,操作员在这里将产品分拣并放置在包裹(发货容器)中。

·一组输送机,从储存库到客户订单的准备或调度站,运送产品所在的储存容器,反之亦然;和

·仓库控制系统(WCS)。

自动储存仓库包括例如四个储存单元,每个储存单元由一条通道形成,该通道在两侧具有多个叠加储存层的储存架(或搁架单元),每个储存架都沿其长度细分成储存位置(也称为单元格),每个位置旨在容纳一个储存容器。在每个储存层,每个通道都接收用于移动转移设备(也称为收集和运输手推车或穿梭车)的轨道,该转移设备移动储存容器,以便可以将其放置在储存位置内并从这些位置取货。轨道通常由两个平行的轨道形成,并且手推车配备有在这些轨道上移动的轮子。手推车不仅可以在给定的储存层上水平移动,而且还可以通过放在通道的一端或两端(甚至中间)的升降机(也称为上/下升降机或螺旋输送机或小型升降机)在运载或不运载储存容器时从一条通道的一层移到另一层。这些升降机还使得能够将放置在手推车上的储存容器向输送机组传送。

根据这些储存容器彼此跟随以到达客户订单准备或拣配站所遵循的排序顺序,以及这些储存容器在储存仓库中的位置、手推车和储存仓库升降机的可用性,控制系统管理与每个包裹(发货容器)相关的客户订单并列出储存容器(货物)。这样做的目的是优化所有移动和包裹准备时间,并确保正在准备的包裹到达准备站和与该正在准备的包裹相关的客户订单中列出的储存容器到达准备站之间的同步。

现在参考图1A,1B和1C(它们对应于客户订单处理的三个连续状态),我们更详细地介绍了一种用于解决客户订单(以及对相应负载进行排序)的第一种已知解决方案,借助于自动化包装准备系统的特定环境(如上所示)中的控制系统。为了简化起见,在这些图中并没有表示自动化分配系统的所有构成要素。

图1A仅显示了四个储存单元A1至A4的末端,它们是自动化储存库的一部分,并构成了四个负载储存源:多个FIFO(先进先出)类型的缓冲设备11至14,每个放置在紧邻四个储存单元A1至A4之一的下游;收集器15(例如由一个或多个传送带组成)经由节点21至24收集从源缓冲装置11至14出来的负载并将其向上传送至客户订单准备站(目的地)16。因此,收集器15用于使客户订单准备站16相对于自动仓库离开原位。实际上,这些建筑物并不总是能够将客户订单准备站放置在仓库的旁边。

图1C仅呈现了:收集器15;客户订单准备站16(例如,包括一个或多个输送机)并构成接收货物的目的地;FIFO类型的目的缓冲设备17放置在订单准备站16的上游,以通过节点25接收负载。

在此示例中,假设客户订单以给定的目的地连续顺序列出了八个负载,这些负载对应于图中负载所显示的参考编号1至8的上升顺序。换句话说,客户订单准备站16必须按从1到8的顺序接收这8个负载。还假定标号3和6的负载储存在源A1中,标号1和2的负载为储存在源A2中,标号4和7的负载储存在源A3中,标号5和8的负载储存在源A4中。

为了处理上述客户订单,控制系统在控制每个源A1到A4时执行第一“源内”调度(在从源退出之前进行调度),以使储存在其中的客户订单的负载根据给定的目的地顺序从那里出去。因此,如图1A所示,源缓冲设备11(相对于源A1位于下游)依次接收标号3和6的负载。源缓冲设备12(相对于源A2位于下游)依次接收标号1和2的负载。源缓冲设备13(相对于源A3置于下游)依次接收标号4和7的负载。源缓冲设备14(相对于储存单元A4相对于下游放置)依次接收标号5和8的负载。

然后,控制系统通过控制源缓冲装置11至14和节点21至24,从而执行第二“源间”调度(从源中出去之后进行调度),以便在收集器15上收集时,客户订单中列出的负载将按所需的目的地顺序放置。为此,在每个节点21至24上应用决策规则(注入和前馈规则)。

注入规则:对于从源A1到A4之一到达节点的负载(通过源缓冲设备11到14之一):如果该节点是负载,则将该负载注入到该节点下游的收集器15中目的地最上游;对于除目的地上游最远的一个节点以外的其他节点,如果在源缓冲设备之一或收集器中,此节点的上游没有其他具有较低目的地排序顺序号的负载,则注入负载,并且在连接到其他节点的源缓冲设备之一中,此节点的下游不存在其他具有较低目的地排序顺序号的负载(如果没有,则不进行注入);例如,即使准备通过节点23从源缓冲设备13中出来,只要标号1、2和3的负载位于源缓冲装置21和22之一中的节点的上游或在收集器15上,标号4的负载就不会注入到收集器15中。

正向馈送规则:对于已经存在于收集器15上并到达一个节点(来自另一个上游节点)的负载:如果所连接的源缓冲设备中不存在其他具有较低目的地序号的负载,则该负载向前移动到这个节点(如果没有,它不会前进);例如,如果假定标号3的负载已放置(注入)到收集器15中,则当将其显示给节点22时,只要标号1和2的节点位于连接到该节点22的源缓冲设备12中,负载就不会向前移动。

图1B示出了参考1至8的负载在已经按照期望的目的地顺序(1至8)被收集(放置)之后由主收集器15运输。如图1C所示,控制系统控制目的地缓冲设备17,以使负载(经由参考标号25的节点进入其中,已经按目的地的期望排序的负载)以所需的速率从那里出来,以便呈现给客户订单准备站16。

如图1A到1C(及其注入和向前进给规则)所示,此技术的一个缺点是收集器的填充率(因此流出该收集器时的流量)不是最佳的。

为了克服上述缺点,在本申请人提交的专利申请FR3058708A1中描述了第二种已知解决方案。该已知解决方案的一般原理在于,与以上所述的第一现有技术解决方案相比,进行更精细的分析,以确定是否可以将来自源的负载注入到被分析的节点处。因此,在某些情况下,第二种已知解决方案导致负载的注入(同时确保没有相互阻塞的风险),而第一种已知解决方案导致负载的不注入。因此,第二种已知解决方案增加了收集器的填充率(因此增加了从收集器流出的流量)。这也减少了负载在通过节点注入到收集器之前的等待时间。

但是,上文所述的第一种和第二种已知解决方案有两个缺点:

·它们对货源施加了严格的约束,因为“货源内”计划(即,在从货源中出去之前)规定,对于每个给定的客户订单,货源中的负载均遵循负载目的地排序顺序号的上升顺序进行调度;和

·它们对源缓冲设备和收集器施加了严格的约束,因为“源间”调度(即,在退出源之后)指示在收集器上收集负载的过程中要遵循负载目的地排序顺序号的上升顺序(换句话说,在收集器上的收集结束时,负载没有可能出现无序)。

为了克服这些缺点,存在第三种已知解决方案,其旨在消除对源、源缓冲装置和收集器的上述沉重限制。该控制是这样的:如果收集器上有可用空间来准备从源缓冲设备中出来的负载,则将负载收集在收集器上。利用该第三种已知解决方案,负载可以无序地从源中出来,并且可以无序地收集在收集器上。但是,如果必须在负载到达目的地位置时遵守负载目的地顺序编号的上升顺序,则必须执行排序(也称为调度),即根据所需的目的地连续顺序进行排序,在将负载收集到收集器上之后重新排序。为此,在收集器和一个或多个目的地之间放置至少一个负载排序和缓冲储存系统(或设备)。在本申请人提交的专利申请FR3051948A1、FR3045583A1和FR3031510A1中描述了这种排序和缓冲储存系统的例子(它们的内容通过引用插入本文)。

但是,第三个已知解决方案也有缺点:

·等待收集器上的自由空间会导致在一个或多个源缓冲设备(尤其是位于收集器下游最远的一个)中的不希望的负载累积;

·从收集器出去的负载流可能会变得无序,这意味着未使用收集器的全部机械容量(负载在收集器上彼此之间的间隔比必要的更多,从而造成空间损失并减少生产线末端的生产率);和

·在收集器上按顺序收集货物的顺序不考虑目的地排序顺序号的上升顺序;如有必要,对负载的任何重新排序完全取决于放置在收集器和目的地之间的负载排序和缓冲储存系统。这进一步增加了负载排序和缓冲储存系统的复杂性和容量。

发明内容

在本发明的一个特定实施例中,提出了一种由自动化负载分配系统中的控制系统实施的对负载进行排序的方法,所述自动化负载分配系统包括:

-k≥2的k个源的组G;

-至少一个目的地;

-“先进先出”类型的k个源缓冲设备,每个源缓冲设备都接收从所述k个源之一中出来的负载;

-收集器,所述收集器收集从所述k个源缓冲设备中出来的负载并将它们传送到所述至少一个目的地,所述收集器包括k个连续的节点,每个节点被配置为收集从所述源缓冲设备之一中出来的负载;以及

-所述控制系统,被配置为处理客户订单,每个客户订单列出给定目的地的负载,并且每个给定目的地的负载都与目的地排序顺序号相关联;

其特征在于,所述控制系统执行以下步骤:

-建立包含要收集的n个负载的收集列表LC,并相对于目的地排序顺序号以上升顺序方式减少使用无序计算函数计算的所述n个负载的无序,所述n个负载被容纳在源缓冲设备中,其中p(i)是第i个源缓冲设备中要收集的负载数;以及

-控制收集器和源缓冲设备以按照所述收集列表LC执行对收集器上负载的收集。

因此,所提出的解决方案提出了一种全新的发明方法,其中控制系统在遵守目的地排序顺序号的上升顺序的轻约束(light constraint)下,控制收集器和源缓冲设备以执行收集出自源缓冲设备的负载。在收集器上收集负载期间,违反此轻约束(lightconstraint)会产生无序,而建议的解决方案可以减少这种无序。

因此,提出的解决方案减轻了第一和第二已知解决方案的缺点以及第三已知解决方案的缺点。特别地,所提出的解决方案没有对源、源缓冲设备和收集器造成(制定)上述强制(重)约束,而仅仅是对源缓冲设备和收集器的轻约束(即可以被违反的约束,在这种情况下,无序将被减少)。此外,减少收集过程中的无序情况有利于目的设备的工作(如果这些目的地不强制遵守到达这些目的地的负载的目的地排序顺序号的上升顺序的话),或者减少了负载排序和缓冲储存系统(如果在收集器和目的地之间或者目的地之间放置一个该缓冲储存系统,以确保遵守到达一个或多个目的地的负载的目的地排序顺序号的上升顺序)的工作。

在第一实施例中,用于建立收集列表LC的所述步骤包括以下步骤:

(a)初始化具有单个状态einit=(Uinit,Linit)的第一状态集E1,其中Uinit是包含k个零的k元组,而Linit是空列表;

(b)用空值初始化第二状态集E2;

(c)对于n个连续的建立步骤中的每个建立步骤:

(c.1)对于E1的每个状态e,e=(U,L),其中U是包含k个单元的k元组,U=(z1,…,zk),zi为取自第i个源缓冲设备的负载数,i∈{1,...,k},L是与U相关的负载的列表:

(c.1.1)对于f∈{1,...,k}的每个值:

(c.1.1.1)如果U(f)<p(f),其中U(f)是L中包含的第f个源缓冲设备的负载数,而p(f)是要在第f个源缓冲设备中收集的负载数:

-i-创建从e=(U,L)开始的新状态eN=(UN,LN),对U(f)加1并在L的末尾加上在第f个源缓冲设备中容纳的负载序列中占第U(f)+1个位置的负载;

-ii-使用相对于目的地排序顺序号的上升顺序的无序计算函数,计算新状态eN的列表LN的无序值d;

-iii-如果E2包含另一个新状态eNa=(UNa,LNa),其中UNa=UN且da为列表LNa的无序值:如果d<da,eN替换E2中的eNa,而如果d≥da,则eN不插入E2中;

-iv-如果E2不包含其他所述新状态eNa,则将eN插入E2;

(c.2)如果所述建立步骤不是第n个建立步骤:E2’变成新的状态集E1’(1215),并且所述操作转到下一个建立步骤;

(c.3)如果所述建立步骤是第n个建立步骤:E2包含单个最终状态eF=(UF,LF),并且LF形成所述收集列表LC

因此,控制系统可以建立具有最佳结果的收集列表,并以高性能(在计算时间、复杂性等方面)简单、自动地做到这一点。

在第二种实现中,用于建立收集列表LC的步骤包括以下步骤:

(A)建立至少一个由k’个源缓冲设备组成的组G’,其中k’≥2并且k’<k;

(B)对于该组或对于每个组G’,建立包含要收集的n’个载荷的收集列表LC’,并相对于目的地排序顺序号的上升顺序减少用所述无序计算函数计算的所述n’个载荷的无序,所述n’个负载包含在k’个源缓冲设备中,其中p(i)是要在k’个源缓冲设备的第i个中收集的负载;

(C)修改组G,对于该组或对于每个组G’,通过用一个包含按所述收集列表LC’的排序顺序的n’个负载的虚拟源缓冲设备来替换k’个源缓冲设备;

(D)如果修改后的组G包含多个源缓冲设备,则对修改后的组G重复步骤(A)至(D);如果修改集G包括单个源缓冲设备,则所述收集列表LC’形成所述收集列表LC

这样,在执行涉及k个源缓冲设备和它们包含的n个负载的通用算法时,不是直接建立收集列表LC(在第一种实现的情况下),第二种实施例依赖于迭代地建立组列表LC,每次迭代时将建立一个或多个组列表LC’(每个列表包含k’个源缓冲设备中包含的n’个负载,k’≥2,k’<k)。因此,与第一实施例相比,可以在改善的时间(即,在较短的时间范围)方面获得结果。

如果不同的组G’没有共同的源缓冲设备,则在步骤(A)中可以建立几组G’,每组包括k’个源缓冲设备。在这种情况下,在步骤(B)中,可以并行地处理不同的组G’以建立不同的列表LC’(然后将在步骤(C)中使用它),从而进一步减少了计算时间。

根据第二种实施例的一个特定特征,建立收集列表LC’的组或每个组G’包括以下步骤:

(a)初始化具有单个状态e’init=(U’init,L’init)的第一状态集E1’,其中U’init是包含k’个零的k’元组,而L’init是空列表;

(b)用空值初始化第二状态集E2’;

(c)对于n个连续的建立步骤中的每个建立步骤:

(c.1)对于E1’的每个状态e’,e’=(U’,L’),其中U’是包含k’个单元的k’元组,U’=(z1,…,zk’),zi是k’个源缓冲设备中的第i个中接收的负载数,i∈{1,...,k′},L’是与U’相关的负载的列表:

(c.1.1)对于f∈{1,...,k′}的每个值:

(c.1.1.1)如果U’(f)<p(f),其中U’(f)是L’中包含的第f个源缓冲设备的负载数,而p(f)是要在第f个源缓冲设备中收集的负载数:

-i-创建从e’=(U’,L’)开始的新状态e’N=(U’N,L’N),对U’(f)加1并在L’的末尾加上在第f个源缓冲设备中容纳的负载序列中占第(U’(f)+1)个位置的负载;

-ii-使用相对于目的地排序顺序号的上升顺序的无序计算函数,计算新状态e’N的列表L’N的无序值d’;

-iii-如果E2’包含另一个新状态e’Na=(U’Na,L’Na),其中U’Na=U’N且d’a为列表L’Na的无序值:如果d’<d’a,e’N替换E2’中的’eNa,而如果d’≥d’a,则e’N不插入E2’中;

-iv-如果E2’不包含其他所述新状态e’Na,则将e’N插入E2’;

(c.2)如果所述建立步骤不是第n’个建立步骤:E2变成新的状态集E1,并且所述方法转到下一个建立步骤;

(c.3)如果所述建立步骤是第n’个建立步骤:E2’包含单个最终状态e’F=(U’F,L’F),并且L’F形成所述收集列表LC’。

以此方式,以非常短的计算时间,获得了可实现的解决方案,并且即使该解决方案不是最优的,所获得的收集列表LC的无序也仅与最优无序相差很小。通过比较,第一种实施例给出了最佳结果,但是需要一个计算时间,其会随着k和n的增加而显着增加(仅在最多三个通道或大约30个负载的情况下,计算时间小于0.2秒)。

根据第二实施例的一个特定特征,k’=2。

以此方式,可以显着改善计算时间并在改善的时间(即在较短的时间范围内)获得收集列表LC

根据第二种实施例的一个特定特征,该方法还包括:

-至少两次执行建立收集清单LC的步骤,其中至少一个组G’彼此不同,每次执行提供一个结果;和

-选择结果之一。

因此,我们获得了几个收集列表LC,并保留了最佳的(即显示最低无序的)收集列表。

根据第二实施例的一个特定特征,通过应用操作搜索技术来进行所述至少两次执行和所述选择。

这样,我们避免了计算所有可能的情况(即所有可能的组G’),因此减少了所需的计算,同时又有可能接近或获得最佳解。

根据一个特定的特性,在步骤(c.1.1.1)中,所述控制系统还验证(506a)是否N(f)<yf,其中N(f)是连续放置在L或L’中的所述第f个源缓冲设备的最长负载序列,且yf是预定阈值。另外,在一方面,仅当U(f)<p(f)或U’(f)<p(f)并且,在另一方面,N(f)<yf时才执行步骤(i)至(iv)。

这样,限制了在同一源缓冲设备中连续收集的负载数量。这样可以平衡收集列表中负载的出处(就源和源缓冲设备而言)。

根据一个特定的特征,步骤-ii-之后是以下步骤:

-iia-如果d>dH或d’>d’H,dH和d’H是预定值,则新状态eN,e’N分别都不插入E2’,并且不执行步骤(iii)和(iv)。

这简化了控制系统进行的计算(需要管理的状态更少)。

根据一个特定的特征,预定值dH,d’H的计算如下:

-建立包含分别所述n,n’个负载的参考列表LH,L’H,其建立如下:

*LH,L’H的第一个负载分别是真正准备好要从所述k和k’个源缓冲设备中出去的负载中具有最小目的地排序顺序号的负载;

*假设LH,L’H的先前负载已分别从所述k,k’个源缓冲设备中移出,LH,L’H的每个后续负载分别是准备分别从所述k,k’个源缓冲设备中出来的负载中具有最小目的地排序顺序的负载;

-使用所述无序函数分别计算dH,d’H,作为列表LH和L’H的无序值。

因此,为了计算无序dH和d’H的预定值,我们使用启发式方法(一种快速给出不一定是最优解的解决方案的计算方法)。所提出的启发式方法易于实现。

在一个特定的实现中,针对q个负载的列表M,所述无序计算函数表述为:

其中K(i)是所述列表M中在第i个负载之前的负载的数量,并且所述在第i个负载之前的负载的目的地排序顺序号小于或等于列表M的第i个负载的排序顺序号。

与目的地排序顺序号的严格的上升顺序(例如“1 2 3 4 5”)或非严格的上升顺序(例如“1 1 2 2 2 3 4 4 5”)相比,无序计算函数H(M)为计算无序提供了高性能的解决方案。

在实现的变体中,可以使用用于计算无序的其他函数(请参见下文)。

根据一个特定的特征,给定客户订单的负载必须以给定的目的地上升顺序排序顺序到达给定的目的地,并且其中所述控制系统执行用于控制至少一个排序装置的步骤,所述至少一个排序装置放置在所述收集器和所述至少一个目的地之间,用于校正所述n个负载的无序。

因此,在这种情况下,提出的解决方案确保遵守到达一个或多个目的地的负载的目的地排序顺序号的上升顺序。另外,如上所述,在这种情况下,所提出的解决方案减少了负载排序和缓冲储存系统的工作(与第三种现有技术解决方案相比)。实际上,调度工作部分地由特定的收集机制、由收集器对从源缓冲设备种出来的负载进行,以及部分由排序和缓冲储存系统完成。

根据一个特定的特征,所述控制系统在用于建立所述收集列表的步骤之前,对包含在所述源缓冲设备之一中的至少一组R个连续负载执行以下步骤,其中R为大于或等于2的整数:根据R个负载的目的地排序顺序号计算替代的目的地排序顺序号。另外,为了执行建立所述收集列表的步骤,控制系统对所述R个负载中的每个负载使用所述替代的目的地排序顺序号。

这样,R个负载的同一组负载将在组列表中彼此接替。例如,为了遵守高性能的机械限制,这可以相应地设置速度,以使这些R个负载进入相关的源缓冲设备(以及这些R个负载从相关源中退出)。

根据一个特定的特征,根据所述R个负载的目的地排序顺序号来计算替代的目的地排序顺序号,包括:

-计算所述R个负载的目的地排序顺序号的平均值;

-根据所述R个负载的目的地排序顺序号计算所述R个负载的无序值;

-如果所述R个负载的无序值高于预定阈值,则所述替代的目的地排序顺序号是向上取整至相邻整数的平均值;如果不是,则所述替代的目的地排序顺序号是向下取整至相邻整数的平均值。

这简化了控制系统对替代的目的地排序顺序号的计算。

根据一个特定的特征,当至少一个新负载进入到所述源缓冲设备之一中,导致对要在所述源缓冲设备中收集的所述负载的修改,以及由此对要在所述k个源缓冲设备的组中收集的所述n个负载的修改,启动所述方法的步骤的新的执行。

这样,一旦要收集的n个负载发生变化,所提出的解决方案便可以在该方法的新执行中动态地使用。

本发明的另一个实施例提出了一种计算机程序产品,该计算机程序产品包括当在计算机上执行所述程序时用于实现上述方法(在其不同实施例中的任何一个中)的程序代码指令。

本发明的另一实施例提出使用储存计算机程序的计算机可读和非暂时性储存介质,该计算机程序包括可由计算机执行以实现上述方法(在其不同实施例中的任何一个中)的指令集。

本发明的另一个实施例提出了一种自动负载分配系统,包括:

-k≥2的k个源;

-至少一个目的地;

-“先进先出”类型的k个源缓冲设备的组G,其每个源缓冲设备都接收从所述k个源之一中出来的负载;

-收集器,所述收集器收集从所述k个源缓冲设备中出来的负载并将它们传送到所述至少一个目的地,所述收集器包括k个连续的节点,每个节点被配置为收集从所述源缓冲设备之一中出来的负载;以及

-控制系统,被配置为处理客户订单,每个客户订单列出给定目的地的负载,并且每个给定目的地的负载都与目的地排序顺序号相关联;

所述控制系统包括计算机,其配置为:

-建立包含要收集的n个负载的收集列表LC,并相对于目的地排序顺序号以上升顺序方式减少所述n个负载的无序,所述n个负载被容纳在k个源缓冲设备中,其中p(i)是第i个源缓冲设备中要收集的负载数;以及

-控制收集器和源缓冲设备以按照所述收集列表LC执行对收集器上负载的收集。

有利地,该控制系统包括其在如上文在其不同实施例中的任何一个中所述的用于排序负载的方法中执行的步骤的实施例。

附图说明

以下通过指示性和非限制性示例给出的描述以及附图,可以体现本发明的其他特征和优点,其中:

-已经参考现有技术对图1A,1B和1C进行了描述,其示出了使用第一个已知解决方案处理客户订单的三种状态(收集器上收集之前的负载、收集器上收集之后的负载以及从收集器出来后到达拣选或准备站的负载);

-图2示出了自动化分配系统的示例的框图,其中可以实现根据本发明的负载排序方法;

-图3示出了根据本发明的一个特定实施例的负载排序方法的流程图;

-图4示出了根据本发明的一个特定实施例的控制系统的结构;

-图5示出了图3的步骤31的第一个特定实施例的算法(建立收集或拣配列表LC);

-图6示出了由图5的算法浏览(browsed by)的状态树的示例;

-图7A、7B和7C示出了在根据本发明的负载排序方法的具有单个目的地的第一实施例中的处理客户订单的三种状态(在收集器上收集之前的负载,在收集器上收集之后的负载以及最终调度之后的负载);

-图8A、8B和8C示出了在根据本发明的负载排序方法的具有多个目的地的第二实施例中的处理客户订单的三种状态(在收集器上收集之前的负载,在收集器上收集之后的负载以及最终顺序安排之后的负载)。;

-图9A和9B示出了根据本发明的负载排序方法的使用替代的目的地排序顺序的第三实施例中的处理客户订单的两种状态(在收集器上收集之前的负载和在收集器上收集之后的负载)。

-图10示出了图3的步骤31的第二特定实施例的算法(建立收集列表LC);

-图11A示出了图10的第二实施例的应用的第一示例,具有四个源缓冲器设备F1至F4的组G,并且k’=2;

-图11B示出了图10的第二实施例的应用的第二示例,具有四个源缓冲设备F1至F4的组G,并且k’=2;

-图12示出了在图10的步骤1002内,为k’个源缓冲设备的组G’建立收集列表LC’的一个特定实施例的算法;

-图13示出了图3的步骤31的第三特定实施例的算法(建立收集列表LC);

-图14示出了在四个源缓冲装置F1至F4的组G的情况下,k’=2个的源缓冲装置(每个是真实的或虚拟的)的组G’的多个可能组合。

具体实施方式

在本发明的所有附图中,相同的元件和步骤由相同的附图标记表示。

图2示出了自动化分配系统的示例的框图,其中可以实现根据本发明的负载排序方法。在此示例中,系统包括五个源S1至S5(例如,储存仓库的不同部分(储存单元)),五个目的地D1至D5(例如客户订单拣配或准备站),收集器1(例如由一个或多个传送带组成),排序和储存缓冲设备或系统91和控制系统90(例如WCS类型)。在此示例中,纯粹是为了举例说明源的数量和目的地的数量。更一般地,该系统包括k≥2的k个源以及至少一个目的地。

如上面已经进一步解释的,收集器1被配置为将负载传输到每个目的地,并且包括多个连续的节点:被标记为N1至N5的那些节点分别被配置为收集从源S1至S5之一中出来的负载,而被标记为N1’至N5’的节点均被配置为将负载引向目的地D1至D5之一。这些节点中的每一个包括例如90度或45度的传送设备。

源S1至S5中的每个都例如通过FIFO型源缓冲设备F1至F5连接到节点N1至N5之一。类似地,每个目的地D1至D5都例如通过FIFO类型的目的地缓冲设备F1’至F5’连接到节点N1’至N5’之一。

在每个目的地的上游,排序和缓冲储存系统91使得能够以目的地的上升顺序对该目的地进行负载的最终调度。如下面进一步详细描述的,公认的是,在收集器上的负载收集结束时,这些负载是无序的(相对于目的地的上升顺序而言)。排序和缓冲液储存系统91消除了这种无序。

在一个变体中,约束对于目的地而言是更灵活的,并且公认的是,到达该目的地的负载不遵守目的地排序顺序号的上升顺序。在该变体中,每个目的地上游的排序和缓冲储存系统91被省略(不存在)或用于执行仅是部分的最终调度(即,有时仅减少上述无序而不消除它)。

在另一种变型中,没有多个排序和缓冲储存系统91(每个目的地的上游和收集器1的下游),而只有一个排序和缓冲储存系统91(目的地组的上游)。

控制系统90被配置为处理客户订单,每个订单列出将从源中提取的负载,并且理想地(参见上文的讨论)以给定的目的地上升顺序提供给给定的目的地。

例如,它实现了根据下面参考图5和图6,图10(第一实施例)和图12(第二实施例)或图13(第三实施例)所述的特定实施例之一的负载排序方法。

现在参考图3,我们提出了根据本发明的一个特定实施例的负载排序方法。该方法由控制系统90实现。

在步骤31中,控制系统90准备一个收集列表LC,该列表包含要收集的n个负载,并且相对于目的地排序顺序号的上升顺序,减少了n个负载的无序(用无序计算函数计算的)。n个负载包含在源缓冲设备F1至F5中。我们得到:其中p(i)是第i个源缓冲设备中要收集的负载数。下面参考图5描述用于建立收集列表的该步骤31的一种特定实施例。下面还参照图10和图12进一步描述第二实施例,并且参照图13进一步描述第三实施例。

在步骤32中,控制系统90控制收集器1和源缓冲设备F1至F5,以便根据收集列表来执行(在收集器上的)负载的收集。

如果给定客户订单的负载必须以给定的目的地上升顺序到达给定的目的地,则执行步骤33,其中控制系统90控制排序和缓冲储存系统91以校正n个负载的无序。

在测试步骤34中,控制系统90验证至少一个进入源缓冲设备F1至F5之一的新的负载,从而导致对要收集在该源缓冲设备中的负载进行修改,并因此导致对在k个源缓冲设备的组中要收集的n个负载进行修改。在测试步骤34处的肯定响应的情况下(即,在要收集的一组n个负载的修改的情况下),控制系统90启动该方法的步骤的新执行。

在一个变体中,负载排序方法包括预备步骤30,其在下面参考图9A和9B进一步描述。

图4示出了根据本发明的一个特定实施例的控制系统90的结构。该控制系统包括随机存取储存器92(例如RAM)和处理单元91,其例如配备有处理器并且由储存在只读储存器93(例如ROM或硬盘驱动器)中的计算机程序930驱动。

在初始化时,计算机程序的代码指令例如被加载到随机存取储存器92中,然后由处理单元91的处理器执行以实现本发明的负载排序方法(例如,根据图3实施例的任何一种实施)。处理单元91输入命令(也称为“指令”)94。处理单元91的处理器处理这些命令94并在输出时生成其他命令(也称为“指令”)95,以实现控制(或命令)自动化分配系统中包含的不同单元,尤其是源S1到S5、FIFO型源缓冲设备F1到F5、收集器1、目的地D1到D5、FIFO型目的地缓冲设备F1’到F5’以及排序和缓冲储存系统91。

该图4仅示出了在其任一实施例中的几种可能方式中实施本发明的技术的一种特定方式。实际上,控制系统可以在执行包含指令序列的程序的可重编程计算机(例如PC计算机、DSP处理器、微控制器等)上或专用计算机(例如,一组逻辑门,例如FPGA或ASIC或任何其他硬件模块)。

如果控制系统具有可重新编程的计算机,则相应的程序(即指令序列)可以储存在可拆卸的储存介质(例如软盘,CD-ROM或DVD-ROM)或不可拆卸的储存介质中,该储存介质可由计算机或处理器部分或全部读取。

图5示出了图3的步骤31(准备收集列表LC)的第一特定实施例的算法。

在步骤501中,控制系统以单个状态einit=(Uinit,Linit)初始化第一状态集E1,其中Uinit是包含k个零的k元组,而Lint是空列表。

在步骤502中,控制系统用空值初始化第二状态集E2。

在测试步骤503中,控制系统验证是否已经执行了n个连续的建立步骤(即,所有的建立步骤)。

在测试步骤503处为肯定响应的情况下,控制系统进入步骤516,在步骤516中,控制系统从包含在E2中的单个最终状态eF=(UF,LF)获得收集列表LC。实际上,它将LF作为收集列表LC

如果在测试步骤503处为否定响应,则控制系统进入测试步骤504,开始下一建立步骤的处理,转到测试步骤504,在测试步骤504中,控制系统验证是否已处理了E1的所有状态。E1的每个状态e都写为e=(U,L),其中U是一个包含k个单元的k元组,U=(z1,…,zk),其中zi是第i个源缓冲中得到的负载数,i∈(1,...,k),L是与U关联的负载的列表。

在测试步骤504处为肯定响应的情况下,控制系统进入步骤515,在该步骤中,如果建立步骤不是第n个建立步骤,则E2变为新的状态集E1,然后控制系统返回进入步骤503(进入下一个建立步骤)。

在测试步骤504处为否定响应的情况下,则控制系统进入未处理状态E1并进入测试步骤505,在该步骤中,控制系统将验证是否已用f∈{1,...,k}处理了所有f值。

在步骤505处为肯定响应的情况下,控制系统返回到步骤504。在测试步骤505是否定响应的情况下,控制系统取未处理的值f并进入测试步骤506。在步骤506中验证是否U(f)<p(f),其中U(f)是包含在L中的第f个源缓冲设备的负载数,而p(f)是要收集在L中的第f个源缓冲设备的负载数。

在测试步骤506处为否定响应的情况下,则控制系统返回到步骤505。如果在步骤506处为肯定响应,则控制系统转到测试步骤506a,在该步骤中,它会验证是否N(f)<yf,其中N(f)是连续放置在L中的第f个源缓冲装置的最大负载数,并且yf是预定值(例如,yf=6)。

在测试步骤506a处为否定响应的情况下,控制系统返回到步骤505。在测试步骤506a处为肯定响应的情况下,控制系统转到步骤507,在该步骤中,控制系统创建新状态eN=(UN,LN),从e=(U,L)开始,将1加到U(f)上,然后在L的末尾加上在第f个源缓冲设备中包含的负载序列中占据第U(f)+1个位置的负载。

步骤507之后是步骤508,在步骤508中,控制系统使用相对于目的地排序顺序号的上升顺序的无序计算函数来计算新状态eN的列表LN的无序值d。

在步骤508的一个特定实施例中,控制系统使用无序计算函数,对于q个负载的列表M,其表达为:

[等式1]

其中K(i)是位于在列表M的第i个负载之前的列表M的负载数,并且目的地排序顺序号小于或等于列表M的第i个负载的排序顺序号。

在不脱离本发明的框架的情况下,可以特别地但不排他地使用其他无序计算函数:

[等式2]

B(M)=MAX(K(i)),i∈{1,...,q}

其中K(i)如上文定义。

[等式3]

其中A(i)为当列表M的q个负载根据目的地排序顺序号的上升顺序进行重新排序时,列表M的第i个负载将占据的位置。

[等式4]

G(M)=MAX(|(A(1)-i|),i∈{1,...,q}

其中A(i)如上文定义。

例如,如果M=(3,1,8,4,7,2,6,5),我们得到:

·H(M)=([(1-1)-0]+[(2-1)-0]+[(3-1)-2]+[(4-1)-2]+[(5-1)-3]+[(6-1)-1]+[(7-1)-4]+[(8-1)-4])=12

·B(M)=4

·F(M)=(|3-1|+|1-2|+|8-3|+|4-4|+|7-5|+|2-6|+|6-7|+|5-8|)=18

·G(M)=5

步骤508之后是测试步骤509,在测试步骤509中,控制系统验证是否d>dH,dH是预定值。

在步骤509的一个特定实施例中,预定值dH计算如下:

-建立包含n个负载的参考列表LH,其建立如下:

LH的第一个负载是在真正准备好要从k个源缓冲设备中出去的负载中,具有最小目的地排序顺序号的负载;

LH每个随后的负载是在虚拟地假设LH的先前负载已经从k个源缓冲设备中出去的情况下,准备从k个源缓冲设备中出去的负载中具有最小目的地排序顺序号的负载;

-利用无序计算函数计算dH作为列表LH的无序值。

在测试步骤509处为肯定响应的情况下,则控制系统返回到步骤505。在测试步骤509中为否定响应的情况下,则控制系统转到测试步骤510,在该步骤中,控制系统验证E2是否包含另一个新状态eNa=(UNa,LNa),其中UNa=UN,da是列表L’N的无序值。

在测试步骤510处为肯定响应的情况下,控制系统转到步骤512,在步骤512中,控制系统验证是否d<da。在测试步骤512处为肯定响应的情况下,控制系统转到步骤514,在步骤514中,控制系统将eNa替换为E2中的eN。在测试步骤512处为否定响应的情况下,控制系统转到步骤513,在该步骤中,控制系统不将eN插入E2。在步骤512或步骤514结束时,控制系统返回到步骤505。

在测试步骤510处为否定响应的情况下,则控制系统转到步骤511,在该步骤中,控制系统将eN插入E2,然后返回到步骤505。

现在参考图6以及图7A7B7C,在仅具有一个目的地的第一实施例中,我们提出了利用根据本发明的负载排序方法对客户订单的处理。图7A、7B和7C分别说明了此处理过程的以下三个步骤:在收集器上进行收集之前的负载,在收集器上进行收集之后的负载以及最终调度之后的负载。

在此示例中,假设存在两个源S1和S2,以及一个目的地D1。要处理的客户订单列出了以下负载:1、2、3、4、5、6、7、8、9和10(在图中,负载由目的地排序顺序号引用)。

如图7A所示,源缓冲设备F1(在源S1的下游)包含以下五个负载:7、6、1、9和3。源缓冲设备F2(在源S2的下游)包含根据以下顺序的5个负载:8、4、5、2和10。因此,我们得到n=10,p(1)=5and p(2)=5。

下面是参考图5作进一步描述的用于初始化E1的步骤和n个建立步骤的结果(将H(M)作为无序值d的计算函数):

初始化E1的步骤

state e00=[U=(0,0);L=()];d=0

建立步骤1

state e10=[U=(1,0);L=(8)];d=0

state e01=[U=(0,1);L=(7)];d=0

建立步骤2

state e20=[U=(2,0);L=(8,4)];d=1

state e11=[U=(1,1);L=(7,8)];d=0

state e11a=[U=(1,1);L=(8,7)];d=1(不保留)

state e02=[U=(0,2);L=(7,6)];d=1

建立步骤3

state e30=[U=(3,0);L=(8,4,5)];d=2

state e21=[U=(2,1);L=(8,4,7)];d=2

state e21a=[U=(2,1);L=(7,8,4)];d=2(不保留)

state e12=[U=(1,2);L=(7,8,6)];d=2(不保留)

state e12a=[U=(1,2);L=(7,6,8)];d=1

state e03=[U=(0,3);L=(7,6,1)];d=3

建立步骤4

state e40=[U=(4,0);L=(8,4,5,2)];d=5

state e31=[U=(3,1);L=(8,4,5,7)];d=3

state e31a=[U=(3,1);L=(8,4,7,5)];d=4(不保留)

state e22=[U=(2,2);L=(8,4,7,6)];d=4

state e22a=[U=(2,2);L=(7,6,8,4)];d=4(不保留)

state e13=[U=(1,3);L=(7,6,8,1)];d=4(不保留)

state e13a=[U=(1,3);L=(7,6,1,8)];d=3

state e04=[U=(0,4);L=(7,6,1,9)];d=3

建立步骤5

state e50=[U=(5,0);L=(8,4,5,2,10)];d=5

state e41=[U=(4,1);L=(8,4,5,2,7)];d=6

state e41a=[U=(4,1);L=(8,4,5,7,2)];d=7(不保留)

state e32=[U=(3,2);L=(8,4,5,7,6)];d=5

state e32a=[U=(3,2);L=(8,4,7,6,5)];d=7(不保留)

state e23=[U=(2,3);L=(8,4,7,6,1)];d=8(不保留)

state e23a=[U=(2,3);L=(7,6,1,8,4)];d=6

state e14=[U=(1,4);L=(7,6,1,8,9)];d=3

state e14a=[U=(1,4);L=(7,6,1,9,8)];d=4(不保留)

state e05=[U=(0,5);L=(7,6,1,9,3)];d=6

建立步骤6

state e51=[U=(5,1);L=(8,4,5,2,10,7)];d=7(不保留)

state e51a=[U=(5,1);L=(8,4,5,2,7,10)];d=6

state e42=[U=(4,2);L=(8,4,5,2,7,6)];d=8

state e42a=[U=(4,2);L=(8,4,5,7,6,2)];d=10(不保留)

state e33=[U=(3,3);L=(8,4,5,7,6,1)];d=10(不保留)

state e33a=[U=(3,3);L=(7,6,1,8,4,5)];d=9

state e24=[U=(2,4);L=(7,6,1,8,4,9)];d=6

state e24a=[U=(2,4);L=(7,6,1,8,9,4)];d=7(不保留)

state e15=[U=(1,5);L=(7,6,1,8,9,3];d=7

state e15a=[U=(0,5);L=(7,6,1,9,3,8)];d=7(不保留)

建立步骤7

state e52=[U=(5,2);L=(8,4,5,2,7,10,6)];d=9(不保留)

state e’52=[U=(5,2);L=(8,4,5,2,7,6,10)];d=8

state e43=[U=(4,3);L=(8,4,5,2,7,6,1)];d=14

state e’43=[U=(4,3);L=(7,6,1,8,4,5,2)];d=14(不保留)

state e34=[U=(3,4);L=(7,6,1,8,4,5,9)];d=9

state e’34=[U=(3,4);L=(7,6,1,8,4,9,5)];d=10(不保留)

state e25=[U=(2,5);L=(7,6,1,8,4,9,3)];d=11

state e’25=[U=(2,5);L=(7,6,1,8,9,3,4)];d=11(不保留)

建立步骤8

state e53=[U=(5,3);L=(8,4,5,2,7,6,10,1)];d=15(不保留)

state e53a=[U=(5,3);L=(8,4,5,2,7,6,1,10)];d=14

state e44=[U=(4,4);L=(8,4,5,2,7,6,1,9)];d=14

state e44a=[U=(4,4);L=(7,6,1,8,4,5,9,2)];d=15(不保留)

state e35=[U=(3,5);L=(7,6,1,8,4,5,9,3)];d=15

state e35a=[U=(3,5);L=(7,6,1,8,4,9,3,5)];d=15(不保留)

建立步骤9

state e54=[U=(5,4);L=(8,4,5,2,7,6,1,10,9)];d=15(不保留)

state e54a=[U=(5,4);L=(8,4,5,2,7,6,1,9,10)];d=14

state e45=[U=(4,5);L=(8,4,5,2,7,6,1,9,3)];d=20

state e45a=[U=(4,5);L=(7,6,1,8,4,5,9,3,2)];d=22(不保留)

建立步骤10

state e55=[U=(5,5);L=(8,4,5,2,7,6,1,9,10,3)];d=21(不保留)

state e55a=[U=(5,5);L=(8,4,5,2,7,6,1,9,3,10)];d=20

因此,状态e55a是最终状态,其中列表L=(8,4,5,2,7,6,1,9,3,10)用作收集列表LC。这在图7B中被示出。在该列表被排序和缓冲储存系统91重新排序(最终调度)之后,我们获得了列表(1,2,3,4,5,6,7,8,9,10),如图7C所示出。

图6说明了在该示例中通过图5的算法浏览的状态树(更确切地说是这些状态的U值)。

现在参考图8A、8B8C,在具有多个目的地的第二实施例中,我们提出了根据本发明的利用负载排序方法对客户订单的处理。图8A、8B和8C分别说明了此处理过程的以下三个状态:收集器上收集之前的负载,收集器上收集之后的负载以及最终调度之后的负载。

在此示例中,假设存在三个源S1,S2和S3,以及四个目的地D1,D2,D3和D4。有两个要处理的客户订单,每个目的地一个。这些客户订单中的每一个列出了四个负载,这些负载具有以下顺序的目的地排序顺序号:1、2、3和4。在图中,这些负载通过其目的地排序顺序号以及对应于它们的几何代码来引用目的地(D1为椭圆形,D2为三角形,D3为矩形,D4为圆形)。

如图8A所示,源缓冲设备F1(在源S1的下游)根据以下顺序包含五个负载:3r,1o,2c,4t和1r(其中字母o,t,r和c分别对应于“椭圆形”,“三角形”,“矩形”和“圆形”表示它们的目的地(分别为D1,D2,D3和D4)。源缓冲设备F2(在源S2的下游)根据以下顺序内容包含六个负载:2o,1t,4r,3c,3t和4c。源缓冲设备F3(在源S3的下游)包含五个负载,顺序如下:1c,2r,4o,2t和3o。我们由此得到,n=16,p(1)=5,p(2)=6 and p(3)=5。

图8B说明了通过应用图5的算法获得的收集列表:LC=(1c,2o,1t,2r,3r,1o,2c,4t,1r,4o,2t,3o,4r,3c,3t,4c)。由于负载1r和3o的位置而引起无序。

图8C示出了在由排序和缓冲储存系统91重新排序(最终调度)之后,在不同的目的地缓冲设备F1’至F5’中精确地排序的负载。

现在参考图9A和9B,我们展示出根据本发明的第三实施例的负载排序方法,使用替代的目的地排序顺序号对客户订单的处理。图9A和9B分别说明了此处理的以下两个状态:收集器上收集之前的负载和收集器上收集之后的负载。

我们以图3的负载排序方法(上文提到的变体)为例,其包括预备步骤30(在用于建立收集列表的步骤31之前)。在该预备步骤30中,控制系统根据包含在源缓冲设备F1至F5中的负载的目的地排序顺序号来计算替代的目的地顺序号。更具体地,对于包含在源缓冲设备之一中的R中的至少一组(或在一个特定实施例中的每组)R个连续负载,其中R为大于或等于2的整数:系统根据R个负载的目的地排序顺序号计算替代的目的地排序顺序号。然后,在执行用于建立收集列表的步骤31的过程中,控制系统对R个负载中的每个负载使用替代的目的地排序顺序号。

在一个特定实施例中,对于每组R个负载,在步骤30进行的计算包括以下内容:

·计算R个负载的目的地排序顺序号的平均值;

·根据R个负载的目的地排序顺序号(无序计算函数的示例已在上面进行了描述)计算R个负载的无序值;

·如果R个负载的无序值大于预定阈值S,则替代的目的地排序顺序号为向上取整至相邻整数的平均值;如果不是,则替代的目的地排序顺序号为将向下取整至相邻整数的平均值。

预定阈值是,例如:S=0。在这种情况下,仅当R个负载不存在无序时,我们才将平均值向下取整至相邻整数。在一个变体中,S大于零(例如,S=4)。在这种情况下,我们接受一个公差值,该公差值将平均值向下取整至至较低的整数,只要R个负载中的无序小于S。

在图9A所示的示例中,假设在图8A的示例中存在三个源S1,S2和S3(因此有三个源缓冲设备F1,F2和F3),四个目的地D1,D2,D3和D4,以及要处理的四个客户订单(每个目的地一个)。我们添加了以下约束条件:源缓冲设备的负载必须在收集器1上R个R个地收集(即每次R个)(在此示例中R=2)。

在图9A的示例中,我们有以下几组(用虚线标出):对于源缓冲设备F1是(3r,1o)和(2c,4t)(由于负载1r是单独的,因此未考虑在内);对于源缓冲设备F2是(2o,1t),(4r,3c)和(3t,4c);对于源缓冲设备F3是(1c,2r)和(4o,2t)(由于负载3o是单独的,因此不考虑在内)。在此示例中,负载1r和3o不是一组负载的一部分。因此,对于他们来说,不计算替代的目的地顺序号。在建立收集列表的步骤31中不考虑它们(换句话说,它们不是要收集的n个负载的一部分)。当控制系统90在要收集的一组n个负载的修改的情况下(即,在测试步骤34处为肯定响应的情况下)启动方法的步骤的新的执行时将考虑它们。在一个变型中,或者如果不需要修改要收集的n个负载的组的话,在步骤31中立即考虑负载1r和3o(具有目的地排序顺序号)以建立收集列表。

对于这些组中的每一个,在该组每个负载右侧的方括号之间指示步骤30的计算结果(取S=0)。让我们考虑两个具有不同舍入值的示例:

·对于源缓冲设备F2的组(2o,1t):替代的目的地排序顺序号为2(2和1的平均值=1.5;该值向上取整至相邻整数,因为两个负载中存在无序);

·对于源缓冲设备F3的组(1c,2r):替代的目的地排序顺序号为1(1和2的平均值=1.5;该值向下取整至相邻整数,因为两者负载中不存在无序)。

图9B示出了通过将图5的算法与替代的目的地排序顺序号一起应用而获得的收集列表(负载1r和3o除外,其目的地排序顺序号被考虑到):LC=(1c,2r,2o,1t,3r,1o,2c,4t,1r,4o,2t,3o,4r,3c,3t,4c)。

图10示出了图3(建立收集列表LC)的步骤31的第二特定实施例的算法。

在步骤1001中,控制系统建立至少一组包括k’≥2且k’<k的k’源缓冲设备的G’。在用于改善(减少)计算时间的一种特定实施例中,k=2。然而,在保持在本发明的范围内的同时,k的其他值也是可能的。

在步骤1002,对于系统组G’或每个组G’,控制系统建立一个收集列表LC’,该列表包含要收集的n’个负载,并相对于目的地排序顺序号的上升顺序,减小由无序计算函数计算出的n’个负载的无序,n’个负载包含在k’个源缓冲设备中,其中p(i)是在k’个源缓冲设备的第i个中要收集的负载数。

在步骤1003,控制系统修改该组G,对于该组G’或每个组G’,用一个包含以收集列表LC’的排序顺序的n’个负载的虚拟源缓冲设备来替换k’个源缓冲设备。

在测试步骤1004中,控制系统验证修改后的组G是否仅包括一个源缓冲器设备。

如果测试步骤1004处的响应是肯定的,则控制系统进入步骤1005,在步骤1005中,控制系统将修改集G的单个源缓冲设备的收集列表LC’作为收集列表LC

如果测试步骤1004的响应是否定的,则控制系统进入步骤1006,在步骤1006中,控制系统用修改后的组G替换组G,然后用从此替换中得出的新组G重复步骤1001至1004。

图11A示出了图10的第二实施例的应用的第一示例,具有四个源缓冲器设备F1至F4(G={F1,F2,F3,F4})并且k’=2的组G。在该第一示例中,控制系统在步骤1001的每次迭代中建立k’个源缓冲设备的单个组G’。

在步骤1001至1003的第一次迭代(表示为1101)中,控制系统建立组G’={F1,F2},建立关联的收集列表LC’(F1+F2),并通过包含按照收集列表LC’(F1+F2)的顺序的n’个负载的虚拟源缓冲设备(表示为“F1+F2”)替换两个源缓冲设备F1和F2,来修改组G。

在步骤1001至1003的第二次迭代(表示为1102)中,控制系统建立组G’={(F1+F2),F3},建立关联的收集列表LC’(F1+F2+F3),并通过包含按照收集列表LC’(F1+F2+F3)的顺序的n’个负载的虚拟源缓冲设备(表示为“F1+F2+F3”)替换两个源缓冲设备(F1+F2)和F3,来修改组G。

在步骤1001至1003的第三次迭代(表示为1103)中,控制系统建立组G’={(F1+F2+F3),F4},建立关联的收集列表LC’(F1+F2+F3+F4),并通过用包含按照收集列表LC’的排序顺序(F1+F2+F3+F4)的n’个负载虚拟源缓冲设备(表示为“F1+F2+F3+F4”)替换两个源缓冲设备(F1+F2+F3)和F4,来修改组G。

在该阶段(表示为1104的步骤),由于组G不再包含虚拟源缓冲设备F1+F2+F3+F4以外的任何元素,因此控制系统将收集列表LC’(F1+F2+F3+F4)作为其收集列表LC

图11B示出了图10的第二实施例的应用的第二示例,具有四个源缓冲器设备F1至F4(G={F1,F2,F3,F4})并且k’=2的组G。

在步骤1001至1003的第一次迭代(表示为1101’)中,控制系统:

建立第一组G’1={F1,F2}并建立相关的收集清单LC’(F1+F2)(子步骤表示为1101’a);

建立第二组G’2={F3,F4}并建立相关的收集清单LC’(F3+F4)(子步骤表示为1101’b);和

修改组G,一方面,是通过用包含按收集列表LC’(F1+F2)的排序顺序的n’个负载的虚拟源缓冲设备(表示为“F1+F2”)替换两个源缓冲设备F1和F2,另一方面,是通过用包含按收集列表LC’(F3+F4)的排序顺序的n’个负载的虚拟源缓冲设备(表示为“F3+F4”)替换两个源缓冲设备F3和F4(子步骤表示为1101’c)。

在步骤1001至1003的第二次迭代(表示为1102’)中,控制系统建立组G’={F1+F2,F3+F4},建立关联的收集列表LC’(F1+F2+F3+F4),并修改组G,是通过用包含按收集列表LC’(F1+F2+F3+F4)的顺序排列的n’个负载的虚拟源缓冲设备(表示为“F1+F2+F3+F4”)替换两个源缓冲设备(F1+F2)和(F3+F4)。

在该阶段(表示为1103’的步骤),由于组G不再包含除该虚拟源缓冲设备F1+F2+F3+F4之外的设备,因此控制系统将收集列表LC’(F1+F2+F3+F4)作为其收集列表LC

图12示出了在图10的步骤1002内的特定实施例的算法,该算法针对k’个源缓冲设备的组G’建立收集列表LC’。总而言之,这是图5的算法的换位,通过:n被n’替换,k被k’替换和LC被LC’替换。

在步骤1201中,控制系统用单个状态e’init=(U’init,L’init)初始化第一状态组E1’,其中U’init是包含k’个零的k’元组,而和L’init是一个空列表。

在步骤1202中,控制系统用空值初始化第二状态组E2’。

在测试步骤1203中,控制系统验证已经执行了n’个连续的建立步骤(即,所有的建立步骤)。

如果在测试步骤1203处是肯定响应,则控制系统进入步骤1216,在步骤1216中,控制系统从包含的单个最终状态e’F=(U’F,L’F)获得收集列表L’C。在E2’中。实际上,它将L’F作为收集列表L’C

如果在测试步骤1203处是否定响应,则控制系统进入下一测试步骤1204,开始下一个建立步骤的处理,在该步骤中,控制系统验证是否已处理了所有E1’状态。E1’的每个状态e’都写为e’=(U’,L’),其中U’是包含k’个元素的k’元组,U=(z1,…,zk’),zi是接收在第i个源缓冲设备中的负载数,L’是与U’相关联的负载的列表。

在测试步骤1204处的肯定响应的情况下,控制系统进入步骤1215,在步骤1215中,如果建立步骤不是第n’个建立步骤,则E2’成为新组E1’,然后控制系统返回到步骤1203(用于进入下一个建立步骤)。

如果测试步骤1204的响应是否定的,则控制系统进入E1’的未处理状态,然后转到测试步骤1205,在该步骤中,控制系统将验证f是否已处理,其中f∈{1,...,k′}。

在测试步骤1205中为肯定响应的情况下,控制系统返回至步骤1204。在测试步骤1205中为否定响应的情况下,控制系统取f的未处理值,并传递至测试步骤1206,其中验证是否U’(f)<p(f),其中U’(f)是包含在L’中的第f个源缓冲设备的负载数,而p(f)是收集在第f个源缓冲设备中的负载数。

在测试步骤1206为否定响应的情况下,控制系统返回到步骤1205。在测试步骤1206为肯定响应的情况下,控制系统转到测试步骤1206a,在该步骤中,控制系统验证是否N’(f)<yf,其中N’(f)是连续放置在L’中的第f个源缓冲设备的最大负载数,yf是预定值(例如,yf=6)。

在测试步骤1206a处为否定响应的情况下,控制系统返回至步骤1205。在测试步骤1206a处为正响应的情况下,控制系统进入步骤1207,在该步骤中其创建新的状态。e’N=(U’N,L’N)从e’=(U’,L’)开始,将1加到U’(f),然后在L’的末尾加上占据包含在第f个源缓冲设备中的负载序列中的第U’(f)+1个位置的负载。

步骤1207之后是步骤1208,在步骤1208中,控制系统使用无序计算函数,相对于目的地排序顺序号的上升顺序计算新状态e’N的列表L’N的无序值d’(此函数请参见图5的说明)。

步骤1208之后是测试步骤1209,在测试步骤1209中,控制系统验证是否d’>d’H,d’H是预定值。

在步骤1209的一个特定实施例中,预定值d’H计算如下:

-建立包含n’个负载的参考列表L’H,其建立方式如下:

○L’H的第一个负载是在实际准备从k’个源缓冲设备中移出的负载中,具有最小目的地排序顺序号的负载;

○每个L’H的随后的负载是在虚拟地假设L’H的先前负载已经从k’个源缓冲设备中移出的情况下,将要准备从k’个源缓冲设备中出去的负载中具有最小目的地排序顺序号的负载;

-使用无序计算函数计算d’H作为列表L’H的无序值。

在测试步骤1209处为肯定响应的情况下,控制系统返回到步骤1205。在测试步骤1209处为否定响应的情况下,控制系统进入测试步骤1210,在该步骤中,它验证E2’是否包含另一个新状态e’Na=(U’Na,L’Na),其中U’Na=U’N,d’a是列表L’Na的无序值。

如果在测试步骤1210处肯定响应,则控制系统转到步骤1212,在步骤1212中,控制系统验证d’<d’a。如果在测试步骤1212中得到肯定的响应,则控制系统转到步骤1214,在步骤1214中,控制系统将e’Na替换为E2’中的e’N。如果在测试步骤1212否定响应,则控制系统转到步骤1213,在该步骤中,控制系统不将e’N插入E2’。在步骤1213或步骤1214结束时,控制系统返回到步骤1205。

如果测试步骤1210的响应是否定的,则控制系统进入步骤1211,在该步骤中,将e’N插入E2’,然后返回到步骤1205。

图13示出了图3的步骤31的第三特定实施例的算法(建立收集列表LC)。它包括根据第二特定实施例(以上参考图10至图12进一步描述)多次执行用于建立收集列表LC的建立步骤(31),其中至少一组G’在每次执行时都不同。控制系统的每次执行(步骤13011至1301m,其中m>1)都会给出不同的结果,即不同的收集结果(LC,1,…LC,m)。然后,控制系统选择构成最终结果的结果之一(表示为LC)。在一个特定的实施例中,控制系统选择(步骤1302)具有最低无序(用以上进一步描述的无序计算函数来计算)的收集列表。

可以设想应用建立收集列表LC的该第三特定实施例的几种方式。

第一种方法是计算组G’的所有可能组合并比较获得的结果。图14说明了这种情况下的示例,其中在起始组G包含四个源缓冲设备的情况下,测试并比较了k’=2个源缓冲设备的组G’(每个都是真实的或虚拟的)的所有可能组合F1至F4。图14显示了可能性的完整树(共有12种可能性,表示为1401至1412)。

另一种方式是应用操作搜索技术(“分支和切割”,“模拟退火”,“遗传算法”等),从而避免对整个可能性树进行评估,从而在其中寻求或获得最佳解决方案最短的时间。在当前情况下,有几种操作搜索技术都可以应用,这些技术可以评估组G’的几种可能组合,并选择最佳组合。例如:

·“分支和削减”技术:针对整个可能性树的分支,这些分支被认为“没有意思”并且未被(部分或全部)访问;

·“模拟退火”技术:从初始组合开始,仅尝试一种更改,并且如果此更改改善了解决方案,则将其应用;如果不是,则接受该更改将仅以某个百分比实行(即在迭代过程中发展);

·“遗传算法”技术:我们考虑了可能组合的总体,并且对该总体的一部分或全部应用了更改,然后进行了迭代;

·其他

组G’的组合可以用标识符和分隔符表示。例如:“F1;F2 F3;F4 F5 F6;F7 F8”代表八个源缓冲设备F1至F8,它们的耦合如下:

·F2和F3一起构成虚拟源缓冲设备,表示为F2+F3;

·F4,F5和F6一起形成一个虚拟源缓冲设备,表示为F4+F5+F6;

·F7和F8一起,形成一个虚拟源缓冲设备,表示为F7+F8;

·F1与F2+F3一起构成虚拟源缓冲设备,表示为F1+F2+F3;

·F1+F2+F3与F4+F5+F6,形成一个虚拟源缓冲设备,表示为F1+F2+F3+F4+F5+F6;和

·F1+F2+F3+F4+F5+F6和F7+F8,以形成表示为F1+F2+F3+F4+F5+F6+F7+F8的唯一虚构源缓冲设备,并且其关联的收集列表是收集列表LC

47页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种花盆移动器械

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类