Введение
За последние 10 лет развитие телекоммуникационных технологий привело к возникновению концепций кросс — платформенных, распределенных и интеллектуальных программных систем. Такие системы могут быть реализованы разными способами, но именно мультиагентные системы (МАС) концентрируют все необходимые для таких технологий свойства с наибольшей выразительностью и полнотой. Результаты от внедрения агентных технологий подтвердили предсказанную перспективность этому направлению. Технология и теория агентов продолжают развиваться в рамках исследовательских и коммерческих проектов. Особое внимание уделяется интеграции методов искусственного интеллекта, которые до настоящего времени находили применение преимущественно в исследовательских работах, в реальные коммерческие приложения (персональные помощники, обработчики почты, программы для электронной коммерции, компьютерные игры, системы управления и контроля сложными процессами в медицине, промышленности, системы для поиска и обработки информации).
Как кратко сформулировать основную идею МАС? «Ключевым элементом этих систем становится программный агент, способный воспринимать ситуацию, принимать решения и коммуницировать с другими агентами. Эти возможности радикально отличают МАС от существующих «жестко» организованных систем, обеспечивая им такое важное новое свойство, как самоорганизация. При этом отдельные «части» программы впервые получают возможность договариваться о том, как должна решаться задача, эти «части» приобретают собственную активность и могут инициировать диалог с пользователем в заранее не предписанные моменты времени, они могут работать в условиях неопределенности и предлагать уточнения и переформулировки задач и т.д.»
Концепция агентов, разработанная в рамках мультиагентных технологий и мультиагентных систем (МАС), предполагает наличие активности, то есть способности программы самостоятельно реагировать на внешние события и выбирать соответствующие действия. Сегодня агентные технологии предлагают различные типы агентов, модели их поведения и свойства, семейство архитектур и библиотеки компонентов, ориентированные на современные требования, такие, например, как распределенность, автономность и др.
Практически во всех работах, где дается определение, что такое агент и каковы его базисные свойства, общим местом стало замечание об отсутствии единого мнения по этому поводу. Фактически, используя понятие «агент», каждый автор определяет своего агента с конкретным набором свойств. Понятие агента используется в разных областях, например, на производстве агентом может называться робот, а в области телекоммуникаций — программа и т. п. Как следствие, в зависимости от среды обитания агенты обладают разными свойствами. Поэтому в процессе разработки и реализации систем в рамках данного направления появилось множество типов агентов, например: автономные агенты, мобильные агенты, персональные ассистенты, интеллектуальные агенты, социальные агенты и т.д.
Таким образом, вместо единственного определения базового агента, имеется множество определений производных типов. Учитывая вышесказанное, понятие агента целесообразно трактовать как мета-имя или класс, который включает множество подклассов. Можно остановится на следующей нейтральной концепции:
Агент — это аппаратная или программная сущность, способная действовать в интересах достижения целей, поставленных пользователем.
Агенты описываются так же рядом свойств, которые характеризуют понятие агента. Обычно агент обладает набором из следующих свойств:
- прогнозирование состояния;
- адаптивность: агент обладает способностью обучаться;
- автономность: агент работает как самостоятельная программа, ставя себе цели и выполняя действия для достижения этих целей;
- коллаборативность: агент может взаимодействовать с другими агентами несколькими способами, например, играя роль поставщика/потребителя информации или одновременно обе эти роли;
- способность к рассуждениям: агенты могут обладать частичными знаниями или механизмами вывода, например, знаниями, как приводить данные из различных источников к одному виду. Агенты могут специализироваться на конкретной предметной области;
- коммуникативность: агенты могут общаться с другими агентами;
- мобильность: способность к передачи кода агента с одного сервера на другой.
Агентов можно рассматривать как развитие парадигмы объектно-ориентированного программирования: от команд к функциям, от функций — к объектам, от объектов — к агентам.
В настоящее время активно исследуются методы и стратегии управления агентами в рамках МАС и методы взаимодействия агентов между собой.
МАС и агенты находят широкое применение при работе с распределенными системами, централизованная обработка данных в которых затруднена или вообще невозможна в силу их распределенности. Использование независимых агентов, взаимодействующих между собой, позволяет производить параллельную обработку данных во всех частях распределенной системы. Также, за счет децентрализации процесса обработки информации, повышается надежность системы, так как в случае централизованной системы, отказ центрального узла приводит к краху системы в целом. В случае же децентрализованной системы отказ одного или даже нескольких узлов системы не нарушает работоспособность остальных узлов и системы в целом.
Очевидными сферами применения такого рода децентрализованных систем являются распределенные базы данных, компьютерные сети и кластерные системы.
Отдельно стоит выделить такую среду для функционирования МАС и агентов, как глобальная компьютерная сеть Internet. В виду гетерогенности сети Internet и отсутствия строго определенного формата хранения данных на серверах сети, на агентов, работающих в Internet, накладываются дополнительные требования — они должны работать на различных программных и аппаратных платформах и «уметь» обрабатывать данные представленные в различных форматах, что требует от них некоторой «интеллектуальности». Для обеспечения интеллектуальности могут применяться дополнительные средства.
В качестве примера мультиагентной системы можно привести игру в роботизированный футбол, чемпионаты по которому проводятся с 1997 года федерацией RoboCup.
Агентами в этой системе выступают аппаратно реализованные механические роботы-футболисты управляемые специально написанными программными модулями. В зависимости от механической реализации роботов-футболистов (колесные роботы, 4-ногие роботы и роботы-гуманоиды), а также схем организации соревнований круг решаемых программными модулями задач может широко варьироваться, так же как и перечень контролируемых параметров как самого робота-агента так и окружающей его среды.
По указанным выше причинам в настоящее время разработка управляющих алгоритмов для роботов, участвующих в соревнованиях федерации RoboCup, не представляется возможной из-за сложности механической реализации робота-агента и большого количества контролируемых параметров системы.
Тем не менее, в 2001 году в МГУ была разработана система по организации соревнований виртуальных роботов-футболистов получившая название «Виртуальный футбол». Ее цель — создание и отработка в режиме моделирования таких алгоритмов управления роботами-футболистами, которые в дальнейшем могут быть перенесены и на реальные роботы. При этом рассматриваются групповые (командные) алгоритмы стратегического и тактического уровней управления командой роботов.
Пример матча, моделируемого в системе «Виртуальный футбол»
Анализ указанных схем соревнований роботов-футболистов показывает, что, несмотря на различие конструкций таких роботов, и технических решений, принятых при их построении, в схемах соревнований роботов много общего в верхних, стратегических, уровнях управления игроками, что позволяет поставить задачу их отработки с помощью единых средств моделирования. В качестве такой системы в данной работе при разработке алгоритма управления будет использоваться система «Виртуальный футбол».
Анализ и характеристики существующих алгоритмов
Ниже приведена краткая характеристика двух алгоритмов управления роботами футболистами.
Исходные коды алгоритмов и подробное описание их функционирования можно найти на сайтах разработчиков. Я же приведу положительные и отрицательные стороны данных реализаций:
Алгоритм управления роботами-футболистами команды «Днепр»
- Улучшение предсказания. Учет конечности размеров игрока и мяча; отскока от стенки; штанги; учет начальной скорости игрока в начале предсказания; разворот и разгон в направлении мяча, а также время, потраченное на разворот перед ударом; положение вражеских игроков и т.д.
- Улучшение техники удара. Учет конечности размеров игрока и мяча; физика столкновения игрока и мяча (конечные массы объектов); переменная точность удара в зависимости от ситуации, и т.п.
- Специализация. Можно попытаться подобрать многочисленные параметры привязки к прямой ворота - мяч для защитников; добавить третьего полузащитника; не мешает поэкспериментировать с выделенным нападающим.
- Тактика.
- Командная игра. В версии сервера 2 это будет основным тактико-стратегическим аспектом игры. Однако и сейчас возможны более энергичные попытки в этом направлении. Собственно командность игры, по-видимому, и должна стать краеугольным камнем научной части движения виртуального футбола.
- Учет действий противника. Здесь возможны как простейшие приемы (например, не бить туда, где рядом с линей полета мяча окажется вражеский игрок), так и довольно изощренные (прессинг вратаря, анализ цели групповых действий противника и т.д.)
- Стратегия. Начиная с версии 1.5, появилась возможность узнавать текущий счет, время игры и т.п. Это уже позволяет менять стратегию по ходу игры. Кроме того, стоит четче реализовывать различные линии действий - защита, полузащита, нападение. Эти стратегии должны обладать определенной инерцией и зависеть не только от положения мяча, но и от общего распределения игроков на поле, того, кто контролирует мяч и т.д.
Экспертная система «Виртуального футбола» ДИИИ
- Система позволяет моделировать процессы, приближенные к реальным условиям. Так как в ней соблюдены некоторые законы физики (сохранение импульса, трение, инерция).
- В экспертной системе реализованы различные способы моделирования правил. Визуальное программирование правил, и написание их вручную.
- Относительная простота системы.
- Различные базы знаний можно склеивать, то есть объединять списки правил написанные различными людьми.
- Реализация команд виртуального футбола позволяет сделать их самообучающимися, чего нельзя сказать об экспертной системе. Визуальное программирование не позволяет делать команды самообучающимися, поэтому после ряда игр выиграть у противника невозможно.
- При увеличении или уменьшении масштабов поля, возникают смещения выделенных зон и целей относительно поля.
- Пользователь не может создавать вероятные зоны, то есть обязательно попадание всех игроков в соответствующие зоны из-за этого возможно наложение правил.
- Пользователь не может привязывать конкретную зону к конкретному игроку.
Цели и задачи
Настоящая работа направлена на решение задач роботизированного футбола и имеет целью развитие алгоритмов и программ управления роботами-футболистами, а также создание средств программного моделирования футбола роботов.
Объектом исследования в данной работе являются алгоритмы и программы, управляющие командами роботов-футболистов, в режиме моделирования их игры на компьютере.
Методы проведения исследований
Исследования по теме магистерской работы будут проводиться в специализированной среде моделирования игры виртуальных роботов-футболистов, разработанной в МГУ, «Виртуальный футбол».
Принципы, заложенные в данную среду моделирования, а также требования к разрабатываемым алгоритмам управления группой роботов-футболистов.
Этапы проведения работы
В результате анализа существующих алгоритмов управления группой роботов-футболистов, а также систем моделирования их игры, можно выделить следующие этапы:
- Разработка стратегии расположения роботов-футболистов на игровом поле. В качестве критериев оценки положения агентов системы на игровом поле будут использоваться минимальное расстояние между агентами системы, минимальное время передачи мяча, учет средней скорости игроков, учет расстояния до игроков команды противника, направление проведения атаки. Соответствующие системы уравнений и неравенств, а также их решения будут выведены на следующем этапе разработки магистерского проекта.
- Реализация удара по мячу. В первую очередь необходимо учесть, что удар по мячу должен быть результативен. То есть его результатом должен быть либо забитый гол, либо удачная передача мяча члену команды, либо предотвращение голевой ситуации у собственных ворот. Для реализации чего необходимо учитывать траекторию движения мяча после столкновения с игроком.
- Специализация игроков. Необходимо учитывать такие специфические задачи для футбола, как защита собственных ворот, полузащита и атака ворот противника.
- Учет положения и действий противника. Ни один из рассмотренных алгоритмов управления агентами системы не учитывал положения и действий противника, следовательно их учет позволит значительно повысить результативность игры команды.