{"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/synergizing-spatial-optimization-with-large","title":"ITINERA: Integrating Spatial Optimization with Large Language Models for Open-domain Urban Itinerary Planning","arxiv_id":"2402.07204","date":"2024-02-11","proceeding":null,"authors":["Yihong Tang","Zhaokai Wang","Ao Qu","Yihao Yan","Zhaofeng Wu","Dingyi Zhuang","Jushi Kai","Kebing Hou","Xiaotong Guo","Han Zheng","Tiange Luo","Jinhua Zhao","Zhan Zhao","Wei Ma"],"abstract":"Citywalk, a recently popular form of urban travel, requires genuine personalization and understanding of fine-grained requests compared to traditional itinerary planning. In this paper, we introduce the novel task of Open-domain Urban Itinerary Planning (OUIP), which generates personalized urban itineraries from user requests in natural language. We then present ITINERA, an OUIP system that integrates spatial optimization with large language models to provide customized urban itineraries based on user needs. This involves decomposing user requests, selecting candidate points of interest (POIs), ordering the POIs based on cluster-aware spatial optimization, and generating the itinerary. Experiments on real-world datasets and the performance of the deployed system demonstrate our system's capacity to deliver personalized and spatially coherent itineraries compared to current solutions. Source codes of ITINERA are available at https://github.com/YihongT/ITINERA.","url_abs":"https://arxiv.org/abs/2402.07204v5","url_pdf":"https://arxiv.org/pdf/2402.07204v5.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":"synergizing-spatial-optimization-with-large","repo_url":"https://github.com/YihongT/ITINERA","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"GPL-3.0"}}],"tasks":[{"task_slug":"llm-real-life-tasks","task_name":"LLM real-life tasks"},{"task_slug":"open-domain-question-answering","task_name":"Open-Domain Question Answering"},{"task_slug":"urban-itinerary-planning","task_name":"Urban Itinerary Planning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2402.07204","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2402.07204"}},"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/YihongT/ITINERA","reach":{"status":"ok","spdx":"GPL-3.0"}}],"summary":{"ran":8},"by_repo_kind":{"official":{"samples":8,"ran":8,"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":8,"samples":[{"code_sha256_prefix":"ac572c78fde7866e","entry":"check_final_reverse_prompt","repo":"YihongT/ITINERA","repo_kind":"official","path":"model/utils/all_en_prompts.py","file_url":"https://github.com/YihongT/ITINERA/blob/HEAD/model/utils/all_en_prompts.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"ac572c78fde7866e"}},{"code_sha256_prefix":"d2c00be075dee2e4","entry":"check_final_reverse_prompt","repo":"YihongT/ITINERA","repo_kind":"official","path":"model/utils/all_prompts.py","file_url":"https://github.com/YihongT/ITINERA/blob/HEAD/model/utils/all_prompts.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"d2c00be075dee2e4"}},{"code_sha256_prefix":"dbe583d74d284661","entry":"compute_consecutive_distances","repo":"YihongT/ITINERA","repo_kind":"official","path":"model/utils/funcs.py","file_url":"https://github.com/YihongT/ITINERA/blob/HEAD/model/utils/funcs.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"dbe583d74d284661"}},{"code_sha256_prefix":"db48282c3060feea","entry":"find_indices","repo":"YihongT/ITINERA","repo_kind":"official","path":"model/utils/funcs.py","file_url":"https://github.com/YihongT/ITINERA/blob/HEAD/model/utils/funcs.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"db48282c3060feea"}},{"code_sha256_prefix":"6107b34bf86cbe8f","entry":"get_hour_prompt","repo":"YihongT/ITINERA","repo_kind":"official","path":"model/utils/all_en_prompts.py","file_url":"https://github.com/YihongT/ITINERA/blob/HEAD/model/utils/all_en_prompts.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"6107b34bf86cbe8f"}},{"code_sha256_prefix":"e70b8100cba579cd","entry":"get_hour_prompt","repo":"YihongT/ITINERA","repo_kind":"official","path":"model/utils/all_prompts.py","file_url":"https://github.com/YihongT/ITINERA/blob/HEAD/model/utils/all_prompts.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"e70b8100cba579cd"}},{"code_sha256_prefix":"87a664f64490967a","entry":"get_system_prompt","repo":"YihongT/ITINERA","repo_kind":"official","path":"model/utils/all_en_prompts.py","file_url":"https://github.com/YihongT/ITINERA/blob/HEAD/model/utils/all_en_prompts.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"87a664f64490967a"}},{"code_sha256_prefix":"6e22cfdfe430f70a","entry":"get_system_prompt","repo":"YihongT/ITINERA","repo_kind":"official","path":"model/utils/all_prompts.py","file_url":"https://github.com/YihongT/ITINERA/blob/HEAD/model/utils/all_prompts.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"6e22cfdfe430f70a"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}