|
1 车辆路径规划问题简介
对于不熟悉运筹学的童鞋,我们这里先科普一下什么是车辆路径规划问题(VRP)。车辆路径规划问题(VRP)是运筹优化领域最经典的优化问题之一。在此问题中,有若干个客户对某种货物有一定量的需求,车辆可以从仓库取货之后配送到客户手中。客户点与仓库点组成了一个配送网络,车辆可以在此网络中移动从而完成配送任务。在求解此问题过程中,需要优化的决策变量为每个客户的配送任务应该分配到哪一辆车上,以及每辆车完成客户配送任务的先后顺序,优化目标为最小化车辆总行驶距离和使用的车辆数。
上面介绍的仅仅是车辆路径规划问题最基本的形式,在实际场景中往往要根据实际应用问题的需求进一步添加约束和目标函数构成新的变形的车辆路径规划问题,其中比较常见的有 CVRP:Capacitated VRP, 限制配送车辆的承载体积、重量等。VRPTW:VRP with Time Windows, 客户对货物的送达时间有时间窗要求。VRPPD:VRP with Pickup and Delivery, 车辆在配送过程中可以一边揽收一边配送,在外卖O2O场景中比较常见。MDVRP: Multi-Depot VRP, 配送网络中有多个仓库,同样的货物可以在多个仓库取货。SDVRP(Split Delivery VRP)同一个客户的货物,可由多辆车分拆送达。
2 自适应大规模领域搜索算法求解VRP问题
车辆路径规划问题是典型的NP-hard问题,非常具有挑战性。车辆路径规划问题在学术界和工业界也已经研究了几十年。以branch and cut and price 为代表的数学优化算法能给出质量较好的解,但在面对较大规划问题的时候其求解时间难以满足实际应用的需求。启发式和元启发式算法被证明在求解VRP方面具有很好的效果和效率。一些经过精心设计的元启发式算法,例如模拟退火、禁忌搜索、遗传算法、蚁群算法、变邻域搜索、自适应大规模邻域搜索算法(ALNS)等在求解VRP上有着非常好的表现。
因此在求解VRP问题中选用了ALNS算法。ALNS算法属于邻域搜索算法的一种。邻域搜索算法(或称为局部搜索算法)是一类非常常见的改进算法,其在每次迭代时通过搜索当前解的“邻域”找到更优的解。ALNS算法的基本流程如下图所示:
Step1:使用一定的规则构造一个初始解(即Initial过程);
Step2:基于算子的权重,选择此次迭代过程中使用的Ruin算子和Insert算子;
Step3:对此次迭代的初始解执行Ruin操作,即将部分已经被车辆服务的客户点删除,使初始解成为一个不可行解;
Step4:对步骤(3)获得的解执行Insert操作,即对于还没有被车辆服务的客户点,将其插入到解中,尽量获得一个可行解;
Step5:基于优化目标函数评估步骤(4)获得的新的解,并根据一定的策略决定是否接受新解;
Step6:判断是否达到终止条件。如果是,则终止计算,返回当前找到的最好解;否则,基于此轮计算中算子的表现,更新算子的权重,并返回到步骤(2)。
相对于其它算法,ALNS算法的优势包括:
1 算法框架易于拓展,除了求解标准的VRP之外,还能求解VRPPD,MDVRP等变型问题
2 相对于普通的Local search 类型的算法,ALNS在每一步搜索过程能够探索更大的解空间
3 ALNS算法在搜索过程中能够自适应地选择合适的算子,从而对于不同类型的问题数据能够有比较稳定的良好求解结果
4 通过设计不同类型的算子,ALNS可以实现不同的搜索策略,从而便于算法的升级和拓展。
对于大部分启发式算法而言,可以天然地通过并行化计算来提升搜索效率和效果,例如并行地计算评估多个相邻解的质量、向多个邻域方向进行搜索或者使用多种策略进行搜索等,甚至并行地使用多种算法进行搜索等。所以为了进一步提升VRP引擎的求解质量,菜鸟仓配智能化算法团队对VRP引擎进行了并行化升级。算法并行化加速的策略有以下三种:
(1)Population Island在算法执行过程中,有若干个Island并行执行计算,每个Island独立地进行演化,其中各有一个Master和若干Worker,其中Worker负责具体的搜索任务的计算执行,Master负责任务的分配协调以及与其它Island之间的通信等。每隔一定的计算步数,各个Island的Master之间会相同通信,分享搜索过程中获得的知识,从而提升整体的搜索效率。
(2)Parallel Memetic整个算法可以分为两个阶段,第一个阶段的计算重点在于减少使用的车辆数(Delete Route),在此阶段中,若干个Worker并行计算,并每隔一定的步数相互通信分享信息。第一阶段结束之后,会获得若干中间结果,将这些结果作为第二阶段中每个Worker上的初始演化种群进行计算。第二阶段的计算重点在于降低车辆行驶距离(Reduce Distance),第二阶段的Worker之间同样有相互通信分享知识的机制,而且可以通过控制演化过程中父代个体的选择机制来进行动态地调节Exploration与Exploitation。
(3)Central Pool在算法中有若干个Worker负责具体的搜索任务,并将搜索得到的解返回到Central Pool中,由Central Manager对解进行排序、筛选、聚类等处理,然后Central Manager会依据当前Central Pool中的解集情况生成新的计算任务并发送给Worker执行。Central Manager可以对解空间进行合理的刻画,并通过计算任务的管控分配在Exploration与Exploitation之间进行平衡,从而提升求解效率。
3 GCN-NPEC求解 VRP问题
此外,菜鸟算法团队还研发了基于深度强化学习的Greed DRL Solver,可以求解各种变种VRP(CVRP, SDVRP, SVPTW, PDVRP等), 及Batching, Assignment, Scheduling等多种OR问题。对于大规模的VRP问题(>=1000个Customers),Greed DRL Solver可以在几十毫秒内输出高质量的解。目前在Gehring & Homberger Benchmark可以达到BKS(Best Known Solution)的97%~99%。
该算法基于图卷积网络的,采用联合强化学习和监督学习的算法进行训练,模型表述为GCN-NPEC(Graph Convolutional Networks with Node
Sequential Prediction and Edge Classification),如下图所示:
首先采样图卷积网络对CVRP问题进行编码。将编码后的结果输出给解码器。解码器有2个,其中一个解码器是 sequential prediction decoder,采样递归神经网络来实现,其输出为一个序列(即VRP问题的一个解)。另外一个解码器采用多层感知器来实现,将另外一个解码器sequential prediction decoder的输出作为label来训练。详细的算法内容可见参考文献【1】
参考文献:
【1】Duan L, Zhan Y, Hu H, et al. Efficiently Solving the Practical Vehicle Routing Problem: A Novel Joint Learning Approach[C] Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 2020: 3054-3063.
【2】世界冠军之路:菜鸟车辆路径规划求解引擎研发历程 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|