В этой статье предлагаю вашему вниманию:
- Способ классификации агентных платформ -- признаки, по которым можно сравнить платформы.
- Саму классификацию агентных платформ -- перечень платформ с конкретными значениями признаков.
Сейчас содержимое документа весьма приблизительно и условно. Принимаются замечания и дополнения как использованному способу классификации (изменение или дополнение списка важных для вас свойств), так и по самой классификации (добавление новых платформ, уточнение их характеристик). Никто не знает вашу агентную платформу лучше вас, поэтому постарайтесь прислать полное ее описание, а не только название ;) .
Надеюсь, "коллективным интеллектом" мы сможем повысить качество материала. На основе ваших комментариев и замечаний обязуюсь своевременно обновлять материал.
Итак, опишем применяемый способ классификации АП (или 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. Если у вас есть положительный (или отрицательный) опыт использования агентных платформ, поделитесь, пожалуйста, с нами!!!
Спасибо))
ОтветитьУдалитьВообще, строго говоря, Jason, как и JadeX не являются агентными платформами. Есть предложение выделить их в отдельную группу "мозги" ;) вместе с Jess, Drools (в девичестве JBoss Rules), Прологом и т.д.
ОтветитьУдалитьСергей предложил добавить АП Breve (www.spiderland.org) на Phyton, предназначенную для 3D моделирования и изучения искусственной жизни.
А что насчёт платформы ABLE от IBM?
ОтветитьУдалитьДа, есть такая платформа и она весьма любопытна сама по себе, тк изначально поддерживает прямой и обратный логический вывод, нечеткую логику и т.п.
ОтветитьУдалитьНо ее закрытость и непредсказуемый цикл разработки... я бы не стал делать на ней что-то серьезное. Разве что какой-нибудь простой прототип. Хотя поковырял бы с удовольствием, чтобы выяснить архитектурные особенности.
Вообще, на далекое будущее есть идея более формально классифицировать и даже может быть описать архитектуры основных агентных платформ на чем-то вроде языка AADL. С одной стороны формальное описание, которое можно использовать в моделировании и генерации кода, с другой -- можно сгенерить документацию с картинками.
Просто выбираю платформу на которой делать дипломный проект (в дальнейшем диссертация). Вот и стоит выбор между ABEL и JADE.
ОтветитьУдалитьМой Вам совет -- сформулируйте требования к вашей системе. Все понимают, что без этого никак, но добровольно почему-то никто этого не делает.
ОтветитьУдалитьЭти АП настолько РАЗНЫЕ, что я с трудом могу представить областьт применения, для которой они обе были бы эквивалентны.
Спасибо за предоставленную инфу. В данный момент разрабатываю дипломный проект по моделированию физических процессов. И остановился на средах NetLogo или StarLogo, там и готовых примеров достаточно много. Только вот немного смущает, что такое малое количество кода(для обычного программиста) создаёт такие умные вещи :) С одной стороны это конечно хорошо, с другой - не всегда легко сразу понять, что, чего и как описывается :)
ОтветитьУдалитьИскал инфу по агентным платформам, нашел нехилую таблицу в Википедии и Ваш блог.Спасибо , что хоть кто-то пишет о агентах на русском. Может посоветуете платформу для исследования поведения (поведения в простейшем виртуальном мире) интеллектуальных агентов. Цель исследования различных алгоритмов интеллектуальных агентов с использованием соревновательности между разработчиками (Террариум с уклоном в науку и исследования).
ОтветитьУдалитьТребования:
- бесплатная лицензия, желательно открытый код;
- живой в течении длительного времени проект;
- масштабируемость ( хотя первоначально агенты единичные);
- простотв создания мира в котором существует агент;
- визуализация поведения агента;
- простота начала работы;
- желательно простой язык создания агентов ( могут работать не только проф. программисты);
- возможность подключения внешних модулей на ЯВУ (напр dll);
- наличие примеров применения в исследованиях или промышленности.
Заранее спасибо.
Ваши требования слишком противоречивы. Система для быстрого прототипирования и надежная масштабируемая промышленная система -- обычно это принципиально разные продукты.
ОтветитьУдалитьКроме того, агентное моделирование и визуализация -- это лишь одна из областей. Проектов в стиле "Агентный Террариум" я пока не нашел. Правда, большой необходимости в них не было. Но если Вы найдете -- дайте ссылку :)
Из промышленных коммерческих систем ABM есть питерский AnyLogic, продукты самарской Magenta и ряд зарубежных аналогов.
Из OSS проектов наиболее близки те, что помещены в раздел "Моделирование, 3D-моделирование" в статье.
Также могу посоветовать поиск вроде "(agent-based or multi-agent) and (simulation or modelling)"
В продолжение темы, случайно наткнулся на статью о применении 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.
Проблема open-source платформ в том, что к ним либо очень мало, либо совсем нет инструкций к применению. Так что без хороших навыков программирования тяжеловато. Пока во всех этих классах разберешься,какой какую функцию выполняет. Я решила писать в RepastS, но никак не соображу что и как делать :(
ОтветитьУдалитьЛюбая система имитационного моделирования потребует от вас программирования. Вообще, объектное программирование (в том виде, в каком оно используется сейчас) в первую очередь применялось в системах имитационного моделирования (язык Simula).
ОтветитьУдалитьХотя... буду рад узнать, что ошибся.
Что касается Repast, то там с документацией все достаточно хорошо. Есть даже Getting Started.