Zadání LS 2023/2024

From Simulace.info
Revision as of 17:26, 1 May 2024 by Bled09 (talk | contribs) (Simulace přestupu na stanici metra Můstek - bled09)
Jump to: navigation, search


Simulácia evolúcie neurónovej siete, ktorej cieľom je naučiť sa hrať klasickú hru Snake

Popis

Práca bude simulovať evolúciu agentov, ktorí sa budú snažiť naučiť hrať klasickú hru Snake. Každý agent bude predstavovaný neurálnou sieťou, ktorá na základe aktuálneho stavu hry rozhodne ako ďalej pokračovať. Cieľom práce bude zistiť najvhodnejšie parametre pre vývoj agentov.

Prostredie

Pre simuláciu evolúcie bude potrebné simulovať viacero generácií E a v každej generácii bude populácia agentov o veľkosti N. Každý agent bude hrať samostatnú inštanciu hry Snake. Po odohraní hier agentov v danej generácii sa vypočíta fitness (skóre) najlepšieho agenta. Podľa fitness sa vyberú jedinci pre ďalšiu generáciu (podľa miery elitizmu e). Ďalej sa generácia doplní novo vytvorenými agentami (potomkami), ktorí vzniknú krížením dvoch náhodne vybratých agentov. Potomkovia budú ešte zmutovaný podľa miery mutácie m. Ďalej bude pokračovať ďalšia novo vytvorená generácia.

Agenti

Každý agent bude pozostávať z neurónovej siete. Agent bude "vidieť" do ômych smerov (hore, dole, vľavo, vpravo, vpravo-hore, vpravo-dole, vľavo-dole, vľavo-hore) od hlavy hada. Pre každý smer uvidí vzdialenosť k stene, vzdialenosť k jablku (ak ho v daný smer vidí) a vzdialenosť ku svojemu chvostu (ak ho v daný smer vidí). Čiže na vstupnej vrstve bude mať 24 neurónov (8 smerov x 3 indikátory) + 4 neuróny predstavujúce smer do ktorého ide hlava hada. Celkovo 28 neurónov. Počet skrytých vrstiev a neurónov v nich môže byť cieľom skúmania práce. Váhy väzieb medzi neurónami budú z počiatku náhodné z uniformného rozdelenia, následne budú menené mutáciami agentov. Na výstupe neurónovej siete bude smer akým sa má had ďalej uberať, čiže 4 neuróny pre Hore, Dole, Vľavo, Vpravo.

Cieľ

Cieľom práce bude zistiť najvhodnejšie parametre pre vývoj agentov. S evolučným algoritmom mám skúsenosti - riešil som ním 3SAT problém a preto viem že výpočty môžu zabrať značnú dobu. Preto by som určil niektoré parametre, ktoré budú pevné a niektoré, ktoré budú cieľom skúmania. Tu mám 3 možnosti, ktoré by ma zaujímali. V každom prípade bude pevný parameter N (počet jedincov v populácii) a E počet generácií. Prvá možnosť by malá pevný počet skrytých vrstiev agentov s pevným počtom neurónov v nich a menila by sa miera mutácie a miera elitizmu. Druhá možnosť je podobná prvej, no počet skrytých vrstiev a neurónov v nich by sa s mutáciami agentov mohol meniť (čo je vlastne len zťaženie možnosti 1, ale asi sa to viac podobá skutočnej evolúcii). Tretia možnosť je, že miera mutácie a elitizmus budú pevné parametre a manuálne sa bude meniť počet vrstiev a neurónov (čo teraz ako to píšem sa mi úplne nezdá - malo by to hrozne veľa možností a ani sa to tak veľmi nepodobá evolúcii). V každom prípade budem porovnávať výsledky, ktoré agenti dosiahli za E generacií (najlepšie skóre, priemerné skóre, smerodajnú odchylku).

(Môj osobný cieľ bude, aby agent dosiahol aspoň 10 bodov a pritom, aby bolo vidno, že to nebola náhoda :D )

Nástroje

Python s knižnicou numpy pre prácu s maticami váh, knižnicou matplotlib pre grafické znázornenie výsledkov populácií a knižnicou tkinter pre zobrazenie hier (zobrazenie je to najmenej podstatné a pritom to najlepšie :D).

Autor

Stem45 (talk) 10:18, 1 May 2024 (CET)

Simulace přestupu na stanici metra Můstek

Popis

Simulovat chci přestup z linky A na linku B a naopak. Jelikož se jedná o jednu z nejvytíženějších stanic metra v Praze zaměřím se na dobu, ve které je stanice nejvíce zatížená. Zkoumat se budou oba směry příjezdu. Simulace nebude uvažovat cestující kteří chtějí z metra vystoupit.

Cíl

Výsledkem simulace by mělo být nalezení optimální cesty pro přechod z linky A na linku B a naopak. Optimální cesta bude zahrnovat i výstup z vagonu, tedy bude záležet ze kterého vagonu agent vystoupí. Optimálnost cesty se bude měřit podle:

1. Uražené vzdálenosti

2. Průměrném času

Užitečnost

Tato simulace poskytne jednoduchou a přímočarou odpověď do kterého vagonu nasednout a kterou cestou se vydat chceme-li co nejrychleji přestoupit na linku B či A a stihli tak navazující spoj.

Metoda a způsob simulace

Pro simulaci tohoto druhu budu volit agentní simulaci, kde agenti budou cestující metra. Jako nastroj pro simulaci využiji NetLogo.

Proměnné

• Příjezd metra

• Počet pasažérů

• Rychlost cestujícího

• Zvolena trasa přestupu

Náhodné proměnné

Vše až na “Příjezd metra”. Zbytek bude náhodně z intervalu získaného z dat nebo náhodným výběrem z několika možností.

Použita data pro nastavení simulace

Oficiální data od DPP o metru z roku 2015: https://data.pid.cz/pruzkumy/2015_METRO_sbornik.pdf

Bled09 (talk) 16:25, 1 May 2024 (CET)