9.2.3. Система Bee-gent
Инструментарий AgentBuilder, обсуждавшийся выше, базируется на концепции среды разработки, принятой в технологии программирования. Отличный от этого подход применяется в системе Bee-gent [Bee-gent, 1999]. Здесь для проектирования и реализации MAC используется специальная МАС-библиотека, реализованная на языке Java, а собственно технология, на наш взгляд, представлена методологией спецификации поведения агентов распределенной системы. При этом в систтеме Bee-gent используется множество базовых агентов (generic agents), среди которых можно выделить упаковщики (agent wrappers) и медиаторы (mediation agents).
Поведение всей системы, направленное на достижение определенных целей, базируется на спецификации «бесед» (message exchanges) через протоколы взаимодействия (interaction protocols).
Такие протоколы представляются специальными графами (рис. 9.3), основными понятиями которых являются состояния (states) и переходы (transitions). При этом переходы, по сути дела, лишь специфицируют смещение «фокуса» в следующее состояние с помощью специальных правил перехода, а ядро формализма составляют состояния. Именно здесь проверяются предусловия перемещения в следующее состояние и в случае их удовлетворения выполняются действия, в основе которых обмен XML/ACL сообщениями. Возможны правила, результатом выполнения которых является выбор следующего состояния из множества подходящих.
Как и обычно в таких случаях, в качестве базиса сообщений декларируется использование теории речевых актов [Austin, 1965; Searle, 1985]. Однако в случае Bee-gent для этого используется специальный язык ACL, разработанный на основе KQML [Labrou et al, 1997]. Интересно здесь то, что логическая структура ACL-выражений представляется в формализме XML [XML, 1998]. Поэтому язык описания поведения агентов в Bee-gent называется XML/ACL. Основное отличие его от, например, языка RADL в том, что в XML/ACL введены перформативы представления намерений (intentions), а также средства спецификации потоков развертывания беседы (conversation flows). Вместе с тем в языке спецификации поведения агентов системы Bee-gent нет правил, определяющих, в каких случаях какие перформативы должны использоваться. И, следовательно, нет типовых сценариев диалогов. Пример перформатива в формализме XML/ACL приведен ниже:
<!DOCTYPE request SYSTEM "request.dtd">
<request>
<sender>Mediation Agent</sender>
<receiver>Agent Wrapper</receiver>
<content>
<action>actK/action>
<actor>Agent Wrapper</actor>
<args>null</args>
</content> ;
<protocol>Request-inform</protocol>
<reply-with>MSG-IO:K/reply-with>
<ontology>default</ontology>
</request>
Рис. 9.З. Общая структура протоколов взаимодействия
в системе Bee-gent
Как следует из данного примера, для спецификации перформативов используется система специальных тегов, что хорошо коррелирует с предложениями FIPA по созданию языка SKDL (Structured Knowledge Description Language) [SKDL, 1998]. Вместе с тем реализация поведения агентов лежит на специальной системе Java-классов и практически никак не связана с внешним представлением перформативов в языке XML/ACL.
Для иллюстрации подхода Bee-gent к описанию поведения агентов рассмотрим модельную задачу брокера [Bee-gent, 1999], обслуживающего потенциального покупателя, который находит продавца определенного товара, обсуждает с ним цены и информирует покупателя о возможных вариантах покупки.
Контрактная сеть верхнего уровня для данной задачи представлена на рис. 9.4.
Рис. 9.4. Контрактная сеть верхнего уровня для задачи брокера
С точки зрения системы представления знаний AgentBuilder, она наиболее близка к спецификации агентства (Agency). Однако в данном случае, по нашему мнению, в контрактной сети Bee-gent более детально специфицируются не только типы взаимодействий между агентами в агентстве, но и их реализация.
Собственно спецификацию поведения агентов в системе Bee-gent можно проиллюстрировать на примере протокола взаимодействия для продавца, показанного на рис. 9.5
Такая спецификация достаточно прозрачна и в дополнительных комментариях не нуждается. Поэтому, на наш взгляд, интереснее рассмотреть, как реализуется поведение агента в формализме системы Bee-gent.
Рис. 9.5. Граф протокола взаимодействия для поведения продавца
Собственно инициация агента здесь осуществляется стандарным для Java-приложений образом:
import com.toshiba.beegent.*;
import com.toshiba.beegent. xml. *;
import com.toshiba.beegent.util. *;
public class AW2 extends AgentWrapper {
public static void main (StringC] argv) throws Exception {
AW2 aw = new AW2();
aw.setName ("bidder");
aw.printLog (true);
aw.setPassword ("kawamura");
aw.addPublicIPStates ,();
aw.startIP ();
}
}
Каждое состояние в протоколе взаимодействия является экземпляром класса AwrlPState, фрагмент описания которого приведен ниже.
class AwrlPStatel extends AwrlPState {
AwrlPStateSI () { super ("INIT"); }
public void action () {
XmlAcl xa = null;
…………………………………
while ( waitXML (0) ){
xa = getXML ();
perf = xa.getTag2Value ("performative");
sender = xa. getTag2Value ("sender")';
action = xa.getTag2Value ("action");
if (perf.equals ("cfp")) break;
}
// Send XML/ACL
int rand = new Random (System.currentTimeMillis()). nextlnt ();
int dice = Math.abs (rand) % 3;
switch (dice) {
case 0: // generate Refuse performative
setPostcond ("INIT");
break;
………………………………………………
default:
setPostcond ("INIT");
return;
}
if ( IsendXML (xa) )
Debug.printLog (getMyname (), "Failed to send XML/ACL");
}
}
Наиболее интересны и важны здесь «петля» ожидания сообщений и оператор switch, в теле которого собственно и специфицируется поведение как последовательность действий, направленных в данном случае на формирование соответствующего перформатива.
Анализ этого фрагмента и других примеров реализации поведения агентов в системе Bee-gent позволяет сделать следующие выводы. Агентная библиотека фирмы Toshiba является достаточно развитой и отвечает основным требованиям к компонентам программного обеспечения данного класса. Перформативы XML/ ACL более высокого, по сравнению с KQML, уровня. Для спецификации протоколов взаимодействия предлагается использовать язык программирования, а не представления знаний. На уровне технологии имеется достаточно четкая структура представления поведения агентов. Учитывая то, что языком реализации поведения в данном случае является Java, система Bee-gent ориентирована на компиляцию программ, а не интерпретацию спецификаций, как это происходит в случае системы AgentBuilder.
Выше мы обсудили два подхода к разработке и реализации MAC, которые отражают разные концы спектра инструментов, используемых в этой области.
Суммируя все вышесказанное, можно отметить, что в настоящее время в работах по созданию инструментария явно фиксируется тенденция использования методов и средств ИИ, ориентированных на поддержку процессов проектирования программных агентов и MAC в целом.
При этом задача построения технологий нового поколения для создания MAC может быть решена на основе совместного использования опыта разработчиков MAC и методологий обработки знаний, заимствованных из ИИ [Guarino et al., 1995b]. Для этого прежде всего необходимо адаптировать методы и средства проектирования и реализации прикладных интеллектуальных систем в новую проблемную область: разработку мультиагентных систем нового поколения. Очевидно, что спецификация процесса разработки MAC на основе методов проектирования баз знаний в такой технологии предполагает:
• эксплицитное представление в БЗ архитектуры проектируемой MAC;
• явную спецификацию архитектуры отдельных типов агентов, «задействованных» в рамках проектируемой MAC;
• описание в виде специальных баз знаний модели (схемы) всех знаний, необходимых каждому агенту для реализации поставленных перед ним целей;
• анализ используемых в настоящее время при реализации MAC систем классов и соответствующих программных библиотек с целью явной спецификации соответствия между элементами архитектуры проектируемой MAC и ее компонентами и программными единицами, реализующими их;
• формальную спецификацию (на уровне соответствующей системы представления и манипулирования знаниями) специальной машины вывода (решателя), целью которой является переход от спецификации MAC к ее реализации.
Учитывая вышесказанное, можно констатировать, что1 процесс разработки MAC при этом хорошо коррелирует с соответствующим процессом создания сложных программных систем, но отличается дополнительными фазами, связанными с наличием независимых компонентов (агентов), взаимодействующих с пользователем и друг с другом.
По существу, при таком подходе мы получаем специализированную экспертную систему, предметной областью которой является автоматизация проектирования и реализации определенного класса мультиагентных систем. Создание такой методологии* разработки MAC обсуждается, например, в работе [Iglesias et. all, 1996], где приводится, в частности, спецификация процесса разработки MAC на базе CommonKADS.
- Т. А. Гаврилова в. Ф. Хорошевский
- Санкт-Петербург
- Предисловие
- Об авторах
- 1.1.2. Зарождение нейрокибернетики
- 1.1.3. От кибернетики «черного ящика» к ии
- 1.1.4. История искусственного интеллекта в России
- 1.2. Основные направления исследований в области искусственного интеллекта
- 1.2.1. Представление знаний и разработка систем, основанных на знаниях (knowledge-based
- 1.2.2. Программное обеспечение систем
- 1.2.3. Разработка естественно-языковых интерфейсов и машинный перевод (natural
- 1.2.4. Интеллектуальные роботы (robotics)
- 1.2.5. Обучение и самообучение (machine
- 1.2.6. Распознавание образов (pattern
- 1.2.7. Новые архитектуры компьютеров (new
- 1.2.8. Игры и машинное творчество
- 1.2.9. Другие направления
- 1.3. Представление знаний и вывод на знаниях
- 1.3.1. Данные и знания
- 1.3.2. Модели представления знаний
- Структура фрейма
- 1.3.3. Вывод на знаниях
- 1.4. Нечеткие знания
- 1.4.1. Основы теории нечетких множеств
- 1.4.2. Операции с нечеткими знаниями
- 1.5. Прикладные интеллектуальные системы
- 2.2. Классификация систем, основанных на знаниях
- 2.2.1. Классификация по решаемой задаче
- 2.2.2. Классификация по связи с реальным временем
- 2.2.3. Классификация по типу эвм
- 2.2.4. Классификация по степени интеграции с другими программами
- 2.3. Коллектив разработчиков
- 2.4. Технология проектирования и разработки
- 2.4.1. Проблемы разработки промышленных эс
- 2.4.2. Выбор подходящей проблемы
- 2.4.3. Технология быстрого прототипирования
- 2.4.4. Развитие прототипа до промышленной эс
- 2.4.5. Оценка системы
- 2.4.6. Стыковка системы
- 2.4.7. Поддержка системы
- Теоретические аспекты инженерии знаний
- 3.1. Поле знаний
- 3.1.1. О языке описания поля знаний
- 3.1.2. Семиотическая модель поля знаний
- 3.1.3. «Пирамида» знаний
- 3.2. Стратегии получения знаний
- 3.3. Теоретические аспекты извлечения знаний
- 3.3.1. Психологический аспект
- 3.3.2. Лингвистический аспект
- 3.3.3. Гносеологический аспект извлечения знаний
- 3.4. Теоретические аспекты структурирования знаний
- 3.4.1. Историческая справка
- 3.4.2. Иерархический подход
- 3.4.3. Традиционные методологии структурирования
- 3.4.4. Объектно-структурный подход (осп)
- Технологии инженерии знаний
- 4.1. Классификация методов практического извлечения знаний
- 4.2. Коммуникативные методы
- 4.2.1. Пассивные методы
- Сравнительные характеристики пассивных методов извлечения знаний
- 4.2.2. Активные индивидуальные методы
- Сравнительные характеристики активных индивидуальных методов извлечения
- 4.2.3. Активные групповые методы
- 4.3. Текстологические методы
- 4.4. Простейшие методы структурирования
- 4.4.1. Алгоритм для «чайников»
- 4.4.2. Специальные методы структурирования
- 4.5. Состояние и перспективы автоматизированного приобретения знаний
- 4.5.1. Эволюция систем приобретения знаний
- 4.5.2. Современное состояние автоматизированных систем приобретения знаний
- 4.6.2. Имитация консультаций
- 4.6.3. Интегрированные среды приобретения знаний
- 4.6.4. Приобретение знаний из текстов
- 4.6.5. Инструментарий прямого приобретения
- Формы сообщений
- 5.1.1. Семантические пространства и психологическое шкалирование
- 5.1.2. Методы многомерного шкалирования
- 5.1.3. Использование метафор для выявления «скрытых» структур знаний
- 5.2. Метод репертуарных решеток
- 5.2.1. Основные понятия
- 5.2.2. Методы выявления конструктов
- 5.2.3. Анализ репертуарных решеток
- 5.2.4. Автоматизированные методы
- 5.3. Управление знаниями
- 5.3.1. Что такое «управление знаниями»
- 5.3.2. Управление знаниям и корпоративная память
- 5.3.3. Системы omis
- 5.3.4. Особенности разработки omis
- 5.4. Визуальное проектирование баз знаний как инструмент познания
- 5.4.1. От понятийных карт к семантическим сетям
- 5.4.2. База знаний как познавательный инструмент
- 5.5. Проектирование гипермедиа бд и адаптивных обучающих систем
- 5.5.1. Гипертекстовые системы
- 5.5.2. От мультимедиа к гипермедиа
- 5.5.3. На пути к адаптивным обучающим системам
- 6.1.3. Инструментальные средства поддержки разработки систем по
- 6.2. Методологии создания и модели жизненного цикла интеллектуальных систем
- 6.3. Языки программирования для ии и языки представления знаний
- 6.4. Инструментальные пакеты для ии
- 6.5. WorkBench-системы
- Пример разработки системы, основанной на знаниях
- 7.1. Продукционно-фреймовый япз pilot/2
- 7.1.1. Структура пилот-программ и управление выводом
- 7.1.2. Декларативное представление данных и знаний
- 7.1.3. Процедурные средства языка
- 7.2. Психодиагностика — пример предметной области для построения экспертных систем
- 7.2.1. Особенности предметной области
- 7.2.2. Батарея психодиагностических эс «Ориентир»
- 7.3. Разработка и реализация психодиагностической эс «Cattell»
- 7.3.1. Архитектура системы и ее база знаний
- 7.3.2. Общение с пользователем и опрос испытуемых
- 7.3.3. Вывод портретов и генерация их текстовых представлений
- 7.3.4. Помощь и объяснения в эс «Cattell»
- 8.1.2. Html — язык гипертекстовой разметки Интернет-документов
- 8.1.3. Возможности представления знаний на базе языка html
- 8.2. Онтологии и онтологические системы
- 8.2.1. Основные определения
- 8.2.2. Модели онтологии и онтологической системы
- 8.2.3. Методологии создания и «жизненный цикл» онтологии
- Фрагмент описания аксиомы
- 8.2.4. Примеры онтологии
- 8.3. Системы и средства представления онтологических знаний
- 8.8.1. Основные подходы
- 8.3.2. Инициатива (ка)2 и инструментарий Ontobroker
- 8.3.3. Проект shoe — спецификация онтологии и инструментарий
- 8.3.4. Другие подходы и тенденции
- 9.1.2. Основные понятия
- 9.2.2. Инструментарий AgentBuilder
- 9.2.3. Система Bee-gent
- 9.3. Информационный поиск в среде Интернет
- 9.3.1. Машины поиска
- 9.3.2. Неспециализированные и специализированные поисковые агенты
- 9.3.3. Системы интеллектуальных поисковых агентов
- Заключение
- Литература
- Содержание
- Базы знаний интеллектуальных систем
- 196105, Санкт-Петербург, ул. Благодатная, 67.
- 197110, Санкт-Петербург, Чкаловский пр., 15.