{"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-based-model-predictive-control-for","title":"Learning-based Model Predictive Control for Safe Exploration","arxiv_id":"1803.08287","date":"2018-03-22","proceeding":null,"authors":["Torsten Koller","Felix Berkenkamp","Matteo Turchetta","Andreas Krause"],"abstract":"Learning-based methods have been successful in solving complex control tasks\nwithout significant prior knowledge about the system. However, these methods\ntypically do not provide any safety guarantees, which prevents their use in\nsafety-critical, real-world applications. In this paper, we present a\nlearning-based model predictive control scheme that can provide provable\nhigh-probability safety guarantees. To this end, we exploit regularity\nassumptions on the dynamics in terms of a Gaussian process prior to construct\nprovably accurate confidence intervals on predicted trajectories. Unlike\nprevious approaches, we do not assume that model uncertainties are independent.\nBased on these predictions, we guarantee that trajectories satisfy safety\nconstraints. Moreover, we use a terminal set constraint to recursively\nguarantee the existence of safe control actions at every iteration. In our\nexperiments, we show that the resulting algorithm can be used to safely and\nefficiently explore and learn about dynamic systems.","url_abs":"http://arxiv.org/abs/1803.08287v3","url_pdf":"http://arxiv.org/pdf/1803.08287v3.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-based-model-predictive-control-for","repo_url":"https://github.com/befelix/safe-exploration","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"model-predictive-control","task_name":"Model Predictive Control"},{"task_slug":"safe-exploration","task_name":"Safe Exploration"},{"task_slug":"model","task_name":"model"}],"methods":[{"method_slug":"gaussian-process","method_name":"Gaussian Process"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1803.08287","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1803.08287"}},"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/befelix/safe-exploration","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":4},"by_repo_kind":{"listed":{"samples":4,"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":"52ed3ed66973745e","entry":"lin_ellipsoid_safety_distance","repo":"befelix/safe-exploration","repo_kind":"listed","path":"safe_exploration/gp_reachability.py","file_url":"https://github.com/befelix/safe-exploration/blob/HEAD/safe_exploration/gp_reachability.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":"52ed3ed66973745e"}},{"code_sha256_prefix":"e2a29b555f29a3df","entry":"multistep_reachability","repo":"befelix/safe-exploration","repo_kind":"listed","path":"safe_exploration/gp_reachability.py","file_url":"https://github.com/befelix/safe-exploration/blob/HEAD/safe_exploration/gp_reachability.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":"e2a29b555f29a3df"}},{"code_sha256_prefix":"daf3bca74354762e","entry":"onestep_reachability","repo":"befelix/safe-exploration","repo_kind":"listed","path":"safe_exploration/gp_reachability.py","file_url":"https://github.com/befelix/safe-exploration/blob/HEAD/safe_exploration/gp_reachability.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":"daf3bca74354762e"}},{"code_sha256_prefix":"3312052c79a756a7","entry":"save_results","repo":"befelix/safe-exploration","repo_kind":"listed","path":"safe_exploration/exploration_runner.py","file_url":"https://github.com/befelix/safe-exploration/blob/HEAD/safe_exploration/exploration_runner.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":"3312052c79a756a7"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}