Bachelor's Thesis

Solving the Prisoner's Dilemma Using Genetic Programming

Final Thesis 852.81 kB

Author of thesis: Bc. Lukáš Havlát

Acad. year: 2025/2026

Supervisor: Ing. Martin Hurta, Ph.D.

Reviewer: Ing. Jakub Husa, Ph.D.

Abstract:

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.

Keywords:

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)

znamkaBznamka

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

  1. Proč sada terminálů reprezentované strategie neobsahuje předchozí tahy hráče zmiňované v podkapitole 3.5, a náhodné prvky, používané strategiemi v obou trénovacích sadách?
  2. O jaké další prvky by mělo smysl sadu terminálů a sadu neterminálů rozšířit?
  3. Co znamená pojem hluk?
  4. V čem spočívá jádro vaší práce?
  5. Co je na vstupu genetického algoritmu?

Language of thesis

Czech

Faculty

Department

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 report
Ing. 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ě.

Evaluation criteria Verbal classification
Informace k zadání

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é.

Práce s literaturou

Student aktivně vyhledával relevantní zdroje, které vhodně využil.

Aktivita během řešení, konzultace, komunikace

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.

Aktivita při dokončování

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, ocenění

Publikační činnost není známa.

Points proposed by supervisor: 90

Grade proposed by supervisor: A

Reviewer’s report
Ing. 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 criteria Verbal classification Points
Náročnost zadání

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

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é.

75
Formální úprava technické zprávy

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.

85
Realizační výstup

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í.

55
Využitelnost výsledků

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é.

Rozsah splnění požadavků zadání

Evaluation level: zadání splněno

Student splnil všechny body zadání.

Rozsah technické zprávy

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 s literaturou

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.

85
Topics for thesis defence:
  1. Proč sada terminálů reprezentované strategie neobsahuje předchozí tahy hráče zmiňované v podkapitole 3.5, a náhodné prvky, používané strategiemi v obou trénovacích sadách?
  2. O jaké další prvky by mělo smysl sadu terminálů a sadu neterminálů rozšířit?
Points proposed by reviewer: 70

Grade proposed by reviewer: C

Responsibility: Mgr. et Mgr. Hana Odstrčilová