Knihovna pro kartézské genetické programování v jazyce Python
Loading...
Date
Authors
Kováč, Ondrej
Advisor
Referee
Mark
B
Journal Title
Journal ISSN
Volume Title
Publisher
Vysoké učení technické v Brně. Fakulta informačních technologií
ORCID
Abstract
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.
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.
Description
Keywords
Citation
KOVÁČ, O. Knihovna pro kartézské genetické programování v jazyce Python [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2025.
Document type
Document version
Date of access to the full text
Language of document
en
Study field
Strojové učení
Comittee
prof. Dr. Ing. Jan Černocký (předseda)
doc. Ing. Lukáš Burget, Ph.D. (člen)
doc. Ing. Vladimír Janoušek, Ph.D. (člen)
Ing. Michal Hradiš, Ph.D. (člen)
Ing. Jaroslav Rozman, Ph.D. (člen)
Ing. František Grézl, Ph.D. (člen)
Date of acceptance
2025-06-24
Defence
Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm B.
Result of defence
práce byla úspěšně obhájena
