Obsidian, an UCI chess engine written in c++
Search algorithm
* Iterative deepening with aspiration windows
* Very simple negamax
* Very simple move ordering
* Quiescence search
* Razoring
* Null move pruning
* Internal iterative reductions (IIR)
* Check extension
Evaluation
Obsidian evaluates position with a neural network, the architecture is 2x(768->256)->1 and is trained on 100M positions as of now.
Trivial endgames are evaluated with a special function.
To do
* Make the code cleaner
* Add move which give check to quiescence search
* Implement more pruning techniques
* Iterative deepening with aspiration windows
* Very simple negamax
* Very simple move ordering
* Quiescence search
* Razoring
* Null move pruning
* Internal iterative reductions (IIR)
* Check extension
Evaluation
Obsidian evaluates position with a neural network, the architecture is 2x(768->256)->1 and is trained on 100M positions as of now.
Trivial endgames are evaluated with a special function.
To do
* Make the code cleaner
* Add move which give check to quiescence search
* Implement more pruning techniques
v.4.0:
This update brings a stronger neural network, better time management, and better transposition table
Against Obsidian 3.1, this scores + 30~50 Elo depending on the time control
Comments
Post a Comment