城际网约车订单分配问题及其求解算法

本文介绍了一种解决城际网约车订单分配问题的智能算法,旨在减少空载率、客户等待时间和司机绕行距离。算法结合多目标优化,利用时间序列和距离信息生成初始种群,通过局部搜索和动态订单分配机制提高分配效率。

问题的定义

  城际网约车订单分配问题是订单分配问题的一种,它主要是为了解决特定城市之间的个性化出行难题。在城际网约车服务中,订单分配问题是指在满足一定的约束条件和特定城市之间的客户出行需求的情况下,对从某个城市出发到达目标城市的一系列客户订单安排合理的接送路线,从而减少车辆的空载率,缩短客户的等待时间,减少司机的绕行距离等目标的优化问题。
  城际网约车订单分配问题如下图所示:
在这里插入图片描述
在上图中,有12个乘客需要被服务,提出的算法在起点城市安排3辆车分别为这些乘客服务,并在终点城市根据每个乘客的下车点,依次安排乘客下车。

数学建模

  本节根据问题的性质和实际场景下必须考虑的一些约束,给出了带两个目标的城际网约车订单分配问题的问题模型。
在这里插入图片描述  城际网约车订单分配问题的公式(1)是一个有两个目标的问题。第一个目标函数为公式(2),表示尽量减少司机接送客的总行驶距离。第二个目标函数为公式(3),表示最小化总等待时间。第一个约束条件为公式(4),确保每条路线的总需求不超过车辆的最大容量。第二个约束条件为公式(5),表示每条路径上任意两个订单的预约时间的间隔不能超过最大处理时间minTD分钟。

用于城际网约出行的智能订单分配算法

智能订单分配算法

  为了解决城际网约车的订单分配问题,提出了一种高效的智能订单分配算法,它不仅能够有效地处理城际网约车的订单分配任务,而且可以利用多目标优化方法为城际网约车服务提供同时满足多个需求的高质量的分配方案集合。 智能订单分配算法的总体框架下图所示。

在本文中,需求预测之后的时间数据被用作参数,与匈牙利算法结合,对车辆的预测调度分配进行目标函数建立的过程如下: ### 1. 需求预测 首先,本文使用了基于 ST-Transformer 的模型城际网约车的需求进行了预测。具体步骤包括: - **数据预处理**:对订单数据进行预处理,提取时间、空间、天气等因素。 - **模型构建**:构建了 ST-Transformer 模型,该模型能够同时提取时间特征和空间特征。 - **模型验证**:在实际数据集上验证模型的预测效果,并与经典模型进行比较,验证了模型的优越性。 ### 2. 需求预测结果 需求预测的结果包括每个时间点(如每小时)和每个地理位置(如每个网格)的网约车需求量。这些预测结果被用作调度优化模型的输入参数。 ### 3. 调度优化模型构建 基于需求预测的结果,本文构建了多目标调度优化模型。具体目标函数包括: - **乘客等待时间最少**: \[ \text{Min} \sum_{i} T_{\text{wait}, i} \] 其中,\( T_{\text{wait}, i} \) 表示第 \( i \) 个预测乘客的等待时间。等待时间的计算公式为: \[ T_{\text{wait}, i} = \begin{cases} (t_{j,i} - T) x_{j,i} + T (1 - x_{j,i}) & \text{if } t_{j,i} \geq T \\ 0 + T (1 - x_{j,i}) & \text{if } t_{j,i} < T \end{cases} \] 其中,\( t_{j,i} \) 表示第 \( j \) 辆车行驶至第 \( i \) 个预测乘客所在网格所需时间,\( T \) 为预测时间间隔,\( x_{j,i} \) 是一个 0-1 变量,当第 \( j \) 辆车提前调度至第 \( i \) 个预测乘客所在网格时,\( x_{j,i} = 1 \)。 - **司机收益最高**: \[ \text{Max} \sum_{j} \sum_{i} l_i x_{j,i} \] 其中,\( l_i \) 表示第 \( i \) 个预测乘客到达目的地的路程。 ### 4. 模型约束 为了确保调度的可行性,模型还包括以下约束: - **车辆调度路程限制**: \[ l_{j,i} \leq L_{\text{Max}} \] 其中,\( L_{\text{Max}} \) 为车辆调度路程的最大限制长度。 - **乘客等待时间限制**: \[ T_{\text{wait}, i} \leq T_{\text{wait}, w} \] 其中,\( T_{\text{wait}, w} \) 为乘客等待时间的时间窗,即最大等待时间。 ### 5. 求解算法 在构建了上述目标函数和约束条件后,本文使用了匈牙利算法对车辆的调度进行求解。具体步骤如下: - **乘客集合求解**:利用算法求得每辆车的可载乘客集合。算法如下: ```plaintext 输入:所有车辆当前的地点 \( a_j \);预测乘客的出发时刻 \( T_{\text{start}, i} \);出发地点 \( a_{\text{start}, i} \);到达地点 \( a_{\text{end}, i} \) 输出:每辆车的可载乘客集合 \( \phi_j \) for (所有车辆) do for (所有乘客) do if \( T_{\text{now}} + T_{j,i} \leq T_{\text{start}, i} + T_{\text{start}, w} \) then \( \phi_j \leftarrow \phi_j + i(p_i, t_{\text{start}, i}, a_{\text{start}, i}, a_{\text{end}, i}) \) end if end for end for ``` - **拼车匹配求解**:在城际网约拼车调度优化模型中,增加了拼车匹配过程。算法如下: ```plaintext 输入:每辆车的可载乘客集合 \( \phi_j \);司机集合 \( J \);每个乘客出发栅格与目的栅格的行驶路径 \( r_i \) 输出:每辆车的拼车匹配乘客集合 \( \varphi_j \) for each \( j \) in \( J \) do for each \( I \) and \( k \) in \( \phi_j \) do \( \varphi_j = \text{NULL} \) if \( (T_{\text{start}, k} - T_{\text{start}, i}) + T_w \geq T_{j,i,k} \) then if \( T_{j,i,k} + T_w \geq (T_{\text{start}, k} - T_{\text{start}, i}) \) then if \( r_k \in r_i \) then \( \varphi_j \leftarrow \varphi_j + (i, k) \) end if end if end if end for end for ``` - **匈牙利算法求解**:将预测的乘客和司机看作是二分图中的两个集合,使用匈牙利算法对车辆的调度优化求解算法流程如下: ```plaintext 输入:当前时间 \( t \);每辆车的可载乘客集合 \( \phi_j \);司机集合 \( J \);二分图邻接矩阵 \( G \);完成数组 \( M \);全局变量 \( D \) 输出:调度优化方案 \( Q \) 二分图邻接矩阵 \( G \) 全为 0,初始化调度优化方案 \( Q \) 均为 -1 for each \( j \) in \( J \) do for each \( i \) in \( \phi_j \) do \( G[j][i] \leftarrow \text{true} \) end for end for Sort(J, \phi_j); for each \( j \) in \( J \) do 初始化 \( D \leftarrow \{ \text{false} \} \) \( i \leftarrow 0 \) while \( i < G[0].\text{length} \) do if \( G[j][i] \&\& !D[i] \) then \( D[i] \leftarrow \{ \text{true} \} \) if \( Q[i] == -1 \text{|| find}(Q[i]) \) then \( Q[i] \leftarrow j \) return true; end if end if \( i \leftarrow i + 1 \) end while end for return Q; ``` ### 6. 结果分析 通过上述模型算法,本文对 2020 年 9 月 1 日至 2020 年 9 月 7 日的城际网约车城际网约拼车进行了调度优化。结果显示,优化模型显著减少了乘客的等待时间,提高了平台的收益和拼车匹配成功率,验证了模型的有效性。 ### 总结 本文通过需求预测得到的时间数据,结合匈牙利算法,构建了多目标调度优化模型,有效地提高了城际网约车的运营效率。具体来说,需求预测结果被用作模型的输入参数,匈牙利算法用于求解最优的车辆调度方案,从而实现了乘客等待时间最少、司机收益最高和拼车匹配成功率最高的目标。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值