Введение 3
Постановка задачи 6
Обзор литературы 8
Глава 1. Обзор предметной области 10
1.1. Интеллектуальные агенты и их типы 10
1.2. Проблемная среда 12
1.3. Мультиагентная система 13
1.4. Конкуренция 14
1.5. Координация 15
1.6. Роевой интеллект 17
1.7. Алгоритм Рейнольдса 18
Глава 2. Многопользовательские и однопользовательские игры 24
2.1. Многопользовательские и однопользовательские игры как аналог одноагентных и мультиагентных систем 24
2.2. Отличие многопользовательских от однопользовательских игр 26
2.3. Рассмотрение игр с точки зрения теории
интеллектуальных агентов 27
2.3.1. Pac-man 27
2.3.2. Civilization V 28
2.3.3. Overwatch 29
2.3.4. Half-life 30
Глава 3. Решение поставленной задачи 32
3.1. Набор параметров и правил для реализация игрового объекта под управлением человека 37
3.2. Набор правил для игровой среды 41
3.3. Набор параметров и правил для построения систем, состоящих из нескольких агентов 47
3.4. Результирующий вектор направления движения агентов 60
Результаты 62
Заключение 76
Список литературы
Моделирование поведения интеллектуальных сущностей является одной из наиболее масштабных задач такого глобального направления современных исследований, как «искусственный интеллект». В области искусственного интеллекта (ИИ) решается ответственная задача: специалисты в этой области пытаются не только понять природу интеллекта, но и создать интеллектуальные сущности.
Определим искусственный интеллект как науку об интеллектуальных сущностях, именуемых также «агенты», которые получают результаты актов восприятия из своей среды и выполняют действия. Причем, каждый такой агент реализует функцию, которая отображает последовательности актов восприятия в действия. Агентом считается все, что действует (слово агент произошло от латинского слова agere–действовать). Но предполагается, что компьютерные агенты обладают некоторыми другими свойствами, которые отличают их от обычных «программ», такими как способность функционировать под автономным управлением, воспринимать свою среду [1], существовать в течение продолжительного периода времени, адаптироваться к изменениям и обладать способностью взять на себя достижение целей̆, поставленных другими. Стоит также отметить два из самых полезных свойств агентов:
1. Интеллектуальное групповое поведение. Такое поведение может быть заложено в каждого агента в соответствии с общим подходом к решению задачи, в рамках которой требуется взаимодействие многих агентов, работающих параллельно. Группа взаимодействующих между собой интеллектуальных сущностей называется мультиагентной системой.
2. Рациональность. Рациональным агентомназывается агент, который̆ действует таким образом, чтобы можно было достичь наилучшего результата или, в условиях неопределенности, наилучшего ожидаемого результата в рамках решения поставленной задачи.
Организация построения интеллектуальных агентов и мультиагентных систем представляет собой сложную задачу, в решении которой заинтересованы много современных областей. Среди них хочется выделить такие, как робототехника, киноиндустрия, компьютерные игры и технологии виртуальной реальности. Продолжающееся развитие данных областей задает актуальность поиска наиболее удачного решения как в реализации интеллектуальных агентов и мультиагентных систем, так и в реализации способов взаимодействия между ними.
В задачах, где реализуются агенты и их системы, важно отметить, что они создаются для конкретной проблемной среды. Проблемная среда – это сущности и решаемые над ними задачи, представляемые в виде исполняемых утверждений (в виде правил, процедур, формул). Другими словами, среда представляет собой «проблему», для которой агент и системы агентов служат «решением».
Одной из самых развитых областей, где смоделировано огромное количество проблемных сред, на данный момент является сфера компьютерных игр. Основной целью игровой индустрии является моделирование опыта, который может получить человек за время, проведённое в игре. Чтобы человек мог получить этот опыт, люди, занимающиеся в данной сфере разработкой, стремятся максимально реализовать в игре мир, который будет взаимодействовать как с человеком, играющим в игру, так взаимодействовать сам по себе – поведение созданных игровых элементов-агентов и систем. Другими словами, многие игры представляют собой довольно сложную мультиагентную систему со своими правилами поведения.
На сегодня, реализация поведения агентов и мультиагентных систем имеет множество вариантов решений. Большинство реализаций систем упираются на организацию поведения группы через поведение внутренних агентов. В данной работе рассмотрена модель организации поведения нескольких таких групп в рамках компьютерной игры, где в качестве агентов выступают как мультиагентные системы, так и одиночные агенты. Таким образом. поведение группы зависит от поведения как внутригрупповых агентов, так и от поведения агентов внешних систем.
Постановка задачи
Задача состоит в построении компьютерной модели однопользовательской игры с мультиагентной средой, способной расширяться до многопользовательской игры. Модель охватывает реализацию создания в рамках компьютерной игры:
● одиночных интеллектуальных сущностей-агентов под управлением реального человека;
● одиночных интеллектуальных сущностей-агентов под управлением искусственного интеллекта;
● групп рациональных агентов;
● мультиагентной игровой среды;
● интерактивных объекты игровой среды.
Агенты и группы агентов взаимодействуют между собой, между мультиагентными системами и напрямую с игровой средой.
Для реализации используется игровой движок Unity3D, покрывающий реализацию мультиагентной среды, одиночных интеллектуальных агентов, мультиагентных систем и их взаимодействие между собой.
Для решения поставленной задачи используется реализация системы правил и компонентов [2] – такое решение является гибким инструментом для моделирования как игровой среды, так и различных мультиагентных систем и игровых сущностей, существующих и взаимодействующих в как со средой, так и между собой.
Компоненты представляют собой вынесенные в скрипты [3] вычисления и механики, которые задают особенности поведения объектов. Система компонентов реализована в игровом движке Unity3D и имеет относительно простой способ работы с ней.
В основу подхода для решения задачи по организации поведения групп агентов положена модель К. Рейнольдса «Boids» с последующим расширением. Выбор обусловлен тем, что, имея простую реализацию, модель позволяет получить реалистичные результаты и позволяет производить расширение под другие задачи, связанные с организацией поведения сущностей в группе (которую представляет собой игровой мир). Для организации поведения отдельных агентов задействована система правил поведения, берущая свою идею из концепции алгоритма Рейнольдса, но адаптированная для поведения одного агента.
В рамках данной работы была решена задача по построению компьютерной модели однопользовательской игры с мультиагентной средой, способной расширяться до многопользовательской. Система правил и игровых компонентов, с помощью которой реализована модель игры, покрывает реализацию взаимодействия агентов внутри мультиагентной системы, взаимодействие мультиагентных систем между собой, взаимодействие агентов со сложной мультиагентной средой, создание интерактивных объектов среды, а также реализацию одиночных агентов как под управлением искусственного интеллекта, так и под управлением игрока. При решении поставленной задачи были задействованы алгоритм Рейнольдса, легший в основу построения модели поведения мультиагентных систем, и игровой движок Unity3D, использовавшийся для компьютерного моделирования.
Полученная модель довольно реалистично отображает взаимодействие между агентами внутри конкретной группы, между интеллектуальными сущностями и мультиагентной средой, а также между объектами различных мультиагентных систем. Расширения до многопользовательской игры в построенной модели можно добиться за счет расширения количества игровых сущностей, управление которых будут осуществлять реальные люди.
Модель в перспективе может быть использована для реализации различных игр и компьютерного моделирования, где для достижения целей среды нужны усилия как одного агента, так и многих. Сама система правил в перспективе может быть расширена новыми правилами, такими как:
● дополнительные правила для победы;
● изменение мультиагентной среды в зависимости от сложности;
● захват и удержание территорий мультиагентной среды – для более глубокого исследования;
● построение наиболее эффективного маршрута передвижения;
● разделение мультиагентной системы на подсистемы, для более эффективного достижения целей игры.
1. Интеллектуальные агенты.
https://poznayka.org/s46388t1.html (дата обращения 24.04.19).
2. Использование компонентов.
https://poznayka.org/s46388t1.html (дата обращения 12.03.19).
3. Создание и использование скриптов.
https://docs.unity3d.com/ru/current/Manual/CreatingAndUsingScripts.html (дата обращения 25.05.19).
4. Scripting API.
https://docs.unity3d.com/ScriptReference/index.html (дата обращения 27.05.19).
5. Shoham Y., Leyton-Brown K. Multiagent Systems Algorithmic, Game-Theoretic, and Logical Foundations / published by Cambridge University Press, Revision 1.1, 2009, 532 pages.
6. Антагонистическая игра.
https://ru.wikipedia.org/wiki/Антагонистическая_игра (дата обращения 25.04.19)
7. Интеллектуальный агент. Персонализация и многоагентные системы. http://koriolan404.narod.ru/tipis/5.html (дата обращения: 14.03.17).
8. Бугайченко Д. Ю., Соловьев И. П. Абстрактная архитектура интеллектуального агента и методы ее реализации // Системное программирование. / Под ред. А. Н. Терехова, Д. Ю. Булычева. СПб.: СПбГУ, 2005. С. 36–67.
9. Роевой интеллект. https://ru.wikipedia.org/wiki/Роевой_интеллект (дата обращения: 24.04.19).
10. Boids: Background and Update. http: //www.red3d.com/cwr/boids/ (дата обращения: 12.03.17).
11. Многоагентная система. https://ru.wikipedia.org/wiki/Многоагентная_система (дата обращения: 12.03.17).
12. Рассел С., Норвиг П. Искусственный интеллект: современный подход. М.: Вильямс, 2007. 1408 с.
13. Boids. https://en.wikipedia.org/wiki/Boids (дата обращения: 23.04.19).
14. История и математика: мегаисторические аспекты / Под ред. Л. Е. Гринин, А. В. Коротаев. Волгоград: Учитель, 2016. 256 с.
15. Beni G., Wang J. Swarm Intelligence in Cellular Robotic Systems, Proceed // NATO Advanced Workshop on Robots and Biological Systems, 1989. Vol.102, P. 703–712.
16. Individual-Based Models. http://www.red3d.com/cwr/ibm.html (дата обращения: 04.05.17).
17. Reynolds W. C. Flocks, herds, and schools: a distributed behavioral model // Computer Graphics / Ed. by Maureen C. Stone. Anaheim, California: SIGGRAPH, 1987. P. 25–34.
18. Теги и слои. https://docs.unity3d.com/ru/530/Manual/classTagMana ger.html (дата обращения: 27.03.19).
19. Avatar (computing). https://en.wikipedia.org/wiki/Avatar_(computing) (дата обращения: 25.04.19).
20. Gamelevel. https://www.webopedia.com/TERM/G/game_level.html (дата обращения: 28.04.19).
21. Learning Curve Theory. https://www.valamis.com/hub/learning-curve (дата обращения: 28.05.19)
22. GameLoop. https://gameprogrammingpatterns.com/game-loop.html (дата обращения 27.04.19).
23. Camera. https://docs.unity3d.com/ScriptReference/Camera-fieldOfView.html (дата обращения: 15.05.19).
24. Colliders. https://docs.unity3d.com/ru/current/Manual/CollidersOverview.html (дата обращения: 16.05.19).
25. Ray. https://docs.unity3d.com/ru/current/ScriptReference/Ray.html (дата обращения: 26.04.19).
26. RaycastHit. https://docs.unity3d.com/ru/current/ScriptReference/RaycastHit.html (дата обращения: 26.04.19).
27. Scenes. https://docs.unity3d.com/ru/current/Manual/CreatingScenes.html (дата обращения: 19.04.19).
28. Collision. https://docs.unity3d.com/ScriptReference/Collision.html (дата обращения: 29.04.19).
29. Вид от первого лица. https://linchakin.com//словарь/в/вид_от_первого_лица/ (дата обращения: 26.04.19).
30. Вид от третьего лица. https://linchakin.com/словарь/в/вид_от_третьего_лица/ (дата обращения: 26.04.19).
31. Сессия. https://rpg.fandom.com/ru/wiki/Сессия (дата обращения: 27.04.19).
32. Защитные приспособления у животных. https://ru.wikipedia.org/wiki/Защитные_приспособления_у_животных#Сигналы_тревоги (дата обращения: 02.04.19).
33. Однопользовательские игры. https://en.wikipedia.org/wiki/Single-player_video_game (дата обращения: 20.04.19).
34. Многопользовательские игры. https://en.wikipedia.org/wiki/Multiplayer_video_game (дата обращения: 20.04.19).
35. Интеллектуальные агенты в играх. https://buhconsul.ru/intellektualnye-agenty-v-igrah-intellektualnye-agenty-chto-takoe/ (дата обращения: 25.04.19).
36. Искусственный интеллект в компьютерных играх.
https://iot.ru/gadzhety/iskusstvennyy-intellekt-v-kompyuternykh-igrakh (дата обращения: 25.04.19).
37. OverlapSphere.
https://docs.unity3d.com/ScriptReference/Physics.OverlapSphere.html (дата обращения: 29.04.19).
38. Функция GetAxis(). https://docs.unity3d.com/ScriptReference/Input.GetAxis.html (дата обращения: 28.04.19).
39. Код программы данной работы. https://bitbucket.org/leradvoryanchikova/diplom