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. || toc =Description=
 * Home * Engines * Floyd**
 * [[image:240px-Hurricane_Floyd_14_sept_1999_2030Z.jpg link="https://commons.wikimedia.org/wiki/File:Hurricane_Floyd_14_sept_1999_2030Z.jpg"]] ||~  || **Floyd**,
 * Hurricane Floyd ||~  ||^   ||

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 ... code +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+    7..6        5..4        3..2      1     0 code ... 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. code 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) code

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)
 * Meteorology
 * 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
> media type="youtube" key="7jMlFXouPk8" width="560" height="315"
 * [|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= =What links here?= include page="Floyd" component="backlinks" limit="40"
 * Up one Level**