{"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/differentiable-bilevel-programming-for","title":"Differentiable Bilevel Programming for Stackelberg Congestion Games","arxiv_id":"2209.07618","date":"2022-09-15","proceeding":null,"authors":["Jiayang Li","Jing Yu","Qianni Wang","Boyi Liu","Zhaoran Wang","Yu Marco Nie"],"abstract":"In a Stackelberg congestion game (SCG), a leader aims to maximize their own gain by anticipating and manipulating the equilibrium state at which the followers settle by playing a congestion game. Often formulated as bilevel programs, large-scale SCGs are well known for their intractability and complexity. Here, we attempt to tackle this computational challenge by marrying traditional methodologies with the latest differentiable programming techniques in machine learning. The core idea centers on replacing the lower-level equilibrium problem with a smooth evolution trajectory defined by the imitative logit dynamic (ILD), which we prove converges to the equilibrium of the congestion game under mild conditions. Building upon this theoretical foundation, we propose two new local search algorithms for SCGs. The first is a gradient descent algorithm that obtains the derivatives by unrolling ILD via differentiable programming. Thanks to the smoothness of ILD, the algorithm promises both efficiency and scalability. The second algorithm adds a heuristic twist by cutting short the followers' evolution trajectory. Behaviorally, this means that, instead of anticipating the followers' best response at equilibrium, the leader seeks to approximate that response by only looking ahead a limited number of steps. Our numerical experiments are carried out over various instances of classic SCG applications, ranging from toy benchmarks to large-scale real-world examples. The results show the proposed algorithms are reliable and scalable local solvers that deliver high-quality solutions with greater regularity and significantly less computational effort compared to the many incumbents included in our study.","url_abs":"https://arxiv.org/abs/2209.07618v4","url_pdf":"https://arxiv.org/pdf/2209.07618v4.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":"differentiable-bilevel-programming-for","repo_url":"https://github.com/jiayangli-nu/Differentiable-Bilevel-Programming","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2209.07618","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2209.07618"}},"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/jiayangli-nu/Differentiable-Bilevel-Programming","reach":null}],"summary":{"ran_violates":2,"ran_fixture":1,"ran_honours":1},"by_repo_kind":{"official":{"samples":4,"ran":4,"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":"24cd2a3fe86afeee","entry":"BPR","repo":"jiayangli-nu/Differentiable-Bilevel-Programming","repo_kind":"official","path":"GP.py","file_url":"https://github.com/jiayangli-nu/Differentiable-Bilevel-Programming/blob/HEAD/GP.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"24cd2a3fe86afeee"}},{"code_sha256_prefix":"614480e54d061bc1","entry":"BPR_1_derivative","repo":"jiayangli-nu/Differentiable-Bilevel-Programming","repo_kind":"official","path":"GP.py","file_url":"https://github.com/jiayangli-nu/Differentiable-Bilevel-Programming/blob/HEAD/GP.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"614480e54d061bc1"}},{"code_sha256_prefix":"af7c591356a18249","entry":"eq_searc","repo":"jiayangli-nu/Differentiable-Bilevel-Programming","repo_kind":"official","path":"cndp_braess.py","file_url":"https://github.com/jiayangli-nu/Differentiable-Bilevel-Programming/blob/HEAD/cndp_braess.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"af7c591356a18249"}},{"code_sha256_prefix":"8a959df933be328d","entry":"sppconvert","repo":"jiayangli-nu/Differentiable-Bilevel-Programming","repo_kind":"official","path":"GP.py","file_url":"https://github.com/jiayangli-nu/Differentiable-Bilevel-Programming/blob/HEAD/GP.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8a959df933be328d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}