
- •Введение.
- •1 Подходы к реализации ai в логических играх.
- •1.1 Понятие поиска.
- •1.2 Позиционная игра.
- •1.3 Подходы к решению задач выбора хода в позиционных играх.
- •1.4 Особенности игры нарды.
- •1.5 Правила игры в нарды.
- •1. 6 Оценочная функция
- •1.7 Самообучение
- •1.8 Нетранзитивность игр
- •1.9 Обзор литературы и существующих программ.
- •1.10 Игровые деревья.
- •1.11 Дерево игры в нарды
- •2 Построение эвристических оценочных функций.
- •2.1 Выделение параметров.
- •2.2 Определение более сильного игрока из двух.
- •2.3 Настройка весовых коэффициентов.
- •2.4 Линейная модель из 3-х параметров. Вид поверхности.
- •2.5 Таблицы вероятностей.
- •2.6 Снижение размерности. Гипергаммон.
- •2.7 Разделение игрового процесса на фазы.
- •3 Построение оценочных функций на основе нейронных сетей.
- •3.1 Теория нейронных сетей.
- •3.2 Использование нейронных сетей в качестве оценочной функции.
- •3.3 Использование MatLab для обучения нейронных сетей.
- •3.4 Экспериментальные данные.
- •4 Реализация версии для мобильных устройств.
- •4.1 Особенности программирования портативных устройств.
- •4.1.1 Размер экрана.
- •4.1.2 Быстрый отклик.
- •4.1.3 Ввод данных.
- •4.1.4 Питание.
- •4.1.5 Память.
- •4.1.6 Файловая система.
- •4.2 Выбор средств разработки.
- •4.3 Реализация игры.
- •Использованные классы.
- •Заключение.
- •Список литературы.
2 Построение эвристических оценочных функций.
2.1 Выделение параметров.
Реализованная программа игры за компьютер состоит из двух частей. Первая часть генерирует все возможные ходы (при текущем броске костей) доступные из текущей позиции. Вторая часть – оценочная функция, с помощью которой выбирается наилучший ход. Учитывая то, что у нард очень большой коэффициент ветвления дерева игровых позиций (достигает 200-300 доступных ходов из одной позиции) и наличие случайности (броски костей) перебор в глубину не представляется целесообразным, вследствие ограниченности вычислительных ресурсов. Для примера, в шахматах коэффициент ветвления составляет порядка 40 ходов, а для шашек 8-15. Таким образом, применение «грубой силы» (“brute force”) для нард неэффективно.
В качестве оценочной функции используются линейные модели (линейная комбинация некоторых параметров) и нейронные сети (трехслойная нейронная сеть).
В простейшей модели в качестве параметров можно взять просто количество фишек на каждом поле, получив в сумме 26 параметров. Реально же используют некоторые вычисляемые параметры, представляющие определенные стратегические аспекты игры.
Одним из основных параметров является подсчет пипсов (pips) – это число, которое нужно выбросить на игральных костях, чтобы вывести все свои фишки. По этому параметру определяют лидерство и близость победы.
Число одинарных фишек (blots) также является важным параметром, который стремятся сокращать все игроки, так как только одинарные фишки можно побить в нардах, тем самым откинув противника в гонке за вывод фишек из доски.
Число полей с двумя и более фишками (hold) является противоположностью предыдущему параметру, его стремятся максимизировать. Чем больше таких полей, тем устойчивее позиция и тем сложнее через нее пройти.
Связанным параметром является построение блокад – несколько смежных полей, занятых двойными или более фишками. С этим параметром можно связать изменение стратегии – нужно проводить свои фишки вперед, если их запирают.
Также считают число прямых возможностей взятия (direct shot) – это число одинарных фишек на расстоянии 6 или меньше полей. Есть схожий с этим параметр indirect shots – число одинарных фишек на расстоянии меньшем 12. Схожим параметром является вероятность взятия одинарной фишки, которая в большинстве случаев рассчитывается по предварительно посчитанной таблице.
Равномерность распределения фишек по полям. Например, гораздо выгоднее иметь три фишки на одном поле и еще три на другом, чем две и четыре на тех же полях. В случае выпадения определенных костей может потребоваться сдвинуть фишку с первого поля и тем самым сделать как минимум одну одинарную фишку.
Анализируя сыгранные партии можно заметить, что занятие определенных позиций (golden point) на доске способствует победе. Такими позициями является 4-я и 5-я клетки и соответственно 20-я и 21-я симметричные клетки. Таким образом, в простейшем случае можно ввести факт занятия этих клеток в оценочную функцию. В более общем случае, вводят весовые коэффициенты для всех полей доски.
Также часто используется параметр коммуникации – нужно стремиться располагать свои фишки на расстоянии не более 6 пипсов друг от друга. Тем самым препятствовать разделению своих фишек.
При выводе своих фишек, нужно стремиться оставлять четное число фишек на каждом поле, чтобы минимизировать шансы оставления одиночной фишки после очередного хода.
Очень часто вводятся понятия контакта фишек – наличие хотя одной вражеской фишки в направлении движения. Наличие факта контакта влияет на используемую стратегию и может предполагать разные оценочные функции.
В целом можно отметить, что с ростом числа параметров в модели росло и время обучения, но также росло и качество оценки позиции.