一种计算机实施的物流方法与流程

文档序号:24159352发布日期:2021-03-05 14:26阅读:165来源:国知局
一种计算机实施的物流方法与流程

[0001]
本发明涉及一种计算机实施的物流方法,该方法用于协助将物品(诸如使用互联网购买的邮包/包裹之类的实体商品)递送给收件人(例如顾客或消费者)。该方法在增强将商品递送给企业或个人方面具有广泛的适用性,特别是在城市场景中。


背景技术:

[0002]
现有技术的商品递送使用诸如厢式货车的传统机动车辆。各个厢式货车驾驶员在限定的地理递送区域中被分配用于递送的包裹。他或她在仓库(配送中心)处将包裹装进厢式货车。为了便于取出,驾驶员将包裹装载到厢式货车中到厢式货车的简单装载平台上。厢式货车驾驶员通常具有到达且通过他或他每天遵循递送的递送区域的优选路线,从而在每个顾客递送位置处停下厢式货车并且卸载邮包(或包裹)。到达递送区域的路线可以径直的,但在递送区域(在递送之前所谓的“最后一英里”)和递送过程内的行驶是费时且效率低的。通常,驾驶员会导航到下一个递送位置、将厢式货车停放在附近的某个地方、从其位置在厢式货车后部装载平台上卸下包裹、将该包裹递送给顾客、并且然后再走回到厢式货车的停放位置。
[0003]
该递送过程在低交通状况下并且在充足的停车机会的情况下可以是有效的,但是一旦送货车辆进入高交通量和/或停车位可用性低的区域,递送速率就会大大降低。最终阶段的这种延迟使得整个递送过程效率低下且昂贵。这对于时间敏感递送(例如食品递送)特别令人厌烦。此外,送货车辆有助于增加当地污染和街头拥挤的水平。
[0004]
当今的消费者倾向于通过互联网购买商品,以便在优选位置(例如在办公室或在家)递送。因此,全球商品运输的数量剧烈地增加,因为它取代了在零售店的直接购买。同时,消费者从根本上期望更短的递送时间以及低或零递送成本。在直接来自供应商以及来自提供不同供应商的食物和饮料选择的第三方递送代理机构的食物和饮料递送的方面也有剧烈的增加。因素的这种结合给我们城市中的传统递送和运输系统(例如道路网络)施加了压力。特别是城市厢式货车旅程和路缘使用量正在不断地增加。


技术实现要素:

[0005]
本发明的实施例目的在于减轻消费者需求对城市运输系统的影响,并且提供一种将物品递送给收件人的更可持续的方法。
[0006]
根据一个方面,提供一种将物品递送给位于不同收件人位置的收件人的计算机实施的物流方法,包含:
[0007]
记录在配送中心接收到的物品以为每个物品提供记录,该记录包括物品标识和收件人位置;
[0008]
根据收件人位置将记录聚类成一个或多个母集群,对于沿着到达中心位置的路线的第一运输阶段,每个母集群被分配给不同的母代理;
[0009]
根据母集群中的记录的收件人位置来为每个母集群定位中心位置;
[0010]
根据收件人位置来进一步将每个母集群中的记录聚类成用于第二运输阶段的一个或多个子集群;
[0011]
对于每个子集群,将子集群中的记录分配给从母代理的中心位置操作并且在收件人位置处递送的所选择的递送代理,并且为所选择的递送计算子集群递送路线;
[0012]
为每个母代理和递送代理创建具有事件和事件的时间的单独计划安排,其中事件包括代理沿着路线正在行驶的行驶事件和代理正在执行下面停车动作中任一项的停车事件:递送物品、在代理之间转移物品和等待;
[0013]
以及通过向每个母代理和递送代理提供单独计划安排信息来指示母代理和递送代理递送物品。
[0014]
计划安排信息不需要包括计划安排内的所有信息,而是优选地包括,对于递送代理而言,例如至少停车事件及其位置和/或时间。以此方式,行驶事件可以由代理获得。
[0015]
该方法也可以包括不仅通过提供基本计划安排信息而且通过为母代理提供到达中心位置的导航指令并且通过为递送代理提供从中心位置到在递送次序中的收件人位置的导航指令来指示母代理和/或递送代理递送物品。在该实施例中,将计划安排内的路线信息例如作为地图提供给用户,该地图充当导航指令,该导航指令可能带有详细的逐向导航指令。
[0016]
该方法也可以包括使用记录根据物品的(母集群,如果必要的话,和)子集群和递送次序来标记物品,允许将物品按递送次序转移到隔间(每个子集群一个)到相应的母代理中。
[0017]
发明人已经发现可以在软件中实施递送的新范式,其不仅可以大体上减少在建成市区内厢式送货车的道路使用量,而且可以通过减少使用在递送过程中使用的代理的单独计划安排的延迟来提高递送时间。此外,新范式非常适合于技术进步,例如通过自动代理(例如无人机和自动驾驶(自主)车辆)的递送。
[0018]
母代理可以是带有驾驶员的厢式送货车或送货卡车,或者是其他初始运输工具(例如自动驾驶汽车、无人机或输送机)。如果有多于一个的母集群,则可以使用不同的初始运输工具(但在每个母集群中仅使用一种)。
[0019]
递送代理(在子集群中)可以包括更多的本地运输工具,其比初始运输工具(例如,无人机、机器人或者像电动自行车、自行车、小型摩托车、电动或非电动小推车或手推车一样的带有用户的轮式用户车辆)更优选地少受城市交通的影响、比厢式货车更小并且可以用于不适合于传统(通常是四轮)送货车辆的步行区域/人行道/小路,该传统送货车辆在尺寸上范围从小汽车到大厢式货车,但可能包括小汽车、厢式货车、卡车、摩托车、船舶、飞行器或任何其他类型的车辆。不同的本地运输工具可以用于不同的子集群。
[0020]
该方法为每个母代理和递送代理创建具有事件和事件的时间的单独计划安排。这允许代理被单独指示增强灵活性和易用性。发送给代理的计划安排信息可以是包括该代理的所有停车事件以及位置和时间的完整计划安排或者可以是例如其中没有时间的缩减版本。
[0021]
新范式可以使用“对话中枢(hub and spoke)”方法,其中母代理将物品带到中心位置并且然后子代理各自将物品的子集从中心位置带到收件人位置。以此方式,母代理可以在方便的中心位置(例如,其对于所有收件人位置都是近似中心的)处停车,并且子代理
可以从中心接收其子集以用于本地递送。递送代理可以稍后在相同或不同的中心位置再次遇见母代理,以接收可能来自同一子集群的另外的载物,如下所述。第二中心位置可以特定于单个递送代理,或者由两个或多个递送代理共享。如下面更详细地解释的,可以预先确定由每个递送代理递送的物品和递送的次序。
[0022]
供选择地(并且在相同预定的递送次序的情况下),范式可以使用“通道”方法,其中厢式送货车将装载的包/隔间在安全的地方(例如储物柜或有人值守的位置或诸如报刊店、包裹店或用于快递员提取的其他本地商店之类的场所)放下。在这种情况下,安全地方的位置被预先确定。
[0023]
聚类
[0024]
每个隔间可以接收完整的子集群,或者该集群在其对于一个隔间来说太大的情况下可以被分成两个(或多个)隔间,并且然后第二隔间将在后期阶段从母代理被递送代理接收。在这种场景下,本领域的读者应当理解的是,例如,可以使用混合方法学,其中第一中心放下并且随后的通道从母代理放下,反之亦然。
[0025]
物品在配送中心被记录以提供每个物品的记录(例如,通过扫描每个物品上的代码、或者通过接收数字清单、甚至通过将一组扫描与数字清单匹配)。该记录至少包括物品标识和收件人位置。该记录然后通过软件如下处理。
[0026]
根据收件人的位置将记录聚类成一个或多个母集群。如果存在单个母代理,则所有物品都有单个母集群。对于第一运输阶段,该(或每个)母集群被分配给(不同的)母代理。
[0027]
根据母集群中的记录的收件人位置为每个母集群定位中心位置。中心位置可以在收件人位置的地理分布中是中心的(或近似中心的),或者可以位于最接近地理分布的中心的收件人位置处,在这种情况下,一个递送代理已经在第一收件人位置处。
[0028]
供选择地,中心位置可以基于在连续时间段(例如,覆盖一周的天数)内针对特定区域从母集群形成的累积母集群中的记录的收件人位置。例如,母集群可以通过邮政编码来确定,并且在每个连续日形成的“相同”母集群可以特定于一个或多个邮政编码。在这种情况下,中心位置可以在邮政编码的累积母集群内是中心的,或近似中心的。
[0029]
当中心位置是近似中心的时,它可以通过寻找距中心位置半径以内并且满足一个或多个标准的位置来从中心位置得出。例如,该方法可以选择在停车位数据库中存在的(或优选的),或者在预定次数的场合之前已经用作中心的,或者使用一些其他标准的在半径内的中心位置。
[0030]
然后通过根据收件人位置将每个母集群中的记录聚类来为第二运输阶段形成一个或多个子集群。本质上,每个子集群包含物品的记录,这些记录可以被组合在一起作为本地地理群。
[0031]
实施例为每个子集群使用隔间,该隔间可以是实物包(包含一捆物品)或其他容器。这些隔间要从母代理被递送到递送代理(例如,通过将所有包(每个子集群一个)装载到厢式送货车的装载表面上)。对于每个子集群,子集群中的记录被分配给所选择的递送代理的隔间,该所选择的递送代理从母代理的中心位置操作并且在收件人位置处递送物品。
[0032]
该软件可以计算所选择的递送代理的子集群递送路线,并且因此也计算子集群递送路线中的物品的递送次序。该递送次序的益处在于,它允许使用记录根据物品的子集群和递送次序来对物品进行标记,并且按照递送次序将物品转移到各个隔间中并且转移到相
应的母代理中。标记可以是手动的,其中用户以原稿形式将子集群和递送次序信息转移到物品上并且然后装载到隔间中也是手动的。
[0033]
供选择地,标记可以是对记录本身的简单变化。如果物品被追踪并且通过自动系统也潜在地装载到隔间中,则视觉检测系统可以扫描物品上的任何代码(例如条形码)并且识别相应的记录,从而可以允许物品以正确的次序被包装到正确的隔间中,这潜在地通过在屏幕上向用户显示子集群和递送次序信息,或者通过使用排序传送系统或机器人以正确的次序将物品自动地包装到正确的隔间中。自动计算递送次序(除了提供子集群之外)并且按此次序转移到隔间中对于递送代理来说具有很大益处,避免了骑自行车者或步行者浪费时间寻找正确包裹并且允许无人机或机器人或其他自动递送代理直接从隔间中弹出下一个物品。
[0034]
如果存在多于一个的母集群,则物品也可以按照与上述相同的方式使用记录根据它们的母集群来标记。
[0035]
最后,递送通过母代理和递送代理的组合,基于它们的各自计划安排(无论是由控制该代理的人类用户还是由自动车辆读取)来进行,例如通过将母代理导航到中心位置(或提供母代理到中心位置的导航的指令)、将隔间转移到一个或多个递送代理并且通过将每个递送代理从中心位置导航到在递送次序中的收件人位置。在递送旅程的任一个或两个分支中,导航可以例如在由无人机或输送机系统或自动驾驶车辆使用时是全自动的,或者它可以在作为指南提供给人类用户时是半自动的。在报告完成的递送之前,递送代理可以从收件人获得签名或其他输入。
[0036]
本领域读者应当理解的是,每个物品有一个记录,并且集群可以据说是具有物品或物品的记录,因为记录仅仅是物品的方便信息表示(例如,每个以数据电子表格的一行的形式)。为了简单起见,剩余描述在信息处理的情况下同义地使用术语物品和记录。
[0037]
有利地是,可以由母代理选择一个或多个物品用于递送,并且相应的记录不被分配给子集群。母代理可以无需使用其他递送代理参加某些递送,这将导致改进的时间效率并且通过适应不同场景而增加方法的灵活性,如下面更详细地说明。
[0038]
可以使用任何技术来形成母集群,该技术根据收件人位置的地理分布对记录进行组合以形成位置靠近在一起的集群。合适的空间聚类技术的一个示例是带有噪声的应用程序的基于密度的空间聚类,dbscan。这样的技术可以用于将具有更密集的收件人位置的记录组合在一起,并且将具有单独收件人位置的任何记录标记为离群值,该离群值被分配给母代理以进行递送。在这样的场景中,一个或多个离群值将不会进一步分布到子集群中。这不仅在子代理正在递送时为母代理提供占有,而且还通过递送离中心位置太远的物品来避免“过度拉伸”本地运输工具。
[0039]
此外,可以对母集群进行过滤(在子集群形成之前),以将不适合在隔间内行驶的物品识别为“特殊(uglies)”物品。例如,这样的物品可能是易碎的、太大的、笨拙成形的、太重的或需要其他特殊处理。这些物品的记录可以被标记为特殊件,其表示该物品(“特殊件”)将被分配给母代理以进行递送,并且因此不被分配给子集群。
[0040]
一旦已经创建子集群便可以使用其他过滤技术。在此过滤步骤中,子集群被过滤以去除比最大递送代理距离更远离中心位置的物品的记录。
[0041]
另外,该方法可以包括接受用户请求分配由母代理递送的其中一个或多个物品。
例如,如果递送位置具有禁止递送代理步行进入场所的安全程序,则用户可以请求由厢式货车递送物品。作为另一个示例,如果待递送的物品需要安装(例如,国内应用程序)并且只有厢式货车驾驶员有资格执行安装,则用户可以请求母代理递送。
[0042]
因此,通过一个、两个或几个步骤,可以改进对子集群和母集群的初始分配,从而允许最佳匹配递送计划安排和在该时间段内(对于不易腐烂的物品通常为一天;对于时间敏感的物品(例如食品递送)可能以分钟为单位测量)对特定物品和位置使用资源。
[0043]
子集群可以使用将母集群组合以将物品的记录划分为多个集群的任何合适算法。数量“k”的子集群被形成。从空间上讲,每个集群都包括中心位置,并且将一个位置中的密积位置组合在一起,而不同的子集群覆盖不同的地点。
[0044]
可以根据可用的递送代理的数量简单地确定变量k,以使每个递送代理具有一个子集群。在一种更灵活的方法中,可以根据母集群中的物品(或物品的记录)的数量、可用的递送代理的数量以及已经分配给母代理的物品(记录)的数量来确定k,其中k是递送代理的数量,除非待递送的递送代理比递送代理具有更少的物品。在后者的情况下,可以将k设置为等于待递送的递送代理的物品的数量(每个子集群一个物品)。
[0045]
在一个示例中,子集群使用k-中心点算法(k-medoids)技术,形成k个具有收件人位置的记录的子集群,记录在每个集群中的收件人位置之间的平均距离最小。
[0046]
在形成子集群的另一种方法中,通过依次向k个记录分配最接近的收件人位置、向k个子集群中的每个分配一个记录并且然后剩余物品被分配给集群来在每个集群中提供初始记录。
[0047]
优选地,剩余物品通过为每个子集群计算与剩余记录的收件人位置有关的距离测量、得出哪些集群低于阈值距离并且因此有资格接收该物品、并且分配剩余物记录(项目)到合格集群来逐个分配。距离测量可以基于到目前为止的递送代理必须行驶以递送集群中的所有物品(包括“新”剩余记录)的总距离或到剩余记录的收件人位置的距离(例如,来自最近增加的递送位置)。同样地,阈值距离可以基于总距离或剩余记录的到收件人位置的距离。
[0048]
一旦已经找到合格子集群(或者如果对合格集群没有限制),该方法可以进一步包括从每个子集群的集群权重计算所有(合格)子集群的散布度量;在增加剩余记录的情况下为每个合格子集群计算所有集群的相同散布度量;以及将剩余记录分配给当增加剩余记录时提供散布度量的最小变化的合格集群。
[0049]
集群权重可以基于在子集群中行驶的距离和/或在子集群中的记录(递送)的数量来确定。
[0050]
一旦已经形成子集群和任何母代理集群,该软件优选使用旅行商问题tsp算法计算每个子集群和任何母代理集群的最佳递送路线。
[0051]
可以使用任何合适的方法学来创建递送路线。为了易于实施,每个子集群递送路线的第一点可以是中心位置或重装载位置,其中递送代理从母代理接收物品。
[0052]
计划安排
[0053]
一旦为一个或多个递送代理/子集群创建递送路线并且为母代理集群创建到达中心且潜在地继续到达其他位置(例如,对于母代理递送且为递送代理重装载新隔间)的递送路线,该软件使用路线创建具有事件和时间的计划安排。可以使用任何合适的方法来创建
计划安排。通常,总计划安排被分成每个代理的单独计划安排,这些计划安排在代理合作时链接。
[0054]
作为第一步,该方法可以包含为每个母代理和递送代理路径或路线设置在站点的估计到达时间(这些术语同义地使用)。这些时间不一定包括递送本身的任何时间宽限,但是有助于例如通过仅考虑行驶时间的测量(在站点之间)而不考虑站点处的时间来生成计划安排。这种简化允许快速计算如下文进一步所述的重装载计划安排。
[0055]
在一种场景中,递送代理从母代理接收另外的载物(新隔间的重装载)并且然后继续递送路径。时间估计可以包括用于递送代理的递送站点和重装载站点(母代理将新隔间递送到递送代理的任何转移站点),但是省略母代理的转移站点,从而母代理转移站点可以依赖于递送代理站点创建。相反地,对于母代理可以包括转移站点,并且对于递送代理可以省略转移站点以便以后包含。
[0056]
在前者情况下,递送代理路线中的站点包括递送代理从母代理接收新隔间的重装载的任何递送代理转移站点,并且该方法进一步包含随后针对新隔间的每次重装载将相应的站点增加到母代理路径中。该站点可以是等待站点事件,如下文更详细地解释。
[0057]
为了找出何时最佳将这种站点增加到母代理的路线中,该方法可以计算递送代理被估计到达转移站点的时间以及母代理被估计到达其已经被分配的任何递送站点或到达转移站点的时间。该方法然后可以比较可能的母代理站点和递送代理转移站点的时间,以在合适位置将位置站点增加到母代理计划安排中(作为转移站点或等待站点)。
[0058]
更具体地,该方法可以按照递送次序考虑母代理递送路线上的站点,并且找到下一个站点的时间、在路线被更改为直接转到转移位置的情况下当母代理将到达转移站点时的时间以及递送代理被估计到达转移站点的时间。可能的母代理到达时间与递送代理转移时间进行比较。选择最接近递送代理转移时间的母代理到达时间。如果这是在路线被更改为直接转到转移位置的情况下当母代理将到达转移站点时的时间,则转移位置被增加到该位置处的母代理路径中并且剩余路径被重新计算。
[0059]
否则(如果更接近递送代理转移时间的母代理到达时间只是路线中的下一个站点),则该方法将保持路线和下一个站点不变并且继续评估从该站点开始的路线(再次计算随后的站点和可能到达转移站点中的哪个更接近递送代理转移时间)。
[0060]
该有利程序允许创建包括在路线中的合适位置处的重装载位置(在母代理路径上其他递送位置的距离的方面以及在递送代理的重装载时间要求的方面)的母代理路线,并且避免母代理等待时间。
[0061]
如果存在多于一个的重装载位置(例如,每个递送代理一个),则该方法可以同时考虑包括在厢式货车(母代理)路线中的所有重装载位置,并且从考虑中去除在它们已增加到厢式货车路线时的重装载位置。
[0062]
另外,可能具有将通知发送给母代理的功能,该通知实时地告知他们针对重装载事件的递送代理的即将到达的可能时间(在递送正在进行时)。例如,可以将通知发送给厢式货车驾驶员以通知他们计划安排的步行递送代理到达重装载位置的时间是预定时间(例如15分钟路程)。该通知的时间可以基于重装载之前的计划安排事件的总和和/或基于递送代理的当前实时进度。
[0063]
通知的原因如下。有时,母代理(厢式货车驾驶员)可能不遵循为他们生成的确切
路线。这可能会导致快递员(递送代理)感到困惑和等待时间更长,并且一旦他们完成了他们当前的隔间,他们可能会电话并要求包交换(新隔间),并且必须等待驾驶员最多30分钟以用他们的方式工作回到他们那里做包交换。为了减轻这种情况,当搬运工距包交换15分钟路程时,系统可以向驾驶员发送通知(例如gui弹出窗口)以警告驾驶员。15分钟或其他时间可以基于来自当前位置和交换之前事件的总和,因此,它可以是,例如,15分钟步行(前往),或者是1个递送(2分钟)加步行到新位置(3分钟),加递送(2分钟)并且然后7分钟步行到转移位置。
[0064]
返回到计划安排设置,计划安排可以包括提取事件以及递送事件。提取事件可以是为了收集在递送代理的路线上的稍后站点处待递送的物品。在这种情况下,与要求(首次)提取和(然后)递送的物品相同的物品将出现在生成的计划安排中。供选择地,提取事件可以涉及将物品退回给供应商(例如,退回不需要的衣物)。在这种情况下,物品将通过递送代理退回给母代理以退回到配送仓库。在这两个示例中,该方法都可以考虑在计划安排生成期间在物品收集时递送代理的隔间中可用的空间。例如,提取可以在阈值数量的放下之后(例如,在所有放下之后或在没有相同物品提取的所有放下之后)被计划安排。如果递送代理的计划安排中的第一个事件是提取,该软件确保该代理的隔间中有可用空间以在计划安排期间实现提取。
[0065]
在时间估计和调整用于递送代理重装载的厢式货车路径之后,计算完整的计划安排。使用事件创建计划安排。事件包括行驶事件(其中母代理或递送代理正在行驶到下一个位置)和停车事件(这些事件可以包括递送、提取、在代理之间转移和等待)。停车事件可以针对每个代理(所有母代理和递送代理)从递送路线信息创建,并且被增加到行驶事件中,行驶时间已经可以从路线中获得。
[0066]
可以针对每个事件生成持续时间。通常,可以设置或计算特定类型事件的持续时间。可以使用映射算法来计算行驶事件持续时间。停车事件可以被给予设定持续时间。
[0067]
在更复杂的实施方式中,使用记录中的信息或历史信息可以允许对停车事件和/或前往(行驶)事件进行更准确的时间估计,或者甚至可以对路线和/或收件人位置进行更准确的计算。例如,软件可以解析地址并且使用收件人位置来设置或调整物品的标准递送或提取。在一个实例中,地址中包含术语“公寓”或“房间”或其他等效术语可以用于标记较长的递送时间,因为公寓通常位于较大的建筑物内,并且因此比房子更难访问。较高楼层的指示可以另外或供选择地用于增加递送时间。
[0068]
历史递送信息也可以用于设置或调整停车事件的时间估计。在这种情况下,调整算法可以查询停车分类数据库以识别一个或多个递送到相同地址所花费的时间的实例,并且在计划安排中使用所花费的时间(或者如果有多于一个的实例,则使用平均时间或最长时间)。
[0069]
这样的停车分类数据库可以另外或供选择地存储递送代理已经登记递送的实际位置(例如,使用在登记递送时从移动设备上传的gps数据)。该实际位置可以应用于相同的地址,以用于将来的导航指令和/或递送路线。在此,益处是实际递送可以处于不一定从地址可识别的特定位置,例如某个入口或大厅。
[0070]
等待事件的持续时间可以通过比较在转移中涉及的代理(通常为2个代理)的到达时间并且增加等待到第一从到达时间到达第二代理到达的到达时间的代理来计算。为了易
于实施,可以在涉及另一个代理的每个事件之前或之后针对每个代理增加等待事件,并且可以将该值设置为零,以等待计算哪个代理需要等待以及等待多长时间。在一个实施例中,针对其中一个代理(例如,接收物品的代理)增加转移事件并且针对另一代理增加至少相同长度的相应等待事件,以在转移结束时结束。这尚未涵盖具有转移事件的代理需要等待的可能性,并且因此也针对具有转移事件的代理增加等待事件。
[0071]
可以使用迭代过程来确定等待事件的长度,其中依次计算针对代理计划安排的时间、以(尽可能)完成每个代理计划安排为目的、并且然后传递到下一个代理计划安排。两个单独计划安排中的事件被链接(作为相关事件)以在两个代理之间进行转移。当第一代理计划安排的时间被计算时,如果与相关事件有关的另一代理的计划安排尚未完成直至转移,则可能无法确定等待的长度。在那种情况下,该过程将依次继续一个或多个其他代理计划安排(直到每个完成或在另一个等待中“卡住”),并且最终转至第一代理。在那个阶段,另一个代理的计划安排可能已完成直至转移。如果在预定次数的尝试完成所有计划安排之后,计划安排未完成,则可能产生错误。
[0072]
可以实时地更新等待事件(在代理处于活动中时),以考虑偏离计划安排的实际时间(例如延迟或快速运行的代理),并且调整未按时运行的代理的计划安排和/或其动作依赖于未按时运行的另一个代理的代理的计划安排。例如,考虑厢式货车驾驶递送代理被计划安排在特定位置等待10分钟以便另一个递送代理到达的情况:如果厢式货车驾驶递送代理遇到交通堵塞并且因此被延迟5分钟,则等待事件可以会被更新以指示厢式货车驾驶递送代理现在仅需要等待5分钟。
[0073]
如果递送代理可以在母代理内行驶,则该方法的计划安排部分可以包括针对每个用户计算当前车辆。同样地,当然,需要存在母代理以提供转移。因此,针对每个代理和每个停车动作,该方法可以计算哪个车辆是停车动作所需的当前车辆,并且使代理与当前车辆相关联(链接),以使计划安排无法在停车事件的持续时间内将两者分开。
[0074]
一旦针对每个用户已经计算事件(包括子代理和母代理的所有递送和提取事件)的时间,则这构成母集群的完整总体计划安排(其针对每个代理分为一个单独计划安排)。
[0075]
在更复杂的实施例中,可以实时地更新计划安排中的时间以反映代理的进度(但不改变递送次序)。例如,如果递送代理迟到,则不仅更新递送代理计划安排,而且如果母代理要求稍后与递送代理相遇(例如,将新的隔间转移给递送代理或接收由递送代理提取的物品),则也会更新母代理计划安排。
[0076]
物流方法可以做很多变化。如上所述,在一个示例中,中心位置是母代理可以留下隔间的安全(可能是可锁定的或有人值守的)地方。以这种方式,母代理和递送代理不需要相遇,并且一些计划安排约束被去除。
[0077]
在另一个示例中,子集群包括在相同地址处(或在等效地址处,其指的是同一地方但格式不同)的两个或多个物品。为此,系统可以接受多于一个递送的一个签名。
[0078]
存在这可能发生的两种情况:
[0079]
a.当地址相同时,软件将确认这是多次投递,并且所有包裹都将包括在相同递送事件中。以这种方式,单个签名可以用于所有物品。
[0080]
b.地址略微不匹配,即一个地址中使用的建筑物名称并且另一个地址中仅使用街道地址。在这种情况下,软件不会将这些识别为相同的递送事件,因此将有两个事件要完
成。
[0081]
为了帮助解决场景b-该软件可以允许用户重新使用签名。一旦已经获得单个签名,计时器就会启动。如果在时间窗口内(其默认设置为2分钟但可以例如根据用户偏好进行更新)进行任何递送,则为快递员提供在其他包裹/递送件的签名上进行复制的机会。在此的逻辑是,大型建筑物的接待人员不愿意对10个单独的包裹签名,而相反地对所有包裹仅签名一次。这样节省接待员的时间,并且也节省多次投递时的快递员的时间。
[0082]
因此,该方法可以进一步包含接受来自递送代理的递送的通知和来自收件人的确认签名,其中如果在距通知的预定的时间内输入另外的递送通知,则递送代理在选项中被呈现以将签名复制到另外的通知。
[0083]
图形用户界面或gui可以与该方法的任何实施例一起使用以增强用户功能,并且可以与本文详述的用户的任何输入一起使用。gui也可以用于显示在该方法期间产生的任何信息。在一个实施例中,递送物品的指令包括以地图的形式显示图形用户界面gui,该地图覆盖有停车事件位置以及母代理和递送代理的一个或多个路线。每个代理可以有一个gui类型。可以为不同类型的代理和不同的单个代理提供不同的gui和表示。该地图也可以覆盖有母代理和递送代理的实时位置。这允许很好地概述完整的递送过程。例如,可以在中心仓库处提供这种屏幕。更简单的屏幕可以被提供用于母代理或递送代理并且仅显示该代理的路径。有利地是,代理可以能够在较简单的屏幕和包括其他代理的视图之间交换。
[0084]
在替代或附加屏幕中,gui可以提供停车事件位置和时间的简单列表(根据计划安排)。
[0085]
gui可以包括在递送路径上站点处的指示。例如,可以包括以下停车动作中的任何一个或所有:递送物品、提取物品、在代理之间转移物品和等待。根据不同的停车动作,指示可以是不同类型的图标。递送图标可以包含向下箭头。提取图标可以包含向上箭头。转移图标可以包括水平的双向箭头。等待图标可以包括钟面。例如,可以使用颜色或阴影根据图标是已完成、是待完成的下一个动作还是在将来的另外的站点来不同地突出显示图标。
[0086]
如前所述,如果有实时更新,则gui可以显示更新的计划安排。当递送代理距母代理与递送代理正在相遇的位置预定时间量的路程时,gui也可以更新母代理,因此母代理可以反映子代理的进度。作为这种更新的结果,母代理可以决定修改其路线以偏离计划的递送路线(例如,递送另一物品,而不是在递送代理迟到的情况下直接前往转移位置)。
[0087]
gui也可以提供供用户在停车动作(例如递送)已经完成时输入通知的用户输入栏和/或针对收件人输入签名的用户输入栏,如前所述。
[0088]
因此,如果存在在第一递送停车动作的预定时间内(例如两分钟)输入的第二递送停车动作(如上所述,由递送代理通知的),则gui可以显示“弹出”窗口,其询问递送代理这两个停车动作是否是相同递送的一部分,在这种情况下,来自收件人的任何签名可以从第一递送复制到第二递送。这是处理多个包裹递送(例如向礼宾服务)的快速有效方式,并且允许特别地添加其他物品。
[0089]
递送代理使用的gui也可以允许将递送点信息和来自收件人的反馈输入到反馈栏中。
[0090]
根据本发明的第二方面的实施例,提供一种计算机程序,该计算机程序在被装载到至少一个计算机上时将至少一个计算机配置为执行根据前述方法定义或其任何组合中
任一项所述的方法步骤。该程序可以在本地或在云上执行。
[0091]
根据本发明的第三方面的实施例,提供一种用于安排将物品递送给位于不同收件人位置的收件人的物流装置,该物流装置包含链接到输入装置的处理器和存储器,其中:
[0092]
输入装置用于记录在配送中心接收到的物品;
[0093]
并且处理器用于:
[0094]
提供存储在存储器中的每个物品的记录,该记录包括物品标识和收件人位置;
[0095]
根据收件人的位置将记录聚类成一个或多个母集群,针对沿着到达中心位置的路线的第一运输阶段,每个母集群被分配给不同的母代理;
[0096]
根据母集群中的记录的收件人位置来为每个母集群定位中心位置;
[0097]
根据收件人位置将每个母集群中的记录进一步聚类成用于第二运输阶段的一个或多个子集群;
[0098]
对于每个子集群,将子集群中的记录分配给从母代理的中心位置操作并且在收件人位置递送的所选择的递送代理,并且针对所选择的递送代理计算子集群递送路径;
[0099]
针对每个母代理和递送代理创建具有事件以及事件的位置和时间的单独计划安排,其中事件包括代理沿着路线正在行驶的行驶事件以及代理正在执行以下停车动作中的任一项的停车事件:递送物品、在代理之间转移物品和等待;并且用于
[0100]
通过向每个母代理和每个递送代理提供单独计划安排信息经由网络接口指示母代理和递送代理来递送物品。
[0101]
也可以在物流装置中提供到一个或多个显示器的链接,从而允许显示器例如使用本文详述的gui软件来向母代理和/或递送代理呈现相关的指令和/或个人路线。
[0102]
相应的计算机系统可以包含如上定义的物流装置以及由代理使用的诸如智能电话、平板电脑或掌上电脑(pda)之类的移动设备的形式的装置(例如,包括上述gui功能)。每个移动设备至少包括处理器、存储器和用于接收指令并且将数据传递回物流装置的发送器/接收器。可以为中心用户提供网络应用程序并且为代理提供移动设备上的移动应用程序(例如苹果智能手机上的互联网操作系统(ios)应用程序或任何优选类型的相应数字助理)。
[0103]
根据本发明的优选实施例的装置(或计算机系统)或计算机程序可以包含方法方面的任何组合。根据另外的实施例的方法或计算机程序可以被描述为计算机实现的,因为它们需要处理和存储能力。
[0104]
根据优选实施例的装置被描述为被配置或布置为或者简单地“用于”执行某些功能。该配置或布置可以通过使用硬件或中间件或任何其他合适的系统来进行。在优选的实施例中,配置或布置是通过软件进行。
[0105]
因此,根据一方面,提供一种程序,该程序在其被装载到至少一个计算机上时将该计算机配置为成为根据前述装置定义或其任何组合中任一项所述的装置。
[0106]
通常,计算机可以包含被列为被配置或布置为提供所定义的功能的元件。例如,中心计算机可以包括存储器、处理装置和网络接口、以及另外的输入装置和显示器。
[0107]
本发明可以以数字电子电路或以计算机硬件、固件、软件或它们的组合来实施。本发明可以被实施为计算机程序或计算机程序产品,即,在非暂时性信息载体中(例如,在机器可读存储装置中)或者在传播信号中有形地体现以用于通过一个或多个硬件模块执行或
控制一个或多个硬件模块的操作的计算机程序。
[0108]
计算机程序可以是以独立程序、计算机程序部分或多于一个的计算机程序的形式,并且可以以任何形式的编程语言(包括已编译或解释的语言)编写,并且它可以以任何形式进行部署,包括独立程序或模块、部件、子例程或适合在数据处理环境中使用的其他单元。计算机程序可以被部署为在一个站点处的一个模块上或多个模块上执行,或者分布在多个站点上并且通过通信网络互连。
[0109]
本发明的方法步骤可以通过一个或多个可编程处理器来执行,这些处理器执行计算机程序以通过对输入数据进行操作并且生成输出来执行本发明的功能。本发明的装置可以被实施为编程硬件或被实施为专用逻辑电路,包括例如fpga(现场可编程门阵列)或asic(专用集成电路)。
[0110]
适合于执行计算机程序的处理器包括例如通用和专用微处理器以及任何种类的数字计算机中的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器,该处理器耦接到用于存储指令和数据的一个或多个存储装置。
[0111]
本发明根据特定实施例进行描述。其他实施例在以下权利要求的范围内。例如,本发明的步骤可以以不同的次序执行并且仍然获得所需结果。多个测试脚本版本可以作为单元被编辑和调用,而无需使用面向对象的编程技术;例如,脚本对象的元素可以在结构化数据库或文件系统中被组织,并且描述为由脚本对象执行的操作可以由测试控制程序执行。
[0112]
已经使用术语“处理器”、“输入装置”等描述了本发明的元件。本领域技术人员应当理解的是,这样的功能术语及其等同形式可以指的是空间上分离但组合以服务所定义的功能的系统部分。同样地,系统的相同物理部分可以提供其中两个或多个定义的功能。
[0113]
例如,可以适当地使用相同的存储器和/或处理器来实施单独定义的装置。
附图说明
[0114]
现在将纯粹地通过示例的方式参照附图描述本发明的优选特征,其中:
[0115]
图1是一般实施例中用于安排将物品递送给位于不同收件人位置处的收件人的计算机实施的物流方法的流程图;
[0116]
图2是根据一个示例的计划安排生成方法的高级概述流程图;
[0117]
图3是根据一个示例的描述过滤每个母集群中的物品的流程图;
[0118]
图4是根据一个示例的描述在母集群内创建子集群的流程图;
[0119]
图5是根据一个平衡的子聚类示例的向子集群分配物品的高级概述流程图;
[0120]
图6是根据一个示例的描述改进所需子集群的数量的流程图;
[0121]
图7是根据一个示例的描述为每个子集群分配初始物品的流程图;
[0122]
图8是根据一个示例的描述将所有剩余物品分配给子集群的流程图;
[0123]
图9是根据一个示例的描述确定合格子集群(理论上可以向其分配物品的子集群)的流程图;
[0124]
图10是根据一个示例的描述将子集群分配给用户的流程图;
[0125]
图11是根据一个示例的描述将物品分配到隔间中以及确定行程之间必要的重装载位置的流程图;
[0126]
图12(包含图12a和图12b)是根据一个示例的描述针对其他递送代理的重装载调整母代理计划安排的流程图;
[0127]
图13是根据一个示例的描述为用户创建事件的流程图;
[0128]
图14是根据一个示例的描述针对每个用户在每个站点上设置起点和终点车辆的流程图;
[0129]
图15(包含图15a和图15b以及图15c)是根据一个示例的描述计算在计划安排中的所有事件的预期持续时间的流程图;
[0130]
图16是根据一个示例的数字物品清单的示例;
[0131]
图17是根据一个示例的生成的递送/物流计划安排的示例;
[0132]
图18是根据一个示例的基于网络的gui的代表性屏幕截图,其中多个用户的计划安排被映射为突出显示各个事件;
[0133]
图19是根据一个示例的基于移动电话的gui的代表性屏幕截图,其中单个用户的事件被映射;
[0134]
图20是具有计划安排信息的替代gui屏幕;
[0135]
图21是根据一个示例的高级概述流程图系统图;以及
[0136]
图22是用于实施本发明示例的合适硬件的图。
具体实施方式
[0137]
下面的实际实施例是一种简单的实施方式,其使用在工业园区地点的仓库外操作的带有驾驶员(母代理)的厢式送货车进行递送,并且递送到市内位置,其中带有手推车或手推自行车的步行者和骑自行车者(递送代理)用于高密度递送。一次为每个步行者/骑自行车者分配一个子集群。为了简单起见,仅考虑单个厢式货车以及因此的单个母集群,以及单个经销商。在此示例中,递送每天发生,但是相同的方法学适用于时间严格的递送。
[0138]
厢式货车在仓库和中心之间或多个中心之间穿梭。因此,它可能会随步行者的其他集群一起返回。它还可以递送特殊件、离群值以及从步行者集群中过滤出来的其他物品。
[0139]
来自经销商的数字清单到达仓库,以便在某天递送物品。数字清单的每行都是一个物品(或包裹)的记录。该行可以称为单向物品。数字清单被装载到软件(通常称为mode:link(模式:链接))中,该软件是基于云的一组算法,该算法用于规划路线、计划安排、客户通信、数据分析和优化。
[0140]
可以将数字清单与给定日期要到达的递送物品进行匹配,以使可以删除未到达的物品的记录。这可以通过对接收到的物品上的条形码进行初始扫描来进行。之前递送中未递送的物品的记录可以被增加,也许也可以通过扫描来增加。
[0141]
初始扫描可以使用便携式设备(例如智能手机)和来自mode:link软件套件的应用程序。该应用程序(或app)可以为清单上的包裹提供绿色横幅以及为未在清单上的包裹提供红色横幅和触觉或音频反馈。在此阶段,可以使用app手动指定特殊件以使将特殊件分配给厢式货车驾驶员以进行递送和/或使用清单中的物理信息和/或注释自动指定特殊件。
[0142]
下一步,生成计划安排,如在其他位置更详细地说明。该方法确定将哪个集群分配给哪个用户。该分配可以是随机的、遵循严格的系统或允许手动分配、或者考虑到用户的能力/位置等。例如,某些用户可能有资格作为递送代理但没有资格作为母代理。该计划安排
或其相关的各个部分被传送到在厢式货车驾驶员和步行者的移动设备上运行的应用程序。
[0143]
可以使用标准方法或通道方法生成计划安排。在标准方法中,厢式送货车在单个中心位置处放下包裹。快递员/步行者与厢式货车相遇,并且从该位置出发送货。在通道方法中,厢式送货车将已装载的包放在安全的地方,例如用于快递员提取的储物柜。这样就无需满足厢式货车的需要并且为计划安排提供了更大的灵活性,但组织起来更为复杂,因为它需要位于市中心的储物柜或有人值守的场所。
[0144]
在下一步中,重新扫描每个包裹,并且该app指示对应于单个包(a-z)的包(隔间)字母(a-z)和数字(1表示第一个被包装并且最后递送,2表示第二个被包装等,或反之亦然)。当前,数字和字母是手动书写或打印在包裹上。然而,在自动方法中,可以省略重新扫描和手动标记步骤。包裹按次序被装载到包中。在此值得提及的是,多于一个的包可以被分配给单个步行者。例如,厢式货车可以返回以重装载更多包以进行第二次旅行,或者当厢式货车可以搭载空包并将替换包交给步行者时,可以继续行驶到另一个中心位置。
[0145]
特殊件已被编号,但未分配给子集群或未给字母-它们被分配给厢式货车驾驶员以用于递送。上述情况也适用于任何离群值。当步行者正在递送时,在第二个包交给快递员之前,这些厢式货车递送会占用厢式货车和驾驶员。
[0146]
图1是根据一般实施例的计划安排生成的概述流程图。在这种方法中,首先处理在配送中心接收到的物品以为每个物品提供记录,该记录包括物品标识和收件人位置(s2)。在s4中,根据收件人的位置将记录聚类成一个或多个母集群,针对第一运输阶段,每个母集群被分配给不同的母代理。在s6中,如记录所指示的,根据母集群中的收件人位置来为每个母集群定位中心位置。s8涉及根据收件人位置将每个母集群中的记录进一步聚类成用于第二运输阶段的一个或多个子集群。在步骤s10中,对于每个子集群,子集群中的记录被分配给从母代理的中心位置操作并且在收件人位置处递送的所选择的递送代理(其隔间):在此阶段可以针对所选择的递送代理计算子集群递送路线和物品的递送次序。s12为每个母代理和递送代理创建具有事件和事件的时间的单独计划安排,其中事件包括代理沿着路线正在行驶的行驶事件和代理正在执行以下停车动作中任一个的停车事件:递送物品、在代理之间转移物品和等待。例如,简单的母代理(厢式货车)计划安排可以包括沿着其路线驾驶到达中心的行驶事件、将隔间转移到递送代理(步行者)的停车事件以及沿着路线的延续驾驶到其自己递送的行驶事件。相应简单的递送代理(步行者)计划安排可以包括从母代理转移隔间的停车事件,和然后一系列交替的到达递送位置的行驶事件和递送隔间中物品的停车事件。最后,在s14中,通过向每个母代理和递送代理提供单独计划安排信息来指示母代理和递送代理来递送物品。实物递送如下。
[0147]
步骤s12至s14可以或多或少是自动的,这取决于递送的自动化程度。在更手动的方法中,可以手动标记物品(例如,由用户基于来自智能手机或其他移动设备的指令)、手动进行转移、并将计划安排信息提供给人类母代理和递送代理。在最自动化的方法中,标记可以是自动的,可以通过自动标记或简单地通过将数据增加到记录中来实现。转移可以通过适当编程的机器人或输送机系统进行,并且导航可以是自动导向的车辆/无人机等。
[0148]
图2是根据特定实施例的计划安排生成的流程图。
[0149]
步骤s204验证输入数据集。输入数据集是数字物品清单、可用车辆列表、可用用户列表(通过厢式货车和本地递送进行实物递送的人员)、用户车辆分配、仓库地址和计划安
排说明(计划安排的名称)。这些数据集可以预先存储在系统中或输入到系统中,并且因此这个步骤可能不需要手动输入。另外,中心用户可以输入变量(选项)来设置计划安排生成的首选项。例如,用户可以在此阶段指定他们要求使用厢式货车来递送一些物品。
[0150]
此外,例如,用户可以指定他们希望针对在特定日期可用的特定资产集合优化递送-例如,用户可以手动输入可用的车辆和用户并且mode:link系统将通过各种场景运行以找到将创建最便宜或最短的递送计划安排的组合。
[0151]
在gui的“生成计划安排”标签中,可以存在具有严格分配的选项,该选项是自动选择的(默认设置),并且其中每个人都被分配给特定的角色/车辆。如果此选项被移除,则仓库管理者可以列出他们在特定日期可用的资产总数,例如1辆厢式货车、3辆自行车、10个步行包以及8个人,并且mode:link可以通过场景运行以找到将创建最便宜或最短递送计划安排的组合。
[0152]
步骤s206例如使用如前所述的dbscan形成母集群。此聚类过程导致许多聚类的物品集(母集群)和可能的离群值,其被确定为与母集群中的其他物品相距甚远以使需要通过母代理单独处理(即不放进子集群,而是由厢式货车递送)。
[0153]
步骤s208过滤每个母集群中的物品。根据一个实施例的该过程的描述参见图3。
[0154]
步骤s210确定在任何母集群中是否存在被指定为厢式货车物品的任何物品(由厢式货车递送的那些)。如果否,则过程继续到步骤s216。如果在任何母集群中有厢式货车物品,则tsp算法在被指定为驾驶该厢式货车的用户被标记为不可用(s214)之前(因为他们将忙于递送厢式货车物品)在每个相关的母集群中找到该厢式货车的最佳递送路径(s212)。以此方式,厢式货车驾驶员不被视为能够通过自行车或步行来递送物品的递送代理。
[0155]
步骤s216确定在任何母集群中是否存在自行车物品(即,通过自行车待递送的物品)。如果没有,则这表明仅需要厢式货车驾驶员来执行递送,并且该方法终止(s218)。如果在任何母集群中有自行车物品,则在每个母集群中创建子集群(s220)。根据一个实施例的该过程的描述参见图4。
[0156]
步骤s222将每个子集群分配给负责递送该子集群内的所有物品的单个用户。根据一个实施例的该过程的描述参见图10。
[0157]
步骤s224“打包”子集群,即,将它们分配给隔间。例如,一个子集群可能需要两个隔间,并且因此需要递送代理的两个行程,其中重装载位置在两个行程之间。确定每个自行车使用者的必要重装载位置(如果有的话)。根据一个实施例的该过程的描述参见图11。
[0158]
步骤s226使用tsp算法来为每个子集群找到要由递送代理执行的最佳行程。一个行程对应于一个隔间,因此递送代理可以具有一个或多个行程(在分配给该递送代理的单个子集群内)。可能使用基于映射软件的简单时间估计来估计每个行程上每个站点处的到达时间(s228)。步骤s226可以在s224之前进行,特别是在集群物品的包装取决于递送的次序的情况下。
[0159]
步骤s230修改厢式货车路径以解决厢式货车在重装载事件期间遇到递送代理的需求。也就是说,在与单个子集群相对应的所有物品都不能装入一个递送代理的一捆物品(一个隔间)中的情况下,递送代理必须与母代理相遇以用存储在厢式货车中的一个物品重装载/替换它们的捆。根据一个实施例的该过程的描述参见图12a和12b。在另一种处理重装载的方式中,可能是在本地区域中存在预定的安全位置,在该位置母代理可能会留下物品
捆。然后,递送代理的路线可以在适当的时间在这些位置合并站点。
[0160]
步骤s232创建事件。此事件创建过程将考虑每个用户在物流过程的每个阶段正在操作的车辆,并且为所有用户生成事件。根据一个实施例的该过程的描述参见图13。
[0161]
步骤s234创建完整的计划安排。此计划安排包含所有用户在物品的递送期间要执行的所有事件的详细信息。步骤s236计算这些计划安排的事件中的每个的预期持续时间。根据一个实施例的该过程的描述参见图15a、15b和15c。步骤s238产生用于显示的计划安排的摘要信息。
[0162]
图3是概述过滤每个母集群中物品的流程图。过滤将待递送的每个物品标记为厢式货车物品、自行车物品或无法递送的物品。顺便提及的是,在这里和其他地方,术语“自行车”和“自行车物品”分别表示子代理和由递送代理待递送的物品,并且不仅限于自行车或容纳在自行车隔间中的物品。递送代理可以是带有手推车或踏板车的步行者,或者可以使用的步行者和骑自行车者的混合或任何其他本地递送代理。
[0163]
步骤s304-312考虑每个母集群中的每个物品。步骤s304从下一个母集群开始。在没有母集群可供考虑的情况下(s304,否),过滤终止(s306)。否则,考虑下一个母集群(s304,是)。步骤s308获得母集群,并且步骤s310检查是否存在下一个物品。在当前母集群中没有可供考虑的物品的情况下(s310,否),过程在s304中继续下一个母集群询问。如果有物品(s310,是),则步骤s312获取该物品的记录,并且步骤s314评估该物品的尺寸是否适合装入任何隔间中。在没有合适尺寸的隔间来处理该物品的情况下,步骤s316将该物品标记为无法递送(退回),指示该物品(该物品的数字记录)必须作为例外处理。如果物品确实装入隔间(s314,是),则步骤s318询问该隔间是否属于/用于自行车。如果是,则步骤s320将该物品标记为自行车物品。如果该隔间不属于自行车/用于自行车(s318,否),则步骤s322询问该隔间是否与厢式货车相关联;如果是,则步骤s324将该物品标记为厢式货车物品。在隔间既不是自行车也不是厢式货车隔间的情况下,步骤s326产生(并且可能向用户呈现)错误。
[0164]
图4是概述创建子(自行车)集群的部分的流程图。呈现的逻辑确定要创建的子集群的数量(k)。
[0165]
步骤s404从下一个母集群开始。在没有母集群可供考虑的情况下(s404,否),则逻辑终止(s406)。否则,步骤s408获取母集群,并且步骤s410获取母集群内的自行车物品。
[0166]
步骤s404-410获得每个母集群中所有自行车物品的详细信息。当已经处理所有母集群时,子集群的创建终止(s406)。
[0167]
一旦获得特定母集群中的自行车物品的记录,则步骤s412询问用户是否手动选择厢式货车集群(这可能由于如在先前步骤s204中提交/验证的选项/偏好中所指示的厢式货车驾驶员的个人偏好)。如果已经请求厢式货车集群(例如,在输入参数中)(s412,是),则步骤s414询问厢式货车是否已经被分配非自行车物品(例如,对于自行车的隔间而言太大/太重的物品)。
[0168]
如果查询的答案是否定的(s414,否),则步骤s418将非厢式货车物品的总数与可用快递员(自行车、步行和厢式货车代理)的数量进行比较:如果物品多于可用快递员(s418,是),则步骤s420将k的值设置为可用快递员的总数。如果物品少于可用的非厢式货车快递员(s418,否),则步骤s422将k的值设置为非厢式货车物品的数量(这建议将每个物
品分配给其自己的子集群)。
[0169]
供选择地,如果厢式货车已经被分配非自行车物品(s414,是),则步骤s416将非厢式货车物品的总数与非厢式货车快递员的数量进行比较(即,可用快递员的总数减去负责驾驶厢式货车并且递送非自行车物品的快递员的数量)。如果物品多于可用的非厢式货车快递员(s416,是),则步骤s424将k的值设置为自行车快递员和步行快递员的数量。如果物品少于可用的非厢式货车快递员(s416,否),则步骤s422将k的值设置为非厢式货车物品的数量。
[0170]
如果用户还没有请求厢式货车集群(s412,否),则逻辑从步骤s416继续(将非厢式货车物品的总数与非厢式货车快递员的数量进行比较)。
[0171]
实际上,步骤s412至s424是找到子集群的数量的一种方法。在正常情况下,对于每辆自行车而言,子集群的数量k是1(通常,每个递送代理是1)。如果待递送的物品少于自行车,则某些自行车将无法递送,并且这种逻辑可能会发挥作用。
[0172]
使用k的预定值,创建物品的子集群(s426)。例如,可以使用k-medoids算法创建子集群,该算法将一组数据点(递送位置)划分为k个子集(子集群),以使子集最小化数据点与数据点的子集群的中心之间的距离之和。在k-medoids中,数据点的子集群的中心对应于集群中的数据点(与k均值算法相反,在该算法中,中心点可能不对应于可访问的位置)。供选择地,可以使用平衡子聚类算法,如下文所述。
[0173]
在集群过程终止(s406)之前,整个过程通过所有母集群迭代(s404)。
[0174]
图5是概述使用平衡子聚类创建子集群的高级概述的流程图(如图4中的步骤s426所示)。平衡子聚类使递送代理之间的物品分布变得均匀,而k-medoids可能不均衡地分配(即,相对于另一个递送代理,一个递送代理可能具有要处理的更多数量的递送)。最初,步骤s504确定所需的子集群的数量,其可以被认为是先前确定以处理其中递送物品很少的情况的k值的可选改进。可以在图6中看到该确定的一个实施例的进一步细节。然后,步骤s506为每个子集群分配初始点(物品递送位置);在图7中可以看到该过程的一个实施例的示例。然后,步骤s508将所有其他物品分配给子集群。在图8中可以看到该过程的一个实施例的进一步细节。然后,所得到的子集群和通过该物流方法被认为无法递送的任何物品的细节被退回(s510),并且子聚类过程终止(s512)。
[0175]
图6是详细说明改进所需子集群的数量的流程图。此处呈现的逻辑针对待递送的物品少于可用的递送代理的处理场景(其在大多数递送情况下都是意料不到的)。在此示例中,自行车和步行者递送代理两者都被使用。
[0176]
输入数据在s604中被汇总并且包括:b,骑自行车者的数量;w,步行者的数量;v,基于厢式货车的代理的数量;t,递送代理的总数量;以及i,母集群中物品的数量(在此示例中减去1以说明预定的中心点是物品递送的概念)。
[0177]
步骤s606询问母集群中的物品的数量是否大于可用递送代理的总数。如果答案为否,则步骤s608将子集群的总数(k)设置为等于递送代理的总数。如果答案为是,则步骤s610询问基于厢式货车的代理的数量是否大于0。这表明在输入选项中已打开厢式货车集群。如果这里的答案为是,则步骤s612将所有物品分配给基于厢式货车的代理。如果答案为否,则步骤s614开始通过每个(基于非厢式货车的)代理迭代、在步行者和骑自行车者之间切换(s616)、并且从为迭代选择的模式中移除一个集群(s618)。实际上,集群数量的这种连
续降低直到我们拥有与物品一样多的递送代理为止通过在骑自行车者和步行者之间交替来将物品分配给每个非厢式货车用户。当代理的数量降低到等于物品的数量的值时(s614,否),改进过程终止(s620)。
[0178]
图7是详细说明分配每个子集群中初始物品的流程图。分配过程通过考虑每个子集群开始(s704)。此时,集群中有k个物品,但是尚未分配特定物品。步骤s706创建包含从子集群中的所有物品递送位置到母/dbscan集群的中心点的距离的阵列。此中心点是母集群中物品集的中心,即到所有其他物品的距离之和最低的位置。
[0179]
步骤s708找到包含最接近母集群的中心的位置的阵列的索引。步骤s710将该递送位置推送到第一集群的站点列表,其稍后用于创建事件。然后,步骤s712在定义物品状态的阵列中将该“推送的”递送位置标记为“已分配”,指示该物品已经被考虑、说明并将被递送。然后,步骤s714将从母集群中心到此站点的距离推送到阵列,该阵列包含负责该特定子集群的递送代理将行驶的距离。然后针对其他子集群重复步骤s706至s714。当已经为所有k个子集群分配初始点时(s704,完成),该过程终止(s716)。
[0180]
实际上,步骤s706至s712将物品/位置列表按它们距母集群中心的距离排序,将最靠近中心的物品放在首位。然后,对于每个集群,依次将已排序物品的列表中的下一个最接近物品分配给子集群。在将物品标记为“已分配”之前,物品状态(如存储在物品状态阵列中)可能为空,表示该物品尚未被分配,并且

到目前为止

据认为该物品将可递送。供选择地,该物品可以处于“无法递送”状态,指示没有人能够递送该物品。
[0181]
图8是概述了将所有剩余物品(在分配初始物品之后)分配给子集群的流程图。可选步骤s804找到合格集群,即可以成功包含正在考虑的物品而又不会使递送代理行驶的距离过大的集群。可以在图9中看到该合格集群评估的一个实施例的进一步细节。
[0182]
步骤s806考虑每个物品的合格集群的数量。在不超过特定物品的单个合格(有资格)集群的情况下(s806,否),步骤s808询问该物品是否只有一个合格集群。如果答案为否(s808,否),则不存在可以向其分配物品的子集群,并且步骤s810在每个子集群中将该物品标记为“无法递送”。如果答案为是(s808,是),则步骤s812将该物品分配给唯一的合格集群。
[0183]
在可以将物品分配给多个子集群(即,有多个合格集群)的情况下(s806,是),步骤s813计算所有合格集群权重的标准差(每个权重基于例如在每个合格子集群中递送代理路径的总时间和/或距离)。然后,步骤s814开始逻辑以在仍然有要处理的子集群的情况下考虑单个合格子集群(s814,是)。步骤s816创建包含从递送路径中的最后点到每个其他点的距离的阵列。步骤s818找到包含最小距离的阵列的索引。步骤s820加上物品的递送位置计算集群的权重(递送路径的总距离),并且步骤s822利用这新增加求出集群的权重的标准偏差。步骤s824计算集群权重的这个新的标准偏差(加上物品)与旧的标准偏差(在加上物品之前)之间的差。当已经对所有合格子集群执行步骤s818至s824(s814,完成)时,步骤s826确定合格子集群(加上该物品)会导致集群权重标准偏差的最小变化。然后,步骤s828将该物品分配给该子集群,并且步骤s830在先前描述的物品状态阵列中将该物品标记为“已分配”。
[0184]
实际上,步骤s816至s830计算具有和不具有新物品的合格子集群权重的标准偏差,并将其增加到引起标准偏差最小变化的集群中。这针对使集群保持相同的持续时间。对
每个物品而言,重复此逻辑。
[0185]
图9是详细说明确定合格子集群(可以向其分配物品的子集群)的流程图。步骤s904一对一地考虑所有子集群。步骤s906确定累积路径距离d,其包括从子集群中最接近的现有点(递送位置)到待分配的物品的距离。另外,步骤s908加载当前子集群模式的最大距离md。例如,自行车集群将具有比步行集群具有更大的最大距离。该值可以被存储在先前描述的车辆列表中。步骤s910询问距离d是否小于(或等于)最大允许距离md。如果答案为是(s910,是),则步骤s912将子集群标记为合格集群阵列内的合格集群。如果答案为否(s910,否),则该集群不包括在该阵列中。
[0186]
在s910-s912之后,考虑下一个子集群。当所有子集群针对它们的可能性已经被评估为合格集群时(s904,完成),步骤s914询问合格集群的数量(或者相等地,合格集群阵列的长度)是否为0。如果答案为否(s914,否),则该过程终止并且图8呈现的逻辑恢复(s922,返回到具有一个或多个合格子集群的s804)。如果答案为是(s914,是),则步骤s916询问是否有厢式货车集群。如果答案为是(s916,是),则步骤s918将厢式货车集群返回为合格集群。实际上,这确保了仍然可以使用厢式货车来访问偏远的物品递送位置(距离包括在标准子集群中的所有其他递送位置太远的递送位置)。然而,如果答案为否(s916,否),则无法使用该方法来递送该物品,并且步骤s920返回空的合格集群阵列。在s918和s920之后,该过程终止(s922)。
[0187]
对于每个集群,逻辑针对挑选出最接近于与集群中先前选择的物品的物品(因为逻辑正在挑选出下一个站点)。每个集群可以具有不同可能性的下一个物品和/或某些集群可以正在查看相同可能性的下一个物品。如果最接近的物品距离太远,则该集群不被包括在合格集群阵列中。实际上,如果没有足够近的自行车/步行集群来递送物品,则在启用厢式货车集群的情况下步骤s904-s922将返回厢式货车集群,否则它们将不返回任何内容(空阵列)。
[0188]
图10是详细说明可选过程的流程图,通过该过程用户被分配给自行车集群。步骤s1004加载下一个集群。步骤s1006获取与所加载的母集群相关联的子集群。然后,步骤s1008通过自行车隔间容量对所有可用的自行车用户进行分类。可用的骑自行车的用户可以如先前所述从用户列表中确定,并且可以例如在程序的输入阶段被提供。此外,如前所述,可以在车辆列表中提供自行车隔间容量。自行车和自行车用户之间的链接可以根据例如如先前所述的用户-车辆分配来确定。
[0189]
步骤s1010通过物理尺寸对子集群内的物品分类。然后,步骤s1012询问是否需要优化。如果认为有必要进行优化(s1012,是),这可能是例如由于特定自行车隔间的有限容量或由于存在不规则的大物品,则步骤s1014获取正在操作具有最大隔间容量的车辆的用户。然后,步骤s1016加载该第一用户(u)。步骤s1018按照每个子集群包含的最大物品的次序对子集群进行分类。然后,步骤s1020获得第一集群(c),其是能够容纳最大物品的集群。然后,步骤s1022将用户u分配给集群c。(为简单起见,省略步进通过所有子集群的循环。)
[0190]
然而,如果步骤s1012确定不需要优化(例如,在所有可用自行车具有相同容量的情况下),则步骤s1024仅将用户分配给该集群。该分配可以简单地是例如随机分配。在s1022或s1024之后,考虑下一个母集群;当所有集群都已经分配给用户时(s1004,完成),该分配过程终止(s1026)。
[0191]
图11是示出了将物品装入到隔间中以及确定行程之间必要的重装载位置的流程图。步骤s1104初始化将循环通过所有母集群的计数器变量(i)。步骤s1106询问当前计数器值(i)是否小于母集群的总数。如果答案为是(指示仍然有要考虑的母集群)(s1106,是),则步骤s1108从当前母集群获得所有子集群,并且步骤s1110初始化将循环通过当前母集群的所有子集群的新计数器变量(k)。
[0192]
步骤s1112询问当前子集群计数器值(k)是否小于母集群内的子集群的总数。如果答案为是(指示仍然有要考虑的子集群)(s1112,是),则步骤s1114加载当前子集群中所有物品的记录。另外,可选步骤s1116加载子集群的操作车辆的隔间的详细信息。然后,步骤s1118将物品的详细信息和隔间尺寸发送到装箱算法,以确定将商品包装在可用容器中的方法(例如,按递送次序或按尺寸,例如在隔间尺寸被提供/不同的情况下)。
[0193]
步骤s1120将包装的隔间(遵循装箱算法)分配给参数“trips(行程)”。步骤s1122询问“trips”的长度是否大于1。如果答案为是,则这表示子集群必须包含将要求递送代理在子集群路线中的中间位置重装载的多个较小的细分(行程)。步骤s1124初始化将循环通过当前子集群的所有行程的新的计数器变量(j)。步骤s1126询问当前行程计数器值(j)是否小于子集群内的行程的总数。如果答案为是(表明仍然有要考虑的行程)(s1126,是),则步骤s1128将当前正在考虑下的行程的第一站点标记为重装载位置,这意味着厢式货车必须在这个位置处与骑自行车者/步行者相遇,以便将待递送的物品重装载到隔间中。然后,行程计数器(j)的值增加1(s1130),并且从步骤s1126继续重装载的确定。
[0194]
当所有必需的重装载位置被标记时(s1126,否),或者在不需要子集群的重装载位置的情况下(因为所有物品都可以在一次行程中递送)(s1122,否),步骤s1132将子集群计数器的值(k)增加1,并且装箱程序从步骤s1112继续进行到下一个子集群。当k的当前值与子集群的数量匹配时,表示已处理所有子集群(s1112,否),步骤s1134将母集群计数器(i)的值增加1,并且从步骤s1106继续进行子集群的获取(之后是这些集群的装箱问题)。当i的当前值与母集群的数量匹配时,表示已经处理所有母集群内的所有子集群(s1106,否),步骤s1136终止子集群箱装箱问题和行程重装载标记程序。
[0195]
实际上,图11中呈现的逻辑循环通过所有母集群的所有子集群,并且通过装箱算法传递子集群的物品(可能连同隔间尺寸的详细信息)。装箱问题返回需要被执行的行程的详细信息以便在子集群内递送所有物品。然后,将每个行程的第一件物品标记为重装载位置,表明厢式货车必须在这个位置与递送代理相遇,以便向递送代理重装载更多用于递送的物品。以这种方式,或通过使用另外的计划安排方法,递送代理的站点(包括重装载位置)将沿着路径排列。例如,如下所述,这可以在将这些重装载位置插入厢式货车计划安排中之前进行。
[0196]
图12(分为图12a和12b)是描述调整用于重装载自行车(或其他递送代理)的厢式货车(母代理)计划安排的一个实施例的流程图。自行车计划安排/重装载是通过将厢式货车在其下一个站点的估计到达时间与厢式货车在每个自行车重装载位置的估计可能到达时间以及自行车在重装载位置的到达时间进行比较来工作。根据此比较,过程可以在厢式货车执行其自己的停车之前将此位置插入到厢式货车的计划安排中。
[0197]
步骤s1204询问是否有剩余的任何更多母集群要处理。如果是,则步骤s1206加载母集群。然后,步骤s1208询问母集群是否具有与其相关联的厢式货车路径。如果答案为否
(s1208,否),则步骤s1210找到为其分配厢式货车的子集群,并且步骤s1212加载与该子集群相关联的厢式货车路径。供选择地,在厢式货车已经具有要遵循的路径的情况下(s1208,是),步骤s1212加载该厢式货车路径。
[0198]
步骤s1214加载母集群内的所有子集群的详细信息。步骤s1216询问是否有剩余的任何子集群要考虑。如果答案为否(表示当前子集群内的所有重装载位置均已处理)(s1216,否),则考虑下一个母集群(s1204,是)。供选择地,如果答案为是(s1216,是),则步骤s1218加载当前子集群的记录。步骤s1220确定子集群内作为重装载位置(r)的所有自行车站点。对所有子集群重复该过程。
[0199]
图12a有效地考虑厢式货车路径(如果有的话)和所有自行车重装载位置。
[0200]
在图12b中,步骤s1222询问是否有任何其他重装载位置要考虑。如果是,则步骤s1224为该厢式货车创建可能的下一个站点(其是该厢式货车已经计划去的地方)以及下一个骑自行车者/步行者的重装载位置。步骤s1226找到厢式货车在每个可能的下一个站点的估计到达时间,并且步骤s1228找到自行车(或任何其他递送代理)在每个重装载位置的估计到达时间。步骤s1230找到每个可能的下一个站点的两个估计到达时间之间的差,并且s1232确定对应于最小到达时间差的站点。然后,步骤s1234询问这是否是自行车/步行者站点。
[0201]
在该示例中,期望小的或负的时间差,以便避免厢式货车通过长时间保持静止(等待空自行车的到来)而浪费任何时间。在具有最小时间差的站点是自行车/步行者重装载站点的情况下(s1234,是),步骤s1238在其自己的计划安排中找到厢式货车需要的额外时间,以将重装载位置包括作为下一个站点。步骤s1240将此重装载站点指定为厢式货车的下一个站点(在厢式货车的路线中)。步骤s1242从可能的下一个站点列表中去除该重装载站点,以确保不再选择重装载位置。步骤s1244为受影响的自行车路径更新自行车的到达时间(在所选择的重装载位置需要先前的自行车路径偏离的情况下)和/或为受影响的厢式货车路径更新厢式货车的到达时间(在所选择的重装载位置需要先前的厢式货车路径偏离的情况下)。
[0202]
如果步骤s1234确定具有最小时间差的站点不是自行车/步行者站点(s1234,否),则步骤s1236将站点索引增加值1(即考虑下一个站点)。该过程从如上所述的步骤s1224继续,仅现在考虑新的可能厢式货车下一个站点。当识别出合适的重装载位置时(在某种意义上说是合适的,例如,它比厢式货车的列表上的下一个站点更适时接近自行车重装载时间)(s1222)。当所有重装载站点已经被分配重装载位置时,重装载计划安排(针对此特定母群集)过程终止(s1246)。当已经处理来自所有母集群的所有子集群时(s1204,否),整个重装载计划安排过程终止(s1248)。
[0203]
图13是描述其中创建事件的过程的流程图。这里的事件对应于由物流方法的用户执行的活动,并且包括例如“等待”、“前往”、“转移”和“递送”。实际上,图13的逻辑针对首先将没有运动的所有动作分为一系列“站点”和“停车动作”。然后这些站点和停车动作被转换为事件。
[0204]
步骤s1304为每个用户在每个站点设置开始和结束车辆。在图14中可以看到根据一个实施例的该步骤的进一步细节。步骤s1306最初加载单个用户的包括他们的路径的细节。然后,步骤s1308获得在其递送路线或厢式货车路线上分配给用户的第一站点的细节。
步骤s1310创建“前往”事件,该事件是要求用户从一个位置移动到停车事件的事件(例如,可能要求骑自行车者从一个递送位置沿着他们分配的路线移动到另一个位置)。然后,步骤s1312创建用于停车动作的事件(例如,骑自行车者可能有必要被厢式货车放下,或者厢式货车驾驶员有必要将一整箱物品移交(转移)给步行者)。如果必要的话,步骤s1314在站点处创建最终等待事件。以这样的方式,可以稍后计算等待中花费的实际时间量(其可以被初始化为零)。
[0205]
步骤s1316询问是否有与用户相关联的更多站点要被考虑。如果有(s1316,真),则步骤s1308加载下一个站点并且重复步骤s1310至s1314。如果对于该特定用户没有更多站点(s1316,假),则步骤s1318询问是否有更多用户要考虑。如果有,则步骤s1306加载下一个用户,并且所有该用户的站点如前所述被考虑(步骤s1308至s1316)。当已经为所有用户创建事件时(s1318,假),该过程终止(s1320)。
[0206]
图14是描述了过程的流程图,通过该过程在每个站点为每个用户设置开始和结束车辆(在s1304中)。此过程用于确定人们何时需要等待。例如,如果递送代理在停车开始时正骑着自行车,并且最后在厢式货车结束,则递送代理将需要等待厢式货车到达并且稍后在前往下一个站点之前等待厢式货车完成所有它的事件。
[0207]
步骤s1404考虑下一个用户。然后,步骤s1406将该用户的当前车辆(在流程图中由变量“current_vehicle”表示)设置为他们的开始车辆。然后,步骤s1408加载该用户的下一个站点的详细信息,并且步骤s1410加载与该站点相关联的动作的详细信息。步骤1412询问停车动作的类型是否指示用户将被接载。如果答案为是(s1412,真),则步骤s1414设置“current_vehicle”以匹配由助手操作的车辆。例如,自行车操作者的当前车辆在被厢式货车接载后将变为厢式货车。供选择地,如果答案为否(s1412,假),则步骤s1416询问停车动作的类型是否指示用户正在下车。如果答案为是(s1416,真),则步骤s1418将用户正在使用的当前车辆设置为助手车辆。例如,如果将自行车操作者通过厢式货车运输到他们的子集群的起点,则自行车操作者的当前车辆在被厢式货车放下后将变为自行车。
[0208]
在步骤s1414和s1418之后,步骤s1420询问是否有更多的停车动作供用户考虑。如果答案为是(s1420,真),则通过步骤s1410加载下一个停车动作,并且重复步骤s1412至s1418。如果答案为否(s1420,假),则这表明由“current_vehicle”变量当前指示的车辆是用户最后将要操作的最终车辆(步骤s1422)。
[0209]
步骤s1424询问是否有更多站点供用户考虑。如果答案为是,则通过步骤s1408加载下一个站点,并且重复上述针对站点用于用户的最终车辆的设置(步骤s1410至s1422)。如果答案为否,则通过步骤s1426加载下一个用户,并且重复上述针对所有站点用于用户的开始和最终车辆的设置(步骤s1406至s1424)。当已经考虑所有用户时(s1426,假),步骤s1428终止开始和结束车辆的设置。
[0210]
图15a和15b是详细说明为计划安排中的所有事件(对于所有用户)分配持续时间的方法的流程图。步骤s1504询问是否还有任何事件要考虑。如果答案为是,则步骤s1506询问在考下的事件是否是转移事件。如果答案为是,则步骤s1508询问转移是否包括车辆(例如,厢式货车驾驶员可以正在将可折叠的自行车转移给递送代理)。如果答案为否(s1508,否),则步骤s1510不改变事件持续时间的值(此处被初始化为0值)。如果答案为是(s1510,是),则步骤s1512针对每个车辆将事件持续时间变量的值增加30秒的值(例如,2辆自行车
的转移将分配60秒)。
[0211]
在s1510和s1512之后,步骤s1514询问转移是否包括任何物品。如果答案为否(例如,转移可能仅是自行车),则步骤s1516不会改变事件持续时间的值。如果答案为是,则步骤s1518将每个物品的事件持续时间变量的值增加10秒的值(例如,步骤s1518将为用户分配100秒以将10个物品初始装入到隔间中,或如果该物品是隔间,则将允许10秒的时间来转移隔间)。然后,预期的转移持续时间是在步骤s1508至s1518之后的所得值。
[0212]
在事件不是转移的情况下(s1506,否),步骤s1520询问事件是否是递送。如果答案为是,则步骤s1522将预期递送持续时间设置为60秒。供选择地,可以基于递送过程的复杂性来计算或调整该值(例如,可以为用户分配额外的时间来攀爬许多的楼梯)。
[0213]
在该事件也不是递送的情况下(s1520,否),步骤s1524询问该事件是否是“提取”(当通过骑自行车者/步行者提取物品或通过厢式货车提取隔间时)。如果答案为是,则步骤s1526将预期的提取持续时间设置为60秒。该值也可以变化。
[0214]
在该事件也不是“提取”的情况下(s1524,否),步骤s1528询问该事件是否是“前往”事件。如果答案为是,则步骤s1530确定两个位置之间的距离(即,用户离开的位置和用户要去的位置)。在该实施例中,该信息被存储在查找表中。距离(与用户的预期或历史观察到的速度结合)可以用于确定预期的“前往”事件持续时间。
[0215]
在该事件也不是“前往”事件的情况下(s1524,否),图15b中的步骤s1532询问该事件是否是等待事件。如果答案为是(s1532,是),则步骤s1534获得与等待事件有关的所有事件(即,等待事件正在等待的相关事件)。
[0216]
在一个实施例中,以下面的方式确定相关事件:
[0217]
所有相关事件始终附加在“等待”事件上-即它们正在等待
[0218]
相关事件在下面的步骤中定义
[0219]
事件创建阶段-[0220]
提取事件
[0221]
相关事件仅仅是用户提取它们的前往(行驶)事件。
[0222]
下车事件(骑自行车者/步行者的)
[0223]
相关事件仅仅是在他们下车前所需物品的转移。
[0224]
放下物品事件
[0225]
相关事件用于等待将物品放下给他们的每个用户。
[0226]
获取重装载的位置
[0227]
相关事件是用户必须等待才能重装载的事件-重装载者到重装载位置的行驶事件。
[0228]
重装载位置
[0229]
重装载位置在较早的步骤中确定。作为厢式货车(母代理)递送事件生成的一部分,检查每个重装载位置。必须在此重装载位置等待的所有自行车都被增加到厢式货车的重装载事件的相关事件。
[0230]
再次参照图15b,步骤s1536将计数器变量(“stuckcounter”)初始化为0,并且将迭代器的长度设置为等于schedules.length(计划安排的长度)。
[0231]
总的来说,stuckcounter在其不能确定两次通过后所有事件的等待时间时超过
iterators.length(迭代器的长度)(即iterators.length*2分配)。持续时间计算通过迭代通过每个计划安排的事件列表(每个代理一个计划安排并且一次一个)来工作。对于与不同计划安排的等待事件相关的每个事件,软件可能尚未计算出相关事件的持续时间,因此不能确定此等待事件的持续时间,直到完成为止(因为这取决于完成“正在等待”的其他所有事件所花费的时间)。因此,卡住的计数器被递增并且逻辑移动到下一个计划安排以尝试解决所有其他计划安排,直到同一点为止。一旦持续时间服务恢复到被“卡住”的计划安排,则应该有足够的信息来确定等待时间。如果不是,则出现问题并且因此产生错误。
[0232]
迭代器长度由持续时间服务传递的计划安排的数量来确定。因此,对于3辆自行车和1辆厢式货车,生成四个迭代器。它是迭代通过计划安排的事件列表的结构。
[0233]
返回到流程图,步骤s1538执行错误检测过程以检查计数器值是否大于迭代器的长度/计划安排的数量的两倍。如果是,则存在错误(s1538,是),并且步骤s1550终止事件持续时间计算过程。
[0234]
如果当前没有错误(s1538,否),则步骤s1540考虑正在处理的计划安排中的当前等待事件以及在s1534中获得的相关事件列表中的任何事件,并且确定两个事件中的哪个最晚结束。
[0235]
步骤s1542询问等待结束时间(等待事件由于结束的时间,或者相等地,相关事件由于开始的时间)是否大于-1(即零或任何正值);负值用作标志以指示尚未计算相关计划安排中的时间。在这种情况下,在s1544中,stuckcounter会增加1,并且该过程继续到下一个代理的计划安排。
[0236]
如果等待事件与错误没有关联(s1542,是),则步骤s1548继续设置事件的开始时间和结束时间,并且步骤s1504加载用于处理的下一个事件(从s1506开始)。
[0237]
在图15c的步骤s1590至s1598中提供了事件持续时间计算的另一种高级概述。步骤s1590计算“容易”持续时间,其可以被视为具有预设标准值的事件的持续时间。然后,步骤s1592设置“前往”事件,其涉及通过考虑位置之间的距离来计算预期持续时间。步骤s1594解决“等待”事件以及相关联的开始和结束时间。实际上,步骤s1502至s1548的操作可以被视为步骤s1590至s1594的一个实施例。
[0238]
另外,可选步骤s1596可以计算每个车辆和/或用户由于在整个计划安排内行驶而引起的总距离。然后,步骤s1598可以计算递送过程的货币成本的估计;该计算可以利用如其他地方所述的每单位时间成本值。
[0239]
图16中示出了示例性的数字清单。该清单从经销商以逗号分隔值(.csv)电子表格格式到达,并且包括以条形码编号(“标识符”)的形式的物品标识、收件人位置(“customer_address(顾客地址)”)、顾客参考资料(“customer_name(顾客名称)”)、电话号码(“phone_num”)、尺寸(“长度”、“宽度”、“高度”)和重量。也可以增加注释。可以为每个物品分配状态,例如“已到达”(在仓库处)、“已包装”(进入隔间)、“待递送”、“已递送”或“无法递送”(尝试递送之后)。这可以显示在计划安排上,并且在信息处理的下游使用。
[0240]
在mode:link软件中对数字清单进行处理,以按照本文所述将物品聚类,并且提供使用骑自行车者/步行者和厢式货车驾驶员的递送的计划安排。
[0241]
数字清单与车辆清单、用户清单、用户车辆分配的详细信息、仓库地址、除仓库和递送地址以外的任何其他相关地址(例如,已知适合于方便重装载的重装载位置)和计划安
排说明(其可以仅仅是以计划安排名称和日期的形式)一起作为计划安排生成的输入。
[0242]
车辆列表包含可用于执行物品递送的车辆的详细信息。例如,这可以包括:车辆的当前位置;车辆的最大允许行驶距离(即,车辆一次出行允许行驶的预设距离);车辆的最大允许速度(对于我们来说,在如其他地方描述的计划安排计算中);车辆隔间的物理尺寸(待递送的物品在运输过程中存放的隔间);允许运载的车辆的最大总重量;以及各个物品的最大数量。另外,车辆列表可以包括每单位时间车辆的运行成本的估计,其可以用于估计递送过程的总成本。例如,可以通过考虑历史递送成本来确定该值。
[0243]
用户车辆分配的详细信息可以包括例如可用的用户与他们被允许操作的车辆之间的映射。
[0244]
生成的计划安排的示例摘录在图17中被示出,如以标准电子表格格式显示。页面的左侧示出了a至j列,并且页面的右侧示出了k至u列。该计划安排可以以任何表格数据格式生成。例如,计划安排可以生成为.csv文件、制表符分隔值文件或空格分隔值文件。阴影最左侧的列包含计划安排中每个条目的唯一行号。阴影的最上面一行包含计划安排的列的字母标识符。这些数字和字母标识符不包含在表格式计划安排中,而是作为电子表格软件的许多示例内的特征(例如,微软公司的excel)提供。
[0245]
计划安排中的第一条目(行)可以是标头,其提供指示每个列中的值表示什么的变量名称。在图17的计划安排摘录中,包含变量名称的标头被包含在第1行中。出于可读性考虑,仅显示有限数量的计划安排条目。示例条目对应于来自该计划安排内的任意起点的计划安排条目;也就是说,图17的示例不一定对应于计划安排摘录的最开始的条目。注意的是,此处和其他地方的给定示例地址并不对应于实际地址,而是出于提供说明性示例的目的而制造的。
[0246]
标题为“schedule_set_description(计划安排设置说明)”的列(a列)包含计划安排的描述性名称。该值可以由用户确定或自动地生成。这可以对应于已从中生成计划安排的数字清单的名称。尽管图17的计划安排摘录表明在此计划安排的生成中仅使用一个数字清单(manifest 1(清单1)),但在计划安排的生成中可以使用多个数字清单。
[0247]
标题为“user(用户)”的列(b列)包含该条目所引用的用户(递送代理)或车辆的名称。例如,用户a与用户b是不同的个人。在这种情况下,厢式货车1(van 1)是车辆(母代理)。此外,车辆可以由具有自己的用户名的个人操作。
[0248]
标题为user_id(用户标识)的列(c列)包含计划安排的此特定条目中所涉及的用户的唯一标识。计划安排中可以仅包括“user”和“user_id”值中的一个。以这种方式,可以减小计划安排的尺寸(在必要的计算存储空间方面)。
[0249]
标题为“schedule_sequence(计划安排顺序)”的列(d列)包含整数值,该整数值表示特定用户的事件的数量。计数器从零值开始,并且随着该用户的每个连续事件而增加值1。例如,计划安排摘录中的第一条目(第68行)是与用户a相关联的第三事件。
[0250]
标题为“event_type(事件类型)”的列(e列)包含条目描述的事件的标题。例如,计划安排摘录的第一条目(第68行)指示将发生“转移(transfer)”事件:这涉及将物品/捆/送货车从一个用户/车辆转移到另一个用户/车辆,并且因此可以涉及一辆车辆(自行车)到另一辆(厢式货车)或从另一辆(厢式货车)的转移,其中第一车辆行驶。作为另一个示例,计划安排摘录的第二条目(第69行)指示将发生“前往(go_to)”事件:这涉及用户/车辆从一个位
置到另一个位置的移动。作为又一示例,计划安排摘录的第三条目(第70行)指示将发生“等待(wait)”事件:这涉及在同一位置等待,直到另一个用户/车辆到达以便执行连续事件。作为最后一个示例,计划安排摘录的第十一条目(第78行)指示将发生“递送(delivery)”事件:这涉及将物品递送给收件人(消费者)。其他事件类型可以被包括。例如,“提取(pick_up)”事件可以对应于例如从顾客处收集物品,该物品将被运送回原始供应商(即退回物品)或从经销商运送到厢式货车提取隔间。
[0251]
标题为“start_time(开始时间)”的列(f列)包含条目的事件由于开始的时间。在此,它显示为相对于计划安排的预期开始时间(或相对于计划安排的创建)的累积第二计数器。供选择地,可以使用常规日期和时间标记的任何方式来描绘它。
[0252]
标题为“end_time(结束时间)”的列(g列)包含事件由于完成的时间。同样地,在此这被显示为相对于计划安排的预期开始时间(或相对于计划安排的创建)的累积第二计数器。供选择地,可以使用常规日期和时间标记的任何方式来描绘它。在事件期间没有时间流逝的情况下,该值可以与time_start值相同。例如,“等待”事件的完成时间可以被理解为对应于下一个非等待事件的时间。也就是说,“等待”事件是瞬时事件,除非已通过持续时间服务对其进行了修改,如先前更详细地解释的那样。在所示示例中,已将等待事件增加到每个递送代理的厢式货车的停车事件中。一旦持续时间服务已运行,可以从计划安排中删除零持续时间等待事件,或者可以将其保留以用于实时调整。
[0253]
标题为“duration(持续时间)”的列(h列)包含事件(条目)由于采取的时间。例如,“转移”事件可以被分配值为120,因为预期用户将花费120秒来执行物品/捆/送货车转移。供选择地,可以基于待转移的物品/捆/送货车的重量/尺寸来为“转移”事件分配值。如先前段落所述,至少初始地为“等待”事件分配值零。“前往”事件可以被分配对应于到达目的地所需的预期时间的值;这可以基于该特定用户或地址的历史数据,并且/或者可以使用地图数据(例如,使用地址解析和/或使用ai算法查看图像,并且甚至可以使用辅助数据源(例如房地产代理广告))进行计算。此外,例如,如果目的地不在与建筑物入口相同的高度上,则此值可以考虑需要使用楼梯/电梯。供选择地,如果用户已经在那个目的地(例如,在“等待”事件之后),则可以为“前往”事件分配零值。“递送”事件可以被分配标准值120,因为预期用户将花费120秒来执行递送。供选择地,“递送”事件可以基于那个特定用户/代理/地址的历史递送速度数据来分配值。条目的duration值与相同条目的start_time值结合可以用于计算相同条目的end_time值。因此,为了减小计划安排尺寸,可能不必在计划安排中包括所有三个时间值。
[0254]
标题为“completion_timestamp(完成时间戳)”的列(i列)包含计划安排中的事件(条目)实际完成的时间。当检测到

通过手动用户输入(例如,在移动设备的gui上的输入)或通过基于用户位置数据的确定(例如,通过地理围栏)

该事件已完成时,更新此栏。以此方式,其他人可以查看计划安排以建立递送计划安排的状态。此外,这些值可以用于在将来生成的计划安排中提供更准确的事件持续时间估计。
[0255]
标题为“address(地址)”的列(j列)包含事件(单行上条目)发生的地址。例如,在计划安排摘录的第一条目中(第68行),涉及用户a的转移将在地址“333camden passage(333卡姆登通道)”处发生。
[0256]
标题为customer_name(顾客名称)的列(k列)包含要向其递送物品的顾客的名称
或唯一标识符。仅在条目对应于递送事件或涉及单个物品的转移的转移事件(即,在捆的初始包装中)的情况下提供值。在此计划安排摘录中,顾客名称被提供为一随机串的数字,但可以是提供顾客的全名以实现物品的个性化递送。
[0257]
标题为“customer_address(顾客地址)”的列(l列)包含物品将被递送到的地址。与顾客名称一样,仅在条目对应于递送事件或涉及单个物品的转移的转移事件(例如,在捆的初始包装中)的情况下提供值。
[0258]
标题为from(从

)的列(m列)包含要发生转移的位置/车辆/用户的名称。标题为to(到

)的列(n列)包含要发生转移到的位置/车辆/用户的名称。因此,仅在条目对应于转移事件的情况下提供值。例如,计划安排摘录的第一条目(第68行)指示将从van 1转移到用户a。
[0259]
标题为from_bundle(从捆)的列(o列)包含将要从其发生物品递送的捆的名称。仅在条目对应于捆中单个物品的递送事件的情况下提供值。例如,计划安排摘录的第十一条目(第78行)指示递送将要发生,并且待递送的物品被存储在标记为bag z(包z)的捆中。
[0260]
标题为to_bundle(到捆)的列(p列)包含在涉及捆之间的物品的移动的转移事件或涉及捆的初始包装的转移事件中转移的捆的名称。因此,仅在条目对应于转移事件的情况下提供值。
[0261]
标题为bundle(捆)的列(q列)包含在涉及车辆/用户之间的整个捆的移动的转移事件中正在转移的捆的名称。例如,计划安排摘录的第一条目(第68行)指示捆bag x(包x)将从van 1传输到用户a。
[0262]
标题为vehicle(车辆)的列(r列)包含在涉及车辆从一个车辆向用户或另一个车辆的移动的转移事件中正在被转移的车辆的名称。例如,可以是厢式送货车包含送货自行车的情况,该送货自行车将被转移到用户,该用户

直到现在为止

已经步行或即将开始工作。
[0263]
标题为item_size(物品尺寸)的列(s列)包含条目(事件)指向的物品的物理尺寸和质量。仅在条目表示递送事件或涉及单个物品的转移的转移事件(例如,在捆的初始包装中)的情况下提供值。例如,计划安排摘录的第十一条目(第78行)指示要递送的物品的体积为0.9
×1×
0.3单位(此处的每个数字对应于以米为单位的长度)和重量为2.9kg。
[0264]
标题为item_identifier(物品标识符)的列(t列)包含包裹/邮包的标识符,例如条形码。
[0265]
标题为item_comments(物品注释)的列(u列)包含与该物品相关的注释。这些注释可以是,例如,顾客供应的交货说明或注明物品的易碎性的注释。
[0266]
图18是基于网络的gui的屏幕截图,示出了多个用户的映射递送计划安排。它可以在中心控制系统处(例如在pc上)使用,或者可以通过厢式货车递送代理使用。在此示例的顶部是横幅,其包含多个可点击的按钮。1802显示当前计划安排的名称;下拉选项显示可用于加载的计划安排的列表。1804显示当前计划安排的日期;日历按钮使日历集中在焦点上以使用户能够按日期选择计划安排。
[0267]
选择时,图标1806加载地图屏幕,这将在稍后描述。选择时,图标1808加载用于管理数字物品清单的界面。选择时,图标1810加载用于管理计划安排的界面。选择时,图标1812加载用于生成计划安排的界面。选择时,图标1814加载用于提供与递送有关的详细分
析的界面。选择时,图标1816加载用于查看和编辑可用车辆列表的界面。选择时,图标1818加载用于查看和编辑用户列表和用户车辆分配的界面。选择时,图标1820加载用于查看和编辑订单列表(即,各个物品及其递送地址、收件人等的列表)的界面。选择时,图标1822加载用于查看和编辑组织(即,任何仓库地址)的界面。选择时,图标1824加载用于查看gui当前用户首选项并且提供注销系统的功能的界面。
[0268]
横幅下的大地图屏幕显示了映射递送路线,其指示任何母代理和递送代理的计划安排路线。例如,这些线(覆盖地图的道路)指示计划安排生成过程中由tsp算法针对7种不同的代理确定的路线:6个步行者(其中当前位置由人形图标表示)和1辆厢式货车和驾驶员(其中当前位置由厢式货车图标表示)。实线用于表示任何厢式货车的计划安排路线;虚线用于表示任何骑自行车者的计划安排路线(注意在此处未显示任何内容);和点线用于表示任何步行者的计划安排路线。不同的颜色可以用于每个代理的路线以提高可读性。
[0269]
每个路线都为相关用户互连事件标记。例如,包含向下箭头的事件标记表示用户已计划安排在此位置执行递送。类似地,侧向双头箭头指示用户已计划安排在此位置执行转移。最后,包含圆圈的事件标记用于指示用户已计划安排在此位置等待。不同的颜色可以用于指示事件的当前状态。例如,绿色事件标记可以指示事件已完成;蓝色标记可以指示该事件是用户的当前(即下一个要完成的)事件;和灰色标记可以表示该事件尚未完成(即,代理的计划安排中的未来事件)。另外,可以显示表示诸如递送仓库或可行的再装载站之类的重要位置的图标。有利地是,可以通过点击相关图标来调出事件和/或用户的进一步细节。
[0270]
通过与递送代理和/或递送代理持有的任何gps单元进行通信,可以实时更新代理的当前位置和事件状态。此外,提供仅查看所选择的代理、放大和缩小当前视图、在地图位置之间平移以及修改潜在地图的分层的功能(例如,选择查看卫星图像而不是该区域的图形描述)。
[0271]
图19是基于移动应用程序的gui的屏幕截图,仅示出了与特定用户(操作移动电话的用户)相关的事件。在此示例的顶部和底部是横幅,其包含多个可点击的按钮。选择时,图标1902会切换当前用户团队所有其他成员的计划安排路线和事件的可见性。选择时,图标1904在地图上突出显示用户的计划安排站点。选择时,图标1906将用户的计划安排站点在地图上隐藏。选择时,图标1908加载提供用户的计划安排的概述的界面。选择时,图标1910指示用户的递送计划安排的进度。选择时,图标1912加载提供对所连接的智能设备或可穿戴设备的功能访问的界面。选择时,图标1914加载用于查看和编辑用户设置的界面。
[0272]
顶部和底部横幅之间是地图屏幕,其包含用户的事件标记,如前所述。还指出了厢式货车和厢式货车驾驶员的当前位置,以及适合重装载递送代理的隔间的车站的当前位置。例如,移动电话的用户的当前位置也可以被示为厢式货车或人或自行车图标。提供放大和缩小当前视图和在地图位置之间平移的功能。此外,可以提供事件标记之间的导航路线。
[0273]
图20是可替代的gui展示,其计划安排信息可以使用图标1908从图19的gui屏幕中选择。该gui展示特别适合于递送代理。左侧所示的可滚动屏幕是从屏幕顶部到屏幕底部按横幅(或水平数据条)的时间顺序排列的单个计划安排的高级视图。顶部瞥见的横幅指示已完成事件。在9:22的下一个事件是从当前位置到转移位置的行驶事件,以装载一捆物品。当前时间被显示为第一事件上方的一行。下一个事件是在9:25从母代理“otis”转移捆。随后的四个横幅在9:25、9:32、9:38和9:41递送到不同的地址。行驶事件未在此视图中显示。最
后,需要等待(仅显示)重新加载。在屏幕的底部,输入栏允许用户返回到当前事件。
[0274]
不同类型的事件可以以不同的颜色描述并且具有不同的图标。例如,前往事件图标可以具有指向右方的箭头图标,转移事件图标可以具有两个略微垂直偏移并指向彼此的水平箭头,递送事件图标可以具有向下指向一行的箭头,并且等待事件图标可以是简化的钟面。横幅右侧的垂直时间轴可以被提供作为当天事件的摘要概述,并具有快速导航手柄。
[0275]
右侧所示的四个屏幕通过点击左侧所示的概述屏幕中的事件进一步示出了可以用于不同事件的其他屏幕。四个屏幕的左上方是前往屏幕(如标题横幅所示),该屏幕在上半部分给出了到递送的路线的更多详细信息,具有开始和结束地址,以及下面的时间和距离。两个输入栏允许用户开始导航指令(“start now(现在开始)”)或在地图上显示路线(“show on map(在地图上显示)”)。
[0276]
四个屏幕的右上方是转移屏幕(如标题横幅所示)。该屏幕在标题下方具有开始和结束时间、和捆编号、然后是地址、然后是要从中转移捆的母代理的标识(包括图片)和在屏幕的底部,用于在地图上显示位置(“show on map”)的输入栏。
[0277]
四个屏幕的左下方是等待屏幕(如标题横幅所示)。该屏幕再次在标题下方具有开始和结束时间、然后是地址、要到达的母代理的标识(包括图片)和在屏幕的底部,用于在地图上显示位置(“show on map”)的输入栏。
[0278]
四个屏幕的右下方是递送屏幕(如标题横幅所示)。该屏幕如之前在标题下方具有开始和结束时间、捆编号、然后是递送地址、和在屏幕的底部,用于输入完成递送的“start now”输入栏和用于在地图上显示位置(“show on map”)的输入栏。
[0279]
图21示出了用于mode:link的软件系统架构,以及执行软件所需的模块。在左侧,以具有各种不同功能的网络应用程序(例如,在中心控制处供使用)和移动应用程序的形式示出了用户应用程序。移动应用程序可以利用地图盒子(mapbox),该mapbox提供应用程序内逐向导航。可以存在到手推车或车辆上的信号装置的链接,以帮助递送代理(和路人)查看手推车或车辆的去向或任何智能可穿戴技术,例如提供导航指令/信号的智能夹克,例如通过使用夹克主体和/或袖子上的照明和/或触觉装置。
[0280]
客户端应用程序编程接口(api)链接到数据存储,并且通过sql数据库链接到网站代管和数据存储服务(例如亚马逊网络服务(amazon web services))。也存在带有云授权的自定义用户验证和授权块。计划安排生成连接到客户端api且连接到软件内使用的模块(微服务),这些模块在一起创建计划安排。装箱问题可以在云上使用3d打包程序。递送时间和距离是定制模块并且距离链接到地理编码、映射和路线规划供应商,例如graphhopper或诺基亚地图(here maps)。聚类模块也是定制的,并且持续时间模块(durations module)可以被提供以使用清单中的数据来更改递送时间。定制的tsp模块引用graphhopper或其他路线规划服务。
[0281]
错误日志可以由斯普伦克(splunk)这样的服务提供,该splunk在云上为微服务提供系统日志。
[0282]
图22是体现本发明并且可以用于实施在中心控制点处安排递送的实施例的方法的计算装置(例如数据存储服务器)的框图。该计算装置包含处理器993和存储器994。可选地,该计算装置也包括用于与其他计算装置(例如,与本发明实施例的其他计算装置)通信的网络接口997。
[0283]
例如,实施例可以由连接到云并且提供计划安排生成的服务器和客户端api,使用在服务器上或在单独的终端上运行的网络应用程序和连接到云且也使用客户端api的移动设备组成。可选地,该计算装置也包括一个或多个输入机构(例如触摸屏或键盘和鼠标996)以及显示单元(例如一个或多个显示屏或监视器995)。这些部件可通过总线992彼此连接。
[0284]
存储器994可以包括计算机可读介质,该术语可以指的是被配置为携带计算机可执行指令或具有存储在其上的数据结构的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。计算机可执行指令可以包括例如可由通用计算机、专用计算机或专用处理装置(例如,一个或多个处理器)访问并且使通用计算机、专用计算机或专用处理装置(例如,一个或多个处理器)执行的一个或多个功能或操作的指令和数据。因此,术语“计算机可读存储介质”也可以包括能够存储、编码或携带用于由机器执行的指令集并且使机器执行本发明的方法中的任何一个或多个的任何介质。因此,术语“计算机可读存储介质”可以相应地被认为包括但不限于固态存储器、光学介质和磁性介质。通过示例的方式,并且非限制,这样的计算机可读介质可以包括非暂时性计算机可读存储介质,包括随机存取存储器(ram)、只读存储器(rom)、电可擦可编程只读存储器(eeprom)、光盘只读存储器(cd-rom)或其他光盘存储设备、磁盘存储设备或其他磁性存储设备、闪存存储器设备(例如,固态存储设备)。
[0285]
处理器993被配置为控制计算装置并且执行处理操作,例如执行存储在存储器中的代码以实施本文和权利要求中所描述的各种不同功能。
[0286]
存储器994存储由处理器993读取和写入的数据(例如记录和计划安排信息)。如本文所指的,处理器可以包括一个或多个通用处理装置,例如微处理器、中心处理单元等等。处理器可以包括复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器、或实施其他指令集的处理器或实施指令集组合的处理器。处理器也可以包括一个或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等等。在一个或多个实施例中,处理器被配置为执行用于执行本文所讨论的操作和步骤的指令。
[0287]
上述的每个模块可以适当地在处理器994上运行并且使用存储器994。
[0288]
显示单元995可以显示由计算装置存储的数据的表示,并且也可以显示网络应用程序的gui部件,例如光标和对话框以及允许用户与存储在计算装置上的程序和数据之间的交互的屏。输入机构996可以使用户能够向计算装置输入数据和指令。
[0289]
网络接口(网络i/f)997可以连接到诸如因特网的网络,并且可以通过网络连接到其他这样的计算装置(诸如使用移动应用程序的移动设备)。网络i/f 997可以通过网络控制来自其他装置的数据输入/到其他装置的输出。其他外围装置(例如麦克风、扬声器、打印机、电源单元、风扇、外壳、扫描仪、追踪球等)可以被包括在计算装置中。
[0290]
可以在诸如图22所示的计算装置上执行体现本发明的方法。这种计算装置不需要具有图22所示的每个部件,并且可以由那些组件的子集组成。可以由单个计算装置通过网络与一个或多个数据存储服务器通信来执行体现本发明的方法。计算装置可以是数据存储本身,其存储计划安排信息和对代理的导航以及其他指令。
[0291]
可以通过彼此协作操作的多个计算装置来实施体现本发明的方法。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1