Некоторые аспекты построения агентных
систем Одной из важных задач, стоящих перед разработчиками программного
обеспечения, является автоматизация процесса обращения информации. Как
это показал Глушко, в свое время компьютер помог преодолеть человечеству
информационный кризис, связанный с возрастающими объемами информации.
Однако объемы хранимой и обрабатываемой информации продолжают расти, в
связи с чем ставится вопрос о том, чтобы передать некоторые функции обработки
этой информации интеллектуальным системам. При этом подобные системы должны
самостоятельно принимать информацию, Изначально, подобными вопросами занимались системы поддержки
принятия решений. Данные системы разрабатываются в двух направлениях.
Первое состоит в предварительной обработке потока информации, выявлении
зависимостей в этом потоке, обобщении. В результате работы такой системы
пользователю выдается не вся информация, а только та, которая его интересует,
либо весь поток обобщенной информации. Поступившая информация накапливается
в базах и при необходимости можно получить доступ и к ней. Второе направление
состоит в применении методов Однако зачастую нам необходимо, чтобы система могла самостоятельно влиять на внешний мир. Так, например, система поддержки принятия решений может оказывать помощь в управлении некоторым объектом. Однако если некоторые параметры объекта управления вошли в критическую зону, а оператор не исправляет ситуацию (отвлекся или не имеет возможности), то система должна иметь возможность вмешаться в работу управляемого объекта. Итак, задачей, выполняемой подобными системами, должно быть автоматическое реагирование на входную информацию. Это может быть и удовлетворение заявок, поступающих на склад, обработка почты в сети и многое другое. Под агентом будем понимать самостоятельную программную систему, имеющую возможность принимать воздействие из внешнего мира, определять свою реакцию на это воздействие и осуществлять эту реакцию. Под внешним миром здесь понимается среда, окружающая агента. Перечисленные и многие другие задачи агенты могут выполнять без использования методов искусственного интеллекта. Однако ряд задач просто не может быть решен без них. Под интеллектуальным агентом будем понимать агента, который обладает рядом знаний о себе и окружающем мире и поведение которого определяется этими знаниями. Следует заметить, что понятие агента является некоторым парафразом определения объекта. Действительно, если взять общепринятую формулу "класс = данные + методы (функции для работы с ними)" [1], то можно сказать, что агент - это объект, обладающий функциями для приема информации из внешнего мира, воздействия на внешний мир и принятия решения о роде воздействия. Принятие решения может происходить рефлективно (то есть будет строго задано) и описываться программой. Понятие интеллектуального агента является развитием методов
ООП. Упрощая, можно сказать, что "интеллектуальный агент = данные
+ методы + знания", причем методы здесь - это не только функции работы
с данными, но и функции работы со знаниями и возможные методы воздействия
на окружающую среду агентом. С сожалением можно отметить, что многие разработчики
утверждают, что используют в своих продуктах технологии интеллектуальных
агентов, тогда как основная их отличительная черта - Следует заметить, что в качестве источника информации агент может использовать информацию, полученную от другого агента. Системы, в которых предусмотрено взаимодействие агентов, называются многоагентными. В работе [2] приведены следующие свойства агентов, не вступающие в противоречия с данными определениями. Автономность - агент функционирует самостоятельно. Способность общения - агент взаимодействует с другими агентами. Реактивность - агенты способны воспринимать окружающую среду и адекватно реагировать на ее изменения. Активность - агент обладает целенаправленным поведением. Итак, наличие искусственного интеллекта означает, что агент должен некоторым образом хранить свои знания. За историю искусственного интеллекта было разработано множество методов представления знаний. Однако наиболее распространенными на данный момент являются продукции (правила вида "если ... то ...") и нейронные сети. Первые завоевали свой успех благодаря простоте понимания, формализации и реализации. Вторые - тем, что нет необходимости формализовать знания и заносить их в базу, а достаточно обучить сеть. И те и другие дают вполне неплохие результаты. Из готовых продуктов к реализованным на продукциях (точнее
на их модификации) можно назвать проект Guardians Стэндфордского университета,
который отслеживает состояние пациента [3]. Следует заметить, что проект
был начат в 1987 году и на данный момент база знаний программы содержит
около 1000 правил. По заявлению разработчиков система позволяет давать
100%-но верный диагноз для занесенных в базу случаев и может применяться
не только в медицине, но и в других областях. Важным аспектом, говорящим в пользу интеллектуальных
агентов является то, что мы имеем возможность реализовать полнофункциональную
интеллектуальную самостоятельную систему не прибегая (полностью или почти
полностью) к аппаратной реализации. Так, например, виртуальный системный
администратор, реализованный по агентной технологии, может реально следить
за безопасностью работы сети (сохранностью информации, сбоях в сети и
прочее). При этом все его действия не выйдут за рамки В свое время считалось, что подобное возможно только
при создании роботов. Еще одним важным свойством является то, что мы можем
создать некоторую При построении агентных систем следует помнить о следующих трудностях. Работа агентов происходит в реальном времени. Предобработка информации задерживает ее поступление в блок, отвечающий за планирование действий. Кроме того, системе может потребоваться и время на реакцию. В случае ограниченного времени может создаться ситуация, когда время предобработки входной информации, время на принятие решения и время реакции превысит допустимый предел. Не разбирая ситуацию, когда время предобработки входной информации и время реакции меньше отведенного (в этом случае система вряд ли сможет что-либо сделать) можно сказать, что время на принятие решения может быть ограничено и, следовательно, несмотря на развитие компьютерной техники искусственный интеллект все еще нуждается в быстрых методах принятия решений. Исключением будут ситуации, когда время реакции гарантированно много больше, чем время принятия решения (например при отправке электронной почты по модему), либо если ведется моделирование. Однако в последнем случае моделироваться может система, время на принятие решения в которой будет критично. При работе в реальном времени критичным является выбор операционной системы. Легко представить себе ситуацию, когда Windows вместо передачи некоторого сообщения начнет работать со своим своп-файлом или чистить мусор. Обе эти операции не могут прерываться, так что если речь идет о работе системы контроля за состоянием пациента результаты могут быть катастрофическими. Система получит сигналы с опозданием и либо не успеет среагировать, либо среагирует с опозданием и, как следствие, неверно. Обе эти проблемы являются общими для всех систем, работающих в режиме реального времени. Следующей проблемой является формализация знаний. Правила, разработанные в работе [3] (около 1000) составлялись в течении нескольких лет. Следует заметить, что многие работы были забыты не столько из-за плохих методов работы со знаниями, сколько из-за их плохой проработки. Итак, агентная технология, по мнению многих специалистов
в области Список литературы Рассохин Д. От Си к Си++/ М., "Эдель", 1993 г. 128 с. Смирнов А.В., Шерематов Л.Б. Многоагентная технология проектирования сложных систем // Автоматизация проектирования, № 3, 1998 г. Larson J.E., Hayes-Roth B. Guardians: An Intelligent
Autonomous Agent for CyberLife Technical Note 1 / Взято с адреса: http://www.cyberlife.co.uk/cyberlife/archves/papers/papers_tech1.html Это уже не игра! // Итоги, 9 июня 1998 г. с. 47. Заборовский В.С. Интеллектуальные технологии в управлении информационно-сетевой инфраструктурой // Взято с адреса: http://www.neva.ru/frst.page/conf/zvs/zv1.html Etzioni O. Intelligence without Robots (A Reply to Brooks)
// AI Magazine, vol. Каляев И. и др. Многопроцессорные распределенные
системы управления
|
|