车辆路线安排应用的应用编程接口的制作方法

文档序号:20167369发布日期:2020-03-24 21:54阅读:268来源:国知局
车辆路线安排应用的应用编程接口的制作方法

本公开总体上涉及在计算设备上实现的用于车辆路线安排应用(routingapplication)的应用编程接口。



背景技术:

可以在各种计算设备(例如,膝上型计算机、智能电话、平板计算设备或可穿戴计算设备)上实现包括软件应用的应用。这些应用可以执行与地理信息相关联的各种功能,包括处理地理信息以供用户访问和分析。这些应用的性能可以通过使用应用编程接口(api)来提高,api可以被设计为更有效地创建、修改和访问应用的服务、框架和结构。然而,应用和使用应用的方式可能会随着时间而变化,实现应用的基础硬件也会随之变化。因此,存在对可用于更有效地利用与地理信息相关联的计算资源的更有效api的需求。



技术实现要素:

本公开的实施例的方面和优点将在下面的描述中部分地阐述,或者可以从描述中获悉,或者可以通过实施例的实施而获知。

本公开的一个示例方面涉及一种存储计算机可读指令的非暂时性计算机可读介质,所述计算机可读指令实现用于生成在计算设备上执行的软件应用的模型数据的应用编程接口。计算设备可以包括一个或多个处理器和显示设备。应用编程接口可以包括与行程优化数据结构相关联的第一指令集合。行程优化数据结构可以与应用编程接口相关联并可以指定包括一个或多个字段的多个消息。多个消息可以与运送集合和车辆集合相关联。应用编程接口可以包括与建模功能相关的第二指令集合。建模功能可以实现一个或多个调用以部分基于多个消息来生成模型数据。应用编程接口可以包括与行程优化服务的实现相关联的第三指令集合,以部分基于模型数据为软件应用的用户生成路线安排数据。路线安排数据包括部分基于运送集合和车辆集合的路线集合。

本公开的第二示例方面涉及一种用于为在具有一个或多个处理器的计算设备上执行的软件应用生成导航数据的方法。所述方法可以包括由一个或多个计算设备接收行程优化数据,包括与应用编程接口相关联的行程优化数据结构,并指定包括一个或多个字段的多个消息。多个消息可以与运送集合和车辆集合相关联。所述方法可以包括由一个或多个计算设备部分基于对与多个消息相关联的建模功能的调用生成模型数据。多个消息可以与建模功能相关联,并且可以包括与运送集合相关联的一个或多个运送消息或与车辆集合相关联的一个或多个车辆消息。所述方法可以包括由一个或多个计算设备部分基于模型数据为软件应用的用户生成路线安排数据。路线安排数据包括部分基于运送集合和车辆集合的路线集合。在又一示例方面中,可以提供一种用于操作一个或多个车辆的方法,所述方法包括:使一个或多个车辆根据第二示例方面生成的路线安排数据来操作。

本公开的另一示例方面涉及一种包括网络接口、一个或多个处理器以及一个或多个存储设备的计算设备。一个或多个存储设备可以存储计算机可读指令,所述计算机可读指令实现由软件应用调用的用于生成用于行程优化服务的模型数据的应用编程接口作为软件应用的一部分。第一指令集合可以与行程优化数据结构相关联。行程优化数据结构可以与应用编程接口相关联并可以指定包括一个或多个字段的多个消息。多个消息可以与运送集合和车辆集合相关联。第二指令集合可以与建模功能相关联。建模功能可以实现一个或多个调用以部分基于多个消息来生成模型数据。第三指令集合可以与行程优化服务的实现相关联,以部分基于模型数据为软件应用的用户生成路线安排数据。路线安排数据包括部分基于运送集合和车辆集合的路线集合。

本公开的其他示例方面针对其他计算机实现的方法、系统、装置、有形的非暂时性计算机可读介质、用户界面、存储设备和电子设备,用于实现用于为在计算设备上执行的软件应用生成模型数据的应用编程接口。

参考以下描述和所附权利要求,将更好地理解各种实施例的这些和其他特征、方面和优点。结合在本说明书中并构成本说明书的一部分的附图示出了本公开的实施例,并且与说明书一起用于解释相关原理。

附图说明

在参考附图的说明书中阐述了针对本领域普通技术人员的实施例的详细讨论,在附图中:

图1描绘了根据本公开的示例实施例的用于将导航服务实现为软件应用的一部分的示例系统的概述;

图2描绘了根据本公开的示例实施例的作为在用户设备上操作的软件应用的一部分实现的示例图形用户界面分量;

图3描绘了根据本公开的示例实施例的实现软件应用的示例用户设备的框图;

图4描绘了根据本公开的示例方面的与应用编程接口相关联的指令的示例的框图;

图5描绘了根据本公开的示例方面的行程优化数据结构中的消息之间的关系的概述的框图;

图6描绘了根据本公开的示例方面的示例shipmentmodel消息的框图;

图7描绘了根据本公开的示例方面的示例车辆消息的框图;

图8描绘了根据本公开的示例方面的示例运送消息的框图;

图9描绘了根据本公开的示例方面的示例capacityquantity消息的框图;

图10描绘了根据本公开的示例方面的示例visitrequestalternates消息的框图;

图11描绘了根据本公开的示例方面的示例visitrequest消息的框图;以及

图12描绘了根据本公开的示例方面的示例方法的流程图。

具体实施方式

现在将详细参考实施例,在附图中示出了实施例的一个或多个示例。通过举例说明实施例而不是限制本公开来提供每个示例。实际上,对于本领域技术人员将显而易见的是,在不脱离本公开的范围或精神的情况下,可以对实施例进行各种修改和变型。例如,作为一个实施例的一部分示出或描述的特征可以与另一实施例一起使用以产生又一实施例。因此,意图是本公开的各方面覆盖这样的修改和变化。

所公开技术的示例方面针对用于在可以在一个或多个计算设备上实现的软件应用中生成模型数据的应用编程接口(“api”),以提供车辆和运送的路线集合,包括车辆和运送的优化的路线集合。可以以一种或多种方法、系统、设备或计算机可读介质(例如,非暂时性计算机可读介质)来实现所公开的技术。特别地,api可以被用于生成包括运输或路线安排模型(例如,车辆路线安排模型)的模型,模型包括可以从各个位置(例如,地理位置)执行(例如,提取、交付或运输)任务集合(例如,运送、工作量或订单)的实体的集合(例如,车辆、工人、单位)。此外,api可以指定类、数据结构和/或协议的集合,包括一个或多个消息,消息可以用于指定包括车辆集合和运送集合的路线安排场景的各个方面。一个或多个消息可以包括一个或多个字段,字段可以用于指定一个或多个消息的属性和值,并且可以用作约束来定义用于车辆集合和运送集合的路线集合。

所公开的技术可以实现在可以在包括本地计算设备(例如,移动计算设备或台式计算设备)或远程计算设备(例如,远程服务器设备)的一个或多个计算设备上执行的软件应用(例如,web应用)中。这样,所公开的技术可以包括计算机可读指令的集合,当由一个或多个处理器执行时,该计算机可读指令的集合实现在包括车辆和运送集合的模型数据的生成中使用的应用编程接口。因此,所公开的技术可以基于可以在一个或多个消息以及相应的一个或多个字段中定义的一个或多个标准(例如,车辆或运送的容量或时间限制)来促进车辆路线的优化(例如,车辆到运送的最佳分配)。这可以改善对所需任务的资源分配。

在一些实施例中,api可以包括与包含行程优化数据结构的各种类型的数据结构相关联的第一指令集合。行程优化数据结构可以用于指定多个消息,每个消息可以包括一个或多个字段。多个消息可以与可用于创建模型数据(用于任务和实体的集合的模型)的任务集合(例如,运送、工作量、托运或工作订单)和实体集合(例如,车辆、工人、雇员或工作单位)相关联,然后行程优化服务可以将其用于为任务(例如,运送)集合和可以执行任务的实体(车辆)集合生成路线或路径集合。

例如,多个消息可以用于指定运送模型中的车辆和运送的信息,包括shipmentmodel消息、一个或多个车辆消息、一个或多个运送消息、一个或多个capacityquantity消息、一个或多个visitrequestalternates消息或者一个或多个visitrequest消息。此外,多个消息中的每一个可以用于指定运送模型的不同方面,并且可以相互关联,包括依赖关系形式的关联(例如,不同类型的多个消息之间的父子关系)。

本公开的各方面涉及各种术语,包括类、函数、属性、消息、字段和协议名称(例如,车辆、运送和capacityquantity)。提供在本公开中使用的这些和其他术语仅出于标识目的,并且不旨在限制本公开的范围。例如,shipmentmodel数据结构或shipmentmodel消息可以包括任何数据结构或消息,无论其名称如何,其都包括本文所述的shipmentmodel数据结构或shipmentmodel消息的一个或多个方面。

此外,api可以包括与建模功能相关联的第二指令集合。建模功能可以用于部分基于行程优化数据结构指定的多个消息来实现一个或多个调用以生成模型数据。模型数据可以描述包括运送集合、车辆集合或与生成运送模型相关联的各种事件、对象、条件或状态的运送模型。例如,与运送集合相关联的模型数据可以包括运送的位置和运送重量(例如,货物在运送位置处的重量),以及包括车辆的位置和车辆的承载容量的车辆集合。因此,模型数据可以包括一个或多个字段或与一个或多个字段相关联,该一个或多个字段可以与包括shipmentmodel消息、一个或多个车辆消息、一个或多个运送消息、一个或多个capacityquantity消息、一个或多个visitrequestalternates消息或一个或多个visitrequest消息的消息相关联。

例如,shipmentmodel消息可以包括一个或多个运送消息、运送字段、一个或多个车辆消息、车辆字段、行驶持续时间秒数字段、全局开始时间字段、全局结束时间字段或全局持续时间字段的每小时成本。shipmentmodel消息可以表示包括要由车辆集合执行的运送集合的运送模型。与shipmentmodel消息相关联的运送模型可以用于基于成本准则来最小化执行运送集合的车辆的总成本,成本准则包括对车辆进行路线安排的总成本。例如,成本可以基于每总时间成本、每行驶时间成本或所有车辆的固定成本;未执行的运送惩罚(例如,对未在指定时间窗内执行的运送的惩罚);以及全局运送持续时间的成本。

shipmentmodel消息的运送字段可以与要执行的运送集合相关联(例如,由车辆提取或交付),并且shipmentmodel消息的车辆字段可以与用于访问执行运送的提取或交付位置的车辆集合相关联。

shipmentmodel消息的行驶持续时间秒数字段可以基于行驶持续时间矩阵,该行驶持续时间矩阵可以包括位置以及矩阵中任意位置集合之间的行驶持续时间。例如,行驶持续时间矩阵可以包括出发位置或到达位置以及车辆从出发位置行驶到到达位置所花费的时间(例如,以秒为单位的时间)的集合。在未提供行驶持续时间秒数字段或未指定行驶持续时间秒数值的情况下,可以改为指定与车辆消息和visitrequests消息相关联的出发位置字段和到达位置字段。这样,一些与运送之间的时间或距离有关的信息可用于运送模型。然而,如果指定了行驶持续时间秒数字段,则为了避免与行驶持续时间有关的信息冲突,将不指定车辆消息和visitrequests消息的出发位置字段和到达位置字段。

在一些实施例中,可以通过与shipmentmodel消息相关联的服务来计算从出发位置行驶到到达位置的车辆的行驶持续时间。此外,行驶持续时间矩阵中的元素数量可以基于到达数量和出发数量的乘积(即,到达数量乘以出发数量)。可以将值1分别添加到到达数量和出发数量上,以正确格式化行驶持续时间矩阵。可以基于各种准则来限制行驶持续时间,包括要求行驶持续时间不为负(即,车辆从出发位置行驶到到达位置不能花费少于零秒)。另外,可以将行驶持续时间指定为无限值,以指示相应路径不可用(例如,持续时间超过预定义阈值时间的路径)。

可以将shipmentmodel消息的全局开始时间字段和全局结束时间字段与各自的时间(例如,unix时间)相关联。全局开始时间字段和全局结束时间字段的值之间的差异可以表示shipmentmodel消息的有效时间间隔。可以将shipmentmodel消息的全局持续时间的每小时成本与运送计划的整体持续时间的成本相关联。全局持续时间可以是所有车辆的运送的最早开始时间和最晚结束时间之间的差。在一些实施例中,全局持续时间的每小时成本可以基于与运送相关联的惩罚成本。

一个或多个车辆消息可以包括以下中的一个或多个:一个或多个capacityquantity消息,与指定每个车辆的承载容量的容量字段相关联;出发位置字段,指定车辆在提取之前出发的地理位置;到达位置字段,指定车辆在完成最后一次运送之后所处的地理位置;出发索引字段,指定车辆路线的第一段的行驶时间;到达索引字段,指定车辆路线的最后一段(leg)的行驶时间;最早开始时间字段,指定车辆可以从开始位置出发运送的时间;最后结束时间字段,指定车辆可以到达其结束位置的时间;每小时成本字段,指定车辆运送所花费的总时间的成本,包括行驶时间、等待时间和访问时间(visittime);每小时行驶成本字段,指定车辆从一个位置到另一位置的运输花费的时间成本,不包括等待时间或访问时间;或固定成本字段,指定每当使用车辆进行至少一次运送时的成本。

一个或多个运送消息可以包括以下中的至少一个:一个或多个capacityquantity消息和可以指定运送的类型和数量的相关需求字段;一个或多个visitrequestalternates消息,与提取字段或交付字段相关联;提取字段,指定运送的提取位置;可选的交付字段,指定运送的放下位置;惩罚成本字段,指定如果运送未完成(即,未提取或未交付)则添加到总路线成本的惩罚成本,在实现方式中,省略惩罚成本字段可以表示运送的执行是强制性的;或允许的车辆索引字段,指定可以执行运送的车辆集合。

一个或多个运送消息中的每一个可以表示从提取到交付的一个或多个项目的运送。与一个或多个运送消息相关联的运送的执行可以与访问提取位置或交付位置中的任何一个(例如,访问提取位置、交付位置或提取位置和交付位置)相关联的车辆。在车辆访问提取位置的情况下,车辆可以将车辆的可用容量减少在提取位置的运送量(例如,一批货物被装载到车辆上)。在车辆访问交付位置的情况下,车辆可以车辆的可用容量增加在交付位置的运送量(例如,从车辆上卸下一批货物)。

在一些实施例中,一个或多个visitrequestalternates消息可以单独与提取字段相关联或者与提取和交付字段相关联。在一个或多个visitrequestalternates消息仅与提取字段相关联的情况下,仅要求车辆访问提取位置。在一个或多个visitrequestalternates消息与提取字段和交付字段相关联的情况下,车辆可以交替访问一个提取请求和一个交付请求。运送消息的需求字段可以与capacityquantity消息相关联,并且可以被用于指示车辆要提取或交付的运送的类型和数量。

visitrequestalternates消息可以包括与车辆对运送位置的访问相关联的一个或多个visitrequest消息。这样,一个或多个visitrequestalternates消息中的每一个可以包括一个或多个visitrequest消息或访问请求字段。车辆仅执行访问请求集合中的一个就足以满足请求。一个或多个visitrequest消息可以包括到达位置字段、出发位置字段、到达索引字段、出发索引字段、时间窗字段、持续时间字段或timewindow消息。

到达位置字段可以指定车辆到达以进行提取或放下的地理位置(例如,以纬度和经度表示的地理位置)。出发位置可以指定在进行提取或放下之后车辆出发的地理位置。到达索引字段可以指定车辆从先前出发位置到达一个位置使用的时间。出发索引字段可以指定车辆从一个位置出发到下一个到达位置使用的时间。持续时间字段可以指定车辆到运送位置的访问的持续时间(例如,车辆到达一个位置与车辆离开该位置之间的时间)。

timewindow消息可以用于约束车辆运送的到达时间。timewindow消息可以与以下相关联:指示车辆的最早到达时间的开始时间字段;指示车辆的最晚到达时间的结束时间字段;指示之后将产生等待惩罚的结束时间的软结束时间字段;或指示超出软结束时间之后的惩罚幅度的软结束时间后每小时成本字段。

一个或多个运送消息或一个或多个车辆消息可以与包括类型字段或值字段的一个或多个capacityquantity消息相关联。capacityquantity消息的类型字段可以包括数量类型的标识符(例如,唯一标识符),该数量类型可以与车辆的容量或通过运送来消耗该容量相关联。capacityquantity消息的类型字段可以包括数量的类型的标识符或与数量相关联的单位(例如,以盎司为单位测量的重量、以升为单位测量的体积、以克为单位测量的质量)。值字段可以包括可以与车辆的容量或运送消耗该容量相关联的数量的量的值。例如,值字段可以包括数值(例如10,000)。在一些实施例中,值字段可以限于非负值(例如,车辆的容量限于正量)。

在一些实施例中,一个或多个车辆消息和一个或多个运送消息(分别对应于车辆集合和运送集合)可以受到与类型字段相关联的数量的类型或与值字段关联的数量的量的约束。例如,一个或多个运送消息中的一个或多个capacityquantity消息可以包括以吨为单位指定重量的类型且值为2,这将约束模型,使得仅承载容量为2吨或更大的车辆被包括在内,即该模型将不包括承载容量小于两吨的车辆。

api也可以与第三指令集合相关联,该第三指令集合可以实现行程优化服务,以基于模型数据为软件应用的用户生成路线安排数据。例如,行程优化服务可以处理模型数据并基于与运送集合和车辆集合相关联的多个消息生成包括路线的路线安排数据。此外,路线安排数据可以包括根据一个或多个运送消息和一个或多个车辆消息的一个或多个字段约束的运送集合和车辆集合。例如,可以将路线安排数据输出到显示设备,该显示设备基于车辆优化服务的准则(例如,运送和车辆集合的目标成本或行驶持续时间)向用户显示路线集合。

在一些实现方式中,所公开的技术可以包括第四指令集合,其可以用于生成与行程优化服务相关联的图形用户界面分量。图形用户界面分量可以基于包括模型数据和路线安排数据的各种数据来显示图形表示(例如,包括文本和图像)。此外,图形用户界面分量可以包括允许用户查看或修改所显示的数据的一部分的交互式元素。例如,图形用户界面分量可以允许用户调整字段的值,从而可以将不同的约束条件应用于车辆集合的位置访问(例如,改变车辆的容量)。这样,图形用户界面分量可以促进针对给定的车辆集合和运送集合更有效地生成和优化路线安排方案。

本公开的各方面可以通过api的特定配置,特别是api的功能被分离的方式,来提供各种技术效果和收益。

提高了模型生成的效率,这可以提高计算资源使用的效率(例如,减少用于生成模型的时间和计算资源)。由于基于在行程优化数据结构中指定的消息执行生成模型,因此可以根据特定环境以及运送和车辆的规格,通过改变数据结构中的消息来动态改变模型。不必改变建模功能本身,因为可以基于行程优化数据结构的格式来配置建模功能,以使其能够操作该格式内的任何特定消息。可以选择格式以便优化api输入的性质,使得用户可以通过与api的便捷和最小交互轻松地指定特定环境,从而优化资源的使用。

此外,所公开的技术允许在生成路线的效率和确定遍历路线的最佳方式方面的特定改进。如上所述,已经优化了模型生成,因此由于可以针对行程优化数据结构的任何特定输入生成路线安排数据,所以可以以优化的方式类似地生成路线安排数据。在一些实现方式中,由于在生成路线安排数据的处理与建模功能的操作之间可能发生分离,因此生成路线安排数据的处理可以保持不变或最小程度地改变。

换句话说,当改变行程优化数据结构的输入时,可以通过建模功能来处理该改变,使得由于更新的建模功能而生成了新的路线安排数据,而不是改变路线安排数据生成处理与建模功能交互的方式。生成路线的效率还可以提高模型中各个车辆和运送的性能,结果得到模型中资源的更有效分配。因此,本公开的各方面可以允许通过使用应用编程接口来改善车辆对运送的分配。

现在参照图1-12,将更详细地公开本公开的示例方面。图1描绘了根据本公开的示例实施例的用于为应用(例如,软件应用)生成行程优化数据的示例系统100的概述。系统100可以包括:用户设备102;模型数据提供者104;通信网络106;应用110(例如,软件应用);路线安排应用编程接口112(“api112”);路线安排引擎114;和地理信息系统120。

用户设备102可以经由通信网络106从模型数据提供者104接收导航数据。可以在用户设备102上操作或被执行的应用110可以经由网络106与导航数据提供者114交互。网络106可以包括任何类型的通信网络,诸如局域网(例如,内部网)、广域网(例如,互联网)、蜂窝网络或其某种组合。网络106还可以包括直接连接。通常,可以使用任何类型的有线和/或无线连接,使用各种通信协议(例如,tcp/ip、http、smtp、ftp)、编码或格式(例如,html或xml)和/或保护方案(例如,vpn、安全http或ssl)通过网络106进行通信。

用户设备102可以包括一个或多个计算设备,包括智能电话、平板电脑、可穿戴设备、膝上型计算机计算设备、台式计算设备、移动计算设备、可穿戴计算设备、具有一个或多个处理器的显示设备或车辆计算系统(例如,汽车中的导航系统)。

应用110可以在用户设备102上被实现。应用110可以向用户实现模型数据和/或路线安排数据的路线安排服务。模型数据和/或路线安排数据可以基于包括各种导航数据的多个车辆和多个运送的状态(例如,多个运送和多个车辆的地理位置、多个车辆的容量以及多个车辆的路线)。可以通过经由在用户设备102上实现的web浏览器访问的web应用在用户设备102上本地操作或执行应用110,或者可以通过在用户设备102上的本地执行或操作与在可以包括模型数据提供者104或地理信息系统120的远程计算设备上远程执行或操作的组合来在用户设备102上操作或执行应用110。

应用110可以调用路线安排api112以控制与包括模型数据提供者104的计算设备(例如,远程计算设备)相关联的路线安排引擎114。以这种方式,应用110可以使用路线安排api112通过包括通信网络106的通信网络来访问和提供与导航数据提供者1104相关联的模型数据、导航数据和/或路线数据。

应用110可以被配置为生成或确定可以由用户使用的模型数据,该模型数据包括路线安排数据或导航数据(例如,运送模型中的车辆和运送的位置和路线)。在一些实现方式中,应用110可以包括用于在一个或多个显示设备上向用户呈现导航信息的图形用户界面分量。

api112可以为路线安排引擎114和应用110提供接口。通过这种方式,作为api112调用的一部分而传递给应用110的模型和/或路线安排参数可以用于通过与路线安排引擎114交换(发送或接收)数据被用于自动确定模型数据或路线安排数据。路线安排引擎114可以被配置为,例如,计算到一个或多个车辆的运送路线,访问包括运送位置的地理位置的映射数据,基于各种车辆或运送事件更新路线安排数据,并响应来自应用110的对模型数据或路线安排数据的请求。

路线安排api112可以以各种方式实现,包括作为一个或多个功能和/或作为数据结构。此外,api112可以包括直接在包括用户设备102或模型数据提供者104的计算设备上执行的编译代码。可选地,应用110可以在运行时解释诸如脚本语言的任何其他形式的指令。在一个示例性实现方式中的api112包括开发人员可以在应用110的代码中包括的若干功能的完整存档的原型,以及实现这些功能的指令。在一些实施例中,可以将api112作为静态库提供给开发者。

在一些实施例中,模型数据提供者104可以包括一个或多个计算设备,其包括服务器(例如,web服务器)。一个或多个计算设备可以包括一个或多个处理器和一个或多个存储设备。一个或多个存储设备可以存储计算机可读指令以实现例如路线安排引擎114。在一些实施例中,路线安排引擎114可以访问例如与地理信息系统118相关联的数据。

地理信息系统118可以与根据其组成元素(例如,位置)的地理坐标(例如,纬度和经度)而编索引的数据相关联或包括该数据。与地理信息系统118相关联的数据可以包括地图数据、路线数据、地理图像和/或与各种航路点(例如,地址或地理坐标)相关联的数据。可以经由api112将由模型数据提供者104确定或生成的模型数据或路线安排数据提供给应用110。在某些实现方式中,应用110可以在应用110的用户界面内呈现路线安排数据。

图2描绘了根据本公开的示例实施例的计算系统200的示例,该计算系统200包括计算设备210和与软件应用(例如,应用110)相关联的图形用户界面分量212。图形用户界面分量212可以被显示在计算设备210的显示设备(例如,用户设备102的显示设备)上。图形用户界面分量212可以包括各种界面元素,这些元素可以被用来访问、生成、处理或向用户呈现(例如,显示)数据(包括模型数据或路线安排数据),作为包括行程优化服务的一部分。如图2所示,图形用户界面分量212可以包括运送位置220/222/224/226(例如,地理位置的符号表示)和路线路段230/232/234(例如,运送位置之间的路径或道路的符号表示)的显示。

图形用户界面分量212可以包括数据的表示,数据包括路线安排数据或模型数据。图形用户界面分量212可以使用文本、图片和其他类型的符号的各种组合来显示路线安排数据或模型数据。运送位置220可以表示基于根据行程优化服务的优化准则集合(例如,优化标准可以包括最大化车辆容量或最小化运送时间)的车辆的运送模型、车辆根据位置集合访问的第一运送位置(例如,地理位置)。包括运送位置222/224/226的后续运送位置可以在图形用户界面分量212上表示为由路线路段230/232/234连接或链接。

根据本公开的示例实现,api(例如,图1中的路线安排api112)可以促进对应用(例如,图1中的应用110)的调取(invocation)。应用的调取可以使应用在计算设备(例如,图1所示的计算设备210或用户设备102)上启动和/或执行。应用的调取还可以使应用进入计算设备210的用户界面的前台,使得用户可以查看和/或与应用交互。例如,当应用110未在计算设备210上运行或未在计算设备210上执行时,可以响应于调取而启动应用并将其带到用户界面的前台。

可以响应于用户与在计算设备210上正在运行或执行的软件应用的用户界面内显示的元素(例如,包括用户输入控制元素的图形用户界面元素)的交互(例如,触摸计算设备210的一部分)而发生应用的调取。

图3描绘了根据本公开的示例实施例的被配置为实现路线安排api312的示例用户设备302。如图所示,用户设备302可以包括:存储器304;应用310,可以包括一个或多个指令并且可以被存储在存储器304(例如,ram)上;路线安排api312,可以包括可以被存储在存储器304中的一个或多个指令;一个或多个处理器320,被配置为执行存储在存储器304中的一个或多个指令;网络接口322,可以支持网络通信;存储设备324(例如,硬盘驱动器或固态驱动器);和/或显示设备326。一个或多个处理器320可以包括可以例如处理和/或交换(发送或接收)与计算设备相关联的一个或多个信号或数据的任何处理设备。

例如,一个或多个处理器320可以包括单核或多核设备,包括微处理器、微控制器、集成电路和/或逻辑设备。存储器304和存储设备324被分别示出,然而,存储器304和存储设备324可以是同一存储器模块内的区域。用户设备302可以包括一个或多个另外的处理器、存储设备、网络接口,它们可以分开提供或者在同一芯片或板上提供。存储器304和存储设备324可以包括一个或多个计算机可读介质,包括但不限于非暂时性计算机可读介质、ram、rom、硬盘驱动器、闪存驱动器和/或其他存储设备。

存储器304可以存储用于包括可以与各种软件应用或数据相关联的操作系统的应用的指令集合。存储器304可以用于操作各种应用,包括专门为移动设备开发的移动操作系统。这样,存储器304可以执行允许软件应用访问包括无线网络参数(例如,无线网络的身份,服务质量)的数据并且调用包括电话、位置确定(例如,经由全球定位服务(gps)或wlan)和/或无线网络数据呼叫发起服务的各种服务。在其他实现方式中,存储器304可以用于操作或执行在移动设备和固定设备(例如,智能电话和台式计算机)上运行的通用操作系统。在一些示例实现方式中,操作系统包括或基于由谷歌公司开发的移动操作系统或其他用于实现android操作平台的其他操作系统。

可以由用户设备302操作或执行的软件应用可以包括图1所示的应用110。此外,可以由用户设备302操作或执行的软件应用可以包括本地应用或基于web的应用。

在一些实现方式中,用户设备可以与定位系统(未示出)相关联或包括定位系统。定位系统可以包括用于确定设备位置的一个或多个设备或电路。例如,定位设备可以通过使用卫星导航定位系统(例如,gps系统、伽利略定位系统、global导航卫星系统(glonass)、北斗卫星导航和定位系统)、惯性导航系统、通过使用三角测量和/或到蜂窝塔或wi-fi热点、信标等的接近基于ip地址的航位推算系统和/或其他适合的确定位置的技术来确定实际或相对位置。定位系统可以确定用户设备的用户位置。可以将用户位置提供给模型数据提供者104,以供导航数据提供者在确定与用户设备102相关联的行驶数据时使用。

图4描绘了根据本公开的示例实施例的示例设备410(例如,具有一个或多个处理器和存储器的计算设备)的框图,该示例设备410可以存储、处理、生成和/或交换(发送或接收)与api(例如,路线安排api112)相关联的指令集合。可以在包括例如用户设备102、模型数据提供者104和/或计算设备302的一个或多个计算设备或计算系统上执行或实现在设备410上存储的一个或多个指令。此外,在设备410上存储的一个或多个指令可以执行或实现为在此公开的设备的硬件组件上的算法。如图所示,一个或多个指令可以包括模型指令412、车辆指令414和/或运送指令416。

可以通过将模型指令412与应用相关联来实现模型指令412,使得该应用可以生成与服务(例如,行程优化服务)相关联的模型,该服务例如能够被用于优化通过车辆集合的运送集合的提取和交付。此外,模型指令412可以与车辆指令414和/或运送指令416相关联或包括车辆指令414和/或运送指令416。

车辆指令414可以用于描述可以由api指定的一个或多个车辆的各个方面。车辆指令414可以与一个或多个数据结构相关联或包括一个或多个数据结构,该数据结构包括一个或多个类、一个或多个对象或一个或多个消息,其中任何一个都可以与协议缓冲器相关联。与车辆指令414相关联的一个或多个数据结构可以包括:出发位置数据结构,包括与车辆出发的相应纬度和经度相关联的纬度字段和经度字段;最早开始时间数据结构,与车辆的提取时间或交付时间相关联;最后结束时间数据结构,与车辆的提取时间或交付时间相关联;容量数据结构,可以包括与车辆承载的货物类型相关联的类型字段和与车辆承载的货物量相关联的值字段;和/或每行驶小时成本数据结构,可以指示车辆消耗资源的速度(例如,每小时美元、每小时燃料加仑或每小时瓦特)。

运送指令416可以用于描述可以由api指定的一个或多个运送的各方面。运送指令416可以与一个或多个数据结构相关联或包括一个或多个数据结构,该数据结构包括可以与协议缓冲器相关联的类、各种对象或消息。与运送指令416相关联的一个或多个数据结构可以包括与要由车辆提取的运送相关联的提取数据结构。提取数据结构可以与到达位置数据结构和时间窗数据结构相关联或包括到达位置数据结构和时间窗数据结构,到达位置数据结构包括与车辆出发的相应纬度和经度相关联的纬度字段和经度字段,时间窗数据结构与车辆要发生的提取或交付的时间范围相关联。

时间窗数据结构可以包括:开始时间数据结构,与提取或交付时间的开始相关联;结束时间数据结构,与提取或交付时间的结束相关联;持续时间数据结构,可以与提取或交付的持续时间相关联;以及需求数据结构,与要提取或交付到某个位置的货物数量相关联。在一些实现方式中,需求数据结构可以包括用于货物类型的类型字段和用于货物量的值字段。

包括模型指令412、车辆指令414和运送指令416的指令的示例实现提供如下:

图5描绘了根据本公开的示例实施例的可以与api(例如,路线安排api112)相关联的示例shipmentmodel数据结构510的框图。可以在包括例如用户设备102、模型数据提供者104和/或计算设备302的一个或多个计算设备或计算系统上执行或实现一个或多个shipmentmodel数据结构510。此外,一个或多个shipmentmodel数据结构510可以执行或实现为在本文公开的设备的硬件组件上的算法。

shipmentmodel数据结构510(例如,shipmentmodel消息)可以与一个或多个数据结构相关联或包括一个或多个数据结构,该数据结构包括可以与协议缓冲器相关联的类、各种对象或消息。可以将与shipmentmodel数据结构510相关联或包括在其中的一个或多个数据结构与包括一个或多个车辆、一个或多个运送以及一个或多个相关属性(例如,车辆和运送的位置)的运送模型相关联。shipment_model510可以包括以下中的一个或多个:车辆消息520;capacityquantity消息530;运送消息540;visitrequestalternates消息550;和/或visitrequest消息560。

在一些实现方式中,shipmentmodel数据结构510可以与车辆消息和运送消息相关联或包括车辆消息和运送消息,车辆消息可以包括车辆字段;运送消息可以包括:运送字段;travel_duration_seconds字段;global_start_time字段;global_end_time字段;和/或cost_per_hour_of_global_duration字段。

车辆消息520可以与一个或多个数据结构相关联或包括一个或多个数据结构,该数据结构包括可以与协议缓冲器相关联的类、各种对象或消息。与车辆消息520相关联的一个或多个数据结构可以与包括车辆的属性(例如,车轮容量)的一个或多个车辆相关联。与车辆消息520相关联的一个或多个数据结构可以包括capacityquantity消息530,capacityquantity消息530可以包括:容量字段;departure_location字段;arrival_location字段;departure_index字段;arrival_index字段;earliest_start_time字段;latest_end_time字段;cost_per_hour字段;cost_per_traveled_hour字段;和/或fixed_cost字段。

capacityquantity消息530可以与一个或多个数据结构相关联或包括一个或多个数据结构,该数据结构包括可以与协议缓冲器相关联的类、各种对象或消息。与capacityquantity消息530相关联的一个或多个数据结构可以与车辆或运送的一个或多个容量相关联。与capacityquantity消息530相关联的一个或多个数据结构可以包括类型字段和/或值字段中的一个或多个。

运送消息540可以与一个或多个数据结构相关联或包括一个或多个数据结构,该数据结构包括类,各种对象或可以与协议缓冲器相关联的消息。与运送消息540相关联的一个或多个数据结构可以与可以被提取或交付的一个或多个运送相关联。运送消息540可以与visitrequestalternates消息550和/或visitrequest消息560相关联或包括visitrequestalternates消息550和/或visitrequest消息560。此外,运送消息540可以与capacityquantity消息相关联或包括capacityquantity消息,capacityquantity消息可以包括:需求字段;可以包括提取字段和/或交付字段的visitrequestalternates消息;penalty_cost字段;和/或allowed_vehicle_indices字段。

visitrequestalternates消息550可以与一个或多个数据结构相关联或包括一个或多个数据结构,该数据结构包括可以与协议缓冲器相关联的类、各种对象或消息。与visitrequestalternates消息550相关联的一个或多个数据结构可以与对用于运送的提取或交付的一个或多个位置的访问相关联。visitrequestalternates消息550可以与visitrequest消息560相关联或包括visitrequest消息560,visitrequest消息560可以包括visit_requests字段。

visitrequest消息560可以与一个或多个数据结构相关联或包括一个或多个数据结构,该数据结构包括可以与协议缓冲器相关联的类、各种对象或消息。与visitrequest消息560相关联的一个或多个数据结构可以与对用于提取或交付运送的一个或多个位置的访问相关联。visitrequest消息560可以与时间窗消息相关联或包括时间窗消息,该时间窗消息可以包括:一个或多个time_windows字段;持续时间字段;arrival_location字段;departure_location字段;arrival_index字段;departure_index字段;start_time字段;end_time字段;soft_end_time字段;和/或cost_per_hour_after_soft_end_time字段。

运送模型消息510;车辆消息520;capacityquantity消息530;运送消息540;visitrequestalternates消息550;和/或visitrequest消息560可以用于指定运送模型消息510的不同方面。此外,车辆消息520;capacityquantity消息530;运送消息540;visitrequestalternates消息550;和/或visitrequest消息560可以彼此关联或相关,包括以依赖性关系形式的关联或相关(例如,不同类型的消息之间的父子关系)。

图6描绘了根据本公开的示例实施例的可以与api(例如,路线安排api112)相关联的shipmentmodel数据结构610的框图。可以在包括例如用户设备102、模型数据提供者104和/或计算设备302的一个或多个计算设备或计算系统上执行或实现包括shipmentmodel数据结构610的一个或多个shipmentmodel消息。此外,一个或多个shipmentmodel数据结构610可以执行或实现为在本文公开的设备的硬件组件上的算法。

如图所示,shipmentmodel数据结构610(例如,shipmentmodel消息)可以与以下中的一个或多个相关联或包括以下中的一个或多个:车辆数据结构620(例如,车辆消息),可以包括车辆字段622;运送数据结构630(例如,运送消息),可以包括运送字段632;travel_duration_seconds字段640;global_start_time字段642;global_end_time字段644;和/或cost_per_hour_of_global_duration字段646。

shipmentmodel数据结构610可以与一个或多个其他数据结构相关联或包括一个或多个其他数据结构,该其他数据结构包括可以与协议缓冲器相关联的类、各种对象或消息。与shipmentmodel数据结构610相关联的一个或多个数据结构可以与包括要由车辆集合执行的运送集合的运送模型相关联。应用(例如,应用110)可以生成与shipmentmodel数据结构610相关联的运送模型。与shipmentmodel数据结构610相关联的运送模型可以在各种模型中使用,包括可以与车辆数据结构620相关联的车辆集合和可以与运送数据结构630相关联的运送集合。

车辆数据结构620可以用于实例化包括车辆字段622的一个或多个车辆对象。车辆字段622可以与用于对执行运送的提取或交付的位置访问的车辆集合相关联。举例来说,车辆字段可以与车辆集合中的车辆数量相关联(例如,“vehicle车辆=4”可以指示运送模型中的四个车辆对象的实例化)。

运送数据结构630可以用于实例化包括运送字段632的运送对象集合。运送字段632可以与要执行的(例如,由车辆提取或交付的)运送集合相关联。例如,运送字段632可以与车辆集合要执行的运送数量相关联(例如,“shipment货运=2”可以指示运送模型中的两个运送对象的实例化)。

travel_duration_seconds字段640可以基于行驶持续时间集合(例如,车辆将运送从提取位置运输到交付位置使用的行驶时间)。行驶持续时间集合可以被存储在可以包括行驶持续时间矩阵的数据集中。行程持续时间矩阵可以包括位置集合(例如,由位置标识符或纬度/经度识别的位置)以及行程持续时间矩阵中的任意位置集合之间的行程持续时间(例如,以秒计的持续时间)。

例如,行驶持续时间矩阵可以包括在行驶持续时间矩阵的轴上的位置集合,行驶持续时间集合在位置集合的相交处。行驶持续时间集合(例如,以秒计的行驶时间)可以指示车辆从一个位置行驶到另一个位置所花费的时间。在一种实现方式中,从一个位置到相同位置的行驶持续时间在行驶持续时间矩阵中可以被指示为具有零(例如,零秒)的行驶持续时间。

在一些实现方式中,当未提供travel_duration_seconds字段640或未将其与行驶持续时间值(例如,以秒计的时间)相关联时,可以指定与车辆消息620或visitrequest消息相关联的departure_location字段或arrival_location字段。以这种方式,将与车辆在执行运送时使用的行驶持续时间或行驶距离相关联的数据或信息提供给运送模型。在另一实现方式中,当travel_duration_seconds字段640被提供或与行驶持续时间值(例如,以秒计的时间)相关联时,将不指定与车辆数据结构620或visitrequest消息相关联的department_location字段或arrival_location字段。

在一些实现方式中,可以通过服务来确定从一个位置(例如,出发位置)行驶到另一位置(例如,到达位置)的车辆的行驶持续时间,服务包括与shipmentmodel数据结构610相关联的应用或应用集合。此外,行驶持续时间矩阵中的行数和列数可以基于到达数量和出发数量。例如,具有十个出发和五个到达的行驶持续时间矩阵将具有五十个元素。可以基于各种准则来限制行驶持续时间,包括要求行驶持续时间不为负(即,车辆从出发位置到到达位置的行驶时间不得少于零秒)。另外,可以将行驶持续时间指定为预定值(例如,十年),以指示相应路径不可用(例如,持续时间超过预定阈值时间的行驶路线)。

global_start_time字段642和/或global_end_time字段644中的每一个可以与时间——包括一天中的时间(例如,epoch时间、posix时间或unix时间)——相关联。global_start_time字段642和/或global_end_time字段644可以包括从预定开始时间(例如,自1970年1月1日起的秒数)起的时间的值(例如,数值)。global_start_time字段642和global_end_time字段644的值之间的差可以表示可以由shipmentmodel数据结构610使用的有效时间的间隔。

cost_per_hour_of_global_duration646可以与运送计划的总体持续时间的成本相关联。全局持续时间可以是所有车辆的最早开始时间和最晚结束时间之间的差。在一些实施例中,全局持续时间的每小时成本可以基于与运送相关联的惩罚成本。

shipmentmodel数据结构610的示例实现提供如下:

图7描绘了根据本公开的示例实施例的可以与api(例如,路线安排api112)相关联的车辆数据结构710的示例集合的框图。可以在包括例如用户设备102、模型数据提供者104和/或计算设备302的一个或多个计算设备或计算系统上执行或实现包括车辆数据结构710的一个或多个车辆消息。此外,车辆数据结构710可以被执行或实现为本文所公开的设备的硬件组件上的算法。如图所示,车辆数据结构710可以包括以下中的一个或多个或与以下中的一个或多个相关联:capacityquantity数据结构720(例如,capacityquantity消息),capacityquantity数据结构720可以包括容量字段722;departure_location字段730;arrival_location字段732;departure_index字段734;arrival_index字段736;earliest_start_time字段738;latest_end_time字段740;cost_per_hour字段742;cost_per_traveled_hourfield字段744;和/或fixed_cost字段746。

车辆数据结构710(例如,车辆消息)可以与一个或多个数据结构相关联或包括一个或多个数据结构,该数据结构包括可以与协议缓冲器相关联的类、各种对象或消息。车辆数据结构710可以与行驶路线(例如,运送路线)的车辆相关联,该路线可以包括一个或多个可以在放下或提取运送的位置。路线可以在与departure_location字段730或departure_index字段734相关联的位置处开始,并且可以在与arrival_location字段732或arrival_index字段736相关联的位置处结束。

车辆数据结构710可以包括一个或多个capacityquantity消息,该capacityquantity消息包括capacityquantity数据结构720。capacityquantity数据结构720可以包括一个或多个容量字段(包括容量字段722)或与一个或多个容量字段相关联。capacityquantity数据结构720可以与车辆的承载容量(例如,车辆能够承载的负载量)和/或运送消耗的容量(例如,等待运送的负载量)相关联。容量字段722可以与车辆的容量相关联,包括用于测量容量的不同类型的量(例如,质量、重量、体积和/或物品数量)。在一些实现方式中,容量字段722可以受到对容量的需求的约束,这可以由运送需求字段指示。当未定义容量字段722时,可以为容量分配一个无限值。分配给容量字段722的无限值可以指示车辆的容量可用、不可用或不确定。

departure_location字段730可以与车辆的位置(例如,地理位置或纬度/经度)相关联,该位置包括车辆在进行提取之前出发的位置。在一个实现方式中,当未指定department_location字段730或未将其与位置相关联时,可以将department_location730与第一运送提取位置相关联。

arrival_location字段732可以与车辆的位置(例如,地理位置或纬度/经度)相关联,包括完成最终访问请求(例如,执行对车辆的指定位置的访问)之后的车辆的位置。在一个实现方式中,当未指定arrival_location字段732或未将其与位置相关联时,与车辆相关联的运送路线在完成与车辆相关联的最终访问请求之后结束。

departure_index字段734可以用于确定车辆的运送的第一段的行驶时间。可以基于访问行驶持续时间矩阵(例如,与图6中的travel_duration_seconds字段640相关联的行驶持续时间矩阵)中的行驶时间来确定行驶时间。在一个实现方式中,当未指定department_index字段734时,与车辆相关联的位置可以是车辆将进行其第一提取的位置。

arrival_index字段736可以用于确定车辆的运送的最后一段的行驶时间。可以基于访问行驶持续时间矩阵(例如,与图6中的travel_duration_seconds字段640相关联的行驶持续时间矩阵)中的行驶时间来确定行驶时间。在一个实现方式中,当未指定arrival_index字段736时,与车辆相关联的位置可以是车辆将做出其最终访问请求(例如,车辆的运送的最终放下)的位置。

earliest_start_time字段738可以指定车辆可以从起始位置(例如,出发位置)出发进行运送的时间。

latest_end_time字段740可以指定车辆可以到达其结束位置(例如,到达位置)的时间。在一个实现方式中,earliest_start_time字段738和/或latest_end_time字段740可以与全局时间限制(例如,指示包括车辆可以到达出发位置和到达位置的时间的时间范围的时间限制)相关联和/或受其约束。在一个实现方式中,当未指定latest_start_time字段740和/或earliest_start_time字段742时,全局时间限制是latest_start_time字段740和/或earliest_start_time字段742可以基于的值。

cost_per_hour字段742可以指定在车辆运送时车辆沿路线行驶所花费的总时间成本。总时间可以包括行驶时间(例如,车辆到一个位置活从一个位置运输使用的时间)、等待时间(例如,车辆等待提取或交付运送的时间)以及访问时间(例如,车辆访问某个位置的时间,包括运输时间和等待时间)。

cost_per_traveled_hour字段744可以指定车辆从一个位置到另一位置的运输所花费的时间成本,而无需等待时间或访问时间。

fixed_cost字段746可以指定每当车辆进行的运送数量超过最小运送数量(例如,车辆进行至少一次运送)时的成本(例如,固定数量的默认成本)。

在一个实现方式中,cost_per_hour字段742、cost_per_traveled_hour字段744和/或fixed_cost字段746可以与未完成的运送的惩罚成本相关联。

车辆数据结构710的示例实现提供如下:

图8描绘了根据本公开的示例实施例的可以与api(例如,路线安排api112)相关联的运送数据结构810的示例集合的框图。可以在包括例如用户设备102、模型数据提供者104和/或计算设备302的一个或多个计算设备或计算系统上执行或实现一个或多个运送数据结构810。一个或多个运送数据结构810可以被执行或实现为本文所公开的设备的硬件组件上的算法。

运送数据结构810(例如,运送消息)可以与一个或多个数据结构相关联或包括一个或多个数据结构,该数据结构包括可以与协议缓冲器相关联的类、各种对象或消息。与运送数据结构810相关联的一个或多个数据结构可以与可以由车辆提取或交付的运送集合相关联。运送数据结构810可以与以下各项中的一个或多个相关联或包括以下各项中的一个或多个:可以包括需求字段822的capacityquantity数据结构820(例如,capacityquantity消息);可以包括提取字段832和/或交付字段834的车辆消息visitrequestalternates数据结构830(例如visitrequestalternates消息);penalty_cost字段840;和/或allowed_vehicle_indices字段842。

capacityquantity数据结构820和相关联的需求字段可以指定运送的类型和运送的量。在一个实现方式中,与需求相关联的量可以在执行提取之后从车辆的容量中减去,或者可以在车辆执行放下之后添加到车辆的容量中。在一个实现方式中,当未指定需求时,需求可以等于空值。

visitrequestalternates数据结构830可以与提取字段或交付字段相关联或包括提取字段或交付字段。提取字段指定运送的提取位置,而可选的交付字段可以指定运送的放下位置。在一些实现方式中,运送数据结构810可以包括所需的数据结构,该数据结构包括至少一个visitrequestalternates数据结构830,并且没有交付或者恰好一个提取visitrequestalternates数据结构830,以及恰好与visitrequestalternates数据结构830相关联的一个交付。

如果运送未完成(即,未提取或未交付),则penalty_cost字段840可以指定惩罚成本,惩罚成本被添加到总路线成本中。可以按照与其他成本相关字段的成本相同的单位来表达与penalty_cost字段840相关联的成本。allowed_vehicle_indices字段842可以指定可以执行运送的车辆集合。在一个实现方式中,当allowed_vehicle_indices字段842为空时,运送模型中的任何车辆都可以执行运送。

运送数据结构810的示例实现提供如下:

图9描绘了根据本公开的示例实施例的可以与api(例如,路线安排api112)相关联的capacityquantity数据结构910的示例集合的框图。可以在包括例如用户设备102,模型数据提供者104和/或计算设备302的一个或多个计算设备或计算系统上执行或实现一个或多个capacityquantity数据结构910。一个或多个capacityquantity数据结构910可以被执行或实现为本文中所公开的设备的硬件组件上的算法。

capacityquantity数据结构910(例如,capacityquantity消息)可以与一个或多个数据结构相关联或包括一个或多个数据结构,该数据结构包括可以与协议缓冲器相关联的类、各种对象或消息。与capacityquantity数据结构910相关联的一个或多个数据结构可以与包括车辆的承载容量(例如,车辆能够从一个位置承载或运输到另一位置的量)的运送模型相关联。此外,capacityquantity数据结构910可以与类型字段912和/或值字段914中的一个或多个相关联或包括类型字段912和/或值字段914中的一个或多个。

capacityquantity数据结构910的类型字段912可以与量的类型(例如,以克为单位的质量、以磅为单位的重量、以体积为单位的体积或以米为单位的长度)的标识符相关联或包括量的类型的标识符,量的类型可以与车辆的容量或运送所消耗的容量相关联。值字段914可以与车辆的容量或运送所消耗的容量的量的值相关联或包括该量的值。例如,值字段914可以包括数值(例如15,000),其与类型字段912的值“千克”结合可以指示车辆的容量为15,000千克。在一些实现方式中,值字段可以被限制为等于或大于零的值(即,非负值)。

capacityquantity数据结构910的示例实现提供如下:

图10描绘了根据本公开的示例实施例的可以与api(例如,路线安排api112)相关联的visitrequestalternates数据结构1010的示例集合的框图。可以在包括例如用户设备102、模型数据提供者104和/或计算设备302的一个或多个计算设备或计算系统上执行或实现一个或多个visitrequestalternates数据结构1010。一个或多个visitrequestalternates数据结构1010可以被执行或实现为在本文公开的设备的硬件组件上的算法。

visitrequestalternates数据结构1010(例如,visitrequestalternates消息)可以与一个或多个数据结构相关联或包括一个或多个数据结构,该数据结构包括可以与协议缓冲器相关联的类、各种对象或消息。与visitrequestalternates数据结构1010相关联的一个或多个数据结构可以与可以由车辆执行的访问相关联。visitrequestalternates数据结构1010可以与visitrequest数据结构1020(例如,visitrequest消息)相关联或包括一个或多个visitrequest数据结构1020,visitrequest数据结构1020可以包括visit_requests字段1022。

visitrequestalternates数据结构1010可以与访问请求集合相关联,访问请求集合可以与visitrequestalternates消息1020和visit_requests字段1022相关联。与visitrequest数据结构1020相关联的每个访问请求和visit_requests字段1022都代表车辆到某个位置的一个逻辑访问。在一个实现方式中,访问请求的实现通过车辆对访问请求集合中的一个的执行来满足。

visitrequestalternates数据结构1010的示例实现提供如下:

messagevisitrequestalternates{

repeatedvisitrequestvisit_requests=1;

}

图11描绘了根据本公开的示例实施例的可以与api(例如,路线安排api112)相关联的visitrequest数据结构1110的示例集合的框图。可以在包括例如用户设备102,模型数据提供者104和/或计算设备302的一个或多个计算设备或计算系统上执行或实现一个或多个visitrequest数据结构1110。一个或多个visitrequest数据结构1110可以被执行或实现为在本文中所公开的设备的硬件组件上的算法。

visitrequest数据结构1110(例如,visitrequest消息)可以与一个或多个数据结构相关联或包括一个或多个数据结构,该数据结构包括可以与协议缓冲器相关联的类、各种对象或消息。与visitrequest数据结构1110相关联的一个或多个数据结构可以与要在运送位置执行的访问相关联。visitrequest数据结构1110可以与以下各项中的一个或多个相关联或包括以下各项中的一个或多个:timewindow数据结构1120(例如,timewindow消息),可以包括一个或多个time_windows字段1122;持续时间数据结构1130(例如,持续时间消息);持续时间字段1132;arrival_location字段1140;departure_location字段1142;arrival_index字段1144;departure_index字段1146;start_timefield字段1148;end_time字段1150;soft_end_time字段1152;和/或cost_per_hour_after_soft_end_time字段1154。

timewindow数据结构1120可以用于表示一个或多个时间窗,时间窗基于与time_windows字段1122相关联的值来约束车辆的访问。time_windows字段1122可以指示多个时间窗(例如,预定义时间段),时间窗可以与各种事件相关联,这些事件包括车辆在运送位置的到达时间(例如,与start_time字段1148相关联的到达时间)、车辆在运送位置的出发时间(例如,与end_time字段1150相关联的出发时间)和/或软结束时间(例如,与soft_end_time字段1152相关联的软结束时间)。

持续时间数据结构1130可以用于基于与持续时间字段1132相关联的值来表示访问的持续时间。例如,车辆到某个位置的访问的持续时间可以基于车辆到达位置和出发位置之间的运输途中所花费的时间,以及车辆等待提取或放下运送所花费的时间。

arrival_location字段1140可以与当进行到运送位置的访问(例如,车辆执行对指定位置的访问)时车辆到达的位置(例如,地理位置或纬度/经度)相关联。

departure_location字段1142可以与车辆的位置(例如,地理位置或纬度/经度)相关联,该位置包括车辆在完成访问之后出发的位置。在一个实现方式中,当department_location字段1142与和arrival_location字段1144相同的值(例如,位置)相关联时,可以省略。在一个实现方式中,当,arrival_location字段1140和/或department_location字段1142与具有不同出口和入口位置的地理位置相关联时,arrival_location字段1140和/或department_location字段1142可以包括不同的值。

arrival_index字段1144可以用于确定(例如,从数据库中检索)车辆从先前出发位置到达某个位置的时间。departure_index字段1146可以用于确定(例如,从数据库中检索)车辆从一个位置出发到下一到达位置的时间。

start_time字段1148可以指定到达某个位置的时间。end_time字段1150可以指定车辆可以从某个位置出发的时间。在一个实现方式中,start_time字段1148和/或end_time字段1150可以与soft_end_time字段1152相关联。soft_end_time字段1152可以指定车辆在与soft_end_time字段1152相关联的时间或之前到达某个位置的时间。当车辆在soft_end_time字段1152指定的时间到达某个位置时,车辆可能会产生与cost_per_hour_after_soft_end_time字段1154相关联的成本。

visitrequest数据结构1110的示例实现提供如下:

图12描绘了根据本公开的示例实施例的为软件应用生成导航数据的示例方法1200的流程图。方法1200的一个或多个部分可以使用例如图4-图11中描绘的api112来实现。此外,方法1200的一个或多个部分可以在包括例如用户设备102、模型数据提供者104和/或计算设备302的一个或多个计算设备或计算系统上执行或实现。方法1200的更多部分还可以被执行或实现为本文公开的设备的硬件组件上的算法。为了说明和讨论的目的,图12描绘了以特定顺序执行的步骤。使用本文提供的公开内容的本领域普通技术人员将理解,在不脱离本公开内容的范围的情况下,可以对本文公开的任何方法的各个步骤进行调整,修改,重新布置,省略和/或扩展。

在1202,方法1200可以包括:接收可以包括行程优化数据的数据。行程优化数据可以从一个或多个计算设备(例如,本地计算设备或远程计算设备)接收,并且可以通过计算设备与本地存储设备的内部互连或者通信网络(例如,包括lan、wan或internet的无限或有线网络)接收,通过远程计算设备可以通过该通信网络交换一个或多个信号(例如,电子信号)或数据。此外,行程优化数据可以基于从一个或多个传感器设备接收的数据,该传感器设备可以与一个或多个设备(例如,车辆)或位置(例如,运送位置)相关联。例如,行程优化数据可以基于从配置有一个或多个传感器的多个运送位置接收的实时数据,以监视相应多个位置处的车辆或运送状态。

行程优化数据可以包括一个或多个数据结构(例如,消息),数据结构包括与应用编程接口相关联的行程优化数据结构。行程优化数据可以指定多个消息,这些消息可以包括一个或多个字段,这些字段可以与运送集合和车辆集合相关联。多个消息和一个或多个字段可以指示运送集合和车辆集合的状态,包括运送集合和车辆集合的相应性质或属性。

在一个实现方式中,行程优化数据可以部分基于shipmentmodel数据结构(例如,图6中的shipmentmodel数据结构610)或shipmentmodel消息,并且可以包括一个或多个运送数据结构(例如,图6中的运送数据结构630)或运送消息、运送字段(例如,图6中的运送字段632)、一个或多个车辆数据结构(例如,图6中的车辆数据结构620)车辆消息、车辆字段(例如,图6中的车辆字段622)、行驶持续时间秒数字段(例如,图6中的travel_duration_seconds字段640)、全局开始时间字段(例如,图6中的global_start_time字段642)、全局结束时间字段(例如,图6中的global_end_time字段644)或全局持续时间的每小时成本字段(例如,图6中的thecost_per_hour_of_global_duration646)。

在一个实现方式中,一个或多个运送消息和/或一个或多个车辆消息的一部分可以与一个或多个capacityquantity数据结构(例如,图9所示的capacityquantity数据结构910)或capacityquantity消息相关联,并且可以包括类型字段或值字段(例如,图9所示的相应的类型字段912和值字段914)。类型字段可以与运送集合所要求的量或车辆集合所承载的量的类型相关联。值字段可以与运送集合所要求的量或一组车辆所承载的量相关联。此外,可以通过与类型字段相关联的量的类型或与值字段相关联的量的数量来约束运送集合和车辆集合。

在一个实现方式中,一个或多个车辆数据结构(例如,图7所示的车辆数据结构710)或车辆消息可以包括一个或多个capacityquantity数据结构(例如,图7所示的capacityquantity数据结构720)或capacityquantity消息、容量字段(例如,图7中所示的容量字段722)、出发位置字段(例如,图7中所示的departure_location字段730)、到达位置字段(例如,图7所示的arrival_location字段732)、出发索引字段(例如,图7所示的derivation_index字段734)、到达索引字段(例如,图7所示的arrival_index字段736)、最早开始时间字段(例如,图7所示的earliest_start_time字段738)、最后结束时间字段(例如,图7所示的latest_end_time字段740)、每小时成本字段(例如,图7所示的cost_per_hourfield字段742)、每小时行驶成本字段(例如,图7所示的cost_per_traveled_hour字段744)或固定成本字段(例如,图7所示的fixed_cost字段746)中的至少一个。

在一个实现方式中,一个或多个运送数据结构(例如,图8所示的运送数据结构810)或运送消息中的每一个可以包括一个或多个capacityquantity消息(例如,图8所示的capacityquantity数据结构820)、一个或多个visitrequestalternates消息(例如,图8所示的visitrequestalternates数据结构830)、提取字段(例如,图8所示的提取字段832)、交付字段(例如,图8所示的交付字段834)、需求字段(例如,图8中所示的需求字段822)、惩罚成本字段(例如,图8中所示的刑罚成本字段840)和/或允许车辆索引字段(例如,图8中所示的allowed_vehicle_indices842)中的至少一个。一个或多个capacityquantity消息可以与需求字段相关联,并且一个或多个visitrequestalternates消息可以与提取字段或交付字段相关联。此外,一个或多个visitrequestalternates数据结构(例如,图10所示的visitrequestalternates数据结构1010)中的每一个或visitrequestalternates消息可以与一个或多个visitrequest消息(例如,图10所示的visitrequest数据结构1020)或访问请求字段(例如,图10中所示的visit_requests字段1022)相关联或包括一个或多个visitrequest消息(例如,图10所示的visitrequest数据结构1020)或访问请求字段(例如,图10中所示的visit_requests字段1022)。

一个或多个visitrequest数据结构(例如,图11所示的visitrequest数据结构1110)或visitrequest消息可以包括timewindow数据结构(例如,图11所示的timewindow数据结构1120)或timewindow消息、持续时间消息(例如,图11所示的持续时间数据结构1130)、与持续时间消息相关联的持续时间字段(例如,图11所示的持续时间字段1132)、与timewindow消息相关联的时间窗字段(例如,图11所示的time_windows字段1122)、与持续时间消息相关联的持续时间字段、到达位置字段(例如,图11所示的arrival_location字段1140)、出发位置字段(例如,图11所示的department_location字段1142)、到达索引字段(例如,图11所示的arrival_index字段1144)、出发索引字段(例如,图11所示的department_index字段1146)、开始时间字段、结束时间字段、软结束时间字段和/或软结束时间字段之后的每小时成本(例如,图11中所示的visitrequest消息)。

此外,timewindow消息可以与开始时间字段(例如,图11所示的start_time字段1148)、结束时间字段(例如,图11所示的end_time字段1150)、软结束时间字段(例如,图11所示的soft_end_time字段1152)和/或软结束时间之后的每小时成本(例如,图11所示的cost_per_hour_after_soft_end_time字段1154)相关联。在一些实现方式中,运送集合和车辆集合可以由capacityquantity消息或timewindow消息中的一个或多个约束。

在1204,方法1200可以包括生成模型数据。模式数据可以由处理模型数据的一个或多个计算设备生成(例如,基于模型数据的性质或属性执行计算)。模型数据可以部分基于对与多个消息相关联的建模功能的一个或多个调用(例如,实现诸如图1中的路线安排api112的api的功能)。多个消息可以与建模功能相关联,并且包括与运送集合相关联的一个或多个运送消息和/或与车辆集合相关联的一个或多个车辆消息。例如,模型数据可以包括运送模型,该运送模型包括与各种容量、到达时间、出发时间以及与shipmentmodel的消息和字段相关联的其他性质相关联的多个车辆和多个运送。

在1206,方法1200可以包括由一个或多个计算设备生成部分基于模型数据为软件应用的用户生成路线安排数据。路线安排数据可以包括部分基于运送集合和车辆集合的路线集合。例如,从模型数据生成的运送模型可以包括多个车辆和多个运送。路线数据可以包括多个路线(例如,在包括提取位置和放下位置的运送位置之间的车辆的行驶路线)。

在一个实现方式中,路线安排数据可以根据一个或多个路线安排标准包括最优路线集合,该一个或多个路线安排标准可以基于与模型数据相关联的消息和字段的状态(例如,与时间窗消息相关联的时间约束和关联的时间窗字段或与capacityquantity消息相关联的容量约束和关联的类型字段和值字段。此外,路线安排数据的生成可以包括对模型数据的各个部分的比较和评估,包括确定满足一个或多个路线安排选择标准的模型数据的各方面。

在1208,方法1200可以包括生成与行程优化服务相关联的图形用户界面分量。图形用户界面可以包括文本或图形的组合,可以向软件应用的用户显示包括模型数据或路线安排数据的数据表示。此外,可以在具有可以从用户接收输入(例如,触摸输入或语音输入)以查看路线安排数据的各个部分的物理接口的计算设备(例如,智能电话)上生成图形用户界面分量。此外,图形用户界面分量可以接收输入以便生成,修改或处理与模型数据或路线安排数据相关联的数据(例如,基于不同的数据集选择运送标准或生成不同的模型)。

本文讨论的技术参考服务器、数据库、软件应用和其他基于计算机的系统,以及对此类系统采取的行动以及向此类系统发送的信息和来自此类系统的信息。本领域普通技术人员将认识到,基于计算机的系统的固有灵活性允许组件之间的任务和功能的多种可能的配置、组合和划分。例如,可以使用单个服务器或组合工作的多个服务器来实现本文讨论的服务器处理。数据库和应用可以在单个系统上实现,也可以分布在多个系统上实现。分布式组件可以顺序或并行运行。

尽管已经针对本主题的特定示例实施例详细描述了本主题,但是应当理解,本领域技术人员在对前述内容的理解之后,可以容易地对这些实施例进行更改、变型和等同。因此,本公开的范围是作为示例而不是作为限制,并且本公开不排除包括对本主题的这种修改,变型和/或添加,这对于本领域普通技术人员是显而易见的。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1