Repository navigation
Dolphin 2.3
Dolphin 2.3 is a search update. The network is the same as in 2.2. Against 2.2.1 it scored +62.5 ± 19.1 Elo at 10+0.1 (500 games, see Testing).
What's new
Five changes to the search. Each was kept only after a self-play SPRT test at a fixed 40,000 nodes per move:
- Correction history from five sources. The static evaluation is corrected by what earlier searches found in similar positions. The positions are grouped by pawn structure, by each side's other pieces, and by the last two pairs of moves. +14.3 ± 11.2 Elo against 2.2.1.
- No reverse futility pruning at PV-like nodes (TT-PV nodes), or when the transposition-table move is a quiet move. +12.0 ± 10.8 Elo against 2.2.1.
- Material-scaled evaluation. The evaluation shrinks as material comes off the board, because the same advantage is harder to convert with fewer pieces. +51.1 ± 18.1 Elo on top of the correction history.
- Fail-high scores pulled toward beta at non-PV nodes, more strongly at low depth. +29.8 ± 13.4 Elo on top of the correction history.
- Penalty for the opponent's previous move when it is refuted at once (by the first or second move tried, or by a transposition-table cutoff). +11.3 ± 10.9 Elo on top of the other four changes.
About fifteen further ideas were tested and rejected because they did not gain.
Other changes:
- Engine name now reports
Dolphin 2.3 NNUE. benchnode count changed to 1717319 (search changes only, the network is unchanged).tools/match.pynow adjudicates a win only when both engines agree.
Download
| File | Use it if |
|---|---|
Dolphin-2.3.0-windows-x64.zip |
Recommended. Self-contained: includes its own .NET runtime, nothing to install. Keep all five files of the folder together. |
Dolphin-2.3.0-windows-x64-requires-dotnet.zip |
You already have the .NET Runtime 5.0 or newer and want the small package. Keep the four files Dolphin2.exe, Dolphin2.dll, Dolphin2.deps.json, Dolphin2.runtimeconfig.json together. |
Unzip and load Dolphin2.exe into your GUI as a UCI engine. The network is embedded in the program.
Testing
All games with cutechess-cli 1.5.1 on an i7-11800H, openings from tools/openings8.epd. The opponent is the Dolphin 2.2.1 release package.
| Time control | Settings | Games | Result (W-L-D) | Elo vs 2.2.1 |
|---|---|---|---|---|
| 10+0.1 | 1 thread, 64 MB | 500 | 145 - 56 - 299 | +62.5 ± 19.1 |
| 40 moves / 30 s | 1 thread, 64 MB | 100 | 22 - 13 - 65 | +31.4 ± 40.3 |
| 5+0.05, engine restarted every game | 1 thread, 64 MB | 100 | 31 - 19 - 50 | +41.9 ± 48.4 |
| 10+0.1 | 4 threads, 1 GB (both engines) | 20 | 2 - 3 - 15 | too few games |
| 5+0.05, engine restarted every game | self-contained 2.3 build vs framework-dependent 2.3 build | 100 | 24 - 23 - 53 | (same engine) |
820 games in total: no time losses, no crashes, no illegal moves. Earlier, a build with the first four changes scored +44.4 ± 16.6 against 2.2.1 at 10+0.1 (630 games, tools/match.py).
Verify
Dolphin2.exe perft 5must printNodes searched: 4865609Dolphin2.exe benchmust printNodes searched : 1717319- SHA-256:
Dolphin-2.3.0-windows-x64.zip:897F622135DF90D22C8FB425DBA59A9283E2468DCFB956CEF082677657603798Dolphin-2.3.0-windows-x64-requires-dotnet.zip:A14EDC5CD60BB33CDF8BFC1249CF65129EE426FC0D06B521EBC767BD6EEF0971
Build from source
git clone https://github.com/aiagentvn/dolphin.git
cd dolphin
dotnet build -c ReleaseThe binaries in this release were built from the source at this tag.