{"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-2606-15923","title":"Runtime Analysis of Cartesian Genetic Programming in Evolving Boolean Functions","arxiv_id":"2606.15923","date":"2026-06-14","proceeding":null,"authors":["Duc-Cuong Dang","Roman Kalkreuth","Andre Opris"],"abstract":"Cartesian Genetic Programming (CGP) is among the practical and popular forms of Genetic Programming as it uses a graph-based representation of programs. This paper presents a first runtime analysis of CGP in evolving Boolean functions using complete training sets. We prove an asymptotic bound $O(n D^5)$ for the expected number of fitness evaluations of CGP to construct a conjunction of $n$ inputs using at most $D \\geq n-1$ binary gates, a minimal function set, and even with a strict survival selection. When the non-strict selection is used, the bound is improved to $O(n D^4)$. Our analysis reveals interesting characteristics of CGP induced search, which have been only observed empirically. In particular, enabling the acceptance of equally good solutions, including those with connected gates non-contributing to fitness, can lead to a speedup, and consequently a better asymptotic time bound. In contrast to conjunctions, we also prove a negative result which shows that CGP requires exponential time to evolve an exclusive disjunction. Experiments evolving conjunctions complement our theoretical findings. The use of incomplete training sets is found to further reduce the average number of fitness evaluations while maintaining a good level of generalisation.","url_abs":"https://arxiv.org/abs/2606.15923","url_pdf":"https://arxiv.org/pdf/2606.15923","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=2606.15923","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2606.15923"}},"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/GPBench/TinyverseGP","reach":null}],"summary":{"ran":7},"by_repo_kind":{"found_in_text":{"samples":7,"ran":7,"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":7,"samples":[{"code_sha256_prefix":"39289d5ff76a471f","entry":"absolute_error","repo":"GPBench/TinyverseGP","repo_kind":"found_in_text","path":"src/gp/loss.py","file_url":"https://github.com/GPBench/TinyverseGP/blob/HEAD/src/gp/loss.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":"39289d5ff76a471f"}},{"code_sha256_prefix":"ecce65dcee081f94","entry":"b2f","repo":"GPBench/TinyverseGP","repo_kind":"found_in_text","path":"src/gp/functions.py","file_url":"https://github.com/GPBench/TinyverseGP/blob/HEAD/src/gp/functions.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":"ecce65dcee081f94"}},{"code_sha256_prefix":"6cfde80175c15ac2","entry":"f2b","repo":"GPBench/TinyverseGP","repo_kind":"found_in_text","path":"src/gp/functions.py","file_url":"https://github.com/GPBench/TinyverseGP/blob/HEAD/src/gp/functions.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":"6cfde80175c15ac2"}},{"code_sha256_prefix":"3f9b299462201067","entry":"mean_absolute_error","repo":"GPBench/TinyverseGP","repo_kind":"found_in_text","path":"src/gp/loss.py","file_url":"https://github.com/GPBench/TinyverseGP/blob/HEAD/src/gp/loss.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":"3f9b299462201067"}},{"code_sha256_prefix":"899ed17e7b7dad1b","entry":"mean_squared_error","repo":"GPBench/TinyverseGP","repo_kind":"found_in_text","path":"src/gp/loss.py","file_url":"https://github.com/GPBench/TinyverseGP/blob/HEAD/src/gp/loss.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":"899ed17e7b7dad1b"}},{"code_sha256_prefix":"0cdcc71254f2c01c","entry":"node_size","repo":"GPBench/TinyverseGP","repo_kind":"found_in_text","path":"src/gp/tiny_tgp.py","file_url":"https://github.com/GPBench/TinyverseGP/blob/HEAD/src/gp/tiny_tgp.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":"0cdcc71254f2c01c"}},{"code_sha256_prefix":"a0bd5d5a8fab8ae0","entry":"p2i","repo":"GPBench/TinyverseGP","repo_kind":"found_in_text","path":"src/gp/functions.py","file_url":"https://github.com/GPBench/TinyverseGP/blob/HEAD/src/gp/functions.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":"a0bd5d5a8fab8ae0"}}]},"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}