Iti0210lab14
Hüvitisega õppimine
Sissejuhatus
Rakendame hüvitisega õppimist (reinforcement learning) seamängule, millega puutusime kokku 4. praktikumis. Reeglid uuesti:
- mängitakse selleni, kes saab enne 100 punkti. Alguses on mõlemal mängijal 0 punkti.
- mängija võib veeretada ühte täringut mitu korda järjest, senikaua kuni ta ei veereta 1. Tulemused liidetakse kokku.
- kui mängija otsustab, et soovib veeretatud punktid alles hoida, liidetakse need tema kogusummale ja kord läheb vastasele.
- kui mängija veeretab 1, siis läheb kord vastasele ja mängija kaotab kõik selle korra jooksul veeretatud punktid.
Rakendame Q-Learning algoritmi. Lihtne selgitus Q-Learning algoritmi kohta.
Treeni oma algoritm, mängides dummy_ai vastu. Seejärel katseta, mitu korda näiteks 100 mängust sinu algoritm võidab. Et võrdlus aus oleks, pane 50% mängudest alustajaks oma algoritm ja 50% dummy_ai.
Testraamistik
Kasuta testraamistikku, mille kirjutasid 4. praktikumi jaoks. Kui võtsid üle praktikumijuhendis oleva, siis funktsioon, mis mängib.
def minimax_ai(turn, rolled, my_points, opp_points):
# this is the top level of search
# we search all possible moves
# (PASS and ROLL in case of the Pig game)
# and pick the one that returns the highest minimax estimate
Treenimine
def dummy_ai(turn, rolled, my_points, opp_points):
if rolled < 21:
return ROLL
else:
return PASS
Q-Learning
Lisaülesanne
Selle osa tegemine ei ole kohustuslik.
- Treeni algoritm
dummy_aivastu, mis on väga riskiv või väga konservatiivne (muuda konstanti 21 kas suuremaks või oluliselt väiksemaks). - Muuda
dummy_aitagasi "optimaalseks" (üle 21 punkti otsus PASS) - Mängita oma algoritmi
dummy_aivastu ja proovi jälgida võiduprotsenti ajas. Kas sinu algoritm suudab vastase muutunud strateegiale reageerida?