{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/reinforcement-learning-for-solving-the","title":"Reinforcement Learning for Solving the Vehicle Routing Problem","arxiv_id":"1802.04240","date":"2018-02-12","proceeding":"NeurIPS 2018 12","authors":["Mohammadreza Nazari","Afshin Oroojlooy","Lawrence V. Snyder","Martin Takáč"],"abstract":"We present an end-to-end framework for solving the Vehicle Routing Problem\n(VRP) using reinforcement learning. In this approach, we train a single model\nthat finds near-optimal solutions for problem instances sampled from a given\ndistribution, only by observing the reward signals and following feasibility\nrules. Our model represents a parameterized stochastic policy, and by applying\na policy gradient algorithm to optimize its parameters, the trained model\nproduces the solution as a sequence of consecutive actions in real time,\nwithout the need to re-train for every new problem instance. On capacitated\nVRP, our approach outperforms classical heuristics and Google's OR-Tools on\nmedium-sized instances in solution quality with comparable computation time\n(after training). We demonstrate how our approach can handle problems with\nsplit delivery and explore the effect of such deliveries on the solution\nquality. Our proposed framework can be applied to other variants of the VRP\nsuch as the stochastic VRP, and has the potential to be applied more generally\nto combinatorial optimization problems.","url_abs":"http://arxiv.org/abs/1802.04240v2","url_pdf":"http://arxiv.org/pdf/1802.04240v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"reinforcement-learning-for-solving-the","repo_url":"https://github.com/DeepLearningCUCS/RLVRP","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":null},{"paper_slug":"reinforcement-learning-for-solving-the","repo_url":"https://github.com/Nina-Konovalova/TSP-RL-Skoltech_project","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"unanswered"}},{"paper_slug":"reinforcement-learning-for-solving-the","repo_url":"https://github.com/OptMLGroup/VRP-RL","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"unanswered"}},{"paper_slug":"reinforcement-learning-for-solving-the","repo_url":"https://github.com/ajayn1997/RL-VRP-PtrNtwrk","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"combinatorial-optimization","task_name":"Combinatorial Optimization"},{"task_slug":"reinforcement-learning","task_name":"Reinforcement Learning"},{"task_slug":"reinforcement-learning-1","task_name":"Reinforcement Learning (RL)"},{"task_slug":"reinforcement-learning-2","task_name":"reinforcement-learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1802.04240","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1802.04240"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Nina-Konovalova/TSP-RL-Skoltech_project","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/OptMLGroup/VRP-RL","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ajayn1997/RL-VRP-PtrNtwrk","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/DeepLearningCUCS/RLVRP","reach":null}],"summary":{"ran_honours":1,"ran_fixture":1,"ran_violates":1},"by_repo_kind":{"listed":{"samples":2,"ran":2,"repositories":2}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":3,"samples":[{"code_sha256_prefix":"eb5f330b628df2a1","entry":"create_VRP_dataset","repo":"DeepLearningCUCS/RLVRP","repo_kind":"listed","path":"DeepLearning_Fall2019_RL_VRP_yg2631_zh2366.py","file_url":"https://github.com/DeepLearningCUCS/RLVRP/blob/HEAD/DeepLearning_Fall2019_RL_VRP_yg2631_zh2366.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"eb5f330b628df2a1"}},{"code_sha256_prefix":"8c63c20097bd4bce","entry":"reward","repo":"ajayn1997/RL-VRP-PtrNtwrk","repo_kind":"listed","path":"Tasks/vrp.py","file_url":"https://github.com/ajayn1997/RL-VRP-PtrNtwrk/blob/HEAD/Tasks/vrp.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8c63c20097bd4bce"}},{"code_sha256_prefix":"248284f69adfeaad","entry":"str2bool","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"248284f69adfeaad"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}