Evaluation questions

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Henk
Posts: 7216
Joined: Mon May 27, 2013 10:31 am

Re: Evaluation questions

Post by Henk »

I don't know about bad captures. My SEE is slow and at higher depths bad captures might turn out to be good sacrifices.
So it won't solve some tactical puzzles for it thought they were 'bad captures'
BrokenKeyboard
Posts: 24
Joined: Tue Mar 16, 2021 11:11 pm
Full name: Het Satasiya

Re: Evaluation questions

Post by BrokenKeyboard »

lithander wrote: Thu Aug 19, 2021 11:37 am I would suggest you develop your engine step by step (testing each addition throughly in a few thousand engine vs engine matches) focusing equal attention on improving the search, eval and move ordering.
+1 to this, Having a lot of testing to figure out which updates actually help engine strength will really help guide development.
If you haven't already, I'd recommend downloading the cute-chess-cli and then running SPRT between your engine without x feature and your engine with x feature. That would allow you to determine whether or not that change really helped.
amanjpro
Posts: 883
Joined: Sat Mar 13, 2021 1:47 am
Full name: Amanj Sherwany

Re: Evaluation questions

Post by amanjpro »

BrokenKeyboard wrote: Fri Aug 20, 2021 12:48 am
lithander wrote: Thu Aug 19, 2021 11:37 am I would suggest you develop your engine step by step (testing each addition throughly in a few thousand engine vs engine matches) focusing equal attention on improving the search, eval and move ordering.
+1 to this, Having a lot of testing to figure out which updates actually help engine strength will really help guide development.
If you haven't already, I'd recommend downloading the cute-chess-cli and then running SPRT between your engine without x feature and your engine with x feature. That would allow you to determine whether or not that change really helped.
What is your setting for SPRT? I do this:

-sprt elo0=1 elo1=5 alpha=0.05 beta=0.05

But many times I see that engine_next is +1 elo points over engine_master (even if you take out the +/-) part, but the test continues... for example it is something like: 16 +/- 15, I thought this should quit the test, as the first condition is met, but I might have understood (or misunderstood really) the whole thing completely wrong
User avatar
j.t.
Posts: 239
Joined: Wed Jun 16, 2021 2:08 am
Location: Berlin
Full name: Jost Triller

Re: Evaluation questions

Post by j.t. »

amanjpro wrote: Fri Aug 20, 2021 1:42 am What is your setting for SPRT? I do this:

-sprt elo0=1 elo1=5 alpha=0.05 beta=0.05

But many times I see that engine_next is +1 elo points over engine_master (even if you take out the +/-) part, but the test continues... for example it is something like: 16 +/- 15, I thought this should quit the test, as the first condition is met, but I might have understood (or misunderstood really) the whole thing completely wrong
I don't really understand, why one would need a different null-hypothesis that just the implicit opposite of the alternative hypothesis. If I understood correctly (I am not sure that I did!), it may work if you set elo1 also to 1 (which would mean that the null-hypthesis is that your new engine is not better than at least 1 Elo point).
amanjpro
Posts: 883
Joined: Sat Mar 13, 2021 1:47 am
Full name: Amanj Sherwany

Re: Evaluation questions

Post by amanjpro »

j.t. wrote: Fri Aug 20, 2021 5:00 pm
amanjpro wrote: Fri Aug 20, 2021 1:42 am What is your setting for SPRT? I do this:

-sprt elo0=1 elo1=5 alpha=0.05 beta=0.05

But many times I see that engine_next is +1 elo points over engine_master (even if you take out the +/-) part, but the test continues... for example it is something like: 16 +/- 15, I thought this should quit the test, as the first condition is met, but I might have understood (or misunderstood really) the whole thing completely wrong
I don't really understand, why one would need a different null-hypothesis that just the implicit opposite of the alternative hypothesis. If I understood correctly (I am not sure that I did!), it may work if you set elo1 also to 1 (which would mean that the null-hypthesis is that your new engine is not better than at least 1 Elo point).
Ah! I'll do test it with your suggestion, and see :) Thanks a lot
User avatar
RedBedHed
Posts: 84
Joined: Wed Aug 04, 2021 12:42 am
Full name: Ellie Moore

Re: Evaluation questions

Post by RedBedHed »

Thomas and Amanj,

Thank you for these ordering schemes! I am going to try them out asap.

Thomas,

for MVV-LVA...

I think the size of the moves usually ranges from 1-100... So it would probably make sense to leverage caching when sorting...

Would you recommend insertion-sort? Or would a combination of insertion-sort and dual-pivot-quicksort be better? I know that these sorts rely on swapping pretty heavily... and dual-pivot-quicksort seems to do very well between 32-256 elements. Also, stability shouldn't matter much, right? (Would it make a difference how two "equal" moves are ordered?)
>> Move Generator: Charon
>> Engine: Homura
void life() { playCapitalism(); return; live(); }
User avatar
RedBedHed
Posts: 84
Joined: Wed Aug 04, 2021 12:42 am
Full name: Ellie Moore

Re: Evaluation questions

Post by RedBedHed »

Thomas,

Currently, I have a plain alpha-beta search that uses Zobrist keys to avoid repititions. I have implemented a piece-wise and square-wise evaluation with penalties for check and checkmate. I order moves by placing attack moves in front of passive moves.

I know it is a rough start... However, school just resumed. I won't be able to really improve things for at least a month. :/
>> Move Generator: Charon
>> Engine: Homura
void life() { playCapitalism(); return; live(); }
User avatar
RedBedHed
Posts: 84
Joined: Wed Aug 04, 2021 12:42 am
Full name: Ellie Moore

Re: Evaluation questions

Post by RedBedHed »

Staged move generation sounds very interesting, and (thanks to C++ templates) I think that I could build support into the current generator without hurting its speed too much...
>> Move Generator: Charon
>> Engine: Homura
void life() { playCapitalism(); return; live(); }
User avatar
RedBedHed
Posts: 84
Joined: Wed Aug 04, 2021 12:42 am
Full name: Ellie Moore

Re: Evaluation questions

Post by RedBedHed »

Jost, Amanj, and Het,

My stats skills are rusty lol. I'll have to see if I can fit in a quick review...
>> Move Generator: Charon
>> Engine: Homura
void life() { playCapitalism(); return; live(); }
Henk
Posts: 7216
Joined: Mon May 27, 2013 10:31 am

Re: Evaluation questions

Post by Henk »

Best advice is to quit. But fools never listen to good advice.