Многоагентные интеллектуальные системы реферат

Обновлено: 29.06.2024

Программные средства, базирующиеся на технологии и методах искусственного интеллекта, получили значительное распространение в мире. Их важность, и, в первую очередь, экспертных систем и нейронных сетей, состоит в том, что данные технологии существенно расширяют круг практически значимых задач, которые можно решать на компьютерах, и их решение приносит значительный экономический эффект. В то же время, технология экспертных систем является важнейшим средством в решении глобальных проблем традиционного программирования: длительность и, следовательно, высокая стоимость разработки приложений; высокая стоимость сопровождения сложных систем; повторная используемость программ и т.п. Кроме того, объединение технологий экспертных систем и нейронных сетей с технологией традиционного программирования добавляет новые качества к коммерческим продуктам за счет обеспечения динамической модификации приложений пользователем, а не программистом, большей "прозрачности" приложения.

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

экспертные системы; теперь их часто обозначают еще одним термином - "системы, основанные на знаниях";

нейронные сети и "размытые" (fuzzy) логики;

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

Основные понятия

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

Агент – это аппаратная ил программная сущность, способная действовать в интересах достижения целей, поставленных перед ним владельцем и/или пользователем.

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

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

автономность – способность функционировать без вмешательства со стороны своего владельца и осуществлять контроль внутреннего состояния своих действий;

социальное поведение – возможность взаимодействия и коммуникации с другими агентами;

реактивность – адекватное восприятие среды и соответствующие реакции на ее изменения;

активность – способность генерировать цели и действовать рациональным образом для их достижения;

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

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

цели – совокупность состояний, на достижение которых направлено текущее поведение агента;

желания – состояния и/или ситуации, достижение которых для агента важно;

обязательства – задачи, которые берет на себя агент по просьбе и/или поручению других агентов;

намерения – то, что агент должен делать в силу своих обязательств и/или желаний.

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

В зависимости от концепции, выбранной для организации МАС (мультиагентная система), обычно выделяются три базовых класса архитектур:

архитектуры, которые базируются на принципах и методах работы со знаниями;

Принципы реактивной архитектуры возникли как альтернативный подход к архитектуре интеллектуальных агентов. Идея реактивных агентов впервые возникла в работах Брукса, выдвинувшего тезис, что интеллектуальное поведение может быть реализовано без символьного представления знаний, принятого в классическом ИИ.

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

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

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

Проектирование и реализация агентов и мультиагентных систем. Общие вопросы проектирования агентов и мультиагентных систем

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

расширяемости/масштабируемости (возможность изменения набора составляющих системы);

мобильности/переносимости (простота переноса программной системы на новые программно-аппаратные платформы);

интероперабельности (способность к взаимодействию с другими системами);

дружелюбности к пользователю/легкой управляемости.

Средства разработки и исполнения распределенных приложений, которыми, как правило, являются МАС, опираются на статический подход (позволяют передавать только данные приложений) или динамический подход (обеспечивают возможности передачи исполняемого кода).

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

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

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

Понятно, что одни и те же функциональные возможности в большинстве случаев могут быть реализованы как посредством мобильных, так и статических агентов. Использование мобильных агентов может быть целесообразным, если они:

уменьшают время и стоимость передачи данных (например, при больших объемах данных вместо передачи всей необработанной информации по сети на хост-источник посылается агент, который выбирает только необходимую информацию и передает ее пользователю);

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

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

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

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

В настоящее время наиболее известными технологиями реализации статических и динамических распределенных приложений являются программирование сокетов, вызов удаленных процедур – RPC, DCOM, Java RMI и CORBA. Вместе с тем с точки зрения разработки и реализации МАС наиболее важными, по-видимому, являются последние три - DCOM, Java RMI и CORBA.

Технологии Java RMI и CORBA являются, по-видимому, на сегодняшний день самыми гибкими и эффективными средствами реализации распределенных приложений. Эти технологии очень близки по своим характеристикам. Основным преимуществом CORBA является интерфейс IDL, унифицирующий средства коммуникации между приложениями и инетероперабельность с другими приложениями. С другой стороны, Java RKI является более гибким и мощным средством создания распределенных приложений на платформе Java, включая возможность реализации мобильных приложений.

Все программные средства для разработки и реализации МАС на современном этапе можно разделить на два больших класса: МАС- библиотеки и МАС- среды.

Многоагентная технология проектирования сложных систем

Мультиагентные системы находят применения в самых разных областях миизни. В данном реферате будет рассмотрено применение агентов при проектировании сложных систем.

Агентно-ориентированная организация процесса проектирования

Следующие утверждения, положены в основу многоуровневой организации проектирования:

Утверждение 1. В проектировании выделяется три уровня: спецификация, концептуальное (логический и структурно-параметрический синтез) и параметрическое проектирование.

Утверждение 2. Многоуровневый процесс проектирования развивается сверху вниз, т.е. от синтеза общих проектных требований на первом уровне к проектным решениям требуемой степени детализации на следующих уровнях. При этом решения, принятые на (k - 1) уровне проектирования, есть дополнительные исходные данные для k-уровня.

Утверждение 3. На всех уровнях кроме последнего критерии выбора E i эффективных вариантов являются эвристическими и их значения последовательно уточняются.

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

Утверждение 5. Проектирование на каждом уровне распадается на комплекс взаимосвязанных проектных задач (операций), каждой из которых можно сопоставить аспект проектирования.

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

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

Действие 2. Каждый агент решает локальную задачу оптимизации на основе общего информационного пространства.

Действие 3. Локально оптимальные решения передаются агенту-менеджеру проекта для их согласования.

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

Действие 5. Весь процесс повторяется до достижения глобально согласованного решения.

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

Многоагентные системы и их место в управлении и разделении знаний в САПР

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

Однако оказалось, что предсказание - это сложное дело. Какие же выводы можно сделать на сегодняшний день? Во-первых, усилия по разработке методов разделения знаний не оказали пока существенного влияния на разработку приложений, как на то можно было рассчитывать. Это отнюдь не значит, что исследования приостановлены, наоборот, интерес к проблеме повторного использования знаний на основе онтологий продолжает расти. Однако у этого подхода в последние годы появился мощный конкурент в виде WWW-технологии. Теперь уже не извлечение знаний (knowledge acquisition) является "узким местом" в задачах разработки систем, основанных на знаниях (СОЗ), проблемой становится выделение семантики знаний, сконцентрированных в сетях предприятий (Intranet) и глобальных сетях (Internet) и свободно доступных посредством WWW. Показательным в этом отношении является переход отдельных ученых с проблем разработки онтологий на разработку методов автоматической структуризации и извлечения информации, включая задачи "data mining".

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

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

В том, что касается автономных интеллектуальных агентов, хотелось бы отметить один весьма прагматический проект, который сейчас ведется под руководством профессора Генри Либермана в Media-лаборатории MIT (MIT Media Lab). Речь идет об агентах, отвечающих за автоматическое генерирование технической документации. Для решения этой задачи немало сделал в свое время академик Андрей Петрович Ершов, сформулировавший понятие деловой прозы как четко определенного подмножества естественного языка, которое может быть использовано, в частности, для синтеза технической документации (это одно из самых узких мест в любом производстве). Группа под руководством профессора Либермана исследует возможности нового подхода к решению этой проблемы, теперь уже на основе автономных агентов.

Был весьма удивлен не найдя ни слова про мультиагентные системы (МАС), поэтому решил восполнить этот пробел.

Разберём сначала основные понятия, затем посмотрим немного в сторону практики, и на последок ненмого полезных ссылок для заинтересовавшихся.

Основываясь на собственном опыте, хочу начать с примера.

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

А теперь давайте представим себе, что мы разбили первоначальное изображение на несколько частей и для каждой части запустили наш алгоритм. Что нам это дало? Во-первых, с учетом параллельной работы у нас уменьшается время обработки, во-вторых, мы можем упростить структуру самого алгоритма. Уже не плохо. Что ещё? Ещё это требует от нас введение некоторой сущности, которая будет выступать в роли менеджера – т.е. собирать данные от различных процессов распознавания, а так же создавать новые процессы. Данный подход является мультиагентным.

Теперь разберемся с терминологией. Базовое понятие, лежащее в основе мультиагентной теории является понятие агента – в общем смысле это любой объект способный действовать и воспринимать. В соответствии с этим, каждому агенты присущи наборы сенсоров – то, с помощью чего агент воспринимает и актуаторов – то, чем агент воздействует. На что же может воздействовать агент? На других агентов и внешнюю среду – все что, окружает агента.

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

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

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

Где можно применять мультиагентные системы.

  • робототехника;
  • логистика;
  • исследование социальных и биологических систем;
  • поиск информации;

Теперь отвлечемся от теории и обратимся к практическому аспекту, а именно разработке МАС.

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

Информация в данной работе была взята из сайтов, указанных в списке литературы, и переведена с английского на русский язык.

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

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

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

Процесс самоорганизации в мультиагентных системах – внутренняя упорядоченность, согласованность, взаимодействие более или менее дифференцированных и автономных агентов агентной системы, обусловленной ее строением.

Мощное и эффективное развитие компаний в современных условиях предполагает высокую степень специализации и кооперации работ.

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

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

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

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

Разработке подхода к созданию систем рассматриваемого класса и посвящена настоящая работа.[1]

Определение агента

Общепринятого определения “агента” еще не существует. Рассматриваемый в какой-либо системе мультиагент – это аппаратная или программная сущность, способная действовать в интересах достижения целей, поставленных перед ним владельцем и/или пользователем. Таким образом, в рамках мультиагентных систем мы рассматриваем агенты, как автономные компоненты, действующие по определенному сценарию. Классифицируются агенты на четыре основных типа: простые, умные (smart), интеллектуальные(intelligent) и действительно интеллектуальные(truly intelligent).

Интерес для построения МАС в задачах инженерии знаний представляют в большей степени интеллектуальные и действительно интеллектуальные агенты, которые отличаются тем, что поддерживают помимо автономного выполнения, взаимодействия с другими агентами и слежения за окружением – способность использовать абстракции, адаптивность поведения, обучение на прецедентах и толерантность к ошибкам.

Проблемы в создании МАС на принципах искусственного интеллекта состоит в том, что при проектировании точной и полной модели представления мира, процессов и механизмов рассуждения в нем – очень тяжело создать адекватную и полную картину мира. Несмотря на явные трудности, идея использовать агентов для решения разноплановых задач очень популярна в последнее время. Однако задача проектирования МАС и действительно интеллектуальных агентов требует специальных знаний и является ресурсоемкой задачей.


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

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

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

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

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

Читайте также: