Academia.eduAcademia.edu

A Chess Composer of Two-Move Mate Problems

ICGA journal

Computerized composers of chess mate problems are very rare. Moreover, they do not produce neither impressive nor creative new chess mate problems. In this paper, we describe a model called Chess Composer. This model uses a 64-bit representation, an ordered version of Iterative Deepening Depth First Search, and a quality function built with the help of two international masters in chess problems composition. The results of the experiment, we carry out on 100 known problems, show that the quality of 97 of the problems (97%) has been improved. Some of the improvements are rather impressive considering that most of the tested problems were composed by very experienced composers. These new improved problems can be regarded as creative from the viewpoint of experts in chess composition, because they seem to be better, and they are not too similar to the original problems.

A Chess Composer of Two-Move Mate Problems 3 A CHESS COMPOSER OF TWO-MOVE MATE PROBLEMS Fridel Fainshtein 1, Yaakov HaCohen-Kerner12 Ramat-Gan, Israel Jerusalem, Israel ABSTRACT Computerized chess composers of mate problems are rare. Moreover, so far they do not produce either impressive or creative new mate problems. In this paper, we describe a model called CHESS COMPOSER. This model uses a 64-bit representation, an ordered version of Iterative-Deepening DepthFirst Search, and a quality function built with the help of two international masters in chess-problem composition. The result is applied on 100 known problems. It shows that the quality of 97 problems has been improved. Some of the improvements are rather impressive considering that most of the tested problems were composed by experienced composers. The new, improved problems can be regarded as creative from the viewpoint of experts in chess compositions, because (1) they seem to be better, and (2) they are not too similar to the original problems. 1. INTRODUCTION Computer composition of mate problems in chess is a relatively uninvestigated research domain. The few computerized composers of such mate problems do not produce impressive or creative, new mate problems. Thompson (1986, 1996) and Nalimov (2000) built practical chess endgames databases. Their studies only dealt with 5 -piece and 6-piece endgames. The databases are currently used by many strong chess-playing programs. Other endgame studies were performed by Heinz (1999), Tamplin and Haworth (2001), and Haworth (2003). Among the outcomes, there are two-move mate problems too. Thompson (1986, 1996) used a retrograde analysis to build his endgame databases. Schlosser (1988, 1991) was probably the first to propose a general method of using a retrograde analysis for the composition of chess problems. His method included three main stages: (1) constructing a complete database of new problems starting from given mating positions [in a similar way to the construction of endgames by Thompson], (2) eliminating all incorrect positions according to chess composition rules, and (3) selecting high-quality chess problems based on evaluation values given by a human chess expert. Watanabe, Iida, and Uiterwijk (2000) implemented similar ideas for composing problems in Tsume-Shogi (a Japanese chess-like game). The concept of a “high-quality mate problem” in chess is hard to define, especially if an automatic program is involved. It is not simple to define concepts such as beauty, originality, uniqueness of the solution, and difficulty to solve. Therefore, a major part of the knowledge needed for evaluating the quality of chess problems in general and of two-move problems in particular has been defined in a model called an IMPROVER OF CHESS PROBLEMS (ICP) (HaCohen-Kerner, Cohen, and Shasha 1999). This knowledge was collected with the help of two international masters in chess-problem composition. It includes definitions of themes, bonuses, and penalties in the domain of chess composition of two-move problems. ICP tries to improve the quality of a given problem by a series of transformations. It uses a hill-climbing search, satisfying several chess-composition criteria at each step. ICP improved the quality of 10 out of 36 known two-move mate problems (about 28%). Most of the improvements achieved are considered as slight improvements. The main differences between ICP and Schlosser’s model are: 1. ICP uses a move-forward hill-climbing technique from the given problem instead of using a movebackward retrograde analysis; 2. ICP starts with 2-movers and ends with them; there is no change in the number of the moves; 3. ICP uses a computer instead of an expert to evaluate the new problems. 1 . Department of Computer Sciences, Bar-Ilan University, 52900 Ramat-Gan, Israel, [email protected]. Department of Computer Sciences, Jerusalem College of Technology (Machon Lev), 21 Havaad Haleumi St., P.O.B. 16031, 91160 Jerusalem, Israel, [email protected]. 2 ICGA Journal 4 March 2006 In this article a new model called the CHESS COMPOSER is described. It uses a different algorithm for the composition of high-quality problems. CHESS COMPOSER’s database contains 100 problems including the 36 problems examined by ICP. The new model improved 97 out of 100 problems. So it performs much better than ICP (97% vs. 28%). The course of the article is as follows. Section 2 describes the CHESS COMPOSER. Four illustrative examples are given in Section 3. Section 4 presents the results of experiments and analyzes them. Section 5 summarizes the research and proposes future directions. 2. THE CHESS COMPOSER MODEL CHESS COMPOSER composes 2-movers by improving previous 2-movers. It uses a fixed-depth brute-force method and a heuristic function that estimates the quality of chess problems. In order to find the best improvement(s) for each problem (if existing), we investigate all possible closely related positions and compare their quality values to the quality value of the original problem. To generate all closely related positions, we use a brute-force search method. All regular brute-force search methods have a time complexity of O(bd), where b represents the branching factor and d represents the depth of the generated positions tree. This depth is the number of the applied changes/transformations starting from an original problem. In our domain, b represents all applied transformations rather than all legal chess moves. The estimated average branching factor in the chess game is some 33 to 36 (dependent on the precise definition of mobility, cf. Hartmann, 1989), while our branching factor is 368 on average (see Table 1 in Subsection 2.3). 2.1. General Description CHESS COMPOSER uses the Iterative-Deepening Depth-First search. (Korf, 1985) proved this scheme to be asymptotically optimal among all brute force methods. The total time for nodes to be expanded is O(bd), where b is the branching factor, and d is the depth of the developed tree. Practically, observing a small set of problems, we discovered that a depth of 3 levels would be a normal bound, since it takes about 32 minutes on average for a problem at this level, while it takes about 50 hours at level 4. For problems with no improvement after a sequence of the three transformations we continue researching one level deeper. The general algorithm is described in Figure 1. The main components Composer is the main function. It receives as input MaxDepth which is equal to 3. Then, it iterates consequently to depth 1, depth 2, and depth 3. If no improvement has been found, it iterates to depth 4. Iterate is a bounded DFS function. It generates all nodes until Composer’s bound (level 3). In order not to reapply the heavy function ImprovedMateProblem, the algorithm calls this function only for nodes on the last level. By this, we gain some improvement in inner nodes and reduce the main disadvantage of the IterativeDeepening scheme which may duplicate the expansion of the inner nodes. The Iterative-Deepening scheme, described in Korf (1985), expands inner nodes MaxDepth – d times, 0 < d < MaxDepth, while in our algorithm these nodes are expanded just once. Of course, the number of generated nodes is the same in both algorithms. However, the number of generated notes is less important because the cost of generating a node is much less than the cost of its expansion. ImprovedMateProblem checks whether a new position is an improved 2-move mate problem. It is a very costly function because it calls three functions: LegalChessPosition, LegalTwoMoveMateProblem, and ProblemEvaluator. The last function is the heaviest, because it checks whether a new position contains any themes, bonuses, and penalties. A Chess Composer of Two-Move Mate Problems 5 Composer (OriginalProblem, MaxDepth) 1. ImprovedList = NULL 2. For ( I = 1; I <= MaxDepth; I Å I + 1) 2.1.Iterate (OriginalProblem, I) 3. If isEmpty (ImprovedList ) 3.1.Iterate (OriginalProblem, MaxDepth + 1) 4. return bestScored problem from ImprovedList Iterate (OriginalProblem, Bound) 1. PushIntoStack ({OriginalProblem, 0})  2nd parameter is for the node's level in the tree 2. While NotEmptyStack ( ) 2.1. {CurrentPosition, Level} Å PopFromStack() 2.2. if Level = Bound in this case we investigate the CurrentPosition 2.2.1. If ImprovedMateProblem (CurrentPosition, OriginalProblem) then 2.2.1.1. ImprovedList Å StoreImprovedMateProblem (CurrentPosition) 2.3. else // i.e.: if (Level < Bound) in this case we do not investigate the CurrentPosition 2.3.1. For each Successor of CurrentPosition // from right to left 2.3.1.1. CurrentPosition = ApplyNextTransformation (CurrentPosition) 2.3.1.2. PushIntoStack ({CurrentPosition, Level + 1}) ImprovedMateProblem (CurrentPosition, OriginalProblem) 1. if ( LegalChessPosition (CurrentPosition) and LegalTwoMoveMateProblem (CurrentPosition) and ProblemEvaluater (CurrentPosition) > ProblemEvaluater (OriginalProblem)) then return true else return false Figure 1: Optimized Iterative-Deepening DFS Composer. Other components • LegalChessPosition checks the legality of a position according to the chess rules. • LegalTwoMoveMateProblem tests whether a given position is a two-move mate problem (including the test for non-cooking, i.e., no more than one key move). This component uses a suitable limited search engine and checks all legal chess moves including the two special moves (in contrast to ICP), castling and en passant capture. • ProblemEvaluator analyzes a position as a mate problem and computes its quality score. This function is described in the next subsection. • ApplyNextTransformation applies the next transformation on a given position according to a fixed ordered list of transformations. CHESS COMPOSER uses three kinds of transformations, while attempting to improve a problem (the ApplyNextTransformation function): (1) deletion of a specific piece, (2) addition of a specific piece, and (3) transparency of all pieces. The last one is done through two possible movements: (a) file-transparency: all pieces are transferred i files to the right-side or to the left-side and (b) rank-transparency: all pieces are transferred i ranks to the upper-side or to the lower-side. Additional possible transformations (e.g., moving a certain piece, exchanging a piece) are introduced in Kerner (1995) and HaCohen-Kerner et al. (1999). These transformations can be seen as complex transformations based on the basic transformations: deletions and additions. That is, every transformation can be presented by suitable deletion(s) and addition(s). 2.2 Heuristic Evaluation Function The quality of a chess problem is not simple to evaluate. There are no exact definitions for concepts such as beauty, originality, uniqueness of the solution, and difficulty to solve. Moreover, it seems that most composition judges do not apply a grid with points when they are judging a chess problem. However, for an automatic program there is a need to define such a function. Therefore, with the help of two international masters in chess-problem composition, we built a heuristic function that computes a quality score of a mate problem. ICGA Journal 6 March 2006 The following heuristic function is defined in ICP: 0 severe deficiency , ⎪⎧ qm ( problem ) = ⎨ V T V B V P ( ) ( ) ( ) + − ∑ j j ∑ k k otherwise i ⎩⎪∑i where qm is the quality square of the discussed problem. A severe deficiency is considered as a cancellation of a position as a proposed problem. A severe deficiency happens when one of the three following situations occurs: (1) illegal chess position, (2) it is not a two-move mate problem, (3) there is more than one key move (cooked). V is the value function. Ti is the set of all themes (Appendix A) included in the position. Bj is the set of all bonuses (Appendix B) granted to the position. Pk is the set of all penalties (Appendix C) granted to the position. Various themes, bonuses, and penalties were collected consulting two international masters in chess composition and taken from the classic books of chess composition (Harley 1970, Howard 1961). Appendixes A to C were presented in HaCohen-Kerner et al. (1999). We reproduce them because: (1) some definitions have been revised and (2) for the readers’ comfort. We define and apply eleven composition themes: self-blocking, self-pinning, unpinning, half-pinning, direct battery, indirect battery, Grimshaw, Pickaniny, king-flights, lonely black king, and tempo. Each theme has its own unique score depending on its complexity and relative importance. The definitions of these themes are given in Appendix A. Bonuses (Appendix B) and penalties (Appendix C) are additional tools for evaluation of the problem. An example of a bonus is a placement of the black King on the centre of the board. On the other side, if the black King is on the edge or in the corner, the position gets a penalty. The change in checks, which Black can give before and after the keymove, is another example of bonuses and penalties. 2.3 Complexity of CHESS COMPOSER Chess composition rules do not allow a chess problem to contain more than one King, one Queen, two Rooks, two Bishops, two Knights, and eight Pawns for each colour (Harley, 1970; Howard, 1961). In this model, we keep to these rules. However, in order to estimate the complexity, we assume, in contrast to chess composition rules, that each one of the p pieces can be added on each step on an empty square. Let p be the number of pieces we can add, and let s be a number of empty squares. Assuming d to be the number of the additions in this additions-tree, the number of nodes on level d by naïve additions is: ps * p ( s − 1) * p ( s − 2) *...* p ( s − d + 1) = p d * s! ( s − d )! (1) For instance, the 1-level enables p*s additions for each kind of piece on each empty square. The 2-level enables p*(s–1) additions, because the number of the empty squares was reduced by one. Obviously, many positions are repeated by permutations of additions. For example, a White Bishop can be added before a Black Knight and visa-versa. To prevent these repetitions, we apply an order on the added pieces as follows: Q (white Queen) > R (white Rook) > B (white Bishop) > N (white Knight) > P (white Pawn) > q (black Queen) > r (black Rook) > b (black Bishop) > n (black Knight) > p (black Pawn), which means that if we have added a piece from the list (say N), then we cannot add a piece which is preceding in the list (Q, R, B). Applying this order we get the following formula for the number of nodes on level d of the additions-tree without repetition, assuming d to be the number of the additions: i3 i2 i1 s ! id = p id −1 id −2 ∑ ∑ ∑ .....∑∑∑1 ( s − d )! id −1 =1 id −2 =1 id −3 =1 i2 =1 i1 =1 i0 =1 (2) Figure 2 presents the tree until depth d = 2. The number of possible additions is 10 (for [Q … p]) + 9 (for [R … p]) + 8 (for [B … p]) + . . . 1(p) = 55, exactly as expressed in formula (2). The implementation of the order on additions is quite simple. The equality (3) can be proved by induction on d (the number of the additions). A Chess Composer of Two-Move Mate Problems 7 Original Problem ... Q R B N P q r b n p ... Q... p B .B .. p R... p Figure 2: n p p The additions-tree up to depth d = 2. s !∏ ( p + i − 1) d ( s − d )! d ! (2) = (3) 1 Dividing (3) by (1) shows a great asymptotical improvement compared with formula (1). That is, our special order of additions improves the order of our generation algorithm. ∏ ( p + i − 1) ∏ ( p + i − 1) d (3) = (1) d i =1 pd d ! = i =1 ∏ pi d i =1 =∏ d i =1 p + i −1 d 1 1 1 1 p >1 = ∏ ( + − ) ⎯⎯⎯ → ∞ →0 d →∞ pi p pi p i =1 i (4) Taking into consideration also the two other kinds of transformations: deletions and transparencies, we can achieve the complete order: (1) deletions are done first, then transparencies, and eventually additions, (2) in case of addition of the same pieces, the order is due to the nearness to 0-square (h8 = 0; a8 = 7; h1 = 56; a1 = 63), and (3) order on deleted pieces regarding their nearness to 0 (i.e., to h8). After applying all these, we obtain a complete order on transformations, and the algorithm becomes d! faster compared with the naïve algorithm (formula 1) in cost of applying the order on transformations. Deletions become relatively important when we treat positions with many pieces. This is because of the already mentioned chess composition rule about number of pieces: there cannot be more than 8 Pawns, 2 Bishops, 2 Rooks, 2 Knights, and 1 Queen for each colour and two same coloured Bishops cannot be placed on squares with the same colour. Our theory is supported by experimental results. Each chain containing the same d transformations leads to the same position. That is, the same position can be reached in d! different permutations. Thus, actually, on the dlevel we need to explore only O(bd/d!) nodes. The results presented in Table 1 support this theory. For instance, for d=1, the number of generated positions is 368 (= 3681/1!) on average; for d=2, the number of generated positions is 68,486 on average, compared with 3682/2! (= 67,712); for d=3, the number of generated positions is 8,014,304 on average, compared with 3683/3! (= 8,306,005). The running-time, needed for investigating all generated nodes on the first 3 levels for an average problem, is approximately 32 minutes. Although our model implements a soft real-time system rather than a hard real-time, the run-time is still important. Therefore, we speed the model up by using a 64-bit representation (details in Appendix E). # of generated positions for all 100 problems Average # of Deviation Average time Deviation nodes (nodes) (seconds) (seconds) 368 83 0.16 0.07 1-level 68,468 28,156 2-level 20.84 7.14 8,014,304 4,522,082 1,911.39 775.69 3-level 842,936,433 289,034,621 168,272.00 57,785.00 4-level (for only 6 problems) Table 1: Average number of generated positions by CHESS COMPOSER and times for all 100 original problems. ICGA Journal 8 2.4 March 2006 64-bit Representation Adelson-Velskiy et al. (1970) were the first to propose an approach of 64 bits for board representation in the chess program KAISSA. Other programmers used the same approach with success in their chess-playing programs (Slate and Atkin, 1977; Heinz, 1997; Hyatt, 1999). The main ideas behind this method are economy of loops, absence of checking whether a piece moves out of the board, and the ability to compute complex calculations just in a few bitwise operations (Adelson-Velskiy et al. 1970, Slate and Atkin, 1977). In this method, each kind of pieces has a unique 64-bit machine word (see Appendix E). Adelson-Velskiy et al. (1970) used the M20, a Russian computer. According to them, the length of the word in this machine was less than 64 bits. State and Atkin (1977) used CDC 6400, which also did not have 64 bits. The use of 64 bits in nowadays computers becomes increasingly wider. Heinz’s DARKTHOUGHT and Hyatt’s CRAFTY use 64-bit machines. In our experiments, we use two 64-bit machines: AMD64 and Itanium-2. The output of our move generator is an array of new positions. All positions in the array are legal, assuming that the previous position is legal too (see details of our implementation in Appendix E). Our move generator is fast enough compared to the known programs. It gives a speed of more than 22 million positions per second if we develop all variants starting from the initial positions using simple DFID. Castling and en-passant are allowed. Some known professional programs (e.g., CHESSEXPLORER at http://www.geocities.com/explorer127pl) that use the 32-bit approach perform analogously with a speed of about 15 million positions per second. Using the capability of 64 bits, the CHESS COMPOSER’s (on AMD64 3400+) move generator is faster (see Table 2). Pos./s. AMD64+ilogb AMD64+bsf/bsr Itanium2+ilogb 18,401,251 7,109,440 22,163,976 7,445,146 4,873,584 - 'gcc –m64' 'gcc –m32' Table 2: Generation of all possible positions from the initial chess position up to 8 plies on AMD64 with different configurations and on Itanium2. Table 2 presents different runs of our move generator on different platforms with different configurations. To estimate speed, the initial chess position is developed up to depth 8. The speed is defined as number of generated positions developed per run-time of the program. We use AMD64-3400+ running on Linux 2.6.11 and compile with GCC 3.4.3. Functions λ and µ, respectively, stay on the least and the most important bit that is on, following Adelson-Velskiy et al. (1970). ‘ilogb’ and ‘bsf/bsr’ are 2 possible implementations for λ and µ (details in Appendix E). ‘-m64’ and ‘-m32’ are two different compilation parameters for gcc, complying into the 64-bit platform and into the 32-bit platform. The main difference between generators based on rotated bitboards and our generator is the absence of use in rotated bits in our generator. The reason for this is the need to manage 3 additional bitboards with occupied pieces. “Looping” through different directions of sliding pieces is efficient enough, especially on a 64-bit architecture. However, we have a use in pre-calculated ranks for horizontal moves of Rooks and Queens (see “rm” in Table 8). It must be also pointed out that our move generator is not fully optimized. Therefore, its results are more impressive in comparison with 32-bit oriented programs (32% speed-up compared to CHESSEXPLORER mentioned above). 2.5 Comparison to Other Models CHESS COMPOSER, in contrast to ICP, uses only three kinds of transformations. Therefore: (1) the branching factor of CHESS COMPOSER is smaller, and (2) the depth of the tree (the number of the applied transformations) developed by CHESS COMPOSER should be higher. ICP uses a hill-climbing search, based on a heuristic function, to find local maxima in the near problem space. Hill-climbing search is an informed search. That is, it uses information of the newly developed nodes (Russell and Norvig, 2002) in order to prune some of the sub-trees. A Chess Composer of Two-Move Mate Problems 9 In contrast, CHESS COMPOSER uses a brute-force search. This is an uninformed search. That is, it does not depend on any information contained in the newly developed nodes. This approach overcomes the main weakness of ICP, which is not developing the sub-trees whose roots are: (1) not legal according to the rules of chess composition; (2) not a two-move mate problem with only one key move; (3) of a lower quality score than the original problem. CHESS COMPOSER develops all possible transformations at all levels (see Table 1 for numbers). That is, it traverses all nodes to a fixed depth in order to find the best improvement (global maximum). The main differences between CHESS COMPOSER and other previous models related to computer composition of chess-like and chess mate problems (mentioned in Section 1) are: (1) CHESS COMPOSER uses a move-forward technique from the given problem instead of using either move-backward or random techniques; (2) CHESS COMPOSER tries all possible transformations for every examined position, not only forced legal chess moves; therefore, its branching factor is much higher; (3) CHESS COMPOSER starts with 2-movers and ends with them; there is no change in the number of the moves, in contrast to the model presented by Schlosser (1988, 1991); (4) CHESS COMPOSER deals with a relatively high number of composition themes which are treated automatically by a computer rather than a human. 3 FOUR ILLUSTRATIVE EXAMPLES In this section, we present four illustrative examples of problems improved by CHESS COMPOSER. Only one of the problems has been improved by ICP, but a much better improvement was found by CHESS COMPOSER. The three other problems have not been improved by ICP. 3.1 Example 1 The example starts at the miniature presented in Diagram 1. The composition theme expressed in this problem is “self-blocking”. The solution to is the key move 1. Kc7-d8. There are 13 possible variants, only 4 of them express “self-blocking”. All 9 other variants include the same mate-move and do not contribute any novelty. ICP, trying to improve the problem, applies the following rank-transparency transformation “moving all pieces 2 ranks below”. As a result, we reach the problem of Diagram 2. The solution is the key move 1. Kc5-d6. Diagram 1: Werner Speckmann, Neueste Kieler Nachrichten, 1939. Diagram 2: The best improvement by ICP. ICP’s problem is considered better than the original problem for the two reasons. (a) The Black King in Diagram 2 is placed on a central square. For White, this is considered harder to mate. (b) The problem of Diagram 2 includes 11 possible variants (versus 13 in the original), 4 of them (as in the original problem) express “self-blocking”. Only 7 other variants (versus 9 in the original problem) do not contribute any novelty. The four thematic variants are: ICGA Journal 10 Black’s move (a) 1... Pd4 - d3 (b) 1... Rc3 - f3 (c) 1... Rc3 - e3 (d) 1... Rc3 - d3 White’s mate-move 2. Rd5 - d4 2. Rd5 - e5 2. Qf2 - d4 2. Qf2 - f5 2. Rd5 - e5 March 2006 Themes included in the variant self-blocking; (thematic minor dual) self-blocking self-blocking self-blocking CHESS COMPOSER applies the following three transformations: “rank-transparency transformation by moving all pieces one rank below”, “addition of a white Bishop on b2”, and “addition of a black Knight on c3”. As a result, we reach the problem of Diagram 3. The solution for this problem is the same as for the problem of Diagram 1: the key move 1. Kc6 - d7. There are nine possible variants. Only four of them are thematic (i.e., express “self-blocking”), as follows. Diagram 3: The best improvement by CHESS COMPOSER. Black’s move (a) 1... Pd5-d4 (b) 1... Rc4- f4 (c) 1... Rc4- e4 (d) 1... Rc4- d4 White’s mate-move 2. Rd6 – e6 2. Qf3 – d5 2. Qf3 – f6 2. Rd6 – e6 Themes included in the variant self-blocking self-blocking self-blocking self-blocking The problem of Diagram 3 is considered much better than the original of Diagram 1 and than the ICP’s improvement of Diagram 2. The comparison between the original problem and the ICP’s improvement has already been presented. The comparison between the problems of the Diagrams 2 and 3 is given below. The position of Diagram 3 has several advantages compared to the problem of Diagram 2. We mention 2 of them. (1) There are only 5 non-thematic variants in the problem of Diagram 3, while there are 7 non-thematic variants in the problem of Diagram 2. (2) One of the thematic variants in the problem of Diagram 2 has a serious disadvantage. It is a thematic minor dual (i.e., there are two possible mate-moves for White instead of one). In contrast, the problem of Diagram 3 contains only pure thematic variants. The only disadvantage of the problem of Diagram 3 compared to the others is that the others include only 7 pieces (i.e., they are regarded as miniatures), while the problem of Diagram 3 is not a miniature. 3.2 Example 2 The miniature (a problem that contains at most 7 pieces), presented in Diagram 4, has not been improved by ICP. However, it has been improved significantly by CHESS COMPOSER to the problem on Diagram 5. The composition themes expressed in the problem on Diagram 4 are: (1) “Grimshaw”, which means that two black pieces block each other’s line by interfering on a same square causing different mate variations and (2) “Selfblocking”, which means that a black piece blocks one of black King’s flights and by that creates different mate variations (Appendix A). A Chess Composer of Two-Move Mate Problems Diagram 4: H. Weenink, Good Companion, 12/1917. 11 Diagram 5: The best improvement by CHESS COMPOSER. The solution to the problem of Diagram 4 is the key move: 1. Qb5-c4. There are 9 possible variants; only 3 of them are thematic (full details in Appendix D). The best improvement to the problem of Diagram 4, found by CHESS COMPOSER, contains the following three transformations: “addition of a white Pawn on e3”, “addition of a black Pawn on e4”, and “addition of a black Rook on a7”. As a result, we reach position of Diagram 5. The solution to the problem of Diagram 5 has the same key move: 1. Qb5-c4. Then, there are 12 possible variants; 5 of them are thematic (see Appendix D). The problem of Diagram 5 is considered to be better than the problem of Diagram 4 for the following three main reasons. (1) The problem of Diagram 5 includes two pairs of the complex composition theme “Grimshaw” (i.e., 4 variants) instead of one pair (i.e., 2 variants) as in the problem of Diagram 4. The two Grimshaw squares are c6 (Pawn and Bishop) and b7 (Rook and Bishop). Problems that contain two pairs of the Grimshaw theme are relatively rare and hard to accomplish. Therefore, this addition is considered as a meaningful improvement of the original problem. (2) The problem on Diagram 5 contains 5 thematic variants out of 12 (42%), while the problem of Diagram 4 contains only 3 thematic variants out of 9 (33%). (3) Moreover, after the key move in the problem of Diagram 4, White has a mate threat 2. Qc4xc7. In the problem of Diagram 5 White has no mate threat; yet White succeeds in mating Black in two moves. This feature is called “tempo”, and it is also considered as an additional composition theme. Such problems are harder for humans to solve (Harley 1970). The added Pawns in Diagram 5 are necessary for the solution. The black Pawn on e4 prevents Black to make moves by their Bishop on e4, f3, g2, and h1, moves that are not needed. The white Pawn on e3 prevents the black Pawn from moving. There is only one slight disadvantage in the problem of Diagram 5 compared to the problem of Diagram 4: Diagram 4 includes only 7 pieces (i.e., it is a miniature), while Diagram 5 contains 10 pieces. The full evaluation of the problem of Diagram 4 and the problem of Diagram 5 is given in Appendix D. 3.3 Example 3 The problem presented in Diagram 6, has not been improved by ICP. It has been improved significantly by CHESS COMPOSER viz. to the problem of Diagram 7. ICGA Journal 12 Diagram 6: A. Pasella en dr. G. Christofanini Revista de Sah, 1926. Also in Jaarboek 1980, Pr. # 13, page 29. March 2006 Diagram 7: The best improvement by CHESS COMPOSER. The solution of the problem of Diagram 6 is the key move 1. Bc7-a5. The variants are: Black’s move (a) 1... b7-b6 (b) 1... d6-d5 (c) 1... b7-b5 White’s mate-move 2. Ba5-b4 2. Qd7xd5 2. Qd7-c8 2. Qd7-c7 Themes included in the variant self-blocking self-blocking self-blocking; (thematic major dual) The solution of the problem of Diagram 7 is the key move 1. Qd7-e6, threatening Qe6-c4 ±. The thematic variants are as follows. Black’s move (a) 1... d6-d5 (b) 1... b7-b5 (c) 1... Kc5-c6 White’s mate-move 2. Qe6-b6 2. Qe6-d6 2. Kc3-b4 Themes included in the variant self-blocking self-blocking self-pinning, direct battery The improved problem is much better because it does not contain any thematic major dual variant. A minor dual is a dual, of which all variants are forced in other lines of play. A major dual is a dual which is not a minor dual (Harley, 1970). The problem of Diagram 6 has a major dual because both mate-moves, Qc8 and Qc7, are not forced in other variants. Major duals are a serious flaw. Major duals in thematic variants are even worse. The new problem also includes two new themes: self-pinning and direct battery. However, the self-pining is rather pseudo thematic: the pinned Pawn is not the reason to the mate-move. By self-pinning we mean a situation where Black moves and pins a piece and, as a cause of the pinning, Black is mated because the pinned piece cannot make a defensive move. The self-blocking variant is expressed in two pure variants instead in one. In general, there are three pure unique variants (not counting the threat variants) instead of two. In the new problem, there is a mate move by the King, which is regarded as creative. Finally, after the key move, the black King has two King-flights (c6 and b5) instead of one (c6). This situation is regarded as the King-flight theme and it was absent in the original problem. On the first look, the Knight on h8 does not contribute anything. It is an additional piece that does not add any thematic variant: variants which end with the threat mate are usually regarded as non-thematic. However, if the black Knight is not added, the problem is cooked. The disadvantages are as follows: (1) the new problem is no more a miniature, and (2) it is no more a tempo problem. A Chess Composer of Two-Move Mate Problems 3.4 13 Example 4 The problem presented in Diagram 8, has not been improved by ICP. It has been improved significantly by CHESS COMPOSER to the problem of Diagram 9. Diagram 8: Israel chess magazine, Pr # 1953. Diagram 9: The best improvement by CHESS COMPOSER. The solution of the problem of Diagram 8 is the key move 1. Ba4-c6, threatening 2. Qh1-d5 and 2. Qh1-e4. The variants are as follows. Black’s move (a) 1... c5-c4 (b) 1... Kd4-c4 (c) 1... Kd4-d3 White’s mate-move 2. Qh1-d5 2. Qh1-d5 2. Qh1-e4 Themes included in the variant The solution of the problem of Diagram 8 is the key move 1. Nb4-a2. The variants are as follows. Black’s move (a) 1... c5-c4 (b) 1... Kd4-c4 (c) 1... Kd4-d3 White’s mate-move 2. Kf2-e2. 2. Qh1-e4. 2. Qh1-d5. Themes included in the variant self-blocking, direct battery The improved problem includes two new themes: self-blocking and direct battery. All variants are uniquely different, while in the original problem the first and the second variants represent the so-called black dual. The new problem is also a tempo problem, which is better than the double threat in the original problem. If we look at the key moves, Ba4-c6 is a move towards the black King, while Nb4-a2 is the move in the opposite direction. The last feature is also regarded as an improvement. 4. RESULTS AND DISCUSSION CHESS COMPOSER has been tested on 100 chosen 2-movers collected from different chess composition books. Most of the problems were collected from relevant composition books and correspondences (Haymann, 19881991; Howard, 1961, 1962, 1970; Harley, 1970; Thulin, 2000, 2003, 2004; Török, 2001, 2002; Godbout, 2001). Thirty six of them were the test set for ICP. Figure 3 shows that new transformed positions are usually not legal by chess rules (about 30%) or not legal by chess composition rules (“not 2-movers” – about 63%). The problems are legal in about 7% of cases, but most of them are of a worse quality compared to the original problem. Only 0.32% of the cases are problems with a better score. ICGA Journal 14 50 improved 0.32% 46 45 not legal by chess rules 29.76% number of problems score less 6.69% March 2006 40 37 35 31 30 original 24 25 15 new 18 20 13 11 10 5 6 2 0 0 <0 not 2-mover 63.23% Figure 3: Distribution of transformed new positions for all levels. 0-50 50-100 100150 >150 scores Figure 4: Change in scores. Figure 4 presents the total change in scores from the original problems to the best scored problems. While 37 original problems have a score less than 50, only 11 improved problems have such a score. While only 57 original problems have a score greater than 50, there are 87 improved problems that have such a score. Tables 1 and 3 show that the more nodes are developed, the more improvements are found. Our goal is to find the best improvements (if they exist). The chance to find a better improvement grows with the number of generated nodes. However, the growth is not linear (see percentages in Table 3). It must be pointed out that the quality of a new problem does not depend linearly on a number of applied transformations. The problem mentioned in Diagram 4 has changed to the improved problem presented in Diagram 5 by using three transformations. If we use only one or two transformations from this set of three, the positions are even not legal! That is why the use of a hill-climbing search by ICP failed. ICP cannot deal with newly generated problems which are even not 2-movers. # of problems # of improvements Total # of improvements 1-level 2-level 3-level 5 371 24,356 24,732 Average # of nodes 7 554 39,803 Deviation (nodes) 40,332 improvements/nodes per level 1.52% 0.56% 0.32% improved/generated Table 3: Number of all generated improvements by CHESS COMPOSER for all 100 original problems. On average, each problem was enriched by additions either in thematic variants (see Figure 5) or by an additional theme (see Figure 6). Almost half of the problems (48) faced a significant improvement because additional themes were added (see Figure 6). Two problems faced a reduction in one theme. The explanation is that in these problems there are thematic duals and triples, which are regarded as penalties. The CHESS COMPOSER’s evaluation function found new problems with no duals at the cost of a decrease in themes. A Chess Composer of Two-Move Mate Problems 15 1.60 n u m b er o f th em atic varian ts 1.44 1.40 1.31 1.20 1.00 0.88 0.76 0.80 0.50 0.50 0.41 0.60 0.43 0.40 0.20 original 0.67 0.62 0.24 0.23 0.03 0.02 new 0.51 0.24 0.10 0.09 0.02 0.02 0.01 0.01 gr im s se h a w lf p i se n n in lf b g lo c kin un p g d ir in n ing ec ind t ba ire t te ry ct ba tt e r te y m ha po lf pi nn kin in g- g fli lon g hts el yk p ic i ng ka ni ny 0.00 Figure 5: Average growing in themes. Figure 7 shows that there is an increase in the number of pieces at 87 improved problems. Generally, due to the minimalism principle, the “dressing of the board” reduces the quality of the problem in modern chess composition (Harley, 1970). However, despite this fact, many meaningful improvements have been found. As shown in Table 3, a sequence of three transformations is the most frequent case. The same is right in the case of the best scored improvements (78 cases in Figure 8). However, in 41 problems just one piece was added (Figure 7). The explanation is as follows: Figure 8 shows that 45 improvements contain at least the following two transformations: “deletion of a piece” and “addition of a piece”. This sequence can represent either a “moving of a piece” or a “change of a piece to another piece”, or a combination of the change and the moving (see the transformations applied in HaCohen-Kerner et al. (1999)). Another finding, shown in Figure 8, is that an addition of a piece is the most contributing transformation. In Figure 9, we can see that, as expected, the time is decreasing as function of the number of pieces in the initial position. This is because the more pieces are on the board, the less free squares are left. Therefore, the “addition” transformation gives fewer possibilities. The decreasing line is not straight because of the other component: the already mentioned rule of chess composition. There can be no more than 1 Queen, 2 Rooks, 2 Bishops, 2 Knights, and 8 Pawns for each colour. Thus, as well as there are more pieces on the board, time needed to develop all positions becomes more problem-depended. Pieces on the board before and after improvement 50 45 44 40 31 30 20 10 11 2 6 # of improved problems # of improved problems Change in number of themes before and after improvement -1 0 1 2 30 25 20 15 9 10 2 5 0 3 -1 change in themes Figure 6: Almost half of the problems was enriched by additional themes. 37 35 5 0 41 40 Figure 7: problems. 0 1 change in pieces 2 3 Increase of the pieces in best-scored ICGA Journal 16 March 2006 50 best scored problems via transformation 45 38 40 37 40 35 time (hours) 35 25 20 15 10 2 3 4 del add deladd 20 15 2 1 0 Figure 8: 25 10 5 Transformations distribution. 24 22 20 18 16 14 12 0 10 add- del- add- trans- transadd add- add- add- deladd add add add 8 5 7 30 6 # of problem s 30 # of pieces Figure 9: pieces. Run-time as a function of the number of There are three problems that CHESS COMPOSER failed to improve, even after four transformations. Three other problems have been improved slightly only after four transformations. These 4-transformation improvements did not add themes. All these six problems have several common features: (1) they include various themes, (2) there are neither duals nor triples nor multiples, and (3) every (or almost every) variant is thematic. In other words, these problems are perfect (or almost perfect). 5. SUMMARY AND FUTURE WORK CHESS COMPOSER presents an ability of improving the quality of 97 of 100 known chess problems, composed by human composers. Most of the improvements were achieved after various sequences of three transformations (mainly three additions or a deletion with two additions), while the most contributing transformation was “an addition of a piece”. The successful sequences of transformations improved the quality of the problems by increasing the average number of themes, the average number of unique thematic variants, and the average proportional rate of the thematic variants. Some of the improvements are rather impressive, considering that most of the tested problems were composed by experienced composers. These new improved problems can be regarded as creative from the viewpoint of experts in chess composition because these problems are better and they are not too similar to the original problems. The main disadvantage of CHESS COMPOSER is its relative slowness. Therefore, we apply sequences of 3 and sometimes 4 transformations only. This is because we attempt to investigate all possible positions using a brute-force search method, while working with a very large branching factor. A possible first direction of future research is smart pruning of non contributing sub-trees (estimated as such by a heuristic). It may enable searching to deeper levels. A second direction may be improving the quality function, it might contribute also to such a pruning. A third possible research direction is the creation of problems from scratch. There are a few ways to generate random 2-movers. For instance, (1) searching for 2-movers in the databases generated by either Thompson (1986, 1996) or Nalimov et al. (2000), (2) in a similar way to Schlosser (1988, 1991) we can start from given mating positions, move backward 3 plies and check the possible positions for a creation of 2-movers. Then, CHESS COMPOSER can be applied to these 2-movers. It would be interesting to compare the quality of the problems generated this way to the quality of the problems generated from previous composed 2-movers. Finally, we remarkt that the current model can be extended to k-move (k > 2) mate problems. This extension will demand: (1) smart pruning and/or use of faster search algorithms and (2) extending the quality function based on the definitions of various special new themes dedicated to k-move problems, bonuses, and penalties, as it follows from Howard (1970). A Chess Composer of Two-Move Mate Problems 6. 17 ACKNOWLEDGEMENTS The authors would like to thank Josef Retter and Jean Haymann, both international masters of the FIDE for chess composition. They supplied us with relevant background information on the composition of chess problems. Thanks also to Yair Wiseman for helpful comments on the 64-bit representation and Olga Fainshtein for general comments. Finally, the three anonymous referees are gratefully recognized for their valuable comments. 7. REFERENCES Adelson-Velskiy, G. M., Arlazarov, V. L., Bitman, A. R., Zhitvotovskiy, A. A., and Uskov, A. V. (1970). Programming a Computer to play Chess. Russian Mathematical Survey, Vol. 25, pp. 221–262. Godbout, A. J. (2001). Echos du Nord, 256 Problèmes choisis de Johan Scheel. Éditions de l’Apprenti Sorcier. ISBN 0-9688828-6-2. HaCohen-Kerner, Y., Cohen, N. and Shasha, E. (1999). An Improver of Chess Problems. Cybernetics and Systems, Vol. 30, No. 5, pp. 441–465. Harley, B. (1970). Mate in Two Moves, Dover Publication, Inc., New York, NY. Hartmann, D. (1989). Notions of evaluation functions tested against grandmaster games. Advances in Computer Chess 5 (ed. D.F. Beal), pp. 91–141. North Holland Elsevier, Amsterdam, The Netherlands. ISBN 0444-87159-4. Haworth, G. (2003). Reference Fallible Endgame Play. ICGA Journal, Vol. 26, No. 2, pp. 81–91. ISSN 13896911. Haymann, J. (1988–1991). First Steps in Composition. A Series of Correspondences. Variantim: Bulletin of the Israeli Chess Composition Association. Heinz, E.A. (1997). How DARKTHOUGHT Plays Chess. ICCA Journal, Vol. 20, No 3, pp. 166–176. ISSN 0920234X. Heinz, E.A. (1999). Endgame Databases and Efficient Index Schemes. ICCA Journal, Vol. 22, No. 1, pp. 22– 32. ISSN 0920-234X. Howard, K. S. (1961). The Enjoyment of Chess Problems. Dover Publication, Inc., New York, NY. Howard, K. S. (1962). One Hundred Years of the American Two-Move Chess Problem. Dover Publication, Inc., New York, NY. Howard, K. S. (1970). Classic Chess Problems by Pioneer Composers. Dover Publication, Inc., New York, NY. Hyatt, R. M. (1999). Rotated Bitmaps, a New Twist on an Old Idea. ICCA Journal, Vol. 22, No. 4, pp. 213– 222. ISSN 0920-234X. Kerner (HaCohen-Kerner), Y. (1995). Learning Strategies for Explanation Patterns: Basic Game Patterns with Application to Chess. Case-Based Reasoning: Research and Development, Proceedings of the First International Conference, ICCBR-95 (eds. M. Keane, J. Haton and M. Manago). Lecture Notes in Artificial Intelligence 1010, pp. 491–500, Springer-Verlag, Berlin. ISSN 0302-9743. Korf, R. E. (1985). Depth-First Iterative-Deepening: An Optimal Admissible Tree Search. Artificial Intelligence, Vol. 27, No. 1, pp. 97–109. ISSN 0004-3702. 18 ICGA Journal March 2006 Nalimov, E. V., Haworth, G. McC., and Heinz E.A. (2000). Space-Efficient Indexing of Chess Endgame Tables. ICGA Journal, Vol. 23, No. 3, pp. 148–162. ISSN 1389-6911. Russell, S. and Norvig, P. (2002). Artificial Intelligence: A Modern Approach. Prentice Hall, 2nd Edition, Place. ISBN 0-13-790395-2. Schlosser, M. (1988). Computers and Chess-Problem Composition, ICCA Journal, Vol. 11, No. 4, pp. 151– 155. ISSN 0920-234X. Schlosser, M. (1991). Can a Computer Compose Chess Problems? Advances in Computer Chess 6 (ed. D.F.Beal), pp. 117–131. Ellis Horwood Ltd., Chichester, UK. ISBN 013-0065. Shannon, C. E. (1950). Programming a Computer for Playing Chess. Philosophical Magazine, Vol. 41, No. 7, pp. 256–277. Reprinted (1988) in Computer Chess (ed. D.n.L. Levy), pp. 81-88, Springer-Verlag, New York, N.Y. ISBN 0387-96496-7. Slate, D. J. and Atkin L. R. (1977). CHESS 4.5-The Northwestern University University Chess Program. Chess Skill in Man and Machine (ed. P.W. Frey), Springer-Verlag, New York, N.Y. 2nd ed., 1983, pp. 82–118. ISBN 0-387-90815-3. Reprinted (1988) in Computer Chess Compendium (ed. D.N.L. Levy), pp. 80–103. Batsford Ltd., Londen, UK. ISBN 0-7134-494-4. Tamplin, J. and Haworth, G. (2001). Ken Thompson’s 6-man Tables. ICGA Journal, Vol. 24, No. 2, pp. 83– 85. ISSN 1389-6911. Thompson, K. (1986). Retrograde analysis of certain endgames, ICCA Journal, Vol. 9, No. 3, pp.131–139. ISSN 0920-234X. Thompson, K. (1996). 6-Piece Endgames. ICCA Journal, Vol. 19, No. 4, pp. 215–226. ISSN 0920-234X. Thulin, A. (2000). John Thursby – Seventy-Five Chess Problems (1883), electronic edition*. Thulin, A. (2003). Frank Healey – 200 Chess Problems (1866), electronic edition*. Thulin, A. (2004). T.Taverner – Chess Problems Made Easy (1924), electronic edition*. Török, G. (2001). Karol Mlynka – 409 Selected Chess Problems. Éditions de l’Apprenti Sorcier. ISBN 09688828-7-0. Török, G. (2002). Zoltan Labai – Selected Compositions. Volume 1 (1968–1982). Éditions de l’Apprenti Sorcier. ISBN 0-9688828-9-7. Watanabe, H., Iida, H., Uiterwijk J. W. H. M. (2000). Automatic Composition of Shogi Mating Problems. Games in AI Research (eds. H.J. van den Herik and H. Iida), pp. 109–123, Institute for Knowledge and Agent Technology (IKAT), Universiteit Maastricht, The Netherlands. ISBN 90-621-6416-1. *) downloaded from http://www.algonet.se/~ath/. A Chess Composer of Two-Move Mate Problems 8. 19 APPENDICES Below we provide five appendices. They contain definitions (Appendix A), bonuses (Appendix B), penalties (Appendix C), evaluations (Appendix D), and 64-bit representation (Appendix E). Appendix A: Definitions of composition themes and their relative value in points # of theme Composition theme Tempo or Waiting move Direct battery 1 Definition The key move doesn't threat any mate move. A battery with a White piece in the middle of the battery where a battery is defined as follows: a piece is standing between a long-range piece (Queen, Rook or Bishop) and a King. Prepared battery is an 2 existent battery after the key move. Battery fires when the attacking piece in the battery mates. Indirect A battery to a square adjacent to the King’s square. It must be battery prepared and fired too. In addition, any other piece must not fire on 3 the suspected as fired by indirect battery square. King flights The key move does not decrease the number of square/s that the black 4 King can escape to (Howard, 1962). Lonely king Black has only a King. 5 Half-pinning Two Black pieces standing between a white long-range piece (Queen, Rook or Bishop) and a black King. Each of the two black pieces must 6 be a part of the self-blocking theme. Self-pinning The Black makes a move and pins one of his pieces. If there is a variant in which White mates and Black could prevent this mate by the 7 pinned piece, than it is self-pining variant. Unpin Black makes a move and unpins a white piece. The white piece must 8 opponent piece mate. Self-blocking A black piece blocks black’s King. When the black King is mated the 9 blocked square is not threatened by any white piece. Grimshaw Two black pieces which each one of them blocks the other’s line by mutually interfering on the same square and by that causes different 10 mate variations. The pieces are either sliding pieces or a jumping pawn. Pickaniny There are 4 variants for a black Pawn and each variant finishes with 11 different mate. This happens only on the seventh horizontal. Table 4: The values of composition themes. Value in points 10 15 25 15 2 25 15 20 25 45 25 Notes: 1) 2) 3) 4) 5) Only unique mates are counted. For the first unique thematic variant the full number of scores is given; for the rest just the fifth. Pin-related themes may be defined for opposite colour pieces (Harley, 1970; Howard, 1962). However, the most important themes were defined in the table consulting two international masters in chess composition. Thematic variants do not contain threats after the key move. Tempo, King flights, and lonely King are special themes without thematic variants. ICGA Journal 20 March 2006 Appendix B: Bonuses # of bonus 1 2 3 4 5 6 7 8 9 10 11 12 Feature Miniature Meredith black King is in the centre X pieces on board Key by King Mate move by King Key gives X more King-flights to Black Key enables Black to check White X more times Key pins a white piece Key unpins a black piece Key sacrifices a white piece X1, ..., X11 variation occurrences for themes # 1, ..., 11, respectively Mates’ value 13 30 for the first unique check, 6 for the rest (X-1) checks 3 * piece’s value 5 * piece’s value 5 * piece’s value First theme’s occurrence gives the full value in points of the theme. Each additional occurrence of the same theme in other variations adds only 1/5* full value. An exception is the theme “King-flights”. Each variation of it adds the full value of this theme. 2 10*(# of unique thematic mate moves) +3*(rest unique mates) # of variants Distance of the keymove 14 15 Bonus in points 10 5 10 3*(18-X) 15 20 for the first unique move, 4 for the rest 15*X Distance to/from the black King The distance is defined as a distance between start and end placement of the keymoved piece, as like it has been done by a queen (possibly in two moves). The formula is 3*(diagonal part)+2*(horizontal or vertical part). The difference in distances, in terms of 14, between the black King’s square and start and end squares of the keymove (if the result is positive). Table 5: The bonus of a feature. Appendix C: Penalties # of penalty 1 2 3 4 5 6 7 8 9 10 11 12 13 Feature Penalty in points X minor duals X minor triples X minor multiples black King is in the corner black King is in the edge Key is a check Key is a double check Key is a capture of a black piece Key is a promotion of a Pawn (unless it is the theme) Key takes X King-flights from Black Key pins a black piece Key unpins a white piece If Value of white pieces > Value of black pieces X 2*X 3*X 20 10 50 70 10 * piece’s value 5 * piece’s value Distance to/from the black King 14 15 Thematic non-single Table 6: The penalty of a feature. 15 * X 5 * piece’s value 3 * piece’s value 2 * (Value of white pieces -Value of black pieces). Values of pieces are according to Shannon (1950). The difference in distances, in terms of 14 in bonuses, between the black King’s square and start and end squares of the keymove (if the result is negative). 30 A Chess Composer of Two-Move Mate Problems 21 Appendix D: The result of the improvement process from Diagram 4 to Diagram 5 Problem of Diagram 4 White: Kd8 Qb5 Bb3 Pf4 The key move is: Qb5-c4 Black: kd6 ba8 pc7 ORIGINAL POSITION EVALUATION: THEMES: threat: Qc4:c7 selfblocks: 3 score: 35 (award is 25 for the first variant, 5 for the rest) grimshaw pairs: 1 score: 45 (award is 45 for each occurrence) ---------------------------------Total score for themes :---> 80 BONUSES: position size: miniature score: 10 pieces on the board: 7 score: 33 (award is due to 3*(18 - #pieces)) *** different thematic mates: 3, different nonthematic mates: 2, variants:9 score: 10 (price is due to (10*#diff thematic mates^2 + 3*other diff mates) / #variants) key-move distance: 3 (award is due to horizontals & verticals 2, diagonals 3 ) ---------------------------------Total score for bonuses :---> 56 PENALTIES: pieces value, white:13, black: 4 score: 18 (award is due to 2*(whites - blacks)) ---------------------------------Total score for penalties:---> 18 POSITION SCORE .........................:--->118 VARIANTS: 1) c7-c6 2) c7-c5 3) ba8-c6 4) ba8-d5 5-9) ba8-any else Qc4-d4 Qc4-e6 Qc4-b4 Qc4xd5 Qc4xc7 ± ± ± ± ± self-blocking; grimshaw self-blocking self-blocking; grimshaw Problem of Diagram 5 White: Kd8 Qb5 Bb3 Pf4 Pe3 The key move is: Qb5-c4 Black: kd6 ra7 ba8 pc7 pe4 IMPROVED POSITION EVALUATION: THEMES: tempo (waiting) score: 10 (award is 10) selfblocks: 3 score: 35 (award is 25 for the first variant, 5 for the rest) grimshaw pairs: 2 score: 90 (award is 45 for each occurrence) ---------------------------------Total score for themes :--->135 BONUSES: position size: meredith score: 5 pieces on the board: 10 score: 24 (award is due to 3*(18 - #pieces)) *** different thematic mates: 4, different nonthematic mates: 1, variants:12 score: 13 (award is due to (10*#diff thematic mates^2 + 3*other diff mates) / #variants) key-move distance: 3 (award is due to horizontals & verticals 2, diagonals 3 ) ---------------------------------Total score for bonuses :---> 45 PENALTIES: pieces value, White:14, Black:10 score: 8 (award is due to 2 * (whites - blacks)) ---------------------------------Total score for penalties:---> 8 POSITION SCORE ..............................:--->172 VARIANTS: 1) c7-c6 2) c7-c5 3) ba8-b7 4) ba8-c6 5) ba8-d5 6) ra7-b7 7-12) ra7-any else Qc4-d4 Qc4-e6 Qc4xc7 Qc4-b4 Qc4xd5 Qc4-d5 Qc4xc7 ± ± ± ± ± ± ± self-blocking; grimshaw self-blocking grimshaw self-blocking; grimshaw grimshaw IMPROVEMENT by addition of P on e3, addition of p on e4, addition of r on a7. Score: 118 -> 172, 45% ICGA Journal 22 March 2006 Appendix E: 64-bit representation Let us use the common denotations for the variables that represent the chess board in Table 7 and 8. Table 7 presents the primitives that are sufficient to store the whole position. In our program, the relationship between the board squares and its bits is as follows: a1, ..., h1, a2, ..., a7, ..., a8, ..., h8 where a1 is msb (bit number 63) and h8 is lsb (bit number 0). WP – White Pawns BP – Black Pawns WN – White kNights BK – Black kNights WR – White Rooks BK – Black Rooks WB – White Bishops BB – Black Bishops WQ – White Queens BQ – Black Queens WK – White King BK – Black King Table 7: Primitives for board representation. AW = WP | WN | WR | WB | WQ | WK - all white pieces AB = BP | BN | BR | BB | BQ | BK - all black pieces AP = AW | AB – all pieces NAP = ~AP – empty squares 1 – first horizontal a – vertical a 8 – eight horizontal h – vertical h ~1 – all but first horizontal ~a – all but vertical a ~8 – all but eight horizontal ~h – all but vertical h Table 8: Helpful variables. Using bitwise operations “|” (OR) and “~” (NOT), we can immediately get 4 helpful 64-bit variables. These are AW, AB, AP, and NAP (see Table 8). The rest helpful variables in Table 8 are pre-calculated 64-bit words. “1” and “8” mean a 64-bit word in which bits are on the first and the eights horizontal respectively; bits are off on other horizontals. a and h are the same for verticals. By “~” before a number or before a letter n we mean another 64-bit word which is bitwise operation “not” on the n (also pre-calculated). Using primitives from Table 7 and helpful variables from Table 8, in addition to other bitwise operations “<<” (shift left), “>>” (shift right), and “&” (AND), we can easily get all Pawns moves and captures (see Table 9). For example, all Pawns' captures to the left, clPW, we get by ANDing all white Pawns, WP, with the negotiation of the vertical a, ~a, shifting the result one vertical left and ANDing again with all pieces of black (see line 5 in the Table 9). Pawns Pawns' moves Pawns moves, no promotion Pawns jumps Pawns captures to the left Pawns captures to the right Pawns captures to the left, no promotion Pawns captures to the right, no promotion Pawns moves, with promotion Pawns captures to the left with promotion Pawns captures to the right with promotion Enpassant White Black mPW = (WP >> 8) & NAP mPW~8 = mPW & ~8 jPW = (mPW >> 8) & NAP clPW = ((WP & ~a) >> 7) & AB crPW = ((WP & ~h) >> 9) & AB clPW~8 = clPW & ~8 mPB = (BP << 8) & NAP mPB~1 = mPB & ~1 jPB = (mPB << 8) & NAP clPB = ((BP & ~a) << 9) & AW crPB = ((BP & ~h) << 7) & AW clPB~8 = clPB & ~1 crPW~8 = crPW & ~8 crPB~8 = crPB & ~1 mPW+8 = mPW & 8 clPW+8 = clPW & 8 mPB+1 = mPB & 1 clPB+1 = clPB & 1 crPW+8 = crPW & 8 crPB+1 = crPB & 1 Special case Special case Table 9: Pawn moves and captures. We distinguish between “captures” and “regular” moves. This is because when a piece “captures”, it influence the opposite side too. The promotion to the eight horizontal (or the first for Black) is also a special case. This is because 4 new positions (a Pawn can be promoted to 4 other kinds of pieces) are created instead of one in regular move. A different approach is used for Knights and Kings (see Table 10). To obtain all legal moves and captures we use masks, maskN for Knights and maskK for Kings. The colour in this case makes no difference. Masks are arrays of size 64 of 64-bit words. Each mask represents moves of a piece. A 64-bit word on index n of an array means all moves of the piece if it would be on the square n. To be able to use masks, we use a λ (bitword) function that returns the number of the least significant bit that is on. One of the possible implementations of λ is using of look-up tables. However, on some platforms there is a A Chess Composer of Two-Move Mate Problems 23 faster way to calculate λ. For example, on Intel Pentiums and Amd64 processors there is a special instruction bsf which is faster than the use of look-up tables. The disadvantage of the look up tables is their memory space consuming. So, the whole table will not fit in the cache and thus the use of it can be potentially slow. On architectures without this special instruction the code shown in Table 11 can be used instead of look up tables. All Knight moves amWN = maskN[λ (WN)] Knight moves mWN = amWN & NAP Knight captures cWN = amWN & AB All King moves amWK = maskK[λ (WK)] King moves mWK = amWK & NAP King moves cWK = amWK & AB Table 10: Use of masks for Knights and Kings. amBN = maskN[λ (BN)] mBN = amBN & NAP cBN = amBN & AB amBK = maskK[λ (BK)] mBK = amBK & NAP cBK = amBK & AB The idea is simple: lsb_bit gives the nearest to the lsb bit which is on. The number which has just 1 bit on is a power of some number. So we just find the binary logarithm. ‘ilogb’ is a relatively fast function. typedef unsigned long long uINT64; typedef long long INT64; inline int λ(const uINT64 a){ return (0==a)?64:ilogb(lsb_bit(a)); } typedef unsigned long long uINT64; typedef long long INT64; inline int µ(const uINT64 a){ return (0==a)?64:ilogb(a); } Where lsb_bit is defined as: inline uINT64 lsb_bit(const uINT64 a){ return a & -(INT64)a; } Table 11: Possible code for functions λ and µ. Sliding pieces are carried out differently. The reason is the ability of existing of a piece on the way of sliding. So, in addition to pre-calculated masks in the sliding direction (“rays” in Table 12), we need to cut all squares behind the blocking piece. The solution for down and up directions in case of white rooks is shown on Table 12. µ (bitword) is the number of the most significant bit that is on. Similar to λ, there are architectures with the special instruction bsr for µ. For the architectures without it, the code shown on Table 11 can be used. For each white Rook Dr = down_ray(λ(WR); ur = up_ray( λ (WR); rm = rankMoves[λ(WR)][(char)(AP >> number of rank)] mR = dr & ((lsb_bit(dr & AP) << 1) – 1) Moves down Moves up mR |= ur ^ up_ray[µ(ur & AP)] mR |= rm Moves left & right jmR = mR & NAP just moves jcR = mR & AB just captures Table 12: Moves and captures by sliding pieces on example of white Rooks. Rooks Masks For the left and right directions, the placement of a Rook and all other pieces on the Rook’s horizontal determine all moves of the Rook. So, we can pre-calculate all possible situations and to store them into 2demantions array (rankMoves[64][256]) similar to Heinz (1997) and Hyatt (1999). In addition to left-right directions, they also pre-calculate all other three pairs of directions for all sliding pieces. In purpose to use these pre-calculations, Heinz and Hyatt use so-called rotated and flipped bitboards. The disadvantage of the method is managing of additional bitboards. We have no use of flipped and rotated bitboards. Black Rooks are carried out the same as white Rooks. We obtain Bishop moves and captures in the same way as for Rook, but using 4 diagonal rays instead of vertical and horizontal ones. Queen moves are obtained by the same procedure as for Bishops and Rooks together. Using the same technique as for Queens in addition to Knights, we determine whether a King is still under attack and thus, the position is illegal. In this way, we cancel illegal positions fast. Using the same method, we check the “cannot castle” issue for 5 squares for each colour: c1, d1, e1, f1, g1 for White and c8, d8, e8, f8, g8 for Black. In addition, we must remember if a castling King or a Rook moved in the past. As in the case of en-passant capture, the cost is an addition of a word to the position structure (see Table 7).