Skip to content

Latest commit

 

History

History
16 lines (11 loc) · 1.35 KB

määrittely.md

File metadata and controls

16 lines (11 loc) · 1.35 KB

Määrittely

Tarkoituksena olisi tehdä Javassa Vindinium botti 3 op laajuisena työnä.

Tarkoitus olisi tehdä alpha-beta algoritmiin perustuvan botin. Botti toimisi niin, että pelaajan vuoron alussa lähdetään analysoimaan kaikki mahdolliset siirrot puuna ja mihin tulokseen ne loppujen lopuksi johtaa. Tilanteen analysointi pitää ehkä lopettaa ennen kun päästään lopputilanteeseen, koska mahdollisia mutaatioita on viisi (liikumiset + paikalla pysyminen) per vuoro. Vuoroja voi olla muutamasta sadasta yli tuhanteen.

Joka pelitilanteen mutaatiossa arvioidaan botin pisteet vastaan parhaan toisen botin pisteitä. Tämän erotuksen perusteella olisi tarkoitus muodostaa "alpha" ja "beta" arvot, jotka rajaavat mitkä pelitilanteen haarat kannattaa lähteä kokeilemaan. Tämä tekee algoritmista branch-and-bound tyyppisen.

Alpha-beta algoritmi perustuu min-max algoritmiin jolla analysoidaan pelin kaikkien mahdollisten siirtojen tulos. Alpha-beta algoritmissa yritetään kuitenkin rajata mitkä haarat lähdetään analysoimaan. Pahimmassa tapauksessa joudutaan kuitenkin ehkä analysoimaan kaikki.

Kenttä ylläpidetään jonkin matriisina josta vierus-solmut selviävät nopeasti.

Lähteet: