Разработка программной модели компьютерного противника на основе нейронной сети для клиент - серверной игры “Война вирусов”.
Введение
Нейросети способны учиться и развиваться самостоятельно, строить свой опыт на совершенных ошибках. Опираясь на информацию из какого-то конкретного источника, самоорганизующаяся система способна создавать новые продукты. Не только воспроизводя и структурируя вводные данные системы, но также создавая новый результат, ранее не доступный искусственным интеллектам.
Сейчас, в наше время, нейросети применяются во многих областях: медицина, финансы и коммерция, транспортная индустриализация, сельское хозяйство, анализ данных, распознавание образов, речи, видео и так далее.Также достаточно популярной сферой использования нейросетей являются компьютерные игры. При помощи игр нейросети показывают свое превосходство над человеком, и этот факт широко используется. Нейросеть, которая научилась обыгрывать человека, теперь используется в прикладных целях. Системы, обученные на основе наблюдений за происходящим на экране, могут быть полезны для анализа изображений и видео в разных
Содержание
Список сокращений и терминов4
Введение5
1. Анализ существующих аналогов и доступных инструментов7
1.1. Обзор моделей компьютерного противника7
1.1.1. Deep Blue7
1.1.2. AlphaGo9
1.1.3. FTW11
1.1.4. AlphaStar12
1.1.5. Open AI Five13
1.1.6. Pluribus14
1.1.7. Выводы по разделу17
1.2. Методы обучения нейронной сети18
1.2.1. Алгоритм глубокого детерминированного градиента политики (DDPG)18
1.2.2. Генетический алгоритм19
1.2.3. Многоагентное обучение с подкреплением20
1.2.4. Нейронная сеть и поиск по дереву Монте-Карло22
1.3. Обзор средств разработки23
1.3.1 Языки программированию23
1.3.2. Дополнительные библиотеки23
1.3.3. Интегрированные среды разработки23
1.3.4. Операционные системы24
2. Разработка модели компьютерного противника и взаимодействие его с другими игроками25
2.1. Правила игры26
2.2. Взаимодействие приложения с нейронной сетью с сервером и другими игроками27
2.3. Архитектура нейронной сети28
2.4. Алгоритм обучения нейронной сети29
2.4.1. Обучение с подкреплением29
2.4.2. Уравнение Беллмана30
2.4.3. Марковские процессы принятия решений31
2.4.4. Q-Learning32
2.4.5. Временная разница33
2.4.6. Deep Q-Learning34
2.4.7. Выводы по разделу35
2.5. Используемые методы для создания клиента с нейронной сетью37
2.6. Разработка приложения “клиент”40
2.7. Разработка приложения сервер42
3. Реализация44
Заключение57
Библиографический список59
Библиографический список
https://www.qt.io/
https://eigen.tuxfamily.org/index.php?title=Main_Page
https://www.deepmind.com/research/highlighted-research/alphago
https://code.visualstudio.com/
https://www.python.org/
https://pytorch.org/
Лафоре Р. Объектно-ориентированное программирование в С++.
Классика Computer Science. 4-е изд. - СПб.: Питер, 2019. - 928 с.: ил. - (Серия“Классика Computer Science”.
ГОСТ 2.105-2019 – ЕСКД. Общие требования к текстовым документам
ГОСТ 7.32-2017 – СИБИД. Отчет о научно-исследовательской работе. Структура и правила оформления
ГОСТ 7.0.100-2018 – Библиографическая запись. Библиографическое описание. Общие требования и правила составления.
ее обучение, однако, существует алгоритм, например такой, как используется в пункте 1.1.2., который позволяет обучать нейронную сеть, не объясняя ей правила игры. Большинство рассмотренных аналогов используют различные алгоритмы для поиска по дереву. Такой способ используется не только в настольных играх с полной информацией, но и в таких играх, где информация частично скрыта от игрока. Несмотря на то, что этот способ выглядит как наиболее перспективный, необходимо рассмотреть и другие алгоритмы, которые подходят для решения поставленной задачи. Все алгоритмы, представленные в следующей главе могут самостоятельно обучаться и не требуют знания правил игры.
1.2. Методы обучения нейронной сети
1.2.1. Алгоритм глубокого детерминированного градиента политики (DDPG)
DDPG - это алгоритм обучения с подкреплением, который содержит два элемента: актер и критик. Актер необходим для градиента политики, чтобы помочь оценить наилучшее действие для данного состояния (актер)