Chain-of-Context Learning: Dynamic Constraint Understanding for Multi-Task VRPs
Organizations: School of Computing and Information Systems, Singapore Management University, Singapore · Guangdong Laboratory of AI and Digital Economy, Shenzhen, Guangdong, China · School of Artificial Intelligence, Sun Yat-sen University, Zhuhai, Guangdong, China
Abstract
Multi-task Vehicle Routing Problems (VRPs) aim to minimize routing costs while satisfying diverse constraints. Existing solvers typically adopt a unified reinforcement learning (RL) framework to learn generalizable patterns across tasks. However, they often overlook the constraint and node dynamics during the decision process, making the model fail to accurately react to the current context. To address this limitation, we propose Chain-of-Context Learning (CCL), a novel framework that progressively captures the evolving context to guide fine-grained node adaptation. Specifically, CCL constructs step-wise contextual information via a Relevance-Guided Context Reformulation (RGCR) module, which adaptively prioritizes salient constraints. This context then guides node updates through a Trajectory-Shared Node Re-embedding (TSNR) module, which aggregates shared node features from all trajectories' contexts and uses them to update inputs for the next step. By modeling evolving preferences of the RL agent, CCL captures step-by-step dependencies in sequential decision-making. We evaluate CCL on 48 diverse VRP variants, including 16 in-distribution and 32 out-of-distribution (with unseen constraints) tasks. Experimental results show that CCL performs favorably against the state-of-the-art baselines, achieving the best performance on all in-distribution tasks and the majority of out-of-distribution tasks.
Figures & tables
| Methods | Methods | ||||||||||||||
| Obj. | Gap | Time | Obj. | Gap | Time | Obj. | Gap | Time | Obj. | Gap | Time | ||||
| CVRP | HGS-PyVRP | 10.372 | 10.4m | 15.628 | 20.8m | VRPTW | HGS-PyVRP | 16.031 | 10.4m | 25.423 | 20.8m | ||||
| MTPOMO | 10.520 | 1.423% | 2s | 15.941 | 2.030% | 8s | MTPOMO | 16.419 | 2.423% | 2s | 26.433 | 3.962% | 9s | ||
| MVMoE | 10.499 | 1.229% | 3s | 15.888 | 1.693% | 11s | MVMoE | 16.400 | 2.298% | 3s | 26.390 | 3.789% | 11s | ||
| RF-TE | 10.502 | 1.257% | 2s | 15.860 | 1.524% | 8s | RF-TE | 16.341 | 1.933% | 2s | 26.228 | 3.154% | 8s | ||
| CaDA | 10.505 | 1.287% | 2s | 15.843 | 1.412% | 8s | CaDA | 16.312 | 1.745% | 1s | 26.169 | 2.925% | 9s | ||
| Methods | MDOVRPB, MDOVRPL, MDVRPBL, MDOVRPBL | MDOVRPBTW, MDOVRPLTW, MDVRPBLTW, MDOVRPBLTW | ||||||||||||||
| MDCVRP, MDOVRP, MDVRPB, MDVRPL | MDCVRPTW, MDOVRPTW, MDVRPBTW, MDVRPLTW | |||||||||||||||
| VRPMB, OVRPMB, VRPMBL, OVRPMBL | VRPMBTW, OVRPMBTW, VRPMBLTW, OVRPMBLTW | |||||||||||||||
| MDVRPMB, MDOVRPMB, MDVRPMBL, MDOVRPMBL | MDVRPMBTW, MDOVRPMBTW, MDVRPMBLTW, MDOVRPMBLTW | |||||||||||||||
| Obj. | Gap | Time | Obj. | Gap | Time | Obj. | Gap | Time | Obj. | Gap | Time | |||||
| RF-TE | 9.651 | 40.472% | 1s | 14.746 | 45.724% | 9s | 14.557 | 32.586% | 2s | 24.217 | 36.564% | 10s | ||||
| Methods | CVRP | OVRP | VRPB | VRPL | OVRPB | OVRPL | VRPBL | OVRPBL | Avg. |
| CCL † | 0.881% | 1.566% | 1.921% | 1.027% | 1.344% | 1.569% | 2.450% | 1.335% | 1.512% |
| - RGCR | 0.874% | 1.710% | 1.969% | 0.993% | 1.396% | 1.712% | 2.486% | 1.407% | 1.568% |
| - TSNR | 0.961% | 2.284% | 2.413% | 1.131% | 1.969% | 2.311% | 3.001% | 1.973% | 2.005% |
| - RGCR - TSNR | 1.014% | 2.395% | 2.416% | 1.160% | 2.036% | 2.411% | 3.088% | 2.041% | 2.070% |
| Methods | VRPTW | OVRPTW | VRPBTW | VRPLTW | OVRPBTW | OVRPLTW | VRPBLTW | OVRPBLTW | Avg. |
| CCL † | 0.907% | 0.506% | 0.678% | 1.192% | 0.416% | 0.501% | 0.899% | 0.414% | 0.689% |
| Methods | Gap (%) | Memory (GiB) | # Params (M) | Time (s) |
| CaDA | 1.90 | 6.01 | 3.37 + 0.1 | 1.5 |
| CaDA † | 1.63 | 7.15 | 3.37 + 0.3 | 2.7 |
| CaDA † -HD | 1.53 | 7.55 | 3.37+1.0 | 5.1 |
| CCL | 1.28 | 8.13 | 3.39 + 0.45 | 5.4 |
| CCL † | 1.10 | 8.76 | 3.39 + 0.66 | 6.5 |
| ASW-TAM | 29.93 | 15.47 | 3.39 + 0.66 | 96.1 |
| Methods | Obj. | Gap | Time |
| RF-TE | 29558 | 145.593% | 1.4s |
| CaDA | 22917 | 88.188% | 1.4s |
| CCL | 20633 | 70.961% | 2.0s |
Appendix figures & tables13 assets
Supplementary material from the paper’s appendix.
Appendix
| Methods | Methods | ||||||||||||||
| Obj. | Gap | Time | Obj. | Gap | Time | Obj. | Gap | Time | Obj. | Gap | Time | ||||
| CVRP | HGS-PyVRP | 10.372 | 10.4m | 15.628 | 20.8m | VRPTW | HGS-PyVRP | 16.031 | 10.4m | 25.423 | 20.8m | ||||
| CaDA ‡ | 10.494 | 1.182% | 2s | 15.870 | 1.578% | 8s | CaDA ‡ | 16.278 | 1.536% | 2s | 26.070 | 2.530% | 8s | ||
| CaDA | 10.505 | 1.287% | 2s | 15.843 | 1.412% | 8s | CaDA | 16.312 | 1.745% | 1s | 26.169 | 2.925% | 9s | ||
| CCL | 10.473 | 0.977% | 5s | 15.823 | 1.287% | 19s | CCL | 16.190 | 0.979% | 5s | 25.913 | 1.908% | 21s | ||
| OVRP | HGS-PyVRP | 6.507 | 10.4m | 9.725 | 20.8m | OVRPTW | HGS-PyVRP | 10.510 | 10.4m | 16.926 | 20.8m | ||||
| Tasks | P-value | Tasks | P-value | Tasks | P-value | Tasks | P-value | ||||
| CVRP | 8.16% | 2.7e-05 | OVRP | 29.21% | 1.2e-76 | VRPBLTW | 41.61% | 2.2e-68 | OVRPBLTW | 51.19% | 6.2e-68 |
| VRPB | 20.14% | 5.0e-42 | OVRPB | 29.86% | 1.4e-62 | VRPBTW | 46.84% | 4.0e-81 | OVRPBTW | 50.63% | 2.8e-68 |
| VRPBL | 20.03% | 2.0e-39 | OVRPBL | 31.05% | 4.7e-68 | VRPLTW | 41.39% | 2.2e-97 | OVRPLTW | 51.50% | 2.9e-79 |
| VRPL | 7.66% | 2.4e-04 | OVRPL | 28.69% | 3.5e-74 | VRPTW | 45.72% | 2.9e-99 | OVRPTW | 50.85% | 3.2e-75 |
| Tasks | RF-TE | CaDA | CaDA † | CCL | CCL † | ||||||||||||||
| Obj. | Gap | Time | Obj. | Gap | Time | Obj. | Gap | Time | Obj. | Gap | Time | Obj. | Gap | Time | |||||
| VRPMB | 9.879 | 8.861% | 1s | 9.781 | 7.749% | 2s | 9.722 | 7.097% | 3s | 9.943 | 9.538% | 3s | 9.940 | 9.486% | 4s | ||||
| MDCVRP | 12.559 | 56.957% | 2s | 12.335 | 54.083% | 2s | 13.593 | 70.078% | 4s | 10.829 | 34.846% | 4s | 10.554 | 31.361% | 6s | ||||
| MDOVRP | 6.876 | 29.051% | 1s | 6.825 | 28.069% | 2s | 6.260 | 17.329% | 3s | 6.413 | 20.155% | 4s | 6.286 | 17.719% | 5s | ||||
| MDVRPB | 12.725 | 60.956% | 2s | 12.654 | 60.054% | 2s | 12.190 | 54.066% | 3s | 11.679 | 47.450% | 4s | 11.001 | 38.750% | 5s | ||||
| MDVRPL | 12.618 | 57.370% | 2s | 12.426 | 54.988% | 2s | 13.433 | 67.697% | 4s | 11.278 | 40.248% | 4s | 10.912 | 35.667% | 6s | ||||
| Tasks | RF-TE | CaDA | CaDA † | CCL | CCL † | ||||||||||||||
| Obj. | Gap | Time | Obj. | Gap | Time | Obj. | Gap | Time | Obj. | Gap | Time | Obj. | Gap | Time | |||||
| VRPMB | 14.888 | 10.189% | 8s | 14.710 | 8.822% | 8s | 14.652 | 8.399% | 13s | 15.322 | 13.438% | 14s | 14.936 | 10.530% | 18s | ||||
| MDCVRP | 19.684 | 67.107% | 10s | 20.628 | 75.392% | 11s | 20.964 | 78.117% | 18s | 16.769 | 41.675% | 17s | 16.834 | 42.308% | 24s | ||||
| MDOVRP | 10.683 | 34.368% | 9s | 10.605 | 33.387% | 10s | 9.849 | 23.695% | 15s | 10.095 | 26.715% | 15s | 9.753 | 22.409% | 20s | ||||
| MDVRPB | 18.721 | 61.761% | 9s | 19.494 | 68.604% | 11s | 18.780 | 62.221% | 17s | 18.185 | 56.977% | 19s | 18.625 | 60.931% | 25s | ||||
| MDVRPL | 20.100 | 70.498% | 10s | 20.867 | 77.336% | 12s | 21.001 | 78.277% | 18s | 17.494 | 47.699% | 24s | 18.407 | 55.828% | 29s | ||||
| Methods | Obj. | Time | Avg. Time |
| HGS-PyVRP | 10.372 | 10m | 10.0s |
| Gurobi-15m | 10.568 | 120m | 15.0m |
| LKH | 10.392 | 63s | 1.1s |
| CCL † | 10.463 | 6s | 0.2s |
| Methods | Obj. | Gap | Time |
| CCL † | 11.447 | 1.10% | 6.5s |
| - ReLD (CCL) | 11.464 | 1.28% | 5.4s |
| - RGCR | 11.477 | 1.40% | 4.6s |
| - TSNR | 11.518 | 1.76% | 2.8s |
| - TSNR - RGCR | 11.529 | 1.88% | 2.0s |
| Tasks | Cross-Attention | Self-Attention | Tasks | Cross-Attention | Self-Attention | ||||||||||
| Obj. | Gap | Time | Obj. | Gap | Time | Obj. | Gap | Time | Obj. | Gap | Time | ||||
| CVRP | 10.463 | 0.881% | 6s | 10.461 | 0.867% | 7s | VRPTW | 16.177 | 0.907% | 7s | 16.186 | 0.955% | 8s | ||
| OVRP | 6.610 | 1.566% | 6s | 6.611 | 1.582% | 7s | OVRPTW | 10.564 | 0.506% | 7s | 10.568 | 0.540% | 8s | ||
| VRPB | 9.875 | 1.921% | 6s | 9.873 | 1.896% | 7s | VRPBTW | 18.419 | 0.678% | 7s | 18.427 | 0.719% | 8s | ||
| VRPL | 10.698 | 1.027% | 6s | 10.694 | 0.993% | 7s | VRPLTW | 16.556 | 1.192% | 7s | 16.564 | 1.246% | 8s | ||
| OVRPB | 6.992 | 1.344% | 6s | 6.992 | 1.337% | 7s | OVRPBTW | 11.718 | 0.416% | 7s | 11.721 | 0.444% | 8s | ||
| Tasks | CaDA-HD | CCL | Tasks | CaDA-HD | CCL | ||||||||||
| Obj. | Gap | Time | Obj. | Gap | Time | Obj. | Gap | Time | Obj. | Gap | Time | ||||
| CVRP | 10.468 | 0.926% | 6s | 10.473 | 0.977% | 5s | VRPTW | 16.293 | 1.631% | 5s | 16.190 | 0.979% | 5s | ||
| OVRP | 6.635 | 1.937% | 5s | 6.636 | 1.957% | 5s | OVRPTW | 10.615 | 0.986% | 5s | 10.569 | 0.543% | 6s | ||
| VRPB | 9.908 | 2.267% | 5s | 9.916 | 2.352% | 5s | VRPBTW | 18.529 | 1.280% | 5s | 18.430 | 0.738% | 6s | ||
| VRPL | 10.704 | 1.091% | 5s | 10.710 | 1.145% | 5s | VRPLTW | 16.676 | 1.930% | 5s | 16.579 | 1.333% | 6s | ||
| OVRPB | 7.019 | 1.725% | 5s | 7.008 | 1.568% | 5s | OVRPBTW | 11.772 | 0.874% | 6s | 11.721 | 0.436% | 6s | ||
| CVRP | RF-TE | CaDA | CCL | CCL-Ens | VRPTW | RF-TE | CaDA | CCL | |||||||||
| Instances | Opt. | Obj. | Gap | Obj. | Gap | Obj. | Gap | Obj. | Gap | Instances | Opt. | Obj. | Gap | Obj. | Gap | Obj. | Gap |
| X-n101-k25 | 27591 | 29087 | 5.422% | 28765 | 4.255% | 28765 | 4.255% | 28727 | 4.117% | R101 | 1638 | 1604 | -2.058% | 1612 | -1.569% | 1619 | -1.142% |
| X-n106-k14 | 26362 | 27162 | 3.035% | 27069 | 2.682% | 26966 | 2.291% | 26864 | 1.904% | R102 | 1467 | 1567 | 6.846% | 1572 | 7.187% | 1553 | 5.891% |
| X-n110-k13 | 14971 | 15314 | 2.291% | 15425 | 3.033% | 15386 | 2.772% | 15185 | 1.429% | R103 | 1209 | 1493 | 23.521% | 1458 | 20.625% | 1444 | 19.467% |
| X-n115-k10 | 12747 | 13338 | 4.636% | 13143 | 3.107% | 13334 | 4.605% | 13162 | 3.256% | R104 | 972 | 1315 | 35.358% | 1325 | 36.387% | 1308 | 34.637% |
| X-n120-k6 | 13332 | 13765 | 3.248% | 13741 | 3.068% | 13852 | 3.900% | 13677 | 2.588% | R105 | 1355 | 1456 | 7.430% | 1463 | 7.947% | 1443 | 6.471% |
| VRPTW | RF-TE | CaDA | CCL | |||||||
| Instances | Opt. | Obj. | Gap | Time | Obj. | Gap | Time | Obj. | Gap | Time |
| C1-6-1 | 14077 | 17537 | 24.583% | 1.4s | 17355 | 23.290% | 1.5s | 16418 | 16.633% | 2.5s |
| C1-6-10 | 13618 | 35201 | 158.498% | 1.2s | 24365 | 78.924% | 1.3s | 17861 | 31.162% | 1.5s |
| C1-6-2 | 13948 | 20505 | 47.007% | 1.1s | 21571 | 54.650% | 1.1s | 20980 | 50.413% | 1.6s |
| C1-6-3 | 13757 | 22648 | 64.635% | 1.1s | 23142 | 68.226% | 1.1s | 24090 | 75.117% | 1.6s |
| C1-6-4 | 13539 | 22743 | 67.986% | 1.1s | 22601 | 66.937% | 1.1s | 23787 | 75.698% | 1.7s |
RL for Combinatorial Optimization
Reinforcement learning for combinatorial optimization learns sequential decisions and search strategies for difficult discrete problems.
See all 106 papers