Bachelor's Thesis

Economic simulator

Final Thesis 18.14 MB

Author of thesis: Bc. 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
Information about assignment

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.

Work with literature

Student pracoval s literaturou samostatně.

Activity during solution, consultations, communication

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.

Activity during completion

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

Publication activity, awards

-

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 Max. points
The difficulty of the assignment

Evaluation level: more difficult assignment

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

Presentation level of the technical report

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 100
Formal preparation of a technical report

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 100
Realisation output

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 100
Usability of results

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.

The extent to which the requirements of the assignment have been met

Evaluation level: assignment fulfilled

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

Extent of the technical report

Evaluation level: exceeds the usual extent

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.

Work with literature

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 100
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á