Методы анализа
Каким образом программа анализирует позиции? Для этого есть два принципиально разных подхода:
Занести все возможные позиции нард с их оценками в базу данных и брать результаты оттуда.
Воспользоваться оценками, которые даёт обученная игре в нарды нейронная сеть.
Разумеется, первый подход лучше. Он даёт абсолютно точные оценки. К сожалению, позиций в нардах огромное количество - квинтиллионы. А если к ним ещё добавить позиции с кубом удвоения, то объём информации возрастёт в несколько раз. Заготовить оценки для такого количества позиций и сохранить их в какой-либо базе данных - это дело компьютеров будущего. А пока что такой подход используется только в концовках партий. LogasAI использует базу данных позиций "дом против дома" - когда все фишки обоих соперников приведены в "дом". В этом случае её оценки позиций абсолютно точные (если не используется куб удвоения).
Второй подход позволяет обойтись без огромных баз данных, но имеет свой недостаток. Нейронная сеть даёт только приблизительные оценки. Для того, чтобы сделать их более точными, применяется углубленный анализ позиций. Есть два варианта такого углубленного анализа:
Полный перебор.
Рассматриваются все возможные варианты бросков костей (а их 36). И для каждого броска выбирается лучший ход из всех возможных. Для выбора лучшего хода приходится опять рассматривать все возможные броски костей, и для каждого выбирать лучший ход. И так далее...
Это очень хороший метод, который даёт стабильные оценки. К сожалению, каждый шаг вглубь приводит к увеличению времени анализа примерно в 150 раз. Анализ таким методом на глубину в 1 полуход происходит практически моментально. Перебор на глубину 2 полухода ещё можно применять в живой игре. Именно его по возможности использует LogasAI Game на уровне "Мастер". Дожидаться результатов анализа полным перебором на глубину 3 полухода в большинстве позиций слишком долго.
Имитация (rollout)
В этом варианте анализа выбранная позиция разыгрывается очень много раз, и результаты этих игр усредняются. Каждая такая имитационная игра может продолжаться как до конца партии, так и ограничиваться некоторой глубиной.
Результаты, получаемые этим методом, менее стабильны. Повторный анализ может дать немного другие оценки, потому что кости выпадают случайным образом. Для некоторого сглаживания такого недостатка на первых двух полуходах применяются равномерные броски костей. Из-за этого количество имитационных игр кратно числу 36*36.
В целом эти два варианта анализа можно охарактеризовать так:
Перебор смотрит более широко, но менее глубоко.
Rollout смотрит более глубоко, но менее широко.
В программе предусмотрены четыре метода анализа:
Метод 0. Перебор на глубину 1. (Очень быстрый, годится для грубой оценки)
Метод 1. Перебор на глубину 2. В игре это уровень "Мастер". (Примерно в 200 раз медленнее метода 0)
Метод 2. Rollout на глубину 11, количество игр 1296. (Примерно в 5 раз медленнее метода 1)
Метод 3. Rollout до конца партии, количество игр 11664. (От 10 до 100 раз медленнее метода 2)
Какой из этих методов даст абсолютно точные оценки? Никакой! Из-за этого программа вполне может ошибаться при выборе лучшего хода. Она не играет "идеально".
--------------------
17-05-2020 Победа в турнире Питер на 3-х по преферансу
18-05-2020 Победитель турнира победителей по преферансу
19-05-2020 Победитель Супертурнира по преферансу
18-05-2020 Победитель победителей Супертурниров по преферансу
19-05-2020 Суперпобедитель супертурниров по игре преферанс
20-05-2020 Победитель Гран-при Суперпобедителей по преферансу
21-05-2020 Победитель турнира Супермастеров по преферансу
22-05-2020 Победитель элитарного турнира по преферансу
23-05-2020 Победитель мировой серии турниров по преферансу
24-05-2020 Победитель турнира наивысшей категории по преферансу
25-05-2020 Чемпион годового турнира Суперпобедителей
26-05-2020 Чемпион чемпионов по игре преферанс
28-05-2020 Золотая медаль бомбардира по игре преферанс
29-05-2020 Обладатель большого шлема по игре преферанс
30-05-2020 Чемпион мира по преферансу
31-05-2020 Олимпийских чемпион по преферансу