Ubuntun käyttö > Pelit

Tetris -tekoälyn ohjelmointi -vinkkejä aloittelijalle

(1/1)

Jere Sumell:
Jo jonkin aikaa olen käyttänyt aika paljon vapaa-aikaani Tetris -pelin parissa. Kiinnostukseni on alkanut heräämään Tetriksen ratkaisualgoritmeihin, mitä ilman koneellista laskentaa olen päätynyt melko itsenäisesti Pinottuun Tetris-Kombo -strategiaan, mitä pidän jokseenkin kustannustehokkaana ratkaisualgoritminä ja järkevänä tapana pelata Tetristä. Mitä julkaisin 5-osaisen minivideosarjan Youtubessa syyskuun alkupuoliskolla, sarjani lopetusjkso on tämä kyseinen Tetris -video. Se löytyy Youtubesta pseudonyymillä "Retroseppo", ja kirjoitin aiheesta artikkelinkin laajennettuani tuota retropeli-pseudonyymini konseptia Wordpress-blogiin retroseppo.wordpress.com johon olen kirjoittanut artikkelin tästä pinotusta tetris-kombo -ratkaisumetodista.

Varmaan tälläkin palstall on ainkin aiheen prissa jonkun tovin ainakin ajtuksen tasolla käynyt läpi, mitä tulee ratkaisuun, olisiko jotain vinkkejä antaa tai avainsanatermistöä, mistä lähtisi ajan kuluksi "opiskelemaa", verkkoresursseja yms. mikäli kiiinnostus kohdistuu Tetriksen ratkaisualgoritmin ohjelmointiin, voitaneen ki puhua AI:n ohjelmoinnista.

Tekstipohjinen ulostulo lienee formaalissa muodossa mahdollinen, mitä ensinnä pitäisi tietenkin nuo tetrominot määritellä abstrktilla tasolla ennen pelin ratkaisua ajatellen, että ulostulo mahdollinen mutta tästä jotain vinkkejä kaipaisin.

Avasin tämän säikeen nyt tänne "Pelit" -kategorian alle, vaikka ohjelmointi-kategorian allekin tämä sopisi varmaan hyvin.

GMKoutsi:
Mielenkiintoinen projekti, jään seuraamaan! 👍 Onnea Tetris-tekoälyn parissa.

Jere Sumell:
Siinä määrin osuvasti todettu, että "onnea" mikäli olen käsittänyt niin, että sillä tavalla pätevää tai mitään virallista dokumentointia Tetris-ongelman ratkaisusta ei ole julkaistu?

Ensinnäkin lähestymistapa on tottaki matemaattinen ja sitten kun tarpeeksi asioita ensin ottanut haltuun, johon menee aikaa, vasta pääsee suunnitelemaan ja luonnoostelemaan sopivaa algoritmiä, ja siinäkin on miettimistä miten saa laadittua sen niin, että mahdollisimman vaivatta pystyisi eri syötteillä, eli eri strategioilla valjastaa koneen pelaamaan tetristä. Sitten pitäisi ymmärtää jonkinlainen rankkaus - ohjelma, joka mittaa strategian voimaluvun, hyvyyden.

En enää tässä iässä lainkaan enää mitään virallista ole ajatellut opiskella, mutta lähdemateriaali kaikki tarvittava lienee tieto saatavilla itseoppimisen kannalta, mitä kuitenkin jonkinlaiset valmiudet ottaa asioita haltuun ja itselläni on paljon joutoaikaa mutta viime aikoina erityisesti ja kausittain mielialani tai terveyteni vuoksi en jaksa sillä tavalla aivan 100 lasissa sellaisiakaan asioita, jotka kuitenkin koen mielekkäiksi "normaali":sti.

Varmaan kaikki nyt vakiolukijat/seuraajat ja tämän palstan osanottjat seuraavat tai välillä katsovat Facebook-päivityksiäni, mitä pari viikkoa sitten totesin, että lääkkeiden saatavuusongelmat aiheutti päänvaivaa itselleni ja sairaalakuluja,, niin mitä tosiaan omasta voinnista ja kiinni, miten intensiivisesti jaksan paneutua asioihin.

Tämä nyt voisi olla sellainen pitkän aika-välin projekti, en sitten tiedä voisiko edesauttaa edistymistä, jos laatisin jonkinlaisen aikataulun itselleni ja asettaisin jonkinlaisia välietappeja, miten ja missä järjestyksessä otan asioita haltuun. Pitäisi löytää joku kaveri Turun alueelta, ketä on kiinnostunut samasta ongelmasta.

nm:

--- Lainaus käyttäjältä: Jere Sumell - 29.09.23 - klo:19.26 ---Siinä määrin osuvasti todettu, että "onnea" mikäli olen käsittänyt niin, että sillä tavalla pätevää tai mitään virallista dokumentointia Tetris-ongelman ratkaisusta ei ole julkaistu?
--- Lainaus päättyy ---

Tässä pätevä koneoppimiseen perustuva menetelmä:
https://towardsdatascience.com/beating-the-world-record-in-tetris-gb-with-genetics-algorithm-6c0b2f5ace9b

Katso myös lähteet.

Jere Sumell:
Itselleni on tuo "neural networks" tuntemattomin kolmesta käsitteestä AI, Machine Learning ja Neural Networks toistaiseksi.

Itsekin pelaan mieluiten tuota Game Boy:n 1989 Tetristä olen todennut, että se on järkevä Tetris-peli mitä tuossa Youtube-videossa omasta mielestäni melko itsenäisesti oivaltanut tuon stacked Tetris Combo -strategian pelaan jokseenkin mielenkiintoisen pelin, en muutoin olisi julkaissutkaan sitä, mitä se on viimeinen jakso tuosta "Retroseppo" -pseudonyymillä retropelien osalta viime kesältä.

Itse olen törmännyt tuohon "Syvä-oppiminen" -termiin lukiessani mediatiedotteen sotilasuran tehneen kasvatustieteen tohtori-opinnäytetyöstä, missä syväjohtamisesta sotilas väiöskirjan tarkastustilaisuus oli tulossa, mutta itse en ole käynyt armeijaa, joten jäi pelkkään mediatiedotteen lukemiseen. Deep Machine Learning ja "Deep" Machine learning, mitä neuraaleista verkostoista selannut nettiä, niin siinä on ulostuloon sisäänsyötöstä vähintään kolme siinä verkostossa ne etenee yhteen suuntaan siinä graafissa, ja muodostaa alakokoelman (subset) uusia neuraaleja verkkoja. En sen enempää ole perillä, ja sitten se syvä on "deep" sen takia, mitä se on se neuraalin verkon syvyys ylhäältä alas-päin, vai mitä nuo genetics tuon artikkelin mukaan algoritmit pohjaavat Charles Darwinin evoluutio-opista "Vahvimmasta heikompaan", niin joku voi paikata, tai kertoa, lienee eri asia mitä "top-down" -lähestymistapa tässä tietokoneistuksessa tietokone-ohjelmoinnissa ja algoritmiikassa se lähestmymistapa.

Neural Networks nyt näyttäisi olevan itselläni tämä ensimmäisiä ainakin perusteet haltuun kotioloissa ajan kuluksi perehtyä niihin, niin sitten voisi päästä tästä eteenpäin. Ne on jäänyt syrjään täysin minulta.

Game Boy 1989 Tetriksessä on ihmisen pelaamana myös mahdollista saavuttaa nuo maksimipisteet, Youtubessa on ainakin yksi video upattuna sinne, missä epäilen, että se on ihmisen pelaama. Mitään takeitahan siitä ei ole.

Tuon samantyylin pelistrategian ymmärtää ihmisenä pelaajana varmaan kaikki, ketä ymmärtää Tetriksen luonnontietelijän ongelmana, mutta mahdottomaksi peli lopulta tulee ihmispelaajalle se, että mitä tetrominot putoaa sinne kuiluun yleensä 10 linjan välein vauhti kiihtyy alaspäin, niin ihmisen reagointikyky tulisi lopulta vastaan, niin lopulta se teoriassa ja koneellisesti loputtomasti mahdollista jatkaa, mutta ihmisen pelaamana ei ole.

Navigaatio

[0] Viestien etusivu

Siirry pois tekstitilasta