Современные системы искусственного интеллекта часто строятся как системы взаимодействующих и сотрудничающих агентов.
Одним из расширений понятия программы стало понятие агента. Оно появилось в связи с использованием программ не только для решения численных задач или иной подобной обработки информации, но и в системах реального времени (
Обычная вычислительная программа, например, программа расчета колебаний струны, запускается на ЭВМ, получает входные данные, выполняется как последовательность заранее написанных команд, выводит результат. До следующего запуска извне (если он вообще состоится) она пребывает в состоянии "комы". В программе расчета колебаний струны, конечно, фигурирует такой параметр как время, но он используется наряду с другими параметрами, такими как амплитуда, и никакого отношения к реальному времени, в котором выполняется программа, не имеет.
Программа реального времени функционирует (запускается, приостанавливается, возобновляется, завершается, запускается вновь) в соответствии с внешними, физическими, а не абстрактными, часами. Это ее главный отличительный признак.
Кроме того, физическое время чаще всего является одним из существенных параметров расчета. Программа реального времени взаимодействует с окружением (получает и передает информацию) посредством интерфейсов, т.е. она влияет на окружающую среду и испытывает, в свою очередь, влияние окружающей среды. Отсюда следует второй важный отличительный признак программы реального времени: потенциально она может оценивать результаты своего выполнения (обратная связь) и менять свои действия в будущем с учетом прошлого.
Таким образом, можно говорить о поведении программы реального времени по отношению к окружению. В связи с этим программа реального времени уже не рассматривается как элемент
Эти и другие важные отличия от обычной программы привели к возникновению понятия программного агента и более широкого понятия – автономного агента.
В традиционных системах программы могут правильно функционировать только в условиях полностью предсказуемого окружения. Для того чтобы выполнить с помощью программы некоторое вычисление пользователь должен задать всю
Программные агенты обладают некоторыми знаниями об окружающем мире, которые позволяют им самим решать небольшие проблемы без вмешательства пользователя. Например, Интернет-агенты могут самостоятельно отыскивать нужную информацию в Сети (разумеется, в определенных пределах). Таким образом, агенты – это более гибкая конструкция, чем традиционные программы. Дополнительно, если агент может общаться с другими агентами, то они могут помочь ему решить проблему, действуя совместно.
Как и в случае классических алгоритмов, когда мы обсуждаем интуитивное понятие алгоритма и его формализации, можно обсуждать интуитивное понятие агента и различные его формализации.
Начнем с интуитивного понятия агента. Несмотря на рост числа теоретических исследований и приложений технологий, основанных на применении агентов, так и нет общепринятого определения термина "агент". Существует несколько трактовок, зависящих от целей исследования.
В частности, П.Маес из Media Lab Массачусетского технологического института считает, что "автономные агенты – это вычислительные системы, которые существуют в сложном динамическом окружении, чувствуют и действуют в этом окружении автономно, и так, чтобы реализовать множество целей и задач, для которых они спроектированы".
Б.Хайес-Рот считает, что "мыслящие агенты непрерывно выполняют три функции: восприятие динамически изменяющихся условий окружения; действия по влиянию на окружение; логический вывод для интерпретации получаемой информации, решения проблем, построения заключений и определения действий".
М.Вулдридж и Н.Дженнингс разделяют слабое и сильное понятия агента. Слабый агент рассматривается как система со свойствами автономности, возможности работать в обществе (social ability), реактивности, целенаправленности. Сильное понятие агента предполагает возможность непредписанных действий, предпринимаемых на основе собственных "идей".
Их определение включает следующие свойства: 1) автономия: агенты действуют без непосредственного вмешательства людей или чего-либо еще, определенным образом контролируют свои действия и внутреннее состояние; 2) социальные возможности: агенты взаимодействуют с другими агентами (и, возможно, людьми) с помощью некоторого языка; 3) реактивность: агенты воспринимают свое окружение (которое может быть физическим миром, пользователем – через графический пользовательский интерфейс, набором других агентов, Интернетом, или комбинацией всего этого) и отвечают периодически так, чтобы изменить что-то в своем окружении; 4) целенаправленность: агенты не просто отвечают своему окружению, они способны на целенаправленное поведение и проявление инициативы.
Т.Хесс и др. разделяют свойства на базовые и продвинутые. К базовым относятся целенаправленность, постоянство функционирования и реактивность. Продвинутые свойства включают наличие искусственного интеллекта, мобильность и интерактивность.
С.Франклин и А.Грэссер в 1996 году предложили следующее обобщенное определение агента:
Автономный агент – это система, находящаяся внутри окружения и являющаяся его частью, воспринимающая это окружение (его сигналы) и воздействующая на окружение для выполнения собственной программы действий.
Расшифровка этого определения дается перечнем свойств, которыми должен обладать автономный агент:
Разные авторы не совсем одинаково трактуют перечисленные свойства. Попытаемся объяснить их подробнее.
Свойство реактивности означает, что агент временами отвечает на изменения в окружении. Агент имеет
Не все изменения окружения становятся известными (доступными) сенсорам агента. Это вполне естественно. Ведь и человек не воспринимает звуки частотой свыше 30 кГц, радиоволны и т.д. Таким образом, окружение не является полностью наблюдаемым для агента.
Аналогично, агент воздействует на окружение путем разнообразных исполнительных механизмов, включая
Свойство автономности означает, что агент является самоуправляющимся, сам контролирует свои действия. Программный агент, находящийся на некотором сервере, обладает возможностью "самозапуска". Он не требует от пользователя каких-либо специальных действий по обеспечению его старта (подобно тому, как мы "кликаем" два раза по иконке некоторого файла).
Свойство целенаправленности означает, что у агента имеется определенная цель и его поведение (воздействие на окружение) подчинено этой цели, а не является простым откликом на сигналы из окружения. Иначе говоря, агент является
Свойство непрерывности функционирования означает, что агент постоянно находится в состоянии исполнения. Это не значит, что он ежесекундно выдает в окружение какие-то сигналы. Он может прекратить активные действия, "заснуть", до некоторого момента времени или какого-то события. Но в необходимый момент времени он сам возобновляет действия, не требуя какого-то "включения" извне.
Свойство коммуникативности означает, что агент общается с другими агентами (включая людей), используя для этого некоторый язык. Это не обязательно единый язык для всех агентов. Достаточно, чтобы у пары общающихся агентов был общий язык. Язык может быть сложным как, например, естественный язык. Но может быть и примитивным: обмен числами или короткими словами. Если многословные фразы сложного языка несут всю информацию, как правило, в себе, то слова простого языка предполагают "умолчание": обе стороны диалога "знают", о чем идет речь (как в известном анекдоте о занумерованных анекдотах).
Свойство обучаемости означает, что агент может корректировать свое поведение, основываясь на предыдущем опыте. Это не просто накопление в памяти параметров окружения, т.е. использование исторических данных, но сопоставление истории собственных действий с историей их влияние на окружение, и изменение в связи с этим своей программы действий.
Свойство мобильности означает, что агент может транспортировать себя с одной машины на другую. В общем случае можно сказать, что агент меняет свое положение в окружении (не меняя самого окружения).
Свойство гибкости означает, что действия агента не предписаны. Это, конечно, весьма относительное утверждение. Имеется в виду, что программа, заложенная в агента, предполагает выбор из многочисленных вариантов поведения. Такого рода выбор производится если не на каждом шагу, то достаточно часто, и зависит от выполнения или невыполнения различных условий. Выбор не является ни случайным, ни недетерминированным. Гибкость означает, что действия агента не примитивны, не легко предсказуемы.
Свойство индивидуальности означает наличие персональных свойств, данных, возможно, "эмоционального" состояния.
Систему, состоящую из нескольких взаимодействующих агентов, называют мультиагентной системой (МАС). Если мультиагентная система, в свою очередь, по отношению к ее окружению действует как (единый) агент, то естественно, составляющих ее агентов назвать подагентами (субагентами).
В мультагентной системе необязательно все агенты взаимодействуют (общаются) между собой. В крайнем случае, общения нет вообще. Такие системы назовем дискретными мультиагентными системами. Второй крайний случай – каждый агент общается с каждым. Такую систему назовем полносвязной мультиагентной системой.
Мультиагентная система, действующая как единый агент, должна характеризоваться и некоторой общей для всех субагентов целью и координацией действий по достижению этой цели.
Поскольку встречаются и другие ситуации, когда агенты не связаны столь тесно, то такие системы можно назвать обществами агентов. Отсутствие единой цели, однако, не отрицает возможного группового поведения агентов. Но оно является, скорее, эпизодическим, чем систематическим.
Важным отличием мультиагентной системы от программы или одного агента является то, что входящие в систему программные агенты (по крайней мере, некоторые) не были спроектированы специально для этой системы. Может быть, это – повторно используемые агенты, или агенты, разработанные для решения более универсальных задач. В этих случаях агенты имеют собственные цели, не совпадающие полностью с целями системы (организации), но совместимые с ними. Тем не менее, они могут быть полезны друг другу для решения стоящих перед ними задач и, поэтому, очень важным для них с этой точки зрения является свойство коммуникативности.
С организационной точки зрения существуют общие цели всего сообщества, и эти общие цели выражаются, прежде всего, в ролях (которые играют агенты) и нормах взаимодействия.
Исследования в области систем поддержки принятия решений (
Развитие интеллектуальных агентов и МАС очень популярны в среде исследователей ИС.
В области ИС интеллектуальные агенты используются, прежде всего, для интеграции информационных систем, пользователей, оборудования, для поддержки принятия решений, управления знаниями.
Существенными в понятии агента являются понятия
Исследования в области МАС отличаются от исследований в области распределенного ИИ. В ИИ функционирование системы распределено по множеству вершин для совместного решения проблемы. В МАС агенты имеют свои собственные цели, которые могут вступать в противоречие с целями других агентов. Тем не менее, группа логически децентрализованных агентов решает работать вместе для достижения общей цели. Это возможно сделать различными путями. Один из путей – разделить задачу на части между агентами. Другой – позволить каждому из агентов решать исходную задачу своим способом. В случае отыскания приближенных решений затем может быть выбрано наилучшее. Либо может применяться процедура голосования агентов за то или иное решение.
В традиционной клиент-серверной модели приложения выполняются на клиентских машинах, которые отправляют время от времени запросы одному или нескольким серверам объектов, таким, например, как серверы базы данных. Сервер объектов посылает клиенту ответ на запрос. В ответе могут содержаться объекты, полученные с другого сервера. Таким образом, основой для коммуникации является передача и прием сообщений.
Парадигма мультиагентного проектирования и реализации систем состоит в том, что программные агенты для достижения цели (выполнения некоторой работы) перемещаются с одного сервера на другой. Агенты выполняют свою работу локально на том сервере, на котором они в данный момент находятся. Обмен сообщениями (между серверами) по сети агенты, как правило, не используют. Т.Комийя, Т.Енокидо и М.Такидзава рассмотрели следующую модель.
Пусть в системе имеются серверы Serv1, Serv2, …, Servm, соединенные каналами связи, и агенты A1, A2, …, An, пользующиеся услугами этих серверов. Агенты автономно выполняются на серверах. Агент самостоятельно инициализируется на сервере: процедура и данные агента записываются в память сервера объектов, если на этом сервере достаточно ресурсов для работы агента. Говорят, что агент Ak размещается (Servi и этот сервер становится для агента текущим.
Для размещения на сервере важны два условия:
Ak. Конфликт может быть вызван различными причинами, например, тем, что два агента будут работать с одним и тем же объектом в режиме изменения этого объекта (в режиме записи).После выполнения работы с объектами на сервере Servi агент Ak может переместиться на сервер Servj для выполнения работы с находящимися там объектами. Перемещения агента зависят от того, какая перед ним стоит цель и на каких серверах находятся нужные ему объекты.
Агенты выполняют определенные операции над объектами, но и сами агенты могут быть объектами операций. Следующие операции обычно входят в перечень операций над агентами:
Ac агента A. Возникает дополнительный агент с теми же процедурами и данными, которыми обладает агент A на момент копирования. С этого момента будут существовать два агента. Сначала они тождественны и находятся на одном сервере (создавшем копию), но в дальнейшем они могут переместиться на различные серверы и даже видоизмениться независимо друг от друга.A. Агент A разделяется на несколько агентов A1, A2, …, Al, начинающих самостоятельное существование в системе. Это разделение может коснуться программ и данных агента, а также его целей и задач;A1, A2, …, Al. Вместо нескольких агентов, прекращающих самостоятельное существование, возникает один агент, обобщающий процедуры и данные составляющих агентов, а также их цели и задачи;A. Агент A перестает существовать в системе.
(рис 10.1) Расслоение и слияние агентовМодель агентов важна, например, для обработки транзакций. Как известно, транзакция – это последовательность взаимосвязанных действий, которые должны быть выполнены на нескольких серверах распределенной системы.
Транзакция должна удовлетворять четырем условиям (их называют
T1, не должны быть доступны для изменения или чтения транзакцией T2 до тех пор, пока T1 не завершилась.Агент может "сопровождать" выполнение транзакции на различных серверах, обеспечивая соблюдение перечисленных свойств. Либо, агенты на разных сайтах могут отвечать за выполнение субтранзакций данной транзакции.
Агенты могут помогать и в решении проблем работы с документами для мобильных пользователей.
Мобильные пользователи обычно находятся в условиях относительно низкой полосы пропускания каналов связи и не слишком плотной (с точки зрения количества связей между узлами) сети. Это затрудняет, в частности, работу с объемными Web-документами, передавать которые целиком на терминал пользователя неэффективно.
Решением может быть (С.Яу, Х.Леонг, А.Си) "нарезка" документа на части и передача непосредственно пользователю только той части, с которой он работает в данный короткий отрезок времени. Таким образом, будет решена проблема недостаточной пропускной способности канала связи.
Для того чтобы пользователю своевременно была предоставлена следующая необходимая часть, с учетом его возможного перемещения от одной базовой станции к другой, используется агент. Агент управляет документом в целом, перемещается между серверами базовых станций вслед за пользователем (но не на его терминале) и перемещает документ, организует пересылку пользователю необходимого фрагмента документа с текущей базовой станции в необходимое время. Можно сказать, что агент создает и поддерживает для пользователя виртуальное соединение с документом.
Серверы базовых станций соединены высокоскоростными каналами с большой пропускной способностью, поэтому перемещение по ним агента с документом не вызывает трудностей. Агент, как и пользователь, является мобильным, движется "параллельно" пользователю, но, в отличие от пользователя, по хорошей "дороге".
Сказанное иллюстрирует рис. 10.2, на котором изображены две базовые станции с зонами покрытия (пунктирные линии), перемещение мобильного пользователя из одной зоны в другую, и перемещение агента с документом. С базовых станций с участием
(рис 10.2) Перемещение мобильного пользователя и мобильного агентаВзаимодействующие агенты могут быть частью системы искусственного интеллекта, участвовать в распределенном решении задач и распределенном планировании.
Распределенная группа агентов работает над решением задачи совместно. В связи с тем, что такие ресурсы как знания, умения, возможности, информация у каждого агента свои, то один агент не может решить задачу в целом или, по крайней мере, не может решить ее также хорошо, как это возможно при сотрудничестве агентов.
Решение распределенных задач требует групповой согласованности действий агентов – сотрудничества и компетентности каждого агента в отдельности, т.е. обладания некоторым "ноу-хау". Если агенты имеют собственные цели, то достичь согласованности непросто. Но обычно предполагается, что агенты создаются для решения общей распределенной задачи или могут достичь своей частной цели, только решив общую задачу.
Разумеется, распределенное решение задачи возможно и целесообразно, если задача обладает
Примером такой задачи является построение сети датчиков интенсивности автомобильного движения на большом пространстве, например, города или района города, и организация на основе этой сети управления движением.
Действительно, это типичная распределенная задача. Имеется карта города с регулируемыми (с помощью светофоров) перекрестками. При интенсивном движении автомобилей перекресток работает как четыре взаимосвязанных системы массового обслуживания (по одной на каждое направление движения), что приводит к автомобильным "пробкам" (очередям) на улицах, прилегающих к перекрестку. "Пробка", возникшая у одного перекрестка, может увеличиться до такой степени, что захватит и смежный перекресток.
Из теории массового обслуживания известно, что величина очереди зависит от интенсивности потока и пропускной способности сервера (перекрестка), а также от вероятностных характеристик потока. Одним из очевидных способов уменьшения очереди является увеличение пропускной способности сервера. Но увеличение пропускной способности перекрестка в одном направлении (увеличение длительности "зеленого" цвета) приведет к снижению пропускной способности в поперечном направлении.
Поэтому для нахождения
В мультиагентной системе каждый агент может/должен решать проблему распределения своих задач между другими агентами. Эта проблема возникает, если у агента A есть несколько задач, требующих решения, и он не справляется со всеми (из-за недостатка ресурсов). Тогда он может попытаться передать часть своих задач другим агентам Ai, у которых мало или совсем нет задач. Решение проблемы распределения состоит из четырех фаз:
A задачи на подзадачи;Ai ;Декомпозиция заключается в генерации множества подзадач, которые потенциально могут быть переданы другим агентам.
При назначении подзадач должны быть выбраны подходящие (по тем или иным критериям) агенты.
Решение подзадачи агентом Ai, которому она передана, может состоять в полностью самостоятельном решении. Но этот агент также может решить проблему распределения, т.е. в свою очередь, произвести декомпозицию подзадачи и попросить помощи у других агентов. Этот процесс разбиения задачи на подзадачи может состоять из нескольких уровней.
Синтез результата производится тем агентом A, который инициировал распределение задачи. Он собирает частные результаты своих "помощников" Ai и формирует общий результат. Процесс формирования зависит от того, как исходная задача была разделена на подзадачи. Если декомпозиция, как отмечено выше, была многоуровневой, то и синтез результата будет многоуровневым.
Важно заметить, что декомпозиция задачи и синтез результата – проблемы не тривиальные. Вспомним задачу организации сети управления движением автомобильного транспорта. Агент, ответственный за решение этой задачи в масштабах города, скорее всего, проведет декомпозицию задачи на подзадачи по районам города и назначит подзадачи соответствующим территориальным агентам. Те, в свою очередь, произведут разделение на подзадачи для микрорайонов и т.д.
Решение агентами каждой локальной подзадачи будет производиться на основе некоторых предположений о потоках автомобильного транспорта на "входах" в соответствующую территорию. С учетом предположений могут быть найдены оптимальные локальные решения Ri.
При синтезе общего решения R из локальных решений Ri должна быть произведена "сшивка" решений Ri по границам территорий. И вот здесь может быть выявлена несогласованность сделанных ранее агентами Ai локальных предположений о потоках на границах. Дело в том, что в результате локального решения для территории k будут, в частности, получены и описания "выходных" потоков транспорта с территории k. Если территория k смежна с территорией l и поток из k направляется в l, то "вычисленный" выходной поток k может не совпасть с "предполагаемым" входным потоком l.
Более того, имеется и встречный поток из территории l в территорию k. Кроме того, территориям k и l смежны еще и другие территории. Так что рассогласования могут быть весьма разнообразны.
В результате этого решение R не может быть получено простым объединением решений Ri.
В этом случае возможны следующие стратегии: возврат с пересмотром локальных решений Ri на основе новых предположений о потоках на границах; повторная декомпозиция задачи и повторение всего процесса решения.
Возврат с пересмотром локальных решений порождает итерационный процесс, состоящий из следующих шагов:
Ri ;Если итерационный процесс завершился в пункте 3 полными совпадениями, то итоговое решение R может быть получено простым объединением решений Ri.
Но для того, чтобы это произошло, итерационный процесс должен сходиться. В каждом конкретном случае должно быть проведено исследование сходимости процесса и, возможно, его модификация с целью обеспечения сходимости.
Если процесс не сходится, то требуется повторная декомпозиция задачи. Например, исходя из иного территориального разбиения.
Для задачи управления транспортными потоками правильным будет не административно-районное деление, а деление, основанное на крупных магистралях, когда локальные решения Ri ищутся для магистралей и прилегающих улиц. В частности, известное решение "зеленой улицы", при котором вдоль магистрали светофоры переключаются так, чтобы обеспечить безостановочное движение автомобилю, движущемуся с определенной скоростью, невозможно или трудно найти при районном делении территории, если магистраль пересекает несколько районов.
Если агенты закреплены за районами, то при новой декомпозиции задачи требуется обеспечить сотрудничество агентов и при решении локальных задач.
Описанные проблемы поиска решения имеют в области искусственного интеллекта наименование "удовлетворение распределенных ограничений" (Distributed Constraint Satisfaction).
Современные системы искусственного интеллекта часто строятся как системы взаимодействующих и сотрудничающих агентов.
Одним из расширений понятия программы стало понятие агента. Оно появилось в связи с использованием программ не только для решения численных задач или иной подобной обработки информации, но и в системах реального времени (
Обычная вычислительная программа, например, программа расчета колебаний струны, запускается на ЭВМ, получает входные данные, выполняется как последовательность заранее написанных команд, выводит результат. До следующего запуска извне (если он вообще состоится) она пребывает в состоянии "комы". В программе расчета колебаний струны, конечно, фигурирует такой параметр как время, но он используется наряду с другими параметрами, такими как амплитуда, и никакого отношения к реальному времени, в котором выполняется программа, не имеет.
Программа реального времени функционирует (запускается, приостанавливается, возобновляется, завершается, запускается вновь) в соответствии с внешними, физическими, а не абстрактными, часами. Это ее главный отличительный признак.
Кроме того, физическое время чаще всего является одним из существенных параметров расчета. Программа реального времени взаимодействует с окружением (получает и передает информацию) посредством интерфейсов, т.е. она влияет на окружающую среду и испытывает, в свою очередь, влияние окружающей среды. Отсюда следует второй важный отличительный признак программы реального времени: потенциально она может оценивать результаты своего выполнения (обратная связь) и менять свои действия в будущем с учетом прошлого.
Таким образом, можно говорить о поведении программы реального времени по отношению к окружению. В связи с этим программа реального времени уже не рассматривается как элемент
Эти и другие важные отличия от обычной программы привели к возникновению понятия программного агента и более широкого понятия – автономного агента.
В традиционных системах программы могут правильно функционировать только в условиях полностью предсказуемого окружения. Для того чтобы выполнить с помощью программы некоторое вычисление пользователь должен задать всю
Программные агенты обладают некоторыми знаниями об окружающем мире, которые позволяют им самим решать небольшие проблемы без вмешательства пользователя. Например, Интернет-агенты могут самостоятельно отыскивать нужную информацию в Сети (разумеется, в определенных пределах). Таким образом, агенты – это более гибкая конструкция, чем традиционные программы. Дополнительно, если агент может общаться с другими агентами, то они могут помочь ему решить проблему, действуя совместно.
Как и в случае классических алгоритмов, когда мы обсуждаем интуитивное понятие алгоритма и его формализации, можно обсуждать интуитивное понятие агента и различные его формализации.
Начнем с интуитивного понятия агента. Несмотря на рост числа теоретических исследований и приложений технологий, основанных на применении агентов, так и нет общепринятого определения термина "агент". Существует несколько трактовок, зависящих от целей исследования.
В частности, П.Маес из Media Lab Массачусетского технологического института считает, что "автономные агенты – это вычислительные системы, которые существуют в сложном динамическом окружении, чувствуют и действуют в этом окружении автономно, и так, чтобы реализовать множество целей и задач, для которых они спроектированы".
Б.Хайес-Рот считает, что "мыслящие агенты непрерывно выполняют три функции: восприятие динамически изменяющихся условий окружения; действия по влиянию на окружение; логический вывод для интерпретации получаемой информации, решения проблем, построения заключений и определения действий".
М.Вулдридж и Н.Дженнингс разделяют слабое и сильное понятия агента. Слабый агент рассматривается как система со свойствами автономности, возможности работать в обществе (social ability), реактивности, целенаправленности. Сильное понятие агента предполагает возможность непредписанных действий, предпринимаемых на основе собственных "идей".
Их определение включает следующие свойства: 1) автономия: агенты действуют без непосредственного вмешательства людей или чего-либо еще, определенным образом контролируют свои действия и внутреннее состояние; 2) социальные возможности: агенты взаимодействуют с другими агентами (и, возможно, людьми) с помощью некоторого языка; 3) реактивность: агенты воспринимают свое окружение (которое может быть физическим миром, пользователем – через графический пользовательский интерфейс, набором других агентов, Интернетом, или комбинацией всего этого) и отвечают периодически так, чтобы изменить что-то в своем окружении; 4) целенаправленность: агенты не просто отвечают своему окружению, они способны на целенаправленное поведение и проявление инициативы.
Т.Хесс и др. разделяют свойства на базовые и продвинутые. К базовым относятся целенаправленность, постоянство функционирования и реактивность. Продвинутые свойства включают наличие искусственного интеллекта, мобильность и интерактивность.
С.Франклин и А.Грэссер в 1996 году предложили следующее обобщенное определение агента:
Автономный агент – это система, находящаяся внутри окружения и являющаяся его частью, воспринимающая это окружение (его сигналы) и воздействующая на окружение для выполнения собственной программы действий.
Расшифровка этого определения дается перечнем свойств, которыми должен обладать автономный агент:
Разные авторы не совсем одинаково трактуют перечисленные свойства. Попытаемся объяснить их подробнее.
Свойство реактивности означает, что агент временами отвечает на изменения в окружении. Агент имеет
Не все изменения окружения становятся известными (доступными) сенсорам агента. Это вполне естественно. Ведь и человек не воспринимает звуки частотой свыше 30 кГц, радиоволны и т.д. Таким образом, окружение не является полностью наблюдаемым для агента.
Аналогично, агент воздействует на окружение путем разнообразных исполнительных механизмов, включая
Свойство автономности означает, что агент является самоуправляющимся, сам контролирует свои действия. Программный агент, находящийся на некотором сервере, обладает возможностью "самозапуска". Он не требует от пользователя каких-либо специальных действий по обеспечению его старта (подобно тому, как мы "кликаем" два раза по иконке некоторого файла).
Свойство целенаправленности означает, что у агента имеется определенная цель и его поведение (воздействие на окружение) подчинено этой цели, а не является простым откликом на сигналы из окружения. Иначе говоря, агент является
Свойство непрерывности функционирования означает, что агент постоянно находится в состоянии исполнения. Это не значит, что он ежесекундно выдает в окружение какие-то сигналы. Он может прекратить активные действия, "заснуть", до некоторого момента времени или какого-то события. Но в необходимый момент времени он сам возобновляет действия, не требуя какого-то "включения" извне.
Свойство коммуникативности означает, что агент общается с другими агентами (включая людей), используя для этого некоторый язык. Это не обязательно единый язык для всех агентов. Достаточно, чтобы у пары общающихся агентов был общий язык. Язык может быть сложным как, например, естественный язык. Но может быть и примитивным: обмен числами или короткими словами. Если многословные фразы сложного языка несут всю информацию, как правило, в себе, то слова простого языка предполагают "умолчание": обе стороны диалога "знают", о чем идет речь (как в известном анекдоте о занумерованных анекдотах).
Свойство обучаемости означает, что агент может корректировать свое поведение, основываясь на предыдущем опыте. Это не просто накопление в памяти параметров окружения, т.е. использование исторических данных, но сопоставление истории собственных действий с историей их влияние на окружение, и изменение в связи с этим своей программы действий.
Свойство мобильности означает, что агент может транспортировать себя с одной машины на другую. В общем случае можно сказать, что агент меняет свое положение в окружении (не меняя самого окружения).
Свойство гибкости означает, что действия агента не предписаны. Это, конечно, весьма относительное утверждение. Имеется в виду, что программа, заложенная в агента, предполагает выбор из многочисленных вариантов поведения. Такого рода выбор производится если не на каждом шагу, то достаточно часто, и зависит от выполнения или невыполнения различных условий. Выбор не является ни случайным, ни недетерминированным. Гибкость означает, что действия агента не примитивны, не легко предсказуемы.
Свойство индивидуальности означает наличие персональных свойств, данных, возможно, "эмоционального" состояния.
Систему, состоящую из нескольких взаимодействующих агентов, называют мультиагентной системой (МАС). Если мультиагентная система, в свою очередь, по отношению к ее окружению действует как (единый) агент, то естественно, составляющих ее агентов назвать подагентами (субагентами).
В мультагентной системе необязательно все агенты взаимодействуют (общаются) между собой. В крайнем случае, общения нет вообще. Такие системы назовем дискретными мультиагентными системами. Второй крайний случай – каждый агент общается с каждым. Такую систему назовем полносвязной мультиагентной системой.
Мультиагентная система, действующая как единый агент, должна характеризоваться и некоторой общей для всех субагентов целью и координацией действий по достижению этой цели.
Поскольку встречаются и другие ситуации, когда агенты не связаны столь тесно, то такие системы можно назвать обществами агентов. Отсутствие единой цели, однако, не отрицает возможного группового поведения агентов. Но оно является, скорее, эпизодическим, чем систематическим.
Важным отличием мультиагентной системы от программы или одного агента является то, что входящие в систему программные агенты (по крайней мере, некоторые) не были спроектированы специально для этой системы. Может быть, это – повторно используемые агенты, или агенты, разработанные для решения более универсальных задач. В этих случаях агенты имеют собственные цели, не совпадающие полностью с целями системы (организации), но совместимые с ними. Тем не менее, они могут быть полезны друг другу для решения стоящих перед ними задач и, поэтому, очень важным для них с этой точки зрения является свойство коммуникативности.
С организационной точки зрения существуют общие цели всего сообщества, и эти общие цели выражаются, прежде всего, в ролях (которые играют агенты) и нормах взаимодействия.
Исследования в области систем поддержки принятия решений (
Развитие интеллектуальных агентов и МАС очень популярны в среде исследователей ИС.
В области ИС интеллектуальные агенты используются, прежде всего, для интеграции информационных систем, пользователей, оборудования, для поддержки принятия решений, управления знаниями.
Существенными в понятии агента являются понятия
Исследования в области МАС отличаются от исследований в области распределенного ИИ. В ИИ функционирование системы распределено по множеству вершин для совместного решения проблемы. В МАС агенты имеют свои собственные цели, которые могут вступать в противоречие с целями других агентов. Тем не менее, группа логически децентрализованных агентов решает работать вместе для достижения общей цели. Это возможно сделать различными путями. Один из путей – разделить задачу на части между агентами. Другой – позволить каждому из агентов решать исходную задачу своим способом. В случае отыскания приближенных решений затем может быть выбрано наилучшее. Либо может применяться процедура голосования агентов за то или иное решение.
В традиционной клиент-серверной модели приложения выполняются на клиентских машинах, которые отправляют время от времени запросы одному или нескольким серверам объектов, таким, например, как серверы базы данных. Сервер объектов посылает клиенту ответ на запрос. В ответе могут содержаться объекты, полученные с другого сервера. Таким образом, основой для коммуникации является передача и прием сообщений.
Парадигма мультиагентного проектирования и реализации систем состоит в том, что программные агенты для достижения цели (выполнения некоторой работы) перемещаются с одного сервера на другой. Агенты выполняют свою работу локально на том сервере, на котором они в данный момент находятся. Обмен сообщениями (между серверами) по сети агенты, как правило, не используют. Т.Комийя, Т.Енокидо и М.Такидзава рассмотрели следующую модель.
Пусть в системе имеются серверы Serv1, Serv2, …, Servm, соединенные каналами связи, и агенты A1, A2, …, An, пользующиеся услугами этих серверов. Агенты автономно выполняются на серверах. Агент самостоятельно инициализируется на сервере: процедура и данные агента записываются в память сервера объектов, если на этом сервере достаточно ресурсов для работы агента. Говорят, что агент Ak размещается (Servi и этот сервер становится для агента текущим.
Для размещения на сервере важны два условия:
Ak. Конфликт может быть вызван различными причинами, например, тем, что два агента будут работать с одним и тем же объектом в режиме изменения этого объекта (в режиме записи).После выполнения работы с объектами на сервере Servi агент Ak может переместиться на сервер Servj для выполнения работы с находящимися там объектами. Перемещения агента зависят от того, какая перед ним стоит цель и на каких серверах находятся нужные ему объекты.
Агенты выполняют определенные операции над объектами, но и сами агенты могут быть объектами операций. Следующие операции обычно входят в перечень операций над агентами:
Ac агента A. Возникает дополнительный агент с теми же процедурами и данными, которыми обладает агент A на момент копирования. С этого момента будут существовать два агента. Сначала они тождественны и находятся на одном сервере (создавшем копию), но в дальнейшем они могут переместиться на различные серверы и даже видоизмениться независимо друг от друга.A. Агент A разделяется на несколько агентов A1, A2, …, Al, начинающих самостоятельное существование в системе. Это разделение может коснуться программ и данных агента, а также его целей и задач;A1, A2, …, Al. Вместо нескольких агентов, прекращающих самостоятельное существование, возникает один агент, обобщающий процедуры и данные составляющих агентов, а также их цели и задачи;A. Агент A перестает существовать в системе.
(рис 10.1) Расслоение и слияние агентовМодель агентов важна, например, для обработки транзакций. Как известно, транзакция – это последовательность взаимосвязанных действий, которые должны быть выполнены на нескольких серверах распределенной системы.
Транзакция должна удовлетворять четырем условиям (их называют
T1, не должны быть доступны для изменения или чтения транзакцией T2 до тех пор, пока T1 не завершилась.Агент может "сопровождать" выполнение транзакции на различных серверах, обеспечивая соблюдение перечисленных свойств. Либо, агенты на разных сайтах могут отвечать за выполнение субтранзакций данной транзакции.
Агенты могут помогать и в решении проблем работы с документами для мобильных пользователей.
Мобильные пользователи обычно находятся в условиях относительно низкой полосы пропускания каналов связи и не слишком плотной (с точки зрения количества связей между узлами) сети. Это затрудняет, в частности, работу с объемными Web-документами, передавать которые целиком на терминал пользователя неэффективно.
Решением может быть (С.Яу, Х.Леонг, А.Си) "нарезка" документа на части и передача непосредственно пользователю только той части, с которой он работает в данный короткий отрезок времени. Таким образом, будет решена проблема недостаточной пропускной способности канала связи.
Для того чтобы пользователю своевременно была предоставлена следующая необходимая часть, с учетом его возможного перемещения от одной базовой станции к другой, используется агент. Агент управляет документом в целом, перемещается между серверами базовых станций вслед за пользователем (но не на его терминале) и перемещает документ, организует пересылку пользователю необходимого фрагмента документа с текущей базовой станции в необходимое время. Можно сказать, что агент создает и поддерживает для пользователя виртуальное соединение с документом.
Серверы базовых станций соединены высокоскоростными каналами с большой пропускной способностью, поэтому перемещение по ним агента с документом не вызывает трудностей. Агент, как и пользователь, является мобильным, движется "параллельно" пользователю, но, в отличие от пользователя, по хорошей "дороге".
Сказанное иллюстрирует рис. 10.2, на котором изображены две базовые станции с зонами покрытия (пунктирные линии), перемещение мобильного пользователя из одной зоны в другую, и перемещение агента с документом. С базовых станций с участием
(рис 10.2) Перемещение мобильного пользователя и мобильного агентаВзаимодействующие агенты могут быть частью системы искусственного интеллекта, участвовать в распределенном решении задач и распределенном планировании.
Распределенная группа агентов работает над решением задачи совместно. В связи с тем, что такие ресурсы как знания, умения, возможности, информация у каждого агента свои, то один агент не может решить задачу в целом или, по крайней мере, не может решить ее также хорошо, как это возможно при сотрудничестве агентов.
Решение распределенных задач требует групповой согласованности действий агентов – сотрудничества и компетентности каждого агента в отдельности, т.е. обладания некоторым "ноу-хау". Если агенты имеют собственные цели, то достичь согласованности непросто. Но обычно предполагается, что агенты создаются для решения общей распределенной задачи или могут достичь своей частной цели, только решив общую задачу.
Разумеется, распределенное решение задачи возможно и целесообразно, если задача обладает
Примером такой задачи является построение сети датчиков интенсивности автомобильного движения на большом пространстве, например, города или района города, и организация на основе этой сети управления движением.
Действительно, это типичная распределенная задача. Имеется карта города с регулируемыми (с помощью светофоров) перекрестками. При интенсивном движении автомобилей перекресток работает как четыре взаимосвязанных системы массового обслуживания (по одной на каждое направление движения), что приводит к автомобильным "пробкам" (очередям) на улицах, прилегающих к перекрестку. "Пробка", возникшая у одного перекрестка, может увеличиться до такой степени, что захватит и смежный перекресток.
Из теории массового обслуживания известно, что величина очереди зависит от интенсивности потока и пропускной способности сервера (перекрестка), а также от вероятностных характеристик потока. Одним из очевидных способов уменьшения очереди является увеличение пропускной способности сервера. Но увеличение пропускной способности перекрестка в одном направлении (увеличение длительности "зеленого" цвета) приведет к снижению пропускной способности в поперечном направлении.
Поэтому для нахождения
В мультиагентной системе каждый агент может/должен решать проблему распределения своих задач между другими агентами. Эта проблема возникает, если у агента A есть несколько задач, требующих решения, и он не справляется со всеми (из-за недостатка ресурсов). Тогда он может попытаться передать часть своих задач другим агентам Ai, у которых мало или совсем нет задач. Решение проблемы распределения состоит из четырех фаз:
A задачи на подзадачи;Ai ;Декомпозиция заключается в генерации множества подзадач, которые потенциально могут быть переданы другим агентам.
При назначении подзадач должны быть выбраны подходящие (по тем или иным критериям) агенты.
Решение подзадачи агентом Ai, которому она передана, может состоять в полностью самостоятельном решении. Но этот агент также может решить проблему распределения, т.е. в свою очередь, произвести декомпозицию подзадачи и попросить помощи у других агентов. Этот процесс разбиения задачи на подзадачи может состоять из нескольких уровней.
Синтез результата производится тем агентом A, который инициировал распределение задачи. Он собирает частные результаты своих "помощников" Ai и формирует общий результат. Процесс формирования зависит от того, как исходная задача была разделена на подзадачи. Если декомпозиция, как отмечено выше, была многоуровневой, то и синтез результата будет многоуровневым.
Важно заметить, что декомпозиция задачи и синтез результата – проблемы не тривиальные. Вспомним задачу организации сети управления движением автомобильного транспорта. Агент, ответственный за решение этой задачи в масштабах города, скорее всего, проведет декомпозицию задачи на подзадачи по районам города и назначит подзадачи соответствующим территориальным агентам. Те, в свою очередь, произведут разделение на подзадачи для микрорайонов и т.д.
Решение агентами каждой локальной подзадачи будет производиться на основе некоторых предположений о потоках автомобильного транспорта на "входах" в соответствующую территорию. С учетом предположений могут быть найдены оптимальные локальные решения Ri.
При синтезе общего решения R из локальных решений Ri должна быть произведена "сшивка" решений Ri по границам территорий. И вот здесь может быть выявлена несогласованность сделанных ранее агентами Ai локальных предположений о потоках на границах. Дело в том, что в результате локального решения для территории k будут, в частности, получены и описания "выходных" потоков транспорта с территории k. Если территория k смежна с территорией l и поток из k направляется в l, то "вычисленный" выходной поток k может не совпасть с "предполагаемым" входным потоком l.
Более того, имеется и встречный поток из территории l в территорию k. Кроме того, территориям k и l смежны еще и другие территории. Так что рассогласования могут быть весьма разнообразны.
В результате этого решение R не может быть получено простым объединением решений Ri.
В этом случае возможны следующие стратегии: возврат с пересмотром локальных решений Ri на основе новых предположений о потоках на границах; повторная декомпозиция задачи и повторение всего процесса решения.
Возврат с пересмотром локальных решений порождает итерационный процесс, состоящий из следующих шагов:
Ri ;Если итерационный процесс завершился в пункте 3 полными совпадениями, то итоговое решение R может быть получено простым объединением решений Ri.
Но для того, чтобы это произошло, итерационный процесс должен сходиться. В каждом конкретном случае должно быть проведено исследование сходимости процесса и, возможно, его модификация с целью обеспечения сходимости.
Если процесс не сходится, то требуется повторная декомпозиция задачи. Например, исходя из иного территориального разбиения.
Для задачи управления транспортными потоками правильным будет не административно-районное деление, а деление, основанное на крупных магистралях, когда локальные решения Ri ищутся для магистралей и прилегающих улиц. В частности, известное решение "зеленой улицы", при котором вдоль магистрали светофоры переключаются так, чтобы обеспечить безостановочное движение автомобилю, движущемуся с определенной скоростью, невозможно или трудно найти при районном делении территории, если магистраль пересекает несколько районов.
Если агенты закреплены за районами, то при новой декомпозиции задачи требуется обеспечить сотрудничество агентов и при решении локальных задач.
Описанные проблемы поиска решения имеют в области искусственного интеллекта наименование "удовлетворение распределенных ограничений" (Distributed Constraint Satisfaction).
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.