Repossa on kaksi eri peliä laivanupotuksesta Q-oppimisella.
Laivanupotus.py (johon liittyy lauta.py) on peli, jossa Q-agentille opetetaan peli optimaalisesti aluksi kokonaan. Pelissä on neljä vaikeusastetta, joissa AI-agentti parantaa peliään logaritmisesti seuraavan kuvan mukaisesti:
Kuvassa x- ja y-suunnassa osuman häirinnän arvo osumasta on siis satunnaisluku väliltä 0..arvo, joka on kuvassa.
Toinen peli on Laivanupotus_oppiva.py, jossa Q-agentti oppii pelin aikana pikkuhiljaa pelaamaan..
Peli käynnistetään kirjoittamalla komentotulkissa
python Laivanupotus.py
tai
python Laivanupotus_oppiva.py
- tarvitaan vastaavasti myös lauta.py- tai lauta_oppiva.py-tiedoston ja
- Meri-ja-laivat.jpg
Kuva on AI:n generoima.
Pelin kehitystyö tehtiin Python 3.11 -ympäristössä. Lähinnä huomioitavaa on, että NumPy-kirjastolla voidaan käyttää matriiseille rot90-metodia sekä bitwise and -operaatiota. Kehitysympäristössä käytettiin NumPy:stä versiota 1.24.1. Lisäksi tarvitaan jokin PyGame-kirjaston versio.
Kuva pelin tuoksinnasta:
Toivottavasti houkuttelee kokeilemaan. :)
Mielestäni kerran todistin tilannetta, jossa AI-agentin laivat olivat sijoitettuna osin päällekkäin. Jahka kerkeän, yritän selvittää mikä mahdollisesti meni pieleen..

