{"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/differentiation-of-blackbox-combinatorial-1","title":"Differentiation of Blackbox Combinatorial Solvers","arxiv_id":"1912.02175","date":"2019-12-04","proceeding":"ICLR 2020 1","authors":["Marin Vlastelica","Anselm Paulus","Vít Musil","Georg Martius","Michal Rolínek"],"abstract":"Achieving fusion of deep learning with combinatorial algorithms promises transformative changes to artificial intelligence. One possible approach is to introduce combinatorial building blocks into neural networks. Such end-to-end architectures have the potential to tackle combinatorial problems on raw input data such as ensuring global consistency in multi-object tracking or route planning on maps in robotics. In this work, we present a method that implements an efficient backward pass through blackbox implementations of combinatorial solvers with linear objective functions. We provide both theoretical and experimental backing. In particular, we incorporate the Gurobi MIP solver, Blossom V algorithm, and Dijkstra's algorithm into architectures that extract suitable features from raw inputs for the traveling salesman problem, the min-cost perfect matching problem and the shortest path problem. The code is available at https://github.com/martius-lab/blackbox-backprop.","url_abs":"https://arxiv.org/abs/1912.02175v2","url_pdf":"https://arxiv.org/pdf/1912.02175v2.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":"differentiation-of-blackbox-combinatorial-1","repo_url":"https://github.com/martius-lab/blackbox-backprop","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"differentiation-of-blackbox-combinatorial-1","repo_url":"https://github.com/LouisBouvier/WarcraftShortestPaths.jl","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"differentiation-of-blackbox-combinatorial-1","repo_url":"https://github.com/alanlahoud/datasp","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"differentiation-of-blackbox-combinatorial-1","repo_url":"https://github.com/archettialberto/neural_weighted_a_star","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"differentiation-of-blackbox-combinatorial-1","repo_url":"https://github.com/khalil-research/pyepo","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"differentiation-of-blackbox-combinatorial-1","repo_url":"https://github.com/martius-lab/blackbox-differentiation-combinatorial-solvers","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"differentiation-of-blackbox-combinatorial-1","repo_url":"https://github.com/omron-sinicx/neural-astar","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"NOASSERTION"}}],"tasks":[{"task_slug":"traveling-salesman-problem","task_name":"Traveling Salesman Problem"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/1912.02175","atlas_url":"https://app.syntology.ai/?focus=1912.02175","mcp":null,"developers":"https://syntology.ai/developers"},"arxiv_metadata":null,"syntology_extracted_results":null}