Пишу шахматную программу. Пользуюсь минимаксом и альфа-бетой. Там всё более менее понятно, нужно рекурсивно вызывать функцию поиска со знаком минус (Negamax). Но вопрос не в этом.

Почитал про Monte Carlo Tree Search и решил попробовать с ним поиграться. Monte Carlo Tree Search - это грубо говоря, когда мы чаще заходим в наиболее перспективные узлы и продлеваем их. Но в Монте-Карло (в отличие от минимакса) нужно хранить в памяти всё дерево, чтобы делать постоянный Update оценок узлов и вышестоящих узлов.

Отсюда вопрос:
Как лучше организовать данные? Может есть уже реализации на Delphi подобного?

Спасибо заранее.