The aim of the thesis was to develop a computer program to help creating and dealing with interesting chess problems. Chess problem, also called a chess composition, is a puzzle on a chessboard, which represents a task to be solved. Task usually requires moving the chess pieces on the chessboard using classic chess rules and is not necessarily related to checkmating the opponent. We know several types of chess problems: directmates, helpmates, selfmates, serialmovers, chess studies, retrograde analysis etc. We can set additional requirements to a player, for instance prescribed last move of the figure to checkmate the opponent. Special type of chess problems are construction tasks, that may be without diagram and typically contain just a task such as ``set a certain position`` or ``construct a game with certain properties``. For example, an interesting construction task would be to construct the shortest game of chess ending with checkmating opponent with a pawn, which was just promoted to a knight. Such problems may be of an interest not only for chess players, but also for the general public, as they require only knowledge of basic chess rules.
Chess is a very demanding game in terms of complexity, which means that many different options are available for every chess piece movement. Consequently, in successive moves number of possible combinations can be enormous. For illustration: from starting chess position we can finish a four-move game (four moves by each player) in almost 85 billion different combinations. This combinatorial explosion is the major reason that chess problems and especially construction tasks can be extremely difficult - not only for humans but also for modern computers. We can easily verify with computer that brute force search will not bring results. Smarter approach respectively the introduction of artificial intelligence algorithms is needed.
Within the thesis we have developed a computer program by which a computer can overcome this combinatorial complexity and can be used to solve a variety of unusual chess problems, particularly construction tasks. The program is based on the use of heuristic search and advanced heuristics, whose task is to guide the search towards a given goal. We used additional mechanisms, such as hash tables, possibility to deactivate chess pieces and search for several solutions at the same time, to cope with the combinatorial explosion. In addition to solving of already known problems, the program, which is available online in the open source version and therefore to the general public, can also serve as a tool to discover new interesting chess compositions.
|