Рыбина Технология построения динамических 2011
.pdfт.е. агенту [1]-[5]. Поэтому агентно-ориентированное программирование (АОП) является естественным развитием и специальным случаем ООП. В данном случае агент выступает как мета–объект , т.е. объект, расположенный на мета-уровне по отношению к объекту и управляющий им, изменяя его поведение. Иными словами интеллект агента выступает как подсистема управления деятельностью агента (агентов).
Как следует из [4], [24]-[26], к настоящему времени предложено такое значительное число определений агентов, что М. Вулдриджем и Н. Дженнингсом [34] была введена классификация самих определений агента на слабые, сильные, программистские и ан-
тропоморфные (представленные в табл. 4).
Достаточно полная и интересная подборка определений и высказываний об агентах содержится в [4], поэтому здесь ограничимся только краткой характеристики наиболее типовых определений агентов.
Вначале остановимся на более слабых определениях, а потом перейдем к более сильным. Очень часто под агентом понимается некоторая сущность, которая воспринимает среду посредством сенсоров и действует на нее посредством эффекторов [4], [25], т.е. вычленяются три исходных фактора, образующих агента: среда, восприятие, действие. Однако это достаточно тривиальное определение не позволяет охарактеризовать принципиальные различия между агентом и произвольной программой, в соответствии с чем необходимо дополнительно ввести некоторые ограничения на данные факторы, например, можно оговорить, что интеллектуальные агенты непрерывно выполняют три функции: восприятие динамики среды; действия, изменяющие среду; рассуждения в целях интерпретации наблюдаемых явлений, решения задач, вывода заключений определения действий (кроме того, подчеркивается подчиненность рассуждений действиям (агенты рассуждают для того, чтобы выбрать действия)).
Согласно определению П.Маес (P. Maes) [30], автономные агенты – это компьютерные системы, функционирующие в сложной, динамической среде, способные ощущать и автономно действовать на эту среду, и таким образом выполнять множество задач, для ко-
61
торых они предназначены. Здесь введены два ограничения на среду агентов – сложная и динамическая.
|
|
|
|
|
|
|
|
Таблица 4 |
|
|
|
|
|
|
|
|
|
||
Тип опреде- |
Автор |
|
|
|
Определение |
|
|
||
ления |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
||
|
P. Maes [30] (П. |
Автономные |
агенты – |
это компьютерные |
|||||
Слабые |
системы, |
функционирующие |
в сложной, |
||||||
|
Маэс) |
динамической среде |
|
|
|
||||
|
|
|
|
|
|||||
|
|
Агенты – |
это программы, |
имеющие вза- |
|||||
|
M. Cohen [31] |
имные |
обязательства, |
определенные в |
|||||
Сильные |
процессе диалога, и которые ведут перего- |
||||||||
(М. Коэн) |
|||||||||
|
воры и координируют передачу информа- |
||||||||
|
|
||||||||
|
|
ции |
|
|
|
|
|
|
|
|
|
Коммуникативный агент – |
это агент, ко- |
||||||
|
В.И. Городец- |
торый |
понимается как вычислительная |
||||||
|
кий [32] |
единица, |
поддерживающая |
локальные |
|||||
|
|
состояния и параллельные вычисления |
|||||||
Програм- |
|
Интеллектуальный агент понимается как |
|||||||
|
программная |
единица, |
выполняющая |
||||||
мистские |
|
||||||||
|
множество операций |
пользователя или |
|||||||
|
|
||||||||
|
Фирма IBM |
другой программной системы, обладая |
|||||||
|
|
определенной степенью автономности или |
|||||||
|
|
независимости и используя при этом зна- |
|||||||
|
|
ния о целях или желаниях пользователя |
|||||||
|
|
Агент есть целостная единица описания |
|||||||
Антропо- |
Y. Shoham [33] |
состояния, которое включает такие психи- |
|||||||
морфные |
(И. Шоэн) |
ческие компоненты как: убеждения, спо- |
|||||||
|
|
собности и решения |
|
|
|
Д.А. Поспелов [35] предлагает для классификации агентов три других основания, а именно: свойства среды, уровень свободы воли и уровень развития социальных отношений. По первому критерию все среды можно разбить на три больших класса – замкнутые, открытые и трансформируемые. Замкнутые среды допускают исчерпывающее описание, открытые среды предполагают отказ от постулата полноты знаний у агента и введение локальных описаний среды, и, наконец, трансформируемые среды могут менять свои характеристики в зависимости от действий агентов.
Наиболее популярное определение дается М. Вулдриджем и Н.Дженнингсом в [34], где предполагается, что агент – это про-
62
граммно или аппаратно реализованная система, обладающая следующими свойствами:
•автономность – способность самостоятельно функционировать без вмешательства людей или других компьютерных средств и при этом осуществлять самоконтроль над своими действиями и внутренними состояниями;
•общественное поведение – способность взаимодействовать с другими агентами (возможно людьми);
•реактивность – способность воспринимать состояние среды;
•про-активность – способность агентов не просто реагировать на стимулы, поступающие из среды, но и осуществлять целенаправленное поведение, проявляя инициативу.
В целом в настоящее время существует несколько подходов к определению основных понятий в МАС. Наиболее последовательной в этом вопросе является международная ассоциация FIPA (Foundation for Intelligent Physical Agents), предложившая толковый словарь терминов в МАС. Тем не менее существует множество работ, где любой автор решает эти вопросы по-своему, поэтому понятие агент целесообразно толковать как мета-имя или класс, включающий множество подклассов [25], в соответствии с чем в данной работе будем придерживаться следующей концепции [34].
Определение (Wooldridge & Jennings). Агент – это аппаратная или программная сущность, способная действовать в интересах достижения целей, поставленных перед ним владельцем и/или пользователем.
Следовательно, основная идея программного агента – делегирование полномочий, т.е.:
∙агент должен уметь взаимодействовать со своим владельцем или пользователем для получения заданий и возвращения результатов;
∙ориентироваться в среде своего выполнения и принимать решения, необходимые для выполнения задач и т.д.
В настоящее время существует два основных подхода к построению агентно-ориентированных систем:
∙реализация единственного автономного агента (здесь агент взаимодействует только с пользователем);
63
∙ разработка МАС, иногда также называемых агентствами (здесь взаимодействуют различные агенты для решения задач, которые трудны и сложны для одиночного агента).
Аналогично разнообразию определений «агентов» существует и значительное число классификаций агентов. В табл. 5 в соответствии с работой [25] приводится пример достаточно распространенной классификации агентов, из которой следует, что собственно целесообразное поведение появляется только на уровне интеллектуальных агентов.
|
|
|
|
Таблица 5 |
|
|
|
|
|
|
|
|
|
|
|
Действи- |
|
Типы агентов |
|
|
Интел- |
стви- |
|
|
Про- |
Смыш- |
лекту- |
тельно |
|
|
леные |
альные |
интел- |
|
|
|
стые |
|
|||
|
(smart) |
(intelli- |
лекту- |
|
|
|
|
|
|||
Характеристики |
|
|
gent) |
альные |
|
|
|
|
|
(truly) |
|
Автономное выполнение |
+ |
|
+ |
+ |
|
Взаимодействие с другими |
|
|
|
|
|
агентами и/или пользовате- |
+ |
+ |
+ |
+ |
|
лями |
|
|
|
|
|
Слежение за окружением |
+ |
+ |
+ |
+ |
|
Способность использования |
|
+ |
+ |
+ |
|
абстракций |
|
|
|||
|
|
|
|
|
|
Способность использования |
|
+ |
+ |
|
|
предметных знаний |
|
|
|
||
|
|
|
|
|
|
Возможность адекватного |
|
|
|
|
|
поведения для достижения |
|
|
+ |
+ |
|
целей |
|
|
|
|
|
Обучение из окружения |
|
|
+ |
+ |
|
Толерантность к ошибкам |
|
|
|
|
|
и/или неверным входным |
|
|
+ |
|
|
сигналам |
|
|
|
|
|
Real-time исполнение |
|
|
+ |
|
|
ЕЯ-взаимодействие |
|
|
+ |
|
|
Учитывая, что в контексте данной работы в первую очередь интересны именно интеллектуальные агенты (ИА), приведем типовой список свойств, которыми должен обладать ИА (т.е. определение
64
ИА через свойства). ИА – это агент, обладающий следующими свойствами [25]:
∙автономность (autonomy) – способность функционировать без вмешательства своего владельца и осуществлять контроль внутреннего состояния и своих действий;
∙социальное поведение (social ability) – возможность взаимодействия и коммуникации с другими агентами;
∙реактивность (reactivity) – адекватное восприятие среды и соответствующие реакции на её изменение;
∙активность (pro-activity) – способность генерировать цели и действовать рациональным образом для их достижения;
∙ базовые знания (basic knowledge) – знания агента о себе, окружающей среде (включая других агентов), которые не изменяются в рамках жизненного цикла агента;
∙убеждения (beliefs) – переменная часть базовых знаний, которые могут изменяться во времени (хотя агент может об этом не знать и продолжать их использовать для своих целей);
∙цели (goals) – совокупность состояний, на достижение которых направлено текущее поведение агента;
∙желания (desires) – состояния и/или ситуации, достижение которых для агенты важно;
∙обязательства (commitments) – задачи, которые берет на себя агент по просьбе и/или поручению других агентов;
∙намерения (intentions) – то, что агент должен делать в силу своих обязательств и/или желаний.
Дополнительно в ряде работ также рассматриваются: рациональность (rationality), правдивость (veracity), благожелательность
(benevolence), мобильность (mobility).
1.5.4. Особенности архитектур интеллектуальных агентов
Важное место при построении МАС занимает проблема синтеза адекватной архитектуры для соответствующего класса агентов.
В зависимости от концепции, выбранной для организации МАС, выделяют три базовых класса архитектур программных агентов [4],
[25], [34].
65
1. Архитектуры, которые базируются на принципах и методах работы со знаниями (deliberative agent architectures) – так называе-
мые делиберативные архитектуры.
2. Архитектуры, основанные на поведенческих моделях типа
«стимул-реакция» (reactive agent architectures) – так называемые
реактивные архитектуры.
3. Гибридные архитектуры (hybrid architectures).
Комментарий. Архитектуры первого типа базируются на «разумных» агентах, которых в соответствии с [4] называют когнитивными агентами. Однако лучше использовать термин «агент, базирующийся на знаниях», или «интеллектуальный агент» и говорить «архитектура интеллектуальных агентов».
Рассмотрим особенности базовых архитектур программных агентов.
Делиберативные архитектуры. Архитектуры данного типа ба-
зируются на классических принципах и методах ИИ и первоначально связывались с логической парадигмой ИИ, однако такие ментальные свойства ИА, как убеждения, желания, намерения, обязательства и т.д. невыразимы в терминах исчисления предикатов 1-го порядка. Поэтому для представления знаний ИА в рамках данной архитектуры были использованы либо специальные расширения соответствующих логических исчислений, например, работы Д.А. Поспелова [36], либо разработаны новые архитектуры, в частности архитектуры типа BDI (Belief-Desire-Intention), описание которых можно найти в [4], [24].
Реактивные архитектуры. Реактивные архитектуры возникли как альтернативный подход к структуре ИА. Идея реактивных агентов, предложенная в работах Р. Брукса, основывалась на том, что интеллектуальное поведение может быть реализовано без символьного представления знаний, принятого в классических интеллектуальных системах.
Определение. Реактивными называются агенты и архитектуры, где нет эксплицитно представленной модели мира, а функционирование отдельных агентов и всей системы осуществляется по правилам типа «ситуация-действие», при этом под «ситуацией» понимается потенциально сложная комбинация внутренних и внешних состояний.
66
Идеи реактивных агентом реализовывались в той или иной степени в ранних работах по ИИ, в частности, при планировании поведения роботов (система STRIPS и др.).
В таблице 6 приведены характеристики современных архитектур МАС [25].
Есть достоинства и недостатки у всех архитектур, однако современные тенденции связаны в основном с реализацией гибридных архитектур интеллектуальных агентов и МАС.
|
|
|
Таблица 6 |
|
|
|
|
|
|
Архитектура |
Представление |
Модель мира |
Решатель |
|
знаний |
||||
|
|
|
||
Интеллектуальная |
Символьное |
Исчисление |
Логический |
|
Реактивная |
Автоматное |
Граф |
Автомат |
|
Гибридная |
Смешанное |
Гибридная |
Машина вывода |
1.5.5. Пример архитектуры интеллектуального агента
Рассмотрим пример делиберативной архитектуры ИА. Здесь наиболее простой путь заключается в развитии архитектуры динамической ИЭС (раздел 1.2.2). На рис. 10 представлен пример архитектуры ИА на основе продукционной ИЭС (заштрихованы новые компоненты). Выделим основные отличия. Поскольку речь идет о системе «агент → среда», то в архитектуру ИА введены специальные устройства, воспринимающие воздействия среды (рецепторы) и исполнительные средства, воздействующие на среду (эффекторы). Таким образом, с помощью рецепторов осуществляется ввод информации в базу фактов (РП), а с помощью эффекторов – вывод информации.
Кроме этого в архитектуру динамической ИЭС введена еще подсистема формирования целей и оценок ситуации, а также существенно расширена функциональность традиционной подсистемы общения, предназначенной для поддержки полидиалогов между ИА [27], [28]. Развитием этой архитектуры является архитектура ИА с иерархической БЗ [4].
Таким образом, простейший ИА может проектироваться на базе динамической ИЭС (с продукционной моделью представления знаний о ПрО), дополненной вышеперечисленными компонентами. С
67
методической точки зрения начинающим разработчикам рекомен- |
||
дуется именно такой подход к построению ИА и МАС. |
||
Примеры более сложных архитектур ИА и МАС детально рас- |
||
смотрены в [4]. |
|
|
|
Подсистема |
|
|
коммуникации с |
|
|
другими агентами |
|
База знаний |
Решатель |
|
|
Подсистема |
|
формирования целей |
|
|
и оценок ситуации |
|
|
|
Подсистема |
|
Рецепторы |
моделирован |
Эффекторы |
агента |
ия внешнего |
агента |
|
мира |
|
Рис. 10. Простейшая архитектура интеллектуального агента на основе |
||
продукционной СОЗ(ЭС) |
|
Вопросы, связанные с инструментарием, т.е. ИС для построения ИА и МАС будут рассматриваться в разделе 2, а с примерами реализации прототипов некоторых МАС можно познакомиться в разделе 3.
68
1.6.Онтологии в многоагентных системах
1.6.1.Основные понятия и определения
Завершая рассмотрения теоретико-методологических основ построения выделенных классов ДИС, необходимо также уделить особое внимание собственно понятию онтологии, а также роли онтологии в теории и практике современных ДИС и как перспективного подхода для представления знаний в среде Интернет.
Онтология (от греческого слова онтос – сущее, логос – учение, понятие) – это философский термин, определяющий учение о бытии, о сущем (в отличии от гносеологии – учения о познании). Автором является Х. Вольф (1679-1754), и термин долгое время использовался в философии как часть метафизики, изучающей абстрактные философские категории (бытие, субстанция, причина, действие, явление).
Такое определение мало пригодно для использования в современном онтологическом инжиниринге и МАС, поэтому приведем далее определение FIPA [9], предложенное в ранних разработках системы стандартов на МАС.
Определение. В философском смысле можно ссылаться на онтологию как на определенную систему категорий, являющихся следствием определенного взгляда на мир.
С точки зрения ИИ, онтология – это знания, формально представленные на базе концептуализации, а концептуализация предполагает описание множества понятий и объектов, знаний о них и связей между ними. Поэтому еще более конкретным и понятным является определение Т. Грубера (T. Gruber) [37].
Определение. (T. Gruber) Онтологией называется эксплицитная спецификация концептуализации. Формально онтология состоит из терминов, организованных в таксономию, их определений и атри-
бутов, а также связанных с ними аксиом и правил вывода.
Проанализируем определение Т. Грубера. Во-первых, в простейших случаях набор предложений, составляющих онтологию, имеет форму логической теории 1-го порядка, где термины словаря являются именами унарных и бинарных предикатов, называемых концептами и отношениями. Онтология описывает только иерар-
69
хию концептов, связанных отношениями категоризации. Вовторых, в более сложных случаях в неё добавляются подходящие аксиомы для выражения других отношений между концептами и с тем, чтобы ограничить их предполагаемую интерпретацию.
Таким образом, по сути онтология представляет БЗ, описывающую факты, которые предполагаются всегда истинными в рамках определенного сообщества на основе общепринятого смысла используемого словаря [25].
Определение. Онтология – это эксплицитная спецификация определенной темы (Стэндфордский университет, проект Ontolin-
gua).
Комментируя данное определение, следует отметить, что подобный подход предполагает формальное и декларативное представление некоторой темы, что включает словарь (или список констант) для отсылки к терминам предметной области, ограничения целостности на термины (т.е. логические утверждения, которые ограничивают интерпретации терминов) и то, как они соотносятся друг с другом.
Таким образом, в настоящее время выделяются следующие аспекты интерпретации термина «онтология» [25]:
∙как философская дисциплина (Онтология с большой буквы);
∙как неформальная концептуальная система (т.е. базис определенной БЗ);
∙как формальный взгляд на семантику (толкует онтологию как семантический объект);
∙как спецификация «концептуализации»;
∙как представление концептуальной системы через логическую теорию;
∙как словарь, используемый логической теорией;
∙как метауровневая спецификация логической теории. Соответственно, онтологический инжиниринг – это ветвь инже-
нерии знаний, использующая Онтологию – с большой буквы для построения онтологии – с маленькой буквы. Завершая анализ определений онтологии, приведем еще одно определение онтологии, введенное Т.А. Гавриловой и В.Ф. Хорошевским [25]:
70