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

文档序号:23350236发布日期:2020-12-18 16:55阅读:153来源:国知局
提供车辆导航模拟环境的方法和装置与流程

交叉引用

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

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



背景技术:

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



技术实现要素:

本申请的各种实施例可以包括:用于提供车辆导航模拟环境的系统、方法和非暂时性计算机可读介质。根据一个方面,一种用于提供车辆导航模拟环境的示例性方法可以包括,在一段时间内递归执行步骤(1)-(4):(1)向模拟主体提供模拟环境的一个或多个状态,其中:所述模拟主体包括模拟车辆,以及,所述状态包括模拟车辆的第一当前时间和第一当前位置;(2)当所述模拟车辆没有乘客时,通过所述模拟车辆获得动作,其中:所述动作选自:在所述模拟车辆的所述第一当前位置等待,以及运输m个乘客组,所述m个乘客组中的每个乘客组均包含一个或多个乘客,以及所述m个乘客组中的每两个组中至少有以下中一个:不同的上车位置或不同的下车位置;(3)确定对执行所述动作的模拟车辆的报酬;以及(4)基于所述动作来更新所述一个或多个状态,以获得用于提供给所述模拟车辆的一个或多个更新状态,其中:所述更新状态包括所述模拟车辆的第二当前时间和第二当前位置。

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

根据另一方面,本申请提供一种用于提供车辆导航的方法。该方法可以包括:确定实际车辆上的当前的实际乘客人数;以及响应于确定所述实际车辆上没有实际乘客,基于使所述实际车辆的累积报酬最大化的训练策略,提供运输m个实际乘客组的指令。所述m个乘客组中的每个乘客组都包含一个或多个乘客。所述m个乘客组中的每两个组至少具有以下之一:不同的上车位置或不同的下车位置。所述实际车辆位于第一当前位置。m=0时,所述指令包括在所述第一当前位置等待,m=1时,所述指令包括运输乘客组r,m=2时,所述指令包括在拼车中运输乘客组r和乘客组s,从所述第一当前地点到达所述乘客组r的上车位置所需的时间最少。在拼车中运输所述乘客组r和所述乘客组s的总和为(路线选项1)的乘客总额外行程时间和(路线选项2)的乘客总额外行程时间中的最小值。所述(路线选项1)包括接载所述乘客组s、放下所述乘客组r、放下所述乘客组s。所述(路线选项2)包括接载所述乘客组s、放下所述乘客组s、放下所述乘客组r。所述(路线选项1)的乘客总额外行程时间是由所述实际车辆按照所述(路线选项1)运输所述乘客组r和乘客组s,与不拼车一组一组运输相比,花费的额外时间的总和。所述(路线选项2)的乘客总额外行程时间是由所述实际车辆按照所述(路线选项2)运输所述乘客组r和乘客组s,与不拼车一组一组运输相比,花费的额外时间的总和。

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

附图说明

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

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

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

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

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

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

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

图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=(1,t),其中1是gps坐标对(纬度,经度),t是时间。s可能包含表征时空空间(1,t)的其他特征。

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

报酬r:报酬可以包括多种形式。例如,在模拟中,报酬可以由基于距离确定的名义数表示。例如,在单人行程中,可以基于行程的起点和终点之间的距离来确定报酬。又例如,在两人乘坐的拼车行程中,可以基于以下各项的总和来确定报酬:第一乘客的出发地与目的地之间的第一距离,以及第二乘客的出发地与目的地之间的第二距离。在现实生活中,报酬可能与运输的总费用有关,例如,司机为每次运输获得的补偿。平台可以基于行进的距离或其他参数来确定这种补偿。

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

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

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

图3b-3g是根据本申请的一些实施例所示的用于提供环境的详细算法。环境可以支持各种模式。在预订模式下,模拟车辆事先知道来自乘客的运输请求,并且在车辆空置时,即没有乘客时,做出拼车决定(例如,是否使多名乘客共乘)。按照rl术语,司机(主体)的状态可能包含(位置,时间)对、主体的动作、以及在执行每个动作后获得的报酬。

在一些实施例中,用于提供车辆导航模拟环境的示例性方法可以包括在一段时间内递归执行步骤(1)-(4)。步骤(1)-(4)可以包括:步骤(1)向模拟主体提供模拟环境的一个或多个状态(例如,状态s),其中,模拟主体包括模拟车辆,以及状态包括模拟车辆的第一当前时间(例如,t)和第一当前位置(例如,1);步骤(2)当模拟车辆没有乘客时,通过模拟车辆获得动作,其中,该动作选自:在模拟车辆的第一当前位置等待,以及运输m个乘客组,其中m个乘客组中的每组包括一个或多个乘客,以及m个乘客组中的每两个组具有以下至少之一:不同的上车位置或不同的下车位置;步骤(3)确定针对所述动作对模拟车辆的报酬(例如,报酬r);步骤(4)基于动作来更新一个或多个状态,以获得用于提供给模拟车辆的一个或多个更新状态,其中,更新状态包括模拟车辆的第二当前时间和第二当前位置。

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

在一些实施例中,当模拟车辆没有乘客时获得模拟车辆的动作包括:仅当模拟车辆没有乘客时由模拟车辆获得动作;模拟车辆在当前递归执行该动作。

在一些实施例中,如果步骤(2)中的动作是运输m个乘客组,则在步骤(4)中,第二当前时间是所有m个乘客组全部下车相对应的当前时间,并且第二当前位置是在第二当前时间车辆的当前位置。

在一些实施例中,在预订模式下,将m个乘客组(包括当m=0时在当前位置等待)的动作和运输分配顺序分配给模拟车辆。主体可以学习仅覆盖一级行动的策略(例如,确定运输m个乘客组的数量m,包括在m=0时在当前位置等待)或一级动作和二级动作(例如,接乘第一个乘客组后要接哪个第二乘客组、乘客组拼车时要走哪条路线等)。在第一种情况下,学习的策略做出第一级决策,而第二级决策可以通过算法2和3来确定。在第二种情况下,该策略负责确定m以及拼车行程的路线和计划。下面参考相应的算法详细描述各种动作。对于rl训练,在片段开始时,d0是车辆的初始状态s0=(l0,t0),而车辆运输行程的实际起点是o1,而so1=(1o1,to1)是接第一位乘客时车辆处于中间状态。此类表示法和类似术语在以下算法中使用。

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

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

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

算法2可以对应于take-1动作(运输1个乘客组)。即,m=1。在给定初始状态s0的情况下,将运输行程分配给模拟车辆,对于该模拟车辆,该车辆可以在比乘客组的历史上车时间短的时间内到达运输行程的起点o1。例如,参考算法2的第4行,可以通过查找所有接载时间在t0到(t0+t)范围内的历史运输行程来减少运输请求搜索区域,而与历史行程的起点无关,其中t定义搜索时间窗口(例如:600秒)。参照算法2的第5行,可以通过从模拟车辆的初始状态s0查找模拟车辆在历史上车时间之前可以到达的所有历史车辆行程,来进一步减少运输行程搜索区域。在此,t(d0,o1)可以表示从状态d0前进到状态o1的时间。由于历史运输数据可以表示何时和何地出现运输需求,因此在第4行中按历史上车时间过滤运输请求搜索可以获取匹配时间窗口的候选用户,而无需考虑这些候选用户的远近。另外,通过第5行,通过车辆位置附近对运输请求搜索进行过滤,可以进一步缩小最适合从报酬最大化中获取的候选乘客组。参照算法2的第6-7行,如果没有这样的行程起点,则类似于算法1,模拟车辆继续在其当前位置l0等待,但时间提前到(t0+td),车辆的状态变为s1=(l0,t0+td)。等待动作对应的报酬为0。而参考算法2的第9-10行,如果存在这样的历史车辆行程,则将具有最小上车时间(到达上车位置的时间最少)的历史车辆行程分配给模拟车辆。最终,模拟车辆从分配的行程的起点接载乘客组并将乘客组送达目的地,并在完成状态转换后将其状态更新为s1=(ld1,td1)。此处,ld1代表乘客组的下车位置,td1是模拟车辆到达目的地d1的一天中的时间。

因此,在一些实施例中,用于提供车辆导航模拟环境的方法可以进一步包括:基于历史乘客组所经历的行程的历史数据:搜索一个或多个第一历史乘客组,其中:(条件a)分别从第一上车位置接载第一历史乘客组的时间点在从第一当前时间起的第一时间阈值之内,(条件b)模拟车辆从第一当前位置到达第一上车位置的时间点分别不迟于接载第一乘客组的历史时间点;响应于没有找到满足(条件a)和(条件b)的第一历史乘客组,分配模拟车辆在第一当前位置等待,并相应地确定当前动作的报酬为零。

在一些实施例中,如果m=1,响应于找到满足(条件a)和(条件b)的一个或多个第一历史乘客组,该方法可以进一步包括分配模拟车辆来运输从第一当前位置到第一上车位置用时最短的与第一上车位置相关联的乘客组p,并基于分配运输的乘客组p的行程距离,相应地确定当前动作的报酬,其中,乘客组p是找到的第一历史乘客组中的其中一组。

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

算法3可能对应于take-2动作(在拼车中运输2个乘客组)。即,m=2。参考算法3的3-7行,给定初始状态s0,类似于take-1动作,将第一运输任务分配给模拟车辆。一旦分配了第一个运输任务,模拟车辆使到达起点位置o1来接送第一个来各组,并且其中间状态更新为so1=(lo1,to1)。

从中间状态so1,在算法3的第9-24行中描述如何将第二个运输任务分配给模拟车辆,其中通过遵循与分配第一个运输任务类似的过程将第二个运输任务分配给司机并将模拟车辆的状态更新为so2=(lo2,to2)。参考算法3的第12行,与算法2的区别在于运输行程的上车时间搜索范围。对于第二个运输任务,通过选择在接载时间范围to1到(to1+(tc*t(o1,d1)))中的所有历史运输行程来缩小行程搜索区域,而与历史运输行程的起始位置无关。在此,t(o1,d1)可以代表将第一个乘客组单独从其出发地运输到目的地的时间。在进行第二运输请求的搜索时,模拟车辆可能必须在中间状态so1下停留最多(tc*t(o1,d1))秒。在此,tc在(0,1)的范围内,并且是控制用于第二运输任务分配的行程搜索区域的重要参数。

第二运输任务搜索区域可能不固定。例如,假设搜索时间窗口的大小固定为t=600s,类似于第一个运输任务。第二运输任务的上车时间搜索范围变为(to1,to1+t)。从历史数据集中,如果历史车辆可以在t(o1,d1)=500s<t内完成从o1到d1的第一个乘客组的分配行程,则将take-1动作分配给模拟车辆比分配take-2动作更有效。因此,需要动态的上车时间搜索范围来选择第二运输任务。参考算法3的第13行,在减少了第二次运输任务的上车时间搜索区域之后,可以通过从其中间状态so1开始,选择在历史上车时间点to2之前模拟车辆可以到达的所有历史运输行程,来进一步减小搜索区域。

因此,在一些实施例中,用于提供车辆导航模拟环境的方法可以进一步包括:如果m=2并且响应于找到满足上述(条件a)和(条件b)的一个或多个第一历史乘客组,则分配模拟车辆接载与第一上车位置相关联的乘客组p,其中从第一当前位置到达第一上车位置花费最少的时间,其中乘客组p是第一历史乘客组中其中一组;确定用于将乘客组p从第一上车位置运输到乘客组p的目的地的时间t;搜索一个或多个第二历史乘客组,其中:(条件c)分别从第二上车位置接载第二历史乘客组的时间点在从接载乘客群p的时间点起的第二时间阈值内,第二时间阈值是确定的时间t的一部分,以及(条件d)模拟车辆从乘客组p上车之时起到达第二上车位置的时间点分别不迟于第二历史乘客组被接载的历史时间点;响应于没有找到满足(条件c)和(条件d)的第二历史乘客组,分配模拟车辆在乘客组p的第一上车位置等待。

在确定要运输的两个乘客组的m=2后,模拟车辆已接载1个第一乘客组并确定了接载的第二乘客组。(第一和第二乘客组具有不同的目的地d1和d2)。可以根据算法3的第17-24行确定选择哪个第二乘客组以及第一和第二乘客组中哪个首先下车。参考算法3的第18行,模拟车辆可以在当前策略下选择与最小值(texti+textii)相对应的第二乘客组。texti和textii可以参考图3e中描述的算法4,图3e是根据本申请的一些实施例所示的用于提供车辆导航模拟环境的示例性算法4。

在一个示例中,此处要解决的问题可以是确定性的,并且可以将这一决策归纳为辅助决策的一部分。参考图3f,图3f是根据本申请的一些实施例所示的用于提供车辆导航模拟环境的示例性状态转变。图3f中所示和下面介绍的操作仅是示例性的。图3f示出了一天中的片段,在该片段中可以执行多个状态转换(对应于上述递归)。提供了涉及将两个乘客组拼车的示例性状态转换。如上所述,模拟车辆可以在t0处的状态d0开始,在to1处移动至状态o1以接送第一乘客组,然后在to2处移动至状态o2以接载第二乘客组。在两个乘客组都下车之后,在t1处,模拟车辆可能会移至下一个状态转换。

接载第二乘客组后,模拟车辆可以选择放下第一或第二乘客组。图3g是根据本申请的一些实施例所示的用于拼车的示例性路线选项。图3g中示出并在下面呈现的操作是示例性的。图3g显示了两种解决路线问题的方法。也就是说,在将两个乘客组拼车后,模拟车辆可以遵循以下任一方法:

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

或者

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

在路径i中,d2是当前状态转换的模拟车辆的最终状态,也是下一个状态转换的初始状态。在路径ii中,d1是当前状态转换的模拟车辆的最终状态,也是下一个状态转换的初始状态。

返回参考算法3和算法4的第17-24行,可以将乘客总额外行程时间最少的第二个运输任务分配给模拟车辆。在一些实施例中,向路径之间进行选择,由车辆从x去到y时,可以定义选择了路径p行进的额外乘客行程时间extp(x,y)。额外的行程时间extp(.,.)是对每个乘客组在拼车期间所花费的额外时间的估算,如果不乘坐拼车,则为零。例如,在图3g中,从o1接载的乘客组1的不乘拼车的实际乘车时间分别为t(o1,d1)和从o2接载的乘客组2的实际乘车时间为t(o2,d2)。但是,对于拼车,从o1接载的乘客组1的乘车时间为t(o1,o2)+test(o2,d1),从o2接载的乘客组2的乘车时间为test(o2,d1)+test(d1,d2)。估计的乘车时间test(.,.)可以是预测算法的输出,其示例在以下参考文献中进行了讨论,在此通过引用将其全部内容并入本文:i.jindal,tony,qin,x.chen,m.nokleby,andj.ye.,aunifiedneuralnetworkapproachforestimatingtraveltimeanddistanceforataxitrip,arxive-prints,2017年10月。

再次参考图3e,算法4显示了如何获得两条路径的乘客额外行程时间。分配了take-1动作后,乘客额外行程时间始终为零,但此处分配了take-2动作。因此,当遵循路径i时,乘客组1的额外行程时间为:

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

当遵循路径i时,乘客组2的额外行程时间为:

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

遵循路径ii时,乘客组1的额外行程时间为:

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

遵循路径ii时,乘客组2的额外行程时间为:

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)。因此,参考算法3的第20-23行,为了最大程度地减少乘客的额外时间成本,如果totalexti<totalextii,则模拟车辆可以选择路径i,否则遵循路径ii。

转换完成后(在图3f中的t1),环境可以计算此转换的报酬。参考算法3的第24行,报酬可以基于拼车行程所满足的有效行程距离,以及原始各个行程距离d(o1,d1)+d(o2,d2)的总和。然后,准备执行上述动作集的新动作。类似地,只要可以得出与车辆容量一致的take-3动作、take-4动作或任何take-m动作即可。

因此,在一些实施例中,用于提供车辆导航模拟环境的方法可以进一步包括:响应于找到满足(条件c)和(条件d)的一个或多个第二历史乘客组,分配模拟车辆运输乘客组q,其中:乘客组q是已找到的第二历史乘客组中的其中一组;运输乘客组p和q花费的总和是在(路线选项1)的乘客总额外行程时间和(路线选项2)的乘客总额外行程时间中花费最少的;(路线选项1)包括:接载乘客组q、放下乘客组p、放下乘客组q;(路线选项2)包括:接载乘客组q、放下乘客组q、放下乘客组p;(路线选项1)的乘客总额外行程时间是由模拟车辆按照(路线选项1)运输乘客组p和乘客组q,与不拼车一组一组运输相比,所花费的额外时间的总和;(路线选项2)的乘客总额外行程时间是由模拟车辆按照(路线2)运输乘客组p和乘客组q,与不拼车一组一组运输相比,所花费的额外时间的总和。

在一些实施例中,用于提供车辆导航模拟环境的方法可以进一步包括:如果(路线选项1)的总额外乘客行程时间小于(路线选项2)的总额外乘客行程时间,则分配模拟车辆采用(路线选项1);如果(路线选项1)的乘客总额外行程时间大于(路线选项2)的乘客总额外行程时间,则分配模拟车辆采用(路线选项2)。

这样,所公开的环境可以可用于训练车辆导航的模型和/或算法。现有技术尚未开发出可以提供用于训练车辆服务的策略的稳健机制的系统和方法。环境是提供优化策略的关键,该策略可以毫不费力地指导车辆司机,同时最大程度地提高他们的收益并最小化乘客时间成本。即,基于历史乘客组的出行的历史数据递归执行步骤(1)-(4),可以训练使时间段内的累积报酬最大化的策略;并且当实际车辆没有乘客时,训练后的策略确定针对真实环境中的实际车辆的动作,针对真实环境中的实际车辆的动作选自:(动作1)在实际车辆的当前位置等待,(动作2)确定值m,以运输m个实际乘客组,每个乘客组包括一个或多个乘客。对于真实环境中的实际车辆,(动作2)还可以包括:从请求车辆服务的可用实际乘客组中确定m个实际乘客组;如果m大于1,则确定以下顺序:接载m个实际乘客组中的每一组以及下放m个乘客组中的每一组;根据确定的顺序运输确定的m个实际乘客组。因此,所提供的模拟环境为生成自动车辆导航提供了途径,该指南可为实际车辆司机做出乘客挑选或等待决策以及拼车路线决策,而这是现有技术无法实现的。

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

示例性方法400可以包括在一段时间(例如,一天)内递归地执行步骤(1)-(4)。在框401处,步骤(1)可以包括向模拟主体提供模拟环境的一个或多个状态。模拟主体包括模拟车辆,并且状态包括模拟车辆的第一当前时间和第一当前位置。在框402处,步骤(2)可包括当模拟车辆没有乘客时,通过模拟车辆获得动作。该动作选自:在模拟车辆的第一个当前位置等待,以及运输m个乘客组。m个乘客组中每一组包括一个或多个乘客。m个乘客组中的每两个组至少具有以下之一:不同的上车位置或不同的下车位置。在框403处,步骤(3)可以包括确定执行该动作的模拟车辆的报酬。在框404处,步骤(4)可包括基于动作来更新一个或多个状态,以获得用于提供给模拟车辆的一个或多个更新状态。更新状态包括模拟车辆的第二当前时间和第二当前位置。

在一些实施例中,可以执行示例性方法400以获得用于训练如上所述的算法或模型的模拟器/模拟环境。例如,训练可以获取历史行程数据以获得在该时间段内最大化累积报酬的策略。历史数据可以包括历史行程的细节,例如历史时间点以及接送位置。

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

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

在框451处,可以确定实际车辆上的当前实际乘客人数。在一个示例中,当车辆司机从应用程序激活相应功能时,可以触发该步骤。在另一个示例中,该步骤可以由应用程序持续地执行。由于车辆司机依靠该应用程序与车辆平台进行交互,因此该应用程序会跟踪当前的运输任务是否已完成。如果所有任务都已完成,则应用程序可以确定没有乘客在车上。在框452处,响应于确定实际车辆上没有搭载实际乘客,至少基于使实际车辆的累积报酬最大化的训练策略,提供运输m个实际乘客组的指令。上面参考图1、图2、3a-3g和图4a描述了策略的训练。m个乘客组中的每一组可以包括一个或多个乘客。m个乘客组中的每两个组可能至少具有以下之一:不同的上车位置或不同的下车位置。实际车辆位于第一当前位置。对于m=0,指令可以包括在第一当前位置处等待。对于m=1,该指令可以包括运输乘客组r。对于m=2,指令可以包括在拼车中运输乘客组r和s。乘客组r的上车位置可以用最少的时间从第一当前位置到达。在拼车时运输乘客组r和乘客组s具有在(路线选项1)的乘客总额外行程时间和(路线选项2)的乘客总额外行程时间中的最小时间总和。(路线选项1)可以包括接载乘客组s、放下乘客组r、放下乘客组s。(路线选项2)可以包括接载乘客组s、放下乘客组s、放下乘客组r。(路线选项1)的乘客总额外行程时间可以是与不拼车逐组运输相比,采用(路线选项1)的实际车辆运输乘客组r和乘客组s时的额外时间的总和。(路线选项2)的乘客总额外行程时间可以是与不拼车逐组运输相比,采用(路线选项2)的实际车辆送乘客组r和乘客组s时的额外时间的总和。

在一些实施例中,如果(路线选项1)的乘客总额外行程时间小于(路线选项2)的乘客总额外行程时间,则该指令可以包括遵循(路线选项1)。如果(路线选项1)的乘客总额外行程时间大于(路线选项2)的乘客总额外行程时间,则该指令包括遵循(路线选项2)。

在一些实施例中,当车辆没有乘客时,经训练的策略可以确定用于提供指令的m。在确定m=1之后,经训练的策略可以从请求车辆服务的当前用户中自动确定乘客组r。在确定了m=2之后,经训练的策略可以从请求车辆服务的当前用户自动确定乘客组r和乘客组s,并且如上所述确定最优的路线选项。同样,经训练的策略可能会为m=3,m=4等确定乘客组和路线选项。对于每个决策,基于训练,经训练的策略可以最大化对车辆司机的报酬,最小化对乘客的时间成本、最大化车辆平台的效率、最大化车辆服务的效率和/或优化其他参数。备选地,经训练的策略可以确定m,并且乘客组确定和/或路线确定可以由算法执行(例如,类似于算法2至4的算法,安装在计算设备中或者安装在与计算设备耦合的服务器中)。

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

本文描述的技术由一个或多个专用计算设备实现。专用计算设备可以硬连线以执行该技术,或者可以包括电路或数字电子设备,例如一个或多个被持久地编程为可编程的专用集成电路(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成为程序或专用计算机。根据一个实施例,本文的技术由计算机系统500响应于处理器504执行一个或多个包含在主存储器506中的一个或多个指令。可以从诸如存储设备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