用于择路和调度的系统和方法

文档序号:6567408阅读:263来源:国知局
专利名称:用于择路和调度的系统和方法
用于择路和调度的系统和方法
背景技术
当在大量递送位置之间对递送车辆进行择路时,当前的择路和调度 系统通常利用存储的时间和距离数据,结合择路和调度算法,来生成路 线。计算递送区内各位置之间的最短路径的处理通常花费高并且耗费时 间,该任务随着递送面积的扩大而变得极度困难。实际上,在大量递送 位置之间或者广大的陆地面积上进行最短路径计算通常超过某些计算机 的处理和存储能力。对于不具备进行这种计算的能力的那些计算机,该 处理仍是耗费时间的处理。因此,需要按更经济且有效的格式计算并存 储时间和距离数据的改进物流系统。

发明内容
本发明的实施方式提供了一种用于以经济且有效的方式计算并存储 时间和距离信息的系统、方法和计算机程序产品。
本发明的一个方面提供了 一种计算机程序产品,该计算机程序产品 用于控制至少具有存储器、处理器和显示装置的计算装置。该计算机程 序产品用于计算并存储两个或更多个递送位置之间的最短路径信息,并 包括存储有计算机可读程序代码部分的计算机可读存储介质。所述计算 机可读程序代码部分包括网格分割模块,该网格分割模块将总递送区划 分成限定数量的网格的倍数。例如,所述网格分割模块可以是将递送区 划分成为四的倍数个网格的四网格分割模块。所述限定数量的网格中的 至少一个内存在两个或更多个递送位置。另一程序代码部分是初始朋友 选择模块,该初始朋友选择模块选择所述限定数量的网格中的一个,并 且针对选择的网格内的各特定递送位置生成朋友列表,所述朋友列表由 最有可能出现在与该特定递送位置相同的路线上的一组递送位置组成。 该计算机程序产品还包括超级矩阵生成模块,该超级矩阵生成模块针对
选择的网格生成由节点和弧组成的可横穿网络,计算从选择的网格内的 各递送位置到所述可横穿网络内的每一个节点的时间/距离数据,并布局 包含从选择的网格内的各特定递送位置到该位置的朋友列表中的各递送 位置以及任何范围内仓库的时间/距离数据的超级矩阵。
本发明的另一方面提供了一种用于将物品递送到两个或更多个递送 位置的系统。该系统包括递送车辆,所述递送车辆能够运输在所述两个 或更多个递送位置中的每一个处的用于递送的一个或更多个物品。所述 递送物品在一仓库处获得。该系统还包括上述计算机程序产品。所述递 送车辆利用所述计算机程序产品确定的所述最短路径信息来确定用于获 得所述两个或更多个递送位置中的每一个处的所述用于递送的一个或更 多个物品以及将所述两个或更多个递送位置中的每一个处的所述用于递 送的一个或更多个物品运输到各递送位置的路线。
本发明的还一方面提供了一种用于计算并存储两个或更多个潜在递 送位置之间的最短路径信息的计算机系统。该计算机系统至少包括被构 造成将递送区分割成一个或更多个分离的地理区域的倍数的处理器,并 且所述地理区域中的每一个包括第一组一个或更多个潜在递送位置。所 述处理器被构造成选择第一地理区域并针对地理上位于该第一地理区域 内的各潜在递送位置生成唯一的第二组潜在递送位置。所述处理器还被 构造成生成可横穿网络。所述可横穿网络包括一组节点和弧,并且还包 括一组两个或更多个节点,所述一组两个或更多个节点至少包括地理上 位于所述第一地理区域内的潜在递送位置、以及上述生成的所述唯一的 第二组潜在递送位置中的任一个内包括的所有潜在递送位置。所述处理 器被构造成计算从地理上位于所述第一地理区域内的潜在递送位置中的 每一个到所述可横穿网络内包含的每一个节点的最短路径信息,并且选 择特定最短路径信息并存储该最短路径信息以供择路和调度系统将来査 找。
本发明的另一方面提供了一种用于计算并存储两个或更多个潜在递 送位置之间的最短路径信息的计算机系统。该计算机系统至少包括被构 造成针对地理上位于一地理区域内的各潜在递送位置生成唯一一组潜在
递送位置的处理器。所述处理器还被构造成生成与所述地理区域唯一关 联的可横穿网络。所述可横穿网络包括一组节点和弧,并且还包括一组 两个或更多个节点,该一组两个或更多个节点至少包括地理上位于所述 地理区域内的潜在递送位置以及上述生成的所述唯一一组潜在递送位置 内包括的所有潜在递送位置。所述处理器被构造成计算从地理上位于所 述地理区域内的潜在递送位置中的每一个到所述可横穿网络内包含的每 一个节点的最短路径信息,并且选择特定最短路径信息并存储选择的特 定最短路径信息以供择路和调度系统将来查找。
本发明的另一方面提供了一种用于计算并存储两个或更多个潜在递 送位置之间的最短路径信息的方法。该方法包括将递送区分割成一个或 更多个分离的地理区域的倍数的步骤。所述地理区域中的每一个包括第 一组一个或更多个潜在递送位置。另一步骤是选择第一地理区域并针对 地理上位于选择的地理区域内的各潜在递送位置生成相应的唯一的第二 组潜在递送位置。生成可横穿网络,所述可横穿网络包括一组节点和弧, 并且还包括一组两个或更多个节点,该一组两个或更多个节点至少包括 地理上位于选择的地理区域内的潜在递送位置、以及与地理上位于选择 的地理区域内的潜在递送位置相对应的所述唯一的第二组潜在递送位置 内包括的所有潜在递送位置。计算并存储从地理上位于选择的地理区域 内的递送位置到所述可横穿网络内包含的每一个节点的最短路径信息。 根据需要针对地理上位于选择的地理区域内的各潜在递送位置并针对上 述生成的每一个地理区域重复以上步骤。
本文将更充分地描述本发明的这些和其他方面。


已经在总体上这样描述了本发明,下面将参照附图,这些附图不必 按比例绘制,在附图中
图1例示了根据本发明一个实施方式的超级矩阵计算机系统的示意
图2是例示根据本发明一个实施方式的超级矩阵计算机系统执行的
各步骤的流程图3是例示根据本发明一个实施方式的四网格分割模块执行的各步
骤的流程图4是例示根据本发明一个实施方式的初始朋友选择模块执行的各 步骤的流程图5是例示根据本发明一个实施方式的地理平衡模块执行的各步骤 的流程图6是例示根据本发明一个实施方式的超级矩阵生成模块执行的各 步骤的流程图7是例示根据本发明一个实施方式的用于计算从各个范围内仓库 到所有网格内、范围内位置的时间/距离的超级矩阵生成模块执行的附加 步骤的流程图8 (A)是例示根据本发明一个实施方式的其中使用XY/毕达哥拉 斯定理计算来生成时间和距离的下降处理模块执行的各步骤的流程图8 (B)是例示根据本发明一个实施方式的其中通过生成"小型可 横穿网络(mini-travnet)"来编辑时间和距离的下降处理模块执行的各步 骤的流程图9是根据本发明一个实施方式的位于示例性递送区内并且利用超 级矩阵计算机系统的可视显示屏来显示的各唯一递送位置的图示; 图10例示了已绘制50个位置之后的图9的示例性递送区; 图11例示了已处理501个位置之后的图9的示例性递送区; 图12例示了已绘制1000个位置之后的图9的示例性递送区; 图13例示了图12中示出的示例性递送区的局部放大图; 图14例示了图9的各递送位置的完整的四网格分解; 图15例示了在已处理所有各种位置之后的最高密度位置网格的四 网格分解;
图16例示了一种确定处理递送位置的顺序的方法;
图17以图形方式例示了特定起始位置的朋友列表内包括的位置;
图18是在假设最大朋友参数被设置为2500的情况下地理平衡模块
执行的步骤的图示;
图19是起始位置朋友列表的图示,包括通过地理平衡添加的位置; 图20以图形方式例示了根据本发明一个实施方式的可横穿网络; 图21例示了根据包含十个位置的假设递送区生成的示例性超级矩
阵;
图22以图形方式例示了其中从包含位置A、 B和C的网格中排除一 个位置(位置Z)的可横穿网络;以及
图23以图形方式例示了在图22的位置C与Z之间生成的"小型可 横穿网络"。
具体实施例方式
下面将参照附图来描述本发明,附图中示出了本发明的一些而不是 所有实施方式。实际上,本发明可以以许多不同的形式实现,而不应被 解释为限于这里阐述的实施方式。然而,提供这些实施方式以使得本公 幵满足适用的法律要求。相似的标号通篇表示相似的元件。
本领域技术人员应理解,本发明可以实现为方法、数据处理系统或 计算机程序产品。因此,本发明可以采取以下形式完全硬件实施方式、 完全软件实施方式、或者组合硬件方面和软件方面的实施方式。此外, 本发明可以采取计算机可读存储介质上的计算机程序产品的形式,该计 算机可读存储介质具有包含在存储介质中的计算机可读程序指令(例如, 计算机软件)。更具体地说,本发明可以采取网络实现的计算机软件的形 式。可以利用任何适当的计算机可读存储介质,包括硬盘、CD-ROM、 光存储装置或磁存储装置。
下面将参照根据本发明实施方式的方法、装置(即,系统)和计算 机程序产品的框图和流程图来描述本发明。应理解的是,框图和流程图 的各框以及框图和流程图中的框的组合分别可以由计算机程序指令来实 现。这些计算机程序指令可以加载到通用计算机、专用计算机或其他可 编程数据处理装置上以产生机器,使得在计算机或其他可编程数据处理 装置上执行的指令产生用于实现流程图框中指定的功能的装置。
这些计算机程序指令也可以存储在计算机可读存储器中,该计算机
可读存储器可以指示计算机或其他可编程数据处理装置按特定方式工 作,使得存储在该计算机可读存储器中的指令产生包括用于实现流程图 框中指定的功能的计算机可读指令的制品。该计算机程序指令还可以加 载到计算机或其他可编程数据处理装置上,使得在计算机或其他可编程 装置上进行一系列操作步骤,以产生计算机实现的处理,以使得在计算 机或其他可编程装置上执行的指令提供用于实现流程图框中指定的功能 的步骤。
因此,框图和流程图的框支持用于执行指定功能的装置的组合、用 于执行指定功能的步骤的组合、以及用于执行指定功能的程序指令。还 应理解的是,框图和流程图的各框以及框图和流程图中的框的组合可以 利用执行指定功能或步骤的基于专用硬件的计算机系统或者专用硬件和 计算机指令的组合来实现。
系统结构
图1例示了根据本发明一个实施方式的超级矩阵计算机系统10的示
意图。从该图可以理解,在该实施方式中,超级矩阵计算机系统io包括
通过系统接口或总线90与超级矩阵计算机系统10内的其他元件进行通
信的处理器65。超级矩阵计算机系统10中还包括用于接收并显示数据的 显示装置/输入装置70。该显示装置/输入装置70例如可以是触摸屏监视 器、键盘或本领域技术人员所知的任何其他装置。超级矩阵计算机系统 lO还包括存储器ll,存储器ll优选地包括只读存储器(ROM) 14和随 机存取存储器(RAM) 12。服务器的ROM14用于存储基本输入/输出系 统85 (BIOS),基本输入/输出系统85包含有助于在超级矩阵计算机系统 10内的元件之间传送信息的基本例程。
另外,超级矩阵计算机系统10至少包括一个存储装置13 (例如, 硬盘驱动器、软盘驱动器、CDRom驱动器或光盘驱动器),用于在诸如 硬盘、可移动磁盘或CD-ROM盘的各种计算机可读介质上存储信息。本 领域普通技术人员应理解,这些存储装置中的每一个都通过适当的接口 连接到系统总线90。存储装置及其关联的计算机可读介质为诸如个人计
算机的计算机提供非易失性存储器。重要的是,应注意到,上述计算机 可读介质可以由本领域中所知的任何其他类型的计算机可读介质来替 代。这种介质例如包括盒式磁带、闪存卡、数字视频盘和伯努里式磁盘。 大量程序模块可以通过各种存储装置来存储,并且存储在RAM 12
内。这种程序模块包括操作系统60、择路和调度模块800、四网格分割 模块100、初始朋友选择模块200、地理平衡模块300、超级矩阵生成模 块500以及下降处理模块700。择路和调度模块800、四网格分割模块100、 初始朋友选择模块200、地理平衡模块300、超级矩阵生成模块500以及 下降处理模块700在处理器65和操作系统60的协助下,分别控制超级 矩阵计算机系统10的操作的特定方面,如下面更详细地描述的。
超级矩阵计算机系统10内还设置有网络接口 75,用于与计算机网 络80的其他元件进行接口和通信。此外,可以对一个或更多个部件进行 组合,并且超级矩阵计算机系统10中可以包括执行这里描述的功能的附 加部件。
超级矩阵计算机系统的示例性流程
图2描绘了根据本发明一个实施方式的超级矩阵计算机系统10的示 例性流程。从该图可以理解,系统在步骤15通过执行四网格分割模块100 而开始。如下面更详细地描述的,根据本发明一个实施方式的四网格分 割模块100的总体功能是将整个递送区划分成较小且更易于管理的网格。 接下来,系统进行到步骤20,并选择要处理的第一网格(由四网格分割 模块100生成)。在选择一网格之后,超级矩阵计算机系统10在步骤25 执行初始朋友选择模块200,然后在步骤30执行地理平衡模块300。在 本发明的各种实施方式中,执行初始朋友选择模块200和地理平衡模块 300导致生成针对所选网格内的各位置的单独的朋友列表。如本申请中所 使用的,术语"朋友列表"用于限定最有可能出现在与特定位置相同的 路线上的位置的组。
接下来,系统进行到步骤50,在步骤50,其执行超级矩阵生成模块 500。总体上说,在本发明的某些实施方式中,超级矩阵生成模块500针 对所选网格生成可横穿网络,计算从各网格内位置到可横穿网络内的每
一个节点的时间/距离数据,并布局包含从各网格内位置到该位置的朋友 以及范围内仓库的时间/距离数据的超级矩阵,所述范围内仓库是要被递 送到递送位置的物品的存放处。
接下来,系统前进到步骤60,在步骤60,确定是否剩有任何未经处
理的网格。如果是这样,则系统前进到步骤70,在步骤70,选择要处理 的下一网格。如果不是这样,则系统前进到结束处理的步骤S55。
对各种系统模块的详细讨论
下面将更详细地描述图2中所示的各种模块。
四网格分割模块
图3描绘了根据本发明一个实施方式的四网格分割模块100。如可 以从该图理解的,该系统在用户(例如,择路和调度技术员)限定指定 递送区内的一组唯一的递送位置的步骤105开始。例如,对于特定曰, 用户可以负责一个或更多个递送车辆到100个唯一的递送位置(例如, 家庭、公寓或商店)的择路和调度。在该情况下,用户在步骤105限定 包括这100个唯一位置的唯一递送位置组。
在完成步骤105之后,系统进行到生成第一网格的步骤110,所述第 一网格包含全部指定的唯一递送位置。系统生成初始网格,使得该初始 网格的地理边界包围递送区内的所有递送位置的范围。在另一实施方式 中,系统通过向用户(例如,通过计算机显示屏)呈现地图而使得用户 可以限定第一网格的边界,并且使得用户可以选择或限定网格所包围的 地理区域。例如,如果全部的唯一递送位置都位于加利福尼亚州中,则 用户可以潜在地将第一网格设置成包括加利福尼亚和周围的州的部分。
接下来,在步骤120,系统选择要处理的第一位置。在步骤130,然 后系统将所选位置添加到在地理上包含所选位置的网格。在本发明的一 个实施方式中,将该位置添加("绘制")到网格需要与该位置的纬度和 经度坐标有关的位置专有数据。例如,对于位于35°纬度和119°经度的 第一位置,系统输入35/119。在一个实施方式中,在输入纬度/经度数据 之后,系统显示(例如,通过计算机显示屏)所选位置的图示。例如, 可以由橙色的点或诸如"+."的某些其他符号来表示所选位置。在系统在步骤130绘制第一位置之后,系统(在步骤150)确定向
其添加了位置的网格是否超过预定"每网格最大位置数量"参数。该"每 网格最大位置数量"参数是系统内预先限定的。在一个实施方式中,"每 网格最大位置数量"参数是可配置的并且由用户来限定。在其他实施方 式中,系统包括每网格最大位置数量参数的默认值。例如,本发明的一
个实施方式中的默认的每网格最大位置数量参数是500。
在步骤150,如果系统确定在任何特定网格内超过了 "每网格最大 位置数量"参数,则系统进行到步骤170,在步骤170,将被识别为具有 过多位置的网格分割成四个尺寸相等的网格。例如,在本发明的网格大 致上为正方形的实施方式中,将该网格分割成四个尺寸相等的同样大致 上为正方形的网格。应理解的是,将具有过多位置的网格分割成四个尺 寸相等的网格是根据本发明的一个实施方式,而在其他实施方式中,可 以将网格分割成其他数量(例如,两个)的尺寸相等的网格。例如,在 本发明的网格大致上为正方形的实施方式中,将该网格分割成四个尺寸 相等的同样大致上为正方形的网格。
在步骤170中分割了具有过多位置的网格之后,系统进行到步骤 160,并确定唯一递送位置的组中是否剩有任何未绘制的递送位置。
再回到参照歩骤150,如果系统确定网格都没有包括过多数量的位 置,则系统直接进行到步骤160。在步骤160,如果系统确定没有剩余未 绘制的递送位置,则系统进行到步骤180,在歩骤180,完成四网格分割 模块100。然而,如果剩有附加的未绘制递送位置,则系统进行到步骤 140,在步骤140,前进到处理下一递送位置。
如图3所示,在该实施方式中,系统执行连续循环,在该连续循环 中,系统在绘制每一个递送位置之后确定是否存在任何需要分割的任何 特定网格。系统重复步骤130、 150、 160和/或170,直到在步骤105限 定的组中的每一个递送位置都经处理为止。
为了例示的目的,图9至图15以图形方式例示了本发明各种实施方 式中四网格分割模块100执行的步骤。更具体地说,图9至图15例示了 以下假想示例,在该假想示例中,系统要对递送车辆到21937个唯一递送位置的预定组内的各种位置进行择路和调度。图9示出了 21937个唯
一递送位置的图示。在该实施方式中,大多数递送位置位于加利福尼亚 州中。然而,也有零星位于华盛顿州、爱达荷州、弗吉尼亚州和德克萨
斯州中的位置。在该示例中,"每网格最大位置数量"参数被设置为500。
图10例示了己绘制50个位置之后的递送区。(因为图9示出了整个 递送区,所以难以分辨21937个单独的递送位置中的每一个。)如该图所 示,在单个网格77中包括整个递送区。图11例示了已绘制501个位置 之后的递送区。因为每网格最大位置数量被设置为500,所以在初始网格 内绘制第501个位置之后,该网格被分割成四个尺寸相等的网格。
图12和图13例示了在己绘制1000个位置之后的递送区。在该示例 中,在洛杉矶区域中发现密度最高的位置网格(参见图13)。图14示出 了对于21937个递送位置的完整四网格分解。最后,图15例示了在已处 理了全部21937个位置之后各种密度最高的位置网格的四网格分解。
图16例示了一种确定处理递送位置的顺序的方法。在该实施方式 中,根据位置的纬度坐标和经度坐标对这些位置进行处理(例如,在步 骤120和140选择并在步骤130绘制)。在该示例中,首先处理纬度值最 小的位置的组。通过对位置的纬度坐标取绝对值来确定纬度值。在该实 施方式中,任何纬度值相同的位置组按它们各自的经度值从最小到最大 的顺序进行处理。因此,要处理的第一位置是具有最小纬度坐标和最小 经度坐标的组合的位置。图16示出了包括5个递送位置的具体示例。因 为位置1和2的绎度值最小,所以首先处理它们。在位置1与2之间, 因为位置1的经度值最小,所以首先处理位置1。根据上述规则按一次一 个的方式处理所有五个位置,直到该组内的所有位置均被绘制为止。
初始朋友选择模块
在四网格分割模块100已将整个递送区划分成较小且更易于管理的 网格之后,超级矩阵计算机系统10的下一目标是编辑各唯一递送位置的 单独的朋友列表。简要回顾图2,系统在逐网格的基础上,通过在步骤 20选择第一网格然后选择接连的网格(步骤70)来进行该处理,直到每 一个网格都经处理为止。
图4描绘了根据本发明一个实施方式的初始朋友选择模块200。初 始朋友选择模块200在步骤205开始,在步骤205,选择要为其生成初始 朋友列表的第一网格内起始位置。 一旦在步骤205选择了起始位置,系 统就进行到步骤215,在步骤215,系统生成在所选起始位置的预定"最 大朋友半径"内的所有递送位置的列表。在一个实施方式中,最大朋友 半径是可配置的参数。在步骤218,向最大朋友半径内的各位置分配象限 标识符,该象限标识符例如可以指示邻近位置地理上相对于起始位置的 大体方向。在一个实施方式中,将包围所选起始位置的区域划分成四个 分离的且相等的象限。如图13所示,下面将更详细地描述,由水平和垂 直穿过所选起始位置的两条交叉的线形成四个象限。返回图4,在步骤 220,系统按从最邻近所选起始位置的位置到最远离所选起始位置的位置 的方式对在步骤215编辑的列表进行排序。
在步骤220对列表进行了排序之后,系统进行到步骤225,在步骤 225,选择最近位置以作为添加到朋友列表的候选。 一旦选择了候选邻近 位置,系统就进行到步骤255,在步骤255,确定将候选邻近位置添加到 起始位置的朋友列表是否会超过"最大朋友数量"参数。如同上述最大 朋友半径参数一样,本发明的一个实施方式包括可配置的"最大朋友数 量"参数。在步骤255,如果在添加候选邻近位置的情况下不超过最大朋 友数量,则系统进行到步骤270,在步骤270,其将邻近位置添加到起始 位置的朋友列表。
在添加邻近位置之后,系统进行到步骤227,在步骤227,使用邻近 位置的象限标识符来使与邻近位置的象限相对应的计数器递增。在包围 起始位置的区域被划分成四个象限的实施方式中,使用四个不同的计数 器来跟踪朋友数量。(在步骤255,可以对单独的计数器的计数进行合计, 以确定是否超过最大朋友数量。例如,在一个实施方式中,在处理在步 骤225选择的第一候选时,计数器合计零个邻居。假设最大朋友数量参 数被设置为大于零的数,第一候选绝对不会超过最大数量。)接下来,在 步骤227,使与所添加位置的象限相关联的计数器递增。
接下来,系统前进到步骤230,在步骤230,确定在步骤220编辑的
排序列表中是否剩有任何位置。如果是这样,则系统进行到步骤245,在
步骤245,在经排序的列表上选择下一最近的位置作为添加到起始位置的 朋友列表的候选。然后系统重复步骤255、 270和277,直到(i)己超过 最大朋友数量参数或者(2)已处理了来自在步骤215编辑的列表的所有 位置为止。
在步骤255,如果系统确定在添加候选邻近位置的情况下将超过最 大朋友数量参数,则系统前进到步骤260,在步骤260,将该邻近位置从 朋友列表排除。然后系统进行到步骤265,并且将所选网格内起始位置的 最大仓库半径内的所有仓库添加到朋友列表。接下来,在步骤235,系统 完成初始朋友列表。当在步骤235完成了初始朋友列表时,系统进行到步 骤280,在步骤280,确定所选网格内是否剩有任何网格内位置。如果是 这样,则系统进行到步骤285,选择要处理的新的网格内位置。然后系统 前进到步骤215,继续如上所述的步骤,直到已处理所有网格内位置为止。
图17以图形方式例示了特定起始位置的朋友列表内包括的位置。在 该假想示例中,"+" 1700表示将针对其计算朋友列表的起始位置。限制 在圈1702内的区域表示在执行初始朋友选择模块200之后包括在起始位 置的朋友列表内的位置,并且包括在执行地理平衡模块(下面更详细地 讨论)之后添加到起始位置的朋友列表的位置。圈1702外部的点表示不 包括在起始位置的朋友列表内的递送位置。
地理平衡模块
在通过初始朋友选择模块200生成针对个网格内位置的初始朋友列 表之后,系统的下一目标是避免使过载了朋友的朋友列表位于人口稠密 区中。例如,如果所选起始位置位于城市的边缘或郊区,则初始朋友列 表上的大多数位置可能位于起始位置的同一总体方向上(例如,朝向城 市)。换言之,在乡村或稀疏人口区中的位置可以被包括在所选起始位置 的朋友列表内之前,可能超过了最大朋友数量参数。
再次参照图2,通过执行地理平衡模块300,系统试图将来自包围起 始位置的所有区域的位置包括在朋友列表内。如图5所示,地理平衡模 块300在步骤305开始,选择第一网格内位置。接下来,在步骤310,系
统从在初始朋友选择模块200的步骤215编辑的列表中选择第一邻近位
置。在一个实施方式中,步骤310的选择基于在初始朋友选择模块200 的步骤220对邻近位置进行排序的顺序(例如,最近到最远)。 一旦选择 了一邻近位置,系统就进行到步骤315,在步骤315,确定所选的邻近位 置地理上所处的象限。在一个实施方式中,系统使用在初始朋友选择模 块200的步骤218分配的象限标识符来确定所选邻近位置的象限位置。
接下来,在步骤320,系统确定包含所选邻近位置的象限是否包含 了多于或等于最大朋友数量参数的四分之一。例如,如果最大朋友数量 参数被设置为400个朋友,则系统确定所选象限是否包含100 (400/4) 个或更多个朋友。在一个实施方式中,使用在初始朋友选择模块200中 用于对最大朋友数量参数保持跟踪的计数器来确定各象限包含的朋友是 否多于或等于(最大朋友数量参数)/4,或者恰恰是"最大/4"。如果所 选象限包含的朋友多于或等于最大/4,则系统进行到步骤340,在步骤 340,从朋友列表排除该邻近位置。
接下来,在步骤345,系统确定在初始朋友选择模块200的步骤215 和220编辑并排序的列表是否包含任何附加位置。如果是这样,则系统 进行到步骤350,在步骤350,选择要处理的下一最近的邻近位置,并重 复上述步骤。
在步骤320,如果系统确定包含所选邻近位置的象限具有少于最大/4 个朋友,则系统进行到步骤325,在步骤325,将该邻近位置添加到起始 位置的朋友列表。在将邻近位置添加到朋友列表之后,系统前进到步骤 330,在步骤330,使与所添加邻近位置地理上所处的象限相对应的计数 器递增。在包围起始位置的区域被划分成四个分离的象限的实施方式中, 系统将利用四个不同的计数器对各象限内的朋友数量进行跟踪(或计 数)。例如,在一个实施方式中,当在步骤325将地理上位于象限二的邻 近位置添加到朋友列表时,与象限二相对应的计数器递增1。
在步骤330之后,系统进行到步骤333,在步骤333,确定在初始朋 友选择模块200的步骤215和220编辑并排序的列表是否包含附加位置。 并且在步骤333,系统确定是否有任何象限仍需要地理平衡。在步骤333,
如果系统确定了 (1)没有象限需要地理平衡或者(2)所选初始位置的
最大半径内的位置的列表已经穷尽,则系统进行到步骤355,在步骤355, 完成所选网格内位置的朋友列表。否则,系统进行到步骤335,在步骤 335,选择要处理的、最大半径内的下一最近的邻近位置。 一旦系统完成 了在步骤335选择的网格内位置的朋友列表,系统就前进到步骤360,在 步骤360,确定是否剩有任何未经处理的网格内位置。如果是这样,则系 统进行到步骤370,在步骤370,选择要处理的新的网格内位置。 一旦己 处理所有网格内位置,系统就前进到完成处理的步骤375。
如上所述,图18是在假设最大朋友参数被设置为2500的情况下地 理平衡模块300执行的步骤的图示。垂直线与水平线交叉处的点1800表 示在步骤301或步骤370选择的网格内位置。在该示例中,两条交叉线 生成四个尺寸相等的象限。数字1500、 700、 200和IOO表示地理上位于 各象限内并且位于内圈1802所包围的区域内的(朋友列表中的)位置的 数量。这样,东北象限包含100个位置,东南象限包含700个位置,西 南象限包含1500个位置,西北象限包含200个位置。
如图18所示,包含1500个朋友和700个朋友的象限主导朋友列表。 事实上,总共2500个朋友中的2200个位于仅仅这两个象限中。在一个 实施方式中,地理平衡模块300试图通过扩大图18的西北象限和东北象 限内的弧1804、 1806、并添加邻近的位置直到各象限至少包括最大朋友 参数的四分之一为止或者直到最大半径内的邻近位置的列表被用尽为止 (任何一个首先成立即可),来平衡这两个象限。在该示例中,将添加位 于西北象限和东北象限内的邻近位置,直到各象限至少包括625个朋友 为止。假设在西北象限和东北象限中的每一个中发现625个位置之前没 有超过最大区域限制(即,最大半径),最终,地理平衡将把朋友列表从 2500个位置扩大到3450个位置,西南象限中有1500个朋友,东南象限 中有700个位置,西北象限中有625个位置,东北象限中有625个位置。 图19是起始位置的朋友列表的图示,包括通过地理平衡添加的位 置。在该假想示例中,"+" 1900表示要针对其计算朋友列表的起始位置。 第一有界区域1902内示出的位置表示利用最大朋友数量参数或最大半径
确定的朋友的组。应理解的是,最大朋友参数和最大半径都是可配置的 参数,并且在图19的假想示例中,最大朋友参数被设置为2500,最大半
径为250英里。第二有界区域1904内示出的位置表示使用地理平衡模块 获得的朋友的组。在图19中,第二有界区域1904表示添加到以"加号" (起始位置)为中心形成的坐标系统的左上象限和右上象限的位置。没 有在左下象限和右下象限添加位置,这是因为在朋友列表(初始朋友选 择)中表示出这些象限已经满了。如果没有地理平衡,则起始位置1900 的超级矩阵有可能仅包括到与起始位置1900邻近的高度密集区域的时间 和距离,而不包括第二有界区域1904内的较稀疏的边远位置。 超级矩阵生成模块
再次参照图2,在执行地理平衡模块300之后,超级矩阵计算机系 统10执行超级矩阵生成模块500。如图6所示,超级矩阵生成模块500 在步骤505开始,生成根据(1)所有的网格内位置、(2)任何网格内位 置的所有朋友、和(3)任何范围内仓库而导出的可横穿网络。在各种实 施方式中,"可横穿网络"是一组弧和节点。更具体地说,在该实施方式 中,节点的组包括一组"可横穿网络位置",该"可横穿网络位置"包含 所有的网格内位置、网格内位置的所有朋友、和任何网格内位置的最大 半径内的所有仓库。可横穿网络的弧包括连接以上列出的可横穿网络位置 的所有"必需"的街道段。另外,节点的组还包括连接可横穿网络位置的 交叉的街道段。弧的组包括地方公路、二级公路和州际/一级公路的组合。
在一个实施方式中,通过用于连接可横穿网络位置的地方公路的量 的减少来减少街道段(可以由一个或更多个弧来表示)的总数。通过主 要使用二级公路或州际/一级公路连接可横穿位置来实现地方公路的减 少。在该实施方式中,地方公路仅用于将可横穿网络位置连接到二级公 路或州际公路的程度。通过减少可横穿网络包括的地方公路(和总街道 段)的数量,减少了弧和节点的总数。因为进行最短路径计算所需的处 理时间主要基于弧和节点的数量,所以减少街道段的数量最终减少计算 可横穿网络位置之间的最短路径所需的时间。可以根据可以从多种第三 方资源得到的现有地图数据导出可横穿网络。
图20以图形方式例示了根据本发明一个实施方式的其中一网格包
含三个网格内位置(位置A2002、位置B 2004和位置C 2006)的可横穿 网络。各网格内位置是其他两个网格内位置以及位置D2008的朋友。在 该假想示例中,最大朋友数量被设置成三。因此,位置A2002的朋友列 表包括B 2004、 C 2006和D 2008;位置B的2004朋友列表包括A2002、 C 2006和D 2008;位置C的2006朋友列表包括位置A2002、 B 2004和 D2008。最后,仓库1 2010在A2002、 B 2004和C2006的最大仓库半径 内。在该示例的情况下,可横穿网络位置包括A2002、 B2004、和C 2006 (网格内位置),以及D2008 (网格内位置的朋友)和仓库1 2010 (网格 内位置的最大半径内的仓库)。
使用这些可横穿网络位置,导出可横穿网络(使用本领域中所知的 地图数据),该可横穿网络包括围绕各可横穿网络位置的地方公路的连 接的弧/节点,围绕二级公路的弧/节点,以及最后,与州际公路和一级公 路相对应的弧/节点。
返回图6, 一旦已生成所选网格的可横穿网络,系统就前进到步骤 510,在步骤510,选择要处理的第一网格内位置。接下来,在步骤515, 系统计算从所选网格内位置到可横穿网络内的每一个节点的最短时间和 距离。如上所述,在各种实施方式中,可横穿网络节点不仅包括网格内 位置、朋友和仓库,而且包括连接网格内位置、朋友和仓库的街道十字 路口 。用于计算最短时间和距离的算法在本领域内是公知的。
一旦己计算出从所选网格内位置到每一节点的时间和距离,系统就 进行到步骤520,在步骤520,选择性地挑选某些时间和距离。挑选出的 时间和距离包括从所选网格内位置到该位置的朋友的时间/距离。接下来, 在歩骤525,将在步骤520挑选的时间和距离布局为超级矩阵的一行。图 21中示出了超级矩阵的一个实施方式,下面将更详细地描述。
一旦将从所选网格内位置到该位置的朋友的时间和距离布局到超级 矩阵的一行中,系统就前进到步骤530,在步骤530,确定是否剩有任何 网格内位置未经处理。如果是这样,则系统选择要处理的下一网格内位 置(在步骤545)。如图21所示,各网格内位置对应于超级矩阵的特定行。
连续地添加表示各网格内位置的行,直到己处理所有网格内位置为止。
一旦已处理所有网格内位置,系统就前进到步骤570,在步骤570,结束
该处理。
图7例示了超级矩阵生成模块500进行的附加步骤。除了计算网格 内位置与包括在朋友列表内的位置之间的时间和距离数据之外,在各种 实施方式中,超级矩阵生成模块500还被设计成处理从位于网格的可横 穿网络内的每一个仓库到所有其他网格内、范围内位置和范围内仓库的 最短路径时间和距离。与图6中描述的处理非常相似的是,系统在选择 第一范围内仓库的步骤550开始。接下来,在步骤555,系统计算从所选 仓库到可横穿网络内的每一个节点的最短路径计算(使用公知的最短路 径算法)。在步骤555之后,系统进行到步骤560,在步骤560选择的与 从所选仓库到所有网格内、范围内位置和范围内仓库的时间和距离相对 应的数据在步骤565布局在超级矩阵中。如图21所示,各所选仓库由超 级矩阵内的一行表示。在步骤575,系统确定是否剩有任何未经处理的仓 库(在可横穿网络内)。如果是这样,则系统选择下一仓库(在步骤580) 并重复步骤555、 560和565。 一旦已处理网格的可横穿网络内的所有仓 库,系统就前进到完成该处理的步骤585。
如上所述,图21例示了样本超级矩阵。如图21所示的超级矩阵是 根据九个位置和一个位置/仓库的组而导出的。在该假设中,最大朋友数 量参数被设置为四。然而,作为地理平衡的结果,许多位置具有多于四 个朋友(例如,位置3、 5、 6、 7、 8和9)。如图21所例示的,行#1包 含从位置井1到四个不同的位置的时间和距离。如图21所示,各列表示 不同的位置。在该实施方式中,使用纬度(以百万分之一度)和经度(以 百万分之一度)坐标来标识位置。跟在纬度和经度坐标之后的是时间和 距离数据。在该实施方式中,以秒示出时间并以100英里示出距离。因 此,现参照图21的行1,从位置1到地理上位于30180600、 -81551600 的位置的时间/距离是303秒(时间)和300英里(距离)。如行4中所例 示的,位置4也是仓库,因此具有对于各范围内位置的时间/距离数据。 在该假设中,因为全部九个位置都在该仓库的范围内,所以行4具有到
全部九个位置的时间/距离数据。
如图21中所例示的,在各种实施方式中,超级矩阵不包含从各位置 到每一个其他位置的时间和距离。作为替代的是,在这种实施方式中, 超级矩阵仅包含从各网格内位置到该位置的朋友(包括所有的范围内仓 库)的时间和距离数据。
下降处理模块
在一些实例中,在择路和调度算法800内进行的算法可能需要不包 括在彼此的朋友列表内的两个位置之间的时间和距离数据。结果,超级 矩阵将不包含时间和距离数据。当发生这种情况时,系统可以通过执行
下降处理模块700来计算时间和距离数据。
图8 (A)和图8 (B)描绘了根据本发明不同实施方式的两个不同 的下降处理模块700。现参照图8 (A),下降处理模块700在步骤705开 始,在步骤705,系统从择路/调度模块800接收请求位置A与B之间的 时间和/或距离数据的调用。在步骤710,系统确定超级矩阵是否包含从A 到B的时间/距离数据。如果是这样,则系统前进到步骤715,在步骤715, 向择路/调度模块800提供包含在超级矩阵中的数据。然而,如果超级矩 阵不包含从A到B的时间/距离数据,则系统进行到步骤720,在步骤720, 使用XY距离计算(例如,使用毕达哥拉斯定理)来计算从A到B的时 间和距离。 一旦在步骤720确定了时间/距离数据,系统就将该数据发送 给择路/调度模块800,并且进行到结束该处理的步骤735。
在图8 (B)中所描绘的实施方式中,下降处理模块700通过进行图 8 (A)中所示的相同的基本步骤而开始。例如,在步骤705,系统从择 路/调度模块800接收请求位置A与B之间的时间和/或距离数据的调用。 在步骤710,系统确定超级矩阵是否包含从A到B的时间/距离数据。如 果是这样,则系统前进到步骤715,在步骤715,向择路/调度模块800 提供包含在超级矩阵中的数据。然而,如果超级矩阵不包含从A到B的 时间/距离数据,则系统进行到步骤725,在步骤725,生成连接位置A 和B的"小型可横穿网络"。在生成小型可横穿网络之后,系统进行A 与B之间的最短路径时间和距离计算。在步骤740,存储时间和距离数
据(例如将其高速缓存)以供将来査找。
图22和图23例示了使用图8 (B)的下降处理模块700来计算从一 个位置到另一位置的时间和距离的场景。该场景假设在四网格分割模块 100中,位置A、 B和C位于图22中例示的一个网格中。另外,最大朋 友数量参数被设置为二。在执行初始朋友选择模块200和地理平衡模块 300之后,位置A、 B和C仅包括彼此作为朋友。例如,位置A的朋友 是B和C,位置B的朋友是A和C,位置C的朋友是A和B。该假设不 包括仓库。在生成针对该特定网格的可横穿网络时,该可横穿网络仅包 括连接位置A、 B和C的街道网络。因此,超级矩阵将不包括从A、 B 或C到位置Z的时间和距离数据。
假设稍后在己生成超级矩阵之后,用户生成由位置A、 B和C组成 的路线。对于该路线,无论顺序如何,超级矩阵都可以提供街道网络时 间和距离,这是因为超级矩阵包含任意两个位置之间的时间/距离。现假 设路线顺序是A-B-C,并且用户然后确定其想要把车站Z至于车站C之 后,使路线成为A-B-C-Z。然而,现在的情况是超级矩阵不提供C与Z 之间的时间和距离。当发生这种情况时,下降处理模块700通过首先生 成图23中所例示的连接C和Z的"小型可横穿网络"来提供实时时间/ 距离计算。根据该"小型可横穿网络",系统计算C与Z之间的最短路径 时间和距离。(然后对该时间和距离进行高速缓存,使得在系统在同一择 路会话过程中再次需要C与Z之间的时间/距离时不必重新生成"小型可 横穿网络"和重新计算时间/距离)。
结论
本发明所属领域的技术人员受益于以上描述和相关联的附图中所提 出的教导,将容易想到这里阐述的本发明的许多变型例和其他实施方式 是本领域技术人员。因此,应理解,本发明不限于所公开的特定实施方 式,而旨在将变型例和其他实施方式包括在所附权利要求书的范围内。 尽管这里使用了特定术语,但是它们仅用于一般性和描述性的含义,而 并不用于限制的目的。
权利要求
1、一种用于控制至少具有存储器、处理器和显示装置的计算装置的计算机程序产品,该计算机程序产品用于计算并存储两个或更多个递送位置之间的最短路径信息,并包括其中存储有计算机可读程序代码部分的计算机可读存储介质,所述计算机可读程序代码部分包括第一可执行部分,该第一可执行部分包括可以在所述处理器上执行的网格分割模块,其中,所述网格分割模块将总递送区划分成限定数量的网格的倍数,并且所述两个或更多个递送位置位于所述限定数量的网格中的至少一个内;第二可执行部分,该第二可执行部分包括可以在所述处理器上执行的初始朋友选择模块,其中,选择所述限定数量的网格中的一个,并且针对所述选择的网格内的各特定递送位置生成朋友列表,所述朋友列表由最有可能出现在与所述特定递送位置相同的路线上的一组递送位置组成;以及第三可执行部分,该第三可执行部分包括可以在所述处理器上执行的超级矩阵生成模块,其中,所述超级矩阵生成模块针对选择的网格生成由节点和弧组成的可横穿网络,计算从所述选择的网格内的各递送位置到所述可横穿网络内的每一个节点的时间/距离数据,并布局如下的超级矩阵该超级矩阵包含从选择的网格内的各特定递送位置到该位置的朋友列表中的各递送位置以及任何范围内仓库的时间/距离数据。
2、 根据权利要求l所述的计算机程序产品,该计算机程序产品还包括第四可执行部分,该第四可执行部分包括可以在所述处理器上执行 的地理平衡模块,其中,所述地理平衡模块如下地平衡各递送位置的所 述朋友列表选择各递送位置,将所选择递送位置周围的递送区按照使 得所选择递送位置形成四个象限的原点的方式划分成四个象限,并扩大 所述四个象限中的每一个中的与原点等距的弧以在所述原点周围形成大 致圆形的有界区域直到所述选择的递送位置的朋友列表中的限定数量的递送位置位于所述大致圆形的有界区域内为止,确定位于各象限中的所 述选择的递送位置的朋友列表中的递送位置的数量,如果在任一象限中 所述选择的递送位置的朋友列表中的递送位置的所述数量少于((所述选 择的递送位置的朋友列表中的递送位置的限定数量)/4),则将该象限标 记为不足的象限,并扩大任一不足的象限中的弧,直到所选择递送位置 的朋友列表中的至少((所述选择的递送位置的朋友列表中的递送位置的限定数量)/4)个递送位置包含在以所述弧和形成该象限的轴为界的区域内为止、或者直到达到与原点的最大距离为止。
3、 根据权利要求2所述的计算机程序产品,其中,所述((所述选 择的递送位置的朋友列表中的递送位置的限定数量)/4)为625,所述与 原点的最大距离为250英里。
4、 一种用于将物品递送到两个或更多个递送位置的系统,该系统包括递送车辆,该递送车辆能够运输所述两个或更多个递送位置中的每 一个处的用于递送的一个或更多个物品,其中,在仓库处获得所述用于 递送的一个或更多个物品;计算机程序产品,该计算机程序产品用于控制至少具有存储器、处 理器和显示装置的计算装置,该计算机程序产品用于计算并存储所述两 个或更多个递送位置之间的最短路径信息,并包括其中存储有计算机可 读程序代码部分的计算机可读存储介质,所述计算机可读程序代码部分包括第一可执行部分,该第一可执行部分包括可以在所述处理器上 执行的网格分割模块,其中,所述网格分割模块将总递送区划分成限定 数量的网格的倍数,并且所述两个或更多个递送位置位于所述限定数量 的网格中的至少一个内;第二可执行部分,该第二可执行部分包括可以在所述处理器上 执行的初始朋友选择模块,其中,选择所述限定数量的网格中的一个, 并且针对所述选择的网格内的各特定递送位置生成朋友列表,所述朋友 列表由最有可能出现在与所述特定递送位置相同的路线上的一组递送位 置组成;以及第三可执行部分,该第三可执行部分包括可以在所述处理器上 执行的超级矩阵生成模块,其中,所述超级矩阵生成模块针对选择的网 格生成由节点和弧组成的可横穿网络,计算从所述选择的网格内的各递 送位置到所述可横穿网络内的每一个节点的时间/距离数据,并布局如下 的超级矩阵该超级矩阵包含从选择的网格内的各特定递送位置到该位 置的朋友列表中的各递送位置以及任何范围内仓库的时间/距离数据,其中,所述递送车辆利用所述最短路径信息来确定用于获得所述两 个或更多个递送位置中的每一个处的所述用于递送的一个或更多个物品 并且将所述两个或更多个递送位置中的每一个处的所述用于递送的一个 或更多个物品运输到各递送位置的路线。
5、 根据权利要求4所述的系统,其中,所述计算机程序产品还包括 第四可执行部分,该第四可执行部分包括可以在所述处理器上执行的地理平衡模块,其中,所述地理平衡模块如下地平衡各递送位置的所 述朋友列表选择各递送位置,将所选择递送位置周围的递送区按照使 得所述选择递送位置形成四个象限的原点的方式划分成四个象限,并扩 大所述四个象限中的每一个中的与原点等距的弧以在所述原点周围形成 大致圆形的有界区域直到所述选择的递送位置的朋友列表中的限定数量 的递送位置位于所述大致圆形的有界区域内为止,确定位于各象限中的 所述选择的递送位置的朋友列表中的递送位置的数量,如果在任一象限 中所述选择的递送位置的朋友列表中的递送位置的所述数量少于((所述 选择的递送位置的朋友列表中的递送位置的限定数量)/4),则将该象限 标记为不足的象限,并扩大任一不足的象限中的弧,直到所选择递送位 置的朋友列表中的至少((所述选择的递送位置的朋友列表中的递送位置 的限定数量)/4)个递送位置包含在以所述弧和形成该象限的轴为界的区 域内为止、或者直到达到与原点的最大距离为止。
6、 根据权利要求5所述的系统,其中,所述((所述选择的递送位 置的朋友列表中的递送位置的限定数量)/4)为625,所述与原点的最大 距离为250英里。
7、 一种用于计算并存储两个或更多个潜在递送位置之间的最短路径信息的计算机系统,其中,所述计算机系统包括 处理器,该处理器被构造成执行以下步骤(1) 将递送区分割成一个或更多个分离的地理区域的倍数,其中, 所述地理区域中的每一个包括第一组一个或更多个潜在递送位置;(2) 选择第一地理区域;(3) 针对所述第一组一个或更多个潜在递送位置中的每一个生成唯 一的第二组潜在递送位置;(4) 生成可横穿网络,其中,所述可横穿网络包括一组节点和弧, 并且还包括一组两个或更多个节点,所述一组两个或更多个节点至少包 括地理上位于所述第一地理区域内的潜在递送位置以及在步骤(3)生成 的所述唯一的第二组潜在递送位置中的任一个内包括的所有潜在递送位 置.,(5) 计算从地理上位于所述第一地理区域内的潜在递送位置中的每 一个到所述可横穿网络内包含的每一个节点的最短路径信息;(6) 选择特定最短路径信息并存储该特定最短路径信息以供择路和 调度系统将来查找。
8、 根据权利要求7所述的系统,其中,所述可横穿网络包括至少一 个与仓库相对应的节点。
9、 根据权利要求7所述的系统,其中,针对地理上位于所述第一地 理区域内的各潜在递送位置生成唯一的第二组潜在递送位置的步骤还包 括以下步骤如下地平衡所述第一组一个或更多个递送位置中的各潜在递送位置 的唯一的第二组潜在递送位置选择所述第一组一个或更多个递送位置 中的各潜在递送位置,将所选择递送位置周围的递送区按使得所选择递 送位置形成四个象限的原点的方式划分成四个象限,并扩大所述四个象 限中的每一个中的与所述原点等距的弧以在所述原点周围形成大致圆形 的有界区域直到所述选择的递送位置的限定数量的第二组潜在递送位置 位于所述大致圆形的有界区域内为止,确定位于各象限中的所述选择的 递送位置的第二组潜在递送位置中的递送位置的数量,如果在任一象限 中所述选择的递送位置的第二组潜在递送位置中的递送位置的所述数量 少于((所述选择的递送位置的第二组潜在递送位置中的递送位置的限定 数量)/4),则将该象限标记为不足的象限,并扩大任一不足的象限中的 弧,直到所选择递送位置的第二组潜在递送位置中的至少((所述选择的递送位置的第二组潜在递送位置中的递送位置的限定数量)/4)个递送位置包含在以所述弧和形成该象限的轴为界的区域内为止、或者直到达到 与原点的最大距离为止。
10、 根据权利要求9所述的系统,其中,((所述选择的递送位置的 朋友列表中的递送位置的限定数量)/4)为625,所述与原点的最大距离 为250英里。
11、 一种用于计算并存储两个或更多个潜在递送位置之间的最短路 径信息的计算机系统,其中,所述计算机系统包括处理器,该处理器被构造成执行以下步骤(1) 针对地理上位于一地理区域内的各潜在递送位置生成唯一的一组潜在递送位置;(2) 生成唯一地与所述地理区域相关联的可横穿网络,其中,所述可横穿网络包括一组节点和弧,并且还包括一组两个或更多个节点,所 述一组两个或更多个节点至少包括地理上位于所述地理区域内的潜在递 送位置、以及在步骤(1)生成的所述唯一一组潜在递送位置内包括的所有潜在递送位置;(3) 计算从地理上位于所述地理区域内的潜在递送位置中的每一个 到所述可横穿网络内包含的每一个节点的最短路径信息;(4) 选择特定最短路径信息并存储所选择的特定最短路径信息以供 择路和调度系统将来查找。
12、 根据权利要求ll所述的系统,其中,所述可横穿网络包括至少 一个与仓库相对应的节点。
13、 一种用于计算并存储两个或更多个潜在递送位置之间的最短路 径信息的方法,该方法包括以下步骤 (A) 将递送区分割成一个或更多个分离的地理区域的倍数,其中, 所述地理区域中的每一个包括第一组一个或更多个潜在递送位置;(B) 选择第一地理区域;(C) 针对地理上位于所选择的地理区域内的各潜在递送位置生成对 应的唯一的第二组潜在递送位置;(D) 生成可横穿网络,其中,所述可横穿网络包括一组节点和弧, 并且还包括一组两个或更多个节点,所述一组两个或更多个节点至少包 括地理上位于所选择的地理区域内的潜在递送位置、以及与地理上位于 所选择的地理区域内的潜在递送位置相对应的唯一的第二组潜在递送位 置内包括的所有潜在递送位置;(E) 计算从地理上位于所选择的地理区域内的递送位置到所述可横 穿网络内包含的每一个节点的最短路径信息;(F) 选择特定最短路径信息并存储所选择的特定最短路径信息以供 择路和调度系统将来査找;(G) 针对地理上位于所选择的地理区域内的各潜在递送位置重复步 骤(D)至步骤(F);以及(H) 针对在步骤(A)生成的每一个地理区域重复步骤(B)至步 骤(G)。
14、 根据权利要求13所述的方法,其中,生成可横穿网络的步骤包 括以下步骤生成包括至少一个与仓库相对应的节点的可横穿网络。
15、 根据权利要求13所述的方法,其中,针对地理上位于所述第一 地理区域内的各潜在递送位置生成对应的唯一的第二组潜在递送位置的步骤还包括以下步骤如下地平衡地理上位于所述第一地理区域内的各潜在递送位置的唯一的第二组潜在递送位置选择所述第一组一个或更多个递送位置中的各潜在递送位置,将所选择的递送位置周围的递送区按使得所选择的递 送位置形成四个象限的原点的方式划分成四个象限,并扩大所述四个象 限中的每一个中的与所述原点等距的弧以在所述原点周围形成大致圆形 的有界区域直到所述选择的递送位置的限定数量的第二组潜在递送位置 位于所述大致圆形的有界区域内为止,确定位于各象限中的所述选择的 递送位置的第二组潜在递送位置中的递送位置的数量,如果在任一象限 中所述选择的递送位置的第二组潜在递送位置中的递送位置的所述数量 少于((所述选择的递送位置的第二组潜在递送位置中的递送位置的限定 数量)/4),则将该象限标记为不足的象限,并扩大任一不足的象限中的 弧,直到选择的递送位置的第二组潜在递送位置中的至少((所述选择的 递送位置的第二组潜在递送位置中的递送位置的限定数量)/4)个递送位 置包含在以所述弧和形成该象限的轴为界的区域内为止、或者直到达到 与原点的最大距离为止。
16、根据权利要求15所述的方法,其中,所述((所述选择的递送 位置的朋友列表中的递送位置的限定数量)/4)为625,所述与原点的最 大距离为250英里。
全文摘要
本发明涉及用于择路和调度的系统和方法。本发明提供了一种用于以经济且有效的方式对时间和距离信息进行计算和存储的系统、方法和计算机程序产品。在开发用于按及时且有效的方式从多个位置递送和查找物品的可横穿网络时可以使用该时间和距离信息。
文档编号G06Q10/00GK101184974SQ200680015869
公开日2008年5月21日 申请日期2006年5月9日 优先权日2005年5月9日
发明者克利夫顿·B·克莱斯尔, 卡尔·赫斯特, 斯蒂芬·P·西蒙 申请人:美国联合包装服务有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1