Thanks. I guess the first two actually need a few days of work by professionals if they figure it out somehow.The third and fourth, actually need some framework established which then could help to improve on those ideas and many new ones.
By the way I have tried to improve on outposts in evaluate.cpp. But since I could not get actual SF 1.7.1 compiled on my machine, I hacked it to do so. Then I tried the following. I guess its a bit of improvement based on 500 10sec games against initial hacked version. So if someone change the evaluate.cpp according to these and produce a standard compile and test it base on what you prefer (its 1000 1min games I assume) we may get a better view.
Code: Select all
const Score PawnOutpostBonus[64] = {
// A B C D E F G H
S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), // 1
S(0,3), S(0,3), S(0,5), S(0,5), S(0,5), S(0,5), S(0,3), S(0,3), // 2
S(3,5), S(5,7), S(5,7), S(7,10), S(7,10), S(5,7), S(5,7), S(3,5), // 3
S(5,7), S(7,10), S(10,15), S(15,20), S(15,20), S(10,15), S(7,10), S(5,7), // 4
S(6,10), S(10,18), S(14,20), S(18,30), S(18,30), S(14,20), S(10,18), S(6,10), // 5
S(7,25), S(14,30), S(18,40), S(23,50), S(23,50), S(18,40), S(14,30), S(7,25), // 6
S(10,50),S(20,60), S(25,70), S(30,80), S(30,80), S(25,70), S(20,60), S(10,50), // 7
S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), // 8
};
const Score KnightOutpostBonus[64] = {
// A B C D E F G H
S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), // 1
S(0,0), S(3,5), S(3,5), S(3,5), S(3,5), S(3,5), S(3,5), S(0,0), // 2
S(0,0), S(3,5), S(5,10), S(10,15), S(10,15), S(5,10), S(3,5), S(0,0), // 3
S(0,0), S(7,10), S(10,15), S(20,30), S(20,30), S(10,15), S(7,10), S(0,0), // 4
S(0,0), S(7,10), S(10,15), S(20,30), S(20,30), S(10,15), S(7,10), S(0,0), // 5
S(0,0), S(3,5), S(5,10), S(10,15), S(10,15), S(5,10), S(3,5), S(0,0), // 6
S(0,0), S(3,5), S(3,5), S(3,5), S(3,5), S(3,5), S(3,5), S(0,0), // 7
S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), // 8
};
const Score BishopOutpostBonus[64] = {
// A B C D E F G H
S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), // 1
S(0,0), S(3,5), S(3,5), S(3,5), S(3,5), S(3,5), S(3,5), S(0,0), // 2
S(0,0), S(3,5), S(5,7), S(7,15), S(7,15), S(5,7), S(3,5), S(0,0), // 3
S(0,0), S(3,5), S(7,15), S(10,25),S(10,25), S(7,15), S(3,5), S(0,0), // 4
S(0,0), S(3,5), S(7,15), S(10,25),S(10,25), S(7,15), S(3,5), S(0,0), // 5
S(0,0), S(3,5), S(5,7), S(7,15), S(7,15), S(5,7), S(3,5), S(0,0), // 6
S(0,0), S(3,5), S(3,5), S(3,5), S(3,5), S(3,5), S(3,5), S(0,0), // 7
S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), // 8
};
const Score RookOutpostBonus[64] = { // mmm added
// A B C D E F G H
S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), // 1
S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), // 2
S(0,0), S(0,0), S(0,5), S(0,10), S(0,10), S(0,5), S(0,0), S(0,0), // 3
S(0,0), S(0,0), S(0,10),S(0,20), S(0,20), S(0,10), S(0,0), S(0,0), // 4
S(0,0), S(0,0), S(0,10),S(0,20), S(0,20), S(0,10), S(0,0), S(0,0), // 5
S(0,0), S(0,0), S(0,5), S(0,10), S(0,10), S(0,5), S(0,0), S(0,0), // 6
S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), // 7
S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), // 8
};
const Score QueenOutpostBonus[64] = {// mmm added
// A B C D E F G H
S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), // 1
S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), // 2
S(0,0), S(0,0), S(0,5), S(0,10), S(0,10), S(0,5), S(0,0), S(0,0), // 3
S(0,0), S(0,0), S(0,10),S(0,20), S(0,20), S(0,10), S(0,0), S(0,0), // 4
S(0,0), S(0,0), S(0,10),S(0,20), S(0,20), S(0,10), S(0,0), S(0,0), // 5
S(0,0), S(0,0), S(0,5), S(0,10), S(0,10), S(0,5), S(0,0), S(0,0), // 6
S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), // 7
S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), S(0,0), // 8
};
Note that values are experimental, there could be better sets. Then change evaluate_outposts with this: