The PSTs of Carnivor

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Mike Sherwin
Posts: 860
Joined: Fri Aug 21, 2020 1:25 am
Location: Planet Earth, Sol system
Full name: Michael J Sherwin

The PSTs of Carnivor

Post by Mike Sherwin »

Carnivor is a little toy engine I wrote in 2004, my first. It has hand crafted PSTs just using chess logic and a very small amount of hand tuning. In my current engine Bricabrac I first tried the PSTs of TCPW and was not impressed. Then I tried the PSTs TCPW called PESTO. They were better but something about the play still bothered me. So I decided to show a bit of confidence in my own abilities (that I used to have) and try the PST's of Carnivor.

s32 wpPST[64] = {
0, 0, 0, 0, 0, 0, 0, 0,
4, 4,-24,-30,-30, 8, 8, 8,
12, 8, 0,-10,-10, 0, 4, 6,
8, 14, 12, 20, 20, 8, 6, 4,
10, 16, 16, 30, 30, 12, 10, 8,
20, 40, 40, 60, 60, 40, 40, 20,
40, 60, 60, 80, 80, 60, 60, 40,
0, 0, 0, 0, 0, 0, 0, 0
};

s32 wnPST[64] = {
0,-10, 12, 12, 12, 12,-10, 0,
6, 12, 24, 30, 26, 24, 12, 6,
12, 24, 30, 36, 36, 38, 24, 12,
12, 24, 36, 40, 40, 36, 24, 12,
12, 24, 36, 42, 42, 36, 24, 12,
12, 24, 36, 40, 40, 36, 24, 12,
6, 12, 24, 36, 36, 24, 12, 6,
0, 6, 12, 12, 12, 12, 6, 0
};

s32 wbPST[64] = {
6, 0, 0, 0, 0, 0, 0, 6,
10, 30, 12, 12, 12, 12, 30, 10,
0, 20, 30, 12, 12, 30, 20, 0,
16, 12, 32, 32, 32, 32, 12, 16,
0, 30, 24, 32, 32, 24, 30, 0,
0, 12, 30, 24, 24, 30, 12, 0,
0, 18, 20, 20, 20, 20, 18, 0,
6, 0, 0, 0, 0, 0, 0, 6
};

s32 wrPST[64] = {
6, 10, 12, 14, 14, 12, 10, 6,
8, 10, 10, 16, 16, 10, 10, 8,
6, 8, 10, 12, 12, 10, 8, 6,
4, 6, 8, 10, 10, 8, 6, 4,
4, 6, 8, 10, 10, 8, 6, 4,
6, 8, 10, 12, 12, 10, 8, 6,
20, 20, 20, 20, 20, 20, 20, 20,
18, 18, 18, 18, 18, 18, 18, 18
};

s32 wqPST[64] = {
14, 14, 14, 14, 14, 14, 14, 14,
14, 16, 16, 16, 16, 16, 16, 14,
14, 16, 18, 18, 18, 18, 16, 14,
14, 16, 18, 18, 18, 18, 16, 14,
16, 18, 20, 20, 20, 20, 18, 16,
16, 18, 20, 20, 20, 20, 18, 16,
18, 20, 20, 20, 20, 20, 20, 18,
18, 18, 18, 18, 18, 18, 18, 18
};

s32 wkPST[64] = {
30, 60, 20,-40, 0, 20, 60, 30,
-30,-30,-30,-30,-30,-30,-30,-30,
-20,-20,-20,-20,-20,-20,-20,-20,
-10, 0, 20, 20, 20, 20, 0,-10,
-10, 0, 20, 40, 40, 20, 0,-10,
-10, 0, 20, 20, 20, 20, 0,-10,
-10, 0, 0, 0, 0, 0, 0,-10,
-10,-10,-10,-10,-10,-10,-10,-10
};

s32 bpPST[64] = {
0, 0, 0, 0, 0, 0, 0, 0,
40, 60, 60, 80, 80, 60, 60, 40,
20, 40, 40, 60, 60, 40, 40, 20,
10, 16, 12, 30, 30, 12, 8, 6,
8, 14, 16, 20, 20, 8, 6, 4,
12, 8, 0,-10,-10, 0, 4, 6,
4, 4,-24,-30,-30, 8, 8, 4,
0, 0, 0, 0, 0, 0, 0, 0
};

s32 bnPST[64] = {
0, 6, 12, 12, 12, 12, 6, 0,
6, 12, 24, 36, 36, 24, 12, 6,
12, 24, 36, 40, 40, 36, 24, 12,
12, 24, 36, 42, 42, 36, 24, 12,
12, 24, 36, 40, 40, 36, 24, 12,
12, 24, 30, 36, 36, 38, 24, 12,
6, 12, 24, 30, 26, 24, 12, 6,
0,-10, 12, 12, 12, 12,-10, 0
};

s32 bbPST[64] = {
6, 0, 0, 0, 0, 0, 0, 6,
0, 18, 20, 20, 20, 20, 18, 0,
0, 12, 30, 24, 24, 30, 12, 0,
0, 30, 24, 32, 32, 24, 30, 0,
16, 12, 32, 32, 32, 32, 12, 16,
0, 20, 30, 12, 12, 30, 20, 0,
10, 30, 12, 12, 12, 12, 30, 10,
6, 0, 0, 0, 0, 0, 0, 6
};

s32 brPST[64] = {
22, 22, 22, 22, 22, 22, 22, 22,
24, 24, 24, 24, 24, 24, 24, 24,
6, 8, 10, 12, 12, 10, 8, 6,
4, 6, 8, 10, 10, 8, 6, 4,
4, 6, 8, 10, 10, 8, 6, 4,
6, 8, 10, 12, 12, 10, 8, 6,
8, 10, 10, 22, 22, 10, 10, 8,
8, 10, 12, 20, 20, 12, 10, 8
};

s32 bqPST[64] = {
18, 18, 18, 18, 18, 18, 18, 18,
18, 20, 20, 20, 20, 20, 20, 18,
16, 18, 20, 20, 20, 20, 18, 16,
16, 18, 20, 20, 20, 20, 18, 16,
14, 16, 18, 18, 18, 18, 16, 14,
14, 16, 18, 18, 18, 18, 16, 14,
14, 16, 16, 16, 16, 16, 16, 14,
14, 14, 14, 14, 14, 14, 14, 14
};

s32 bkPST[64] = {
-10,-10,-10,-10,-10,-10,-10,-10,
-10, 0, 0, 0, 0, 0, 0,-10,
-10, 0, 20, 20, 20, 20, 0,-10,
-10, 0, 20, 40, 40, 20, 0,-10,
-10, 0, 20, 20, 20, 20, 0,-10,
-20,-20,-20,-20,-20,-20,-20,-20,
-30,-30,-30,-30,-30,-30,-30,-30,
20, 60, 20,-40, 0, 20, 60, 20
};

The first thing that I did was to do a 60 sec search of the original position. Using PESTO Bric finished 13 ply in 35 sec. Using CAR Bric finished ply 14 in 48 sec.

FEN: rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq e3 0 1

Bricabrac:
1 00:00 20 20 +0.50 d2d4
2 00:00 85 85 0.00 d2d4 d7d5
3 00:00 668 668 +0.48 d2d4 d7d5 g1f3
4 00:00 3,611 3,611 0.00 d2d4 d7d5 g1f3 g8f6
5 00:00 13,850 13,850 +0.40 d2d4 d7d5 g1f3 g8f6 b1c3
6 00:00 39,955 39,955 0.00 d2d4 d7d5 g1f3 g8f6 b1c3 b8c6
7 00:00 114,209 11,420,900 +0.36 d2d4 d7d5 g1f3 g8f6 b1d2 b8c6 c2c4
8 00:00 728,084 12,134,733 +0.08 e2e4 c7c5 d2d4 c5d4 g1f3 e7e5 f3e5 b8c6
9 00:00 1,916,945 11,276,147 +0.50 e2e4 e7e5 b1c3 g8f6 g1f3 b8c6 f1b5 c6d4 e1g1
10 00:01 5,160,109 10,530,834 +0.12 e2e4 c7c5 g1f3 b8c6 d2d4 c5d4 f3d4 c6d4 d1d4 g8f6
11 00:02 17,610,249 10,608,583 +0.26 e2e4 e7e5 g1f3 g8f6 b1c3 b8c6 f1b5 f8b4 b5c6 d7c6 e1g1
12 00:04 44,150,022 10,638,559 +0.10 e2e4 e7e5 g1f3 g8f6 b1c3 b8c6 f1b5 f8b4 e1g1 e8g8 a2a3 b4c3
13 00:16 166,338,838 10,628,679 +0.36 e2e4 e7e5 g1f3 g8f6 f3e5 f6e4 d2d3 e4f6 c2c4 d7d6 e5f3 c7c5 b1c3
14 00:48 508,450,134 10,663,803 +0.06 e2e4 e7e5 g1f3 g8f6 d2d4 f6e4 f3e5 d7d5 b1d2 b8d7 c2c4 d7e5 d4e5 c8f5

But how smart do the moves look? To answer that I had Bric play a one ply per move game against itself.
[pgn][Event "Computer chess game"]
[Site "MASTER"]
[Date "2021.03.10"]
[Round "?"]
[White "Bricabrac"]
[Black "Bricabrac"]
[Result "1/2-1/2"]
[BlackElo "2200"]
[ECO "D30"]
[Opening "QGD"]
[Time "07:51:26"]
[Variation "Stonewall Formation"]
[WhiteElo "2200"]
[Termination "normal"]
[PlyCount "75"]
[WhiteType "program"]
[BlackType "program"]

1. d4 {(d2d4) +0.50/1} d5 {(d7d5) 0.00/1} 2. Nf3 {(g1f3) +0.48/1} Nf6
{(g8f6) 0.00/1} 3. Nbd2 {(b1d2) +0.40/1} Nc6 {(b8c6) 0.00/1} 4. c4 {(c2c4)
+0.36/1} Bf5 {(c8f5) -0.08/1} 5. e3 {(e2e3) +0.24/1} e6 {(e7e6) -0.04/1} 6.
Be2 {(f1e2) +0.16/1} Bb4 {(f8b4) +0.14/1} 7. O-O {(e1g1) +0.52/1} O-O
{(e8g8) +0.12/1} 8. a3 {(a2a3) -0.04/1} Ba5 {(b4a5) -0.10/1} 9. b4 {(b2b4)
+0.20/1} Bb6 {(a5b6) -0.16/1} 10. Bb2 {(c1b2) +0.46/1} a6 {(a7a6) -0.38/1}
11. Rc1 {(a1c1) +0.44/1} Re8 {(f8e8) -0.36/1} 12. c5 {(c4c5) +0.40/1} Ba7
{(b6a7) -0.50/1} 13. Qb3 {(d1b3) +0.52/1} Rc8 {(a8c8) -0.48/1} 14. Rcd1
{(c1d1) +0.50/1} Ne4 {(f6e4) -0.48/1} 15. Ne5 {(f3e5) +0.50/1} Nxe5 {(c6e5)
-0.50/1} 16. Nxe4 {(d2e4) +0.50/1} c6 {(c7c6) -0.36/1} 17. dxe5 {(d4e5)
+0.36/1} Bxe4 {(f5e4) -0.36/1} 18. Bf3 {(e2f3) +0.48/1} Bxf3 {(e4f3)
-0.48/1} 19. gxf3 {(g2f3) +0.18/1} b5 {(b7b5) -0.08/1} 20. e4 {(e3e4)
+0.38/1} h6 {(h7h6) -0.36/1} 21. f4 {(f3f4) +0.44/1} Qh4 {(d8h4) -0.42/1}
22. Qe3 {(b3e3) +0.44/1} Rcd8 {(c8d8) -0.36/1} 23. Rd2 {(d1d2) +0.38/1}
Qg4+ {(h4g4) -0.36/1} 24. Kh1 {(g1h1) +0.06/1} Rd7 {(d8d7) -0.04/1} 25.
Rfd1 {(f1d1) +0.06/1} Ree7 {(e8e7) -0.04/1} 26. Bd4 {(b2d4) +0.06/1} dxe4
{(d5e4) -0.06/1} 27. Qxe4 {(e3e4) +0.06/1} Qh3 {(g4h3) -0.08/1} 28. Kg1
{(h1g1) +0.20/1} Qxa3 {(h3a3) -0.20/1} 29. Qxc6 {(e4c6) +0.20/1} Qxb4
{(a3b4) -0.20/1} 30. Qxa6 {(c6a6) +0.20/1} Qc4 {(b4c4) -0.18/1} 31. Qc6
{(a6c6) +0.22/1} b4 {(b5b4) -0.20/1} 32. h3 {(h2h3) +0.18/1} b3 {(b4b3)
+0.06/1} 33. h4 {(h3h4) -0.08/1} Qb4 {(c4b4) +0.06/1} 34. h5 {(h4h5)
-0.02/1} Qc4 {(b4c4) +0.04/1} 35. Qf3 {(c6f3) -0.06/1} Qb4 {(c4b4) +0.04/1}
36. Qc6 {(f3c6) -0.02/1} Qc4 {(b4c4) +0.04/1} 37. Qf3 {(c6f3) -0.06/1} Qb4
{(c4b4) +0.04/1} 38. Qc6 {(f3c6) -0.02/1 3-fold repetition} 1/2-1/2[/pgn]

Rather good looking if I had to say so myself. But, how would it do against another engine? Which engine? 'I know, I'll try SF13 NNUE! :lol:

[pgn][Event "Computer chess game"]
[Site "MASTER"]
[Date "2021.03.10"]
[Round "?"]
[White "Bricabrac"]
[Black "Stockfish_13_win_x64_avx2"]
[Result "1/2-1/2"]
[BlackElo "2000"]
[ECO "A51"]
[Opening "Budapest Defence"]
[Time "08:00:20"]
[Variation "Fajarowicz-Richter Gambit, 4.Nf3 Nc6 5.a3"]
[WhiteElo "2200"]
[Termination "normal"]
[PlyCount "83"]
[WhiteType "program"]
[BlackType "program"]

1. d4 {(d2d4) +0.48/1} d5 {(d7-d5) -0.34/1} 2. Nf3 {(g1f3) +0.46/1} Nf6
{(Ng8-f6) -0.19/1} 3. Nbd2 {(b1d2) +0.38/1} Bf5 {(Bc8-f5) +0.23/1} 4. c4
{(c2c4) +0.42/1} e6 {(e7-e6) -0.04/1} 5. e3 {(e2e3) +0.42/1} Bd6 {(Bf8-d6)
0.00/1} 6. Be2 {(f1e2) +0.42/1} Nc6 {(Nb8-c6) +0.09/1} 7. O-O {(e1g1)
+0.68/1} O-O {(O-O) -0.26/1} 8. a3 {(a2a3) +0.12/1} Ne4 {(Nf6-e4) -0.21/1}
9. b4 {(b2b4) +0.18/1} Nc3 {(Ne4-c3) -0.12/1} 10. Qe1 {(d1e1) +0.10/1} Qe7
{(Qd8-e7 c4xd5) +0.78/1} 11. Bb2 {(c1b2) +0.38/1} Nxe2+ {(Nc3xe2+ Qe1xe2)
+0.24/1} 12. Qxe2 {(e1e2) +0.38/1} Bg4 {(Bf5-g4) +0.16/1} 13. e4 {(e3e4)
+0.70/1} dxe4 {(d5xe4 Qe2xe4) -0.71/1} 14. Nxe4 {(d2e4) +0.80/1} Nxd4
{(Nc6xd4) +0.80/1} 15. Bxd4 {(b2d4) +2.82/1} Bxf3 {(Bg4xf3 g2xf3) -0.96/1}
16. Qxf3 {(e2f3) +3.16/1} Rfd8 {(Rf8-d8 Ne4xd6) -3.75/1} 17. Rad1 {(a1d1)
+3.16/1} b5 {(b7-b5) -4.39/1} 18. cxb5 {(c4b5) +4.24/1} f5 {(f7-f5)
-4.51/1} 19. Nxd6 {(e4d6) +4.22/1} cxd6 {(c7xd6) -4.21/1} 20. Rd2 {(d1d2)
+4.64/1} h6 {(h7-h6) -4.13/1} 21. Rfd1 {(f1d1) +4.64/1} Qd7 {(Qe7-d7)
-4.27/1} 22. Qc6 {(f3c6) +4.66/1} f4 {(f5-f4 Qc6xd7 Rd8xd7) -4.44/1} 23.
Re1 {(d1e1) +4.62/1} e5 {(e6-e5) -4.36/1} 24. Qxd7 {(c6d7) +5.46/1} Rxd7
{(Rd8xd7) -3.82/1} 25. Bxe5 {(d4e5) +5.46/1} Re8 {(Ra8-e8) -5.38/1} 26.
Ree2 {(e1e2) +5.36/1} f3 {(f4-f3) -4.67/1} 27. gxf3 {(g2f3) +6.00/1} Rde7
{(Rd7-e7) -5.91/1} 28. Rxd6 {(d2d6) +3.40/1} Rxe5 {(Re7xe5) -3.84/1} 29.
Rxe5 {(e2e5) +3.40/1} Rxe5 {(Re8xe5 Rd6-d8+ Kg8-h7) -7.04/1} 30. Rd8+
{(d6d8) +3.46/1} Kh7 {(Kg8-h7) -7.04/1} 31. Rb8 {(d8b8) +4.36/1} Kg6
{(Kh7-g6) -1.45/1} 32. f4 {(f3f4) +4.34/1} Re1+ {(Re5-e1+ Kg1-g2) -1.82/1}
33. Kg2 {(g1g2) +3.32/1} Rc1 {(Re1-c1) -2.06/1} 34. Kf3 {(g2f3) +3.42/1}
Rd1 {(Rc1-d1) -2.24/1} 35. Ke4 {(f3e4) +3.82/1} Rd7 {(Rd1-d7) -2.34/1} 36.
Ke5 {(e4e5) +4.02/1} Re7+ {(Rd7-e7+ Ke5-d5) -6.11/1} 37. Kd5 {(e5d5)
+4.02/1} Re1 {(Re7-e1) -2.37/1} 38. Rb7 {(b8b7) +4.04/1} Rd1+ {(Re1-d1+
Kd5-c4 Rd1-c1+ Kc4-d4) -4.78/1} 39. Ke5 {(d5e5) +4.04/1} Re1+ {(Rd1-e1+
Ke5-d6) -4.20/1} 40. Kd5 {(e5d5) +4.04/1} Rd1+ {(Re1-d1+ Kd5-c4) -4.78/1}
41. Ke5 {(d5e5) +4.04/1} Re1+ {(Rd1-e1+ Ke5-d6 Re1-d1+ Kd6-c5) -4.18/1} 42.
Kd5 {(e5d5) +4.04/1 3-fold repetition} 1/2-1/2[/pgn]
User avatar
lithander
Posts: 881
Joined: Sun Dec 27, 2020 2:40 am
Location: Bremen, Germany
Full name: Thomas Jahn

Re: The PSTs of Carnivor

Post by lithander »

Interesting!

PeESTO uses different tables for mid and endgame. Is that kind of "tapered eval" so much more expensive to compute compared to just one table that it can explain why you could search a ply deeper with CAR? Or is something else going?

Why did you specify separate tables for black and white instead of just flipping them like most other PSTs do? What kind of distinctions did you make?
Minimal Chess (simple, open source, C#) - Youtube & Github
Leorik (competitive, in active development, C#) - Github & Lichess
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: The PSTs of Carnivor

Post by mvanthoor »

lithander wrote: Wed Mar 10, 2021 6:44 pm Interesting!

PeESTO uses different tables for mid and endgame. Is that kind of "tapered eval" so much more expensive to compute compared to just one table that it can explain why you could search a ply deeper with CAR? Or is something else going?
It shouldn't be much more expensive; not if you use incremental PST's.

Now I have a white and a black value for PST's, which is updated as the pieces move. Later, this will be renamed to mg_white and mg_black, and there will be additional values for eg_white and eg_black, using the endgame PST's. These will also be updated incrementally. (Thus, Perft will become slower.)

the MG values are the ones used when you're 100% in the opening/middle game, and the EG's are used when you're 100% in the endgame. If your engine is somewhere in between, lets say 70% towards the endgame, you use 0.7x of the endgame value and 0.3x of the opening value.

If done well, I've seen that tapered PST's gained up to 100 Elo. They'll be one of the first things I'm going to add after tuning the current evaluation. (So, i can tune the EG values too; I have much less of a feeling with the values that should be in there, than I do with the values for the MG.)

If you recalculate the PST's from scratch, each and every time you hit the evaluation function, it's going to be VERY expensive.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
tmokonen
Posts: 1296
Joined: Sun Mar 12, 2006 6:46 pm
Location: Kelowna
Full name: Tony Mokonen

Re: The PSTs of Carnivor

Post by tmokonen »

I noticed a bit of asymmetry in some of the PST values. Is that intentional?
Mike Sherwin
Posts: 860
Joined: Fri Aug 21, 2020 1:25 am
Location: Planet Earth, Sol system
Full name: Michael J Sherwin

Re: The PSTs of Carnivor

Post by Mike Sherwin »

lithander wrote: Wed Mar 10, 2021 6:44 pm Interesting!

PeESTO uses different tables for mid and endgame. Is that kind of "tapered eval" so much more expensive to compute compared to just one table that it can explain why you could search a ply deeper with CAR? Or is something else going?

Why did you specify separate tables for black and white instead of just flipping them like most other PSTs do? What kind of distinctions did you make?
Static PSTs are not a long term feature of Bric. So I only used the middlegame PeESTO. CAR works equally well in middlegame and endgame. Although two king tables might be better. Flipping tables was a way to save memory and to lessen the pressure on the cpu memory cache. On today's computers I'd ask the question, 'why are 'you' still flipping the PSTs. I did not intentionally make distinctions. But, I believe 17 years ago that possibility may have crossed my mind.

Why not make a version of your engine using CAR for the middlegame and see how it does?
Mike Sherwin
Posts: 860
Joined: Fri Aug 21, 2020 1:25 am
Location: Planet Earth, Sol system
Full name: Michael J Sherwin

Re: The PSTs of Carnivor

Post by Mike Sherwin »

tmokonen wrote: Wed Mar 10, 2021 9:19 pm I noticed a bit of asymmetry in some of the PST values. Is that intentional?
That was 17 years ago. I don't think it was intentional. Thanks for pointing it out though! :D
User avatar
lithander
Posts: 881
Joined: Sun Dec 27, 2020 2:40 am
Location: Bremen, Germany
Full name: Thomas Jahn

Re: The PSTs of Carnivor

Post by lithander »

Mike Sherwin wrote: Wed Mar 10, 2021 9:45 pm Flipping tables was a way to save memory and to lessen the pressure on the cpu memory cache. On today's computers I'd ask the question, 'why are 'you' still flipping the PSTs. I did not intentionally make distinctions. But, I believe 17 years ago that possibility may have crossed my mind.
I'm loading them from file, then flipping them once and I have a table for black and one for white just like you. But as yours aren't strictly symmetrical I thought you intentionally wanted to give black different square values than white.
Mike Sherwin wrote: Wed Mar 10, 2021 9:45 pm Why not make a version of your engine using CAR for the middlegame and see how it does?
No new version required. Just add another textfile in the 'pst' folder with your values and select it via UCI option. :)

What are the material values you use for the pieces? Then I'll make a PST file and post it here.
Minimal Chess (simple, open source, C#) - Youtube & Github
Leorik (competitive, in active development, C#) - Github & Lichess
Mike Sherwin
Posts: 860
Joined: Fri Aug 21, 2020 1:25 am
Location: Planet Earth, Sol system
Full name: Michael J Sherwin

Re: The PSTs of Carnivor

Post by Mike Sherwin »

lithander wrote: Wed Mar 10, 2021 10:35 pm
Mike Sherwin wrote: Wed Mar 10, 2021 9:45 pm Flipping tables was a way to save memory and to lessen the pressure on the cpu memory cache. On today's computers I'd ask the question, 'why are 'you' still flipping the PSTs. I did not intentionally make distinctions. But, I believe 17 years ago that possibility may have crossed my mind.
I'm loading them from file, then flipping them once and I have a table for black and one for white just like you. But as yours aren't strictly symmetrical I thought you intentionally wanted to give black different square values than white.
Mike Sherwin wrote: Wed Mar 10, 2021 9:45 pm Why not make a version of your engine using CAR for the middlegame and see how it does?
No new version required. Just add another textfile in the 'pst' folder with your values and select it via UCI option. :)

What are the material values you use for the pieces? Then I'll make a PST file and post it here.
Cool! :D
constexpr auto VP = 100;
constexpr auto VN = 290;
constexpr auto VB = 330;
constexpr auto VR = 500;
constexpr auto VQ = 900;
User avatar
lithander
Posts: 881
Joined: Sun Dec 27, 2020 2:40 am
Location: Bremen, Germany
Full name: Thomas Jahn

Re: The PSTs of Carnivor

Post by lithander »

Code: Select all

#PST from Carnivor by Mike Sherwin| Source: http://talkchess.com/forum3/viewtopic.php?f=7&t=76831&p=886615

Pawn 100
  0|  0|  0|  0|  0|  0|  0|  0
 40| 60| 60| 80| 80| 60| 60| 40
 20| 40| 40| 60| 60| 40| 40| 20
 10| 16| 12| 30| 30| 12|  8|  6
  8| 14| 16| 20| 20|  8|  6|  4
 12|  8|  0|-10|-10|  0|  4|  6
  4|  4|-24|-30|-30|  8|  8|  4
  0|  0|  0|  0|  0|  0|  0|  0

Knight 290   
  0|  6| 12| 12| 12| 12|  6|  0
  6| 12| 24| 36| 36| 24| 12|  6
 12| 24| 36| 40| 40| 36| 24| 12
 12| 24| 36| 42| 42| 36| 24| 12
 12| 24| 36| 40| 40| 36| 24| 12
 12| 24| 30| 36| 36| 38| 24| 12
  6| 12| 24| 30| 26| 24| 12|  6
  0|-10| 12| 12| 12| 12|-10|  0

Bishop 330
 6 |  0|  0|  0|  0|  0|  0|  6
 0 | 18| 20| 20| 20| 20| 18|  0
 0 | 12| 30| 24| 24| 30| 12|  0
 0 | 30| 24| 32| 32| 24| 30|  0
 16| 12| 32| 32| 32| 32| 12| 16
 0 | 20| 30| 12| 12| 30| 20|  0
 10| 30| 12| 12| 12| 12| 30| 10
 6 |  0|  0|  0|  0|  0|  0|  6

Rook 500
 22| 22| 22| 22| 22| 22| 22| 22
 24| 24| 24| 24| 24| 24| 24| 24
  6|  8| 10| 12| 12| 10|  8|  6
  4|  6|  8| 10| 10|  8|  6|  4
  4|  6|  8| 10| 10|  8|  6|  4
  6|  8| 10| 12| 12| 10|  8|  6
  8| 10| 10| 22| 22| 10| 10|  8
  8| 10| 12| 20| 20| 12| 10|  8

Queen 900
 18| 18| 18| 18| 18| 18| 18| 18
 18| 20| 20| 20| 20| 20| 20| 18
 16| 18| 20| 20| 20| 20| 18| 16
 16| 18| 20| 20| 20| 20| 18| 16
 14| 16| 18| 18| 18| 18| 16| 14
 14| 16| 18| 18| 18| 18| 16| 14
 14| 16| 16| 16| 16| 16| 16| 14
 14| 14| 14| 14| 14| 14| 14| 14

King 66666			
-10|-10|-10|-10|-10|-10|-10|-10
-10|  0|  0|  0|  0|  0|  0|-10
-10|  0| 20| 20| 20| 20|  0|-10
-10|  0| 20| 40| 40| 20|  0|-10
-10|  0| 20| 20| 20| 20|  0|-10
-20|-20|-20|-20|-20|-20|-20|-20
-30|-30|-30|-30|-30|-30|-30|-30
 20| 60| 20|-40|  0| 20| 60| 20
The POV of my files are as the white player sees a chess board. I'm running a few games now against my default values. And because I've been testing all the other PSTs against Rustic too I'm also playing yours against Rustic Alpha 1 now. Let's see if Carnivore's can beat texel-tuned Sunfish's! (which perform best against Rustic)
Minimal Chess (simple, open source, C#) - Youtube & Github
Leorik (competitive, in active development, C#) - Github & Lichess
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: The PSTs of Carnivor

Post by mvanthoor »

lithander wrote: Wed Mar 10, 2021 11:03 pm

Code: Select all

#PST from Carnivor by Mike Sherwin| Source: http://talkchess.com/forum3/viewtopic.php?f=7&t=76831&p=886615

Pawn 100
  0|  0|  0|  0|  0|  0|  0|  0
 40| 60| 60| 80| 80| 60| 60| 40
 20| 40| 40| 60| 60| 40| 40| 20
 10| 16| 12| 30| 30| 12|  8|  6
  8| 14| 16| 20| 20|  8|  6|  4
 12|  8|  0|-10|-10|  0|  4|  6
  4|  4|-24|-30|-30|  8|  8|  4
  0|  0|  0|  0|  0|  0|  0|  0

Knight 290   
  0|  6| 12| 12| 12| 12|  6|  0
  6| 12| 24| 36| 36| 24| 12|  6
 12| 24| 36| 40| 40| 36| 24| 12
 12| 24| 36| 42| 42| 36| 24| 12
 12| 24| 36| 40| 40| 36| 24| 12
 12| 24| 30| 36| 36| 38| 24| 12
  6| 12| 24| 30| 26| 24| 12|  6
  0|-10| 12| 12| 12| 12|-10|  0

Bishop 330
 6 |  0|  0|  0|  0|  0|  0|  6
 0 | 18| 20| 20| 20| 20| 18|  0
 0 | 12| 30| 24| 24| 30| 12|  0
 0 | 30| 24| 32| 32| 24| 30|  0
 16| 12| 32| 32| 32| 32| 12| 16
 0 | 20| 30| 12| 12| 30| 20|  0
 10| 30| 12| 12| 12| 12| 30| 10
 6 |  0|  0|  0|  0|  0|  0|  6

Rook 500
 22| 22| 22| 22| 22| 22| 22| 22
 24| 24| 24| 24| 24| 24| 24| 24
  6|  8| 10| 12| 12| 10|  8|  6
  4|  6|  8| 10| 10|  8|  6|  4
  4|  6|  8| 10| 10|  8|  6|  4
  6|  8| 10| 12| 12| 10|  8|  6
  8| 10| 10| 22| 22| 10| 10|  8
  8| 10| 12| 20| 20| 12| 10|  8

Queen 900
 18| 18| 18| 18| 18| 18| 18| 18
 18| 20| 20| 20| 20| 20| 20| 18
 16| 18| 20| 20| 20| 20| 18| 16
 16| 18| 20| 20| 20| 20| 18| 16
 14| 16| 18| 18| 18| 18| 16| 14
 14| 16| 18| 18| 18| 18| 16| 14
 14| 16| 16| 16| 16| 16| 16| 14
 14| 14| 14| 14| 14| 14| 14| 14

King 66666			
-10|-10|-10|-10|-10|-10|-10|-10
-10|  0|  0|  0|  0|  0|  0|-10
-10|  0| 20| 20| 20| 20|  0|-10
-10|  0| 20| 40| 40| 20|  0|-10
-10|  0| 20| 20| 20| 20|  0|-10
-20|-20|-20|-20|-20|-20|-20|-20
-30|-30|-30|-30|-30|-30|-30|-30
 20| 60| 20|-40|  0| 20| 60| 20
The POV of my files are as the white player sees a chess board. I'm running a few games now against my default values. And because I've been testing all the other PSTs against Rustic too I'm also playing yours against Rustic Alpha 1 now. Let's see if Carnivore's can beat texel-tuned Sunfish's! (which perform best against Rustic)
In that case I should try those. What is MMC’s performance against Rustic with those?

It would give me an idea what tuning could bring.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL