-
Notifications
You must be signed in to change notification settings - Fork 0
Home
- 3 zawodników
- Dozwolone ruchy:
- SHOOTX - strzel do zawodnika z numerem X)
- DODGE - strzały w kierunku tego zawodnika nie zabijają go. Można wykonać tylko jeden unik z rzędu.
- LOAD - zwiększa ilość nabojów w magazynku.
- Ograniczony magazynek - do 3 nabojów. Zaczynamy z pustym magazynkiem.
**Warunki specjalne: **
Zawodnik przegrywa jeżeli nie wykonuje uniku i nie strzela w stronę atakującego go zawodnika.
Jeżeli dwóch zawodników strzela do siebie nawzajem, kule się zderzają i żaden z nich nie ginie.
Strzał z pustym magazynkiem skutkuje przegraną.
Próba ładowania przy pełnym magazynku skutkuje przegraną.
Unik dwa razy z rzędu skutkuje przegraną.
Rozgrywamy N gier po max M ruchów. Na koniec każdej gry przyznajemy 1 punkt, rozdzielając go między tych zawodników, którzy nie przegrali. Jako miarę jakości gracza uznajemy jaki procent z maksymalnej puli punktów uzyskał po rozegraniu N gier.
python - język implementacji platformy
pyBrain - biblioteka do uczenia maszynowego
Uczenie ze wzmocnieniem -> Reinforcement learning
Agent aktywnie rozgrywa rozgrywki i się uczy, dostając nagrodę po każdym ruchu. Następnie rozgrywa odpowiednią ilość gier testowych w celu oceny jego jakości.
Uczenie ze zbiorem treningowym -> Supervised learning
Zbiór treningowy stworzony na podstawie rozgrywek randomowych graczy i stworzonej przez nas funkcji oceny ruchów. Ocena dotyczy całego stanu gry - wszystkich informacji na temat zawodników, ich stanu magazynków itd. Przykładowe ocena - strzał z pustym magazynkiem: -5, strzał do zawodnika, który nie może się bronić +3.
Przyjęto podejście, w którym system uczący nie posiada żadnej wiedzy na temat zasad gry i próbuje je wywnioskować ze zbioru uczącego lub nagród w uczeniu ze wzmocnieniem. Kolejnym stopniem wytrenownaia jest osiągnięcie wiedzy, która pozwala wygrywać rozgrywki.