A sakk algoritmusa Egy sakkprogram alapvet mkdse n

  • Slides: 4
Download presentation
A sakk algoritmusa

A sakk algoritmusa

Egy sakkprogram alapvető működése n Egy sakkprogram megírása során alapvető fontosságú a teljesítményoptimalizálás. A

Egy sakkprogram alapvető működése n Egy sakkprogram megírása során alapvető fontosságú a teljesítményoptimalizálás. A hatalmas állapotterű keresések rendkívül gyors adatmodellt igényelnek, így nagyon fontos, hogy a program hogyan tárolja a sakktáblát, valamint, hogyan kezeli a szabályokat. A lehetséges lépések felderítésének megvalósításánál a gyorsaságra és a kis memóriaigényre kell törekedni, hiszen ez egy rendkívül gyakori művelet. Ezek azonban csak az alapokat adhatják meg a rendkívül hatékony algoritmusoknak.

Minimax n Tegyük fel, hogy van arra mód, hogy minden egyes pozícióról eldönthetjük, hogy

Minimax n Tegyük fel, hogy van arra mód, hogy minden egyes pozícióról eldönthetjük, hogy az melyik játékosnak kedvez. Ha a pozíció A játékosnak kedvez, akkor az valamilyen pozitív számmal értékelhető, ha B-nek, akkor negatívval. Ha mindkettőnek ugyanolyan jó, akkor az értelem szerűen 0 pont. A kiindulóállapot “döntetlen”, azaz 0 pont. Innen minden játékos hozzáadhat vagy kivonhat pontokat. Az A játékos célja, hogy maximálja, a B játékosé, hogy minimálisra leszorítsa a pontokat. A keresés során minden lehetséges lépéssort egy számmal értékelünk, majd a legoptimálisabbat kiválasztjuk. A probléma ezzel, hogy rengeteg féle lépés létezik, hiszen a keresés komplexitása exponenciális.

Minimax elv

Minimax elv