提供车辆导航模拟环境的方法和装置与流程

文档序号:23313574发布日期:2020-12-15 11:45阅读:206来源:国知局
提供车辆导航模拟环境的方法和装置与流程

优先权信息

本申请要求于2018年5月3日提交的题为“methodanddeviceforprovidingvehiclenavigationsimulationenvironment”(提供车辆导航模拟环境的方法和装置)的美国非临时申请号15/970,414的优先权的权益,其内容通过引用合并于此。

本申请一般涉及用于提供车辆导航模拟环境以及提供车辆导航的方法和装置。



背景技术:

车辆调度平台可以自动将运输请求分配给相应的车辆以提供运输服务。运输服务可以包括运输单个乘客/乘客组或多个乘客/乘客组拼车。每个车辆司机提供的运输服务均会得到奖励。对于车辆司机来说,重要的是最大化他们在街上花费时间的奖励。



技术实现要素:

本申请的各种实施例可以包括:用于提供车辆导航模拟环境的系统、方法和非暂时性计算机可读介质。根据一个方面,一种用于提供车辆导航模拟环境的示例性方法可以包括,在一段时间内递归执行步骤(1)-(4):(1)向模拟主体提供模拟环境的一个或多个状态,其中:所述模拟主体包括模拟车辆,以及,所述状态包括模拟车辆的第一当前时间和第一当前位置;(2)当所述模拟车辆达到里程碑时,获得所述模拟车辆的动作,其中:所述动作包括:在所述模拟车辆的所述第一当前位置处等待,在乘客组a的运输起点处接载乘客组a,并在乘客组b的运输目的地放下乘客组b,所述乘客组a和乘客组b各自包含一个或多个乘客,并且所述里程碑是任何乘客组的运输的起点或终点;(3)确定对所述动作的所述模拟车辆奖励;以及(4)基于所述动作更新所述一个或多个所述状态,以获得用于提供给所述模拟车辆的一个或多个更新状态,其中,所述更新状态包括所述模拟车辆的第二当前时间和第二当前位置。

根据另一方面,本申请提供一种存储指令的非暂时性计算机可读存储介质,该指令由一个或多个处理器执行,用于提供车辆导航模拟环境。所述方法包括在一段时间内递归执行步骤(1)-(4)。

根据另一方面,本申请提供一种提供车辆导航的方法。包括:确定真实车辆的当前位置;以及响应于确定所述真实车辆已经达到一个里程碑,所述里程碑是任何乘客组的运输的起点或目的地,至少基于经训练的策略提供的指令,以使所述真实车辆的累积奖励最大化。所述提供的指令包括:在所述当前位置等待、在乘客组a的所述运输起点处接载所述乘客组a、在乘客组b的所述运输目的地放下所述乘客组b。所述乘客组a和所述乘客组b各自包括一个或多个乘客。在所述乘客组a的所述运输起点接载所述乘客组a的指令包括:当所述真实车辆上载有第一乘客组时,则接载第二乘客组。运送所述第一乘客组和所述第二乘客组花费的总和最少:(路线选项1)的乘客总额外乘车时间和(路线选项2)的乘客总额外乘车时间。所述(路线选项1)包括:接载所述第二乘客组、放下乘客组p、放下所述第二乘客组。所述(路线选项2)包括:接载所述第二乘客组、放下所述第二乘客组、放下所述第一乘客组。与一组一组接送且无拼车相比,所述(路线选项1)的所述乘客总额外乘车时间是由所述模拟车辆按照所述(路线选项1)运送所述第一乘客组和所述第二乘客组所花费的额外时间的总和。与一组一组接送且无拼车相比,所述(路线选项2)的所述乘客总额外乘车时间是由所述模拟车辆按照所述(路线选项2)运送所述第一乘客组和所述第二乘客组所花费的额外时间的总和。

在此公开的系统、方法和非暂时性计算机可读介质的这些和其他特征,以及相关结构要素的操作和功能以及零件和制造经济性的结合将变得更加明显。参照附图考虑以下描述和所附权利要求,所有这些均形成了本说明书的一部分,其中,相同的附图标记在各个附图中表示相应的部分。然而,应当明确地理解,附图仅出于说明和描述的目的,并且不意味着是对本发明范围的限定。

附图说明

在所附权利要求中具体阐述了本技术的各种实施例的某些特征。通过参考下面的详细描述,可以更好地理解本技术的特征和优点,所述详细描述阐述了说明性实施例,在其中利用了本发明的原理,并结合了附图:

图1是根据本申请的一些实施例所示的用于提供车辆导航模拟环境的示例性环境。

图2是根据本申请的一些实施例所示的用于提供车辆导航的示例性环境。

图3a是根据本申请的一些实施例所示的示例性强化学习框架。

图3b-3d是根据本申请的一些实施例所示的用于提供车辆导航模拟环境的示例性算法。

图3e是根据本申请的一些实施例所示的用于拼车的示例性路线选项。

图4a是根据本申请的一些实施例所示的用于提供车辆导航模拟环境的示例性方法的流程图。

图4b是根据本申请的一些实施例所示的用于提供车辆导航的示例性方法的流程图。

图5是根据本申请的一些实施例所示的示例计算机系统的框图。

具体实施方式

车辆平台可以提供运输服务。这种车辆平台也可以被称为车辆呼叫或车辆调度平台,其可以通过诸如安装有平台应用程序的移动电话之类的设备来访问。通过该应用程序,用户(运输请求者)可以将运送请求(例如,上车位置、目的地)发送到车辆平台。车辆平台可以将请求转达给车辆司机。车辆司机可以从接受的请求中选择,根据接受的请求接送乘客,并相应地获得奖励。每个运输请求可以包括该乘客组是否开放拼车的指示。有时,两个或以上开放拼车的乘客/乘客组可能会在一定的行程距离内共享同一辆车。

现有平台仅提供当前运输请求的基本信息,司机无法通过这些信息来确定最大化其收入的最佳策略(例如,谁来接送、是否接受拼车)。或者,如果平台自动将车辆与服务请求者匹配,则仅基于简单条件匹配,例如:距离最近。此外,利用当前技术,当乘车拼车时,司机无法确定最佳路线。因此,为了帮助司机最大化他们的收入和/或帮助乘客最小化他们的乘车时间,对于车辆平台而言重要的是提供可以改善车辆服务的自动决策功能。

本申请的各种实施例包括用于提供车辆导航模拟环境的系统、方法和非暂时性计算机可读介质,以及用于提供车辆导航的系统、方法和非暂时性计算机可读介质。所提供的车辆导航模拟环境可以包括用于训练有助于最大化车辆司机奖励和/或最小化乘客乘车时间的策略的模拟器。所提供的车辆导航可以基于经训练的策略以在真实情况下指导真实的车辆司机。

本申请所公开的系统和方法提供了用于构造车辆导航环境(也被称为模拟器)的算法,该车辆导航环境用于基于历史数据(例如,关于时间和位置的各种历史旅程和奖励)来训练算法或模型。根据训练,算法或模型可以提供经训练的策略。经训练的策略可以使车辆司机的奖励最大化,使乘客的时间成本最小化,车辆平台的效率最大化,车辆服务的效率最大化和/或根据训练来优化其他参数。可以将经训练的策略部署在平台的服务器上和/或驱动程序使用的计算设备上。

图1是根据本申请的一些实施例所示的用于提供车辆导航模拟环境的示例性环境100。如图1所示,示例性环境100可以包括至少一个计算系统102a,其包括一个或多个处理器104a和存储器106a。处理器104a可以包括cpu(中央处理单元),gpu(图形处理单元)和/或替代处理器或集成电路。存储器106a可以是非暂时性的并且是计算机可读的。存储器106a可以存储指令,该指在由一个或多个处理器104a执行时,一个或多个处理器104a执行本文所述的各种操作。系统102a可以在诸如服务器、计算机等的各种设备上或作为其实现。系统102a可以安装有适当的软件和/或硬件(例如,电线、无线连接等)以访问环境100的其他设备。在一些实施例中,本文公开的车辆导航环境/模拟器可以作为算法存储在存储器106a中。

环境100可以包括系统102a可访问的一个或多个数据存储(例如,数据存储108a)和一个或多个计算设备(例如,计算设备109a)。在一些实施例中,系统102a可以用于从数据存储108a(例如:历史乘车数据的数据库或数据集)和/或计算设备109a(例如:计算机、服务器、司机或乘客使用的用于获取如时间、位置和费用等交通出行信息的移动电话)来获取数据(例如:历史乘车数据)。系统102a可以使用获得的数据来训练用于车辆导航的算法或模型。该位置可以包括车辆的gps(全球定位系统)坐标。

图2是根据本申请一些实施例所示的用于提供车辆导航的示例性环境200。图2是根据本申请一些实施例所示的用于提供车辆导航模拟环境的示例性环境200。如图2所示,示例性环境200可以包括至少一个计算系统102b,其包括一个或多个处理器104b和存储器106b。存储器106b可以是非暂时性的并且是计算机可读的。存储器106b可以存储指令,该指令由一个或多个处理器104b执行时,一个或多个处理器104b执行本文所述的各种操作。系统102b可以在诸如移动电话、服务器、计算机、可穿戴设备(智能手表)等的各种设备上实现或实现为各种设备。系统102b可以安装有适当的软件和/或硬件(例如,电线、无线连接等)以访问环境200的其他设备。

系统102a和系统102b可以对应于相同系统或不同系统。处理器104a和处理器104b可以对应于相同处理器或不同处理器。存储器106a和存储器106b可以对应于相同的存储器或不同的存储器。数据存储108a和数据存储108b可以对应于相同的数据存储或不同的数据存储。计算设备109a和计算设备109b可以对应于相同的计算设备或不同的计算设备。

环境200可以包括系统102b可访问的一个或多个数据存储(例如,数据存储108b)和一个或多个计算设备(例如,计算设备109b)。在一些实施例中,系统102b可以用于从数据存储108b和/或计算设备109b获得数据(例如,地图、位置、当前时间、天气、交通、司机信息、用户信息、车辆信息、交易信息等)。该位置可以包括车辆的gps坐标。

尽管在该图中被示为单个组件,但是应当理解,系统102b、数据存储108b和计算设备109b可以被实现为单个设备或耦合在一起的两个或以上设备,或者它们中的两个或以上可以集成在一起。系统102b可以是彼此耦合的单个系统或多个系统。通常,系统102b、计算设备109b、数据存储108b以及计算设备110和计算设备111可以通过一个或多个有线或无线网络(例如,互联网)相互通信,数据可以通过该有线或无线网络进行通信。

在一些实施例中,系统102b可以是在线信息或服务平台。该服务可以与车辆(例如,汽车、自行车、轮船、飞机等)相关联,并且该平台可以被称为车辆(服务招募或乘车指令分派)平台。该平台可以接受运输请求、识别满足请求的车辆、安排接送和处理交易。例如,用户可以使用计算设备111(例如,安装有与平台相关联的软件应用程序的移动电话)从平台请求运输。系统102b可以接收该请求并将其转发给各种车辆司机(例如,通过将请求发布到司机携带的移动电话上)。车辆司机中的一个可以使用计算设备110(例如,另一台安装有与平台相关联的应用程序的移动电话)来接受发布的运输请求并获得上车位置信息。同样,可以处理来自多个乘客/乘客组的拼车请求。费用(例如,运输费)可以在系统102b与计算设备110和计算设备111之间进行交易。司机可以因为提供运输服务得到补偿。一些平台数据可以存储在存储器106b中,或者可以从数据存储108b和/或计算设备109b、计算设备110和计算设备111中获得。

环境100可以进一步包括耦合到系统102b的一个或多个计算设备(例如,计算设备110和计算设备111)。计算设备110和计算设备111可以包括诸如手机、平板电脑、计算机、可穿戴设备(智能手表)等的设备。计算设备110和计算设备111可以向系统102b发送数据或从系统102b接收数据。

参考图1和图2,在各种实施例中,环境100可以训练模型以获得策略,并且环境200可以实施经训练的策略。例如,系统102a可以从数据存储108和/或计算设备109获得数据(例如,训练数据)。训练数据可以包括乘客/乘客组的历史行程。每个历史行程可以包括上车位置、上车时间、下车位置、下车时间、费用等信息。所获得的数据可以存储在存储器106a中。系统102a可以利用获得的数据训练模型,或者利用获得的数据训练算法以学习用于车辆导航的模型。在后一示例中,在不提供状态转换概率模型和/或值函数模型的情况下学习模型的算法可以被称为无模型强化学习(rl)算法。通过模拟,可以训练rl算法以提供可以在实际设备中实现的策略,以帮助司机做出最佳决策。

图3a是根据本申请一些实施例所示的一种示例性强化学习框架。如该图所示,对于示例性的rl算法,软件主体301在“环境”302(或被称为“模拟器”)中采取行动,以最大化该主体的“奖励”。主体和环境以不连续的时间步长进行交互。在训练中,在时间t,主体观察系统状态(例如,状态st),产生动作(例如,在at处的动作),并获得结果奖励(例如,奖励rt+1)和下一个状态(例如,状态st+1)。相应地,在时间t,环境向主体提供一个或多个状态(例如,状态st),获得主体所采取的动作(例如,动作at),推进状态(例如,状态st+1),并且确定奖励(例如,奖励rt+1)。关于车辆服务情况,该训练可以与模拟车辆驾驶员在当前位置等待、接载乘客组或放下乘客组(主体的行为)、关于时间(与各状态相比较)、车辆和客户位置的移动(与各状态相比较)、收益(与奖励相比较)等的决定相媲美。每个乘客组可以包括一个或多个乘客。仅当车上没有乘客时,才在当前位置等候。仅当车辆未达到其最大容量(载客量)时,才可以接载特定的乘客组。仅在车上至少有一名乘客时才能放下乘客组。

回到模拟,为了产生控制每个步骤决策的最佳策略,可以估算司机的相应状态-动作价值函数。价值函数可以显示相对于长期目标在一天中的特定位置和时间做出的决策的优势(例如,最大化收益)。在每个步骤中,基于环境提供的状态,主体执行动作(例如,等待、接载乘客组、放下乘客组),并且基于环境,主体接收奖励和更新状态。即,主体从一组可用动作中选择一个动作,并且主体移动到新状态,并为该动作确定与转变相关联的奖励。转变可以递归执行,主体的目标是获得尽可能多的奖励。

对于模拟,rl算法基于马尔可夫决策过程(mdp)。mpd可以取决于可观察的状态空间s、动作空间a、状态转变概率、奖励函数r、开始状态和/或奖励折扣率,下面进行详细描述。状态转变概率和/或奖励函数r可以是已知的或未知的(即无模型方法)。

状态s:模拟环境的状态可以包括位置和/或时间信息。例如,位置信息可以包括模拟车辆的地理坐标和时间(例如,以秒为单位的一天中的时间):s=(l,t),其中l是gps坐标对(纬度,经度),t是时间。s可能包含表征时空空间(l,t)的其他特征。

动作a:动作是分配给司机的,分配可以包括:在当前位置等待、接载某个乘客/乘客组、放下某个乘客/乘客组。关于运输的分配可以由(一个或多个)上车位置、(一个或多个)接送时间点、(一个或多个)下车位置和/或(一个或多个)下放时间点来定义。

奖励r:奖励可以包括多种形式。例如,在模拟中,奖励可以由基于距离确定的名义上的数量表示。为该动作确定对模拟车辆的奖励包括:确定在第一当前位置处等待的模拟车辆的奖励为零;将在乘客组a的运输起点处对接载乘客组a的模拟车辆的奖励确定为零;然后根据从乘客组b的运输起点到乘客组b的运输目的地的理论行驶距离,确定模拟车辆在乘客组b的运输目的地放下乘客组b的奖励。即,奖励可以在乘客组下车时发出,并且基于乘客组所请求的出发地和目的地之间的运输距离来确定,就好像该乘客组是由车辆独自运输一样(例如,从乘客组出发地到目的地的运送理论距离,而无需考虑因上下另一个乘客组而产生的弯路)。在现实生活中,奖励可能与运送的总费用有关,例如司机为每次运送获得的补偿。平台可以基于行进的距离(例如,相同的理论行进距离)或其他参数来确定这种补偿。

情节:情节可以包括任何时间段,例如从0:00am到23:59pm的一整天。因此,终端状态是t分量对应于23:59pm的状态。或者,可以使用一段时间内的其他情节定义。

策略:将状态映射到操作空间(例如,随机策略)或特定操作(例如,确定性策略)上的分布的功能。

在各种实施例中,就累积奖励而言,来自rl的经训练的策略优于现有的决策数据和其他策略。可以使用历史乘客群体的出行历史数据来训练模拟环境,例如给定城市内的历史出租车出行数据集。历史数据可用于引导用于模拟的样本乘客行程请求。例如,给定一个月的出行数据,为模拟运行生成一整天的出行的一种可能方法是在一个月中给定的一周中的每一天中每小时采样四分之一的出行。对于另一个示例,可以假设在司机将乘客送至目的地后,从目的地附近将其分配给新的出行请求。根据下面描述的动作搜索和/或路线确定等,可以通过给定策略选择模拟车辆的动作,该策略可以包括产生费用的行程、等待动作等。可以针对多个情节(例如,天)运行模拟,并且可以计算得到的累积奖励并平均化这些情节。

图3b-3e是根据本申请的一些实施例所示的用于提供环境的详细算法。环境可以支持各种模式。在按需模式下,模拟车辆不必事先知道来自乘客的运输请求。按照rl术语,司机(主体)的状态可能包含(位置,时间)对、主体的动作、以及在执行每个动作后收集的奖励。

在一些实施例中,用于提供车辆导航模拟环境的示例性方法可以包括在一段时间内递归执行步骤(1)-(4)。步骤(1)-(4)可以包括:(1)向模拟主体提供模拟环境的一个或多个状态,其中:模拟主体包括模拟车辆,并且状态包括模拟车辆的第一当前时间和第一当前位置;(2)当模拟车辆达到里程碑时,获得模拟车辆的动作,其中:所述动作选自:在模拟车辆的第一当前位置处等待、在乘客组的运输起点处接载乘客组a、并在乘客组b的运输目的地放下乘客组b,乘客组a和乘客组b各自包含一个或多个乘客,里程碑是任何乘客组的运输的起点或终点;(3)确定对该动作的模拟车辆的奖励;(4)基于该动作来更新一个或多个状态,以获得用于提供给模拟车辆的一个或多个更新状态,其中,更新状态包括模拟车辆的第二当前时间和第二当前位置。

在一些实施例中,“乘客组”用于区分从不同位置接送和/或在不同位置下车的乘客。如果乘客共享相同的上车位置和下车位置,则他们可能属于同一乘客组。每个乘客组可以仅包括一个乘客或多个乘客。此外,模拟车辆可容纳k位乘客,并且在运送的任何时间,车上乘客总数不得超过k。在申请中提到乘客时,不包括司机。

在一些实施例中,在按需模式中,在每个里程碑处将在当前位置等待、接载乘客组a或者放下乘客组b的动作分配给模拟车辆。主体可以学习策略,以确定每个里程碑处的最佳操作。下面参考相应的算法详细描述各种动作。对于rl训练,在情节开始时,d0是车辆的初始状态s0=(l0,t0),而车辆运输旅行的实际起点是o1,而so1=(lo1,to1)是接载第一位乘客时车辆处于的中间状态。此类表示法和类似术语在以下算法中使用。

图3b是根据本申请的一些实施例所示的用于提供车辆导航模拟环境的示例性算法1。图3b中示出并在下面呈现的操作是示例性的。

在一些实施例中,模拟司机可以在每个行程里程碑(在ok或dk时,其中k=0、1、2,...,k是最大乘客,车辆的载客量或载客量)处做出等待、接载、放下的决策。可以使用当时产生的乘客请求数据(用于训练和实际实施)做出决定。也就是说,在整个行程开始之前不必知道请求。在采取动作之前,模拟车辆/司机的状态可以包括第一当前时间和第一当前位置。在采取动作之后,模拟车辆/司机的状态可以包括第二当前时间和第二当前位置。

在一些实施例中,算法1可以包括以下步骤:给定当前在车上的k个乘客组,如果仍然有至少一个空座位可用(参见算法1的第3行),则司机可以执行以下三个动作之一:

(1)等待(请参阅算法1的第5行):仅当k=0(即车上没有乘客)时,此操作才可用。下面参考图3c中的算法2描述此操作的详细步骤。在一些实施例中,为了最大化对司机的奖励,仅当模拟车辆在车上没有乘客时,模拟车辆才执行在模拟车辆的第一当前位置处等待的动作。如果动作是在模拟车辆的当前位置处等待,则第二当前时间是与第一当前时间加上时间段相对应的当前时间,并且第二当前位置与第一当前位置相同。

(2)接载(参见算法1的第6-10行):车辆前往ok+1来接载乘客组a,k←k+1。如果该动作是在乘客组a的运输起点处接载乘客组a,则第二当前时间是与接载乘客组a相对应的当前时间,第二当前位置是乘客组a的运输起点。

(3)放下(参见算法1的第11-14行):模拟司机使用与图3d和图3e类似的路线规划确定要下车的车上乘客k′(也被称为乘客组b)。车辆移至dk′,k←k+1。在一些实施例中,当模拟车辆上的乘客达到最大容量时,模拟车辆仅执行在乘客组b的目的地放下乘客组b的动作。即,当k=k时,只能采取放下动作,而不能采取等待或接载动作。如果该动作是在乘客组b的运输目的地放下乘客组b,则第二当前时间是与放下乘客组b对应的当前时间,第二当前位置是乘客组b的运输目的地。

每个动作都可能导致状态转换(车辆位置和/或时间的变化)。如果没有空位,则司机执行与上述相同的放下动作(请参阅算法1的15-18行)。

同样在图3b的算法1中,s存储车辆的当前位置和/或当前时间,m是存储缓冲区,用于存储当前车载乘客或乘客组(例如,以起点-终点对的形式),n是模拟所需的最大步数。m+(o,d)表示与始发地o和目的地d相关联的乘客组,添加到内存缓冲中,m\(o,d)表示与始发地o和目的地d相关联的乘客组,从内存缓冲中删除。子过程selectpickup()和selectdropoff()可以配置为通常用于模拟或实际应用。在一些实施例中,selectpickup()将当前位置s和未完成订单集合d作为输入,并返回下一个要接载的乘客,而selectdropoff()将当前位置s和车载内存m作为输入,并返回下一个需要放下的乘客。在一个简单的示例中,select-pickup()可以提取最近的乘客订单,而selectdropoff()可以放下目的地最接近s的乘客。也就是说,在第一当前时间,模拟车辆的请求接收到的所有乘客组运输的所有起点中,乘客组a的运输的起点可能最接近第一当前位置,并且乘客组b的运输的终点可以是是第一当前时间在模拟车辆的所有车载乘客组的所有目的地中最接近第一当前位置的位置。

在一些实施例中,对于每个动作转变返回的奖励是有效行程距离-该乘客被放下的原始个人行程的行程距离(例如,仅用于将乘客从其请求的出发地运送到其请求的目的地的理论距离))。因此,为该动作确定对模拟车辆的奖励包括:将在模拟车辆的第一当前位置处等待的模拟车辆的奖励确定为零;将在乘客组a的运输起点接载乘客组a的模拟车辆的奖励确定为零;然后根据从乘客组b的运输起点到乘客组b的运输目的地的理论行驶距离,确定模拟车辆在乘客组b的运输目的地放下乘客组b的奖励。

图3c是根据本申请的一些实施例所示的用于提供车辆导航模拟环境的示例性算法2。图3c中示出并在下面呈现的操作旨在进行说明。

算法2可以对应于等待动作(w)。也就是说,m=0,并且模拟车辆被分配在其当前位置等待而不接任何乘客组。当在状态s0=(l0,t0)下将等待动作分配给车辆时,当时间t0以td增加时,车辆停留在当前位置l0。因此,司机的下一个状态将是(l0,t0+td)(请参阅算法2的第4行)。即,如果步骤(2)中的动作是在模拟车辆的当前位置处等待,则第二当前时间是与第一当前时间加上时间段td相对应的当前时间,并且第二当前位置是与第一个当前位置相同。

图3d是本申请的一些实施例所示的用于提供车辆导航模拟环境的示例性算法3。图3d中示出并在下面呈现的操作是示例性的。

在一些实施例中,如果两个或以上乘客组在车上,则经训练的策略可以进一步确定放下真实车辆上乘客组的顺序。例如,可以假定第一乘客组(要求从起点o1到目的地d1乘坐)和第二乘客组(要求从起点o2到目的地d2乘坐)在模拟车辆上。确定第二个乘客组的选择。可以确定第一乘客组和第二乘客组中哪个先下车。在一些实施例中,在乘客组a的运输起点处接载乘客组a的动作包括,当模拟车辆的车上具有第一乘客组时,接送第二乘客组。在第一乘客组上车后,模拟车辆可能会收到多个请求,并且可能需要选择第二乘客组与第一乘客组拼车。可以基于当前策略下的最小值(texti+textii)确定第二乘客组。下面参考图3e中所示的相关路径选项来讨论texti和textii。

图3e是根据本申请的一些实施例所示的用于拼车的示例性路线选项。图3e中示出并在下面呈现的操作是说明性的。图3e显示了两种可能的路线问题解决方案。也就是说,在将第一个乘客组(要求从起点o1到目的地d1乘坐)和第二个乘客组(要求从起点o2到目的地d2乘坐)拼车后,模拟车辆可以按照:

在图3e中将d0→o1→o2→d1→d2显示为路径i,

或者

在图3e中将d0→o1→o2→d2→d1显示为路径ii。

在一些实施例中,为了确定更好的路径,当选择了路径p时,由车辆从x到y的一个额外的乘客行程时间extp(x,y)可以被定义。额外的旅行时间extp(.,.)是对每个乘客组在拼车期间所花费的额外时间的估算,如果不乘坐拼车,则为零。例如,在图3e中,从o1接载的第一个乘客组的实际无乘车时间为t(o1,d1),从o2接载的第二个乘客组的实际乘车时间为t(o2,d2)。另一方面,对于拼车,从o1接载的第一个乘客组的乘车时间t(o1,o2)+test(o2,d1),而从o2接载的第二个乘客组的乘车时间为test(o2,d1)+test(d1,d2)。估计的乘车时间test(.,.)可以是预测算法的输出,在以下参考文献中讨论了其示例,在此通过引用将其全部内容并入本文:i.jindal,tony,qin,x.chen,m.nokleby,andj.ye.,aunifiedneuralnetworkapproachforestimatingtraveltimeanddistanceforataxitrip,arxive-prints,oct.2017。

再次参考图3d,算法3显示了如何获取路径i和路径ii的乘客额外乘车时间。当遵循路径i时,第一个乘客组的额外乘车时间为:

exti(o1,d1)=t(o1,o2)+test(o2,d1)-t(o1,d1)

当遵循路径i时,第二个乘客组的额外乘车时间为:

exti(o2,d2)=test(o2,d1)+test(d1,d2)-t(o2,d2)

当遵循路径ii时,第一个乘客组的额外乘车时间为:

extii(o1,d1)=t(o1,o2)+t(o2,d2)+test(o2,d1)-t(o1,d1)

当遵循路径ii时,第二个乘客组的额外乘车时间为:

extii(o2,d2)=t(o2,d2)-t(o2,d2)=0

从两条路径的车载乘客组的单独额外乘车时间,可以得出每个路径的乘客总额外乘车时间。也就是说,对于路径i,totalexti=texti=exti(o1,d1)+exti(o2,d2)。对于路径ii,totalextii=textii=extii(o1,d1)+extii(o2,d2)。因此,为了使乘客的额外时间成本最小化,如果totalexti<totalextii,则模拟车辆可以选择路径i,否则选择路径ii。在任何一种情况下,当第一乘客组已经下车时,可以发出相应的奖励d(o1,d1),而当第二乘客组已经下车时,可以发出相应的奖励d(o2,d2)。

如所讨论的,第二乘客组可以基于当前策略下的最小值(texti+textii)来确定。即,运送第一和第二乘客组所花费的总和最少:(路线选项1)的乘客总额外乘车时间和(路线选项2)的乘客总额外乘车时间。(路线选项1)包括接载第二乘客组、放下乘客组p、放下第二乘客组。(路线选项2)包括接载第二乘客组、放下第二乘客组、放下第一乘客组。与一组一组接送且无拼车相比,(路线选项1)的乘客总额外乘车时间是由模拟车辆按照(路线选项1)运送第一乘客组和第二乘客组所花费的额外时间的总和。与一组一组接送且无拼车相比,(路线选项2)的乘客总额外乘车时间是由模拟车辆按照(路线选项2)运送第一乘客组和第二乘客组所花费的额外时间的总和。在一些实施例中,如果(路线选项1)的乘客总额外乘车时间小于(路线选项2)的乘客总额外乘车时间,则将模拟车辆分配为采用(路线选项1);如果(路线选项1)的乘客总额外乘车时间大于(路线选项2)的乘客总额外乘车时间,则将模拟车辆分配为采用(路线选项2)。

这样,所公开的环境可以用于训练用于车辆导航的模型和/或算法。现有技术尚未开发出可以提供用于训练车辆服务的策略的稳健机制的系统和方法。环境是提供优化策略的关键,该策略可以毫不费力地指导车辆司机,同时最大程度地提高他们的收益并最小化乘客时间成本。因此,所提供的模拟环境为生成自动车辆导航提供了路径,该流程可为真实车辆司机做出乘客接载、下车和等候决策以及拼车路线决策,而这是现有技术无法实现的。

图4a是根据本申请的一些实施例所示的用于提供车辆导航模拟环境的示例性方法400的流程图。示例性方法400可以在包括例如图1的环境100的各种环境中实现。示例性方法400可以由系统102a的一个或多个组件(例如,处理器104a、存储器106a)实现。可以通过类似于系统102a的多个系统来实现示例性方法400。下面呈现的方法400的操作旨在说明。取决于实施方式,示例性方法400可以包括以各种顺序或并行执行的附加、更少或替代步骤。

示例性方法400可以包括在一段时间(例如一天)内递归地执行步骤(1)-(4)。在框401处,步骤(1)可以包括将模拟环境的一个或多个状态提供给模拟主体。模拟主体包括模拟车辆,并且状态包括模拟车辆的第一当前时间和第一当前位置。在框402处,步骤(2)可以包括当模拟车辆已经达到里程碑时,由模拟车辆获得动作。该动作选自:在模拟车辆的第一当前位置等待、在乘客组a的运输起点处接载乘客a,以及在乘客组b的运输目的地放下乘客组b。乘客组a和b各自包括一个或多个乘客。里程碑是任何乘客组运输的起点或终点。在框403处,步骤(3)可以包括确定针对该动作的对模拟车辆的奖励。在框404处,步骤(4)可以包括基于该动作来更新一个或多个状态,以获得用于提供给模拟车辆的一个或多个更新状态。更新状态包括模拟车辆的第二当前时间和第二当前位置。

在一些实施例中,可以执行示例性方法400以获得用于训练如上所述的算法或模型的模拟器/模拟环境。例如,训练可以使用历史旅行数据以获得在该时间段内最大化累积奖励的策略。历史数据可以包括历史乘客行程的细节,例如历史时间点以及上车位置和下车位置。即,基于历史乘客组的出行历史数据,递归执行步骤(1)-(4),训练一种策略,该策略使得在该时间段内累积奖励最大化,并且经训练的策略确定了针对真实环境中的真实车辆的动作,针对真实环境中的真实车辆的动作选自:(动作1)在真实车辆的当前位置等待、(动作2)接载乘客组,以及(动作3)放下乘客组。如果两个或以上乘客组在车上,则经训练的策略可以进一步确定真实车辆上乘客组下车的顺序。

因此,可以在各种计算设备上实施经训练的策略,以帮助服务于车辆的司机在街上工作时最大化他们的奖励。例如,服务车辆的司机可以在移动电话上安装软件应用程序,并使用该应用程序访问车辆平台以接收业务。可以在应用程序中实施经训练的策略,以推荐司机采取奖励优化措施。例如,执行的经训练的策略可以提供诸如以下的推荐:(1)在当前位置等待,(2)确定并接载乘客组,或(3)确定并放下乘客组。每个乘客组包括一个或多个乘客。等待接载的乘客组已经从车辆平台请求了运送,并且他们所请求的接载位置对于应用程序和车辆都是已知的。下面参考图4b描述确定推荐的细节。

图4b是根据本申请的一些实施例所示的用于提供车辆导航的示例性方法450的流程图。可以在包括例如图2的环境200的各种环境中实现示例性方法450。示例性方法450可以由系统102b的一个或多个组件(例如,处理器104b、存储器106b)或计算设备110来实现。例如,方法450可以由服务器执行以向计算设备110(例如,车辆司机使用的移动电话)提供指令。方法450可以由类似于系统102b的多个系统来实现。对于另一个示例,方法450可以由计算设备110执行。下面呈现的方法450的操作旨在说明。取决于实现方式,示例性方法450可以包括以各种顺序或并行执行的附加、更少或替代步骤。

在框451处,可以确定真实车辆的当前位置。在一个示例中,当车辆司机从应用程序激活相应功能时,可以触发该步骤。在另一个示例中,该步骤可以由应用程序不断地执行。可以基于车辆上的启用位置跟踪的设备(例如,车载gps设备、车辆司机的移动电话)来确定真实车辆的当前位置。由于移动电话可以具有gps跟踪功能,并且司机在操作车辆时可以使用该应用程序,因此可以将移动电话的位置用作车辆的位置。在框452处,响应于确定真实车辆已经达到里程碑,该里程碑是任何乘客组的运输起点或目的地,可以至少基于经训练的策略的指令来最大化真实车辆的累积奖励。上面参考图1、图2、图3a-3e和图4a描述了策略的训练。提供的指令包括:在当前位置等待、在乘客组a的运输起点处接载乘客组a、或在乘客组b的运输目的放下车乘客组b。乘客组a和乘客组b各自包括一个或多个乘客。在乘客组a的运输起点接载乘客组a的指令包括,当真实车辆上载有第一乘客组时,则要接载第二乘客组。运输第一乘客组和第二乘客组花费的总和最少:(路线选项1)的乘客总额外乘车时间和(路线选项2)的乘客总额外乘车时间。(路线选项1)包括接送第二乘客组、放下乘客组p、放下第二乘客组。(路线选项2)包括接送第二乘客组、放下第二乘客组、放下第一乘客组。与一组一组接送且无拼车相比,(路线选项1)的乘客总额外乘车时间是由模拟车辆按照(路由选项1)运送第一乘客组和第二乘客组所花费的额外时间的总和。与一组一组接送且无拼车相比,(路线选项2)的乘客总额外乘车时间是模拟车辆按照(路线选项2)运送第一乘客组和第二乘客组所花费的额外时间的总和。

在一些实施例中,如果(路线选项1)的乘客总额外乘车时间小于(路线选项2)的乘客总额外乘车时间,则该指令可以是采用(路线选项1)。如果(路线选项1)的乘客总额外乘车时间大于(路线选项2)的乘客总额外乘车时间,则该指令可以是采用(路线选项2)。

在一些实施例中,经训练的策略可以在里程碑处确定是在当前位置处等待、接载请求运输的某个乘客组还是放下车上的乘客组,并向司机提供这种确定结果(例如,通过司机的手机)。该应用程序和算法还通过监视承担的运送任务并使确定结果符合以下条件来追踪当前的车上乘客。仅当车上没有乘客时,才可以在当前位置等候。仅当车辆未达到其最大容量(载客量)时,才可以接载特定的乘客组。仅在车上至少有一名乘客时才能下车。通过训练,经训练的策略可以基于最大化对车辆驾驶员的奖励、最小化对乘客的时间成本、最大化车辆平台的效率、最大化车辆服务的效率,自动确定推荐等待、接载和放下中的哪个动作,和/或优化其他参数。此外,当车上有多个乘客组时,经训练的策略可以自动确定乘客组下车的顺序。

因此,车辆司机可以依靠策略和/或算法确定以有效的方式执行车辆服务,同时获得最大的收益和/或最小化乘客的时间成本。车辆服务可能涉及单人/乘客组乘车行程和/或多人/乘客组拼车行程。通过所公开的系统和方法获得的优化结果是现有系统和方法无法获得的。当前,即使提供了当前车辆服务请求的位置图,车辆司机也无法确定比其他选择带来更多奖励的最佳动作。现有的系统和方法不能在等待、接载或放下乘客之间进行权衡,不能确定要接载和放下的乘客,也不能确定拼车旅行的最佳路线。因此,本申请所公开的系统和方法至少减轻或克服了提供车辆服务和提供导航中的此类困难。

本文描述的技术由一个或多个专用计算设备实现。专用计算设备可以硬连线以执行该技术,或者可以包括电路或数字电子设备,例如一个或多个可编程的专用集成电路(asic)或现场可编程门阵列(fpga)被持久地编程以执行该技术,或者可以包括一个或多个硬件处理器,这些硬件处理器被编程为根据固件、内存、其他内存或组合中的程序指令来执行技术。这样的专用计算设备还可以将定制的硬连线逻辑、asic或fpga与定制的编程相结合,以实现这些技术。专用计算设备可以是台式计算机系统、服务器计算机系统、便携式计算机系统、手持式设备、网络设备或结合硬连线和/或程序逻辑以实现技术的任何其他设备或设备组合。计算设备通常由操作系统软件控制和协调。传统的操作系统控制和调度计算机进程以执行内存管理、提供文件系统、联网、i/o服务、以及提供诸如图形用户界面(“gui”)之类的用户界面功能。

图5是根据本申请的一些实施例示出的可以在其上实现本文描述的任何实施例的计算机系统500的框图。系统500可以对应于上述系统102a或系统102b。计算机系统500包括总线502或用于传达信息的其他通信机制,与总线502耦合以用于处理信息的一个或多个硬件处理器504。硬件处理器504可以是例如一个或多个通用微处理器。处理器504可以对应于上述处理器104a或处理器104b。

计算机系统500还包括主存储器506,例如随机存取存储器(ram)、高速缓存和/或其他动态存储设备,其耦合到总线502,用于存储将由处理器504执行的信息和指令。主存储器506还可以用于在处理器504将要执行的指令执行期间存储临时变量或其他中间信息。当将这些指令存储在处理器504可访问的存储介质中时,它们将计算机系统500渲染成专用于执行指令中指定的操作的专用机器。计算机系统500还包括耦合到总线502的只读存储器(rom)508或其他静态存储设备,用于存储用于处理器504的静态信息和指令。提供诸如磁盘、光盘或usb拇指驱动器(闪存驱动器)等的存储设备510,并且将其耦合到总线502以存储信息和指令。主存储器506、rom508和/或存储器510可以对应于上述存储器106a或存储器106b。

计算机系统500可以使用定制的硬连线逻辑、一个或多个asic或fpga、固件和/或程序逻辑来实施本文所述的技术,这些逻辑与计算机系统结合使计算机系统500成为程序或专用计算机。根据一个实施例,响应于处理器504执行包含在主存储器506中的一个或多个指令的一个或多个序列,计算机系统500执行本文中的技术。可以从诸如存储设备510之类的另一存储介质将这样的指令读入主存储器506。执行包含在主存储器506中的指令序列,使处理器504执行本文所述的处理步骤。在替代实施例中,可以使用硬连线电路代替软件指令或与软件指令结合使用。

主存储器506、rom508和/或存储器510可以包括非暂时性存储介质。如本文中所使用的,术语“非暂时性介质”和类似术语是指存储使机器以特定方式运行的数据和/或指令的任何介质。这样的非暂时性介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,例如存储设备510。易失性介质包括动态内存,例如主存储器506。非暂时性介质的常见形式包括,例如,软盘、软盘、硬盘、固态驱动器、磁带或任何其他磁数据存储介质、cd-rom、任何其他光学数据存储介质、具有孔模式的任何物理介质、ram、prom和eprom、flash-eprom、nvram、任何其他存储芯片或盒式磁带及其网络版本。

计算机系统500还包括耦合到总线502的通信接口518。通信接口518提供耦合到连接到一个或多个本地网络的一个或多个网络链路的双向数据通信。例如,通信接口518可以是集成服务数字网络(isdn)卡、电缆调制解调器、卫星调制解调器或调制解调器,以提供到对应类型的电话线的数据通信连接。又例如,通信接口518可以是局域网(lan)卡,以提供到兼容lan(或要与wan通信的wan组件)的数据通信连接。无线连接也可以实现。在任何这样的实现中,通信接口518发送和接收电、电磁或光信号,其携带表示各种类型的信息的数字数据流。

计算机系统500可以通过网络,网络链路和通信接口518发送消息并接收数据,包括程序代码。在因特网示例中,服务器可以通过因特网、isp、本地网络和通信接口518发送针对应用程序的请求代码。

接收到的代码可以在接收到时由处理器504执行,和/或存储在存储设备510或其他非易失性内存中,以供以后执行。

前述部分中描述的过程、方法和算法中的每一个都可以完全或部分自动化地体现在由一个或多个计算机系统或包括计算机硬件的计算机处理器执行的代码模块中。该过程和算法可以在专用电路中部分或全部实现。

上述的各种特征和过程可以彼此独立地使用,或者可以以各种方式组合。所有可能的组合和子组合旨在落入本申请的范围内。另外,在一些实施方式中,可以省略某些方法或过程框。本文描述的方法和过程也不限于任何特定的顺序,并且可以以适当的其他顺序执行与之相关的框或状态。例如,可以以不同于具体公开的顺序来执行所描述的框或状态,或者可以在单个框或状态中组合多个框或状态。示例框或状态可以串行、并行或以其他方式执行。块或状态可以被添加到所公开的示例实施例或从所公开的示例实施例中去除。本文描述的示例系统和组件可以与所描述的不同。例如,与所公开的示例实施例相比,可以将内容添加、移除或重新布置。

在整个说明书中,多个实例可以实现被描述为单个实例的组件、操作或结构。尽管将一种或多种方法的单独操作示出并描述为单独的操作,但是可以同时执行一个或多个单独操作,并且不需要按所示顺序执行操作。在示例配置中表示为单独组件的结构和功能可以实现为组合结构或组件。类似地,呈现为单个组件的结构和功能可以实现为单独的组件。这些和其他变型、修改、添加和改进均在本申请的范围内。

尽管已经参考特定示例实施例描述了本主题的概述,但是在不脱离本申请的实施例的较宽范围的情况下,可以对这些实施例进行各种修改和改变。主题的这样的实施例在本文中可以仅出于方便的目的而单独地或共同地通过术语“发明”来指代,并且如果实际上有多个以上的公开或概念,则不旨在将本申请的范围自动限制为任何单个公开或概念。

具体实施方式不应在限制的意义上理解,并且各种实施例的范围仅由所附权利要求书,以及这些权利要求享有的全部等同权利来限定。

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