Difference between revisions of "Floyd"
GerdIsenberg (talk | contribs) |
GerdIsenberg (talk | contribs) |
||
Line 4: | Line 4: | ||
'''Floyd''',<br/> | '''Floyd''',<br/> | ||
− | an [[UCI]] compliant [[Open Source | + | an [[UCI]] compliant [[:Category:Open Source|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 <ref>[http://www.talkchess.com/forum/viewtopic.php?t=57913 Floyd 0.5 released] by [[Marcel van Kervinck]], [[CCC]], October 11, 2015</ref> with a permissive license <ref>[https://github.com/kervinck/floyd/blob/master/LICENSE floyd/LICENSE at master · kervinck/floyd · GitHub]</ref> . 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= | =Description= |
Revision as of 13:41, 26 June 2018
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 [2] with a permissive license [3] . 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.
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
- 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
- ↑ Hurricane Floyd near peak intensity on September 14, 1999 at 2030 UTC. This image was produced from data from NOAA-14, provided by NOAA, Wikimedia Commons, Hurricane Floyd from Wikipedia
- ↑ Floyd 0.5 released by Marcel van Kervinck, CCC, October 11, 2015
- ↑ floyd/LICENSE at master · kervinck/floyd · GitHub
- ↑ floyd/geometry.h at master · kervinck/floyd · GitHub
- ↑ floyd/drawModel.txt at master · kervinck/floyd · GitHub
- ↑ floyd/README.md at master · kervinck/floyd · GitHub
- ↑ floyd/tune.py at master · kervinck/floyd · GitHub
- ↑ Yet another KPK endgame table generator: pfkpk by Marcel van Kervinck, CCC, September 05, 2015
- ↑ kervinck/pfkpk · GitHub