一种订单分配方法及装置、电子设备与流程

文档序号:14736179发布日期:2018-06-19 20:32阅读:212来源:国知局
一种订单分配方法及装置、电子设备与流程

本申请涉及计算机控制技术领域,尤其涉及一种订单分配方法及装置、电子设备和计算机可读存储介质。



背景技术:

随着智能设备和移动互联网技术的发展,打车软件的普及给人们的出行带来了极大的便利。乘客可以通过打车软件发送订单,打车软件将订单发送至后台服务器,后台服务器将订单分配给该乘客周围预定范围内的司机,司机接收到该订单后,可以进行应答接单。而后台服务器如何合理地将订单分配给司机是目前需要解决的一个技术问题。



技术实现要素:

有鉴于此,本申请提供一种订单分配方法及装置、电子设备和计算机可读存储介质,以实现合理地将订单分配给司机。

具体地,本申请是通过如下技术方案实现的:

根据本公开实施例的第一方面,提供一种订单分配方法,所述方法包括:

接收订单请求,并从所述订单请求中提取出订单特征信息;

根据所述订单特征信息和当前可提供服务的司机的司机特征信息,采用不同的订单分配策略将订单分配给司机,并计算每个订单分配策略下所有司机的评价指标总和;

根据评价指标总和最大值对应的订单分配策略,生成所述订单分配信息。

根据本公开实施例的第二方面,提供一种订单分配装置,所述装置包括:

接收提取模块,用于接收订单请求,并从所述订单请求中提取出订单特征信息;

分配计算模块,用于根据所述接收提取模块提取出的所述订单特征信息和当前可提供服务的司机的司机特征信息,采用不同的订单分配策略将订单分配给司机,并计算每个订单分配策略下所有司机的评价指标总和;

生成模块,用于根据所述分配计算模块计算出的评价指标总和最大值对应的订单分配策略,生成订单分配信息。

根据本公开实施例的第三方面,提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述订单分配方法。

根据本公开实施例的第四方面,提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述订单分配方法。

本申请实施例,根据计算出的评价指标总和最大值对应的订单分配策略,生成订单分配信息,提升订单分配的合理性,进而可以更好地满足用户的乘车需求。

附图说明

图1是本申请一示例性实施例示出的一种订单分配方法的流程图;

图2是本申请一示例性实施例示出的一种计算每个订单分配策略下每个司机的评价指标的流程图;

图3是本申请订单分配装置所在电子设备的一种硬件结构图;

图4是本申请一示例性实施例示出的一种订单分配装置的框图;

图5是本申请一示例性实施例示出的另一种订单分配装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

图1是本申请一示例性实施例示出的一种订单分配方法的流程图,该实施例服务器侧进行描述,如图1所示,该方法包括:

步骤S101,接收订单请求,并从订单请求中提取出订单特征信息。

在该实施例中,用户可以通过用户终端例如手机上的打车软件向服务器发送订单请求,服务器在接收至少一个用户终端发送的订单请求后,可以从每个订单请求中提取出对应的订单特征信息。

其中,订单特征信息可以包括但不局限于订单请求的接收时间、出行的起始地和目的地中的至少一项。

步骤S102,根据订单特征信息和当前可提供服务的司机的司机特征信息,采用不同的订单分配策略将订单分配给司机,并计算每个订单分配策略下所有司机的评价指标总和。步骤S103,根据评价指标总和最大值对应的订单分配策略,生成所述订单分配信息。

其中,司机特征信息可以包括但不局限于司机的服务能力信息、当前空驶时长、接收订单请求时所处的区域和时间信息中的至少一项。上述评价指标可以为长期收益。

假设,在策略1下,订单1分配给司机1,订单2分配给司机2,订单3分配给司机3;在策略2下,订单1分配给司机1,订单2分配给司机3,订单3分配给司机2;在策略3下,订单1分配给司机3,订单2分配给司机1,订单3分配给司机2,等等。假设策略1下的评价指标总和(例如,所有司机的长期收益总和)为G1,策略2下的评价指标总和为G2,策略3下的评价指标总和为G3,等等,其中,G2最大,则生成的订单分配信息就是:订单1分配给司机1,订单2分配给司机3,订单3分配给司机2。

其中,可以通过如下公式生成订单分配信息:

s.t:

xij∈{0,1}

其中,Aij表示订单i分配给司机j的长期收益,xij表示订单i是否分配给司机j,如果订单i分配给司机j,则xij取1,如果订单i不分配给司机j,则xij取0。当∑j∑iAijxij取最大值时,根据xij的取值生成订单分配信息。

在该实施例中,可以先计算每个订单分配策略下每个司机的评价指标,然后计算每个订单分配策略下所有司机的评价指标总和。

其中,如图2所示,计算每个订单分配策略下每个司机的评价指标可以包括如下步骤S201-S204:

步骤S201,确定每个订单分配策略为每个司机分配的订单标识。

步骤S202,根据该订单标识获取每个订单分配策略下每个司机的第一指标。

其中,第一指标为短期收益,短期收益是指订单的价值,例如出行场景中,用户为该订单所支付的车费。

步骤S203,根据该订单标识获取每个订单分配策略下每个司机接收对应订单时所处的第一状态和完成对应订单时所处的第二状态,并基于第一状态和第二状态计算每个订单分配策略下每个司机的第二指标。

其中,第一状态包括司机接收对应订单时所处的区域、时间、空驶时长以及服务能力信息中的至少一项,第二状态包括司机完成对应订单时所处的区域、时间、空驶时长以及服务能力信息中的至少一项。第二指标是指司机为了完成该订单而无法接其他订单所带来的损失。

服务器在获取第一状态和第二状态后,可以采用无模型(model-free)算法或基于模型(model-based)算法计算与第一状态对应的第一状态函数值和与第二状态对应的第二状态函数值,并根据第一状态函数值和第二状态函数值,计算每个订单分配策略下每个司机的第二指标。优选地,可以根据第一状态函数值、第二状态函数值和预设系数,计算每个订单分配策略下每个司机的第二指标。其中,第一状态函数值为司机从第一状态至全天结束所获得的评价指标的期望值,第二状态函数值为司机从第二状态至全天结束所获得的评价指标的期望值。

假设,第一状态为sstart,第二状态为Send,第一状态函数值为Vπ(sstart),第二状态函数值为Vπ(send),预设系数为γ,则第二指标C=Vπ(sstart)-γVπ(send)。

为了计算第二指标,需要先计算Vπ(Sstart)和Vπ(send),具体地,当服务器能够确定出订单时空分布后,可以根据model-based方法计算Vπ(sstart)和Vπ(send);当服务器无法确定出订单时空分布时,可以利用model-free的方法,例如可以利用时间差分(TD)算法或蒙特卡罗(Monte Carlo)算法来计算Vπ(sstart)和Vπ(Send),即通过司机实时接单的情况来计算Vπ(sstart)和Vπ(send)。

其中,订单时空分布是指在某个时刻,从某个出发地到某个目的地的订单数量。

服务器根据历史数据估计订单时空分布的方式可以为:为描述方便,将在时刻t,从出发地o到目的地d的订单数量,记为trip(t,o,d),服务器可以取十天的订单数据,并将这些订单数据按照(t,o,d)维度聚合,其中,t的粒度是5分钟,o和d的粒度是3平方公里,这样就可以估计出每一个(t,o,d)的分布。另外,服务器也可以通过其他方式例如可以通过机器学习的方式来拟合出订单时空分布。下面以model-free场景下,采用TD(0)算法为例来描述计算Vπ(sstart)的过程。

假设,司机在状态sstart接单后得到收益r,之后转移到状态send,则当状态空间较小时,Vπ(Sstart)可以采用以下赋值公式进行计算:

Vπ(sstart)<-Vπ(sstart)+α(r+γVπ(Send)-Vπ(sstart))

其中,α为学习率。

首先,为Vπ(sstart)和Vπ(Send)设置一个初始值,然后将赋值(<-)符号右侧的数值赋给左侧的Vπ(sstart),不断递归迭代,直至Vπ(sstart)不变,此时不变的数值即为Vπ(sstart)最终的数值。

由于司机的每一个状态都是一个sstart,它自己会对应若干个send,那么对于状态send而言,它也一定会有自己的send,因此,按照同样的方法,可以更新Vπ(send)。

假设,司机在状态sstart接单后得到收益r,之后转移到状态send,则当状态空间很大时,可以采用神经网络等模型来拟合Vπ(sstart)和Vπ(send),此时令损失函数L为:

L=(r+γVπ(send;θ)-Vπ(sstart;θ))2

首先,将Vπ(send;θ)输入神经网络得到第一估计值,将Vπ(sstart;θ)输入神经网络得到第二估计值,并将两个估计值带入L,若L不足够小,则采用梯度下降法对神经网络的参数θ进行更新,再重复上述过程,直至L足够小,即神经网络更新完成。然后,将Vπ(send;θ)输入更新后的神经网络,得到的估计值即为Vπ(send)最终的数值,将Vπ(sstart;θ)输入更新后的神经网络,得到的估计值即为Vπ(sstart)最终的数值。

由于服务器可以在能够确定出订单时空分布时,采用model-based算法计算第一状态函数值和第二状态函数值,在无法确定出订单时空分布时,采用model-free算法计算第一状态函数值和第二状态函数值,实现方式灵活,订单分配信息的生成速度快、准确率高,应用性强。

步骤S204,根据第一指标和第二指标,计算每个订单分配策略下每个司机的评价指标。

假设第一指标用R表示,第二指标用C表示,则可以计算当前订单分配策略下当前司机的长期收益A=R-C。

由此可见,通过步骤S201-S204可以计算每个订单分配策略下每个司机的评价指标,且该方式根据第一指标和第二指标计算每个订单分配策略下每个司机的评价指标,准确率高。

另外,在生成订单分配信息时,若接收订单的司机特征信息满足预设条件,则可以根据订单分配信息对应的订单分配策略下对应司机的第二指标和第一指标的差值以及设定阈值生成优惠信息。也可以在生成订单分配信息时,若接收订单的司机特征信息满足预设条件,则根据订单分配信息对应的订单分配策略下对应司机的第二指标和第一指标的差值以及设定阈值生成补贴信息。

其中,接收订单的司机特征信息满足预设条件,可以包括但不局限于以下至少一项:

1)司机完成所接收订单的时刻晚于预设时刻。

其中,预设时刻可以为晚上11点、12点等。

2)司机完成所接收订单时所处的区域属于预设类型区域。

其中,预设类型区域是指经历史经验数据统计获得的打车人数较少的区域。

在该实施例中,根据订单分配信息对应的订单分配策略下对应司机的第二指标和第一指标的差值以及设定阈值生成优惠信息,可以为:将第二指标和第一指标的差值减去设定阈值得到优惠上限,根据该优惠上限生成优惠信息,例如第二指标和第一指标的差值为50,设定阈值为20,则可以从(0,30]中取一个随机数作为优惠信息。另外,生成补贴信息的过程与生成优惠信息的过程相同,此处不赘述。

该实施例中,之所以向用户终端发送优惠信息或者向司机终端发送补贴信息是为了促使司机接收并完成对应的订单,从而使得订单分配信息对应的订单分配策略下所有司机的评价指标总和达到最大值。

上述实施例,根据计算出的评价指标总和最大值对应的订单分配策略,生成订单分配信息,提升订单分配的合理性,进而可以更好地满足用户的乘车需求。

与前述订单分配方法的实施例相对应,本申请还提供了订单分配装置的实施例。

本申请订单分配装置的实施例可以应用在电子设备上。其中,该电子设备可以为服务器。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。如图3所示,为本申请订单分配装置300所在电子设备的一种硬件结构图,该电子设备包括处理器310、存储器320及存储在存储器320上并可在处理器310上运行的计算机程序,该处理器310执行该计算机程序时实现上述订单分配方法。除了图3所示的处理器310及存储器320之外,实施例中装置所在的电子设备通常根据实际功能,还可以包括其他硬件,对此不再赘述。

图4是本申请一示例性实施例示出的一种订单分配装置的框图,该装置可以位于服务器中,如图4所示,该装置包括:接收提取模块41、分配计算模块4242和生成模块43。

接收提取模块41用于接收订单请求,并从所述订单请求中提取出订单特征信息。

分配计算模块42用于根据所述接收提取模块41提取出的所述订单特征信息和当前可提供服务的司机的司机特征信息,采用不同的订单分配策略将订单分配给司机,并计算每个订单分配策略下所有司机的评价指标总和。

生成模块43用于根据所述分配计算模块42计算出的评价指标总和最大值对应的订单分配策略,生成订单分配信息。

如图4所示的装置用于实现上述如图1所示的方法流程,涉及到的相关内容描述相同,此处不赘述。

上述实施例,根据计算出的评价指标总和最大值对应的订单分配策略,生成订单分配信息,提升订单分配的合理性,进而可以更好地满足用户的乘车需求。

图5是本申请一示例性实施例示出的另一种订单分配装置的框图,如图5所示,在上述图4所示实施例的基础上,分配计算模块42可以包括:确定单元4211、获取单元4212、获取计算单元4213和计算单元4214。

确定单元4211用于确定每个订单分配策略为每个司机分配的订单标识。

获取单元4212用于根据确定单元4211确定的订单标识获取每个订单分配策略下每个司机的第一指标。

获取计算单元4213用于根据确定单元4211确定的订单标识获取每个订单分配策略下每个司机接收对应订单时所处的第一状态和完成对应订单时所处的第二状态,并基于第一状态和第二状态计算每个订单分配策略下每个司机的第二指标。

计算单元4214用于根据获取单元4212获取的第一指标和获取计算单元4213计算的第二指标,计算每个订单分配策略下每个司机的评价指标。

如图5所示的装置用于实现上述如图2所示的方法流程,涉及到的相关内容描述相同,此处不赘述。

上述实施例,通过根据第一指标和第二指标计算每个订单分配策略下每个司机的评价指标,准确率高。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

在示例性实施例中,还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,该计算机程序用于执行上述订单分配方法,其中,计算机可读存储介质可以是只读存储器(ROM)、随机存取存储器(RAM)、光盘只读存储器(CD-ROM)、磁带、软盘和光数据存储设备等。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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