понедельник, 21 февраля 2011 г.
На русском -- JADE Programming For Beginners
Возрадуемся же, братия! И да поможем друг другу с другими руководствами по JADE :) И да обновим же это руководство до версии 4.0.1! Ибо все в наших руках. И агенты, и Semantic Web.
вторник, 11 мая 2010 г.
Лабораторные по агентам. Next Level
Раньше мы двигались больше на ощупь (Курс МИС, осень 2008).
Однако уже тогда соответствии с принципом открытости учебного процесса мы выложили задания и исходный код выполненных лабораторных работ по агентам в открытый доступ. Каждый архив -- самодостаточный проект Eclipse. Скачиваете, запускаете, наслаждаетесь :) (т.е. download-run-havefun).
Открытость, как было установлено в результате бесчеловечных экспериментов, сильно повышает качество конечного результата работы и преподавателя, и студента.
И, также, мы надеемся, хоть как-то стимулирует интерес русскоязычной аудитории к агентам.
В же этом семестре лабораторные по агентам как никогда соответствуют открытой нашим коллективом концепции мотивации студентов "fun & value".
Студентам на выбор предложено две темы: "Животные" или "Электронная аудитория". Подробнее см. Курс ПЗИС, весна 2010
Те из студентов хочет больше фана, выбирают "игровые технологии" тему "Животные".
- Животные – изучение мозгов агента на основе архитектуры BDI и языка AgentSpeak. Создаем свой вид животных и смотрим, как они борются за еду.
А кому более интересен полезный вклад в общее дело -- тему "Электронная аудитория".
- Электронная аудитория – изучение коммуникационной инфраструктуры и модели исполнения агентов на основе платформы Jade. Упрощаем обмен информацией и контроль за ней. Помогаем студентам и преподавателям взаимодействовать во время обучения.
В этом семестре мы хотим продолжить публикацию исходного кода лабораторных работ по агентам. И на подходе уже первая ласточка -- Агент-распространитель (FTP).
А как Вы бы хотели изучать агентов? Или может быть, уже изучали агентов? Вам как студентам были бы интересны подобные задания? Что можно было бы улучшить?
Критика, замечания и предложения приветствуются. Нам важно знать Ваше мнение.
понедельник, 27 апреля 2009 г.
Болезни российских публикаций по агентам
Если говорить о российских публикациях, то некоторые отклонения давно уже перешли в разряд хронических. В общем, решил я собрать в одном месте самые клинические случаи. Не ради себя возвеличивания, просто за державу обидно-с! Надеюсь, совместными усилиями мы сможем их преодолеть!
Определенец
Типичный симптом данного заболевания – подмена существующего понятия "агент" своим собственным определением. Обычно в тексте это выглядит так: «понятие агента до сих пор четко не определено, поэтому я [Вася Пупкин из деревни Гадюкино] придумал свое собственное определение [а все эти ваши Хоары, Норвиги, Вулдриджи тут и рядом не стояли]».
Агентом часто считают какой-либо из решателей задач: классический планировщик, машину вывода Prolog, простейший алгоритм поиска и т.д.
Тут моя въедливая и склочная вторая субличность обычно ехидно замечает, что, мол, раз он, автор, считает, что:

и вводит новое определение, то неплохо было бы сравнить его со старыми. Показать, чем же плохи старые определения и какая такая уникальная новизна содержится в новом, особенно применительно к решаемой проблеме.
Тем более что определения есть. Все-таки, прошло более 10-ти лет достаточно интенсивных исследований в области агентов (а по некоторым источникам -- даже 20-ти лет)…
Для профилактики и лечения таких расстройств Дао рекомендует интенсивный курс возвращения к основам. Рассел&Норвиг и другие системообразующие труды по агентам в условиях строжайшей сенсорной депривации быстро вернут человека в норму.
Загляните хотя бы в Википедию. Право же стыдно-с, господа!
Колумбус
Данное расстройство характеризуется тем, что автор на протяжении всего своего труда с пеной у рта объясняет, как здорово применять агентов в какой-либо конкретной области. Автор ударяется в махровую идеологию, вместо того, чтобы предложить конкретное решение, теорию, модель. Мы сразу же можем заключить, что основными идеями он проникся до мозга и костей и теперь полез открывать Америки и захватывать неосвоенные богатства.
Скромнее надо быть, голубчики мои, скромнее! Тут надо понимать, что западные коллеги все легкодоступное золотишко с поверхности уже подсобрали. За столько-то лет... Вглубь нужно копать, дорогие мои, вглубь.

10 лет, повторяю, 10 лет зарубежные товарищи тратили деньги:
- простых налогоплательщиков;
- телекомов;
- военных;
- авиаторов и спецов по космосу;
- и много кого еще…

В результате, мы, как правило, получаем нулевую научную ценность такой весьма поверхностной работы. Конечно, по мировым меркам.
Дао говорит, что для нормальной и актуальной прикладной научной работы нужно не только хорошо знать основы теории агентов, но и последние тенденции по применению агентов в вашей конкретной области.
Посему, пострадавшему рекомендуется ознакомиться со свежей зарубежной периодикой по применению агентов в его области. В качестве вакцины.
- Google Scholar самый крупный поисковик отдельных научных статей.
- Плюс профильные журналы ведущих издательств: ACM, IEEE, Springer, Kluwer и т.д. по списку доступа вашего ВУЗа.
- А также материалы профильных конференций.
среда, 15 октября 2008 г.
А Вы сделали лабы по агентам?
Раз писать больше не о чем, напишу про эти самые лабораторные работы :) Возможно кто-нибудь найдет что-то полезное для себя.
Цель -- на практике познакомить студентов технического ВУЗа с технологией агентов.
Идеальная ситуация (пока все увы не так) -- практически у каждого студента инивидуальное задание, которое выдается на первом занятии, чтобы был стимул слушать лекции и задавать вопросы. Все наработки должны быть сделаны не "на выброс", а чтобы их можно было переиспользовать. Методы ИИ даются в теории, но не используются в лабораторных намеренно, чтобы не испугать неофитов. :)
Агенты создаются на языке Java (Java SE 6) в среде разработки Eclipse для агентной платформы Jade.
В агентах нужно обязательно использовать:
- поведения -- в них реализуется практически вся функциональность агента;
- стандартные протоколы взаимодействия агентов FIPA;
- онтологии -- объектная структура для передачи данных в сообщении и работы с этими данными внутри агента.
Оформление
Приводятся требования к единообразному оформлению исходного кода (комментарии, именование и т.п.), файловой структуре проекта.
Сдача
В связи с тем, что сразу сделать как надо и в срок в разработке ПО не получается практически ни у кого, будут как минимум 2 итерации приема задания.
Чат-бот
Сделать агента чат-бота на основе AIML (наподобие A.L.I.C.E.). Агент может получать от другого агента строку с предложением и отправлять обратно строку с ответом. Реализовать простейшую базу знаний агента.
Монитор производительности Java-машины
Сделать агента, предоставляющего информацию о производительности ява-машины (используемая память). Использовать подписку на периодическое получение информации.
Агент-преследователь
Тестирующий агент перемещается случайным образом каждые 10 сек в новый контейнер. Интерфейсный агент периодически проверяет раз в 10 сек, находится ли он на одном компьютере с тестирующим агентом. Если нет, то перемещается на контейнер к тестирующему агенту.
Оба агента имеют GUI-окна, которые также перемещаются на другие машины. Чтобы можно было видеть визуально, что агенты переместились на новый контейнер.
Агент-бенчмарк
Сделать агентов, тестирующих производительность системы сообщений (замеряющих задержку сообщений и пр. – позже) для случаев как без использования онтологий, так и с использованием онтологий.
Новостной агент
Агент периодически получает новости об определенной компании по RSS с Yahoo! Finance. Затем он их посылает новости подписавшемуся на них тестовому агенту.
Агент-семантик
Агент-семантик получает от агента-тестера текст, который перенаправляет веб-сервису, добавляющему в него семантическую разметку. Затем агент-семантик отправляет полученные результаты обратно агенту-тестеру.
В качестве веб-сервиса использовать http://www.opencalais.com
Что Вы думаете по поводу заданий, их сложности, тематики, целей, средств? Любые предложения приветствуются.
пятница, 21 декабря 2007 г.
Кому и зачем нужны агенты?
Попытаемся окончательно и бесповоротно разобраться в том, зачем агенты и мультиагентные системы нужны современному человечеству.
Чем дальше в лес, тем толще партизаны.
Для разных групп людей агенты означают совершенно разные вещи.
1. Для специалистов по ИИ и прочих господ ученых агенты -- это исследовательский инструмент. Исторически сложилось, что агенты в основном применяются в трех областях.
Теоретический инструмент распределенного решения задач. Разделение одной большой задачи на отдельные мелкие подзадачи, решение подзадач, интеграция результатов.
Теоретический инструмент построения социального интеллекта: интеллект, как продукт взаимодействия отдельных элементов социума, emergent intelligence (возникающий интеллект). Сложное поведение системы, появляющееся из суммы простых поведений примитивных существ - emergent behavior (возникающее сложное поведение).
Теоретический инструмент интеграции разрозненных методов ИИ в одном существе (в роботе, в программном боте). Например, даже в простой задаче по созданию "самодвижущегося автомобиля" нужно решить целый ряд проблем и связать вместе несколько отдельных методов ИИ. Знатоки английского могут почерпнуть немало любопытного о создании мозгов автомобиля, принимавшего участие в DARPA Grand Challenge 2005.
2. Для прикладного разработчика ПО (и товарищей ученых, разрабатывающих новые технологии в разработке ПО) агенты - это новый уровень абстракции, позволяющий создавать более сложные системы с еще более интересным и интеллектуальным поведением.
Посмотрим на агентов с точки зрения архитектуры ПО. В настоящее время, при проведении проектирования, ПО рассматривается как совокупность взаимосвязанных классов, модулей или компонентов. Причем, каждый из этих элементов реализует свой кусочек от общей функциональности системы. В этом и состоит суть любого анализа (в том числе и объектно-ориентированного) -- поделить непонятное целое на более-менее понятные отдельные части, сведя связи между ними к минимуму. Ну а дальше систему, раздробленную на части, проще осмыслить, описать в документации, реализовать и протестировать.
Архитектура реальной корпоративной системы. Rational Software Developer Conference. IBM, 2006.
Сейчас наиболее крупными архитектурными единицами ПО можно считать компоненты (модули OSGi, сборки .NET, компоненты COM) и сервисы (и веб-сервисы в частности). Компоненты (или сервисы) -- это по-сути "черные ящики" с четко описанными внешними интерфейсами для конфигурирования, расширения функциональности, для работы с ними в нормальном режиме.
Но в любом случае, разделение системы на компоненты -- это деление по функциональности: тот сервис реализует полнотекстовый поиск, а этот -- частотный анализ текста...
По-сравнению с компонентами, интеллектуальные агенты, на мой взгляд, являются более "крупными" единицами системы -- они больше могут, им больше доступно. Интеллектуальность, независимое и целеориентированное поведение, более сложные способы взаимодействия с другими агентами. Также не стоит забывать, что в самой основе концепции агентных систем заложена распределенность (распределенное решение задач).
С точки зрения выразительных средств, теория агентов предлагает более "высокоуровневые" понятия для описания программной системы, такие как:
- роли агентов;
- социальные отношения;
- знания, планы, цели;
- интеллект, адаптация, обучение;
- протоколы общения, ведения переговоров и торговли.
Есть надежда, что разработка ПО станет чуть менее сложной, менее технической, более ориентированной на человека (будет иметь социальные, психологические, интеллектуальные качества).
Есть надежда, что в рамках более общего агентного подхода можно будет переиспользовать еще более крупные куски систем.
Есть надежда, что системы будут способны все больше и больше самостоятельно адаптироваться к изменениям среды, в которой работают и запросов пользователя.
Серебряная пуля.
Хотя нужно с прискорбием отметить, что в области инструментария (в большей степени) и методологий (в меньшей) наблюдается некоторый застой после принятия стандарта UML2 и принятия организации FIPA, занимающейся разработкой стандартов в области агентов, в состав IEEE.
3. Для конечного пользователя и отделов маркетинга технология станет все больше и больше похожа на магию ;)
Это не я такой умный, это Артур Кларк.
«Любая достаточно продвинутая технология неотличима от магии». Clarke, A. C. Profiles Of The Future: An Inquiry into the Limits of the Possible. : Phoenix, 2000.
Появятся системы, все более и более ориентированные на человека, способные:
- накапливать и анализировать огромные объемы данных (в том числе и по поведению людей);
- предугадывать потребности;
- давать советы на основе воспринимаемой информации, не дожидаясь явного обращения за помощью;
- навязывать свое или чужое мнение;
- самостоятельно адаптироваться под конкретного пользователя;
- обучать на основе проактивного подхода (не просто пассивная передача информации и последующее тестирование, а адаптивное обучение);
- даже совсем тупые как пробка товарищи смогут пользоваться любой техникой.
Но все это только первый шаг… шаг на пути к Сингулярности...
вторник, 16 октября 2007 г.
Лекция 5. Стандарты FIPA. Агентная платформа JADE
Часть 1. Стандарты FIPA (презентация FIPA в PDF на английском).
Часть 2. Агентная платформа JADE (презентация PowerPoint на русском).
Затеянный на прошлой лекции обзор основных направлений ИИ все еще не готов ;)
вторник, 2 октября 2007 г.
Лекция 3. Агенты и их виды
Комментарии по форме и содержанию все также приветствуются.
Краткое содержание лекции:
1 Агент и его свойства
2 Агентные среды и их свойства
3 Теория одинокого агента
4 Виды агентов (архитектуры агентов)
вторник, 25 сентября 2007 г.
Лекции 1 и 2 по курсу "Мультиагентные интеллектуальные системы"
Комментарии по форме и содержанию приветствуются.
Краткое содержание лекции №1 "О курсе. Бизнес. Наука и техника":
1 О курсе
2 Бизнес
2.1 Тенденции массового рынка
2.2 Проблемные области
3 Наука и техника
3.1 Агенты и МАС, что это такое и зачем ОНО нужно?
3.2 Что является и что НЕ является агентом?
3.3 Ключевые проблемы и области научно-технического поиска
Краткое содержание лекции №2 "Сообщество":
1 Книги
1.1 Теоретические основы агентнов
1.2 Практика создания агентных систем
2 Журналы
3 Стандарты
4 Конференции, лаборатории, компании
5 Ресурсы в Internet


