Интеллектуальные агенты. Конкретные архитектуры интеллектуальных агентов. Языки программирования агентов., страница 2

1.2 Что такое агенты?

Очевидым способом начать этот раздел будет представить определение термина агент. Все-таки эта книга о мультиагентных системах  -  конечно мы должны определиться с тем, что же такое агент. Удивительно, но не существует специального соглашения, нет универсального определения, которое походило бы ко всем агентов, и на самом деле идут постоянные дебаты и споры на эту тему. По существу, так как основным свойством агента является автономность, все же есть небольшое соглашение по этому поводу. Часть сложности заключается в том, что различные свойства, присущие агентам, имеют различное значение в разных областях применения. Так, для некоторых приложений свойство агента к обучению на основе собственного опыты имеет наибольшее значение; для других приложений обучение не только не нужно, но и нежелательно.


Рисунок 1.1 Агент и его окружение. Агент воспринимает окружающую среду с помощью сенсоров, и вырабатывает действием в соответствии с полученной информацией. Этот процесс обычно повторяемый и непрерывный.

Не смотря ни на что, кое какое определение все же важно – с другой стороны существует опасность, что термин потеряет все свое. Определение приведенное здесь взято из [71]: Агент – это компьютерная система, которая находится в некотором окружении и способна к самостоятельным действиям в данном окружении с целью выполнения поставленных целей.

Есть несколько замечаний которые необходимо сделать по этому определению. Первое, определение ссылается на «агента», не «интеллектуального агента». Это намеренное разделение: оно обсуждается ниже более детально. Второе, данное определение ничего не говорит о типе окружающей среды, в которой находится агент. Еще раз надо напомнить о том, это имеет значение,  что агент может находиться во множестве разных окружающих условий, как мы увидим в дальнейшем. Третье, мы до сих пор не определили понятия автономность. Как действие само по себе, понятие автономности является чем-то неоднозначным, чтобы дать четкое определение. В этом заделе подразумевается, что агенты способны действовать без участия человека или других систем: они сами контролируют и собственное состояние, и собственное поведение. В главе 1.2.3 мы приведем в сравнение агентов и объектов в объектно-ориентированном программировании, и там проясним этот вопрос. В частности, мы увидим, как агенты проявляют намного более сильное чувство автономии, чем объекты.

Рисунок 1.1 дает абстрактное обобщенное представление структуры агента. На данной диаграмме мы можем видеть, что агент вырабатывает поток действий для оказания воздействия на окружающую его среду. Во многих областях достаточной сложности агент не будет иметь полный контроль над своим окружением. В лучшем случае он будет иметь частичный контроль, в рамках которого он может воздействовать на окружающую среду. С точки зрения агента, это означает, что одно и то же действие, выполненное дважды, при приблизительно идентичных обстоятельствах можем оказать разный эффект, и, в частности, оно может вообще не достигнуть желаемого эффекта. Таким образом, для всех агентов, исключая агентов действующих в самом тривиальном окружении, вы должны быть подготовлены к возможности неудачи, отказа. Можно суммировать сказанное выше следующим образом: что данные окружающие среды являются недетерминированными.

Обычно, агент имеет набор действий доступных для него. Этот набор действий характеризует способность агента изменять окружающую среду. Не все действия могут быть выполнены во всех ситуациях. Для примера, действие «поднять стол» применимо только в ситуациях, где вес стола достаточно мал, чтобы агент мог его поднять. Похожим образом действие «продать Ferrari» не будет выполнено, если нет достаточных средств. Таким образом, имеются действия предусловия, связанные с ними, которые определяют возможные ситуации, в которых они могут быть применены.