{"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-2609-12265","title":"GTA: Graph Theory Agent and Benchmark for Algorithmic Graph Reasoning with LLMs","arxiv_id":"2609.12265","date":"2026-09-10","proceeding":null,"authors":["Zixiang Xu","Yanbo Wang","Chenxi Wang","Lang Gao","Zirui Song","Yue Huang","Zhaorun Chen","Xiangliang Zhang","Xiuying Chen"],"abstract":"Large Language Models (LLMs) are increasingly asked to reason over structured data such as graphs, yet how reliably they can carry out multi-step graph algorithms in language remains unclear. Existing evaluations tend to use simple tasks on small graphs, to score code generation rather than reasoning over the graph itself, or to fix a single input format. We introduce Graph Theory Bench (GT Bench), a benchmark covering 24 classical graph problems in 44 task-structure settings, with over 100,000 examples across four representations: natural language, structured language, adjacency list, and adjacency matrix. Evaluating eight LLMs on GT Bench shows that accuracy is strongly tied to the input representation, that the best representation shifts with graph density, size, and topology as well as with the model, and that this sensitivity persists, attenuated, in the strongest reasoning models. Building on these observations, we propose the Graph Theory Agent (GTA), which pairs a preference-trained representation selector with plan-and-decompose scaffolding around a frozen executor LLM. GTA lifts Phi-4 from 53.5% to 69.1% on the benchmark's easy split and from 33.0% to 41.5% on its hard split, outperforming eight prompting and agent baselines, and transfers without retraining to GraCoRe and NLGraph. Code for benchmark generation and evaluation: https://github.com/xzx34/GTA. The project homepage is available at https://xzx34.github.io/gta/.","url_abs":"https://arxiv.org/abs/2609.12265","url_pdf":"https://arxiv.org/pdf/2609.12265","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=2609.12265","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2609.12265"}},"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/xzx34/GTA","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":14},"by_repo_kind":{"found_in_text":{"samples":14,"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":"fb9e59aac275392c","entry":"attributes","repo":"xzx34/GTA","repo_kind":"found_in_text","path":"src/gtbench/formats.py","file_url":"https://github.com/xzx34/GTA/blob/HEAD/src/gtbench/formats.py","link_basis":"first_harvest_node","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":"fb9e59aac275392c"}},{"code_sha256_prefix":"be97d5a30ae5391c","entry":"determinant","repo":"xzx34/GTA","repo_kind":"found_in_text","path":"src/gtbench/solvers.py","file_url":"https://github.com/xzx34/GTA/blob/HEAD/src/gtbench/solvers.py","link_basis":"first_harvest_node","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":"be97d5a30ae5391c"}},{"code_sha256_prefix":"6f7602f3af1e189f","entry":"digest","repo":"xzx34/GTA","repo_kind":"found_in_text","path":"src/gtbench/data.py","file_url":"https://github.com/xzx34/GTA/blob/HEAD/src/gtbench/data.py","link_basis":"first_harvest_node","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":"6f7602f3af1e189f"}},{"code_sha256_prefix":"0a5cb941be6403a6","entry":"extract_answer","repo":"xzx34/GTA","repo_kind":"found_in_text","path":"src/gtbench/evaluate.py","file_url":"https://github.com/xzx34/GTA/blob/HEAD/src/gtbench/evaluate.py","link_basis":"first_harvest_node","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":"0a5cb941be6403a6"}},{"code_sha256_prefix":"f9b6c86d13541248","entry":"generate_dataset","repo":"xzx34/GTA","repo_kind":"found_in_text","path":"src/gtbench/generate.py","file_url":"https://github.com/xzx34/GTA/blob/HEAD/src/gtbench/generate.py","link_basis":"first_harvest_node","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":"f9b6c86d13541248"}},{"code_sha256_prefix":"a36efd4d6a7768ff","entry":"generate_graph","repo":"xzx34/GTA","repo_kind":"found_in_text","path":"src/gtbench/generate.py","file_url":"https://github.com/xzx34/GTA/blob/HEAD/src/gtbench/generate.py","link_basis":"first_harvest_node","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":"a36efd4d6a7768ff"}},{"code_sha256_prefix":"d6925f96db385b05","entry":"generate_instance","repo":"xzx34/GTA","repo_kind":"found_in_text","path":"src/gtbench/generate.py","file_url":"https://github.com/xzx34/GTA/blob/HEAD/src/gtbench/generate.py","link_basis":"first_harvest_node","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":"d6925f96db385b05"}},{"code_sha256_prefix":"61d7b30722025b3d","entry":"get_task","repo":"xzx34/GTA","repo_kind":"found_in_text","path":"src/gtbench/tasks.py","file_url":"https://github.com/xzx34/GTA/blob/HEAD/src/gtbench/tasks.py","link_basis":"first_harvest_node","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":"61d7b30722025b3d"}},{"code_sha256_prefix":"f5e2b9aa7af37032","entry":"json_text","repo":"xzx34/GTA","repo_kind":"found_in_text","path":"src/gtbench/data.py","file_url":"https://github.com/xzx34/GTA/blob/HEAD/src/gtbench/data.py","link_basis":"first_harvest_node","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":"f5e2b9aa7af37032"}},{"code_sha256_prefix":"7aa74ae08a432497","entry":"make_record","repo":"xzx34/GTA","repo_kind":"found_in_text","path":"src/gtbench/data.py","file_url":"https://github.com/xzx34/GTA/blob/HEAD/src/gtbench/data.py","link_basis":"first_harvest_node","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":"7aa74ae08a432497"}},{"code_sha256_prefix":"bdaaccbb96c37a8e","entry":"read_config","repo":"xzx34/GTA","repo_kind":"found_in_text","path":"src/gtbench/evaluate.py","file_url":"https://github.com/xzx34/GTA/blob/HEAD/src/gtbench/evaluate.py","link_basis":"first_harvest_node","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":"bdaaccbb96c37a8e"}},{"code_sha256_prefix":"04876e2b0114d507","entry":"score_examples","repo":"xzx34/GTA","repo_kind":"found_in_text","path":"src/gtbench/evaluate.py","file_url":"https://github.com/xzx34/GTA/blob/HEAD/src/gtbench/evaluate.py","link_basis":"first_harvest_node","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":"04876e2b0114d507"}},{"code_sha256_prefix":"633e68fffeaf19b3","entry":"second_mst","repo":"xzx34/GTA","repo_kind":"found_in_text","path":"src/gtbench/solvers.py","file_url":"https://github.com/xzx34/GTA/blob/HEAD/src/gtbench/solvers.py","link_basis":"first_harvest_node","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":"633e68fffeaf19b3"}},{"code_sha256_prefix":"8aea140b5b8b6e24","entry":"spanning_tree_count","repo":"xzx34/GTA","repo_kind":"found_in_text","path":"src/gtbench/solvers.py","file_url":"https://github.com/xzx34/GTA/blob/HEAD/src/gtbench/solvers.py","link_basis":"first_harvest_node","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":"8aea140b5b8b6e24"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.AI","source":"arxiv_backlog_21d_20260915.json"},"syntology_extracted_results":null}