As I have mentioned earlier in this thread, I have been contemplating whether or not to postpone the neural network evaluation function, and I have made my decision: It will, sadly, not be available until version 5.0.. This is primarily because of the massive amounts of time it takes to develop, which doesn't seem feasible since I want to release Loki 4.0 rather soon. The neural network library, I have written, will however be available in the source code of Loki 4.0, but it won't be used anywhere in the engine.
My final list of changes between Loki 3.5 and Loki 4.0 will be the following:
- Add staged move generation (gains ~20-30 elo)
- Make the transposition table thread-safe for 32-bit builds (has been done, but no elo change is expected for single-threaded use).
- Fix a bug where Loki freezes after deep searches with multiple threads running (has also been fixed now).
- Add late move reductions. These have been added, but I need to run a final test between this and master.
- Add late move pruning.
- Add an evaluation hash table. This has been added, but there are some memory-corruption bugs that need to be sorted out before merging.
- Re-tune the evaluation function on a bigger dataset.
- Merge the neural branch into master (what I described above).
- Test - and potentially re-add - disabled search features. These include verified null move pruning, IID, Delta pruning and futility pruning in quiescence.
- A little bit of code cleanup.
And speaking of Loki 5, this is my current ideas:
- Incorporate the neural network evaluation and train a network.
- Add MultiPV for analysis.
- Better time management.
- Test new pruning methods or other search features.