- •Введение.
- •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 (победа белых)
или 0 (победа черных) равны. Тогда задавшись
,
получим доверительный интервал для
:
.
А для
:
.
Основываясь на полученных данных,
сравнивать силу двух игроков, примерно
равных по силе, корректно только при
числе сыгранных партий близком к тысяче
и более.
2.3 Настройка весовых коэффициентов.
Исходя из пункта 1.6 оценочная функция будет иметь вид:
f = -pip - one + group(x2 even if) + block + pos;
где pip – расстояние до конца доски,
one – количество одиночных фишек,
group – вхождение в группу фишек (умножается на два, если количество фишек в группе чётное),
block – если блокируется фишки противника,
pos – если занимается 4-я, 5-я, 20-я или 21-я клетка.
2.4 Линейная модель из 3-х параметров. Вид поверхности.
При нынешнем уровне развития вычислительной техники, при большом числе параметров модели (например, если в качестве параметров использовать число фишек на каждом поле) перебрать все параметры для определения подходящих величин не представляется возможным. Но получить представление о виде поверхности количества побед модели над эталонным игроком, на примере коротких нард, можно, сведя количество параметров до трех: pips (сумма чисел, которые нужно выкинуть на кубиках, чтобы выиграть партию), blots (число одиночных фишек), hold (число удерживаемых позиций, т.е. с числом фишек больше двух). В результате были построены зависимости количества побед над эталонным игроком (выбирающим ходы случайным образом) от blots и hold при фиксированных значениях pips, выбранных равными +1, -1, +5, -5. Учитывается разница этих параметров для игроков, играющих белыми и черными фишками. Перебор этих параметров осуществлялся в диапазоне от –10 до 10.
pips = 1 pips = -1
pips = 5 pips = -5
Рис. 3. Поверхности количества побед линейной модели над эталонным игроком от величины параметров.
Из графиков видно, что все три параметра в значительной мере влияют на качество оценки позиций. Так параметр pips можно проассоциировать с близостью победы, соответственно, следует максимизировать вес этого параметра. Количество удерживаемых клеток (две и более фишек на одном поле) также значительно влияет на количество побед так как его фишки сложнее побить и соответственно, игрок, обращающий на это внимание выигрывает чаще. Количество blots игрок должен стремиться минимизировать, так как это “откатывает” его назад. Наилучшие результаты дало сочетание весов pips = 1, blots = -8, hold = -8.
В процессе проведения расчетов было отмечено, что чем ближе игроки по силе (близость к 0 разницы количества побед игроков) тем дольше идет партия. Также в ряде статей (например в [11]) отмечается увеличение длины партий с ростом класса игрока. Данный эффект также был отмечен и в игре в нарды.
