Что такое агент и какие у него свойства

Что такое агент и какие у него свойства thumbnail

Интеллектуальный агент многоагентной системы

К настоящему времени, несмотря на все дискуссии, термины «агент» и «интеллектуальный агент» четко не описаны, как, впрочем, не описаны и многие другие ключевые термины в области интеллектуальных систем. Причина такого состояния дел с терминологией достаточно очевидна и состоит в том, что в этих случаях четкую границу провести невозможно. Можно говорить лишь о некоторых “свойствах” программ, претендующих на то, чтобы называться агентом, интеллектуальным агентом или многоагентной системой. Рассмотрим существующие содержательные описания свойств агентов.

На Токийской встрече в октябре 1996 года определение агента было сформулировано следующим образом:

“Агент – это сущность, которая находится в некоторой среде, от которой она получает данные и которые отражают события, происходящие в среде, интерпретирует их и воздействует на среду. Агент может содержать программные и аппаратные компоненты. Отсутствие четкого определения мира агентов и присутствие большого количества атрибутов, с ним связанных, а также существование большого разнообразия примеров агентов говорят о том, что агенты – это достаточно общая технология, которая аккумулирует в себе несколько различных областей”.

Существует еще одно определение агента:

“Агент – это компьютерная система, которая функционирует в некоторой среде, и которая способна к автономно вырабатываемой реакции для реализации целей, ради которых она (компьютерная система) была создана”.

Рис. 1. Взаимодействие агента и внешней среды

Заметим, что некоторые из терминов, использованных в этом определении (автономность, тип внешней среды) нуждаются в пояснении. Приведенное определение демонстрируется простой схемой, представленной на рис. 1.

В определении речь идет об агенте, но не об интеллектуальном агенте. Когда говорят об интеллектуальных агентах, то предполагают, что они, помимо автономности, обладают еще, по крайней мере, такими свойствами:

· реактивность (reactivity) – это способность агента воспринимать состояние среды и своевременно отвечать (реагировать) на те изменения, которые в ней происходят.

· способность к интеллектуальному (“разумному”) и целенаправленному поведению (pro-activity)[4]– способность агента брать на себя инициативу, т.е. способность генерировать цели и действовать рационально для их достижения, а не только реагировать на внешние события. Наличие этого свойства является одним из важнейших показателей уровня интеллектуальности агента. Например, если предусловия, необходимые для успешности действий, исполняемых агентом, перестали выполняться уже после начала действий, то он должен прекратить исполнение бесполезного действия. В этом одно из отличий агента от обычной программы или объекта. Особенно важно это качество агента в среде, которая не может быть полностью наблюдаема. Заметим также, что в некоторых случаях внешняя среда столь сложна, что в ней наделить агента столь “разумным” поведением технически или очень трудно, если возможно вообще.

· способность к общественному поведению (social ability) – это способность агента функционировать в сообществе с другими агентами, обмениваясь с ними сообщениями с помощью некоторого общепонятного (понятного всем агентам системы) языка коммуникаций. Обмен сообщениями может проводиться с различными целями, например, с целью переговоров, уточнения информации, с целью запроса на сервис, согласования кооперативных и частных целей и т.п. Вообще говоря, это одно из ключевых свойств агента.

Для агента очень важно обеспечить рациональное сочетание, баланс реактивного и “разумного” поведения. Крайние случаи могут оказаться одинаково нерациональными: в первом случае поведение агента аналогично поведению менеджера, который реагирует только на текущие потребности, во втором случае агент подобен менеджеру, который ведет сразу много дел, по сути, не заканчивая ни одного из них.

Перечисленные выше свойства агента образуют тот минимальный набор, при наличии которого агента принято называть интеллектуальным[5]. Дополнительно к ним агент может характеризоваться также рядом других свойств, которые оказываются существенными при построении формальных моделей поведения агента, а также коллектива агентов в многоагентной системе. Главными из них являются так называемые “ментальные” или поведенческие свойства. Эти свойстваиграют ключевую роль в одной из первых строгих моделей поведения агента, названной логикой намерений. К ментальным относятся следующие свойства агентов:

· знания (knowledge) – это постоянная часть знаний агента о себе, о среде, а также, возможно, знания о других агентах. Это та часть знаний, которая не изменяется в процессе функционирования агента;

· убеждения (beliefs) – это знания агента о внешней среде и о других агентах. Эти знания, могут быть недостоверными, изменяться во времени и становиться неверными. Агент должен эти знания постоянно обновлять. Если он не имеет информации, которая формирует его убеждения, то, оставаясь со старыми убеждениями, он может на их основе делать неверные выводы.

Следующие свойства агента принято называть мотивационными.

· желания (desires) – это состояния, ситуации, достижение которых по разным причинам является для агента желательным. Однако желания могут быть противоречивыми в том или ином смысле (быть физически нереализуемыми, взаимно исключать друг друга, конфликтовать по ресурсу, потребному для выполнения различных желаний, по временному фактору и т.п.). Агент может выбирать в качестве в качестве мотивационной компоненты своего поведения только некоторое их непротиворечивое подмножество. Обычно этот выбор агент может делать неединственным образом, а потому он должен обладать соответствующим механизмом для выбора желаний, которые в дальнейшем определяют его поведение.

· намерения (intentions) – это то, что агент или обязан сделать в силу своих обязательств по отношению к другим агентам или он обязан это делать в соответствии со своим выбором (т.е. в соответствии с выбором непротиворечивого подмножества желаний, совместимого с ранее принятыми обязательствами, имеющимися ресурсами, располагаемым временем и т.п.);

· цели (goals) – это конкретное множество конечных и промежуточных состояний, достижение которых агент считает реализацией своих намерений, которые определяют текущую стратегию его поведения;

· обязательства (commitments) – это те задачи, которые агент берет на себя по просьбе или по поручению других агентов в рамках кооперативных целей или целей других агентов в рамках коалиций или альянсов, в которые данный агент входит.

В некоторых приложениях от агента требуется, чтобы он обладал рядом дополнительных свойств. К ним относятся:

· мобильность (mobility) – это способность агента при необходимости мигрировать по сети. Это может потребоваться при поиске информации, необходимой для решения своих задач, при кооперативном решении задач совместно или с помощью других агентов и т.п.

· рациональность (rationality) – это свойство агента действовать так, чтобы достигнуть своих целей, и в рамках своих знаний и убеждений не делать ничего, чтобы избежать достижения своих целей.

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

Наблюдаемость/ненаблюдаемость среды с точки зрения возможности получения информации о ней. Среда наблюдаема, если агент может получить о ней точную и полную информацию в нужное время. Однако такой вариант среды характерен только для искусственных задач. Обычно агент оперирует в среде, которая не является полностью доступной для наблюдения или измерения ее свойств. Причины этого могут состоять как в ограниченности возможностей сенсорной системы агента, так и в сложности самой среды. Например, она может быть многомерной и динамичной. Чем более “доступна” среда для наблюдения, тем проще построить агента, обладающего “хорошими” свойствами.

Детерминированная/недетерминированная среды. В детерминированной среде ее реакция на воздействие со стороны агента вполне предсказуема, в то время как в недетерминированной среде на одно и то же воздействие агента может последовать различная реакция.

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

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

Дискретная/непрерывная среда. Если внешняя среда имеет конечное множество состояний, то агенту достаточно иметь конечное множество реакций. Примером являются игровые задачи с определенной заранее последовательностью действий, агенты, осуществляющие некоторое обслуживание и др.

Источник

1. Автономность: агенты функционируют без прямого вмешательства людей или кого-либо другого и владеют определенной способностью контролировать свои действия и внутреннее состояние.

2. Общественное поведение (social ability):агенты взаимодействуют с другими агентами средствами некоторого коммуникационного языка.

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

3. Целенаправленная активность: агенты не просто реагируют на изменения среды, но и обладают целенаправленным поведением и способностью проявлять инициативу.

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

6. Коммуникабельность и коперативность: агенты могут обмениваться информацией с окружающей их средой и другими агентами. Возможность коммуникаций означает, что агент должен получать информацию об его окружающей среде, что дает ему возможность строить собственную модель мира. Более того, возможность коммуникаций с другими агентами является обязательным условием совместных действий для достижения целей.

7. Интеллектуальное поведение: поведение агента включает способность к обучению, логичной дедукции или конструированию модели окружающей среды для того, чтобы находить оптимальные способы поведения.

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

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

Следует отметить, что на сегодня не существует языка программирования или инструментальной системы разработки, которая бы полностью соответствовала требованиям построения агентов. С точки зрения принципов распределенного объектно-ориентированного программирования (ООП) необходимость передачи методов может быть существенно сокращена в том случае, если может быть обеспечен удаленный доступ к общим методам посредством передачи ссылок на удаленные объекты, данных экземпляров этих объектов и их состояний. Однако в дополнение к концепции ООП, каждый агент имеет возможность создания копий самого себя с полной или ограниченной функциональностью, обеспечивая возможность настройки на среду путем исключения неэффективных методов и замены их новыми. Традиционная для ООП схема класс/объект нарушается, т.к. агент имеет возможность постоянного изменения сценария поведения без его изменения в родительском классе. Многозначное наследование позволяет создавать экземпляры агентов, смешивая сценарии поведения, схемы наследования и атрибуты, определенные в родительских классах.

Следовательно, система разработки, которая бы полностью соответствовала требованиям построения агентов, должна была бы соответствовать таким требованиям: обеспечение перенесения кода на различные платформы, доступность на многих платформах, поддержка сетевого взаимодействия, многопотоковая обработка и некоторые другие. Чаще всего в агентных технологиях используются: универсальные языки программирования (Java); языки, “ориентированы на знания”, такие, как языки представления знаний (KIF), языки переговоров и обмена знаниями (KQML, AgentSpeak, April), языки спецификаций агентов; специализированные языки программирования агентов (TeleScript); языки сценариев и scripting languages (Tcl/Tk); символьные языки и языки логического программирования (Oz).

Одно из самых главных свойств агента – это интеллектуальность. Интеллектуальный агент владеет определенными знаниями о себе и об окружающей среде, и на основе этих знаний он способен определять свое поведение. Интеллектуальные агенты являются основной областью интересов агентной технологии. Важна также среда существования агента: это может быть как реальный мир, так и виртуальный (компьютерный), что является важным в связи со всеобщим распространением сети Internet. От агентов требуют способности к обучению и даже самообучению. Поскольку обучение обуславливает наличие знаний у обучаемого, то обучаемым или самообучаемым может быть только интеллектуальный агент.

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

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

Источник

Выберите популяции агентов, которые вы хотите поместить в данную среду
– Здесь вы можете выбрать популяции, которые хотите поместить в одну среду. Поставьте флажок напротив имен этих популяций.

Типы пространства
– Группа кнопок, позволяющая задавать тип пространства, в котором будут обитать агенты:

Непрерывное

Непрерывное пространство. Размерность пространства задается свойствами
Ширина
и
Высота. В непрерывном пространстве есть возможность изменять местоположение агента и получать информацию о его текущем местоположении,
перемещать
агента с заданной скоростью из одного места в другое, выполнять действия по его прибытии в место назначения, рисовать анимацию (статического или движущегося) агента, устанавливать соединения согласно выбранному шаблону расположения агентов, и многие
другие возможности. Местоположение агента в двумерном непрерывном пространстве задается двумя координатами (x,y) типа
double.
Дискретное

Дискретное пространство. Двумерное дискретное пространство представляет собой прямоугольный массив ячеек, полностью или частично занятых агентами. В одной ячейке может находиться не больше одного агента. Поддержка
этого типа пространства в AnyLogic включает в себя возможности по распределению агентов по ячейкам, их перемещению в соседние или любые другие ячейки, определению того, какие агенты являются соседями (согласно выбранной
модели соседства), нахождению свободных ячеек и т.д.
ГИС

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

Карта ГИС
– [Отображается, если выбрано
ГИС пространство] Имя карты ГИС, задающей географическое пространство среды.

Ширина
– [Доступно, если выбрано
Непрерывное
или
Дискретное
пространство] Горизонтальная размерность области, визуально представляющей пространство на презентации (в пикселах). В дискретном пространстве ширина ячейки высчитывается путем деления заданной
Ширины
на число
Столбцов
пространства.

Высота
– [Доступно, если выбрано
Непрерывное
или
Дискретное
пространство] Вертикальная размерность области, визуально представляющей пространство на презентации (в пикселах). В дискретном пространстве высота ячейки высчитывается путем деления заданной
Высоты
на число
Строк
пространства.

Z-Высота
– [Доступно, если выбрано
Непрерывное
пространство] Высота по оси Z.

Столбцы
– [Доступно, если выбрано
Дискретное
пространство] Количество столбцов в
дискретном пространстве.

Строки
– [Доступно, если выбрано
Дискретное
пространство] Количество строк в
дискретном пространстве.

Тип соседства
– [Доступно, если выбрано
Дискретное
пространство] Задает модель соседства, определяющую, какие именно агенты будут считаться соседями агента в дискретном пространстве. Есть две модели соседства:

Мурово (8 соседей)
– Соседями считаются агенты, располагающиеся в 8 соседних ячейках (к северу (Agent.NORTH), югу (Agent.SOUTH), востоку (Agent.EAST), западу (Agent.WEST), северо-востоку (Agent.NORTHEAST), северо-западу (Agent.NORTHWEST), юго-востоку (Agent.SOUTHEAST) и юго-западу (Agent.SOUTHWEST) от данной).
Евклидово (4 соседа)
– Соседями считаются агенты, располагающиеся в 4 соседних ячейках (к северу (Agent.NORTH), югу (Agent.SOUTH), востоку (Agent.EAST) и западу (Agent.WEST) от данной).

Тип расположения
– [Доступно, если выбрано
Непрерывное
или
Дискретное
пространство] Задает тип расположения агентов (то, как агенты будут изначально расположены в пространстве).
Если вы хотите, чтобы агенты были расставлены по своим местам в соответствии с выбранным типом их расположения прямо при запуске модели, то установите флажок
Применить при запуске
справа.
AnyLogic поддерживает следующие стандартные типы расположения агентов:

Задается пользователем
– при выборе этой опции пользователь должен будет сам расположить агентов в пространстве, например, в
Действии при запуске
агента верхнего уровня эксперимента.
Случайное
– агенты случайно и равномерно распределяются в пределах размерностей пространства.
Упорядоченное
– агенты упорядоченно распределяются в пределах размерностей пространства.
Кольцо
– агенты равномерно распределяются по кольцу, диаметр которого меньше самой маленькой размерности пространства.
Пружинящая масса
– агенты располагаются аналогично системе с пружинящими массами, где агенты представляют собой массы, а их соединения – пружины. Этот тип зависит от выбранного типа
сети.

Тип сети
– [Доступно, если выбрано
Непрерывное
или
Дискретное
пространство] Тип сети, определяющий, между какими агентами будут устанавливаться связи. Ни один тип сети не требует того, чтобы агенты имели только те связи, которые были установлены данным типом сети. Вы можете самостоятельно установить любое
количество дополнительных связей между агентами. Если вы хотите, чтобы сеть создавалась прямо при запуске модели, то установите флажок
Применить при запуске
справа.
AnyLogic поддерживает следующие стандартные типы сетей агентов:

Задается пользователем
– при выборе этой опции пользователь должен будет сам установить связи между агентами, например, в
Действии при запуске
агента верхнего уровня эксперимента.
Случайное
– агенты соединяются случайно, у каждого агента устанавливается заданное количество связей.
Согласно расстоянию
– друг с другом соединяются те агенты, расстояние между которыми не больше заданного радиуса соединения (только в непрерывном пространстве).
Решеточно упорядоч. кольцо
– связи агентов образуют кольцо, в котором каждый агент соединяется с заданным количеством ближайших агентов.
Малый мир
– представляет собой решеточно упорядоченное кольцо, где некоторые связи были разорваны и установлены с удаленными агентами.
Безразмерная
– некоторые агенты являются “хабами” (или концентраторами) с множествами соединений, а некоторые – “отшельниками” с небольшим числом соединений. Подход описан в научной статье
Barabasi, A. L. and R. Albert. 1999. Emergence of scaling in random networks. Science 286(5439): 509-512. Детальное описание подхода вы можете найти в
википедии.

Кол-во связей у агента
– [Доступно, если
Тип сети:
Случайное,
Малый мир
или
Решеточно упорядоченное кольцо] Среднее (или точное) количество связей у агента.

Радиус соединения
– [Доступно, если
Тип сети:
Согласно расстоянию] Задает радиус области соединения для агента. Агент будет соединен со всеми агентами, которые будут располагаться от данного агента на расстоянии, не превосходящим заданный радиус.

Доля соседей
– [Доступно, если
Тип сети:
Малый мир] Параметр типа сети
Малый мир.

M
– [Доступно, если
Тип сети:
Безразмерная] Задает оба параметра типа сети
Безразмерная: M и M0
(начальное количество концентраторов (“хабов”)). Детальное описание подхода и обоих параметров вы можете найти в
википедии.

Выполнять шаги
– Если опция выбрана, то агентное моделирование будет синхронным.
Синхронное моделирование
подразумевает выполнение дискретных временных шагов. При выполнении каждого шага агенты (а возможно, и среда) синхронно выполняют свои действия.
Добавляя такую синхронизацию, вы не ограничиваете динамику вашей модели только лишь дискретными временными шагами. Ваши агенты, так же, как и другие объекты, могут планировать другие события, выполнять переходы диаграмм состояний, запускать другие
процессы – и все это параллельно выполнению заданных шагов синхронизации.Вы можете настроить длительность шага в поле
Длительность шага. Действия среды задаются с помощью расположенных ниже свойств
Действие перед выполнением шага
и
Действие после выполнения шага.

Длительность шага
– [Доступно, если выбрана опция
Выполнять шаги] Здесь пользователь может задать длительность дискретного шага для синхронного агентного моделирования (по умолчанию длительность равна 1 единице модельного времени).

Перед выполнением шага
– [Доступно, если выбрана опция
Выполнять шаги] Код, выполняемый перед тем, как все агенты выполнят свои шаги.

Действие после выполнения шага
– [Доступно, если выбрана опция
Выполнять шаги] Код, выполняемый после того, как все агенты выполнят свои шаги.

Расширяет тип агента
– Вы можете унаследовать один тип агента от другого. Это дает вам возможность вынести какую-то общую для нескольких агентов функциональность в один тип агента (назовем его базовым типом). Эта функциональность будет доступна всем агентам, расширяющим
этот базовый тип.

Вести журнал в базе данных
– Если опция выбрана, все данные об агентах этого типа (значения их параметров, статистика движения, время, проведенное в различных состояниях, и т.д.) будут сохраняться в
журнале выполнения модели
(если в свойствах
базы данных
выбрана опция вести журналы).

Создать область просмотра в начале координат
– Выберите эту опцию, если хотите создать область просмотра в начале координат.

Создавать наборы данных для динамических переменных
– Если опция выбрана, то AnyLogic создаст наборы данных для динамических переменных (накопителей,
потоков
или
динамических
переменных), содержащихся в данном типе агента. Ниже вы можете задать время начала сбора данных:
Время первого обновления (абсолютное), если хотите
использовать модельное время, или задать
Дату обновления
(для этого выберите режим
Использовать календарные даты). В каждый набор данных будет добавлено определенное число значений, собранное с заданной периодичностью.

Период
– [Доступно, если выбрана опция
Создавать наборы данных для динамических переменных] Период добавления текущих значений динамических переменных в соответствующие наборы данных.

Ограничить количество хранимых значений первыми … значениями
– [Доступно, если выбрана опция
Создавать наборы данных для динамических переменных] Количество значений, которое будет храниться в автоматически созданном для динамической переменной наборе данных.

Источник