Sargon can be found here https://github.com/billforsternz/retro-sargon/releases
Sargon 1978 v1.00 is the oldest UCI engine I know of and is an A/B engine probably without quiescence but using some lookahead techniques. I decided to check whether Stockfish_dev is able to beat that engine from 1978 on equal hardware. It indeed seems to beat it by a bit:
Score of SF_dev vs Sargon_1978: 34 - 27 - 39 [0.535] 100
... SF_dev playing White: 21 - 10 - 19 [0.610] 50
... SF_dev playing Black: 13 - 17 - 20 [0.460] 50
... White vs Black: 38 - 23 - 39 [0.575] 100
Elo difference: 24.4 +/- 53.6, LOS: 81.5 %, DrawRatio: 39.0 %
Finished match
That was depth=5 match. The depth=6 match takes longer and the result is here:
Score of SF_dev vs Sargon_1978: 31 - 23 - 46 [0.540] 100
... SF_dev playing White: 14 - 14 - 22 [0.500] 50
... SF_dev playing Black: 17 - 9 - 24 [0.580] 50
... White vs Black: 23 - 31 - 46 [0.460] 100
Elo difference: 27.9 +/- 50.3, LOS: 86.2 %, DrawRatio: 46.0 %
Finished match
The constancy of the value of a ply across 42 years of computer chess is amazing, one ply kept its Elo value almost constant.
To check its strength at fixed time, I played games at 40 moves in 1 minute time control against another champion, Mephisto Amsterdam of 1985 of Richard Lang, FIDE rated at about 1850 Elo. That too was ported and made UCI compatible.
Code: Select all
Games Completed = 100 of 100 (Avg game length = 125.953 sec)
Settings = Gauntlet/64MB/60000ms in 40 moves/M 9999cp for 1000 moves, D 1000 moves/EPD:C:\LittleBlitzer\3moves_GM_04.epd(817)
Time = 3262 sec elapsed, 0 sec remaining
1. Mephisto Amsterdam 1985 97.0/100 94-0-6 (L: m=0 t=0 i=0 a=0) (D: r=4 i=2 f=0 s=0 a=0) (tpm=1444.8 d=1.00 nps=0)
2. Sargon 1978 3.0/100 0-94-6 (L: m=94 t=0 i=0 a=0) (D: r=4 i=2 f=0 s=0 a=0) (tpm=1247.2 d=4.79 nps=34016)
What changed the most dramatically with A/B engines in time is the Effective Branching Factor (EBF), keeping the Elo value of a ply constant. Here is some rudimentary computation of EBF from initial starting position.
Code: Select all
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -
Engine: Sargon 1978 V1.00 (0 MB)
by Dan and Kathe Spracklin, Windows port b
5.00 0:00 +0.75 1.Nc3 Nc6 2.d4 Nf6 3.Bf4 (29.116) 38
6.00 0:02 0.00 1.Nc3 Nc6 2.d4 e5 3.d5 Nd4 (112.922) 38
7.00 0:20 +0.75 1.Nc3 Nc6 2.Nf3 Nf6 3.d4 d5 4.Be3 (790.919) 38
8.00 1:30 0.00 1.Nc3 Nc6 2.Nf3 Nf6 3.d4 d5 4.Bf4 Bf5 (3.430.248) 38
9.00 10:56 +0.75 1.d4 Nc6 2.Nc3 Nf6 3.Nf3 d5 4.Qd3 Qd6 5.Qb5 (25.187.030) 38
==================================================================================
ln(EBF) = 1.69
Code: Select all
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -
Engine: Stockfish 260520 64 BMI2 (2048 MB)
by T. Romstad, M. Costalba, J. Kiiski, G.
29/43 0:21 +0.70++ 1.d4 (33.393.061) 1535
29/43 0:23 +0.66 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.Nc3 Bb4
5.e3 O-O 6.Bd3 c5 7.O-O Nc6 8.dxc5 Bxc5
9.a3 Bd6 10.cxd5 exd5 11.e4 Re8
12.exd5 Ne5 13.Be2 Nxf3+ 14.Bxf3 (35.621.943) 1535
30/41 0:26 +0.76++ 1.d4 (41.006.569) 1537
30/41 0:29 +0.55-- 1.d4 d5 (45.026.940) 1530
30/48 0:43 +0.54 1.d4 d5 2.c4 e6 3.cxd5 exd5 4.Nc3 c6
5.Bf4 Nf6 6.e3 Bd6 7.Bxd6 Qxd6 8.Bd3 Bg4
9.Nge2 O-O 10.Qc2 Bxe2 11.Bxe2 Nbd7
12.Rd1 Rfe8 13.O-O g6 14.Rc1 (65.845.544) 1524
31/42 0:46 +0.44-- 1.d4 d5 (70.931.174) 1523
31/43 0:53 +0.54++ 1.d4 (80.211.312) 1512
31/43 0:57 +0.38 1.d4 d5 2.c4 e6 3.Nf3 Nf6 4.Nc3 c6
5.Bg5 dxc4 6.e4 b5 7.e5 h6 8.Bh4 g5
9.Nxg5 hxg5 10.Bxg5 Be7 11.exf6 Bxf6
12.Be3 Bb7 13.Qf3 a6 14.a3 (86.766.585) 1496
32/50 1:12 +0.48++ 1.d4 (109.028.076) 1503
32/50 1:13 +0.58++ 1.d4 (110.753.097) 1503
32/50 1:14 +0.60 1.d4 d5 2.c4 e6 3.Nc3 c6 4.g3 dxc4
5.Nf3 Nf6 6.Bg2 Nbd7 7.a4 Bb4 8.O-O O-O
9.Qc2 h6 10.Rd1 Qa5 11.Bf4 Nd5
12.Bd2 N5f6 13.e4 Qh5 14.h3 (111.915.509) 1503
33/39 1:19 +0.50-- 1.d4 d5 (118.803.678) 1502
33/39 1:21 +0.39-- 1.d4 d5 (122.761.967) 1503
33/45 1:24 +0.50++ 1.d4 (127.743.235) 1504
33/49 1:27 +0.70++ 1.d4 (131.812.705) 1505
33/54 1:39 +0.69 1.d4 d5 2.c4 e6 3.Nc3 c5 4.cxd5 exd5
5.Nf3 cxd4 6.Nxd4 Nf6 7.Bg5 Be7 8.e3 O-O
9.Be2 Nc6 10.O-O Be6 11.h3 Rc8
12.Rc1 a6 13.a3 h6 14.Bh4 (150.113.010) 1511
34/47 1:43 +0.59-- 1.d4 d5 (156.996.026) 1511
34/47 1:46 +0.49-- 1.d4 d5 (161.054.290) 1512
34/51 2:24 +0.59++ 1.d4 (219.542.817) 1517
34/51 2:27 +0.52 1.d4 d5 2.c4 e6 3.cxd5 exd5 4.Nc3 c6
5.Bf4 Bd6 6.Bxd6 Qxd6 7.Nf3 Bf5
8.Nh4 Bg6 9.Qb3 Nd7 10.e3 Rb8 11.Be2 Ne7
12.Nxg6 hxg6 13.h3 O-O 14.O-O (224.419.581) 1517
35/48 2:35 +0.42-- 1.d4 d5 (235.992.051) 1517
==================================================
ln(EBF) = 0.33
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
ln(EBF_Sargon) / ln(EBF_SF) = 5.1
Stockfish simply searches about 5 times deeper without losing strength at fixed depth. And that gives about 2000 Elo points difference between the two engines (fixed time).
Here are 2 games, side and reversed from the standard starting position between Stockfish and Sargon at 4 minutes + 2 seconds time control:
[pgn]
[Event "SF - Sargon"]
[Site "?"]
[Date "2020.05.29"]
[Round "1.1"]
[White "Stockfish 260520 64 BMI2"]
[Black "Sargon 1978 V1.00"]
[Result "1-0"]
[ECO "C77"]
[Annotator "1.17;0.00"]
[PlyCount "55"]
[EventDate "2020.05.29"]
[EventType "tourn"]
[TimeControl "240+2"]
{Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz 0 MHz W=52.5 ply; 5,537kN/s B=5.6
ply; 17kN/s} 1. e4 {[%eval 117,27] [%emt 0:00:05]} e5 {
[%eval 1,0] [%emt 0:00:00]} 2. Nf3 {[%eval 126,24] [%emt 0:00:03]} Nc6 {
[%eval 0,6] [%emt 0:00:08]} 3. Bb5 {(d4) [%eval 129,25] [%emt 0:00:06]} a6 {
(Nf6) [%eval 37,6] [%emt 0:00:10]} 4. Ba4 {(Bxc6) [%eval 116,25] [%emt 0:00:04]
} Nf6 {[%eval 0,6] [%emt 0:00:09]} 5. d3 {[%eval 113,27] [%emt 0:00:08]} Bb4+ {
(b5) [%eval 25,6] [%emt 0:00:08]} 6. c3 {[%eval 170,23] [%emt 0:00:03]} Bc5 {
(Bd6) [%eval 100,6] [%emt 0:00:12]} 7. Bxc6 {[%eval 189,23] [%emt 0:00:03]}
dxc6 {(bxc6) [%eval 50,6] [%emt 0:00:10]} 8. Nxe5 {
(b4) [%eval 182,26] [%emt 0:00:05]} Qe7 {(0-0) [%eval 0,5] [%emt 0:00:12]} 9.
f4 {(Bf4) [%eval 180,26] [%emt 0:00:11]} O-O {(h5) [%eval -25,5] [%emt 0:00:05]
} 10. Qe2 {(d4) [%eval 195,26] [%emt 0:00:06]} Bd6 {
(Re8) [%eval -75,5] [%emt 0:00:04]} 11. Nf3 {
(0-0) [%eval 230,25] [%emt 0:00:02]} Re8 {(Bc5) [%eval 75,5] [%emt 0:00:03]}
12. O-O {(e5) [%eval 234,25] [%emt 0:00:06]} Bg4 {
(b5) [%eval 25,5] [%emt 0:00:04]} 13. h3 {[%eval 269,24] [%emt 0:00:04]} Bxf3 {
(Bc5+) [%eval 25,5] [%emt 0:00:04]} 14. Qxf3 {
(Rxf3) [%eval 299,27] [%emt 0:00:09]} Bc5+ {[%eval 25,5] [%emt 0:00:02]} 15.
Kh1 {(d4) [%eval 316,25] [%emt 0:00:02]} Qd8 {
(Rad8) [%eval 25,5] [%emt 0:00:04]} 16. e5 {[%eval 351,29] [%emt 0:00:14]} Nd5
{[%eval 25,5] [%emt 0:00:03]} 17. d4 {[%eval 296,28] [%emt 0:00:11]} Bf8 {
[%eval -25,5] [%emt 0:00:04]} 18. Nd2 {(c4) [%eval 326,26] [%emt 0:00:06]} Be7
{(c5) [%eval -12,5] [%emt 0:00:04]} 19. f5 {(Nb3) [%eval 468,25] [%emt 0:00:03]
} Bg5 {[%eval 100,5] [%emt 0:00:03]} 20. Ne4 {[%eval 519,26] [%emt 0:00:05]}
Bxc1 {[%eval 125,5] [%emt 0:00:03]} 21. Raxc1 {[%eval 536,25] [%emt 0:00:04]}
f6 {[%eval 137,5] [%emt 0:00:03]} 22. Rce1 {(e6) [%eval 570,25] [%emt 0:00:05]}
fxe5 {(b5) [%eval 0,5] [%emt 0:00:02]} 23. Qg3 {
(Nc5) [%eval 901,29] [%emt 0:00:05]} h5 {(Nf6) [%eval 125,5] [%emt 0:00:03]}
24. f6 {[%eval 1603,25] [%emt 0:00:05]} Kf7 {(Qd7) [%eval 237,5] [%emt 0:00:11]
} 25. Qxg7+ {(fxg7+) [%eval 32763,245] [%emt 0:00:01]} Ke6 {
[%eval 32764,6] [%emt 0:00:03]} 26. Nc5+ {[%eval 32764,245] [%emt 0:00:00]} Kd6
{[%eval 32765,6] [%emt 0:00:04]} 27. Nxb7+ {[%eval 32765,245] [%emt 0:00:00]}
Ke6 {[%eval 32766,6] [%emt 0:00:03]} 28. Rxe5# {
[%eval 32766,245] [%emt 0:00:00]} 1-0
[/pgn]
[pgn]
[Event "SF - Sargon"]
[Site "?"]
[Date "2020.05.29"]
[Round "2.1"]
[White "Sargon 1978 V1.00"]
[Black "Stockfish 260520 64 BMI2"]
[Result "0-1"]
[ECO "D00"]
[Annotator "0.25;-0.77"]
[PlyCount "38"]
[EventDate "2020.05.29"]
[EventType "tourn"]
[TimeControl "240+2"]
{Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz 0 MHz W=6.0 ply; 28kN/s B=31.2 ply;
6,098kN/s} 1. d4 {[%eval 1,0] [%emt 0:00:00]} Nf6 {
[%eval -77,28] [%emt 0:00:13]} 2. Nc3 {(c4) [%eval 25,6] [%emt 0:00:08]} d5 {
[%eval -99,22] [%emt 0:00:02]} 3. Bf4 {[%eval 0,6] [%emt 0:00:08]} e6 {
(Bf5) [%eval -116,24] [%emt 0:00:02]} 4. Nf3 {(Nb5) [%eval 25,6] [%emt 0:00:10]
} Bb4 {(Nc6) [%eval -138,23] [%emt 0:00:03]} 5. Qd3 {
(e3) [%eval 25,6] [%emt 0:00:07]} Ne4 {(Nc6) [%eval -91,29] [%emt 0:00:21]} 6.
Qe3 {(Nd2) [%eval 75,5] [%emt 0:00:14]} c5 {
(Bxc3+) [%eval -177,21] [%emt 0:00:03]} 7. O-O-O {
(Nd2) [%eval 75,5] [%emt 0:00:03]} Bxc3 {[%eval -562,23] [%emt 0:00:04]} 8.
bxc3 {[%eval 75,5] [%emt 0:00:02]} Qa5 {[%eval -516,32] [%emt 0:00:13]} 9. Kb2
{(a4) [%eval 125,5] [%emt 0:00:02]} Nd7 {(Nc6) [%eval -638,26] [%emt 0:00:03]}
10. Ng5 {(dxc5) [%eval 75,5] [%emt 0:00:05]} Nb6 {
(Qb6+) [%eval -1105,28] [%emt 0:00:03]} 11. Nxe4 {[%eval -475,6] [%emt 0:00:08]
} Nc4+ {[%eval -1130,28] [%emt 0:00:03]} 12. Ka1 {[%eval -350,6] [%emt 0:00:05]
} dxe4 {(Nxe3) [%eval -1133,30] [%emt 0:00:04]} 13. Qg3 {
(Qd2) [%eval -525,6] [%emt 0:00:11]} e3 {[%eval -1197,27] [%emt 0:00:03]} 14.
Qxe3 {[%eval -562,6] [%emt 0:00:11]} Nxe3 {[%eval -1222,28] [%emt 0:00:04]} 15.
fxe3 {(Bxe3) [%eval -675,6] [%emt 0:00:04]} e5 {
(Qxc3+) [%eval -1579,25] [%emt 0:00:03]} 16. Bxe5 {
(Kb2) [%eval -625,6] [%emt 0:00:03]} Qxc3+ {[%eval -1803,27] [%emt 0:00:04]}
17. Kb1 {[%eval -725,6] [%emt 0:00:02]} Bf5 {[%eval -1863,28] [%emt 0:00:03]}
18. Rc1 {(Rd3) [%eval -725,6] [%emt 0:00:06]} Qb4+ {
(f6) [%eval -32757,57] [%emt 0:00:04]} 19. Ka1 {[%eval -725,6] [%emt 0:00:03]}
Qa3 {(f6) [%eval -32758,60] [%emt 0:00:04]} 0-1
[/pgn]