Loading .gitignore +2 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,8 @@ !*.csv !*.ad !*.svg !*.yml !*.sh # reignore binaries bin/ Loading custom-theme.yml 0 → 100644 +5 −0 Original line number Diff line number Diff line extends: default page: size: A4 heading: h1-font-size: 24 mkpdf.sh 0 → 100755 +3 −0 Original line number Diff line number Diff line #! /bin/bash asciidoctor-pdf -a pdf-theme=./custom-theme.yml readme.ad readme.ad +26 −19 Original line number Diff line number Diff line = Modelování a simulace: Secret Hitler Autoři: Adam Ivora, Adam Štěpánek [.lead.text-center] Adam Ivora, Adam Štěpánek [.text-center] *IV109, jaro 2020* == Úvod [.unlead] Secret Hitler je sociálně dedukční stolní hra pro 5 - 10 hráčů. Hráčům jsou náhodně přiděleny role liberálů, fašistů a Hitlera. Fašisté znají role všech hráčů ve hře, liberálové a Hitler znají jen svou roli. Hraje se na kola -- volební období -- během kterých je zvolena vláda a prosazen fašistický nebo liberální zákon. Cílem fašistů je prosadit 6 Loading @@ -15,7 +22,7 @@ Z pohledu teorie her se dá Secret Hitler považovat za dynamickou hru s nekompl (liberál, fašista, Hitler) a jejich cíl hry, ale neznají typy, a tím pádem cíle, ostatních hráčů, jen jejich pravděpodobnostní distribuci. == Problém === Problém Naším cílem bylo podívat se na hru jak z pohledu hráčů, tak z pohledu vývojářů: prozkoumat herní rovnováhu, zanalyzovat strategie, které známe z vlastní zkušenosti, a zjistit, jak změna některých parametrů hry ovlivní její výsledek. Loading @@ -28,26 +35,26 @@ výstupem za účely lazení. Její zdrojový kód je přístupný z https://git Pro jednoduchost uvažuje náš model pouze variantu pro 7 - 8 hráčů a limituje sociální interakce na komentáře ohledně zákonů, které prezident a kancléř viděli během svého kola, a komentář ohledně stranické příslušnost v případě speciální prezidentské pravomoci Investigate Loyalty. prezidentské pravomoci _Investigate Loyalty_. Rozhraní hry a strategií (interface IStrategy) prošla během vývoje několika iteracemi. Jejich finální podoba se chová Rozhraní hry a strategií (interface `IStrategy`) prošla během vývoje několika iteracemi. Jejich finální podoba se chová takto: * Na začátku hry je zavolána na každé strategii metoda SetUp, jež strategii sdělí, kterou roli zastává, a v případě, že je fašistická, kdo jsou její kumpáni. * Na začátku hry je zavolána na každé strategii metoda `SetUp`, jež strategii sdělí, kterou roli zastává, a v případě, že je fašistická, kdo jsou její kumpáni. * V průběhu jednoho kola jsou na strategiích volány relevantní metody dle potřeby: Vote během volební fáze, DiscardAsPresident a DiscardAsChancellor během legislativní fáze, a metoda pro každou z prezidentských pravomocí. * V průběhu jednoho kola jsou na strategiích volány relevantní metody dle potřeby: `Vote` během volební fáze, `DiscardAsPresident` a `DiscardAsChancellor` během legislativní fáze, a metoda pro každou z prezidentských pravomocí. * Teprve jakmile skončí volební období, jsou všechny strategie informovány o jeho průběhu metodou OnRound: kdo hlasoval pro a proti, jaký zákon byl zvolen, jak to vláda komentovala, případně kdo byl zabit či jinak postižen speciální pravomocí prezidenta. * Teprve jakmile skončí volební období, jsou všechny strategie informovány o jeho průběhu metodou `OnRound`: kdo hlasoval pro a proti, jaký zákon byl zvolen, jak to vláda komentovala, případně kdo byl zabit či jinak postižen speciální pravomocí prezidenta. Kromě volby strategií umožňuje náš model odehrát hru způsobem, kdy volební období neprobíhají atomicky, ale po jednotlivých fázích (pro využití viz CFR níže). Lze změnit taky některá pravidla hry, konkrétně distribuci zákonů ve hře a délku Election Trackeru. a délku _Election Trackeru_. == Strategie === Strategie Random:: Hraje dle pravidel, ale rozhoduje se náhodně a nekomentuje své chování. Loading @@ -58,18 +65,18 @@ Jako liberál se snaží prosazovat liberální zákony a hlasovat pro spoluhrá interních vah. Jako Hitler se chová podobně jako liberál, ale kladně hodnotí hráče, jenž volí fašistické zákony. CounterSimple:: Strategie jež stojí proti Simple liberálovi -- implementována pouze pro roli fašisty a Hitlera. Strategie jež stojí proti _Simple_ liberálovi -- implementována pouze pro roli fašisty a Hitlera. V první polovině hry se snaží chovat liberálně, aby si získala důvěru. Jakmile lze vyhrát dosazením Hitlera za kancléře, snaží se využít nabyté důvěry k tomu, aby byl zvolen. Paranoid:: Má, podobně jako Simple strategie, interní váhy, podle kterým ostatním hráčům důvěřuje, ale navíc penalizuje absenci a Má, podobně jako _Simple_ strategie, interní váhy, podle kterým ostatním hráčům důvěřuje, ale navíc penalizuje absenci a neshody v komentářích. Výše ztracené důvěry závisí na aktuální důvěře ve hráče a stádium hry. Takto je do hry vnesena pozitivní zpětná vazba. Fašisté se chovají podobně jako strategie CounterSimple. pozitivní zpětná vazba. Fašisté se chovají podobně jako strategie _CounterSimple_. CFR:: Učí se hraním proti sobě samé (Monte Carlo Counterfactual Regret Minimization). Prvotní verze potřebovala pro každý pár (stav, akce) ukládat nasčítaný regret, stavový prostor hry byl však příliš velký (jedno kolo může mít okolo 100000 Učí se hraním proti sobě samé (_Monte Carlo Counterfactual Regret Minimization_). Prvotní verze potřebovala pro každý pár (stav, akce) ukládat nasčítaný regret, stavový prostor hry byl však příliš velký (jedno kolo může mít okolo 100000 různých stavů, takových kol je ve hře 10-20). Snížili jsme proto objem informací, které si strategie o kole uchovává. Dívá se jen na současné kolo a nebere v ohled důvěru v ostatní hráče. Bohužel, toto rozhodnutí výrazně snížilo úspěšnost strategie. Loading @@ -93,7 +100,7 @@ Navzájem proti sobě hrály všechny strategie - jeden tým (fašisti, liberál samé strategie. Dohromady jsme prozkoumali 180 různých profilů strategií (5 x 6 x 6). Každý profil proti sobě hrál 1000000 her s 10 opakováními (10 procesorových vláken, cca 40 minut času). Vypočítali jsme průměr počtu výher a proher a směrodatnou odchylku . Pokud předpokládáme normální rozdělení, můžeme vzít 2jako 95 % interval spolehlivosti podle pravidla 68-95-99.7. pravidla link:https://en.wikipedia.org/wiki/68%E2%80%9395%E2%80%9399.7_rule[68-95-99.7]. Maximální směrodatná odchylka procenta výher je 0.001959. 95 % interval spolehlivosti je tedy méně než půl procenta, a proto se v následujících grafech neobjevují vymezení chyby (jsou moc malé na to, aby šla vidět). Loading Loading
.gitignore +2 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,8 @@ !*.csv !*.ad !*.svg !*.yml !*.sh # reignore binaries bin/ Loading
custom-theme.yml 0 → 100644 +5 −0 Original line number Diff line number Diff line extends: default page: size: A4 heading: h1-font-size: 24
mkpdf.sh 0 → 100755 +3 −0 Original line number Diff line number Diff line #! /bin/bash asciidoctor-pdf -a pdf-theme=./custom-theme.yml readme.ad
readme.ad +26 −19 Original line number Diff line number Diff line = Modelování a simulace: Secret Hitler Autoři: Adam Ivora, Adam Štěpánek [.lead.text-center] Adam Ivora, Adam Štěpánek [.text-center] *IV109, jaro 2020* == Úvod [.unlead] Secret Hitler je sociálně dedukční stolní hra pro 5 - 10 hráčů. Hráčům jsou náhodně přiděleny role liberálů, fašistů a Hitlera. Fašisté znají role všech hráčů ve hře, liberálové a Hitler znají jen svou roli. Hraje se na kola -- volební období -- během kterých je zvolena vláda a prosazen fašistický nebo liberální zákon. Cílem fašistů je prosadit 6 Loading @@ -15,7 +22,7 @@ Z pohledu teorie her se dá Secret Hitler považovat za dynamickou hru s nekompl (liberál, fašista, Hitler) a jejich cíl hry, ale neznají typy, a tím pádem cíle, ostatních hráčů, jen jejich pravděpodobnostní distribuci. == Problém === Problém Naším cílem bylo podívat se na hru jak z pohledu hráčů, tak z pohledu vývojářů: prozkoumat herní rovnováhu, zanalyzovat strategie, které známe z vlastní zkušenosti, a zjistit, jak změna některých parametrů hry ovlivní její výsledek. Loading @@ -28,26 +35,26 @@ výstupem za účely lazení. Její zdrojový kód je přístupný z https://git Pro jednoduchost uvažuje náš model pouze variantu pro 7 - 8 hráčů a limituje sociální interakce na komentáře ohledně zákonů, které prezident a kancléř viděli během svého kola, a komentář ohledně stranické příslušnost v případě speciální prezidentské pravomoci Investigate Loyalty. prezidentské pravomoci _Investigate Loyalty_. Rozhraní hry a strategií (interface IStrategy) prošla během vývoje několika iteracemi. Jejich finální podoba se chová Rozhraní hry a strategií (interface `IStrategy`) prošla během vývoje několika iteracemi. Jejich finální podoba se chová takto: * Na začátku hry je zavolána na každé strategii metoda SetUp, jež strategii sdělí, kterou roli zastává, a v případě, že je fašistická, kdo jsou její kumpáni. * Na začátku hry je zavolána na každé strategii metoda `SetUp`, jež strategii sdělí, kterou roli zastává, a v případě, že je fašistická, kdo jsou její kumpáni. * V průběhu jednoho kola jsou na strategiích volány relevantní metody dle potřeby: Vote během volební fáze, DiscardAsPresident a DiscardAsChancellor během legislativní fáze, a metoda pro každou z prezidentských pravomocí. * V průběhu jednoho kola jsou na strategiích volány relevantní metody dle potřeby: `Vote` během volební fáze, `DiscardAsPresident` a `DiscardAsChancellor` během legislativní fáze, a metoda pro každou z prezidentských pravomocí. * Teprve jakmile skončí volební období, jsou všechny strategie informovány o jeho průběhu metodou OnRound: kdo hlasoval pro a proti, jaký zákon byl zvolen, jak to vláda komentovala, případně kdo byl zabit či jinak postižen speciální pravomocí prezidenta. * Teprve jakmile skončí volební období, jsou všechny strategie informovány o jeho průběhu metodou `OnRound`: kdo hlasoval pro a proti, jaký zákon byl zvolen, jak to vláda komentovala, případně kdo byl zabit či jinak postižen speciální pravomocí prezidenta. Kromě volby strategií umožňuje náš model odehrát hru způsobem, kdy volební období neprobíhají atomicky, ale po jednotlivých fázích (pro využití viz CFR níže). Lze změnit taky některá pravidla hry, konkrétně distribuci zákonů ve hře a délku Election Trackeru. a délku _Election Trackeru_. == Strategie === Strategie Random:: Hraje dle pravidel, ale rozhoduje se náhodně a nekomentuje své chování. Loading @@ -58,18 +65,18 @@ Jako liberál se snaží prosazovat liberální zákony a hlasovat pro spoluhrá interních vah. Jako Hitler se chová podobně jako liberál, ale kladně hodnotí hráče, jenž volí fašistické zákony. CounterSimple:: Strategie jež stojí proti Simple liberálovi -- implementována pouze pro roli fašisty a Hitlera. Strategie jež stojí proti _Simple_ liberálovi -- implementována pouze pro roli fašisty a Hitlera. V první polovině hry se snaží chovat liberálně, aby si získala důvěru. Jakmile lze vyhrát dosazením Hitlera za kancléře, snaží se využít nabyté důvěry k tomu, aby byl zvolen. Paranoid:: Má, podobně jako Simple strategie, interní váhy, podle kterým ostatním hráčům důvěřuje, ale navíc penalizuje absenci a Má, podobně jako _Simple_ strategie, interní váhy, podle kterým ostatním hráčům důvěřuje, ale navíc penalizuje absenci a neshody v komentářích. Výše ztracené důvěry závisí na aktuální důvěře ve hráče a stádium hry. Takto je do hry vnesena pozitivní zpětná vazba. Fašisté se chovají podobně jako strategie CounterSimple. pozitivní zpětná vazba. Fašisté se chovají podobně jako strategie _CounterSimple_. CFR:: Učí se hraním proti sobě samé (Monte Carlo Counterfactual Regret Minimization). Prvotní verze potřebovala pro každý pár (stav, akce) ukládat nasčítaný regret, stavový prostor hry byl však příliš velký (jedno kolo může mít okolo 100000 Učí se hraním proti sobě samé (_Monte Carlo Counterfactual Regret Minimization_). Prvotní verze potřebovala pro každý pár (stav, akce) ukládat nasčítaný regret, stavový prostor hry byl však příliš velký (jedno kolo může mít okolo 100000 různých stavů, takových kol je ve hře 10-20). Snížili jsme proto objem informací, které si strategie o kole uchovává. Dívá se jen na současné kolo a nebere v ohled důvěru v ostatní hráče. Bohužel, toto rozhodnutí výrazně snížilo úspěšnost strategie. Loading @@ -93,7 +100,7 @@ Navzájem proti sobě hrály všechny strategie - jeden tým (fašisti, liberál samé strategie. Dohromady jsme prozkoumali 180 různých profilů strategií (5 x 6 x 6). Každý profil proti sobě hrál 1000000 her s 10 opakováními (10 procesorových vláken, cca 40 minut času). Vypočítali jsme průměr počtu výher a proher a směrodatnou odchylku . Pokud předpokládáme normální rozdělení, můžeme vzít 2jako 95 % interval spolehlivosti podle pravidla 68-95-99.7. pravidla link:https://en.wikipedia.org/wiki/68%E2%80%9395%E2%80%9399.7_rule[68-95-99.7]. Maximální směrodatná odchylka procenta výher je 0.001959. 95 % interval spolehlivosti je tedy méně než půl procenta, a proto se v následujících grafech neobjevují vymezení chyby (jsou moc malé na to, aby šla vidět). Loading