Releases: bsamseth/Goldfish
v1.7.0: Principal Variation Search
Massive speed boost.
v1.7.0
Total time (ms) : 6192
Nodes searched : 7000990
Nodes/second : 1130651
v1.6.0:
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
v1.6.0: Killer Move Heuristic
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:
v1.6.0:
Total time (ms) : 11530
Nodes searched : 11924519
Nodes/second : 1034217
v1.5.1:
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
v1.5.1: Transposition table
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 %
v1.5: Transposition table
Basic transposition table in place. Drastically reduces the number of nodes searched, at the cost of slightly lower nodes/second.
v1.4: Complete refactoring of base types.
All types are now distinct and not equivalent to ints. Most are regular enums, so that they are usable as ints in most situations, such as indexing. The type clarity will hopefully be good to keep out bugs, but also helps performance. It will also make writing a transposition table more efficient, as the entries can be expressed in a very strict set of bytes.
v1.3: Partial Refactor of Base Types
Refactor to use enums instead of ints for most types.
v1.2: Check Extension
Very basic check extension in search - if in check then search one ply further.
v1.1: Null Move Pruning
Null move pruning.
v1.0: Fork of fluxroot/pulse
Starting point for new version of Goldfish, based on fluxroot/pulse.
v0.1: Goldfish - The bad chess engine
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.