FUSCsharp
FUSc#,
was an experimental research open source chess engine [1], developed since 2002 by a AI-Game Programming Group at the Free University of Berlin, headed by Raúl Rojas.
As the name suggests, FUSc# was written in C#. Compliant to the UCI protocol, it was able to play online. FUSc# was subject of research on temporal difference learning using TD-Leaf(λ), as elaborated in Marco Block's thesis [2].
Contents
Description
Board Representation
While FUSc# originally had an 0x88 board representation, it gained some speed up by using rotated bitboards [3].
Search
- Iterative Deepening
- Aspiration Windows
- Alpha-Beta
- Principal Variation Search
- Iterative Search (at times) [5]
- Transposition Table
- Move Ordering
- Selectivity
Evaluation
FUSc# classifies middlegame positions into 32 types considering king placement (k-wing, q-wing, and center) and whether queens are still on the board - addressing king safety issues [6]. Along with one endgame type - 33 types in total, each type has a vector of 1706 positional coefficients (point values, piece-square tables, pawn structure) associated - in total 56298 coefficients, adapted by TD-Leaf(λ). While a strength improvement of more than 350 rating points after 119 training games on a chess server was reported, this classification scheme of 33 distinct evaluation functions may be diminished due to type transitions with possible evaluation discontinuity.
See also
Publications
- Marco Block (2004). Verwendung von Temporale-Differenz-Methoden im Schachmotor FUSc#. Diplomarbeit, Betreuer: Raúl Rojas, Free University of Berlin, pdf (German)
- Marco Block, André Rauschenbach, Johannes Buchner, Frank Jeschke, Raúl Rojas (2005). Das Schachprojekt FUSc#". Technical Report B-05-21, pdf, Free University of Berlin (German)
- Johannes Buchner (2005). Rotated bitboards in FUSc#. Free University of Berlin, pdf
- Johannes Buchner (2005). Theory and practical strategies for efficient alpha-beta-searches in computer chess. Bachelor thesis, Advisor: Raúl Rojas, Free University of Berlin, pdf
- Marco Block, Maro Bader, Ernesto Tapia, Marte Ramírez, Ketill Gunnarsson, Erik Cuevas, Daniel Zaldivar, Raúl Rojas (2008). Using Reinforcement Learning in Chess Engines. Concibe Science 2008, Research in Computing Science: Special Issue in Electronics and Biomedical Engineering, Computer Science and Informatics, Vol. 35, pdf
External Links
- FUSc# - AG Schachprogrammierung FUSC# april 2005 FUSC# project group (slides)
- Refubium - Das Schachprojekt FUSc#
- FuschICS < Main < Wiki
References
- ↑ as of October 2018, source code seems no longer available, the project outdated and abondended
- ↑ Marco Block (2004). Verwendung von Temporale-Differenz-Methoden im Schachmotor FUSc#. Diplomarbeit, Betreuer: Prof. Dr. Raúl Rojas, Free University of Berlin, pdf (German)
- ↑ Johannes Buchner (2005). Rotated bitboards in FUSc#. Free University of Berlin, pdf
- ↑ Search details based on Johannes Buchner (2005). Theory and practical strategies for efficient alpha-beta-searches in computer chess. Bachelor thesis, Advisor: Raúl Rojas, Free University of Berlin, pdf
- ↑ an iterative alpha-beta matrix version gave a promising performance boost, bought by a huge degree of code complexity, see Marco Block, André Rauschenbach, Johannes Buchner, Frank Jeschke, Raúl Rojas (2005). Das Schachprojekt FUSc#". Technical Report B-05-21, pdf, Free University of Berlin (German)
- ↑ Marco Block, Maro Bader, Ernesto Tapia, Marte Ramírez, Ketill Gunnarsson, Erik Cuevas, Daniel Zaldivar, Raúl Rojas (2008). Using Reinforcement Learning in Chess Engines. Concibe Science 2008, Research in Computing Science: Special Issue in Electronics and Biomedical Engineering, Computer Science and Informatics, Vol. 35, pdf