一、文章概述
对于打车平台而言,匹配和动态定价算法成为了相关领域的关键性研究。作者在文中回顾了一些匹配和定价技术,并提出一种动态等待(Dynamic wating)的池匹配机制。
相比于传统出租汽车行业,打车平台的汽车司机在乘车请求之间的等待时间更少,即对于司机而言他的容量利用率(capacity utilization rate)是相对更高的。而对于乘客来说,我们同样会用这样的指标来描述乘客的等待时间。
打车平台为了提高容量利用率,降低等待时间,采用了匹配(matching)及动态定价(dynamic pricing(DP))技术,前者是将可用驾驶员派遣到有需求的乘客过程,后者是根据实时需求动态调整乘坐价格的技术。
二、匹配技术
对于不能拼车的情况而言,司机会经历三种状态的循环:“open”——等待调度,“en route”——前往接乘地点,“on-trip”——驾驶乘客到达目的地。如图所示:
一个简单的matching算法,即只认为“open”状态下的司机是可调度的,并请求分配给一个预计"en route"时间最短的司机。
另一种匹配方法是batching的方法,即在很短的时间窗内收集请求,集中将每个请求同“open”状态的司机进行匹配。
对于匹配的方法,我们可以采用双边图来描述司机和乘客所有的潜在匹配关系。每一个节点代表一个乘客或者一个“open”状态的司机。在优化问题之前,可以通过一些约束(如MDR)来减小问题可行解的范围。这种算法在不考虑未来需求和供应的情况下,表现是比较良好的,且容易实现。然而一旦需求和供应出现动态变化,这种短视算法可能表现不佳。
解决方法之一是dynamic matching方法的提出,该算法在供需失衡的地区表现良好。然而这种前瞻性算法需要对供需到达率进行额外的预测,而错误的预测会进一步恶化算法性能。
三、动态定价(DP)
打车的主要挑战之一是不断变化的供需量,尤其是在局部地区和时间上的变化。如对于住宅区而言,早高峰需求量较大,而工作区而言,晚高峰的需求量较大。但整个城市的供需量是相对平衡的。为了缓和这种不平衡,打车平台采用DP算法来解决。Uber采用的DP策略是surge mutipliers,即当需求相对于供给非常高时,基本票价乘上大于1的乘数。
考虑以下模型,假定一个区域的租车平台的司机数目是固定的,用L表示。O表示处在“open”状态下司机的数量,进一步假设每一次“on-trip”所花的时间都是一个固定的常数T。稳态形成吞吐量,即单位时间内完成的平均行程数,用Y来表示,我们有流量平衡方程:
η代表“en route”时间,那么ηY就代表“en route”的司机数量,TY代表“on-trip”的司机数量。η又司机的数量决定,司机数越少,η越小。其关系表示为(命题1):
我们可以重新改写流量平衡方程,Y表示长期平均出行吞吐量,它等于系统中繁忙驾驶员的长期平均数量(L−O)除以驾驶员完成行程所需的平均时间。我们可以从图中看出,有一个最优的O值可以最大化出行吞吐量。
Figure 7图展示了将福利和平台收入作为surge multiplier价格的函数。当价格设置过低时,会出现WCG现象(当需求的司机数较少时,由于远距离司机被快速匹配消耗更多“en route”时间反而导致收入降低的现象)而导致福利和收入都出现了巨大损失,而DP缓解了这一现象。
由于DP令价格随着当地供需水平进行自然变化,也会导致一些价格波动,从而使乘客以及司机的参与度降低。其次,即使飙升的价格会有助于司机快速转向高需求地区,但他们很难快速迁移,导致到达时价格下降。
四、定价和匹配的协同手段
4.1 Dynamic Waiting
如图展示了 DW技术的原理,如果有两名乘客离得很近,并且在同一等待窗内,就将两名乘客进行pool-match,然后派遣一名司机搭载。如果乘客没有相应的pool-match对象,且在等待窗内,则会安排等待另一个请求与其进行pool-match,如果等待时间超出等待窗了,则放弃匹配,并立刻调度一个“open”的司机来搭载乘客。
DW可以动态调整等待窗的时长,当需求超出供应时,可以增加等待窗时长,从而增加了pool-match的机会,因此需要更少的司机来完成相同的行程数。而增加等待时长也会抑制需求,从而缓解了WGC现象。
4.2 平衡分析
这里作者设置了一个函数来描述完成单个请求需要的司机数,由于在DW中允许pool-match的存在,所以,那么驾驶员调度率,即完成行程吞吐量Y所需的驾驶员数量,就等于,这里的时等待窗大小。
可以得到如下平衡方程:
之前我们描述过和O的关系,同时我们用替代,整理可得
这里尽管不是显式函数,但仍可以发现有一些性质,当所有驾驶员或者没有驾驶员处于“open”状态,出行吞吐量为0;当地的总体供应水平越高,出行吞吐量越高。
同时我们需要对需求侧进行一些描述,假设函数表示的是调度时间,即从乘客发出指令到被分配一个司机的时间。那么对于乘客而言,总的等待时间可以表示为:
设表示为乘客的到达率,即单位时间有多少乘客选择打车平台。如果来表示乘客的下单率,p表示价格。则我们可以将以上各个部分组成一个稳态方程,在稳定状态下,乘客的请求率等于出行吞吐量。为了方便起见,忽略p和Φ两个变量
因此有
如果我们设是上述方程的一个解,令是给定(Φ, p)对情况下最大出行吞吐量,那么有
那么这个值会随着整体供应水平L增长而增长。
接下来是对于供应侧的描述。劳动力时长中的司机会根据单位时间的平均收入水平决定是否参与打车平台。在e收入水平的情况下,司机的人数设为l(e),它是一个弹性供应曲线。那么收入水平e会根据当地整体的供应情况,价格等因素相关。我们可以表示为,这里θ是平台的抽成率,作者设置的是0.238。当地驾驶员数量需要满足弹性供应曲线,亦即
为满足市场均衡,我们得到以下的供求方程组。令是劳动力供应曲线的解,那么供求方程组可以表示如下:
4.3实验部分
首先是的获取,乘客在Uber发出打车请求,待输入目的地后,会显示一个报价和等待时间,乘客以此来决定是否提出出行请求。将乘客请求的行程起点到行程目的地持续的时间记作T,然后根据en-route time和当地的驾驶员密度来校准函数η(·)。下图按照时间序列,列出了一些数据摘要。
在参数矫正部分,作者完成了如下工作。对于T来说,作者估计了所有请求的平均时长(这里是15分钟)进行估算。对于en route time,采用进行建模,O代表着open drivers的数目。对于τ和α的估计,采用以下方程进行:
这里ε是均值为0的正态分布,上述方程可以根据最小二乘法的估算结果。
在近似的情况下,用期望替代随机变量,可得出车辆利用率和调度等待时间如下:
这里γ表示两名乘客之间可以进行池匹配得概率。 为了校准一天中某个小时的池匹配概率,采用了蒙特卡洛采样法,从该小时中随机抽取成对的请求,检查它们是否能够进行池匹配。
对于乘客的请求率函数D(p, E),建模方法如下
这里的λ是乘客会话数量,r(p, E)给定价格和等待时间的请求概率。建模方法如下:
这里是一个常数,和分别衡量价格和等待时间上涨的无效性。为指示变量,请求率可以表示为:
下图是早高峰时段,有无DW对应的市场均衡下的福利。我们可以看到(1)没有DW,福利最大化(最优)价格为 p = 1.50,当价格低于该价格时,市场会急剧进入WGC区域。(2)有DW时,最优价格为p = 1.22(比没有DW时的最优价格低19%),市场以更低的价格p = 0.76进入WGC区域。(3)通过DP和DW的联合优化,可以使福利提高2.7%。
图右侧则表示不同价格下的最佳等待窗口,我们设置15分钟为最大等待时长,而当p从0.78上升至1.5时,最佳等待时长持续下降至0。
下图研究了四种机制下的最优价格和等待窗口。可以看出,在没有DW情况下,最佳动态价格在早晚高峰的时段较高。没有DW的最优静态价格对应于一天中所有时间的最高最优动态价格(p = 1.50)。而包含DW的情况下,最有动态价格低8%,在非高峰时段,DW最优静态价格(p=1.02)略高于DW最优动态价格,但远低于高峰时段的价格。此外,它比没有DW的价格要低得多(32%),这表明DW可以降低最优静态价格。图右侧显示了DP在最佳等待时间窗发挥的作用,没有DP时,最佳等待时间有时会超过10分钟,而有DP的情况下比较稳定,不会超过5分钟。
五、结论
本文通过联合DP和DW技术,改进了打车平台的匹配和定价算法机制,在理论上表现出更好地性能,并且通过数据表明了此种联合可以缓解价格波动,提高容量利用率、出行吞吐量和福利。但从实际的市场出发,仍然面临着比较大的考验,如在模型复杂性和市场动态的准确描述之间取得平衡。