Floyd

Home * Engines * Floyd



Floyd, an UCI compliant open source chess engine for study purposes and prototyping of new ideas by Marcel van Kervinck, written in C, and first released in October 2015 with a permissive license. Floyd can be build to run under Windows, Linux and Mac OS. Floyd had its over the board tournament debut at the IGT 2016 with a 50% score.

=Description=

Board Representation
Floyd uses an 8x8 Board, agnostic to square indexing, in the sense that it can be adapted to any of the eight possible board geometries with just a local change. It uses an attack table, for each side an array of 64 bytes, with following one- or two-bit attack counters per square ... +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+    7..6        5..4        3..2      1     0 ... as used in move generation, SEE and evaluation.
 * Pawns  |   Minors  |   Rooks   |Queen|King |

Search
The search is a classical PVS iterative deepening approach with Zobrist key transposition table, quiescence search, null move pruning and mate distance pruning. Move ordering considers SEE and a simple killer heuristic.

Evaluation
Floyd's evaluation employs a vector of feature and weight pairs to calculate a score as weighted sum. In conjunction with a draw model using sigmoid functions, the score is mapped to winning probabilities, suited for logistic regression tuning. def evaluate(board, wiloVector, drawVector): wiloScore = ...snip... // a weighted sum of board features drawScore = ...snip... // another weighted sum of board features

return sigmoid(drawScore) * 0.5 + sigmoid(wiloScore) - sigmoid(wiloScore) * sigmoid(drawScore)

Misc
Floyd provides a Python API for search and evaluation functions, i.e. for automated tuning. It generates a compact KPK tablebase to deal with perfect knowledge, also available as stand alone project.

=See also=
 * Mathematician - Robert W. Floyd (1936 - 2001)
 * MSCP
 * Rookie

=Forum Posts=
 * Floyd 0.5 released by Marcel van Kervinck, CCC, October 11, 2015
 * Floyd 0.6 released by Marcel van Kervinck, CCC, October 17, 2015
 * Floyd 0.7 released by Marcel van Kervinck, CCC, November 15, 2015
 * Floyd 0.8 released by Marcel van Kervinck, CCC, March 31, 2016
 * Floyd 0.9 released by Marcel van Kervinck, OpenChess Forum, August 20, 2016

=External Links=

Chess Engine

 * kervinck/floyd · GitHub
 * Download page - Floyd chess engine - /etc/marcelk
 * Floyd 0.6 64-bit in CCRL 40/4

Misc

 * Floyd from Wikipedia
 * Hurricane Floyd from Wikipedia
 * Robert W. Floyd from Wikipedia
 * Floyd's cycle-finding algorithm from Wikipedia
 * Floyd–Hoare logic from Wikipedia
 * Floyd–Steinberg dithering from Wikipedia
 * Floyd–Warshall algorithm from Wikipedia
 * Pink Floyd - High Hopes, The Division Bell, 1994, YouTube Video

=References=

Up one Level