mirror of
https://github.com/sockspls/badfish
synced 2025-04-29 16:23:09 +00:00
Another PSQT tuning round
This time with a new algorithm by Joona. It works basically like this: repeat { 1) pick 8000 random positions from qsearch 2) "go depth 8" to get the true evaluation. 3) "eval" to get the stand pat score 4) Adjusting parameters one by one to minimize deltasum between true evaluation and stand pat scores. } * Good news: method seems to converge * Bad news: Point where it converges is not optimum. So it's more or less trial and error... sometimes works, sometimes doesn't. It can give you the right direction, but if you let it run too long, it fails. Far from scientific ;) After 14800 games with 5s/game Orig - Mod: 3318 - 3570 - 7626 (+6 elo) Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
parent
4d170725ab
commit
b24a2dfc72
1 changed files with 113 additions and 138 deletions
191
src/psqtab.h
191
src/psqtab.h
|
@ -29,74 +29,62 @@
|
|||
|
||||
|
||||
////
|
||||
//// Constants modified by Joona Kiiski
|
||||
//// Values tuned by Joona Kiiski
|
||||
////
|
||||
|
||||
static const Value MP = PawnValueMidgame;
|
||||
static const Value MK = KnightValueMidgame;
|
||||
static const Value MB = BishopValueMidgame;
|
||||
static const Value MR = RookValueMidgame;
|
||||
static const Value MQ = QueenValueMidgame;
|
||||
|
||||
static const int MgPST[][64] = {
|
||||
static const int MgPST[][64] = { // [piece][square]
|
||||
{},
|
||||
{ // Pawn
|
||||
// A B C D E F G H
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
MP-28, MP-6, MP+ 4, MP+14, MP+14, MP+ 4, MP-6, MP-28,
|
||||
MP-28, MP-6, MP+ 9, MP+36, MP+36, MP+ 9, MP-6, MP-28,
|
||||
MP-28, MP-6, MP+17, MP+58, MP+58, MP+17, MP-6, MP-28,
|
||||
MP-28, MP-6, MP+17, MP+36, MP+36, MP+17, MP-6, MP-28,
|
||||
MP-28, MP-6, MP+ 9, MP+14, MP+14, MP+ 9, MP-6, MP-28,
|
||||
MP-28, MP-6, MP+ 4, MP+14, MP+14, MP+ 4, MP-6, MP-28,
|
||||
0, 0, 0, 0, 0, 0, 0, 0
|
||||
4, 5, 7, 8, 8, 7, 5, 4,
|
||||
162, 183, 194, 204, 204, 194, 183, 162,
|
||||
164, 185, 201, 227, 227, 201, 185, 164,
|
||||
165, 186, 210, 247, 247, 210, 186, 165,
|
||||
166, 187, 211, 229, 229, 211, 187, 166,
|
||||
167, 188, 204, 209, 209, 204, 188, 167,
|
||||
168, 189, 200, 210, 210, 200, 189, 168,
|
||||
8, 9, 11, 12, 12, 11, 9, 8
|
||||
},
|
||||
{ // Knight
|
||||
// A B C D E F G H
|
||||
MK-135, MK-107, MK-80, MK-67, MK-67, MK-80, MK-107, MK-135,
|
||||
MK- 93, MK- 67, MK-39, MK-25, MK-25, MK-39, MK- 67, MK- 93,
|
||||
MK- 53, MK- 25, MK+ 1, MK+13, MK+13, MK+ 1, MK- 25, MK- 53,
|
||||
MK- 25, MK+ 1, MK+27, MK+41, MK+41, MK+27, MK+ 1, MK- 25,
|
||||
MK- 11, MK+ 13, MK+41, MK+55, MK+55, MK+41, MK+ 13, MK- 11,
|
||||
MK- 11, MK+ 13, MK+41, MK+55, MK+55, MK+41, MK+ 13, MK- 11,
|
||||
MK- 53, MK- 25, MK+ 1, MK+13, MK+13, MK+ 1, MK- 25, MK- 53,
|
||||
MK-193, MK- 67, MK-39, MK-25, MK-25, MK-39, MK- 67, MK-193
|
||||
675, 709, 742, 759, 759, 742, 709, 675,
|
||||
721, 752, 785, 802, 802, 785, 752, 721,
|
||||
765, 797, 827, 841, 841, 827, 797, 765,
|
||||
794, 823, 853, 869, 869, 853, 823, 794,
|
||||
808, 834, 865, 881, 881, 865, 834, 808,
|
||||
807, 833, 864, 879, 879, 864, 833, 807,
|
||||
764, 794, 823, 837, 837, 823, 794, 764,
|
||||
624, 752, 783, 799, 799, 783, 752, 624
|
||||
},
|
||||
{ // Bishop
|
||||
// A B C D E F G H
|
||||
MB-40, MB-40, MB-35, MB-30, MB-30, MB-35, MB-40, MB-40,
|
||||
MB-17, MB+ 0, MB- 4, MB+ 0, MB+ 0, MB- 4, MB+ 0, MB-17,
|
||||
MB-13, MB- 4, MB+ 8, MB+ 4, MB+ 4, MB+ 8, MB- 4, MB-13,
|
||||
MB- 8, MB+ 0, MB+ 4, MB+17, MB+17, MB+ 4, MB+ 0, MB- 8,
|
||||
MB- 8, MB+ 0, MB+ 4, MB+17, MB+17, MB+ 4, MB+ 0, MB- 8,
|
||||
MB-13, MB- 4, MB+ 8, MB+ 4, MB+ 4, MB+ 8, MB- 4, MB-13,
|
||||
MB-17, MB+ 0, MB- 4, MB+ 0, MB+ 0, MB- 4, MB+ 0, MB-17,
|
||||
MB-17, MB-17, MB-13, MB- 8, MB- 8, MB-13, MB-17, MB-17
|
||||
795, 792, 796, 800, 800, 796, 792, 795,
|
||||
824, 845, 841, 844, 844, 841, 845, 824,
|
||||
830, 841, 855, 848, 848, 855, 841, 830,
|
||||
835, 844, 848, 867, 867, 848, 844, 835,
|
||||
834, 843, 847, 866, 866, 847, 843, 834,
|
||||
827, 838, 852, 845, 845, 852, 838, 827,
|
||||
821, 841, 837, 840, 840, 837, 841, 821,
|
||||
821, 820, 824, 830, 830, 824, 820, 821
|
||||
},
|
||||
{ // Rook
|
||||
// A B C D E F G H
|
||||
MR-12, MR-7, MR-2, MR+2, MR+2, MR-2, MR-7, MR-12,
|
||||
MR-12, MR-7, MR-2, MR+2, MR+2, MR-2, MR-7, MR-12,
|
||||
MR-12, MR-7, MR-2, MR+2, MR+2, MR-2, MR-7, MR-12,
|
||||
MR-12, MR-7, MR-2, MR+2, MR+2, MR-2, MR-7, MR-12,
|
||||
MR-12, MR-7, MR-2, MR+2, MR+2, MR-2, MR-7, MR-12,
|
||||
MR-12, MR-7, MR-2, MR+2, MR+2, MR-2, MR-7, MR-12,
|
||||
MR-12, MR-7, MR-2, MR+2, MR+2, MR-2, MR-7, MR-12,
|
||||
MR-12, MR-7, MR-2, MR+2, MR+2, MR-2, MR-7, MR-12
|
||||
1258, 1263, 1268, 1272, 1272, 1268, 1263, 1258,
|
||||
1258, 1263, 1268, 1272, 1272, 1268, 1263, 1258,
|
||||
1258, 1263, 1268, 1272, 1272, 1268, 1263, 1258,
|
||||
1258, 1263, 1268, 1272, 1272, 1268, 1263, 1258,
|
||||
1258, 1263, 1268, 1272, 1272, 1268, 1263, 1258,
|
||||
1258, 1263, 1268, 1272, 1272, 1268, 1263, 1258,
|
||||
1258, 1263, 1268, 1272, 1272, 1268, 1263, 1258,
|
||||
1258, 1263, 1268, 1272, 1272, 1268, 1263, 1258
|
||||
},
|
||||
{ // Queen
|
||||
// A B C D E F G H
|
||||
MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8,
|
||||
MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8,
|
||||
MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8,
|
||||
MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8,
|
||||
MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8,
|
||||
MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8,
|
||||
MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8,
|
||||
MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8, MQ+8
|
||||
2529, 2529, 2529, 2529, 2529, 2529, 2529, 2529,
|
||||
2529, 2529, 2529, 2529, 2529, 2529, 2529, 2529,
|
||||
2529, 2529, 2529, 2529, 2529, 2529, 2529, 2529,
|
||||
2529, 2529, 2529, 2529, 2529, 2529, 2529, 2529,
|
||||
2529, 2529, 2529, 2529, 2529, 2529, 2529, 2529,
|
||||
2529, 2529, 2529, 2529, 2529, 2529, 2529, 2529,
|
||||
2529, 2529, 2529, 2529, 2529, 2529, 2529, 2529,
|
||||
2529, 2529, 2529, 2529, 2529, 2529, 2529, 2529
|
||||
},
|
||||
{ // King
|
||||
//A B C D E F G H
|
||||
287, 311, 262, 214, 214, 262, 311, 287,
|
||||
262, 287, 238, 190, 190, 238, 287, 262,
|
||||
214, 238, 190, 142, 142, 190, 238, 214,
|
||||
|
@ -108,71 +96,59 @@ static const int MgPST[][64] = {
|
|||
}
|
||||
};
|
||||
|
||||
static const Value EP = PawnValueEndgame;
|
||||
static const Value EK = KnightValueEndgame;
|
||||
static const Value EB = BishopValueEndgame;
|
||||
static const Value ER = RookValueEndgame;
|
||||
static const Value EQ = QueenValueEndgame;
|
||||
|
||||
static const int EgPST[][64] = {
|
||||
static const int EgPST[][64] = { // [piece][square]
|
||||
{},
|
||||
{ // Pawn
|
||||
// A B C D E F G H
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8,
|
||||
EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8,
|
||||
EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8,
|
||||
EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8,
|
||||
EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8,
|
||||
EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8, EP-8,
|
||||
0, 0, 0, 0, 0, 0, 0, 0
|
||||
2, 0, -2, -4, -4, -2, 0, 2,
|
||||
253, 251, 249, 247, 247, 249, 251, 253,
|
||||
253, 251, 249, 247, 247, 249, 251, 253,
|
||||
253, 251, 249, 247, 247, 249, 251, 253,
|
||||
254, 252, 250, 248, 248, 250, 252, 254,
|
||||
254, 252, 250, 248, 248, 250, 252, 254,
|
||||
254, 252, 250, 248, 248, 250, 252, 254,
|
||||
4, 2, 0, -2, -2, 0, 2, 4
|
||||
},
|
||||
{ // Knight
|
||||
// A B C D E F G H
|
||||
EK-104, EK-79, EK-55, EK-42, EK-42, EK-55, EK-79, EK-104,
|
||||
EK- 79, EK-55, EK-30, EK-17, EK-17, EK-30, EK-55, EK- 79,
|
||||
EK- 55, EK-30, EK- 6, EK+ 5, EK+ 5, EK- 6, EK-30, EK- 55,
|
||||
EK- 42, EK-17, EK+ 5, EK+18, EK+18, EK+ 5, EK-17, EK- 42,
|
||||
EK- 42, EK-17, EK+ 5, EK+18, EK+18, EK+ 5, EK-17, EK- 42,
|
||||
EK- 55, EK-30, EK- 6, EK+ 5, EK+ 5, EK- 6, EK-30, EK- 55,
|
||||
EK- 79, EK-55, EK-30, EK-17, EK-17, EK-30, EK-55, EK- 79,
|
||||
EK-104, EK-79, EK-55, EK-42, EK-42, EK-55, EK-79, EK-104
|
||||
741, 765, 791, 806, 806, 791, 765, 741,
|
||||
766, 790, 818, 834, 834, 818, 790, 766,
|
||||
790, 816, 844, 858, 858, 844, 816, 790,
|
||||
803, 830, 855, 873, 873, 855, 830, 803,
|
||||
803, 830, 855, 873, 873, 855, 830, 803,
|
||||
790, 816, 844, 858, 858, 844, 816, 790,
|
||||
766, 790, 818, 834, 834, 818, 790, 766,
|
||||
741, 765, 791, 806, 806, 791, 765, 741
|
||||
},
|
||||
{ // Bishop
|
||||
// A B C D E F G H
|
||||
EB-59, EB-42, EB-35, EB-26, EB-26, EB-35, EB-42, EB-59,
|
||||
EB-42, EB-26, EB-18, EB-11, EB-11, EB-18, EB-26, EB-42,
|
||||
EB-35, EB-18, EB-11, EB- 4, EB- 4, EB-11, EB-18, EB-35,
|
||||
EB-26, EB-11, EB- 4, EB+ 4, EB+ 4, EB- 4, EB-11, EB-26,
|
||||
EB-26, EB-11, EB- 4, EB+ 4, EB+ 4, EB- 4, EB-11, EB-26,
|
||||
EB-35, EB-18, EB-11, EB- 4, EB- 4, EB-11, EB-18, EB-35,
|
||||
EB-42, EB-26, EB-18, EB-11, EB-11, EB-18, EB-26, EB-42,
|
||||
EB-59, EB-42, EB-35, EB-26, EB-26, EB-35, EB-42, EB-59
|
||||
798, 816, 826, 836, 836, 826, 816, 798,
|
||||
814, 831, 841, 849, 849, 841, 831, 814,
|
||||
820, 838, 847, 856, 856, 847, 838, 820,
|
||||
829, 845, 855, 865, 865, 855, 845, 829,
|
||||
830, 846, 856, 866, 866, 856, 846, 830,
|
||||
821, 840, 850, 859, 859, 850, 840, 821,
|
||||
815, 833, 844, 853, 853, 844, 833, 815,
|
||||
798, 817, 828, 839, 839, 828, 817, 798
|
||||
},
|
||||
{ // Rook
|
||||
// A B C D E F G H
|
||||
ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3,
|
||||
ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3,
|
||||
ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3,
|
||||
ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3,
|
||||
ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3,
|
||||
ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3,
|
||||
ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3,
|
||||
ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3, ER+3
|
||||
1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281,
|
||||
1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281,
|
||||
1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281,
|
||||
1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281,
|
||||
1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281,
|
||||
1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281,
|
||||
1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281,
|
||||
1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281
|
||||
},
|
||||
{ // Queen
|
||||
// A B C D E F G H
|
||||
EQ-80, EQ-54, EQ-42, EQ-30, EQ-30, EQ-42, EQ-54, EQ-80,
|
||||
EQ-54, EQ-30, EQ-18, EQ- 6, EQ- 6, EQ-18, EQ-30, EQ-54,
|
||||
EQ-42, EQ-18, EQ- 6, EQ+ 6, EQ+ 6, EQ- 6, EQ-18, EQ-42,
|
||||
EQ-30, EQ- 6, EQ+ 6, EQ+18, EQ+18, EQ+ 6, EQ- 6, EQ-30,
|
||||
EQ-30, EQ- 6, EQ+ 6, EQ+18, EQ+18, EQ+ 6, EQ- 6, EQ-30,
|
||||
EQ-42, EQ-18, EQ- 6, EQ+ 6, EQ+ 6, EQ- 6, EQ-18, EQ-42,
|
||||
EQ-54, EQ-30, EQ-18, EQ- 6, EQ- 6, EQ-18, EQ-30, EQ-54,
|
||||
EQ-80, EQ-54, EQ-42, EQ-30, EQ-30, EQ-42, EQ-54, EQ-80
|
||||
2478, 2504, 2516, 2528, 2528, 2516, 2504, 2478,
|
||||
2504, 2528, 2540, 2552, 2552, 2540, 2528, 2504,
|
||||
2516, 2540, 2552, 2564, 2564, 2552, 2540, 2516,
|
||||
2528, 2552, 2564, 2576, 2576, 2564, 2552, 2528,
|
||||
2528, 2552, 2564, 2576, 2576, 2564, 2552, 2528,
|
||||
2516, 2540, 2552, 2564, 2564, 2552, 2540, 2516,
|
||||
2504, 2528, 2540, 2552, 2552, 2540, 2528, 2504,
|
||||
2478, 2504, 2516, 2528, 2528, 2516, 2504, 2478
|
||||
},
|
||||
{ // King
|
||||
//A B C D E F G H
|
||||
18, 77, 105, 135, 135, 105, 77, 18,
|
||||
77, 135, 165, 193, 193, 165, 135, 77,
|
||||
105, 165, 193, 222, 222, 193, 165, 105,
|
||||
|
@ -184,5 +160,4 @@ static const int EgPST[][64] = {
|
|||
}
|
||||
};
|
||||
|
||||
|
||||
#endif // !defined(PSQTAB_H_INCLUDED)
|
||||
|
|
Loading…
Add table
Reference in a new issue