{"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/algorithms-with-prediction-portfolios","title":"Algorithms with Prediction Portfolios","arxiv_id":"2210.12438","date":"2022-10-22","proceeding":null,"authors":["Michael Dinitz","Sungjin Im","Thomas Lavastida","Benjamin Moseley","Sergei Vassilvitskii"],"abstract":"The research area of algorithms with predictions has seen recent success showing how to incorporate machine learning into algorithm design to improve performance when the predictions are correct, while retaining worst-case guarantees when they are not. Most previous work has assumed that the algorithm has access to a single predictor. However, in practice, there are many machine learning methods available, often with incomparable generalization guarantees, making it hard to pick a best method a priori. In this work we consider scenarios where multiple predictors are available to the algorithm and the question is how to best utilize them. Ideally, we would like the algorithm's performance to depend on the quality of the best predictor. However, utilizing more predictions comes with a cost, since we now have to identify which prediction is the best. We study the use of multiple predictors for a number of fundamental problems, including matching, load balancing, and non-clairvoyant scheduling, which have been well-studied in the single predictor setting. For each of these problems we introduce new algorithms that take advantage of multiple predictors, and prove bounds on the resulting performance.","url_abs":"https://arxiv.org/abs/2210.12438v2","url_pdf":"https://arxiv.org/pdf/2210.12438v2.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":"algorithms-with-prediction-portfolios","repo_url":"https://github.com/tlavastida/predictionportfolios","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"prediction","task_name":"Prediction"},{"task_slug":"scheduling","task_name":"Scheduling"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2210.12438","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2210.12438"}},"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":"deterministic:regex_extraction","url":"https://github.com/tlavastida/PredictionPortfolios","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/tlavastida/predictionportfolios","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":12},"by_repo_kind":{"official":{"samples":12,"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":"2eb766e101b0537c","entry":"GreedyMatching","repo":"tlavastida/PredictionPortfolios","repo_kind":"official","path":"MaxBipartiteMatching.py","file_url":"https://github.com/tlavastida/PredictionPortfolios/blob/HEAD/MaxBipartiteMatching.py","link_basis":"harvester_set","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":"2eb766e101b0537c"}},{"code_sha256_prefix":"c11682b9f49c1403","entry":"JaccardMatching","repo":"tlavastida/PredictionPortfolios","repo_kind":"official","path":"UtilityFunctions.py","file_url":"https://github.com/tlavastida/PredictionPortfolios/blob/HEAD/UtilityFunctions.py","link_basis":"harvester_set","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":"c11682b9f49c1403"}},{"code_sha256_prefix":"7913b86f64143493","entry":"assign_to_clusters","repo":"tlavastida/PredictionPortfolios","repo_kind":"official","path":"KMedian.py","file_url":"https://github.com/tlavastida/PredictionPortfolios/blob/HEAD/KMedian.py","link_basis":"harvester_set","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":"7913b86f64143493"}},{"code_sha256_prefix":"d526e886996d86ad","entry":"check_certificates","repo":"tlavastida/PredictionPortfolios","repo_kind":"official","path":"MinWeightPerfectMatching.py","file_url":"https://github.com/tlavastida/PredictionPortfolios/blob/HEAD/MinWeightPerfectMatching.py","link_basis":"harvester_set","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":"d526e886996d86ad"}},{"code_sha256_prefix":"527efe97e46903d1","entry":"check_duals","repo":"tlavastida/PredictionPortfolios","repo_kind":"official","path":"MinWeightPerfectMatching.py","file_url":"https://github.com/tlavastida/PredictionPortfolios/blob/HEAD/MinWeightPerfectMatching.py","link_basis":"harvester_set","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":"527efe97e46903d1"}},{"code_sha256_prefix":"611928045ad80095","entry":"check_matches","repo":"tlavastida/PredictionPortfolios","repo_kind":"official","path":"MaxBipartiteMatching.py","file_url":"https://github.com/tlavastida/PredictionPortfolios/blob/HEAD/MaxBipartiteMatching.py","link_basis":"harvester_set","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":"611928045ad80095"}},{"code_sha256_prefix":"e530beae4bbad15a","entry":"check_matching","repo":"tlavastida/PredictionPortfolios","repo_kind":"official","path":"MinWeightPerfectMatching.py","file_url":"https://github.com/tlavastida/PredictionPortfolios/blob/HEAD/MinWeightPerfectMatching.py","link_basis":"harvester_set","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":"e530beae4bbad15a"}},{"code_sha256_prefix":"46253cb3bea7318d","entry":"euclid_dist","repo":"tlavastida/PredictionPortfolios","repo_kind":"official","path":"geometric_type_model_exp.py","file_url":"https://github.com/tlavastida/PredictionPortfolios/blob/HEAD/geometric_type_model_exp.py","link_basis":"harvester_set","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":"46253cb3bea7318d"}},{"code_sha256_prefix":"8689b1b268903675","entry":"l1_distance","repo":"tlavastida/PredictionPortfolios","repo_kind":"official","path":"KMedian.py","file_url":"https://github.com/tlavastida/PredictionPortfolios/blob/HEAD/KMedian.py","link_basis":"harvester_set","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":"8689b1b268903675"}},{"code_sha256_prefix":"44abf67f662415da","entry":"median","repo":"tlavastida/PredictionPortfolios","repo_kind":"official","path":"UtilityFunctions.py","file_url":"https://github.com/tlavastida/PredictionPortfolios/blob/HEAD/UtilityFunctions.py","link_basis":"harvester_set","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":"44abf67f662415da"}},{"code_sha256_prefix":"089f383224153f3d","entry":"median_duals","repo":"tlavastida/PredictionPortfolios","repo_kind":"official","path":"UtilityFunctions.py","file_url":"https://github.com/tlavastida/PredictionPortfolios/blob/HEAD/UtilityFunctions.py","link_basis":"harvester_set","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":"089f383224153f3d"}},{"code_sha256_prefix":"acc65c6cfa2dfaa4","entry":"taxicab_dist","repo":"tlavastida/PredictionPortfolios","repo_kind":"official","path":"geometric_type_model_exp.py","file_url":"https://github.com/tlavastida/PredictionPortfolios/blob/HEAD/geometric_type_model_exp.py","link_basis":"harvester_set","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":"acc65c6cfa2dfaa4"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}