Implementace sachoveho programu s vyuzitim "alfa-beta" strategie prohledavani stavoveho prostoru

Autori:
Sedlacek Jaroslav
Bohunsky Radek


Jednou z oblasti, kterymi se zabyva Umela inteligence, je i prohledavani stavoveho prostoru. Casto pouzivanym algoritmem tohoto typu je tzv. algoritmus "alfa-beta". Tento se vyuziva ponejvice v hrach dvou soupericich hracu, kde lze ohodnotit pozici, coz je i sachova hra.

Sachy jsou implementovany v prologu, ktery je vhodny pro implemetaci algoritmu z Umele inteligence. Pro dostupnost jsme zvolili prolog Eclipse.

Program se spousti predikatem hra/3. Prvnim parametrem je pozice. Tu je mozno zvolit dvema zpusoby. Bud zvolit pozici jiz zadanou ("a" je zakladni pozice), nebo vepsat pozici vlastni. Pozice ma tvar dvouprvkoveho seznamu, kde prvni prvek je postaveni figur bileho a druhy figur cerneho. Prvky jsou seznamy objektu tvaru ["F",X,Y], kde F je oznaceni figury (K,D,V,S,J,P) a X,Y oznacuji jeho pozici na hraci desce oznacene zleva doprava a zdola nahoru cisly 1..8. Jako posledni figura se musi dat ["N",X,Y], nebot nese informaci o tom,zda lze provezt rochadu. X urcuje, zda lze provest velkou rochadu (0-ne,50-ano), Y zase urcuje malou rochadu.
Druhy parametr oznacuje barvu kamenu, kterymi hraje pocitac (0-bila,1-cerna).
Treti parametr oznacuje barvu kamenu, ktere jsou na tahu.

Tah se zapisuje tak, ze se napise vychozi pozice figury a cilova pozice figury (napr. e2e4 rika, ze tahneme figurou z e2 na e4). V pripade, ze tah neni korektni, program pozaduje opravu.

Program prohledava stavovy prostor ohodnocenych pozic do hloubky 3 pultahu. Hlubsi prohledavani je vzhledem k vysoke pametove a casove narocnosti neunosne. Vzhledem k pevne stanovene hloubce prohledavani vznika riziko, ze program ne vzdy najde nejlepsi mozny tah, protoze se pozice muze prave ve ctvrtem pultahu rapidne zmenit. Pouzita heuristika ohodnoceni pozice je dana z nejvetsi miry bodovym ohodnocenim jednotlivych figur. Take je zde vyuzito nekterych snadneji aplikovatelnych sachovych zasad, jako je boj o stred a dalsi.

Program je dostupny na aise v adresari /home/kara s nazvem sachy.pl.