{"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/an-efficient-graph-convolutional-network","title":"An Efficient Graph Convolutional Network Technique for the Travelling Salesman Problem","arxiv_id":"1906.01227","date":"2019-06-04","proceeding":null,"authors":["Chaitanya K. Joshi","Thomas Laurent","Xavier Bresson"],"abstract":"This paper introduces a new learning-based approach for approximately solving the Travelling Salesman Problem on 2D Euclidean graphs. We use deep Graph Convolutional Networks to build efficient TSP graph representations and output tours in a non-autoregressive manner via highly parallelized beam search. Our approach outperforms all recently proposed autoregressive deep learning techniques in terms of solution quality, inference speed and sample efficiency for problem instances of fixed graph sizes. In particular, we reduce the average optimality gap from 0.52% to 0.01% for 50 nodes, and from 2.26% to 1.39% for 100 nodes. Finally, despite improving upon other learning-based approaches for TSP, our approach falls short of standard Operations Research solvers.","url_abs":"https://arxiv.org/abs/1906.01227v2","url_pdf":"https://arxiv.org/pdf/1906.01227v2.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":"an-efficient-graph-convolutional-network","repo_url":"https://github.com/chaitjo/graph-convnet-tsp","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"an-efficient-graph-convolutional-network","repo_url":"https://github.com/LorenzoSciandra/GraphConvolutionalBranchandBound","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"an-efficient-graph-convolutional-network","repo_url":"https://github.com/chaitjo/learning-tsp","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"an-efficient-graph-convolutional-network","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":[],"methods":[{"method_slug":"graph-convolutional-networks","method_name":"Graph Convolutional Networks"},{"method_slug":"speed","method_name":"SPEED"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1906.01227","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1906.01227"}},"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/LorenzoSciandra/GraphConvolutionalBranchandBound","reach":{"status":"ok","spdx":"MIT"}},{"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/graph-convnet-tsp","reach":null}],"summary":{"ran_draft_wrong":1,"unverified":8},"by_repo_kind":{"official":{"samples":1,"ran":1,"repositories":1},"listed":{"samples":8,"ran":0,"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":"c6c725f2da1fe430","entry":"get_config","repo":"chaitjo/graph-convnet-tsp","repo_kind":"official","path":"config.py","file_url":"https://github.com/chaitjo/graph-convnet-tsp/blob/HEAD/config.py","link_basis":"first_harvest_node","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":"c6c725f2da1fe430"}},{"code_sha256_prefix":"75fed4918c2cc8d9","entry":"adjacency_matrix","repo":"LorenzoSciandra/GraphConvolutionalBranchandBound","repo_kind":"listed","path":"src/HybridSolver/1tree/main/HybridSolver.py","file_url":"https://github.com/LorenzoSciandra/GraphConvolutionalBranchandBound/blob/HEAD/src/HybridSolver/1tree/main/HybridSolver.py","link_basis":"harvester_set","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":"75fed4918c2cc8d9"}},{"code_sha256_prefix":"3e25b442a62074f4","entry":"get_instance","repo":"LorenzoSciandra/GraphConvolutionalBranchandBound","repo_kind":"listed","path":"src/HybridSolver/1tree/main/HybridSolver.py","file_url":"https://github.com/LorenzoSciandra/GraphConvolutionalBranchandBound/blob/HEAD/src/HybridSolver/1tree/main/HybridSolver.py","link_basis":"harvester_set","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":"3e25b442a62074f4"}},{"code_sha256_prefix":"904f73141222e6df","entry":"get_nodes","repo":"LorenzoSciandra/GraphConvolutionalBranchandBound","repo_kind":"listed","path":"src/HybridSolver/1tree/main/HybridSolver.py","file_url":"https://github.com/LorenzoSciandra/GraphConvolutionalBranchandBound/blob/HEAD/src/HybridSolver/1tree/main/HybridSolver.py","link_basis":"harvester_set","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":"904f73141222e6df"}},{"code_sha256_prefix":"e8e257007a4f4f42","entry":"read_two_opt_solutions","repo":"LorenzoSciandra/GraphConvolutionalBranchandBound","repo_kind":"listed","path":"src/HybridSolver/1tree/results/AdjacencyMatrix/analyzer.py","file_url":"https://github.com/LorenzoSciandra/GraphConvolutionalBranchandBound/blob/HEAD/src/HybridSolver/1tree/results/AdjacencyMatrix/analyzer.py","link_basis":"harvester_set","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":"e8e257007a4f4f42"}},{"code_sha256_prefix":"5a383ef27769b617","entry":"read_values","repo":"LorenzoSciandra/GraphConvolutionalBranchandBound","repo_kind":"listed","path":"src/HybridSolver/1tree/results/AdjacencyMatrix/analyzer.py","file_url":"https://github.com/LorenzoSciandra/GraphConvolutionalBranchandBound/blob/HEAD/src/HybridSolver/1tree/results/AdjacencyMatrix/analyzer.py","link_basis":"harvester_set","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":"5a383ef27769b617"}},{"code_sha256_prefix":"11e3d823d255f1dc","entry":"run_instance","repo":"LorenzoSciandra/GraphConvolutionalBranchandBound","repo_kind":"listed","path":"src/HybridSolver/Concorde/runner.py","file_url":"https://github.com/LorenzoSciandra/GraphConvolutionalBranchandBound/blob/HEAD/src/HybridSolver/Concorde/runner.py","link_basis":"harvester_set","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":"11e3d823d255f1dc"}},{"code_sha256_prefix":"c67b8943b8193969","entry":"safe_eval","repo":"LorenzoSciandra/GraphConvolutionalBranchandBound","repo_kind":"listed","path":"src/HybridSolver/Concorde/runner.py","file_url":"https://github.com/LorenzoSciandra/GraphConvolutionalBranchandBound/blob/HEAD/src/HybridSolver/Concorde/runner.py","link_basis":"harvester_set","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":"c67b8943b8193969"}},{"code_sha256_prefix":"98cbd8181e79d909","entry":"significance_test","repo":"LorenzoSciandra/GraphConvolutionalBranchandBound","repo_kind":"listed","path":"src/HybridSolver/1tree/results/AdjacencyMatrix/analyzer.py","file_url":"https://github.com/LorenzoSciandra/GraphConvolutionalBranchandBound/blob/HEAD/src/HybridSolver/1tree/results/AdjacencyMatrix/analyzer.py","link_basis":"harvester_set","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":"98cbd8181e79d909"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}