{"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/neural-solver-selection-for-combinatorial","title":"Neural Solver Selection for Combinatorial Optimization","arxiv_id":"2410.09693","date":"2024-10-13","proceeding":null,"authors":["Chengrui Gao","Haopu Shang","Ke Xue","Chao Qian"],"abstract":"Machine learning has increasingly been employed to solve NP-hard combinatorial optimization problems, resulting in the emergence of neural solvers that demonstrate remarkable performance, even with minimal domain-specific knowledge. To date, the community has created numerous open-source neural solvers with distinct motivations and inductive biases. While considerable efforts are devoted to designing powerful single solvers, our findings reveal that existing solvers typically demonstrate complementary performance across different problem instances. This suggests that significant improvements could be achieved through effective coordination of neural solvers at the instance level. In this work, we propose the first general framework to coordinate the neural solvers, which involves feature extraction, selection model, and selection strategy, aiming to allocate each instance to the most suitable solvers. To instantiate, we collect several typical neural solvers with state-of-the-art performance as alternatives, and explore various methods for each component of the framework. We evaluated our framework on two extensively studied combinatorial optimization problems, Traveling Salesman Problem (TSP) and Capacitated Vehicle Routing Problem (CVRP). Experimental results show that the proposed framework can effectively distribute instances and the resulting composite solver can achieve significantly better performance (e.g., reduce the optimality gap by 0.88\\% on TSPLIB and 0.71\\% on CVRPLIB) than the best individual neural solver with little extra time cost.","url_abs":"https://arxiv.org/abs/2410.09693v2","url_pdf":"https://arxiv.org/pdf/2410.09693v2.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":"neural-solver-selection-for-combinatorial","repo_url":"https://github.com/lamda-bbo/neural-solver-selection","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"combinatorial-optimization","task_name":"Combinatorial Optimization"},{"task_slug":"traveling-salesman-problem","task_name":"Traveling Salesman Problem"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2410.09693","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2410.09693"}},"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/lamda-bbo/neural-solver-selection","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":5,"ran_draft_wrong":1,"unverified":4},"by_repo_kind":{"official":{"samples":10,"ran":6,"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":"3db541b736338de2","entry":"augment_xy_by_8_fold","repo":"lamda-bbo/neural-solver-selection","repo_kind":"official","path":"utils.py","file_url":"https://github.com/lamda-bbo/neural-solver-selection/blob/HEAD/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3db541b736338de2"}},{"code_sha256_prefix":"11df7363c2047f6b","entry":"generate_tsp_data","repo":"lamda-bbo/neural-solver-selection","repo_kind":"official","path":"datasets/data_utils.py","file_url":"https://github.com/lamda-bbo/neural-solver-selection/blob/HEAD/datasets/data_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"11df7363c2047f6b"}},{"code_sha256_prefix":"56f4b6ddfcdc2968","entry":"generate_tsp_data_gaussian","repo":"lamda-bbo/neural-solver-selection","repo_kind":"official","path":"datasets/data_utils.py","file_url":"https://github.com/lamda-bbo/neural-solver-selection/blob/HEAD/datasets/data_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"56f4b6ddfcdc2968"}},{"code_sha256_prefix":"6e293e11ca816f24","entry":"generate_vrp_data","repo":"lamda-bbo/neural-solver-selection","repo_kind":"official","path":"datasets/data_utils.py","file_url":"https://github.com/lamda-bbo/neural-solver-selection/blob/HEAD/datasets/data_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6e293e11ca816f24"}},{"code_sha256_prefix":"13f7aec0cb34d440","entry":"multi_head_attention","repo":"lamda-bbo/neural-solver-selection","repo_kind":"official","path":"model.py","file_url":"https://github.com/lamda-bbo/neural-solver-selection/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"13f7aec0cb34d440"}},{"code_sha256_prefix":"459fe521069329c6","entry":"reshape_by_heads","repo":"lamda-bbo/neural-solver-selection","repo_kind":"official","path":"model.py","file_url":"https://github.com/lamda-bbo/neural-solver-selection/blob/HEAD/model.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"459fe521069329c6"}},{"code_sha256_prefix":"11b4c8925238565e","entry":"collate_fn","repo":"lamda-bbo/neural-solver-selection","repo_kind":"official","path":"dataset.py","file_url":"https://github.com/lamda-bbo/neural-solver-selection/blob/HEAD/dataset.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":"11b4c8925238565e"}},{"code_sha256_prefix":"fb3893f25da812de","entry":"manual_features","repo":"lamda-bbo/neural-solver-selection","repo_kind":"official","path":"dataset.py","file_url":"https://github.com/lamda-bbo/neural-solver-selection/blob/HEAD/dataset.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":"fb3893f25da812de"}},{"code_sha256_prefix":"2eeabea8e2f0857a","entry":"prepare_dataset","repo":"lamda-bbo/neural-solver-selection","repo_kind":"official","path":"utils.py","file_url":"https://github.com/lamda-bbo/neural-solver-selection/blob/HEAD/utils.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":"2eeabea8e2f0857a"}},{"code_sha256_prefix":"8ed2844221376cf5","entry":"process_instance_CVRP","repo":"lamda-bbo/neural-solver-selection","repo_kind":"official","path":"utils.py","file_url":"https://github.com/lamda-bbo/neural-solver-selection/blob/HEAD/utils.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":"8ed2844221376cf5"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}