Přístupnostní navigace
E-application
Search Search Close
Bachelor's Thesis
Author of thesis: Bc. Lukáš Havlát
Acad. year: 2025/2026
Supervisor: Ing. Martin Hurta, Ph.D.
Reviewer: Ing. Jakub Husa, Ph.D.
This thesis deals with the design, implementation and experimental evaluation of a method that automatically generates strategies for iterated prisoner’s dilemma using genetic programming. The prisoner’s dilemma is one of the model situations of game theory, where players can either cooperate or be in conflict with each other. During a longer game sequence between two players, the aim of each of them is to obtain the highest possible score. The designed method uses a tree-based representation, that tries to predict opponent’s next move and respond to it in such a way that the strategy gains the highest possible point gain during the game. In this thesis, several variants of evolution settings were experimentally compared. Experiments show that designed method is able to find strategies that achieve comparable results to strategies designed by a human and, under certain conditions, achieve very high-quality results that beat conventional strategies.
game theory, iterated prisoner´s dilemma, strategy design, tree-based genetic programming, evolutionary algorithms
Date of defence
17.06.2026
Result of the defence
Defended (thesis was successfully defended)
Grading
B
Process of 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.
Topics for thesis defence
Language of thesis
Czech
Faculty
Fakulta informačních technologií
Department
Department of Computer Systems
Study programme
Information Technology (BIT)
Composition of Committee
doc. Ing. František Zbořil, Ph.D. (předseda) doc. Ing. Vojtěch Mrázek, Ph.D. (místopředseda) Ing. Petr Veigend, Ph.D. (člen) Ing. David Bařina, Ph.D. (člen) Ing. Miloš Musil, Ph.D. (člen)
Supervisor’s reportIng. Martin Hurta, Ph.D.
Student ve své práci splnil zadání a navrhl metodu pro automatický návrh strategií v úloze vězňova dilematu pomocí GP. Navrženou metodu řádně experimentálně vyhodnotil na iterované úloze vězňova dilematu a oproti zadání ji navíc vyhodnotil i na variantě problému obsahující komunikační šum a provedl analýzu chování vybraných řešení. S ohledem na aktivní a samostatný přístup studenta během celé doby řešení práce a její včasné vypracování navrhuji hodnocení stupněm A – výborně.
Cílem práce bylo nastudovat problematiku genetického programování (GP) a vězňova dilematu. Na základě získaných znalostí pak bylo úkolem navrhnout metodu založenou na GP pro automatický návrh strategií pro vězňovo dilema, experimentálně ji vyhodnotit a porovnat s referenčními strategiemi. Zadání této práce hodnotím jako středně obtížné.
Student aktivně vyhledával relevantní zdroje, které vhodně využil.
Student pracoval aktivně a samostatně v průběhu celého řešení práce. Sám navrhoval konkrétní způsoby řešení a konzultací se účastnil pravidelně, vždy dobře připraven.
Student na tématu práce pracoval průběžně. Text byl opakovaně konzultován, a to včetně finální verze, která byla hotova se značným předstihem. Mé připomínky byly vždy řádně zapracovány.
Publikační činnost není známa.
Grade proposed by supervisor: A
Reviewer’s reportIng. Jakub Husa, Ph.D.
Student splnil zadání, provedl rešerši požadovaných témat, implementoval základní variantu požadovaného algoritmu, a provedl a vyhodnotil uspokojivou sadu experimentů. V důsledku nevhodné volby reprezentace vyvíjených strategií však práce nedosáhla, a ani nemohla dosáhnout, žádných zajímavých výsledků. Celkově tedy práci navrhuji hodnotit jako dobrou – 70 C.
Evaluation level: průměrně obtížné zadání
Cílem práce bylo nastudovat metodu genetického programování a aplikovat ji na návrh strategie pro řešení problému opakovaného vězňova dilematu. Studium genetického programování je nad rozsah běžného bakalářského studia, zadání však umožňuje tuto metodu implementovat pouze v nejjednodušší možné verzi, bez jakýchkoliv rozšíření. Zadání proto považuji za průměrně obtížné.
Prezentační úroveň technické zprávy je na dobré úrovni. Práce je logicky strukturována, a jednotlivé kapitoly na sebe smysluplně navazují. Práce vhodně popisuje evoluční algoritmus genetického programování i problém vězňova dilematu, jeho obdob, variant, a známých strategií pro jeho řešení.
Vážnou výhradu však mám k tabulkám 6.10 a 6.11, které by šlo kompletně nahradit dvěma 32-bitovými celými čísly.
Závěr, vyvozený z provedených experimentů, je poměrně povrchní. Shrnuje výsledky provedených experimentů, ale nevyvozuje z nich žádné užitečné informace.
Strategie ve vyvíjené populaci nikdy nehrály proti sobě navzájem. Výsledné, evolučně navržené, strategie překonávají strategie navržené člověkem pouze na svojí vlastní trénovací množině. Pokud je fitness evolučně navržených strategií vyhodnocena na množině testovací, která jim nebyla předem známá (stejně tak jako nebyla známá strategiím, které navrhl člověk), jejich výhody jsou neprůkazné.
Po jazykové stránce je práce na dobré úrovni, bez vážnějších nedostatků.
Výjimkou je existence prázdných podkapitol 2.4 a 6.2 ,které jsou ihned rozděleny na pod-podkapitoly bez patřičného úvodu.
Realizačním výstupem práce je sada skriptů v jazyce Python, která implementuje nástroj pro automatický návrh strategií pro řešení opakovaného vězňova dilematu, pomocí genetického programování.
Odevzdané zdrojové kódy jsou plně funkční. Text práce zmiňuje, že implementace byla inspirována citovaným nástrojem TinyGP, převzaté funkce jsou v kódu jasně označeny,
Všechny soubory, hlavičky, i těla jednotlivých funkcí jsou řádně komentovány a kód je tedy jednoduše srozumitelný. Výpočet fitness je paralelizován a efektivita výpočtu navýšena také pomocí ukládání předchozích tahů do hashovací tabulky.
Implementace algoritmu genetického programování je ale poměrně triviální, a obsahuje jen jednu metodu inicializace populace, jednu funkci fitness, jednu metodu selekce rodičů, jeden operátor mutace, jeden operátor křížení, jednu sadu terminálů, a jednu sadu neterminálů. Chybí také jakákoliv metoda optimalizace výsledného stromu, například odstraňováním zbytečných uzlů.
Vyhodnocení provedených experimentů je dobré. Byl proveden dostatečný počet nezávislých běhů, jejich výsledky byly statisticky vyhodnoceny pomocí průměrných hodnot uvedených v tabulkách, a vyobrazeny pomocí krabicových grafů a konvergenčních křivek. Významnost získaných výsledků byla ověřena statistickými testy.
Za hlavní chybu práce považuji způsob reprezentace strategie, zvolený v kapitole 4.1, kde jsou jako vstupní terminály zvoleny pouze dvě konstanty a předchozích pět tahů protihráče. Tato volba omezuje prohledávaný stavový prostor pouze na 2^32 možných strategií, který by na výkonnějším počítači bylo možné prohledat hrubou silou. Sada také neobsahuje terminály pro hráčovy vlastní tahy, používané strategiemi popsanými v kapitole 3.5, ani náhodný prvek používaný strategiemi s hlukem, které byly součástí obou trénovacích množin. Celkové možnosti strategie jsou v důsledku této volby velmi omezené a pozorované výsledky tomu odpovídají.
Výsledná implementace i vygenerované strategie jsou poměrně triviální a neobsahuje žádné zajímavé prvky. Výsledky nepovažuji za prakticky využitelné.
Evaluation level: zadání splněno
Student splnil všechny body zadání.
Evaluation level: splňuje pouze minimální požadavky
Rozsah technické zprávy je 51.48 normostran, a nedosahuje tedy obvyklého rozmezí délky bakalářské práce.
Práce cituje 19 odborných zdrojů a 2 webové stránky. Použité zdroje jsou vhodně zvoleny, dobře pokrývají zvolenou problematiku, a v textu práce jsou řádně citovány.
Grade proposed by reviewer: C
Responsibility: Mgr. et Mgr. Hana Odstrčilová