{"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/variational-annealing-on-graphs-for","title":"Variational Annealing on Graphs for Combinatorial Optimization","arxiv_id":"2311.14156","date":"2023-11-23","proceeding":"NeurIPS 2023 11","authors":["Sebastian Sanokowski","Wilhelm Berghammer","Sepp Hochreiter","Sebastian Lehner"],"abstract":"Several recent unsupervised learning methods use probabilistic approaches to solve combinatorial optimization (CO) problems based on the assumption of statistically independent solution variables. We demonstrate that this assumption imposes performance limitations in particular on difficult problem instances. Our results corroborate that an autoregressive approach which captures statistical dependencies among solution variables yields superior performance on many popular CO problems. We introduce subgraph tokenization in which the configuration of a set of solution variables is represented by a single token. This tokenization technique alleviates the drawback of the long sequential sampling procedure which is inherent to autoregressive methods without sacrificing expressivity. Importantly, we theoretically motivate an annealed entropy regularization and show empirically that it is essential for efficient and stable learning.","url_abs":"https://arxiv.org/abs/2311.14156v1","url_pdf":"https://arxiv.org/pdf/2311.14156v1.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":"variational-annealing-on-graphs-for","repo_url":"https://github.com/ml-jku/vag-co","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"jax","reach":{"status":"ok"}}],"tasks":[{"task_slug":"combinatorial-optimization","task_name":"Combinatorial Optimization"}],"methods":[{"method_slug":"entropy-regularization","method_name":"Entropy Regularization"},{"method_slug":"set","method_name":"SET"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2311.14156","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2311.14156"}},"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/ml-jku/vag-co","reach":{"status":"ok"}}],"summary":{"ran":7,"unverified":9},"by_repo_kind":{"official":{"samples":16,"ran":7,"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":16,"samples":[{"code_sha256_prefix":"1e9376234eeec7f8","entry":"MVC_Energy","repo":"ml-jku/vag-co","repo_kind":"official","path":"VAG_CO/EnergyFunctions/MIS.py","file_url":"https://github.com/ml-jku/vag-co/blob/HEAD/VAG_CO/EnergyFunctions/MIS.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1e9376234eeec7f8"}},{"code_sha256_prefix":"a2d96c2a6684943c","entry":"calcEnergy","repo":"ml-jku/vag-co","repo_kind":"official","path":"VAG_CO/EnergyFunctions/MIS.py","file_url":"https://github.com/ml-jku/vag-co/blob/HEAD/VAG_CO/EnergyFunctions/MIS.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a2d96c2a6684943c"}},{"code_sha256_prefix":"416ca0676ff4a352","entry":"calcEnergy","repo":"ml-jku/vag-co","repo_kind":"official","path":"VAG_CO/EnergyFunctions/MaxCut.py","file_url":"https://github.com/ml-jku/vag-co/blob/HEAD/VAG_CO/EnergyFunctions/MaxCut.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"416ca0676ff4a352"}},{"code_sha256_prefix":"07fa5f598e184f5d","entry":"calcEnergy_sparse","repo":"ml-jku/vag-co","repo_kind":"official","path":"VAG_CO/EnergyFunctions/MaxCut.py","file_url":"https://github.com/ml-jku/vag-co/blob/HEAD/VAG_CO/EnergyFunctions/MaxCut.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"07fa5f598e184f5d"}},{"code_sha256_prefix":"c60168563fd17c6c","entry":"compute_Energy_full_graph","repo":"ml-jku/vag-co","repo_kind":"official","path":"VAG_CO/EnergyFunctions/jraphEnergy.py","file_url":"https://github.com/ml-jku/vag-co/blob/HEAD/VAG_CO/EnergyFunctions/jraphEnergy.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c60168563fd17c6c"}},{"code_sha256_prefix":"9bd0b9def968f8a4","entry":"compute_Energy_full_graph_np","repo":"ml-jku/vag-co","repo_kind":"official","path":"VAG_CO/EnergyFunctions/jraphEnergy.py","file_url":"https://github.com/ml-jku/vag-co/blob/HEAD/VAG_CO/EnergyFunctions/jraphEnergy.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"9bd0b9def968f8a4"}},{"code_sha256_prefix":"b7dd17f565a419e9","entry":"compute_self_loop_Energy","repo":"ml-jku/vag-co","repo_kind":"official","path":"VAG_CO/EnergyFunctions/jraphEnergy.py","file_url":"https://github.com/ml-jku/vag-co/blob/HEAD/VAG_CO/EnergyFunctions/jraphEnergy.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b7dd17f565a419e9"}},{"code_sha256_prefix":"27547f08c3c74fff","entry":"AutoregressiveGreedy","repo":"ml-jku/vag-co","repo_kind":"official","path":"VAG_CO/GreedyAlgorithms/GreedyGeneral.py","file_url":"https://github.com/ml-jku/vag-co/blob/HEAD/VAG_CO/GreedyAlgorithms/GreedyGeneral.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"27547f08c3c74fff"}},{"code_sha256_prefix":"8a98d582d30a1f75","entry":"AutoregressiveGreedy_old","repo":"ml-jku/vag-co","repo_kind":"official","path":"VAG_CO/GreedyAlgorithms/GreedyMaxCut.py","file_url":"https://github.com/ml-jku/vag-co/blob/HEAD/VAG_CO/GreedyAlgorithms/GreedyMaxCut.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8a98d582d30a1f75"}},{"code_sha256_prefix":"e0333ad180fa5096","entry":"calc","repo":"ml-jku/vag-co","repo_kind":"official","path":"VAG_CO/EnergyFunctions/calculateEnergy.py","file_url":"https://github.com/ml-jku/vag-co/blob/HEAD/VAG_CO/EnergyFunctions/calculateEnergy.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e0333ad180fa5096"}},{"code_sha256_prefix":"5f15a847fd297cf0","entry":"calcEnergy_sparse","repo":"ml-jku/vag-co","repo_kind":"official","path":"VAG_CO/EnergyFunctions/MIS.py","file_url":"https://github.com/ml-jku/vag-co/blob/HEAD/VAG_CO/EnergyFunctions/MIS.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5f15a847fd297cf0"}},{"code_sha256_prefix":"f0c18ef0f6d9b969","entry":"calc_sparse","repo":"ml-jku/vag-co","repo_kind":"official","path":"VAG_CO/EnergyFunctions/calculateEnergy.py","file_url":"https://github.com/ml-jku/vag-co/blob/HEAD/VAG_CO/EnergyFunctions/calculateEnergy.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f0c18ef0f6d9b969"}},{"code_sha256_prefix":"2326be85a2c30c76","entry":"make_NbNt_spins","repo":"ml-jku/vag-co","repo_kind":"official","path":"VAG_CO/EnergyFunctions/Masking.py","file_url":"https://github.com/ml-jku/vag-co/blob/HEAD/VAG_CO/EnergyFunctions/Masking.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2326be85a2c30c76"}},{"code_sha256_prefix":"8b41a6333091c869","entry":"mask","repo":"ml-jku/vag-co","repo_kind":"official","path":"VAG_CO/EnergyFunctions/Masking.py","file_url":"https://github.com/ml-jku/vag-co/blob/HEAD/VAG_CO/EnergyFunctions/Masking.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8b41a6333091c869"}},{"code_sha256_prefix":"54144a0233d5f681","entry":"random","repo":"ml-jku/vag-co","repo_kind":"official","path":"VAG_CO/GreedyAlgorithms/GreedyGeneral.py","file_url":"https://github.com/ml-jku/vag-co/blob/HEAD/VAG_CO/GreedyAlgorithms/GreedyGeneral.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"54144a0233d5f681"}},{"code_sha256_prefix":"9e0b705c7d62fbc6","entry":"random_greedy","repo":"ml-jku/vag-co","repo_kind":"official","path":"VAG_CO/GreedyAlgorithms/GreedyGeneral.py","file_url":"https://github.com/ml-jku/vag-co/blob/HEAD/VAG_CO/GreedyAlgorithms/GreedyGeneral.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"9e0b705c7d62fbc6"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}