HekaStockfish 0.9

Discussion of anything and everything relating to chess playing software and machines.

Moderators: bob, hgm, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
majkelnowaq
Posts: 25
Joined: Fri Aug 10, 2018 2:07 pm
Full name: D.S.

HekaStockfish 0.9

Post by majkelnowaq » Sat Mar 14, 2020 1: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

User avatar
MikeB
Posts: 3933
Joined: Thu Mar 09, 2006 5:34 am
Location: Pen Argyl, Pennsylvania

Re: HekaStockfish 0.9

Post by MikeB » Sat Mar 14, 2020 3:23 am

majkelnowaq wrote:
Sat Mar 14, 2020 1: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

majkelnowaq
Posts: 25
Joined: Fri Aug 10, 2018 2:07 pm
Full name: D.S.

Re: HekaStockfish 0.9

Post by majkelnowaq » Sat Mar 14, 2020 3:32 am

As you wish MikeB: https://drive.google.com/file/d/12XYwhl ... 8mv5W/view

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)...

Damir
Posts: 2338
Joined: Mon Feb 11, 2008 2:53 pm
Location: Denmark
Full name: Damir Desevac

Re: HekaStockfish 0.9

Post by Damir » Sat Mar 14, 2020 9:36 am

Many thanks for the new engine Majkel. :) :) :D

Damir
Posts: 2338
Joined: Mon Feb 11, 2008 2:53 pm
Location: Denmark
Full name: Damir Desevac

Re: HekaStockfish 0.9

Post by Damir » Sat Mar 14, 2020 9:37 am


Damir
Posts: 2338
Joined: Mon Feb 11, 2008 2:53 pm
Location: Denmark
Full name: Damir Desevac

Re: HekaStockfish 0.9

Post by Damir » Sat Mar 14, 2020 10:12 am

Majkel, do you plan on trying and put the learning function like that in Eman, Sugar,BrainLearn and Raubfisch ? :) :) :D

majkelnowaq
Posts: 25
Joined: Fri Aug 10, 2018 2:07 pm
Full name: D.S.

Re: HekaStockfish 0.9

Post by majkelnowaq » Sat Mar 14, 2020 5:06 pm

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

User avatar
MikeB
Posts: 3933
Joined: Thu Mar 09, 2006 5:34 am
Location: Pen Argyl, Pennsylvania

Re: HekaStockfish 0.9

Post by MikeB » Sun Mar 15, 2020 10:01 pm

Thanks for those who posted source to Dropbox.
Quite a few innovative ideas here!

User avatar
Ovyron
Posts: 3958
Joined: Tue Jul 03, 2007 2:30 am

Re: HekaStockfish 0.9

Post by Ovyron » Sun Mar 15, 2020 10:05 pm

Thanks for sharing majkelnowaq! I've been looking for an engine that can do this for a long while!

User avatar
Scally
Posts: 121
Joined: Thu Sep 28, 2017 7:34 pm
Location: Bermondsey, London
Full name: Alan Cooper
Contact:

Re: HekaStockfish 0.9

Post by Scally » Mon Mar 16, 2020 12:38 pm

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.
Alan Cooper
My Chess Computers

Post Reply