X&O : сохранение вычисленных данных
Для сохранения вычисленных рейтингов узлов, добавим класс Persister. Каждый отбракованный узел (т.е., распознанный как culled_N_X) теперь сохраняется в файле xo.dat, в той же папке, откуда была запущена программа. Поскольку хэш коды узлов опираются на карту простых чисел, последняя тоже сохраняется в файл primes.txt, так чтобы при последующем запуске программы она не генерировалась заново, а считывалась бы из файла, как и список отбракованных узлов.
Итак, при старте программы, загружаем узлы с рейтингами из файла xo.dat в таблицу. Узлы, созданные таким способом, получают флаг fixedRating = true. Это позволит сэкономить большое количество вычислительного времени при повторных запусках, ведь уже не нужно будет вычислять поддеревья для известных забракованных узлов.
Изменения в метриках
- Для Cull_N_R метрик понизим минимальный порог для N с 9 тысяч до 7 тысяч. Также уменьшим рабочие значения R.
- Введём новые метрики missExpand, missNode и missAge
Новшества помогут нам быстрее производить отбраковку и следить за наличием ошибок (несостыковок) в ходе исполнения вычислений. Соответствующий коммит находится тут. Дополнительно, добавим метрики вида missXCount, для отслеживания ситуаций, когда ожидалось что на игровом поле уже существует ряд из X последовательных камней (для текущего игрока или его оппонента), но возможность продолжить эту комбинацию не была найдена.
| FRD-R_5 + EXP | FRD-R_5 + AXE | FRD-R_5 + EXP + BF1 | |
| Cull_7k_6k / Cull_7k_13k | 45 / 32 | 135 / 73 | 28 / 6 |
| Cull_14k_6k / Cull_14k_13k | 27 / 10 | 28 / 4 | 12 / 4 |
| Cull_28k_6k / Cull_28k_13k | 13 / 4 | 5 / 0 | 10 / 1 |
| Cull_60k_6k / Cull_60k_13k | 3 / 0 | 6 / 0 | 1 / 0 |
| Cull_120k_6k / Cull_120k_13k | 1 / 0 | 4 / 0 | 0 / 0 |
| missExpand | 4824 | 15613 | 5049 |
| missCount | 0,0,65,18,0 | 0,0,316,43,35332 | 0,0,21,1,0 |
| missNode | 0 | 0 | 0 |
| missAge | 0 | 0 | 0 |
| Update frequency | 6.59% | 3% | 10.7% |
| Max childs updated | 29,42M | 29,48M | 29.94M |
| Update count | 1653 | 9054 | 2549 |
| Skip count | 23415 | 292358 | 21241 |
| Avg Diff | 1 | 0 | 0 |
| Avg Abs Diff | 197 | 245 | 239 |
| max path length | 21 | 29 | 20 |
| Rating | 2961 | 1310 | 2394 |
