{"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/learning-tsp-requires-rethinking","title":"Learning the Travelling Salesperson Problem Requires Rethinking Generalization","arxiv_id":"2006.07054","date":"2020-06-12","proceeding":null,"authors":["Chaitanya K. Joshi","Quentin Cappart","Louis-Martin Rousseau","Thomas Laurent"],"abstract":"End-to-end training of neural network solvers for graph combinatorial optimization problems such as the Travelling Salesperson Problem (TSP) have seen a surge of interest recently, but remain intractable and inefficient beyond graphs with few hundreds of nodes. While state-of-the-art learning-driven approaches for TSP perform closely to classical solvers when trained on trivially small sizes, they are unable to generalize the learnt policy to larger instances at practical scales. This work presents an end-to-end neural combinatorial optimization pipeline that unifies several recent papers in order to identify the inductive biases, model architectures and learning algorithms that promote generalization to instances larger than those seen in training. Our controlled experiments provide the first principled investigation into such zero-shot generalization, revealing that extrapolating beyond training data requires rethinking the neural combinatorial optimization pipeline, from network layers and learning paradigms to evaluation protocols. Additionally, we analyze recent advances in deep learning for routing problems through the lens of our pipeline and provide new directions to stimulate future research.","url_abs":"https://arxiv.org/abs/2006.07054v6","url_pdf":"https://arxiv.org/pdf/2006.07054v6.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":"learning-tsp-requires-rethinking","repo_url":"https://github.com/chaitjo/learning-tsp","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"learning-tsp-requires-rethinking","repo_url":"https://github.com/chaitjo/graph-convnet-tsp","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"learning-tsp-requires-rethinking","repo_url":"https://github.com/chaitjo/learning-paradigms-for-tsp","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"learning-tsp-requires-rethinking","repo_url":"https://github.com/longkangli/pfss-il","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"combinatorial-optimization","task_name":"Combinatorial Optimization"},{"task_slug":"transfer-learning","task_name":"Transfer Learning"},{"task_slug":"zero-shot-generalization","task_name":"Zero-shot Generalization"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2006.07054","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2006.07054"}},"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/longkangli/pfss-il","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/chaitjo/learning-tsp","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/chaitjo/learning-paradigms-for-tsp","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/chaitjo/graph-convnet-tsp","reach":null}],"summary":{"ran_draft_wrong":2,"ran_honours":1,"unverified":4},"by_repo_kind":{"official":{"samples":1,"ran":0,"repositories":1},"listed":{"samples":6,"ran":3,"repositories":1}},"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":0,"samples":[{"code_sha256_prefix":"82eaf1d494d4fc16","entry":"generate_op_data","repo":"chaitjo/learning-paradigms-for-tsp","repo_kind":"listed","path":"generate_data.py","file_url":"https://github.com/chaitjo/learning-paradigms-for-tsp/blob/HEAD/generate_data.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"82eaf1d494d4fc16"}},{"code_sha256_prefix":"50522f260eb670be","entry":"generate_tsp_data","repo":"chaitjo/learning-paradigms-for-tsp","repo_kind":"listed","path":"generate_data.py","file_url":"https://github.com/chaitjo/learning-paradigms-for-tsp/blob/HEAD/generate_data.py","link_basis":"plan_row","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"50522f260eb670be"}},{"code_sha256_prefix":"3a929eede11222c2","entry":"generate_vrp_data","repo":"chaitjo/learning-paradigms-for-tsp","repo_kind":"listed","path":"generate_data.py","file_url":"https://github.com/chaitjo/learning-paradigms-for-tsp/blob/HEAD/generate_data.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3a929eede11222c2"}},{"code_sha256_prefix":"879b035fee7c0b04","entry":"get_options","repo":"chaitjo/learning-tsp","repo_kind":"official","path":"options.py","file_url":"https://github.com/chaitjo/learning-tsp/blob/HEAD/options.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"879b035fee7c0b04"}},{"code_sha256_prefix":"182bb7168c89e297","entry":"get_options","repo":"chaitjo/learning-paradigms-for-tsp","repo_kind":"listed","path":"options.py","file_url":"https://github.com/chaitjo/learning-paradigms-for-tsp/blob/HEAD/options.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"182bb7168c89e297"}},{"code_sha256_prefix":"c2eb1a9181034240","entry":"solve_all_gurobi","repo":"chaitjo/learning-paradigms-for-tsp","repo_kind":"listed","path":"problems/tsp/tsp_gurobi.py","file_url":"https://github.com/chaitjo/learning-paradigms-for-tsp/blob/HEAD/problems/tsp/tsp_gurobi.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c2eb1a9181034240"}},{"code_sha256_prefix":"c2edba20f4705527","entry":"solve_euclidian_tsp","repo":"chaitjo/learning-paradigms-for-tsp","repo_kind":"listed","path":"problems/tsp/tsp_gurobi.py","file_url":"https://github.com/chaitjo/learning-paradigms-for-tsp/blob/HEAD/problems/tsp/tsp_gurobi.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c2edba20f4705527"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}