Bachelor's Thesis

Economic simulator

Final Thesis 18.14 MB

Author of thesis: Pavel Stepanov

Acad. year: 2025/2026

Supervisor: Ing. Michal Vlnas

Reviewer: Ing. Tomáš Chlubna, Ph.D.

Abstract:

This thesis presents the design and implementation of an agent-based economic simulator. The model represents a simplified economy as interacting firms, households, banks, and governments operating in a discrete-time environment with explicit production, trade, finance, and policy mechanisms. It is implemented as a software prototype in C++ with a graphical user interface for inspection and control of the simulated economy. The resulting system supports scenario loading, tick-based simulation, state persistence, and runtime visualization. The evaluation shows that the prototype operates as a technically consistent and interpretable platform for exploratory economic simulation.

Keywords:

agent-based modelling, economic simulator, macroeconomic simulation, computational economics, discrete-time simulation, heterogeneous agents

Date of defence

16.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaAznamka

Grading

A

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

Topics for thesis defence

  1. Připravte slide, kde vedle sebe znázorníte agenty a vypíšete seznam jejich funkcí a možností. Cílem je ukázat co vše agenti umí, pokud možno jasně a jednoduše.
  2. O prezentační vrstvě (uživatelské rozhraní) je v textu psáno: „...it prevents the interface from being mixed with the model logic...it allows scenarios to be changed without rewriting the simulation code itself“. Jak tedy dochází ke změnám v simulaci vykonaných přes uživatelské rozhraní? Je implementován komunikační protokol?
  3. V textu je věta: „Instead of storing such values inside deeply nested structures, the implementation uses flat arrays whose logical position is computed from one or more indices.“ Autor předpokládá, že vyhne-li se nepřímému indexování tak ušetří výkon. Je zmíněné pole skutečně tak velké nebo je jeho použití tak časté aby se tato optimalizace reálně projevila?
  4. Autor zmiňuje, že v simulaci lze nastavit počet tiků za den. Jelikož jednou za den dochází k unikátním událostem, může změna počtu tiků výrazně ovlivnit průběh simulace a vést i k nestabilitě?
  5. Jak je simulace stabilní s narůstajícím časem? V sekci měření jsou uvedeny pouze relativně krátké scénáře. Je simulace dostatečně stabilní i po provedení desetitisíců tiků? Např. na grafu 5.2 se zdá, že by se mohly grafy firem a domácností časem protnout.
  6. Jakým způsobem je generována podkladová mapa světa?

Language of thesis

English

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

doc. Ing. Tomáš Martínek, Ph.D. (předseda)
doc. Ing. Michal Španěl, Ph.D. (místopředseda)
Ing. Jiří Hynek, Ph.D. (člen)
Ing. Filip Orság, Ph.D. (člen)
Ing. Vladimír Bartík, Ph.D. (člen)

Supervisor’s report
Ing. Michal Vlnas

Celkově dle mého názoru student odvedl velké množství práce a proto je výstupem velmi robustní a propracovaný simulátor. Současně byl student velmi aktivní a iniciativní. Navrhuji hodnocení stupněm A.

Evaluation criteria Verbal classification
Informace k zadání

Zadání je dle mého názoru obtížnější vzhledem k množství simulovaných veličin. S dosaženými výsledky jsem spokojen.

Práce s literaturou

Student pracoval s literaturou samostatně.

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

Student byl velmi aktivní, na konzultace docházel pravidelně, ukazoval vždy značný postup v práci a kladl věcné otázky. Jediné co lze vytknout je občasná jazyková bariéra.

Aktivita při dokončování

Práce byla dokončena včas, textová část byla mnohokrát konzultována, včetně finální verze.

Publikační činnost, ocenění

-

Points proposed by supervisor: 92

Grade proposed by supervisor: A

Reviewer’s report
Ing. Tomáš Chlubna, Ph.D.

Výsledná aplikace je vysoce kvalitní a komplexní projekt, textová zpráva svou zbytečnou délkou a menším množstvím nedostatků hodnocení snižuje.


Z textové zprávy i komplexního řešení je patrné, že autor načerpal mnoho znalostí z oboru ekonomie a ty zpracoval v kvalitní implementaci. Textová zpráva mohla být výrazně kratší bez újmy na předání relevantních informací čtenáři. Některé formální chyby také mírně snižují její kvalitu. Autor projevil aktivitu navíc a osobně demonstroval dosažené výsledky.

Evaluation criteria Verbal classification Points
Náročnost zadání

Evaluation level: obtížnější zadání

Cílem je komplexní aplikace vyžadující nejen znalosti simulačních metod, ale také ekonomiky.

Autor implementoval v aplikaci velké množství pravidel a metod pro pokročilou simulaci. Textová zpráva také ukazuje autorovy rozsáhlé znalosti v tomto oboru. Simulace samotná zahrnuje i pěkné grafické rozhraní.

Prezentační úroveň technické zprávy

Struktura textu je standardní a celkově je text pochopitelný.

Výsledky uživatelského dotazníku na str. 90 mohly být raději vysázeny jako graf místo textového popisu.

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

V textu se nachází několik nedostatků, které však nejsou kritické.

Text je psán anglicky a překlepy jsou spíše ojedinělé (např. slovo relocyation). Konce řádků s předložkami a spojkami v českém textu v abstraktu a rozšířeném abstraktu nejsou ošetřeny. Místy je v textu použita první mluvnická osoba, což narušuje technický styl.

Nadpisy nejsou vysázeny konzistentně na dané úrovni (např. nadpisy sekcí 3.5 a 3.6.1 používají jiná pravidla pro velká písmena než zbytek). Rovnice na str. 4 není správně uvedena ve větě ani není číslována jako ostatní rovnice. Proměnné v ní použité nejsou popsány. Zkratky CGE a DSGE nejsou rozepsány. Seznam na straně 55 není uveden větou.

Obrázky, které autor sám vytvářel, jsou velmi pěkné, názorné a ve vektorovém formátu. Jen v obrázku 4.4 se nachází artefakt v podobě malé šipky navíc za textem. Odkazování obrázků je místy nekonzistentní (např. Fig. X vs Figure X). Obrázek 2.5 není odkazován v textu.

79
Realizační výstup

Výsledná aplikace je plně funkční, kvalitně zpracovaný a zajímavý produkt.

Aplikace implementuje pokročilé simulační metody a agenti v simulaci mají mnoho možností interakce a individuálního chování. Řešení je modulární a frontend s uživatelským rozhraním je čistě oddělen od simulančího backendu. Kód je pěkně členěn do adresářů, je čistý, objektově orientovaný, používá pokročilé funkce jazyka C++, a jsou použity lehce použitelné moderní překladové nástroje.

100
Využitelnost výsledků

Aplikace by mohla být zveřejněna pro výukové či herní použití.

Cílem nebyla simulace reálné ekonomiky, nicméně autor zajímavým způsobem implementoval mnoho ekonomických pravidel a jevů. Zdá se, že aplikace je zajímavou a unikátní kombinací experimentální simulace těchto pravidel a herního projektu.

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

Evaluation level: zadání splněno

Všechny body zadání byly splněny.

Z hlediska implementace lze říct, že zadání bylo splněno v nadstandardně vysoké kvalitě. Demonstrační video je také hezké.

Rozsah technické zprávy

Evaluation level: přesahuje obvyklé rozmezí

Zpráva je informačně hodnotná, nicméně rozsah zbytečně překračuje.

Dle nástroje FIT Theses Checker text přesahuje 150 normostran. Kapitoly jsou obsahově vyvážené a text popisuje problematiku důkladně, což svědčí o autorově zápalu a znalostech. Nicméně místy jsou informace redundantní a mnoho detailů, zejména souvisejících s ekonomií samotnou, by bylo možné vynechat.

Práce s literaturou

Text se na vhodných místech odkazuje na dobře vybraných 34 odborných zdrojů, práce s citacemi má jen několik drobných nedostatků.

Poznámky pod čarou se místy nenacházejí na stejné straně jako jejich odkaz v textu (např. str. 6). Celkový počet poznámek pod čarou s doplňujícími odkazy je vysoký a dobře podporuje tvrzení v textu.

U převzatého obrázku 2.11 není uveden zdroj, citace je uvedena jen v textu poblíž odkazu na daný obrázek. Pojem Likert scale mohl být citován. Některé komentáře v sekci Bibliography (např. Open online excerpt at Marxists Internet Archive) se zdají být navíc vloženy a spíše zhoršují čitelnost citací. U některých citací chybí DOI (např. [12]).

90
Topics for thesis defence:
  1. Připravte slide, kde vedle sebe znázorníte agenty a vypíšete seznam jejich funkcí a možností. Cílem je ukázat co vše agenti umí, pokud možno jasně a jednoduše.
  2. O prezentační vrstvě (uživatelské rozhraní) je v textu psáno: „...it prevents the interface from being mixed with the model logic...it allows scenarios to be changed without rewriting the simulation code itself“. Jak tedy dochází ke změnám v simulaci vykonaných přes uživatelské rozhraní? Je implementován komunikační protokol?
  3. Autor zmiňuje, že v simulaci lze nastavit počet tiků za den. Jelikož jednou za den dochází k unikátním událostem, může změna počtu tiků výrazně ovlivnit průběh simulace a vést i k nestabilitě?
  4. Jak je simulace stabilní s narůstajícím časem? V sekci měření jsou uvedeny pouze relativně krátké scénáře. Je simulace dostatečně stabilní i po provedení desetitisíců tiků? Např. na grafu 5.2 se zdá, že by se mohly grafy firem a domácností časem protnout.
  5. V textu je věta: „Instead of storing such values inside deeply nested structures, the implementation uses flat arrays whose logical position is computed from one or more indices.“ Autor předpokládá, že vyhne-li se nepřímému indexování tak ušetří výkon. Je zmíněné pole skutečně tak velké nebo je jeho použití tak časté aby se tato optimalizace reálně projevila?
  6. Jakým způsobem je generována podkladová mapa světa?
Points proposed by reviewer: 87

Grade proposed by reviewer: B

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