Goldfish - Stockfish's very distant and not so bright cousin - a UCI chess engine
MIT License
Bot releases are visible (Hide)
Published by bsamseth about 1 month ago
Change from using the Simple Evaluation Function to PeSTO's Evaluation Function. This really doesn't introduce meaningfully more complexity, but provides several benefits.
The new table values are less symmetric, more specialized and all pieces have both middle game and end game values. The two are joined using tapered evaluation with a phase estimate. All this provides much better understanding, as well as more distinct scores which is good for getting more cutoffs.
All in all, this was measured to be about 200 ELO, a massive improvement for such little effort. Further optimization of the values for Goldfish specifically is possible, which might yield some minor improvements.
Published by github-actions[bot] about 2 months ago
Full Changelog: https://github.com/bsamseth/Goldfish/compare/v2.0.0...v2.0.1
Published by bsamseth about 2 months ago
Everything rewritten, most things ported over from v1.13, and a few additions.
About ~120 ELO stronger than v1.13. The following shows results from testing. Stockfish 14.1 (SN)
(Skill level N) is there for reference, and v1.13 is pinned at it's CCRL rating.
# PLAYER : RATING POINTS PLAYED (%)
1 Stockfish 14.1 (S5) : 2171.5 131.5 221 59.5%
2 Goldfish v2.0.0 : 2104.2 1086.0 1819 59.7%
4 Goldfish v1.13.0 : 1983.0 1348.0 2622 51.4%
5 Stockfish 14.1 (S4) : 1973.5 63.5 214 29.7%
Full Changelog: https://github.com/bsamseth/Goldfish/compare/v1.13.0...v2.0.0
Published by bsamseth over 5 years ago
Published by bsamseth over 5 years ago
Published by bsamseth over 5 years ago
Published by bsamseth over 5 years ago
Published by bsamseth over 5 years ago
Published by bsamseth almost 6 years ago
Implement a version of NegaScout instead of normal PVS. Slightly more cutoffs, based on the assumption of no search instability.
Also included is the use of ttable in quiescence search.
Published by bsamseth almost 6 years ago
Massive speed boost.
Total time (ms) : 6192
Nodes searched : 7000990
Nodes/second : 1130651
Total time (ms) : 11530
Nodes searched : 11924519
Nodes/second : 1034217
# PLAYER : RATING POINTS PLAYED (%)
1 Goldfish v1.7.0 : 2243.5 173.0 300 58
2 Goldfish v1.6.0 : 2215.3 360.0 650 55
3 Goldfish v1.5.1 : 2162.6 423.5 900 47
4 Goldfish v1.5 : 2151.8 516.5 1075 48
5 Goldfish v1.4 : 2147.7 453.0 900 50
6 Goldfish v1.3 : 2130.5 133.0 255 52
7 Goldfish v1.2 : 2097.5 74.5 160 47
8 Goldfish v1.1 : 2055.3 70.0 162 43
9 Goldfish v1.0 : 2000.0 13.5 32 42
1) Goldfish v1.7.0 2243.5 : 300 (+87,=172,-41), 57.7 %
vs. : games ( +, =, -), (%) : Diff
Goldfish v1.6.0 : 150 ( 46, 78, 26), 56.7 : +28.2
Goldfish v1.5.1 : 150 ( 41, 94, 15), 58.7 : +80.9
Published by bsamseth almost 6 years ago
If a move from ttable is available, regardless of depth
requirement, we search this first in the hopes that this will
cause more cutoffs.
Makes a huge impact on bench score. Very slightly lower nodes/second,
but speed is reduced by ~50%. About ~50 ELO improvement.
Average of 3 bench results on MacBook Air 2015:
Total time (ms) : 11530
Nodes searched : 11924519
Nodes/second : 1034217
Total time (ms) : 21660
Nodes searched : 23289650
Nodes/second : 1075221
Goldfish v1.6.0 2219.1 : 786 (+191,=477,-118), 54.6 %
vs. : games ( +, =, -), (%) : Diff
Goldfish v1.5.1 : 260 ( 66, 162, 32), 56.5 : +50.0
Goldfish v1.5 : 260 ( 77, 163, 20), 61.0 : +60.2
Goldfish v1.4 : 10 ( 1, 8, 1), 50.0 : +65.3
Goldfish v1.3 : 10 ( 1, 8, 1), 50.0 : +88.1
Goldfish v1.2 : 10 ( 4, 6, 0), 70.0 : +106.7
Goldfish v1.1 : 10 ( 3, 6, 1), 60.0 : +163.8
Published by bsamseth almost 6 years ago
Includes a fix of the ttable lookup logic. Playing strength does not seem to change in any significant fashion, but this should mean more accurate playing, with less (no?) bugs.
v1.5.1 is tested against its predecessors, and below is the results:
# PLAYER : RATING POINTS PLAYED (%)
1 Goldfish v1.5.1 : 2156.3 254.0 500 51
2 Goldfish v1.5 : 2154.1 419.0 825 51
3 Goldfish v1.4 : 2147.3 453.0 900 50
4 Goldfish v1.3 : 2131.2 133.0 255 52
5 Goldfish v1.2 : 2097.7 74.5 160 47
6 Goldfish v1.1 : 2055.4 70.0 162 43
7 Goldfish v1.0 : 2000.0 13.5 32 42
Head to head statistics:
1) Goldfish v1.5.1 2156.3 : 500 (+86,=336,-78), 50.8 %
vs. : games ( +, =, -), (%) : Diff
Goldfish v1.5 : 250 ( 43, 166, 41), 50.4 : +2.2
Goldfish v1.4 : 250 ( 43, 170, 37), 51.2 : +9.0
2) Goldfish v1.5 2154.1 : 825 (+138,=562,-125), 50.8 %
vs. : games ( +, =, -), (%) : Diff
Goldfish v1.5.1 : 250 ( 41, 166, 43), 49.6 : -2.2
Goldfish v1.4 : 500 ( 85, 345, 70), 51.5 : +6.8
Goldfish v1.3 : 75 ( 12, 51, 12), 50.0 : +22.9
3) Goldfish v1.4 2147.3 : 900 (+152,=602,-146), 50.3 %
vs. : games ( +, =, -), (%) : Diff
Goldfish v1.5.1 : 250 ( 37, 170, 43), 48.8 : -9.0
Goldfish v1.5 : 500 ( 70, 345, 85), 48.5 : -6.8
Goldfish v1.3 : 50 ( 11, 30, 9), 52.0 : +16.1
Goldfish v1.2 : 50 ( 15, 28, 7), 58.0 : +49.6
Goldfish v1.1 : 50 ( 19, 29, 2), 67.0 : +91.9
4) Goldfish v1.3 2131.2 : 255 (+50,=166,-39), 52.2 %
vs. : games ( +, =, -), (%) : Diff
Goldfish v1.5 : 75 ( 12, 51, 12), 50.0 : -22.9
Goldfish v1.4 : 50 ( 9, 30, 11), 48.0 : -16.1
Goldfish v1.2 : 80 ( 16, 55, 9), 54.4 : +33.5
Goldfish v1.1 : 50 ( 13, 30, 7), 56.0 : +75.8
5) Goldfish v1.2 2097.7 : 160 (+24,=101,-35), 46.6 %
vs. : games ( +, =, -), (%) : Diff
Goldfish v1.4 : 50 ( 7, 28, 15), 42.0 : -49.6
Goldfish v1.3 : 80 ( 9, 55, 16), 45.6 : -33.5
Goldfish v1.1 : 30 ( 8, 18, 4), 56.7 : +42.3
6) Goldfish v1.1 2055.4 : 162 (+20,=100,-42), 43.2 %
vs. : games ( +, =, -), (%) : Diff
Goldfish v1.4 : 50 ( 2, 29, 19), 33.0 : -91.9
Goldfish v1.3 : 50 ( 7, 30, 13), 44.0 : -75.8
Goldfish v1.2 : 30 ( 4, 18, 8), 43.3 : -42.3
Goldfish v1.0 : 32 ( 7, 23, 2), 57.8 : +55.4
7) Goldfish v1.0 2000.0 : 32 (+2,=23,-7), 42.2 %
vs. : games ( +, =, -), (%) : Diff
Goldfish v1.1 : 32 ( 2, 23, 7), 42.2 : -55.4
Total games 1418
- White wins 274
- Draws 945
- Black wins 198
- Truncated/Discarded 1
Unique head to head 1.55%
Reference rating 2000.0 (set to "Goldfish v1.0")
Loose Anchors = none
Relative Anchors = none
players with no games = 0
players with all wins = 0
players w/ all losses = 0
White Advantage = 18.9
Draw Rate (eq.) = 67.6 %
White advantage = 18.92
Draw rate (equal opponents) = 67.64 %
Published by bsamseth almost 6 years ago
Basic transposition table in place. Drastically reduces the number of nodes searched, at the cost of slightly lower nodes/second.
Published by bsamseth almost 6 years ago
Published by bsamseth almost 6 years ago
Published by bsamseth almost 6 years ago
Very basic check extension in search - if in check then search one ply further.
Published by bsamseth almost 6 years ago
Published by bsamseth almost 6 years ago
Starting point for new version of Goldfish, based on fluxroot/pulse.
Published by bsamseth over 6 years ago
The engine is (largely) able to avoid playing instantly losing moves, and searches to a depth of ~4-5 within a reasonable thinking time (<10 secs). But it is not very good at long-term, and quite possibly very bad at endgame. Also, the stats it reports are terrible, showing it really has no clue.
This marks the last point before the complete redesign based on fluxroot/pulse.