This is a temporary, read-only recovery of the chessprogrammingwiki while a longer-term plan is worked out. Editing is not possible right now, but will be again soon.
Chess Programming Wiki All pages Other namespaces

Floyd

Home * Engines * Floyd

Hurricane Floyd 1Hurricane Floyd 1


  1. 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,
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.

Contents
  1. Description
    1. Board Representation
    2. Search
    3. Evaluation
    4. Misc
  2. See also
  3. Forum Posts
  4. External Links
    1. Chess Engine
    2. Misc
  5. References

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 3 . 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.

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 4 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 5 , i.e. for automated tuning 6 . It generates a compact KPK tablebase to deal with perfect knowledge, also available as stand alone project 7 8 .

See also

Forum Posts

Chess Engine

Misc

Watch on YouTube

References

Up one Level


  1. Floyd 0.5 released by Marcel van Kervinck, CCC, October 11, 2015↩︎

  2. floyd/LICENSE at master · kervinck/floyd · GitHub↩︎

  3. floyd/geometry.h at master · kervinck/floyd · GitHub↩︎

  4. floyd/drawModel.txt at master · kervinck/floyd · GitHub↩︎

  5. floyd/README.md at master · kervinck/floyd · GitHub↩︎

  6. floyd/tune.py at master · kervinck/floyd · GitHub↩︎

  7. Yet another KPK endgame table generator: pfkpk by Marcel van Kervinck, CCC, September 05, 2015↩︎

  8. kervinck/pfkpk · GitHub↩︎

Categories: Open Source · UCI · Disaster · Meteorology · Pink Floyd

What links here

Contributors: GerdIsenberg.