Page 1 of 4

HekaStockfish 0.9

Posted: Sat Mar 14, 2020 2:31 am
by majkelnowaq
It's pre-release Hekastockfish, Thothfish's successor. It's unfinished project, based on Stockfish from X.2019, I called it version 0.9, it's better than not release at all. Unfinished because i planned to tune every new evaluation functions, but I have just few free cores, so I couldn't manage it and probably won't do it in future without some serious hardware. I discover for example that "croc" -8 and 8 (both) seems have interesting performance, most evaluation elements should be tuned in range -100 to 100, bigger and lower values rather for fun, exception for "tri", one can use extreme values without big harm to engine strength (first I thought it doesn't work but after some tests with among the others mea and sts - I saw it somehow affects engine).

I don't want to explain every evaluation option hidden behind mysterious name like "twa", "cas" etc. Don't want do it because they don't work exactly as was expected, but work anyway and correctly tuned, I believe, they can improve engine strength. If some have possibilities I recommend to experiment with random values from -100 to 100 or at least from -20 to 20 in cutechess or something similar. All evaluation options are related to mobility in some sense, one can read their code in added txt file "evaluation options" or in source files.

Exchange functions are still here like in Thothfsh. Added code from Brainfish for .bin books usage. Added some reverted code from Stockfish tests page connected to multipv.

One new function, I think really deserving for interest is called presearch. Its value is set to 2. You can change it from 0 to 1000. Value means KK of nodes, so 2 means 2 000 000 nodes. Engine decreases reduction and pruning and also use multipv (8) for first 2KK nodes of its search, then switch to normal searching. Its good to find any tactics and still be able for normal game, not only analysis. With presearch set to 50 or 100 engine should find most hardest tactic moves. For very short time control I recommend to change value to 0, but if one has good hardware or/and its LTC game, one can set it to higher values. Generally it's important that presearch time should be only part of time dedicated to move (like 1/4 or 1/10); So if it is 5min + 5s/move game and pc has over 2KK/s; should be safe to have presearch at 2 KK; other example - with 3min + 3s/move game, but this time with pc with 20KK/move we can use presearch 5 or higher. I encourage you to experiments. From my experience this function not only helps engine to avoid miss brilliant moves but makes it stronger overall (based on my own engine-engine tournaments and sts suite tests).

In .zip file you ll find 3 versions of engine (popcnt, bmi2, nopopcnt), logo image, source files and .txt file with code of new evaluation options. Additionally I put there some of pgns which I usually use to test engines, maybe someone find them useful.

Some notes: If you compiling it on your own you ll see some warnings, don't bother, engine and options work, I didn't have any crash in literally thousands of games. If you change manually multipv from 1 to higher value, presearch won't work; works only with multipv=1. Contempt in range from -10 000 to 10 000 for fun and testing.

Links:
https://www.solidfiles.com/v/GvWpRzPBBZAv2
https://www30.zippyshare.com/v/3sekrLIw/file.html
http://www.mediafire.com/file/mez7zf25l ... 9.zip/file

Re: HekaStockfish 0.9

Posted: Sat Mar 14, 2020 4:23 am
by MikeB
majkelnowaq wrote: Sat Mar 14, 2020 2:31 am It's pre-release Hekastockfish, Thothfish's successor. It's unfinished project, based on Stockfish from X.2019, I called it version 0.9, it's better than not release at all. Unfinished because i planned to tune every new evaluation functions, but I have just few free cores, so I couldn't manage it and probably won't do it in future without some serious hardware. I discover for example that "croc" -8 and 8 (both) seems have interesting performance, most evaluation elements should be tuned in range -100 to 100, bigger and lower values rather for fun, exception for "tri", one can use extreme values without big harm to engine strength (first I thought it doesn't work but after some tests with among the others mea and sts - I saw it somehow affects engine).

I don't want to explain every evaluation option hidden behind mysterious name like "twa", "cas" etc. Don't want do it because they don't work exactly as was expected, but work anyway and correctly tuned, I believe, they can improve engine strength. If some have possibilities I recommend to experiment with random values from -100 to 100 or at least from -20 to 20 in cutechess or something similar. All evaluation options are related to mobility in some sense, one can read their code in added txt file "evaluation options" or in source files.

Exchange functions are still here like in Thothfsh. Added code from Brainfish for .bin books usage. Added some reverted code from Stockfish tests page connected to multipv.

One new function, I think really deserving for interest is called presearch. Its value is set to 2. You can change it from 0 to 1000. Value means KK of nodes, so 2 means 2 000 000 nodes. Engine decreases reduction and pruning and also use multipv (8) for first 2KK nodes of its search, then switch to normal searching. Its good to find any tactics and still be able for normal game, not only analysis. With presearch set to 50 or 100 engine should find most hardest tactic moves. For very short time control I recommend to change value to 0, but if one has good hardware or/and its LTC game, one can set it to higher values. Generally it's important that presearch time should be only part of time dedicated to move (like 1/4 or 1/10); So if it is 5min + 5s/move game and pc has over 2KK/s; should be safe to have presearch at 2 KK; other example - with 3min + 3s/move game, but this time with pc with 20KK/move we can use presearch 5 or higher. I encourage you to experiments. From my experience this function not only helps engine to avoid miss brilliant moves but makes it stronger overall (based on my own engine-engine tournaments and sts suite tests).

In .zip file you ll find 3 versions of engine (popcnt, bmi2, nopopcnt), logo image, source files and .txt file with code of new evaluation options. Additionally I put there some of pgns which I usually use to test engines, maybe someone find them useful.

Some notes: If you compiling it on your own you ll see some warnings, don't bother, engine and options work, I didn't have any crash in literally thousands of games. If you change manually multipv from 1 to higher value, presearch won't work; works only with multipv=1. Contempt in range from -10 000 to 10 000 for fun and testing.

Links:
https://www.solidfiles.com/v/GvWpRzPBBZAv2
https://www30.zippyshare.com/v/3sekrLIw/file.html
http://www.mediafire.com/file/mez7zf25l ... 9.zip/file
Would be nice if the files were available on a less invasive site such as google drive or dropbox. Thx

Re: HekaStockfish 0.9

Posted: Sat Mar 14, 2020 4:32 am
by majkelnowaq
As you wish MikeB:

To be honest I don't find these sites invasive, maybe the reason is I always use some kind of adblock for browser (so basically have no idea how these sites look without anti-ads software)...

Re: HekaStockfish 0.9

Posted: Sat Mar 14, 2020 10:36 am
by Damir
Many thanks for the new engine Majkel. :) :) :D

Re: HekaStockfish 0.9

Posted: Sat Mar 14, 2020 10:37 am
by Damir

Re: HekaStockfish 0.9

Posted: Sat Mar 14, 2020 11:12 am
by Damir
Majkel, do you plan on trying and put the learning function like that in Eman, Sugar,BrainLearn and Raubfisch ? :) :) :D

Re: HekaStockfish 0.9

Posted: Sat Mar 14, 2020 6:06 pm
by majkelnowaq
Unfortunately Im not planning such thing. Didn't try it before but I guess it wouldn't be so difficult if just took one of existing NN engines and only add my code. Anyway from my perspective is unnecessary. I tried and tested many called "self-learning" engines, strength they gain by playing games isn't convincing for me.

If NN engine would play 1000 games, it gain some elo (maybe), but on the other hand from that 1000 games I could create bin or abk book which would bring for sure more elo than modified hash of NN engine.

Second thing is that solid/permament hash brings complications too, for example if engine meet same position which draw in past - it's more blind, play for draw, more chances to miss threat from opponent.

Last thing - such engines are ungrateful for testing, their play-strength is fluid, not stable so any longer tournaments are meaningless because engine from beginning tournament isn't the same in the end.

To sum it up only benefit from NN engines is specific kind of internal book and if one looking for a book for engine - it would be much better to find normal polyglot book or create one from LTC games, but' that's just my opinion, I know many people see in NN engines something I can't notice.

I released Hekastockfish to give away what I had, Im not currently developing any project. I can give away one other engine, it has presearch too, created for analysis. In this engine (.exe called goldeno7, just one version - popcnt) besides presearch you ll find check-boxes with names of pruning techniques, if you check them - it ll disable chosen pruning. Quite good for analysing position or looking which kind of pruning blocking Sf from seeing solution in chess puzzle. Of course one can disable many prunings at once.

Links:
https://www94.zippyshare.com/v/1sRiTHiq/file.html
http://www.mediafire.com/file/iw3zp227x ... g.zip/file

Re: HekaStockfish 0.9

Posted: Sun Mar 15, 2020 11:01 pm
by MikeB
Thanks for those who posted source to Dropbox.
Quite a few innovative ideas here!

Re: HekaStockfish 0.9

Posted: Sun Mar 15, 2020 11:05 pm
by Ovyron
Thanks for sharing majkelnowaq! I've been looking for an engine that can do this for a long while!

Re: HekaStockfish 0.9

Posted: Mon Mar 16, 2020 1:38 pm
by Scally
Hi,

Is this Engine meant for Windows only or maybe just 64 bit?

I can’t get it to compile on my Raspberry Pi, whereas I’ve had no trouble with any other Stockfish variants.


Thanks,

Al.