среда, 7 ноября 2007 г.

Мультиагентная система vs агентная платформа

В чем различие?
Попытаюсь проиллюстрировать на примере различия агентной платформы (АП) и мультиагентной системы (МАС).

Как вы думаете, в чем различие между .NET Framework/Java/MFC и конечным приложением? Или между системой управления контентом (CMS) и конечным веб-сайтом? Все это -- middleware, то есть ПО промежуточного уровня (библиотеки, каркасы), находящееся между операционной системой и приложением.

Агентная платформа -- это middleware, которое реализует основные механизмы, обеспечивающие работу МАС и таким образом, облегчает построение агентных систем.

МАС работает "поверх" агентной платформы и использует ее сервисы.



Что ОНО могет?
Перечислим основные функции АП:
  • Взаимодействия агентов
  • Передача сообщений между агентами внутри платформы (на различных уровнях: на уровне сетевых пакетов, сообщений какого-либо языка общения, протоколов общения).
  • Передача сообщений между агентами разных платформ.
  • Поддержка онтологий
  • Управление агентами
  • Поиск агентов и данных о них внутри системы.
  • Управление жизненными циклами агентов.
  • Безопасность

В общем-то ЭТО ВСЕ! Большего среднестатистическая агентная платформа НЕ УМЕЕТ. Поэтому попытки понять "что такое агент и агентный подход" исходя только из агентной платформы мало что вам дадут. Это вроде попыток понять как сделать крутой вебсайт опираясь лишь на анализ возможностей какой-то конкретной CMS.

Ах, да! Организация FIPA (с 2005 года это 11 комитет IEEE) выпустила ряд стандартов на агентные платформы. Так что теоретически агентные системы могут быть переносимы между различными платформами, или, по-крайней мере, смогут взаимодействовать между собой.

Мозги в комплект не входят
--А где же интеллект? -- спросит меня пытливый читатель. -- Где же те самые машины вывода, планировщики, нейросети. Ну хотя бы завалящий конечный автомат?
--А нету, -- отвечу я ему. Точнее, они есть где-то там... но проектировать и реализовывать их придется вам самим. И никакая платформа вам в этом не поможет. Для агентной платформы JADE вы лучшем случае сможете найти FSM и BDI плагины. Но даже они вам мало помогут без солидной теоретической подготовки.

В области агентов сделать что-то интересное без знания всей области (хотя бы поверхностного) просто невозможно. Более того, многие направления еще ждут своих первооткрывателей. Например, сейчас "последний писк" в агентах -- это использование механизмов репутации при взаимодействии агентов.

Невозможно взять опенсорсное полуготовое, чуть подпилить напильником и выдать за свое, так как открытых проектов МАС практически нет. Невозможно лепить фичи, не задумываясь о последствиях. Единственное, чего вы можете добиться при таком подходе -- это впечатлите неграмотных людей, которые "слышали звон". Даже толпу впечатлить не удастся ;) А уж люди "в теме" просто повеселятся на ваш счет, так как подобную систему наверняка можно было реализовать и без агентного подхода, причем с гораздо меньшими усилиями.

В этом и заключается недостаток и основной интерес данной области -- за тебя еще не все продумали и пережевали в легкоусвояемые полуфабрикаты быстрого приготовления. А даже если и продумали, то еще не успели реализовать ;) Но нужно заплатить и цену за вход. Знанием. Нужно просто много знать :(

Адын, савсэм адын :(((((
С чем же сталкивается бедный разработчик, опрометчиво взявшийся за создание МАС?

Во-первых, это "внутренние мозги" агента. Как агент воспринимает информацию? Каким образом выбирает подходящие действия? Как он может обучаться на своем и чужом опыте?

Во-вторых, это вопросы взаимодействий агентов между собой для решения своих локальных задач. Как агенты передают свои знания друг другу? Каким образом они могут совместно решать задачи? Или может быть они конкуренты?

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

Знание и эффект толпы
Чем бедные разработчики могут себе помочь или хотя бы облегчить свою участь?

Теоретическими системными знаниями: читайте стандарты, системные труды в области агентов, ИИ, теории игр.

Сообществом
: читайте статьи и технические отчеты, участвуйте в конференциях.

Практическими знаниями
: создавайте интересные агентные системы, для получения "устойчивого результата" разработки (в плане качества и затрат) посмотрите методологии разработки МАС.

Комментариев нет:

Отправить комментарий