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 [1] with a permissive license [2] . 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.
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 [4] . It uses an attack table, for each side an array of 64 bytes, with following one- or two-bit attack counters per square ...
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)
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 [1] with a permissive license [2] . 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.
Table of Contents
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 [4] . It uses an attack table, for each side an array of 64 bytes, with following one- or two-bit attack counters per square ...+-----+-----+-----+-----+-----+-----+-----+-----+ | Pawns | Minors | Rooks |Queen|King | +-----+-----+-----+-----+-----+-----+-----+-----+ 7..6 5..4 3..2 1 0... as used in move generation, SEE and evaluation.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 [5] 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 [6] , i.e. for automated tuning [7] . It generates a compact KPK tablebase to deal with perfect knowledge, also available as stand alone project [8] [9] .See also
Forum Posts
External Links
Chess Engine
Misc
References
What links here?
Up one Level