BayesChess: A computer chess program based on Bayesian networks

Similar documents
COMP219: COMP219: Artificial Intelligence Artificial Intelligence Dr. Annabel Latham Lecture 12: Game Playing Overview Games and Search

COMP219: Artificial Intelligence. Lecture 13: Game Playing

Today. Types of Game. Games and Search 1/18/2010. COMP210: Artificial Intelligence. Lecture 10. Game playing

Artificial Intelligence Search III

CPS331 Lecture: Search in Games last revised 2/16/10

Towards Strategic Kriegspiel Play with Opponent Modeling

Ar#ficial)Intelligence!!

Adversarial Search. CMPSCI 383 September 29, 2011

More on games (Ch )

Further Evolution of a Self-Learning Chess Program

Computer Science and Software Engineering University of Wisconsin - Platteville. 4. Game Play. CS 3030 Lecture Notes Yan Shi UW-Platteville

V. Adamchik Data Structures. Game Trees. Lecture 1. Apr. 05, Plan: 1. Introduction. 2. Game of NIM. 3. Minimax

Programming Project 1: Pacman (Due )

MyPawns OppPawns MyKings OppKings MyThreatened OppThreatened MyWins OppWins Draws

CS 331: Artificial Intelligence Adversarial Search II. Outline

Adversary Search. Ref: Chapter 5

Artificial Intelligence

Experiments on Alternatives to Minimax

Solving Problems by Searching: Adversarial Search

Adversarial Search (Game Playing)

Rules of the game. chess checkers tic-tac-toe...

CITS3001. Algorithms, Agents and Artificial Intelligence. Semester 2, 2016 Tim French

CS 188: Artificial Intelligence Spring 2007

More Adversarial Search

Announcements. CS 188: Artificial Intelligence Fall Today. Tree-Structured CSPs. Nearly Tree-Structured CSPs. Tree Decompositions*

More on games (Ch )

Game Playing. Philipp Koehn. 29 September 2015

Adversarial Search. Soleymani. Artificial Intelligence: A Modern Approach, 3 rd Edition, Chapter 5

Artificial Intelligence. Topic 5. Game playing

Google DeepMind s AlphaGo vs. world Go champion Lee Sedol

Adversarial Search Aka Games

A Quoridor-playing Agent

Data Structures and Algorithms

Games CSE 473. Kasparov Vs. Deep Junior August 2, 2003 Match ends in a 3 / 3 tie!

Lecture 14. Questions? Friday, February 10 CS 430 Artificial Intelligence - Lecture 14 1

Game Playing. Why do AI researchers study game playing? 1. It s a good reasoning problem, formal and nontrivial.

Adversarial Search and Game Playing

ARTIFICIAL INTELLIGENCE (CS 370D)

CS221 Project Final Report Gomoku Game Agent

5.4 Imperfect, Real-Time Decisions

Game Tree Search. CSC384: Introduction to Artificial Intelligence. Generalizing Search Problem. General Games. What makes something a game?

Recherche Adversaire

The Pieces Lesson. In your chess set there are six different types of piece.

Artificial Intelligence. Minimax and alpha-beta pruning

Announcements. CS 188: Artificial Intelligence Spring Game Playing State-of-the-Art. Overview. Game Playing. GamesCrafters

Game Playing AI Class 8 Ch , 5.4.1, 5.5

Foundations of Artificial Intelligence

Foundations of AI. 5. Board Games. Search Strategies for Games, Games with Chance, State of the Art. Wolfram Burgard and Luc De Raedt SA-1

CPS 570: Artificial Intelligence Two-player, zero-sum, perfect-information Games

2 person perfect information

Game Playing State-of-the-Art CSE 473: Artificial Intelligence Fall Deterministic Games. Zero-Sum Games 10/13/17. Adversarial Search

CS440/ECE448 Lecture 9: Minimax Search. Slides by Svetlana Lazebnik 9/2016 Modified by Mark Hasegawa-Johnson 9/2017

Movement of the pieces

Programming an Othello AI Michael An (man4), Evan Liang (liange)

Foundations of Artificial Intelligence

CS 380: ARTIFICIAL INTELLIGENCE ADVERSARIAL SEARCH. Santiago Ontañón

Artificial Intelligence Adversarial Search

Adversarial search (game playing)

Algorithms for Data Structures: Search for Games. Phillip Smith 27/11/13

CS 188: Artificial Intelligence

Adversarial Search. Human-aware Robotics. 2018/01/25 Chapter 5 in R&N 3rd Ø Announcement: Slides for this lecture are here:

Game-playing: DeepBlue and AlphaGo

AI Approaches to Ultimate Tic-Tac-Toe

CS61B Lecture #22. Today: Backtracking searches, game trees (DSIJ, Section 6.5) Last modified: Mon Oct 17 20:55: CS61B: Lecture #22 1

CS 188: Artificial Intelligence Spring Announcements

5.4 Imperfect, Real-Time Decisions

UNIT 13A AI: Games & Search Strategies

Mastering Chess and Shogi by Self- Play with a General Reinforcement Learning Algorithm

CS 229 Final Project: Using Reinforcement Learning to Play Othello

CS2212 PROGRAMMING CHALLENGE II EVALUATION FUNCTIONS N. H. N. D. DE SILVA

Contents. Foundations of Artificial Intelligence. Problems. Why Board Games?

6. Games. COMP9414/ 9814/ 3411: Artificial Intelligence. Outline. Mechanical Turk. Origins. origins. motivation. minimax search

Game playing. Chapter 6. Chapter 6 1

CSE 40171: Artificial Intelligence. Adversarial Search: Game Trees, Alpha-Beta Pruning; Imperfect Decisions

CS 5522: Artificial Intelligence II

CS510 \ Lecture Ariel Stolerman

Computing Science (CMPUT) 496

Algorithms for solving sequential (zero-sum) games. Main case in these slides: chess. Slide pack by Tuomas Sandholm

Learning long-term chess strategies from databases

Automated Suicide: An Antichess Engine

Artificial Intelligence

CS 188: Artificial Intelligence. Overview

Outline. Game Playing. Game Problems. Game Problems. Types of games Playing a perfect game. Playing an imperfect game

Chess Handbook: Course One

Search Depth. 8. Search Depth. Investing. Investing in Search. Jonathan Schaeffer

Game Playing. Garry Kasparov and Deep Blue. 1997, GM Gabriel Schwartzman's Chess Camera, courtesy IBM.

AN EVALUATION OF TWO ALTERNATIVES TO MINIMAX. Dana Nau 1 Computer Science Department University of Maryland College Park, MD 20742

Game playing. Outline

CS 380: ARTIFICIAL INTELLIGENCE

game tree complete all possible moves

Intuition Mini-Max 2

Outline. Game playing. Types of games. Games vs. search problems. Minimax. Game tree (2-player, deterministic, turns) Games

CC4.5: cost-sensitive decision tree pruning

Chess Rules- The Ultimate Guide for Beginners

Algorithms for solving sequential (zero-sum) games. Main case in these slides: chess! Slide pack by " Tuomas Sandholm"

Adversarial Search. CS 486/686: Introduction to Artificial Intelligence

Game Playing for a Variant of Mancala Board Game (Pallanguzhi)

Five-In-Row with Local Evaluation and Beam Search

Game Tree Search. Generalizing Search Problems. Two-person Zero-Sum Games. Generalizing Search Problems. CSC384: Intro to Artificial Intelligence

CS 1571 Introduction to AI Lecture 12. Adversarial search. CS 1571 Intro to AI. Announcements

Transcription:

BayesChess: A computer chess program based on Bayesian networks Antonio Fernández and Antonio Salmerón Department of Statistics and Applied Mathematics University of Almería Abstract In this paper we introduce a chess program able to adapt its game strategy to its opponent, as well as to adapt the evaluation function that guides the search process according to its playing experience. The adaptive and learning abilities have been implemented through Bayesian networks. We show how the program learns through an experiment consisting on a series of games that point out that the results improve after the learning stage. Key words: Bayesian networks, adaptive learning, computer chess. 1 Introduction Bayesian networks are known as an appropriate tool for modeling in scenarios where a high number of variables take part and there is uncertainty associated to their values [5,6]. One of the problems in which the use of Bayesian networks is specially important is the classification or pattern recognition problem. This is connected to the construction of systems able to adapt themselves to the user, since it is necessary to determine the kind of user in order to act in consequence. In this paper we describe a computer chess program able to adapt itself to the user and adjust its game strategy according to the user s style. Furthermore, it Supported by the Spanish Ministry of Education and Science, project TIN2004-06204-C03-01 and FEDER funds Email address: afalvarez@ual.es,antonio.salmeron@ual.es (Antonio Fernández and Antonio Salmerón). Preprint submitted to Elsevier 11 April 2007

learns from its own experience, by refining the evaluation function used in the search through the tree of movements. These functionalities have been implemented using Bayesian networks. More precisely, we have used classificationoriented Bayesian networks, based on the Naive Bayes structure, specially appropriate in problems involving a high number of variables and with a learning database with limited size. Our aim is not to achieve a really competitive program as Deep Blue [8] or Fritz [7], but rather to test the suitability of Bayesian networks for constructing adaptive systems. We have chosen computer chess because it has some features that can be properly handled using adaptive systems: The program constantly interacts with the user and it has to respond to his/her actions. The impossibility of calculating all the possible moves motivates the use of heuristics. The validity of the used heuristics can be tested according to the obtained results. There are different playing styles or strategies that can be adopted during a game. Therefore, the aim of this work is the use of Bayesian networks to provide the program with the ability of being adaptive. More precisely, we have focused on: (1) Refining the search heuristic, according the the program s playing experience, using a Bayesian network. (2) Use of a Bayesian network to classify the user s behaviour and adopt the appropriate strategy. We believe that the adaptation capability would be a valuable feature for sophisticated chess programs like Fritz. The last human-machine competitions have shown that commercial computer chess programs are able to beat almost any professional chess player, which means that computers have reached a really remarkable playing strength. However, many human players still think that computer chess programs play in a monotone and boring way, and it is motivating a lack of interest in purchasing those kind of programs. The feature of adapting to the user s style, in order not to show a monotone behaviour, can be an appealing feature for this software. The rest of the paper is organised as follows: In section 2 we review some basic concepts on Bayesian networks and classification. The design of the playing engine and the search heuristics is described in section 3. The automatic update of the heuristic is explained in section 4, while the adaptation to the user s behaviour is the aim of section 5. The experiments carried out to evaluate the learning process is described in section 6, and the paper ends with 2

conclusions in section 7. 2 Bayesian networks and classification Consider a problem defined by a set of variables X = {X 1,..., X n }. A Bayesian network [6,10] is a directed acyclic graph where each node represents a problem variable and has an associate probability distribution of the variable it contains given its parent in the graph. The presence of an arc between two variables expresses the existence of dependence between them, which is quantified by the conditional distribution assigned to the nodes. From a computational point of view, an important property of Bayesian networks is that the joint distribution over the variables in the network factorizes according to the concept of d-separation [10] as follows: n p(x 1,..., x n ) = p(x i pa(x i )), (1) i=1 where Pa(X i ) denotes the set of parents of variable X i and pa(x i ) is a configuration of values for them. This factorisation implies that the joint distribution for all the variables in the network can be specified with an important reduction of space requirements. For instance, the joint distribution over the variables in the network displayed in Figure 1, assuming that all the variables are binary, would require the storage of 2 5 1 = 31 values, while making use of the factorisation, the same information can be represented using just 11 values (see Table 1). X 1 X 2 X 3 X 4 X 5 Fig. 1. A sample Bayesian network A Bayesian network can be used for classification purposes if it contains a class variable, C, and a set of feature variables X 1,...,X n, so that an object with observed features x 1,..., x n will be classified as belonging to class c obtained as 3

Table 1 Example of factorised distribution for the network in Figure 1 p(x 1 = 0) = 0, 20 p(x 2 = 0 X 1 = 0) = 0, 80 p(x 2 = 0 X 1 = 1) = 0, 80 p(x 3 = 0 X 1 = 0) = 0, 20 p(x 3 = 0 X 1 = 1) = 0, 05 p(x 4 = 0 X 2 = 0, X 3 = 0) = 0, 80 p(x 4 = 0 X 2 = 1, X 3 = 0) = 0, 80 p(x 4 = 0 X 2 = 0, X 3 = 1) = 0, 80 p(x 4 = 0 X 2 = 1, X 3 = 1) = 0, 05 p(x 5 = 0 X 3 = 0) = 0, 80 p(x 5 = 0 X 3 = 1) = 0, 60 c = arg max c Ω C p(c x 1,...,x n ), (2) where Ω C denotes the set of possible values of class variable C. Note that p(c x 1,...,x n ) is proportional to p(c) p(x 1,...,x n c), and therefore, solving the classification problem would require to specify a distribution over the n feature variables for each value of the class. The associate cost can be very high. However, using the factorisation determined by the network, the cost is reduced. The extreme case is the so-called Naive Bayes model (see, for instance [3]), where it is assumed that the feature variables are independent given the class. This fact is represented by an structure as the one displayed in Figure 2. Class Feature 1 Feature 2 Feature n Fig. 2. Structure of a Naive Bayes classifier The strong independence assumption beneath this model is compensated by the reduction in the number of parameters to be estimated, since in this case it holds that n p(c x 1,...,x n ) = p(c) p(x i c), (3) i=1 and thus, instead of one n-dimensional conditional distribution, we have n one-dimensional conditional distributions. 3 Design of the chess playing engine The game of chess has been deeply studied by Artificial Intelligence. In this work we have considered a playing engine based on the mini-max algorithm 4

Table 2 Score for the pieces employed by our proposed heuristic Piece Pawn Bishop Knight Rook Queen Score 100 300 300 500 900 Table 3 Weights associated to the location of a white knight -10-10 -10-10 -10-10 -10-10 -10 0 0 0 0 0 0-10 -10 0 5 5 5 5 0-10 -10 0 5 10 10 5 0-10 -10 0 5 10 10 5 0-10 -10 0 5 5 5 5 0-10 -10 0 0 0 0 0 0-10 -10-30 -10-10 -10-10 -30-10 with alpha-beta pruning. There are more sophisticated search algorithms oriented to chess, but they are outside the scope of this work. However, the search heuristic is actually relevant since, as we will describe later, it will be updated using a Bayesian network learnt from the experience of the program itself. The heuristic we have chosen is based upon two issues: material (the pieces on the board) and the location of each piece (depending on the square where a piece is placed, it can be more or less valuable). Additionally, we have also given importance to the fact of setting the opponent s king under check, as it drastically reduces the number of possible moves. The evaluation of the material on the board is carried out by assigning a score to each piece. We have chosen the most usual found in chess programs, which is displayed in Table 2. The king is not associated with any particular score, since it must be present in any valid configuration of pieces on the board. Regarding the evaluation of the position of each piece, we have used an 8 8 matrix for each piece, so that each cell contains the value which is added to the heuristic in the case that the corresponding piece is placed on its corresponding square. Table 3 shows an example of this kind of matrix, for the case of a white knight. Notice that the location of the knight in central squares is encouraged, since it increases its scope. In overall, the heuristic function is defined in terms of 838 parameters, that correspond to the value for each piece on the board, the value of setting the opponent s king under check and the number stored in the 8 8 matrices. More precisely, there are 5 parameters indicating the value of each piece (pawn, queen, rook, knight and bishop -the king is not evaluated, as it must always be on the board-), 1 parameter for controlling whether the king is under check, 64 parameters for evaluating the location of each piece on each square on the 5

board (i.e., a total of 786 parameters, corresponding to 64 squares 6 pieces each colour 2 colours) and finally 64 more parameters that are used to evaluate the position of the king on the board during the endgame. This last situation is considered separately because the behaviour of the king should be different depending on the game stage. In general, it is not recommendable that the king advances during the opening, but it can be a good idea during the endgame, since it can support the advance of the pawns. 4 Automatic update of the heuristic In this section we describe the process of refinement of the parameters in the heuristic defined in Section 3. Along with the development of machine learning techniques in the decade of the eighties, their application to computer chess was considered, but the conclusion was that they could only be applied in a marginal way, as for extraction of patterns from openings books [11]. However, afterwards some applications of classification techniques were developed, mainly for the evaluation of positions from end-games [4]. With the aim of updating the parameters in the heuristic, we have considered a Bayesian network based on the Naive Bayes structure, but with the difference that instead of one class variable, in this case there are two of them: the current game stage (opening, middle-game or end-game) and the result (win, lose, draw). As feature variables, we have included all the parameters in the heuristic as described in Section 3, which means that the network has 840 variables arranged as shown in Figure 3. The high number of variables is the fact that motivates the use of a structure similar to the Naive Bayes model, since the use of a more complex structure would increase the time spent to evaluate the heuristic, slowing down the exploration of the search tree. The drawback of this choice is that the independence assumption can be little realistic, but this is somehow compensated by the reduction on the number of free parameters that have to be estimated from data. Game stage Result Pawn Knight Queen Check b-pawn on a8 Fig. 3. Structure of the network used to learn the heuristic The parameters in the Bayesian network are initially estimated from a database generated making BayesChess play against itself, employing one of the players the heuristic as defined before, and the other one using a randomly perturbed 6

heuristic, where the value of each variable is randomly increased or decreased a 20%, 40% or kept to its initial value. Table 4 shows the format of the database with some sample records. We can see how there is a record for each stage in a game, containing the value of the parameters used by the random heuristic, ending with the result of the game. Table 4 Sample games database Game stage Pawn Knight Bishop Rook Queen Check Pawn a8 Pawn b8... Result Opening 120 180 240 700 540 42-6 0... Lost Mid 120 360 360 600 1260 36 3 0... Lost End 120 420 180 400 720 42-3 3... Lost Opening 140 360 420 300 1080 18 0 6... Win Mid 100 300 360 500 1260 42 3 0... Win End 80 180 240 400 900 42 6 6... Win Opening 120 420 420 400 720 18-6 3... Draw Mid 140 300 360 500 1260 42 3 0... Draw End 120 420 180 600 900 30 0 6... Draw Each probability table in this Bayesian network requires the estimation of 45 values, since for each one of the 5 possible values of each variable, we must consider the game stage and the result (actually, only 36 values are required, as the remaining 9 can be computed from the restriction that the probabilities in each column must sum up to 1). Table 5 shows an example of the probability table for variable Pawn. Table 5 Example of probability table for variable Pawn Game stage O O O M M M E E E Pawn Result W L D W L D W L D 60 0,2 0,1 0,3 0,3 0,2 0,3 0,2 0,3 0,2 80 0,3 0,1 0,1 0,1 0,2 0,1 0,2 0,1 0,2 100 0,1 0,1 0,2 0,4 0,2 0,1 0,1 0,1 0,2 120 0,1 0,2 0,4 0,1 0,3 0,1 0,3 0,2 0,3 140 0,3 0,5 0,1 0,2 0,1 0,4 0,2 0,3 0,1 The learning process is not limited beforehand: It depends on the number of games recorded in the database. Therefore, the more games we have the more accurate the parameter estimation will be. Once the initial training is concluded, BayesChess can adopt the learnt heuristic and, from them on, refine it with new games, now against human opponents. After the Bayesian network has been constructed, BayesChess uses it to choose the parameters in the heuristic. The selection is carried out by instantiating both class variables (game stage and result) and computing the configuration of parameters that maximise the probability of the instantiated values. In order to be able to determine in which stage the game is, we have considered that the opening comprises the first 10 moves, while the end-game is reached 7

Opponent s situation First move Pawns attacking the king Castle Advanced pieces Fig. 4. Structure of the classifier used to determine the opponent s style when there are no queens or the number of pieces on the board is lower than 10. Otherwise, we consider that the stage is the middle-game. Regarding variable result, it can be used to determine the playing style that BayesChess will adopt. For instance, if we instantiate that variable to value win, BayesChess will choose the configuration of values for the parameters that maximise the probability of winning, even if that probability is lower than the probability of not winning (losing + draw). It means that the program adopts an aggressive strategy. On the other hand, we can choose to minimise the probability of loosing, i.e., maximising the sum of the probabilities of winning or reaching a draw. This corresponds to a conservative strategy. The way in which these configurations are obtained is through abductive inference [2,9]. In the particular case of the network used by BayesChess, the configurations can be easily obtained, since the configuration that maximises the probability of a given instantiation is obtained by taking the value for each individual variable with higher probability, due to the factorisation given in Equation (3). 5 Adaptation to the opponent s situation Now we will discuss how to make the heuristic adapt the strategy to the opponent style. With this aim we have considered three types of playing styles that the user can be employing: attacking, positional or mixed. We have implemented a Naïve Bayes classifier to determine the way in which the opponent is playing in a given moment, taking as basis these features of the opponent: first move, situation of castles (opposed or not), number of pieces beyond the third row (except pawns) and the number of pawns advanced towards the king. The structure of the classifier is depicted in Figure 4. The classifier has been trained using a database of games from four well-known professional players, corresponding the considered styles. In all the games, the feature variables have been measured and included in the database. More precisely, we have selected 2708 games by Robert Fischer and Gary Kasparov as examples of attacking style, 3078 by Anatoli Karpov as positional play and 8

649 games by Miguel Illescas as examples of mixed player. Table 6 describes the format of the database. Table 6 Sample database for learning the classifier of the opponent s style 1st move Castle Advanced pieces Pawns towards king Stytle e4 equal 2 1 Attacking Cf6 opposed 0 2 Attacking Cf3 equal 0 1 Mixed d4 equal 1 0 Positional c5 equal 0 0 Attacking c4 opposed 1 2 Positional other b equal 1 1 Mixed Using this classifier, BayesChess determines the opponent s strategy by instantiating the feature variables and computing the value of variable opponent situation with highest probability. 5.1 The process of adapting to the opponent Once the opponent style is determined, BayesChess decides its own strategy using the Bayesian network that contains the parameters of the heuristic in this way: When the opponent s style is attacking, it chooses the parameters in order to minimise the probability of losing. When the opponent s style is positional, it chooses the parameters in order to maximise the probabiliy of winning. When the opponent s style is classified as mixed, it randomly chooses one of the former two strategies. 6 Experiments We have carried out two experiments in order to evaluate the learning of the heuristic, in both of them using a database with 2000 games of the initial heuristic against a random one. In both experiments, the heuristic is incrementally learnt. The version of BayesChess that we used in these experiments is available at http://elvira.ual.es/algra. The experiment consisted of 11 matches of 200 games between BayesChess with random heuristic against itself with the learnt heuristic with different number of games in the learning database. We can see in Figure 5 how the learnt heuristic improves its results as the number of games increases. 9

Number of lost/won/draw games 200 180 160 140 120 100 80 60 40 20 Improvement of learnt heuristic Lost games Won games Draw games 0 0 200 400 600 800 1000 1200 1400 Number of games in the database 1600 1800 2000 Fig. 5. Evolution of the results of playing the learnt heuristic against the random one The second experiment consisted of evaluating the score assigned by the heuristic to a given position, more precisely to the position shown in Figure 6, with different number of games in the database. It can be seen that in Figure 6, the white player has one knight and two pawns above the black player, and therefore the evaluation of the position should be around 500 points of advantage for white. Figure 7 shows how the learnt heuristic actually approaches to that value when the database grows. In both experiments, it can be observed that the performance of BayesChess improves very quickly as the number of games used to learn the heuristic increases. However, once the training database reaches a certain size (around 400 games in the experiments), the behaviour improves much more slowly. We think that this is due to the kind of Bayesian network structure that we use to update the heuristic, which probably reaches close to its maximum accuracy quickly and after that point it is only slightly refined. This suggests that a more complex structure could be used when the training database is large, in order to reach a higher degree of refinement. 7 Conclusions In this paper we have introduced BayesChess, a computer chess program that adapts its behaviour according to its opponent and its previous experience. The results of the experiments carried out suggest that after learning, the results improve, and the heuristic is adjusted with more accurate parameter values. 10

3rzzzz3r1kz 6pz4Bz4bz6p6p zz4bzz2nzz zzz6pz6pzz zzzzzzzz zz6p4b6p2nzz 6P6Pzzz6P6P6P 3R2Nzzz3R1Kz Fig. 6. Sample board for the second experiment 0-100 -200 Evolution of score to a given position Random heuristic Fixed heuristic Learnt heuristic -300-400 Score -500-600 -700-800 -900-1000 0 200 400 600 800 1000 1200 1400 Number of games in the database 1600 1800 2000 Fig. 7. Evolution of the heuristic as the size of the database grows We think that the use of Bayesian networks is an added value in the construction of adaptive systems. In cases like BayesChess, where the number of variables involved is very high, they allow to carry out the necessary inferences efficiently, using restricted network topologies as the Naive Bayes. Not only chess, but also other computer games that require the machine to make decisions, can obtain benefits from the use of Bayesian networks in the way described in this paper. An inmediate example is the game of checkers, but it must be taken into account that the complexity of that game is much lower and the heuristic would not contain so many variables. In the next future we plan to improve BayesChess by refining our implementation of mini-max and by introducing an end-game classifier. In this sense, 11

there are databases with data about typical positions in end-games with rooks and pawns, classified as winning, loser, or oriented to draw, and that can be used to train a classifier [1]. References [1] C.L. Blake and C.J. Merz. UCI repository of machine learning databases. www.ics.uci.edu/ mlearn/mlrepository.html, 1998. University of California, Irvine, Dept. of Information and Computer Sciences. [2] L.M. de Campos, J.A. Gámez, and S. Moral. Partial abductive inference in Bayesian networks by using probability trees. In Proceedings of the 5th International Conference on Enterprise Information Systems (ICEIS 03), pages 83 91, Angers, 2003. [3] R.O. Duda, P.E. Hart, and D.G. Stork. Pattern classification. Wiley Interscience, 2001. [4] J. Fürnkranz. Machine learning in computer chess: The next generation. ICCA Journal, 19(3):147 161, 1996. [5] J.A. Gámez, S. Moral, and A. Salmerón. Advances in Bayesian networks. Springer, Berlin, Germany, 2004. [6] Finn V. Jensen. Bayesian networks and decision graphs. Springer, 2001. [7] K. Muller. The clash of the titans: Kramnik - FRITZ Bahrain. IGCA Journal, 25:233 238, 2002. [8] M. Newborn. Kasparov vs. Deep Blue: Computer chess comes of age. Springer- Verlag, 1997. [9] D. Nilsson. An efficient algorithm for finding the M most probable configurations in Bayesian networks. Statistics and Computing, 9:159 173, 1998. [10] J. Pearl. Probabilistic reasoning in intelligent systems. Morgan-Kaufmann (San Mateo), 1988. [11] S.S. Skiena. An overview of machine learning in computer chess. ICCA Journal, 9(1):20 28, 1986. 12