Original title:
Knihovna pro kartézské genetické programování v jazyce Python
Translated title:
Library for Cartesian Genetic Programming in Python
Authors:
Kováč, Ondrej ; Mrázek, Vojtěch (referee) ; Hurta, Martin (advisor) Document type: Master’s theses
Year:
2025
Language:
eng Publisher:
Vysoké učení technické v Brně. Fakulta informačních technologií Abstract:
[eng][cze]
Táto práca sa zameriava na implementáciu knižnice pre Kartézske Genetické Programovanie (CGP, angl. Cartesian Genetic Programming) v jazyku Python. CGP je metóda používaná pre evolučný návrh výpočetných štruktúr v rôznych odvetviach. Práca začína úvodom do evolučnej teórie v biológií, čím dodáva čitateľovi kontext pre lepšie pochopenie základných princípov evolučných algoritmov. Potom diskutuje evolučné algoritmy vo všeobecnosti, so zvýšenou pozornosťou na funkcionalitu CGP. Táto práca taktiež skúma obmedzenú výpočetnú silu jazyka Python a preskúmava spôsoby ako sa dajú dané obmedzenia zlepšiť pomocou externých modulov a nástrojov. Ďalšie kapitoly sa potom zaoberajú návrhom knižnice, vrátane návrhu aplikačného rozhrania (API). Sekcia o implementácií sa potom viac sústreďuje na rôzne optimalizačné techniky a využitie modulu NumPy pre dosiahnutie vysokého výpočetného výkonu. Nakoniec táto práca vyhodnocuje knižnicu v oblasti výkonu, testuje experimentálnu optimalizačnú metódu založenú na znovupoužití náhodne generovaných čísel a porovnáva knižnicu s inými existujúcimi implementáciami CGP. Knižnica dosiahla veľmi silné výsledky, primárne pri riešení komplexnejších problémov.
This thesis focuses on the implementation of a library for Cartesian Genetic Programming (CGP) in Python. CGP is a method used for the evolutionary design of computational structures across various domains. The work begins with an introduction to evolutionary theory in biology, providing context to help the reader understand the fundamental principles behind evolutionary algorithms. It then discusses evolutionary algorithms in general, with a particular emphasis on the functionality and specifics of CGP. The thesis also examines the performance limitations of Python and explores approaches to mitigate them using external modules and tools. Subsequent chapters detail the design of the library, including its application programming interface (API). The implementation section focuses on various optimization techniques and the use of the NumPy module to achieve high computational performance. Finally, the thesis evaluates the library’s performance, tests an experimental optimization method based on reusing randomly generated numbers, and compares the implementation against existing CGP libraries. The library achieved strong results, especially in solving more complex problems.
Keywords:
Cython; evolučný dizajn; kartézske genetické programovanie; knižnica; NumPy; Python; cartesian genetic programming; Cython; evolutionary design; library; NumPy; Python
Institution: Brno University of Technology
(web)
Document availability information: Fulltext is available in the Brno University of Technology Digital Library. Original record: http://hdl.handle.net/11012/254948