You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Caused by #235 which showed an idea that for most correct comparison of evaluation results on different levels of the tree, we need comparable numbers.
It might mean that every evaluator should check not only OUR but the OPPONENT situation.
E.g. attack evaluator checks attackIndex(our) - attackIndex(opponent) and so on.
Split to #323 This may lead us to finally removing the concept of Position + Move evaluation and go to Position
evaluation.
Which may improve performance (due to reduced need of position.move generation)
At the moment some of our evaluators aren't symmetrical so that thinking for the 2'nd ply doesn't provide logical results because it analyzes different aspect of the position.
So as a matter of fact we compare uncomparable things.
For example castling safety for our side and castling safety for the opponent are totally different.
We should make all evaluators analyze our and enemy position thus making them symmetrical
Think about generalizing 'index' calculation for us and the opponent
Should Position be enriched by getOccupiedSquares?
At the moment after king movement all moves are 0.5 which causes king movement itself evaluate fine but logically it's not fine as for me
Checks for ROOK and KING for the opponent look wrong
Fixed old bug: the evaluator encouraged moving one of rooks when there were piece in-between it and a king
Thinking for depth 2 reveals issue: comparing 'current' and 'next' situation is not fine when we think for 2'nd ply. Instead we should calculate some absolute value: fixed and extracted 2-ply evaluator for testability.
castling safety + 2'nd ply thinking doesn't want castling (since after castling king+rook is moved...)
Caused by #235 which showed an idea that for most correct comparison of evaluation results on different levels of the tree, we need comparable numbers.
It might mean that every evaluator should check not only OUR but the OPPONENT situation.
E.g. attack evaluator checks attackIndex(our) - attackIndex(opponent) and so on.
Split to #323
This may lead us to finally removing the concept of Position + Move evaluation and go to Position
evaluation.
Which may improve performance (due to reduced need of position.move generation)
At the moment some of our evaluators aren't symmetrical so that thinking for the 2'nd ply doesn't provide logical results because it analyzes different aspect of the position.
So as a matter of fact we compare uncomparable things.
For example castling safety for our side and castling safety for the opponent are totally different.
We should make all evaluators analyze our and enemy position thus making them symmetrical
Update evaluator factories: make denormalized call normalized - split to Update evaluator factories: make denormalized call normalized #328
Our engine is smart enough to resign if it detects checkmate on the next move :)
Core improvements
Evaluators independence is another interesting characteristic that is probably hard to achieve but it would be desired. to be investigated.
Final Expectation:
The text was updated successfully, but these errors were encountered: