{"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/static-scheduling-with-predictions-learned","title":"On Preemption and Learning in Stochastic Scheduling","arxiv_id":"2205.15695","date":"2022-05-31","proceeding":null,"authors":["Nadav Merlis","Hugo Richard","Flore Sentenac","Corentin Odic","Mathieu Molina","Vianney Perchet"],"abstract":"We study single-machine scheduling of jobs, each belonging to a job type that determines its duration distribution. We start by analyzing the scenario where the type characteristics are known and then move to two learning scenarios where the types are unknown: non-preemptive problems, where each started job must be completed before moving to another job; and preemptive problems, where job execution can be paused in the favor of moving to a different job. In both cases, we design algorithms that achieve sublinear excess cost, compared to the performance with known types, and prove lower bounds for the non-preemptive case. Notably, we demonstrate, both theoretically and through simulations, how preemptive algorithms can greatly outperform non-preemptive ones when the durations of different job types are far from one another, a phenomenon that does not occur when the type durations are known.","url_abs":"https://arxiv.org/abs/2205.15695v3","url_pdf":"https://arxiv.org/pdf/2205.15695v3.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":"static-scheduling-with-predictions-learned","repo_url":"https://github.com/hugorichard/ml4a-scheduling","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":{"status":"ok","spdx":"BSD-3-Clause"}}],"tasks":[{"task_slug":"efficient-exploration","task_name":"Efficient Exploration"},{"task_slug":"scheduling","task_name":"Scheduling"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2205.15695","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2205.15695"}},"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/hugorichard/ml4a-scheduling","reach":{"status":"ok","spdx":"BSD-3-Clause"}}],"summary":{"unverified":7},"by_repo_kind":{"official":{"samples":7,"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":"19b3997a48ae4661","entry":"ftpp","repo":"hugorichard/ml4a-scheduling","repo_kind":"official","path":"mlforscheduling/utils.py","file_url":"https://github.com/hugorichard/ml4a-scheduling/blob/HEAD/mlforscheduling/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"19b3997a48ae4661"}},{"code_sha256_prefix":"d03714c28277ccb1","entry":"rr","repo":"hugorichard/ml4a-scheduling","repo_kind":"official","path":"mlforscheduling/utils.py","file_url":"https://github.com/hugorichard/ml4a-scheduling/blob/HEAD/mlforscheduling/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"d03714c28277ccb1"}},{"code_sha256_prefix":"1c13e9a5ff9dea64","entry":"rr_run","repo":"hugorichard/ml4a-scheduling","repo_kind":"official","path":"mlforscheduling/utils.py","file_url":"https://github.com/hugorichard/ml4a-scheduling/blob/HEAD/mlforscheduling/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"1c13e9a5ff9dea64"}},{"code_sha256_prefix":"ab9914d50bea5947","entry":"select_duration","repo":"hugorichard/ml4a-scheduling","repo_kind":"official","path":"mlforscheduling/ucb_rr.py","file_url":"https://github.com/hugorichard/ml4a-scheduling/blob/HEAD/mlforscheduling/ucb_rr.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"ab9914d50bea5947"}},{"code_sha256_prefix":"3b4e33f9f466a5fe","entry":"select_next_job","repo":"hugorichard/ml4a-scheduling","repo_kind":"official","path":"mlforscheduling/ucb_rr.py","file_url":"https://github.com/hugorichard/ml4a-scheduling/blob/HEAD/mlforscheduling/ucb_rr.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"3b4e33f9f466a5fe"}},{"code_sha256_prefix":"7f48f516036fc383","entry":"select_next_job","repo":"hugorichard/ml4a-scheduling","repo_kind":"official","path":"mlforscheduling/ucb_u.py","file_url":"https://github.com/hugorichard/ml4a-scheduling/blob/HEAD/mlforscheduling/ucb_u.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"7f48f516036fc383"}},{"code_sha256_prefix":"8f982db6707ee0aa","entry":"update_confidence_bound","repo":"hugorichard/ml4a-scheduling","repo_kind":"official","path":"mlforscheduling/ucb_u.py","file_url":"https://github.com/hugorichard/ml4a-scheduling/blob/HEAD/mlforscheduling/ucb_u.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"8f982db6707ee0aa"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}