Федер А. Л. ЭВОЛЮЦИЯ ИНТЕЛЛЕКТУАЛЬНЫХ АГЕНТОВ В МОДЕЛИРОВАНИИ ИНФОРМАЦИОННЫХ СИСТЕМ

advertisement
Федер А. Л.
г. Смоленск
Военная академия ВПВО ВС РФ
ЭВОЛЮЦИЯ ИНТЕЛЛЕКТУАЛЬНЫХ АГЕНТОВ В МОДЕЛИРОВАНИИ
ИНФОРМАЦИОННЫХ СИСТЕМ
В
области
информационных
систем
интеллектуальные
агенты
используются, прежде всего, для интеграции информационных систем,
пользователей, оборудования, для поддержки принятия решений, управления
знаниями.
Существенными в понятии агента являются понятия делегирования и
автономии. Это означает ограниченное непосредственное управление и
значительное разнообразие в системах, в которых работают сразу несколько
агентов.
Исследования в области мультиагентных систем (МАС) отличаются от
исследований в области распределенного искусственного интеллекта (ИИ).
В ИИ функционирование системы распределено по множеству вершин для
совместного решения проблемы. В МАС агенты имеют свои собственные цели,
которые могут вступать в противоречие с целями других агентов. Тем не менее,
группа логически децентрализованных агентов решает работать вместе для
достижения общей цели. Это возможно сделать различными путями. Один из
путей – разделить задачу на части между агентами. Другой – позволить
каждому из агентов решать исходную задачу своим способом. В случае
отыскания приближенных решений затем может быть выбрано наилучшее.
Либо может применяться процедура голосования агентов за то или иное
решение.
В традиционной клиент-серверной модели приложения выполняются на
клиентских машинах, которые отправляют время от времени запросы одному
или нескольким серверам объектов, таким, например, как серверы базы данных.
Сервер объектов посылает клиенту ответ на запрос. В ответе могут содержаться
объекты, полученные с другого сервера. Таким образом, основой для
коммуникации является передача и прием сообщений.
Парадигма мультиагентного проектирования и реализации систем
состоит в том, что программные агенты для достижения цели (выполнения
некоторой работы) перемещаются с одного сервера на другой. Агенты
выполняют свою работу локально на том сервере, на котором они в данный
момент находятся. Обмен сообщениями (между серверами) по сети агенты, как
правило, не используют. Т.Комийя, Т.Енокидо и М.Такидзава рассмотрели
следующую модель.
Пусть в системе имеются серверы Serv1, Serv2, …, Servm, соединенные
каналами связи, и агенты A1, A2, …, An, пользующиеся услугами этих серверов.
Агенты
автономно
выполняются
на
серверах.
Агент
самостоятельно
инициализируется на сервере: процедура и данные агента записываются в
память сервера объектов, если на этом сервере достаточно ресурсов для работы
агента. Говорят, что агент Ak размещается (land – «приземляется») на сервере
Servi и этот сервер становится для агента текущим.
Для размещения на сервере важны два условия:
1.
достаточность ресурсов сервера таких, как объем доступной памяти
и вычислительная мощность компьютера (с учетом того, что часть памяти и
вычислительных мощностей сервера в этот момент времени может быть занята
выполнением других задач);
2.
отсутствие на сервере в этот момент времени других агентов,
конфликтующих с агентом Ak. Конфликт может быть вызван различными
причинами, например, тем, что два агента будут работать с одним и тем же
объектом в режиме изменения этого объекта (в режиме записи).
После выполнения работы с объектами на сервере Servi агент Ak может
переместиться на сервер Servj для выполнения работы с находящимися там
объектами. Перемещения агента зависят от того, какая перед ним стоит цель и
на каких серверах находятся нужные ему объекты.
Агенты выполняют определенные операции над объектами, но и сами
агенты могут быть объектами операций. Следующие операции обычно входят в
перечень операций над агентами:
1.
создание агента (по некоторому описанию). Создание происходит
всегда на некотором сервере. Этот сервер называют «домашним» для
созданного агента;
2.
создание копии Ac агента A. Возникает дополнительный агент с
теми же процедурами и данными, которыми обладает агент A на момент
копирования. С этого момента будут существовать два агента. Сначала они
тождественны и находятся на одном сервере (создавшем копию), но в
дальнейшем они могут переместиться на различные серверы и даже
видоизмениться независимо друг от друга.
3.
расслоение агента A. Агент A разделяется на несколько агентов A1,
A2, …, Al, начинающих самостоятельное существование в системе. Это
разделение может коснуться программ и данных агента, а также его целей и
задач;
4.
слияние агентов A1, A2, …, Al. Вместо нескольких агентов,
прекращающих
самостоятельное существование, возникает один
агент,
обобщающий процедуры и данные составляющих агентов, а также их цели и
задачи;
5.
уничтожение агента A. Агент A перестает существовать в системе.
Модель агентов важна, например, для обработки транзакций. Как
известно, транзакция – это последовательность взаимосвязанных действий,
которые должны быть выполнены на нескольких серверах распределенной
системы.
В мультиагентной системе каждый агент может/должен решать проблему
распределения своих задач между другими агентами. Эта проблема возникает,
если у агента A есть несколько задач, требующих решения, и он не справляется
со всеми (из-за недостатка ресурсов). Тогда он может попытаться передать
часть своих задач другим агентам Ai, у которых мало или совсем нет задач.
Решение проблемы распределения состоит из четырех фаз:
1.
декомпозиция агентом A задачи на подзадачи;
2.
назначение подзадач агентам Ai;
3.
решение подзадач агентами;
4.
синтез общего результата из частных результатов.
Декомпозиция заключается в генерации множества подзадач, которые
потенциально могут быть переданы другим агентам.
При назначении подзадач должны быть выбраны подходящие (по тем или
иным критериям) агенты.
Решение подзадачи агентом Ai, которому она передана, может состоять в
полностью самостоятельном решении. Но этот агент также может решить
проблему распределения, т.е. в свою очередь, произвести декомпозицию
подзадачи и попросить помощи у других агентов. Этот процесс разбиения
задачи на подзадачи может состоять из нескольких уровней.
Синтез результата производится тем агентом A, который инициировал
распределение задачи. Он собирает частные результаты своих «помощников»
Ai и формирует общий результат. Процесс формирования зависит от того, как
исходная задача была разделена на подзадачи. Если декомпозиция, как
отмечено выше, была многоуровневой, то и синтез результата будет
многоуровневым.
Важно заметить, что декомпозиция задачи и синтез результата –
проблемы не тривиальные. Вспомним задачу организации сети управления
движением автомобильного транспорта. Агент, ответственный за решение этой
задачи в масштабах города, скорее всего, проведет декомпозицию задачи на
подзадачи по районам города и назначит подзадачи соответствующим
территориальным агентам. Те, в свою очередь, произведут разделение на
подзадачи для микрорайонов и т.д.
Решение агентами каждой локальной подзадачи будет производиться на
основе некоторых предположений о потоках автомобильного транспорта на
«входах» в соответствующую территорию. С учетом предположений могут
быть найдены оптимальные локальные решения Ri.
При синтезе общего решения R из локальных решений Ri должна быть
произведена «сшивка» решений Ri по границам территорий. И вот здесь может
быть выявлена несогласованность сделанных ранее агентами Ai локальных
предположений о потоках на границах. Дело в том, что в результате локального
решения для территории k будут, в частности, получены и описания
«выходных» потоков транспорта с территории k. Если территория k смежна с
территорией l и поток из k направляется в l, то «вычисленный» выходной поток
k может не совпасть с «предполагаемым» входным потоком l.
Более того, имеется и встречный поток из территории l в территорию k.
Кроме того, территориям k и l смежны еще и другие территории. Так что
рассогласования могут быть весьма разнообразны.
В результате этого решение R не может быть получено простым
объединением решений Ri.
В этом случае возможны следующие стратегии: возврат с пересмотром
локальных решений Ri на основе новых предположений о потоках на границах;
повторная декомпозиция задачи и повторение всего процесса решения.
Возврат с пересмотром локальных решений порождает итерационный
процесс, состоящий из следующих шагов:
1.
изменение предположений о «входных» потоках территорий с
учетом вычисленных «выходных» потоков;
2.
пересчет локальных решений Ri;
3.
сравнение новых выходных потоков предположениями о входных
потоках. При совпадении или небольших отклонениях – прекращение процесса.
При больших отклонениях – возврат к пункту 1.
Если
итерационный
процесс
завершился
в
пункте
3
полными
совпадениями, то итоговое решение R может быть получено простым
объединением решений Ri.
Но для того, чтобы это произошло, итерационный процесс должен
сходиться. В каждом конкретном случае должно быть проведено исследование
сходимости процесса и, возможно, его модификация с целью обеспечения
сходимости.
Если процесс не сходится, то требуется повторная декомпозиция задачи.
Например, исходя из иного территориального разбиения.
Для задачи управления транспортными потоками правильным будет не
административно-районное деление, а деление, основанное на крупных
магистралях, когда локальные решения Ri ищутся для магистралей и
прилегающих улиц. В частности, известное решение «зеленой улицы», при
котором вдоль магистрали светофоры переключаются так, чтобы обеспечить
безостановочное
движение
автомобилю,
движущемуся
с
определенной
скоростью, невозможно или трудно найти при районном делении территории,
если магистраль пересекает несколько районов.
Если агенты закреплены за районами, то при новой декомпозиции задачи
требуется обеспечить сотрудничество агентов и при решении локальных задач.
Описанные проблемы поиска решения имеют в области искусственного
интеллекта наименование «удовлетворение распределенных ограничений».
Download