Министерство общего и профессионального образования РФ Ульяновский государственный технический университет кафедра: "Вычислительная техника" дисциплина: "Инженерия знаний" РЕФЕРАТ Тема: "Программные агенты и мультиагентные системы" Выполнил: ст. гр. ЭВМмд-52 Долгов А. А. Ульяновск 2001 Введение Программные средства, базирующиеся на технологии и методах искусственного интеллекта, получили значительное распространение в мире. Их важность, и, в первую очередь, экспертных систем и нейронных сетей, состоит в том, что данные технологии существенно расширяют круг практически значимых задач, которые можно решать на компьютерах, и их решение приносит значительный экономический эффект. В то же время, технология экспертных систем является важнейшим средством в решении глобальных проблем традиционного программирования: длительность и, следовательно, высокая стоимость разработки приложений; высокая стоимость сопровождения сложных систем; повторная используемость программ и т.п. Кроме того, объединение технологий экспертных систем и нейронных сетей с технологией традиционного программирования добавляет новые качества к коммерческим продуктам за счет обеспечения динамической модификации приложений пользователем, а не программистом, большей "прозрачности" приложения. Коммерческий рынок продуктов искусственного интеллекта в мире в 1993 году оценивался примерно в 0,9 млрд. долларов. Выделяют несколько основных направлений этого рынка: экспертные системы; теперь их часто обозначают еще одним термином - "системы, основанные на знаниях"; нейронные сети и "размытые" (fuzzy) логики; естественно-языковые системы. Одно из наиболее популярных направлений последних пяти лет связано с понятием автономных агентов. Их нельзя рассматривать как "подпрограммы", - это скорее прислуга, даже компаньон, поскольку одной из важнейших их отличительных черт является автономность, независимость от пользователя. Автономные агенты позволяют существенно повысить производительность работы при решении тех задач, в которых на человека возлагается основная нагрузка по координации различных действий. 2 Основные понятия Используя понятие «агент», каждый автор или сообщество определяют своего агента с конкретным набором свойств в зависимости от целей разработки, решаемых задач, техники реализации и т. п. Критериев. Как следствие, в рамках данного направления появилось множество типов агентов, например: автономные агенты, мобильные агенты, персональные ассистенты, интеллектуальные агенты, социальные агенты и т.д., а вместо единственного определения базового агента – множество определений произвольных типов. Учитывая вышесказанное, понятие агента целесообразно трактовать как метаимя или класс, который включает множество подклассов. Далее будем придерживаться следующей концепции по этому поводу: Агент – это аппаратная ил программная сущность, способная действовать в интересах достижения целей, поставленных перед ним владельцем и/или пользователем. Таким образом, программные агенты рассматриваются как автономные компоненты, действующие от лица пользователя. Иногда агентов определяют через свойства, которыми они должны обладать. Учитывая то, что нас, в первую очередь, интересуют интеллектуальные агенты, приведем типовой список свойств, которыми такие агенты должны обладать: автономность – способность функционировать без вмешательства со стороны своего владельца и осуществлять контроль внутреннего состояния своих действий; социальное поведение – возможность взаимодействия и коммуникации с другими агентами; 3 реактивность – адекватное восприятие среды и соответствующие реакции на ее изменения; активность – способность генерировать цели и действовать рациональным образом для их достижения; базовые знания – знания агента о себе, окружающей среде, включая других агентов, которые не меняются в рамках жизненного цикла агента; убеждения – переменная часть базовых знаний, которые могут меняться во времени, хотя агент может об этом не знать и продолжать использовать для своих целей; цели – совокупность состояний, на достижение которых направлено текущее поведение агента; желания – состояния и/или ситуации, достижение которых для агента важно; обязательства – задачи, которые берет на себя агент по просьбе и/или поручению других агентов; намерения – то, что агент должен делать в силу своих обязательств и/или желаний. Иногда в этот же перечень добавляются и такие свойства, как рациональность, правдивость, благожелательность, а также мобильность, хотя последнее характерно не только для интеллектуальных агентов. В зависимости от концепции, выбранной для организации МАС (мультиагентная система), обычно выделяются три базовых класса архитектур: архитектуры, которые базируются на принципах и методах работы со знаниями; 4 архитектуры, основанные на поведенческих моделях типа «стимул – реакция»; гибридные архитектуры. В первом случае мы имеем дело с «разумными» агентами и архитектурами, имеющими в качестве основы проектирования и реализации модели, методы и средства искусственного интеллекта. Первоначально идея интеллектуальных агентов связывалась практически полностью с классической логической парадигмой ИИ. Однако по мере развития исследований в этой области стало ясно, что такие «ментальные» свойства агентов, как, например, убеждения, желания, намерения, обязательства по отношению к другим агентам и т. п., невыразимы в терминах исчисления предикатов первого порядка. Поэтому для представления знаний агентов в рамках данной архитектуры были использованы специальные расширения соответствующих логических исчислений, а также разработаны новые архитектуры. Принципы реактивной архитектуры возникли как альтернативный подход к архитектуре интеллектуальных агентов. Идея реактивных агентов впервые возникла в работах Брукса, выдвинувшего тезис, что интеллектуальное поведение может быть реализовано без символьного представления знаний, принятого в классическом ИИ. Реактивными называются агенты и архитектуры, где нет эксплицитно представленной модели мира, а функционирование отдельных агентов и всей системы осуществляется по правилам типа ситуация – действие. При этом под ситуацией понимается потенциально сложная комбинация внутренних и внешних состояний. Данный подход ведет свое начало с работ по планированию поведения роботов, которые активно велись в ИИ в 70-х годах. Простым примером реализации реактивных архитектур в этом контексте можно считать системы, 5 где реакции агентов на внешние события генерируются соответствующими конечными автоматами. Многие исследователи считают, что ни первый, ни второй подходы не дают оптимального результата при разработке агентов и МАС. Поэтому попытки их объединения предпринимаются постоянно и уже привели к появлению разнообразных гибридных архитектур. По сути дела, именно гибридные архитектуры и используются в настоящее время во всех, скольконибудь значимых проектах и системах. 6 Проектирование и реализация агентов и мультиагентных систем. Общие вопросы проектирования агентов и мультиагентных систем Идеи программных агентов вообще и интеллектуальных агентов, в частности, привлекательны, так как позволяют людям делегировать им свои полномочия по решению сложных задач. Однако разработка МАС и действительно интеллектуальных агентов требует специальных знаний и является сложной ресурсоемкой задачей. Ведь программные агенты – новый класс систем программного обеспечения, которое действует от лица пользователя. Они являются мощной абстракцией для «визуализации» и структурирования сложного. Но если процедуры, функции, методы и классы – известные абстракции, которые разработчики ПО используют ежедневно, то программные агенты – это принципиально новая парадигма, неизвестная большинству из них даже сегодня. Вместе с тем, развитие и внедрение программных агентов было бы, повидимому, невозможно без предыдущего опыта разработки и практического освоения концепции открытых систем, которые характеризуются свойствами: расширяемости/масштабируемости (возможность изменения набора составляющих системы); мобильности/переносимости (простота переноса программной системы на новые программно-аппаратные платформы); интероперабельности (способность к взаимодействию с другими системами); дружелюбности к пользователю/легкой управляемости. Одним из результатов внедрения концепции открытых систем в практику сталь распространение архитектуры «клиент-сервер». 7 Средства разработки и исполнения распределенных приложений, которыми, как правило, являются МАС, опираются на статический подход (позволяют передавать только данные приложений) или динамический подход (обеспечивают возможности передачи исполняемого кода). При динамическом подходе МАС- приложения используют парадигму мобильных агентов. Мобильные агенты – это программы, которые могут перемещаться по сети. Они покидают клиентский компьютер и перемещаются на удаленный сервер для выполнения своих действий, после чего возвращаются обратно. С точки ориентированного зрения принципов программирования распределенного (ООП) объектно- необходимость передачи методов может быть существенно сокращена в том случае, если может быть обеспечен удаленный доступ к общим методам посредством передачи ссылок на удаленные объекты, данных экземпляров этих объектов и их состояний. Однако в дополнение к концепции ООП, каждый агент имеет возможность создания копий самого себя с полной или ограниченной функциональностью, обеспечивая возможность настройки на среду путем исключения неэффективных методов и замены их новыми. Традиционная для ООП схема класс/объект нарушается, т.к. агент имеет возможность постоянного изменения сценария поведения без его изменения в родительском классе. Многозначное наследование позволяет создавать экземпляры агентов, смешивая сценарии поведения, схемы наследования и атрибуты, определенные в родительских классах. Часть исследователей считают, что мобильные агенты обеспечивают более прогрессивный метод работы в сетевых приложениях. Другие авторы отмечают, что мобильные агенты привносят опасность с точки зрения обеспечения секретности информации и загруженности сети. 8 Понятно, что одни и те же функциональные возможности в большинстве случаев могут быть реализованы как посредством мобильных, так и статических агентов. Использование мобильных агентов может быть целесообразным, если они: уменьшают время и стоимость передачи данных (например, при больших объемах данных вместо передачи всей необработанной информации по сети на хост-источник посылается агент, который выбирает только необходимую информацию и передает ее пользователю); позволяет преодолеть ограничение локальных ресурсов (например, если возможности процессора и объем оперативной памяти клиентского компьютера малы, то, может быть, целесообразнее использование мобильных агентов, выполняющих вычисления на сервере); облегчает координацию (например, запросы к удаленным серверам выполняются мобильными агентами как отдельные задачи, а потому, не нуждаются в координации); позволяют выполнять асинхронные вычисления (например, запустив агента, можно переключится на другое приложение и даже отсоединиться от сети, а результат будет доставлен агентом адресату после выполнения задания). Мобильные агенты являются перспективными для МАС, но в настоящее время нет единых стандартов их разработки и все еще остается нерешенным ряд проблем, таких как легальные способы перемещения агентов по сети, верификация агентов (в частности, защита от передаваемых по сети вирусов), соблюдение агентами прав частной собственности и сохранение конфиденциальности информации, которой они обладают, 9 перенаселение сети агентами, а также совместимость кода агента и программно-аппаратных средств сетевой машины, где он исполняется. В настоящее время наиболее известными технологиями реализации статических и динамических распределенных приложений являются программирование сокетов, вызов удаленных процедур – RPC, DCOM, Java RMI и CORBA. Вместе с тем с точки зрения разработки и реализации МАС наиболее важными, по-видимому, являются последние три - DCOM, Java RMI и CORBA. Технологии Java RMI и CORBA являются, по-видимому, на сегодняшний день самыми гибкими и эффективными средствами реализации распределенных приложений. Эти технологии очень близки по своим характеристикам. интерфейс IDL, Основным преимуществом унифицирующий средства CORBA коммуникации является между приложениями и инетероперабельность с другими приложениями. С другой стороны, Java RKI является более гибким и мощным средством создания распределенных приложений на платформе Java, включая возможность реализации мобильных приложений. В настоящее время еще не вполне ясно, какая из этих концепций «победит» в борьбе за мультиагентные системы. Вмешиваться в этот процесс может и модель DCOM. Но анализ существующих реализаций МАС показывает, что пока более распространенным здесь является подход Java RMI. Все программные средства для разработки и реализации МАС на современном этапе можно разделить на два больших класса: МАСбиблиотеки и МАС- среды. 10 Многоагентная технология проектирования сложных систем Мультиагентные системы находят применения в самых разных областях миизни. В данном реферате будет рассмотрено применение агентов при проектировании сложных систем. Агентно-ориентированная организация процесса проектирования Следующие утверждения, положены в основу многоуровневой организации проектирования: Утверждение 1. В проектировании выделяется три уровня: спецификация, концептуальное (логический и структурно-параметрический синтез) и параметрическое проектирование. Утверждение 2. Многоуровневый процесс проектирования развивается сверху вниз, т.е. от синтеза общих проектных требований на первом уровне к проектным решениям требуемой степени детализации на следующих уровнях. При этом решения, принятые на (k - 1) уровне проектирования, есть дополнительные исходные данные для k-уровня. Утверждение 3. На всех уровнях кроме последнего критерии выбора Ei эффективных вариантов являются эвристическими и их значения последовательно уточняются. Утверждение 4. На каждом уровне проектирования (кроме последнего) выбирается множество удовлетворения эффективных ограничений) вариантов, (рациональных называемых в смысле частичными и развиваемых в последующем. 11 Утверждение 5. Проектирование на каждом уровне распадается на комплекс взаимосвязанных проектных задач (операций), каждой из которых можно сопоставить аспект проектирования. Разделяя задачу проектирования на множество локальных задач, каждая из которых выполняется агентом (экспертом или программной компонентой), ответственным за ее решение, в качестве базовой организации процесса проектирования примем схему, в которой окончательное решение задачи синтезируется из локальных решений с использованием координации (управления) через данные, передаваемые между агентами. В данном случае не существенна конкретная реализация агента, рассматриваемая схема будет справедлива как в случае использования проектировщиком традиционных компонент САПР, так и в случае решения отдельных задач автономными интеллектуальными компонентами. Схема имеет вид: Действие 1. Знания предметной области и знания об ограничениях (требования пользователя, новые артефакты) передаются каждому агенту. Действие 2. Каждый агент решает локальную задачу оптимизации на основе общего информационного пространства. Действие 3. Локально оптимальные решения передаются агентуменеджеру проекта для их согласования. Действие 4. После цикла последовательного сбора результатов, критический результат готовится к рассылке по заинтересованным агентам для анализа. Действие 5. Весь процесс повторяется до достижения глобально согласованного решения. Что дает рассматриваемая технология? Она позволяет: строить распределенные «решатели» для сложной задачи; динамически менять архитектуру САПР в зависимости от конкретной задачи; взаимодействовать агентам, работающим над различными аспектами проектирования, на уровне 12 знаний - разделять и обмениваться информацией в процессе проектирования вне зависимости от внутренних форматов ее представления. Основные концепции агента уже были рассмотрены в разделе «Основные понятия». В контексте данного раздела под агентом будем понимать механизм инкапсуляции и обмена распределенными знаниями и функциями. Каждый агент - это процесс, обладающий определенной частью знаний об объекте проектирования и возможностью обмениваться этими знаниями с остальными агентами. В зависимости от типа, агент может поддерживать и интерфейс с пользователем. Под многоагентной системой будем понимать многокомпонентную систему, состоящую из агентов со специфицированным интерфейсом. Многоагентные системы и их место в управлении и разделении знаний в САПР Какими же свойствами должны обладать агенты, чтобы обеспечить надежное взаимодействие в рамках многоагентной системы? Еще буквально несколько лет назад для большинства специалистов в области ИИ было очевидно, что началась эра совместного (коллективного) использования знаний. Онтологии, разработанные группами специалистов с общими интересами в области инжиниринга и других конкретных областях знаний, должны были обеспечить развитие САПР, в которых точно представленные знания гарантируют надежное взаимодействие как проектировщиков, так и программных компонент САПР. Однако оказалось, что предсказание - это сложное дело. Какие же выводы можно сделать на сегодняшний день? Во-первых, усилия по разработке методов разделения знаний не оказали пока существенного 13 влияния на разработку приложений, как на то можно было рассчитывать. Это отнюдь не значит, что исследования приостановлены, наоборот, интерес к проблеме повторного использования знаний на основе онтологий продолжает расти. Однако у этого подхода в последние годы появился мощный конкурент в виде WWW-технологии. Теперь уже не извлечение знаний (knowledge acquisition) является "узким местом" в задачах разработки систем, основанных на знаниях (СОЗ), проблемой становится выделение семантики знаний, сконцентрированных в сетях предприятий (Intranet) и глобальных сетях (Internet) и свободно доступных посредством WWW. Показательным в этом отношении является переход отдельных ученых с проблем разработки онтологий на разработку методов автоматической структуризации и извлечения информации, включая задачи "data mining". Во-вторых, как уже отмечалось, принципиально изменилась стандартная архитектура СОЗ. Вместо больших САПР с простыми средствами коммуникации между компонентами, все большее развитие получают системы, состоящие из простых деятельность которых координируется стандартных сложным компонент, образом. То, что компоненты САПР должны быть гетерогенными, распределенными и интерактивными, сегодня принимается как данное. При этом унифицированный подход к разработке сред, в которых им предстоит функционировать, должен обеспечить не только их эффективную координацию сегодня, но и гарантировать возможность их модернизации, дополнения и замены в будущем. И, наконец, третий аспект проблемы. Прогресс в разработке стандартов совместимости компонент в системах распределенного объектного программирования (Distributed Object Computing) ничуть не устраняет необходимости их взаимодействия на уровне знаний. Стандартизация коммуникационных протоколов (HTTP, TCP/IP, POP), распределенных 14 объектов (CORBA, DCOM) и методов их интеграции (Netscape ONE, OpenDoc, ActiveX, Java Beans) обеспечивают средства создания компонент САПР со встроенными возможностями интеграции и взаимодействия. Но на сегодняшний день также очевидна и необходимость разработки методологии и стандартов на уровне знаний, позволяющих гарантировать точное представление операционной семантики компонент. Решение этих проблем лежит в интеграции преимуществ концепций агентов (программных, мобильных или интеллектуальных) и распределенного объектного программирования. В том, что касается автономных интеллектуальных агентов, хотелось бы отметить один весьма прагматический проект, который сейчас ведется под руководством профессора Генри Либермана в Media-лаборатории MIT (MIT Media Lab). Речь идет об агентах, отвечающих за автоматическое генерирование технической документации. Для решения этой задачи немало сделал в свое время академик Андрей Петрович Ершов, сформулировавший понятие деловой прозы как четко определенного подмножества естественного языка, которое может быть использовано, в частности, для синтеза технической документации (это одно из самых узких мест в любом производстве). Группа под руководством профессора Либермана исследует возможности нового подхода к решению этой проблемы, теперь уже на основе автономных агентов. 15 Литература 1. Гаврилова Т. А., Хорошевский В. Ф. Базы знаний интеллектуальных систем. – СПб.: Питер, 2000. 2. Смирнов А. В., Шереметов Л. Б. Многоагентная технология проектирования сложных систем. 3. Лекция 12: Тенденции развития систем искусственного интеллекта Курс лекций по дисциплине "Системы искусственного интеллекта" 4. Дебора де Во Распределенные агенты SRI обеспечивают гибкость 16 Оглавление Введение ______________________________________________________________ 2 Основные понятия _____________________________________________________ 3 Проектирование и реализация агентов и мультиагентных систем. Общие вопросы проектирования агентов и мультиагентных систем _______________ 7 Многоагентная технология проектирования сложных систем _____________ 11 Агентно-ориентированная организация процесса проектирования _____________ 11 Многоагентные системы и их место в управлении и разделении знаний в САПР _ 13 Литература__________________________________________________________ 16 Оглавление ___________________________________________________________ 17 17