Patricia 2.0 - likely the most aggressive chess engine ever made

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

User avatar
Whiskers
Posts: 186
Joined: Tue Jan 31, 2023 4:34 pm
Full name: Adam Kulju

Patricia 2.0 - likely the most aggressive chess engine ever made

Post by Whiskers »

I am far more proud of this engine than I ever was with Willow. Willow is a fairly standard engine; it's TCEC tier, sure, but there's several engines very similar to it. Patricia, on the other hand, stands alone. (sidenote, the logo is the most terrifying rabbit I've ever seen!)

https://github.com/Adam-Kulju/Patricia/releases/tag/2.0

Code: Select all

Rank  EAS-Score  sacs   shorts  draws  moves  Engine/player 
-------------------------------------------------------------------
   1    424440  35.61%  42.62%  04.14%   54   Patricia  
   2    124856  14.06%  29.40%  21.97%   64   Peacekeeper 1.50  
   3     87869  17.11%  13.84%  18.57%   69   Willow 2.8  
   4     86016  09.09%  18.59%  17.44%   70   Midnight v5  
   5     74072  10.58%  14.96%  19.22%   71   Wahoo v3  
   6     63659  10.23%  14.82%  21.19%   71   Polaris 1.6.1  
   7     49836  02.86%  17.32%  29.43%   67   Akimbo 0.4.1  
-------------------------------------------------------------------
(Old record that I know of is Velvet 4.1.0 with an EAS score of 280k.)

A few Patricia games:

[pgn]
[Event "?"]
[Site "?"]
[Date "2024.03.31"]
[Round "573"]
[White "Patricia"]
[Black "Midnight v5"]
[Result "1-0"]
[TimeControl "10+0.1"]
[SetUp "1"]
[FEN "r1bqkbnr/pp1p1p1p/n3p1p1/2p5/2P5/2N1P3/PP1PBPPP/R1BQK1NR w KQkq - 0 1"]
[PlyCount "89"]
[GameDuration "00:00:26"]
[GameEndTime "2024-03-31T00:28:15.209 CDT"]
[GameStartTime "2024-03-31T00:27:48.932 CDT"]

1. d4 Nf6 2. Nf3 Bg7 3. e4 cxd4 4. Qxd4 Nb4 5. O-O Nc2 6. Qd6 Bf8 7. Qd1
Nxa1 8. e5 Ng8 9. b4 Bxb4 10. Nb5 Ne7 11. Qd6 Bxd6 12. Nxd6+ Kf8 13. Bh6+
Kg8 14. Bd3 Nf5 15. Bxf5 exf5 16. Rc1 f6 17. Re1 Qb6 18. exf6 Qxd6 19. Ng5
Qf8 20. Bxf8 Kxf8 21. Re7 b6 22. Rf7+ Ke8 23. Re7+ Kd8 24. Nf7+ Kc7 25.
Nxh8 Ba6 26. Rxh7 Rf8 27. Nxg6 Rxf6 28. Ne5 Rd6 29. h4 Nc2 30. h5 Na3 31.
Rxd7+ Rxd7 32. Nxd7 Bb5 33. cxb5 Nc4 34. h6 a6 35. bxa6 Nd6 36. Ne5 Nc4 37.
Nxc4 f4 38. h7 f3 39. h8=Q Kd7 40. Qd4+ Ke6 41. Qe4+ Kf6 42. a7 b5 43. a8=Q
Kg7 44. Qf5 bxc4 45. Qaf8# 1-0
[/pgn]

[pgn]
[Event "?"]
[Site "?"]
[Date "2024.03.30"]
[Round "196"]
[White "Wahoo v3"]
[Black "Patricia"]
[Result "0-1"]
[TimeControl "10+0.1"]
[SetUp "1"]
[FEN "rn1qkbnr/pp2pppp/2p5/3p4/5Pb1/PP6/1BPPP1PP/RN1QKBNR w KQkq - 0 1"]
[PlyCount "42"]
[GameDuration "00:00:16"]
[GameEndTime "2024-03-30T23:51:27.553 CDT"]
[GameStartTime "2024-03-30T23:51:11.084 CDT"]

1. h3 Bh5 2. g4 Bg6 3. Nf3 e5 4. fxe5 Nd7 5. Bg2 f6 6. O-O h5 7. Nh4 Bh7 8.
e6 hxg4 9. exd7+ Qxd7 10. hxg4 Qxg4 11. Nf3 Bd6 12. d3 Nh6 13. Nd4 Be4 14.
dxe4 Bh2+ 15. Kh1 Bf4 16. Kg1 Be3+ 17. Rf2 Qg3 18. Qe1 Ng4 19. Kf1 Rh1+ 20.
Bxh1 Nh2+ 21. Rxh2 Qg1# 0-1
[/pgn]

[pgn]
[Event "?"]
[Site "?"]
[Date "2024.04.02"]
[Round "755"]
[White "Patricia"]
[Black "Midnight v5"]
[Result "1-0"]
[TimeControl "10+0.1"]
[SetUp "1"]
[FEN "rnbqkb1r/1p1pppp1/2p2n2/p6p/3P1P2/6PN/PPP1P2P/RNBQKB1R w KQkq - 0 1"]
[PlyCount "47"]
[GameDuration "00:00:17"]
[GameEndTime "2024-04-02T18:23:18.592 CDT"]
[GameStartTime "2024-04-02T18:23:01.433 CDT"]

1. e4 Nxe4 2. Nd2 Nxd2 3. Qxd2 d5 4. Ng5 h4 5. f5 hxg3 6. Bd3 Qd6 7. O-O c5
8. Nxf7 Kxf7 9. Qg2 gxh2+ 10. Kh1 cxd4 11. Bf4 Qc6 12. Rae1 Na6 13. Re6
Bxe6 14. Qg6+ Kg8 15. fxe6 Qe8 16. Qg3 Rh7 17. Bg6 Qb5 18. Qf3 Qxb2 19. Be5
Qa1 20. Rxa1 d3 21. Qf7+ Kh8 22. Rf1 dxc2 23. Qxf8+ Rxf8 24. Rxf8# 1-0
[/pgn]

[pgn]
1. e4 Nxe4 2. h5 Bg7 3. d3 Nd6 4. d4 c6 5. Bf4 Nc7 6. Bd3 Nd5 7. Be5 O-O 8. hxg6 fxg6 9. Rxh7 Kxh7 10. Ng5+ Kg8 11. Bxg6 b5 12. Qh5 Nf6 13. Qh4 Re8 14. Nd2 b4 15. c4 Ra8 16. O-O-O Ba6 17. c5 Nb7 18. Nde4 Bc4 19. Rf1 Bxf1 20. Nh7 Nxe4 21. Bxg7 Kxg7 22. Bxe4 e6 23. Qg4+ Kh8 24. Qh5 Be2 25. Qh6 Kg8 26. Qg6+ Kh8 27. Nf6 Re7 28. Qh6+ Rh7 29. Qxh7#
[/pgn]
AndrewGrant
Posts: 1825
Joined: Tue Apr 19, 2016 6:08 am
Location: U.S.A
Full name: Andrew Grant

Re: Patricia 2.0 - likely the most aggressive chess engine ever made

Post by AndrewGrant »

I do have to ask honestly... did you attempt to explicitly game Stefan's EAS tool? After reading the document about how it works, it became pretty clear that you could throw elo down the drain in the name of inflating your score there.
Friendly reminder that stealing is a crime, is wrong, and makes you a thief.
"Those who can't do, clone instead" - Eduard ( A real life friend, not this forum's Eduard )
User avatar
Rebel
Posts: 7040
Joined: Thu Aug 18, 2011 12:04 pm
Full name: Ed Schröder

Re: Patricia 2.0 - likely the most aggressive chess engine ever made

Post by Rebel »

AndrewGrant wrote: Wed Apr 03, 2024 8:22 am I do have to ask honestly... did you attempt to explicitly game Stefan's EAS tool? After reading the document about how it works, it became pretty clear that you could throw elo down the drain in the name of inflating your score there.
True, it's why Chris and I (in the name of playing style) insist on at least equal strength.

I remember one of the first Rebels had a very high EAS score, in reality it was an immature net.
90% of coding is debugging, the other 10% is writing bugs.
User avatar
Whiskers
Posts: 186
Joined: Tue Jan 31, 2023 4:34 pm
Full name: Adam Kulju

Re: Patricia 2.0 - likely the most aggressive chess engine ever made

Post by Whiskers »

AndrewGrant wrote: Wed Apr 03, 2024 8:22 am I do have to ask honestly... did you attempt to explicitly game Stefan's EAS tool? After reading the document about how it works, it became pretty clear that you could throw elo down the drain in the name of inflating your score there.

I tried at one point, and failed miserably. Nothing in Patricia is intentionally taking advantage of any quirk in the EAS tool (except possibly the bad draw detection which follows the EAS tool's definition of a bad draw in a very broad manner). It must of course be said that my method of testing everything against the EAS score could certainly have led to some patches being accepted, where instead of an actual increase in aggressiveness, it just led to behaviors that fooled Stefan's tool; this is why I waited until Patricia's EAS score was far higher than the competition's to make the claim I did.

I also checked a few dozen actual Patricia games a few weeks ago (at that point Patricia was somewhere in the 300k - 350k range EAS wise) to make sure that the EAS score wasn't seeing ghosts, and if anything, the EAS tool was significantly underdoing how often Patricia sacrificed.
User avatar
Whiskers
Posts: 186
Joined: Tue Jan 31, 2023 4:34 pm
Full name: Adam Kulju

Re: Patricia 2.0 - likely the most aggressive chess engine ever made

Post by Whiskers »

Rebel wrote: Wed Apr 03, 2024 8:36 am
AndrewGrant wrote: Wed Apr 03, 2024 8:22 am I do have to ask honestly... did you attempt to explicitly game Stefan's EAS tool? After reading the document about how it works, it became pretty clear that you could throw elo down the drain in the name of inflating your score there.
True, it's why Chris and I (in the name of playing style) insist on at least equal strength.

I remember one of the first Rebels had a very high EAS score, in reality it was an immature net.
I've played against the same 6 engines throughout almost all of Patricia's development (round robin with each engine playing 3000 games). Patricia started out in the middle of the pack and is now 200 elo stronger on balanced books at STC than them. So it's definitely "at least equal strength"!

I also ran an LTC test (60 + 0.6) a couple days before release to verify that Patricia's aggressiveness had nothing to do with the short time controls I was testing at, and Patricia's EAS score was basically unchanged.
peter
Posts: 3206
Joined: Sat Feb 16, 2008 7:38 am
Full name: Peter Martan

Re: Patricia 2.0 - likely the most aggressive chess engine ever made

Post by peter »

Hi!
Thanks for the engine.
It seems not to support fixed movetime, neither with command go xxxx, nor with go movetime xxx in console nor in Arena nor in Shredder- GUI with TC of seconds per move, regards
Peter.
User avatar
Whiskers
Posts: 186
Joined: Tue Jan 31, 2023 4:34 pm
Full name: Adam Kulju

Re: Patricia 2.0 - likely the most aggressive chess engine ever made

Post by Whiskers »

peter wrote: Wed Apr 03, 2024 8:46 am
Hi!
Thanks for the engine.
It seems not to support fixed movetime, neither with command go xxxx, nor with go movetime xxx in console nor in Arena nor in Shredder- GUI, regards
It indeed does not support fixed movetime commands. You can work around that limitation with "go infinite" and then "stop" for now, if you really want to I can add support for it to 2.1.
peter
Posts: 3206
Joined: Sat Feb 16, 2008 7:38 am
Full name: Peter Martan

Re: Patricia 2.0 - likely the most aggressive chess engine ever made

Post by peter »

Thanks for the prompt answer!
To me it's necessary only for running suites of test positions automatically.
Edit: in Fritz the automatic suite- feature does work, which I didn't see till trying out right now, seems to be other one time management for suites in this one GUI, even if fixed time per move that way seems to be followed by the engine anyhow.
Last edited by peter on Wed Apr 03, 2024 9:19 am, edited 3 times in total.
Peter.
User avatar
Rebel
Posts: 7040
Joined: Thu Aug 18, 2011 12:04 pm
Full name: Ed Schröder

Re: Patricia 2.0 - likely the most aggressive chess engine ever made

Post by Rebel »

Whiskers wrote: Wed Apr 03, 2024 8:45 am
Rebel wrote: Wed Apr 03, 2024 8:36 am
AndrewGrant wrote: Wed Apr 03, 2024 8:22 am I do have to ask honestly... did you attempt to explicitly game Stefan's EAS tool? After reading the document about how it works, it became pretty clear that you could throw elo down the drain in the name of inflating your score there.
True, it's why Chris and I (in the name of playing style) insist on at least equal strength.

I remember one of the first Rebels had a very high EAS score, in reality it was an immature net.
I've played against the same 6 engines throughout almost all of Patricia's development (round robin with each engine playing 3000 games). Patricia started out in the middle of the pack and is now 200 elo stronger on balanced books at STC than them. So it's definitely "at least equal strength"!

I also ran an LTC test (60 + 0.6) a couple days before release to verify that Patricia's aggressiveness had nothing to do with the short time controls I was testing at, and Patricia's EAS score was basically unchanged.
Granted, you are doing a fun job, much appreciated but as you know (or at least should know) the EAS tool is extremely sensitive to the elo pool you are playing your games. Now that Patricia gained 200 elo, did you update the elo pool with 200 elo?
90% of coding is debugging, the other 10% is writing bugs.
User avatar
Whiskers
Posts: 186
Joined: Tue Jan 31, 2023 4:34 pm
Full name: Adam Kulju

Re: Patricia 2.0 - likely the most aggressive chess engine ever made

Post by Whiskers »

Rebel wrote: Wed Apr 03, 2024 9:04 am
Whiskers wrote: Wed Apr 03, 2024 8:45 am
Rebel wrote: Wed Apr 03, 2024 8:36 am
AndrewGrant wrote: Wed Apr 03, 2024 8:22 am I do have to ask honestly... did you attempt to explicitly game Stefan's EAS tool? After reading the document about how it works, it became pretty clear that you could throw elo down the drain in the name of inflating your score there.
True, it's why Chris and I (in the name of playing style) insist on at least equal strength.

I remember one of the first Rebels had a very high EAS score, in reality it was an immature net.
I've played against the same 6 engines throughout almost all of Patricia's development (round robin with each engine playing 3000 games). Patricia started out in the middle of the pack and is now 200 elo stronger on balanced books at STC than them. So it's definitely "at least equal strength"!

I also ran an LTC test (60 + 0.6) a couple days before release to verify that Patricia's aggressiveness had nothing to do with the short time controls I was testing at, and Patricia's EAS score was basically unchanged.
Granted, you are doing a fun job, much appreciated but as you know (or at least should know) the EAS tool is extremely sensitive to the elo pool you are playing your games. Now that Patricia gained 200 elo, did you update the elo pool with 200 elo?
No, because I actually found that the EAS tool was NOT sensitive to the elo pool. (At least, not unless your engine is much weaker than the majority of engines in the pool.)

All my aggression improvements were done before strength improvements, so the first 400k EAS Patricia was the same strength as the pool. Then I added in several 30 elo changes one at a time, and tested each for EAS; none had any significant impact on the EAS score, except for SEE pruning which I immediately discarded. None of the individual metrics looked suspicious, either; strength increasing/decreasing didn't change the average win speed, for example.

One problem with adding new engines to the pool is the specific engines in the pool can have a major effect on the EAS score; for example adding Princhess to the pool of engines inflated every other engine's EAS score by quite a bit. For future Patricia dev I will have a new baseline pool/EAS score with stronger engines, but I believe that having the same gauntlet of engines to use to compare one version's EAS score to a new patch's EAS score allows you to track progress more clearly.