Zahak

Home * Engines * Zahak



Zahak, a UCI compliant open source chess engine by Amanj Sherwany, written in Go, licensed under the MIT License and first released on GitHub in February 2021. Since version 7, Zahak's hand crafted evaluation function is replaced with an  NNUE style evaluation, which is trained by a from scratch written trainer, that is written in Go as well. The network is trained on self-play games between different versions of Zahak. As of version 8, Zahak features an own network architecture which consists of 769 input features, that represents all the pieces on the board as well as a feature to represent white-to-move. The training process is thoroughly documented. As of the time of this writing, Zahak is the only NNUE engine that is written in Go.

Zahak started its first debut in TCEC in Swiss 2 event of S21.

Name
Zahak (or Zahhak or Azhi Dahak) is an evil figure in Iranian/Kurdish/Perisan mythology, evident in ancient Iranian folklore as Azhi Dahāka, the name by which he also appears in the texts of the Avesta. Legend has it, that he had two giant snakes on his shoulders and he had to feed them two human brains on daily basis.

=Features=

Board Representation

 * Bitboards
 * Magic Bitboards for sliding pieces.
 * Multi-Stage Pseudo-Legal Move Generation

Search

 * Iterative Deepening
 * Aspiration Windows
 * Lazy SMP
 * Principal Variation Search
 * Transposition Table
 * Shared Hash Table
 * Zobrist Hashing
 * Move Ordering
 * Hash Move
 * SEE for Captures
 * Killer Heuristic
 * History Heuristic
 * Countermove Heuristic
 * Selectivity
 * Check Extensions
 * Null Move Pruning
 * Futility Pruning
 * Reverse Futility Pruning
 * Delta Pruning
 * SEE based Pruning
 * Late Move Reductions
 * Late Move Pruning
 * Quiescence Search

Evaluation

 * NNUE (>= Zahak 7)

Misc

 * Syzygy Bases

=Forum Posts=

2021

 * Zahak's announcement by Amanj Sherwany, CCRL Discussion Board, March 13, 2021

=References=