[quote="majkelnowaq"]Finally i can release next ThothFish. After this i ll take a serious brake from chess :hihi: .
Changes:
- updated to 31 March stockfish development
- .bin opening book support (copied and implemented from Brainfish)
- MagicTacticSolver renamed to FastTacticSolver
- 3 available versions of engine (modern, bmi2, old)
- made cute logo in inksacpe
- different equation for dynamic contempt (as an option to choose or not to choose)
- Analysis Toolbox
- some simplifications
In next post i ll copy-paste text from file included in .zip file with Thothfish but here few more words of explanation.
Mine equation for dynamic contempt looks this way:
int dct = (ct - 24) + rootMoves.size()/2 + (rootMoves[1].score/(-200) + previousScore/(-2) + alpha/(-4))/3;
and original one:
int dct = ct + 88 * previousScore / (abs(previousScore) + 200);
Please don't ask what exactly it does because i was putting literally all possible things in this equation and testing them even without proper understanding. Option which was chosen in the end is just a version which passed most of my tests. It affects on score and playstyle i guess and hope that only in positive manner.
The bigger innovation is Analysis Toolbox, should work fine and bring a lot of new possibilities.[/quote]
[quote="majkelnowaq"]It's probably last version of ThothFish (v. 1.2)
Changes:
- updated to Stockfish dev version 12 April 2019;
- some options from version 1.1 were erased (fast tactic solver, analysis toolbox, swapDc);
- added changes to analysis mode;
- added new options for phases of game (opening, middlegame, endgame);
There is no real need for additional options for solving chess positions, from now in usual analyzing mode engine would disable some kinds of pruning, increase multipv and decrease reduction. It's enough to solve most hard/tacitc positions in relatively short time (effect isn't visible during play, only in infinite analysis).
* New Uci options "Opening threshold", "Middlegame", "Endgame" are only starting point for options below them.
Opening treshold means number of moves which should be consider as the end of opening phase (default 20 refers to moves from 1 to 20).
Middlegame means limit for next phase of game (more precisely it means limit for next moves after Op.Tr.), so if is set to 40 it refers to moves from 21 - 60 (60 not 40 because we add 40 to opening threshold). Endgame analogically, so when default is 60 it refers to moves from 61 - 120.
Some examples to make it more clear:
OT 5 (moves 1-5)
Mg 10 (for bottom limit add 1 to OT and add OT to Mg for upper limit) (moves 6-15)
Eg 15 (for bottom limit add 1 to previous limit and add: OT+Mg+Eg for upper limit) (moves 16-30)
Of course there are only names of options, it can be usable just for tuning opening phase, for example:
OT 6 (moves 1-6)
Mg 8 (moves 7-14)
Eg 6 (moves 15-20)
Remember that You can set first/first and second/all three phases of game. It won't work properly if You ignore opening threshold like this:
Anyway You can influence only for middlegame or endgame just by setting values with "MG" or "EG" (check below what they mean) and "OP" values leaving set to 0.
* Contempt OP (opening phase), Contempt MG (for middlegame) and Contempt EG (yes, for endgame) allow to subtract or add some points to the basic contempt (range -200 to 200) and work only for appropriate phase of game. It means when You set, we can say (-20) for opening (and opening would be set to 15 limit) - it makes engine more defensive for first 15 moves but in 16 move its score will change (effect of contempt OP will disappear or - if set - will be changed to next contempt MG and so on).
* Next 15 options - Pawn OP to Queen EG refer of course to set phases of game. Range -100 to 100 allows to add or subtract material worth of each piece. 1 point is more or less 1 percent (not exactly due to psqt tables and other things but it's easier to treat it this way). It's easy to guess that if only opening threshold is set then MG and EG values do nothing even if changed.
It works in different way than Exchange options. Exchange options tell engine that there is some loss or gain in specific exchanging/saving piece on chessboard, it directly affects score. Changes in range Pawn OP to Queen EG aren't so noticeable at first in engine score output (so btw don't require compensate by contempt like exchange), tell engine rather that it should care less or more for picked piece in picked range of moves.
Example: (-20) in Pawn OP makes engine to play more positional in opening, at the expense of pawns, so is more likely to pick some gambit lines with sacrifices of pawns like "B01 Scandinavian (centre counter) defence".
Second example: High value in Knight MG (we can try 30) makes engine to searching (in middlegame) for lines where it saves its knights and "kill" opponent knight with exchanging for bishop for example. It works this way because engine assumes that not only its knights are worth more than bishops but opponent's knights too.
Generally negative values make engine more positional/tactic at the expense of material and opposite - higher positive values make it more materialistic and more blind for tactic and positional play. So it won't be surprise if effect of many higher values in material will bring position where engine has one or two pawns more (even as black) but its position will be scored negative and it ll be going to lose game.
ThothFish v. 1.2 isn't best option for people who looking for already tuned derivative which is slightly better than Stockfish, because with default options (exchange and material set to 0) it plays with the same strength as Stockfish. It's rather created for people who like looking for new ways to gain elo or change play style of engine by switching options on one’s own.
So there is no point (with default options) for testing it against other derivatives unless one's figure out which options and how much to change, then testing could be worthy and interesting.[/quote]