{"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/improving-optimization-bounds-using-machine","title":"Improving Optimization Bounds using Machine Learning: Decision Diagrams meet Deep Reinforcement Learning","arxiv_id":"1809.03359","date":"2018-09-10","proceeding":null,"authors":["Quentin Cappart","Emmanuel Goutierre","David Bergman","Louis-Martin Rousseau"],"abstract":"Finding tight bounds on the optimal solution is a critical element of\npractical solution methods for discrete optimization problems. In the last\ndecade, decision diagrams (DDs) have brought a new perspective on obtaining\nupper and lower bounds that can be significantly better than classical bounding\nmechanisms, such as linear relaxations. It is well known that the quality of\nthe bounds achieved through this flexible bounding method is highly reliant on\nthe ordering of variables chosen for building the diagram, and finding an\nordering that optimizes standard metrics is an NP-hard problem. In this paper,\nwe propose an innovative and generic approach based on deep reinforcement\nlearning for obtaining an ordering for tightening the bounds obtained with\nrelaxed and restricted DDs. We apply the approach to both the Maximum\nIndependent Set Problem and the Maximum Cut Problem. Experimental results on\nsynthetic instances show that the deep reinforcement learning approach, by\nachieving tighter objective function bounds, generally outperforms ordering\nmethods commonly used in the literature when the distribution of instances is\nknown. To the best knowledge of the authors, this is the first paper to apply\nmachine learning to directly improve relaxation bounds obtained by\ngeneral-purpose bounding mechanisms for combinatorial optimization problems.","url_abs":"http://arxiv.org/abs/1809.03359v2","url_pdf":"http://arxiv.org/pdf/1809.03359v2.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":"improving-optimization-bounds-using-machine","repo_url":"https://github.com/qcappart/learning-DD","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"machine-learning","task_name":"BIG-bench Machine Learning"},{"task_slug":"combinatorial-optimization","task_name":"Combinatorial Optimization"},{"task_slug":"deep-reinforcement-learning","task_name":"Deep Reinforcement Learning"},{"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=1809.03359","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1809.03359"}},"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/qcappart/learning-DD","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":5},"by_repo_kind":{"official":{"samples":5,"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":"92076a6688eb3c6d","entry":"find_model_file","repo":"qcappart/learning-DD","repo_kind":"official","path":"models/maxcut-random/maxcut_evaluate_random.py","file_url":"https://github.com/qcappart/learning-DD/blob/HEAD/models/maxcut-random/maxcut_evaluate_random.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":"92076a6688eb3c6d"}},{"code_sha256_prefix":"a4cd96863cafcc86","entry":"gen_graph","repo":"qcappart/learning-DD","repo_kind":"official","path":"models/maxcut-random/maxcut_evaluate_random.py","file_url":"https://github.com/qcappart/learning-DD/blob/HEAD/models/maxcut-random/maxcut_evaluate_random.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":"a4cd96863cafcc86"}},{"code_sha256_prefix":"a5e678f6a42649c6","entry":"gen_graph","repo":"qcappart/learning-DD","repo_kind":"official","path":"models/maxcut-random/maxcut_training_random.py","file_url":"https://github.com/qcappart/learning-DD/blob/HEAD/models/maxcut-random/maxcut_training_random.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":"a5e678f6a42649c6"}},{"code_sha256_prefix":"5fdc258ef71d62ec","entry":"gen_graph","repo":"qcappart/learning-DD","repo_kind":"official","path":"models/misp-random/misp_evaluate_random.py","file_url":"https://github.com/qcappart/learning-DD/blob/HEAD/models/misp-random/misp_evaluate_random.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":"5fdc258ef71d62ec"}},{"code_sha256_prefix":"9e9b108b5510419c","entry":"gen_graph","repo":"qcappart/learning-DD","repo_kind":"official","path":"models/misp-random/misp_training_random.py","file_url":"https://github.com/qcappart/learning-DD/blob/HEAD/models/misp-random/misp_training_random.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":"9e9b108b5510419c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}