{"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-2607-18256","title":"PEARL: Solver-in-the-Loop Interactive Optimization Modeling from Natural Language","arxiv_id":"2607.18256","date":"2026-05-14","proceeding":null,"authors":["Hongliang Lu","Zhong Li","Yuxuan Chen","Yuan Lan","Fan Zhang","Zaiwen Wen"],"abstract":"Optimization modeling is the process of translating real-world decision problems, often described in natural language, into formal mathematical formulations and executable solver code. While recent advances in large language models have shown promise in automating this process, most existing approaches remain one-shot: a model produces a formulation once, without executing it, conditioning on solver feedback, or iteratively revising errors. This stands in sharp contrast to real-world optimization modeling, which is inherently interactive and proceeds through repeated solve-debug-revise cycles. We introduce PEARL, a system for interactive optimization modeling that uses Python execution and mathematical programming solvers inside this loop. Rather than relying on a fixed repair workflow, PEARL learns when to test partial models, how to revise from solver diagnostics, and when to stop. It operates in a multi-turn tool-integrated setting where intermediate execution results, feasibility signals, and solution checks are used to improve both formulations and solver code before finalization. Across diverse optimization benchmarks, PEARL substantially improves verified solve rates over strong one-shot and tool-augmented baselines; notably, our PEARL-Qwen3-\\textbf{4B} model outperforms the much larger DeepSeek-V3.2-\\textbf{685B} in both macro- and micro-averaged accuracy on optimization modeling tasks.","url_abs":"https://arxiv.org/abs/2607.18256","url_pdf":"https://arxiv.org/pdf/2607.18256","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":null,"mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2607.18256"}},"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/AuroraLHL/PEARL","reach":null}],"summary":{"ran":1,"ran_draft_wrong":5,"ran_honours":2,"ran_violates":1,"unverified":7},"by_repo_kind":{"found_in_text":{"samples":16,"ran":9,"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":16,"samples":[{"code_sha256_prefix":"8fdecdf0e3c196ee","entry":"Sample","repo":"AuroraLHL/PEARL","repo_kind":"found_in_text","path":"core/generate_with_code.py","file_url":"https://github.com/AuroraLHL/PEARL/blob/HEAD/core/generate_with_code.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8fdecdf0e3c196ee"}},{"code_sha256_prefix":"990a22a57fc982db","entry":"_check_code_safety","repo":"AuroraLHL/PEARL","repo_kind":"found_in_text","path":"core/generate_with_code.py","file_url":"https://github.com/AuroraLHL/PEARL/blob/HEAD/core/generate_with_code.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"990a22a57fc982db"}},{"code_sha256_prefix":"f30db1440c1e5178","entry":"_get_apply_chat_template_kwargs","repo":"AuroraLHL/PEARL","repo_kind":"found_in_text","path":"core/generate_with_code.py","file_url":"https://github.com/AuroraLHL/PEARL/blob/HEAD/core/generate_with_code.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f30db1440c1e5178"}},{"code_sha256_prefix":"f79e0cd8bc343658","entry":"_get_solver","repo":"AuroraLHL/PEARL","repo_kind":"found_in_text","path":"core/generate_with_code.py","file_url":"https://github.com/AuroraLHL/PEARL/blob/HEAD/core/generate_with_code.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f79e0cd8bc343658"}},{"code_sha256_prefix":"760629b635fa27b9","entry":"_infer_model_max_context_len","repo":"AuroraLHL/PEARL","repo_kind":"found_in_text","path":"core/generate_with_code.py","file_url":"https://github.com/AuroraLHL/PEARL/blob/HEAD/core/generate_with_code.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"760629b635fa27b9"}},{"code_sha256_prefix":"c6568ee709d2cdd2","entry":"_is_qwen3_8b","repo":"AuroraLHL/PEARL","repo_kind":"found_in_text","path":"core/generate_with_code.py","file_url":"https://github.com/AuroraLHL/PEARL/blob/HEAD/core/generate_with_code.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c6568ee709d2cdd2"}},{"code_sha256_prefix":"8d54666c882e7c67","entry":"_parse_memory_limit_bytes","repo":"AuroraLHL/PEARL","repo_kind":"found_in_text","path":"core/generate_with_code.py","file_url":"https://github.com/AuroraLHL/PEARL/blob/HEAD/core/generate_with_code.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8d54666c882e7c67"}},{"code_sha256_prefix":"dc74da45fbb0f193","entry":"postprocess_predictions","repo":"AuroraLHL/PEARL","repo_kind":"found_in_text","path":"core/generate_with_code.py","file_url":"https://github.com/AuroraLHL/PEARL/blob/HEAD/core/generate_with_code.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"dc74da45fbb0f193"}},{"code_sha256_prefix":"4829f2582e6a9123","entry":"postprocess_responses","repo":"AuroraLHL/PEARL","repo_kind":"found_in_text","path":"core/generate_with_code.py","file_url":"https://github.com/AuroraLHL/PEARL/blob/HEAD/core/generate_with_code.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4829f2582e6a9123"}},{"code_sha256_prefix":"61932d73abd6c6e6","entry":"_PythonExecResult","repo":"AuroraLHL/PEARL","repo_kind":"found_in_text","path":"core/generate_with_code.py","file_url":"https://github.com/AuroraLHL/PEARL/blob/HEAD/core/generate_with_code.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"61932d73abd6c6e6"}},{"code_sha256_prefix":"7f2ee5e2818913bc","entry":"_ensure_system_prompt_messages","repo":"AuroraLHL/PEARL","repo_kind":"found_in_text","path":"core/generate_with_code.py","file_url":"https://github.com/AuroraLHL/PEARL/blob/HEAD/core/generate_with_code.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7f2ee5e2818913bc"}},{"code_sha256_prefix":"814e5cd5f3185f07","entry":"_execute_python_blocking","repo":"AuroraLHL/PEARL","repo_kind":"found_in_text","path":"core/generate_with_code.py","file_url":"https://github.com/AuroraLHL/PEARL/blob/HEAD/core/generate_with_code.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"814e5cd5f3185f07"}},{"code_sha256_prefix":"5eed851ee3f9ef6d","entry":"_get_system_prompt","repo":"AuroraLHL/PEARL","repo_kind":"found_in_text","path":"core/generate_with_code.py","file_url":"https://github.com/AuroraLHL/PEARL/blob/HEAD/core/generate_with_code.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5eed851ee3f9ef6d"}},{"code_sha256_prefix":"f75c6aa1bad1024c","entry":"execute_predictions","repo":"AuroraLHL/PEARL","repo_kind":"found_in_text","path":"core/generate_with_code.py","file_url":"https://github.com/AuroraLHL/PEARL/blob/HEAD/core/generate_with_code.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f75c6aa1bad1024c"}},{"code_sha256_prefix":"a3f3636aa4b42f33","entry":"execute_python","repo":"AuroraLHL/PEARL","repo_kind":"found_in_text","path":"core/generate_with_code.py","file_url":"https://github.com/AuroraLHL/PEARL/blob/HEAD/core/generate_with_code.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a3f3636aa4b42f33"}},{"code_sha256_prefix":"fe6c8218a8e96089","entry":"generate","repo":"AuroraLHL/PEARL","repo_kind":"found_in_text","path":"core/generate_with_code.py","file_url":"https://github.com/AuroraLHL/PEARL/blob/HEAD/core/generate_with_code.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"fe6c8218a8e96089"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}