diff options
| author | tslil <tslil@posteo.de> | 2026-08-30 19:46:07 +0100 |
|---|---|---|
| committer | tslil <tslil@posteo.de> | 2026-09-02 12:13:01 +0100 |
| commit | 241156da6f35cb888253e6b8814e7b61a76b4fc7 (patch) | |
| tree | e562029445b1473cc89590793f32c561540d621c /include/negamax.h | |
| parent | 696c3808220ea9d8c604939894a2d509f05cc4c6 (diff) | |
TD(lambda), and a big rework
NOTE: 6x6 weights are as-yet untrained
On the performance side:
* switch from linked-list chaining hash table to direct mapping
* cache check_win by hash
* persist transposition tables across plies (this was a big deal and difficult to puzzle out)
* add align directives to the network floats
* prepare_nn_input gained a small LUT to avoid branching (i suppose you might call this 1D embedding)
* apply mtune=native for the native builds
On the correctness side:
* Zobrist has now includes the ply parity
* the network now predicts something in [-1, 1] using tanh (approximated by polynomials)
* the training object is now MSE because we're learning a value estimate
* use .clangd instead of compile_commands.json
On the training side:
* completely forgo human-derived data set
* implement td(lambda), self-play, tournaments
Diffstat (limited to 'include/negamax.h')
| -rw-r--r-- | include/negamax.h | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/include/negamax.h b/include/negamax.h index e31cc32..78ed448 100644 --- a/include/negamax.h +++ b/include/negamax.h @@ -1,5 +1,5 @@ /* - This file is part of ct. + This file is part of ctak. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -12,7 +12,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License - along with ct. If not, see <https://www.gnu.org/licenses/>. + along with ctak. If not, see <https://www.gnu.org/licenses/>. */ #include <math.h> @@ -21,7 +21,7 @@ #include <actions.h> #include <nn.h> #include <tak.h> -#include <tt_llcht.h> +#include <tt.h> #include <zobrist.h> // =================================================================== @@ -42,6 +42,13 @@ extern void negamax_display_progress(const uint8_t cur_depth, void negamax_init(const uint8_t new_board_size); +/* + * Override the leaf evaluation function (negamax_init picks one by + * board size). + */ +typedef float (*nn_function)(tak_state_p); +void negamax_set_evaluator(const nn_function f); + void negamax_free(void); /* |
