{"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/learning-guided-rolling-horizon-optimization","title":"Learning-Guided Rolling Horizon Optimization for Long-Horizon Flexible Job-Shop Scheduling","arxiv_id":"2502.15791","date":"2025-02-18","proceeding":null,"authors":["Sirui Li","Wenbin Ouyang","Yining Ma","Cathy Wu"],"abstract":"Long-horizon combinatorial optimization problems (COPs), such as the Flexible Job-Shop Scheduling Problem (FJSP), often involve complex, interdependent decisions over extended time frames, posing significant challenges for existing solvers. While Rolling Horizon Optimization (RHO) addresses this by decomposing problems into overlapping shorter-horizon subproblems, such overlap often involves redundant computations. In this paper, we present L-RHO, the first learning-guided RHO framework for COPs. L-RHO employs a neural network to intelligently fix variables that in hindsight did not need to be re-optimized, resulting in smaller and thus easier-to-solve subproblems. For FJSP, this means identifying operations with unchanged machine assignments between consecutive subproblems. Applied to FJSP, L-RHO accelerates RHO by up to 54% while significantly improving solution quality, outperforming other heuristic and learning-based baselines. We also provide in-depth discussions and verify the desirable adaptability and generalization of L-RHO across numerous FJSP variates, distributions, online scenarios and benchmark instances. Moreover, we provide a theoretical analysis to elucidate the conditions under which learning is beneficial.","url_abs":"https://arxiv.org/abs/2502.15791v1","url_pdf":"https://arxiv.org/pdf/2502.15791v1.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":"learning-guided-rolling-horizon-optimization","repo_url":"https://github.com/mit-wu-lab/l-rho","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"combinatorial-optimization","task_name":"Combinatorial Optimization"},{"task_slug":"job-shop-scheduling","task_name":"Job Shop Scheduling"},{"task_slug":"scheduling","task_name":"Scheduling"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2502.15791","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2502.15791"}},"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/mit-wu-lab/l-rho","reach":null}],"summary":{"ran_fixture":2,"ran_honours":1,"ran_violates":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":4,"samples":[{"code_sha256_prefix":"ef850f722620399f","entry":"select_jss_data","repo":"mit-wu-lab/l-rho","repo_kind":"official","path":"makespan/flexible_jss_main.py","file_url":"https://github.com/mit-wu-lab/l-rho/blob/HEAD/makespan/flexible_jss_main.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ef850f722620399f"}},{"code_sha256_prefix":"ed8f2b3ad1417ce4","entry":"select_window","repo":"mit-wu-lab/l-rho","repo_kind":"official","path":"makespan/flexible_jss_main.py","file_url":"https://github.com/mit-wu-lab/l-rho/blob/HEAD/makespan/flexible_jss_main.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ed8f2b3ad1417ce4"}},{"code_sha256_prefix":"57b2fedeb7c35300","entry":"sort_scheduled_tasks","repo":"mit-wu-lab/l-rho","repo_kind":"official","path":"delay/flexible_jss_main.py","file_url":"https://github.com/mit-wu-lab/l-rho/blob/HEAD/delay/flexible_jss_main.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":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"57b2fedeb7c35300"}},{"code_sha256_prefix":"098606bee0fda697","entry":"validate_jss_sol","repo":"mit-wu-lab/l-rho","repo_kind":"official","path":"delay/flexible_jss_main.py","file_url":"https://github.com/mit-wu-lab/l-rho/blob/HEAD/delay/flexible_jss_main.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"098606bee0fda697"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}