Pull to refresh

Мультиагентные системы — что это

Reading time3 min
Views36K
Был весьма удивлен не найдя ни слова про мультиагентные системы (МАС), поэтому решил восполнить этот пробел.

Разберём сначала основные понятия, затем посмотрим немного в сторону практики, и на последок ненмого полезных ссылок для заинтересовавшихся.



Основываясь на собственном опыте, хочу начать с примера.

Предположил у нас есть задача распознавания образа на картинке. Не вдаваясь в реализацию конкретного механизма распознавания можно сказать, что на вход некоторому алгоритму подается наше изображение, который и работает с этим изображением, а за тем, по завершении работы, выдает нам результат. Этот подход является классическим.

А теперь давайте представим себе, что мы разбили первоначальное изображение на несколько частей и для каждой части запустили наш алгоритм. Что нам это дало? Во-первых, с учетом параллельной работы у нас уменьшается время обработки, во-вторых, мы можем упростить структуру самого алгоритма. Уже не плохо. Что ещё? Ещё это требует от нас введение некоторой сущности, которая будет выступать в роли менеджера – т.е. собирать данные от различных процессов распознавания, а так же создавать новые процессы. Данный подход является мультиагентным.

Теперь разберемся с терминологией. Базовое понятие, лежащее в основе мультиагентной теории является понятие агента – в общем смысле это любой объект способный действовать и воспринимать. В соответствии с этим, каждому агенты присущи наборы сенсоров – то, с помощью чего агент воспринимает и актуаторов – то, чем агент воздействует. На что же может воздействовать агент? На других агентов и внешнюю среду – все что, окружает агента.

Любой агент обладает следующими свойствами:
  • активность – т.е. каждый агент способен к организации и реализации действии ( в соответствии с внутренним алгоритмом функционирования);
  • автономность – относительная независимость от окружающей среды;
  • целенаправленность – наличие собственных источников мотивации (у каждого агента есть некоторая цель, для достижения которой он функционирует).


Как было отмечено выше, у каждого агента существует цель, группа агентов имеющих одинаковую цель объединяют в класс агентов.

Думаю, что с основными понятиями мы разобрались (на самом деле существует ещё очень много тонкостей относительно внутренней структуры агентов, типов сред, но все в одну статью вместить невозможно).

Где можно применять мультиагентные системы.

Благодаря тому, что структура мультиагентных систем очень близка структурам реального мира, область применения МАС очень широка:
  • робототехника;
  • логистика;
  • исследование социальных и биологических систем;
  • поиск информации;


Теперь отвлечемся от теории и обратимся к практическому аспекту, а именно разработке МАС.

Здесь не все так хорошо, как хотелось бы видеть. Существует несколько международных стандартов относительно систем для разработки МАС, однако часть из них являются устаревшими, часть – не полными.
Вообще, существует два варианта разработки МАС – либо с использованием агентных платформ (АП) (читай framework), либо с использованием среды разработки. Со вторым все намного хуже, чем с первым и ничего заслуживающего внимания я не видел.

Относительно агентных платформ существует несколько достаточно хороших решений. Приведу небольшую таблицу со сравнением существующих АП:
 
Jade
Coguaar
Aglobe
Jason
breve
область применения
мобильные сети, web, планирование и логистика, исследования технологии агентов
мобильные сети, web, промышленное применение, военное применение, огромные распределенные системы
промышленное применение, моделирование инженерных систем
Исследовательские проекты
Виртуальные миры, искусственная жизнь
технологии
Java SE, Java, поддерживает стандарты FIPA
Java SE, Java ME
Java SE
Java SE
расширяемость
возможность расширения на всех уровнях
возможность расширения на всех уровнях
нет
есть
есть
наличие плагинов
большое количество
большое количество
нет
есть
нет
интеграция
Java EE (JMS, Web...), CORBA,
Java EE (JMS, Web...), CORBA,
Отсутствует
Saci, Jade
наличие дополнительной документации
+
+
+
лицензия
LGPL
open-source (BSD-based) License
CPL
LGPL
open-source License
методология
наличие средств визуализации
+
+
инструментарий разработчика
поддерживаются
основные этапы разработки
поддерживаются
основные этапы разработки
минимальный
поддерживаются
основные этапы разработки
минимальный


Вот, так сказать, галопом по Парижу, основа мультиагентного подхода.

Если кого-нибудь заинтересовала эта тематика, то вот список литературы (ссылки предоставляются as-is):
  1. Агенты и мультиагентные системы (http://aivanoff.blogspot.com/2007/12/blog-post_18.html)
  2. Агентные платформы: кто в лес, кто по дрова ( http://aivanoff.blogspot.com/2007/12/blog-post.html)
  3. Городецкий, В.И. Многоагентные системы
  4. Рассел, С. Искусственный интеллект: современный подход
  5. Тарасов, В. Б. Агенты, многоагентные системы, виртуальные сообщества: стратегическое направление в информатике и искусственном интеллекте
  6. Мой диплом :)


UPD.1 НЛО — благодарю за инвайт
Tags:
Hubs:
Total votes 20: ↑15 and ↓5+10
Comments6

Articles