Problem koji se rešava:
Implementacija agenta koji igra igru tetris i pokušava da maksimizuje svoj skor. Ideja je da se naprave dva agenta čije se ponašanje ocenjuje i upoređuje. Jedan igra prateći Greedy search algoritam, dok će drugi igrati po algoritmu aproksimiranog Q-učenja.
Skor koji agent dobija biće računat po standardnim pravilima tetrisa, o čemu se detaljnije može videti ovde: link
Ideja je da što više redova spoji u jednom potezu više poena dobija.
Broj spojenih redova
Dobijeni skor
1 (single)
40
2 (double)
100
3 (triple)
300
4 (tetris)
1200
Kako i Greedy search algoritam i aproksimirano Q-učenje zahtevaju opis stanja putem feature-a, pokušaću da izdvojim pojedine kao što su:
Akumulirana visina po kolonama
Broj linija koje će u tom potezu biti popunjene
Broj rupa na tabli
Rupa predstavlja prazno polje iznad koga se nalazi bar jedno popunjeno polje
Razuđenost
Razuđenost predstavlja akumulirane razlike u visinama svake dve susedne kolone
Pored ovih feature-a, postoji mogućnost pronalaženja još nekih i testiranja koje rešenje se bolje ponaša u realnom okruženju.
Ideja za ove feature-e je pronadjena u sledećem radu: link
Tehnologija koja će biti korišćena: Python 3 uz pygame biblioteku za iscrtavanje interfejsa
Pomoć pri dizajniranju grafičkog interfejsa biće iskorišćena sa sledećeg projekta: link
Algoritam/algoritmi:
Greedy search algoritam i aproksimirano Q-učenje.
Razlog odabira greedy search-a umesto A* algoritma je to što je cena svakog koraka u igri jednaka, pa nema smisla uzimati je u obzir pri računanju.
Metrika za merenje performansi:
Poređenje ova dva algoritma međusobno.
Poređenje će se izvršavati sa jednakim rasporedom padanja figurica, tako da će proces merenja biti determinističan. Metrika koja će se ocenjivati je skor koji agenti postižu nakon 20, 50 i 100 figurica.
Validacija rešenja:
Demonstriranje rešenja na odbrani projekta uživo kao i video snimak koji pokazuje scenario igranja na dužem periodu.
Članovi tima: Nenad Mišić, SW-31/2016, Grupa 1
Asistent: Aleksandar Lukić
Problem koji se rešava: Implementacija agenta koji igra igru tetris i pokušava da maksimizuje svoj skor. Ideja je da se naprave dva agenta čije se ponašanje ocenjuje i upoređuje. Jedan igra prateći Greedy search algoritam, dok će drugi igrati po algoritmu aproksimiranog Q-učenja. Skor koji agent dobija biće računat po standardnim pravilima tetrisa, o čemu se detaljnije može videti ovde: link Ideja je da što više redova spoji u jednom potezu više poena dobija.
Kako i Greedy search algoritam i aproksimirano Q-učenje zahtevaju opis stanja putem feature-a, pokušaću da izdvojim pojedine kao što su:
Pored ovih feature-a, postoji mogućnost pronalaženja još nekih i testiranja koje rešenje se bolje ponaša u realnom okruženju. Ideja za ove feature-e je pronadjena u sledećem radu: link
Tehnologija koja će biti korišćena: Python 3 uz pygame biblioteku za iscrtavanje interfejsa Pomoć pri dizajniranju grafičkog interfejsa biće iskorišćena sa sledećeg projekta: link
Algoritam/algoritmi: Greedy search algoritam i aproksimirano Q-učenje. Razlog odabira greedy search-a umesto A* algoritma je to što je cena svakog koraka u igri jednaka, pa nema smisla uzimati je u obzir pri računanju.
Metrika za merenje performansi: Poređenje ova dva algoritma međusobno. Poređenje će se izvršavati sa jednakim rasporedom padanja figurica, tako da će proces merenja biti determinističan. Metrika koja će se ocenjivati je skor koji agenti postižu nakon 20, 50 i 100 figurica.
Validacija rešenja: Demonstriranje rešenja na odbrani projekta uživo kao i video snimak koji pokazuje scenario igranja na dužem periodu.