{"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/arxiv-2510-06717","title":"SanDRA: Safe Large-Language-Model-Based Decision Making for Automated Vehicles Using Reachability Analysis","arxiv_id":"2510.06717","date":"2025-10-08","proceeding":null,"authors":["Yuanfei Lin","Sebastian Illing","Matthias Althoff"],"abstract":"Large language models (LLMs) have been widely applied to knowledge-driven decision-making for automated vehicles due to their strong generalization and reasoning capabilities. However, the safety of the resulting decisions cannot be ensured due to possible hallucinations and the lack of integrated vehicle dynamics. To address this issue, we propose SanDRA, the first safe large-language-model-based decision making framework for automated vehicles using reachability analysis. Our approach starts with a comprehensive description of the driving scenario to prompt LLMs to generate and rank feasible driving actions. These actions are translated into temporal logic formulas that incorporate formalized traffic rules, and are subsequently integrated into reachability analysis to eliminate unsafe actions. We validate our approach in both open-loop and closed-loop driving environments using off-the-shelf and finetuned LLMs, showing that it can provide provably safe and, where possible, legally compliant driving actions, even under high-density traffic conditions. To ensure transparency and facilitate future research, all code and experimental setups are publicly available at github.com/CommonRoad/SanDRA.","url_abs":"https://arxiv.org/abs/2510.06717","url_pdf":"https://arxiv.org/pdf/2510.06717","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2510.06717","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2510.06717"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/CommonRoad/SanDRA","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"unverified":4},"by_repo_kind":{"found_in_text":{"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":"91751b88dfd5e12c","entry":"extract_available_actions","repo":"CommonRoad/SanDRA","repo_kind":"found_in_text","path":"sandra/finetuning/data_loader.py","file_url":"https://github.com/CommonRoad/SanDRA/blob/HEAD/sandra/finetuning/data_loader.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"91751b88dfd5e12c"}},{"code_sha256_prefix":"3a0261f1d5c3a5f8","entry":"instantiate_normal_output","repo":"CommonRoad/SanDRA","repo_kind":"found_in_text","path":"sandra/finetuning/data_loader.py","file_url":"https://github.com/CommonRoad/SanDRA/blob/HEAD/sandra/finetuning/data_loader.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3a0261f1d5c3a5f8"}},{"code_sha256_prefix":"0702416d4381a47f","entry":"pick_remaining_actions","repo":"CommonRoad/SanDRA","repo_kind":"found_in_text","path":"sandra/finetuning/data_loader.py","file_url":"https://github.com/CommonRoad/SanDRA/blob/HEAD/sandra/finetuning/data_loader.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"0702416d4381a47f"}},{"code_sha256_prefix":"ed65486228fcc44a","entry":"set_speed","repo":"CommonRoad/SanDRA","repo_kind":"found_in_text","path":"sandra/actions.py","file_url":"https://github.com/CommonRoad/SanDRA/blob/HEAD/sandra/actions.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ed65486228fcc44a"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.RO","source":"arxiv_api"},"syntology_extracted_results":null}