Difference between revisions of "Floyd"

From Chessprogramming wiki
Jump to: navigation, search
(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...")
 
 
(4 intermediate revisions by the same user not shown)
Line 4: Line 4:
  
 
'''Floyd''',<br/>
 
'''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.  
+
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=  
Line 21: Line 21:
  
 
==Evaluation==  
 
==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.
+
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>
 
<pre>
 
def evaluate(board, wiloVector, drawVector):
 
def evaluate(board, wiloVector, drawVector):
Line 37: Line 37:
 
=See also=  
 
=See also=  
 
* [[Mathematician#RWFloyd|Mathematician - Robert W. Floyd (1936 - 2001)]]
 
* [[Mathematician#RWFloyd|Mathematician - Robert W. Floyd (1936 - 2001)]]
* [[Various Classifications#Meteorology|Meteorology]]
 
 
* [[MSCP]]
 
* [[MSCP]]
 
* [[Rookie]]
 
* [[Rookie]]
Line 61: Line 60:
 
* [https://en.wikipedia.org/wiki/Floyd%E2%80%93Steinberg_dithering Floyd–Steinberg dithering 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]
 
* [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
+
* [[:Category:Pink Floyd|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}}
 
: {{#evu:https://www.youtube.com/watch?v=7jMlFXouPk8|alignment=left|valignment=top}}
  
Line 68: Line 67:
  
 
'''[[Engines|Up one Level]]'''
 
'''[[Engines|Up one Level]]'''
 +
[[Category:Open Source]]
 +
[[Category:UCI]]
 +
[[Category:Disaster]]
 +
[[Category:Meteorology]]
 +
[[Category:Pink Floyd]]

Latest revision as of 11:35, 7 December 2019

Home * Engines * Floyd

Hurricane Floyd [1]

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.

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

Up one Level