• Penalization for queen stopping passed pawn, in middlegame and endgame.
• LMR was starting only at iterative deep 5. Not anymore. Also I increased a little the reductions.
• Some bugs solved and added knowledge of endgames:
- o KRPKR
o KRKB
o KRKN
o KRKP
o KQKP
o KQKR
o KRPKB
o KBPKB
o KBPPKB
o KBPPKN when the pawns are doubled
o KNPK
o KQKRP
o KBPK
o Two minors against one minor and some pawns are often draw.
• Modified capture extension so it lets extend more the first root move:
if (captured && is_pv && ((looking_first_root_move && current_iterative_deepening_depth <= initial_iterative_deepening_depth + 5) || current_iterative_deepening_depth <= initial_iterative_deepening_depth))
extend;
• Open king is worst if opposite castles.
• Time management:
- o If there are often changes in the best move, assign more time.
o If it has more time than the opponent, assign more time.
• I realized that was not necessary to evaluate the position if it was check. So a slight improvement in speed.
• Rook/queen evaluation. Improved bonus for 6th, 7th, 8th rank.
• Calculate king safety only if it’s necessary.
• Try to guess if in the child node will be a prune thanks to the evaluation value, and do it before trying the move. So “eval prune, parent node”.
• Tried various combinations of pv limitations on alpha_beta stuff. So now:
- o Eval pruning - child node: it does not has it.
o Futility pruning: child node: yes.
o Razoring: yes.
o Null move: yes.
o Futility pruning v2: yes.
o Internal iterative deepening: different depths depending of is_pv
o Move count based pruning for the last depth: yes
o Late move pruning: no
o See pruning: yes
o Futility pruning: parent node: no.
• Some terrible big bugs
• Counter moves: refutation to piece to destination square.
• “Piece hash” or whatever the name is, if it exists. I did not find it anywhere. Is a hash of two moves (like killers) related to the hash of all pieces minus king and pawns. It’s just a first try and is not optimized. So in fact the key is (hash ^ pawn_hash). It has very little size to not bother other engines. I will try a lot more variations and bigger sizes. May be someone wants to try it and post his results. Seems that there is some strength to win for all the engines.
http://www.andscacs.com/