
- •Введение.
- •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 Реализация игры.
- •Использованные классы.
- •Заключение.
- •Список литературы.
3.4 Экспериментальные данные.
Позиции для обучающей выборки брались из партий двух сильных эвристических алгоритмов. Это позволяет получить репрезентативную выборку, в отличие от метода случайной генерации позиций.
В качестве входов нейронной сети использовались количество фишек на каждом поле (28 параметров) или параметры эвристической оценочной функции (8-10 параметров). Из общих тенденций следует отметить, что время обучения сети с более формализованными параметрами меньше, а качество игры выше, что достигается предварительным просчетом параметров. Подход, использующий параметры эвристической оценочной функции, позволяет достичь лучших результатов, но требует больших вычислительных ресурсов, что не всегда оправданно, особенно для портативных устройств.
Было опробовано несколько методик обучения нейронных сетей (например, уже настроенная эвристическая функция для прямой оценки позиций в выборке) и несколько топологий (число нейронов в каждом слое, наличие нейронных смещений).
Наилучшие же результаты показал метод формирования обучающей выборки, основанный на вычислении оценки по числу выигранных партий одним из игроков. Так, для получения обучающей выборки генерируется некоторое число позиций (в работе использовались выборки размером не более 10 тыс. позиций, для работы с большими выборками инструменту nntool не хватает оперативной памяти). Для оценки каждой из этих позиций проводится турнир из N партий между двумя равными игроками, причем текущая позиция берется начальной для каждой партии. Причем, под числом побед белых над черными можно понимать оценку данной позиции. Число N в работе бралось не больше 10 тыс. партий (из-за большой вычислительной сложности задачи). В качестве игроков следует брать наиболее сильные эвристические функции, для получения правдоподобных оценок вероятности победы из данной партии. Далее на полученной выборке обучается трехслойная нейронная сеть и используется в программе в качестве оценочной функции.
В качестве сети использовалась трехслойная нейронная сеть с 28 нейронами во входном слое. В скрытом слое использовалось различное число нейронов (1, 2, 5, 10, 20), но наилучший результат дала сеть с двумя нейронами, что объясняется недостаточным объемом выборки и недостаточной точностью оценок. Построенная нейронная сеть выигрывает около 55% партий у наилучшей эвристической оценочной функции.
Для дальнейшего увеличения качества игры с применением нейронных сетей, планируется увеличить объем обучающей выборки и точность оценок, играя больше партий и используя более сложные ОФ. Увеличение выборок повлечет за собой отказ от инструмента nntool и написание собственной функции обучения сети, менее универсальной и менее требовательной к ресурсам. Также предполагается построить несколько сетей, отвечающие за разные стадии игры (отсутствие контакта фишек, вывод с доски). Также предполагается построение итеративного процесса, в котором обученная сеть используется для формирования следующей выборки, что должно позволить повысить качество игры.т брать наиболее сильные эвристические функции, для получения правдоподобных оценок вероятности победы иозиций, для работы с большими нт и генерируется некоторое число позиций (в работе использовались выборки размером 10 тыс. ител