Changes

Jump to: navigation, search

Floyd

6,646 bytes added, 22:13, 18 June 2018
Created page with "'''Home * Engines * Floyd''' FILE:Hurricane Floyd 14 sept 1999 2030Z.jpg|border|right|thumb|Hurricane Floyd <ref>Hurricane Floyd near peak intensity on Se..."
'''[[Main Page|Home]] * [[Engines]] * Floyd'''

[[FILE:Hurricane Floyd 14 sept 1999 2030Z.jpg|border|right|thumb|Hurricane Floyd <ref>Hurricane Floyd near peak intensity on September 14, 1999 at 2030 UTC. This image was produced from data from [https://en.wikipedia.org/wiki/Television_Infrared_Observation_Satellite#Advanced_TIROS-N NOAA-14], provided by [https://en.wikipedia.org/wiki/National_Oceanic_and_Atmospheric_Administration NOAA], [https://en.wikipedia.org/wiki/Wikimedia_Commons Wikimedia Commons], [https://en.wikipedia.org/wiki/Hurricane_Floyd Hurricane Floyd from Wikipedia]</ref> ]]

'''Floyd''',<br/>
an [[UCI]] compliant [[Open Source Engines|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=
==Board Representation==
Floyd uses an [[8x8 Board]], agnostic to [[Square Mapping Considerations|square indexing]], in the sense that it can be adapted to any of the eight possible board geometries with just a local change <ref>[https://github.com/kervinck/floyd/blob/master/Source/geometry.h floyd/geometry.h at master · kervinck/floyd · GitHub]</ref> . It uses an [[Attack and Defend Maps|attack table]], for each side an array of 64 [[Byte|bytes]], with following one- or two-bit attack counters per square ...
<pre>
+-----+-----+-----+-----+-----+-----+-----+-----+
| Pawns | Minors | Rooks |Queen|King |
+-----+-----+-----+-----+-----+-----+-----+-----+
7..6 5..4 3..2 1 0
</pre>
... as used in [[Move Generation|move generation]], [[Static Exchange Evaluation|SEE]] and [[Evaluation|evaluation]].

==Search==
The [[Search|search]] is a classical [[Principal Variation Search|PVS]] [[Iterative Deepening|iterative deepening]] approach with [[Zobrist Hashing|Zobrist key]] [[Transposition Table|transposition table]], [[Quiescence Search|quiescence search]], [[Null Move Pruning|null move pruning]] and [[Mate Distance Pruning|mate distance pruning]]. [[Move Ordering|Move ordering]] considers [[Static Exchange Evaluation|SEE]] and a simple [[Killer Heuristic|killer heuristic]].

==Evaluation==
Floyd's [[Evaluation|evaluation]] employs a vector of feature and weight pairs to calculate a [[Score|score]] as [https://en.wikipedia.org/wiki/Weighted_sum_model weighted sum]. In conjunction with a draw model <ref>[https://github.com/kervinck/floyd/blob/master/Docs/drawModel.txt floyd/drawModel.txt at master · kervinck/floyd · GitHub]</ref> using [https://en.wikipedia.org/wiki/Sigmoid_function sigmoid functions], the score is mapped to [[Pawn Advantage, Win Percentage, and ELO|winning probabilities]], suited for [[Automated Tuning#LogisticRegression|logistic regression]] tuning.
<pre>
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)
</pre>

==Misc==
Floyd provides a [[Python]] [https://en.wikipedia.org/wiki/Application_programming_interface API] for search and evaluation functions <ref>[https://github.com/kervinck/floyd/blob/master/README.md floyd/README.md at master · kervinck/floyd · GitHub]</ref> , i.e. for [[Automated Tuning|automated tuning]] <ref>[https://github.com/kervinck/floyd/blob/master/Tools/tune.py floyd/tune.py at master · kervinck/floyd · GitHub]</ref> . It generates a compact [[KPK]] [[Endgame Tablebases|tablebase]] to deal with [[Knowledge#PerfectKnowledge|perfect knowledge]], also available as stand alone project <ref>[http://www.talkchess.com/forum/viewtopic.php?t=57517 Yet another KPK endgame table generator: pfkpk] by [[Marcel van Kervinck]], [[CCC]], September 05, 2015</ref> <ref>[https://github.com/kervinck/pfkpk kervinck/pfkpk · GitHub]</ref> .

=See also=
* [[Mathematician#RWFloyd|Mathematician - Robert W. Floyd (1936 - 2001)]]
* [[Various Classifications#Meteorology|Meteorology]]
* [[MSCP]]
* [[Rookie]]

=Forum Posts=
* [http://www.talkchess.com/forum/viewtopic.php?t=57913 Floyd 0.5 released] by [[Marcel van Kervinck]], [[CCC]], October 11, 2015
* [http://www.talkchess.com/forum/viewtopic.php?t=57973 Floyd 0.6 released] by [[Marcel van Kervinck]], [[CCC]], October 17, 2015
* [http://www.talkchess.com/forum/viewtopic.php?t=58259 Floyd 0.7 released] by [[Marcel van Kervinck]], [[CCC]], November 15, 2015
* [http://www.talkchess.com/forum/viewtopic.php?t=59695 Floyd 0.8 released] by [[Marcel van Kervinck]], [[CCC]], March 31, 2016
* [http://www.open-chess.org/viewtopic.php?f=3&t=3005 Floyd 0.9 released] by [[Marcel van Kervinck]], [[Computer Chess Forums|OpenChess Forum]], August 20, 2016

=External Links=
==Chess Engine==
* [https://github.com/kervinck/floyd kervinck/floyd · GitHub]
* [https://marcelk.net/floyd/ Download page - Floyd chess engine - /etc/marcelk]
* [http://www.computerchess.org.uk/ccrl/404/cgi/engine_details.cgi?print=Details&each_game=1&eng=Floyd%200.7%2064-bit#Floyd_0_7_64-bit Floyd 0.6 64-bit] in [[CCRL|CCRL 40/4]]
==Misc==
* [https://en.wikipedia.org/wiki/Floyd Floyd from Wikipedia]
* [https://en.wikipedia.org/wiki/Hurricane_Floyd Hurricane Floyd from Wikipedia]
* [https://en.wikipedia.org/wiki/Robert_W._Floyd Robert W. Floyd from Wikipedia]
* [https://en.wikipedia.org/wiki/Cycle_detection#Tortoise_and_hare Floyd's cycle-finding algorithm from Wikipedia]
* [https://en.wikipedia.org/wiki/Hoare_logic Floyd–Hoare logic from Wikipedia]
* [https://en.wikipedia.org/wiki/Floyd%E2%80%93Steinberg_dithering Floyd–Steinberg dithering from Wikipedia]
* [https://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm Floyd–Warshall algorithm from Wikipedia]
* [[Videos#PinkFloyd|Pink Floyd]] - [https://en.wikipedia.org/wiki/High_Hopes_%28Pink_Floyd_song%29 High Hopes], [https://en.wikipedia.org/wiki/The_Division_Bell The Division Bell], 1994, [https://en.wikipedia.org/wiki/YouTube YouTube] Video
: {{#evu:https://www.youtube.com/watch?v=7jMlFXouPk8|alignment=left|valignment=top}}

=References=
<references />

'''[[Engines|Up one Level]]'''

Navigation menu