Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Собственно текст документа.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
8.39 Mб
Скачать

9.2.2. Инструментарий AgentBuilder

Инструментарий для построения MAC компании Reticular Systems, Inc. состоит из двух компонентов: средств разработки (development tools) и окружения перио­да исполнения (run-time execution environment). Первый компонент ориентиро­ван на поддержку процессов анализа предметной области создаваемой MAC и проектирование агентов с заданным поведением. Второй - обеспечивает эффек­тивную среду для выполнения агентно-ориентированных программ. И тот и дру­гой компоненты реализованы на языке Java, что позволяет им работать на всех платформах, где установлена Java-среда. Агентные программы, проектируемые в рамках AgentBuilder, тоже являются Java-программами и могут исполняться на любом компьютере, где установлена виртуальная Java-машина JVM (Java-virtual machine).

Общая схема процесса проектирования и реализации агентно-ориентированных приложений на основе AgentBuilder Toolkit представлена на рис. 9.1. Этот инструментарий имеет средства для организации и предметной области со­здаваемой MAC, средства спецификации архитектуры агентства и поведения аген­тов, а также средства отладки агентных приложений и наблюдения за поведением созданных агентов.

Модель «жизненного цикла» агентов, разрабатываемых в рамках AgentBuilder, представлена на рис. 9.2. Как следует из данной схемы, стандартный «жизненный цикл» агента включает следующие основные шаги:

• обработка новых сообщений;

• определение, какие правила поведения применимы в текущей ситуации;

• выполнение действий, специфицированных этими правилами;

• обновление ментальной модели в соответствии с заданными правилами;

• планирование.

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

Рис. 9.1. Технологическая схема процесса разработки агентно-ориентированных приложений на базе AgentBuilder ToolKit

Данная модель получила название Reticular Agent Mental Model (RAMM) и яв­ляется развитием модели Шохама (Shoham) [Shoham, 1993], где все действия вы­полняются только как результат определенных обязательств. В рамках RAMM эта идея расширена до уровня общих правил поведения, которые определяют причину действия агента в каждой точке его функционирования. При этом пра­вила поведения фиксируют множество возможных «откликов» агента на те­кущее состояние среды так, как это предписывается полаганиями.

Для спецификации поведения агентов в системе AgentBuilder используется спе­циальный объектно-ориентированный язык RADL (Reticular Agent Definition Language). Правила поведения в этом языке могут рассматриваться как конструк­ции вида WHEN-IF-THEN.

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

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

Рис. 9.2. Модель «жизненного цикла» агента в системе AgentBuilder

THEN-часть определяет действия в ответ на текущие события и состояния мен­тальной модели и внешнего окружения. Они могут включать обновление мен­тальной модели, коммуникативные и внутренние действия.

Общий формат правил поведения следующий:

NAME имя правила

WHEN Message Condition(s)

IF Mental Condition(s)

THEN Private Action(s); Mental Change(s); Message Action(s)

Для иллюстрации возможностей этого языка рассмотрим пример правила «Движение-Вперед-На-Зеленый-Свет» из предметной области «Управление автомо­билем», взятый из руководства пользователя [AgentBuilder, 1999].

NAME "Green light Move Forward Rule"

WHEN

? KQMLMessage.Performative EQUALS TELL

? KQMLMessage.Sender EQUALS "stoplight-agent"

? KQMLMessage.Content EQUALS String

? KQMLMessage.Ontology EQUALS "Stoplight"

IF

? KQMLMessage.Content EQUALS "stoplight-green"

? KQMLMessage.Status EQUALS "stoppedAtRedLight"

currentMotion.Content EQUALS "stoplight-green"

current Location EQUALS nextlntersection

NOT (currentLocation EQUALS destination)

F0R_ALL (?Blocked Intersection,

NOT(?BlockedIntersection.Location EQUALS currentLocation))

THEN

DO (Go(traffic Speed))

DO ($nextlntersection =

getNextlntersection (currentLocation,

currentMotion.Direction))

ASSERT (SET_VALUE_OF currentMotion.Status TO moving)

ASSERT (SET_VALUE_OF nextlntersection TO $nextlntersection)

SEND (performative = REPLY, receiver = "stoplight-agent",

content = "acknowledged",

in-reply-to = ?KQMLMessage.Reply-with)

Как следует из данного примера, в языке RADL активно используются образцы, имеются достаточно развитые средства работы с переменными и представитель­ный набор действий, включающий формирование перформативов языка KQML [Labrou et al., 1997]. Структуры данных, на которых «работает» данный язык, яв­ляются, по существу, фреймами, а сами правила - суть продукции специального вида. Язык поддержан на инструментальном уровне системой специальных языково-ориентированных редакторов.

Спецификация поведения агентов и их ментальных моделей составляет специ­альный файл (agent definition file), который используется совместно с классами и методами из библиотеки действий агентов и библиотеки интерфейсов. Этот файл интерпретируется в рамках компонента Reticulars Run-Time Agent Engine, являющегося частью окружения периода исполнения AgentBuilder.

Оценивая подход к спецификации моделей поведения агентов, используемый в AgentBuilder, можно констатировать, что в целом это серьезная система представ­ления и манипулирования знаниями, ориентированная на описание моделей типа RAMM. Вместе с тем в данной модели отсутствуют средства эксплицитного управления выводом, которые могли бы существенно увеличить функциональ­ную мощность языка. Нет в модели и средств явной фиксации состояния агента, отличных от флагов и/или значений переменных. Не вполне ясно и то, как в спе­цификации моделей поведения могут быть учтены разные, но одновременно сосу­ществующие «линии поведения», что характерно для действительно интеллекту­альных агентов. Не вполне обоснованным представляется и использование режи­ма интерпретации для реализации поведения агентов.

Но в целом можно еще раз отметить, что инструментарий AgentBuilder является современным и мощным средством проектирования и реализации MAC.