пятница, 7 декабря 2007 г.

Агентные платформы: кто в лес, кто по дрова

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

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

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

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

Итак, опишем применяемый способ классификации АП (или classification framework):
Если смотреть глобально, то все платформы можно разделить на 3 большие группы:
  • Промышленные АП -- надежность, масштабируемость, интегрируемость с существующими системами и другими АП. Возможности визуализации обычно отсутствуют, зато есть поддержка стандартов взаимодействия и Web, сложных методов ИИ.
  • АП для моделирования -- 3D анимация, моделирование биологических, социальных, экономических систем. Обычно закрытые обособленные платформы, содержат инструменты визуализации и анализа взаимодействий агентов.
  • Виртуальные миры и компьютерные игры*, робототехника -- агент действует в трехмерном мире, воспринимая его, взаимодействуя с себе подобными агентами и объектами среды. Пожалуй, это комбинация первых двух типов АП. Самые сложные типы сред, самые приближенные к реальному миру.

* Как мне кажется, прогресс в разработке игрового ИИ движется именно в эту сторону.



Каждую платформу можно сравнить по определенному набору свойств:
Общие свойства платформы
  • Область применения (напр. моделирование, мобильные сети, web...).
  • Технологии, лежащие в основе платформы (напр. язык программирования, используемые каркасы, соответствие стандартам).
  • Сообщество разработчиков (напр. размер и активность , зрелость системы).
  • Расширяемость платформы (напр. API расширения, существующие плагины).
  • Интеграция (возможность связи платформы с существующими системами, в основном, корпоративными).
  • Документация (качество сопроводительной документации).
  • Лицензия (напр. GPL, LGPL).
  • Связь с коммерческими структурами
  • Примеры проектов МАС, выполненных на этой платформе. Размеры сообщества прикладных разработчиков.
Свойства платформы, связанные с разработкой МАС
  • Поддержка методологии разработки (определяет виды работ, результаты работы на всех этапах разработки МАС: анализ, проектирование, реализация, тестирование и отладка, развертывание).
  • Наличие инструментария разработки агентов и МАС (для приведенных этапов + средства визуализации и анализа поведения агентов).
  • Особенности реализации агентов и МАС (напр. языки описания агентов, наличие механизмов интеллекта, коммуникации).


Промышленные платформы


JADE (http://jade.tilab.com)



Общие свойства платформы
  • Область применения: мобильные сети, web, промышленное применение (планирование и логистика), исследования технологии агентов.
  • Технологии: Java SE, Java ME (вплоть до моб телефонов), поддерживает стандарты FIPA.
  • Сообщество разработчиков: платформа достаточно зрелая (с 2000 года и версии 1.3 стала OSS проектом. После того, как вымерли платформы первого поколения, долгое время была единственной вменяемой АП).
  • Расширяемость: поддерживает плагины на всех уровнях, существует большое количество готовых плагинов.
  • Интеграция: Java EE (JMS, Web...), CORBA, XML.
  • Документация: хорошая, есть даже книга.
  • Лицензия: LGPL.
  • Связь с коммерческими структурами: http://jade.tilab.com/theboard-members.htm (Telecom Italia Lab, Motorola, Whitestein Technologies AG, Profactor GmbH, France Telecom R&D).
  • Примеры проектов МАС: платформа для исследований во многих университетах
Свойства платформы, связанные с разработкой МАС
  • Поддержка методологии разработки: нет.
  • Наличие инструментария разработки агентов и МАС: реализация, тестирование и отладка, развертывание (отладка обработчиков поведения, сниффер сообщений, ср-ва тестирования, управление платформой и агентами). Есть попытки интеграции управления платформой в IDE Eclipse.
  • Особенности реализации агентов и МАС: язык описания агентов - Java, механизмы интеллекта доступны через сторонние плагины: BDI и FSM, есть библиотека протоколов согласно стандартам FIPA, поддержка онтологий, плагины Semantic Web и Web Services.

Cougaar (http://cougaar.org)



Общие свойства платформы
  • Область применения: мобильные сети, web, промышленное применение, военное применение, огромные распределенные системы.
  • Технологии: Java SE, Java ME (если проект еще жив).
  • Сообщество разработчиков: одна из древнейших платформ (проект начат в 1996 при участии DARPA).
  • Расширяемость: поддерживает плагины на всех уровнях, существует большое количество готовых плагинов.
  • Интеграция: Java EE (JMS, Web...), CORBA, XML.
  • Документация: ???
  • Лицензия: open-source (BSD-based) License.
  • Связь с коммерческими структурами: Cougaar Software Inc.
  • Примеры проектов МАС: http://www.cougaarsoftware.com/Products_Services/activeEdge.shtml
Свойства платформы, связанные с разработкой МАС
  • Поддержка методологии разработки: нет.
  • Наличие инструментария разработки агентов и МАС: реализация, тестирование и отладка, развертывание (отладка обработчиков поведения, сниффер сообщений, ср-ва тестирования, управление платформой и агентами).
  • Особенности реализации агентов и МАС: язык описания агентов - Java, механизмы интеллекта доступны через сторонние плагины.

Aglobe (http://agents.felk.cvut.cz/aglobe)
Общие свойства платформы
  • Область применения: промышленное применение, моделирование инженерных систем.
  • Технологии: Java SE, НЕ поддерживает стандарты.
  • Сообщество разработчиков: внутренняя разработка чешского университета с открытыми исходниками.
  • Расширяемость: ???
  • Интеграция: нет.
  • Документация: скверная.
  • Лицензия: CPL.
  • Связь с коммерческими структурами: в связях не замечена.
  • Примеры проектов МАС: http://agents.felk.cvut.cz/projects
Свойства платформы, связанные с разработкой МАС
  • Поддержка методологии разработки: нет.
  • Наличие инструментария разработки агентов и МАС: бедный (управление платформой и агентами, сниффер сообщений). Есть средства 3D-визуализации.
  • Особенности реализации агентов и МАС: язык описания агентов - Java.

Jason (http://jason.sourceforge.net)



Общие свойства платформы
  • Область применения: исследовательские проекты.
  • Технологии: Java SE.
  • Сообщество разработчиков: австралийское сообщество любителей агентов (Wooldridge и др.).
  • Расширяемость: ???
  • Интеграция: может работать поверх платформ, обеспечивающих коммуникации между агентами: Saci или Jade.
  • Документация: мануал и книга.
  • Лицензия: LGPL.
  • Связь с коммерческими структурами: в связях не замечена.
  • Примеры проектов МАС: ???
Свойства платформы, связанные с разработкой МАС
  • Поддержка методологии разработки: нет.
  • Наличие инструментария разработки агентов и МАС: реализация, тестирование и отладка (отладка обработчиков поведения, сниффер сообщений, ср-ва тестирования), формальная верификация AgentSpeak. Плагины к jEdit (есть) и Eclipse (в планах).
  • Особенности реализации агентов и МАС: язык описания агентов - AgentSpeak, механизмы интеллекта BDI, организационная модель Moise+ .

Jack (http://www.aosgrp.com/shared/products/index.html)



Общие свойства платформы
  • Область применения: мобильные сети, промышленное применение, военное применение.
  • Технологии: Java SE, Java ME (iPAQ PocketPC).
  • Сообщество разработчиков: ???
  • Расширяемость: ???
  • Интеграция: CORBA, RMI, J2EE, EJB, .NET, DCOM or HLA
  • Документация: ???
  • Лицензия: коммерческая.
  • Связь с коммерческими структурами: The Agent Oriented Software Group.
  • Примеры проектов МАС: ???
Свойства платформы, связанные с разработкой МАС
  • Поддержка методологии разработки: есть (Prometheus).
  • Наличие инструментария разработки агентов и МАС: моделирование, реализация, тестирование и отладка, развертывание.
  • Особенности реализации агентов и МАС: язык описания агентов - Java с расширениями в сторону BDI, механизмы интеллекта -- BDI.


Другие платформы пока пристально не смотрел, но собираюсь в течение месяца-двух познакомиться с ними поближе.

Madkit (http://www.madkit.org)

Моделирование, 3D-моделирование
MASON (http://www.cs.gmu.edu/~eclab/projects/mason)
Repast (http://repast.sourceforge.net)
Ascape (http://ascape.sourceforge.net)
NetLogo (http://ccl.northwestern.edu/netlogo)

Виртуальные миры и компьютерные игры, робототехника
Soar (http://sitemaker.umich.edu/soar/home)


Ну вот на сегодня и все.

PS. Если у вас есть положительный (или отрицательный) опыт использования агентных платформ, поделитесь, пожалуйста, с нами!!!

12 комментариев:

  1. Анонимный09.12.2007, 14:33

    Спасибо))

    ОтветитьУдалить
  2. Вообще, строго говоря, Jason, как и JadeX не являются агентными платформами. Есть предложение выделить их в отдельную группу "мозги" ;) вместе с Jess, Drools (в девичестве JBoss Rules), Прологом и т.д.

    Сергей предложил добавить АП Breve (www.spiderland.org) на Phyton, предназначенную для 3D моделирования и изучения искусственной жизни.

    ОтветитьУдалить
  3. А что насчёт платформы ABLE от IBM?

    ОтветитьУдалить
  4. Да, есть такая платформа и она весьма любопытна сама по себе, тк изначально поддерживает прямой и обратный логический вывод, нечеткую логику и т.п.

    Но ее закрытость и непредсказуемый цикл разработки... я бы не стал делать на ней что-то серьезное. Разве что какой-нибудь простой прототип. Хотя поковырял бы с удовольствием, чтобы выяснить архитектурные особенности.

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

    ОтветитьУдалить
  5. Просто выбираю платформу на которой делать дипломный проект (в дальнейшем диссертация). Вот и стоит выбор между ABEL и JADE.

    ОтветитьУдалить
  6. Мой Вам совет -- сформулируйте требования к вашей системе. Все понимают, что без этого никак, но добровольно почему-то никто этого не делает.

    Эти АП настолько РАЗНЫЕ, что я с трудом могу представить областьт применения, для которой они обе были бы эквивалентны.

    ОтветитьУдалить
  7. Спасибо за предоставленную инфу. В данный момент разрабатываю дипломный проект по моделированию физических процессов. И остановился на средах NetLogo или StarLogo, там и готовых примеров достаточно много. Только вот немного смущает, что такое малое количество кода(для обычного программиста) создаёт такие умные вещи :) С одной стороны это конечно хорошо, с другой - не всегда легко сразу понять, что, чего и как описывается :)

    ОтветитьУдалить
  8. Анонимный03.05.2009, 00:14

    Искал инфу по агентным платформам, нашел нехилую таблицу в Википедии и Ваш блог.Спасибо , что хоть кто-то пишет о агентах на русском. Может посоветуете платформу для исследования поведения (поведения в простейшем виртуальном мире) интеллектуальных агентов. Цель исследования различных алгоритмов интеллектуальных агентов с использованием соревновательности между разработчиками (Террариум с уклоном в науку и исследования).
    Требования:
    - бесплатная лицензия, желательно открытый код;
    - живой в течении длительного времени проект;
    - масштабируемость ( хотя первоначально агенты единичные);
    - простотв создания мира в котором существует агент;
    - визуализация поведения агента;
    - простота начала работы;
    - желательно простой язык создания агентов ( могут работать не только проф. программисты);
    - возможность подключения внешних модулей на ЯВУ (напр dll);
    - наличие примеров применения в исследованиях или промышленности.
    Заранее спасибо.

    ОтветитьУдалить
  9. Ваши требования слишком противоречивы. Система для быстрого прототипирования и надежная масштабируемая промышленная система -- обычно это принципиально разные продукты.

    Кроме того, агентное моделирование и визуализация -- это лишь одна из областей. Проектов в стиле "Агентный Террариум" я пока не нашел. Правда, большой необходимости в них не было. Но если Вы найдете -- дайте ссылку :)

    Из промышленных коммерческих систем ABM есть питерский AnyLogic, продукты самарской Magenta и ряд зарубежных аналогов.

    Из OSS проектов наиболее близки те, что помещены в раздел "Моделирование, 3D-моделирование" в статье.

    Также могу посоветовать поиск вроде "(agent-based or multi-agent) and (simulation or modelling)"

    ОтветитьУдалить
  10. В продолжение темы, случайно наткнулся на статью о применении RePast в grid

    Dan, G. K, S. J, Wentong, Robert, Yi, “Large scale agent-based simulation on the grid,” Future Generation Computer Systems, vol. 24, Jul. 2008, pp. 658-671.

    ОтветитьУдалить
  11. Анонимный27.05.2009, 22:15

    Проблема open-source платформ в том, что к ним либо очень мало, либо совсем нет инструкций к применению. Так что без хороших навыков программирования тяжеловато. Пока во всех этих классах разберешься,какой какую функцию выполняет. Я решила писать в RepastS, но никак не соображу что и как делать :(

    ОтветитьУдалить
  12. Любая система имитационного моделирования потребует от вас программирования. Вообще, объектное программирование (в том виде, в каком оно используется сейчас) в первую очередь применялось в системах имитационного моделирования (язык Simula).

    Хотя... буду рад узнать, что ошибся.

    Что касается Repast, то там с документацией все достаточно хорошо. Есть даже Getting Started.

    ОтветитьУдалить