Ideja je napraviti bota koji će simulacijom komandi na tastaturi (levo, desno, gore (za rotaciju figura), space (za instant drop figure)) igrati tetris preko interneta na linku https://tetris.com/play-tetris
Metodologije
Bot će biti implementiran na 2 načina. Prvi način će za trenutno stanje tetrisa i nadolazeće figure na osnovu heuristike (A*), koja će se formirati na osnovu predefinisanih vrednosti, odrediti koji je potez najbolji od svih mogućih poteza pri čemu će genetski algoritam vršiti korigovanje predefinisanih vrednosti za računanje heuristike nakon svake odigrane partije. Drugi način će koristiti reinforcement learning, tj. Q-Learning algoritam koji će u početku skroz slučajno generisati poteze, a onda sa svakom partijom će verovatnoća slučajnog poteza opadati, pri čemu će se obraćati neuronskoj mreži za sledeći potez. Prepoznavanje nadolazeće figure će se vršiti u gornja 2 reda tetrisa na osnovu boje (pošto radimo za konkretnu verziju tetrisa, svaka figura je različite boje). Za implementaciju će biti korišćen python programski jezik.
Skup podataka
S obzirom da Q-Learning algoritam koristi neuronsku mrežu, podaci koji će se koristiti za obučavanje će za liste uredjenih petorki (stanje_slagalice, akcija, rezultat, sledeće_stanje, da_li_je_igra_gotova), sračunavati odgovarajuću vrednost koja će se zajedno sa stanjem koristiti za obučavanje neuronske mreže. Ta lista petorki (Experience replay) će se popunjavati i brisati sa svakom igrom, a na kraju svake igre će se neuronska mreža obučavati kako bi se poboljšale perfomanse pri svakoj sledećoj igri.
Evaluacija
Evaluaciju ćemo vršiti na osnovu broja počišćenih linija, pri čemu možemo beležiti broj očićenih linija u svakoj partiji i pratiti napredak sa svakom igrom. Takođe možemo te rezultate i upoređivati za oba bota
Članovi tima:
sw-5/2014 Stefan Colić sw-34/2014 Luka Mihajlović
Definicija problema
Ideja je napraviti bota koji će simulacijom komandi na tastaturi (levo, desno, gore (za rotaciju figura), space (za instant drop figure)) igrati tetris preko interneta na linku https://tetris.com/play-tetris
Metodologije
Bot će biti implementiran na 2 načina. Prvi način će za trenutno stanje tetrisa i nadolazeće figure na osnovu heuristike (A*), koja će se formirati na osnovu predefinisanih vrednosti, odrediti koji je potez najbolji od svih mogućih poteza pri čemu će genetski algoritam vršiti korigovanje predefinisanih vrednosti za računanje heuristike nakon svake odigrane partije. Drugi način će koristiti reinforcement learning, tj. Q-Learning algoritam koji će u početku skroz slučajno generisati poteze, a onda sa svakom partijom će verovatnoća slučajnog poteza opadati, pri čemu će se obraćati neuronskoj mreži za sledeći potez. Prepoznavanje nadolazeće figure će se vršiti u gornja 2 reda tetrisa na osnovu boje (pošto radimo za konkretnu verziju tetrisa, svaka figura je različite boje). Za implementaciju će biti korišćen python programski jezik.
Skup podataka
S obzirom da Q-Learning algoritam koristi neuronsku mrežu, podaci koji će se koristiti za obučavanje će za liste uredjenih petorki (stanje_slagalice, akcija, rezultat, sledeće_stanje, da_li_je_igra_gotova), sračunavati odgovarajuću vrednost koja će se zajedno sa stanjem koristiti za obučavanje neuronske mreže. Ta lista petorki (Experience replay) će se popunjavati i brisati sa svakom igrom, a na kraju svake igre će se neuronska mreža obučavati kako bi se poboljšale perfomanse pri svakoj sledećoj igri.
Evaluacija
Evaluaciju ćemo vršiti na osnovu broja počišćenih linija, pri čemu možemo beležiti broj očićenih linija u svakoj partiji i pratiti napredak sa svakom igrom. Takođe možemo te rezultate i upoređivati za oba bota
Asistent
repo
https://github.com/greenenvy2/TetrisAI-DQN-GA