Реферат: Многоагентные системы. Процесс самоорганизации в многоагентных системах
Свойства агента
Какими же свойствами должен обладать “агент”?
§Автономность: агенты функционируют без прямого вмешательства людей или кого-либо другого и владеют определенной способностью контролировать свои действия и внутреннее состояние.
§Методы (способы) общения: агенты взаимодействуют с другими агентами средствами некоторого коммуникационного языка.
§Реактивность: агенты способны воспринимать окружающую среду (которая может быть физическим миром, пользователем, взаимодействующим через графический интерфейс, коллекцией других агентов, Іnternet-ом, или, возможно, всем вместе взятым) и адекватно реагировать в определенных временных рамках на изменения, которые происходят.
§Активность: агенты не просто реагируют на изменения среды, но и обладают целенаправленным поведением и способностью проявлять инициативу.
§Индивидуальная картина мира: каждый агент имеет собственную модель окружающего его мира (среды), которая описывает то, как агент видит мир. Агент строит свою модель мира на основе информации, которую получает из внешней среды.
§Коммуникабельность и коперативность: агенты могут обмениваться информацией с окружающей их средой и другими агентами. Возможность коммуникаций означает, что агент должен получать информацию об его окружающей среде, что дает ему возможность строить собственную модель мира. Более того, возможность коммуникаций с другими агентами является обязательным условием совместных действий для достижения целей.
§Интеллектуальное поведение: поведение агента включает способность к обучению, логичной дедукции или конструированию модели окружающей среды для того, чтобы находить оптимальные способы поведения.
Следовательно, каждый агент - это процесс, который владеет (располагает) определенной частью знаний об объекте и возможностью обмениваться этими знаниями с другими агентами.
Классификацию агентов можно провести в двух направлениях - по их инструментальной реализации (языку программирования агентов) и по основным приметам, которыми они владеют.
Следует отметить, что на сегодня не существует языка программирования или инструментальной системы разработки, которая бы полностью соответствовала требованиям построения агентов. С точки зрения принципов распределенного объектно-ориентированного программирования (ООП) необходимость передачи методов может быть существенно сокращена в том случае, если может быть обеспечен удаленный доступ к общим методам посредством передачи ссылок на удаленные объекты, данных экземпляров этих объектов и их состояний. Однако в дополнение к концепции ООП, каждый агент имеет возможность создания копий самого себя с полной или ограниченной функциональностью, обеспечивая возможность настройки на среду путем исключения неэффективных методов и замены их новыми. Традиционная для ООП схема класс/объект нарушается, т.к. агент имеет возможность постоянного изменения сценария поведения без его изменения в родительском классе. Многозначное наследование позволяет создавать экземпляры агентов, смешивая сценарии поведения, схемы наследования и атрибуты, определенные в родительских классах.
Следовательно, система разработки, которая бы полностью соответствовала требованиям построения агентов, должна была бы соответствовать таким требованиям: обеспечение перенесения кода на различные платформы, доступность на многих платформах, поддержка сетевого взаимодействия, многопотоковая обработка и некоторые другие. Чаще всего в агентных технологиях используются: универсальные языки программирования (Java); языки, “ориентированы на знания”, такие, как языки представления знаний (KIF), языки переговоров и обмена знаниями (KQML, AgentSpeak, April), языки спецификаций агентов; специализированные языки программирования агентов (TeleScript); языки сценариев и scripting languages (Tcl/Tk); символьные языки и языки логического программирования (Oz).
Одно из самых главных свойств агента – это интеллектуальность. Интеллектуальный агент владеет определенными знаниями о себе и об окружающей среде, и на основе этих знаний он способен определять свое поведение. Интеллектуальные агенты являются основной областью интересов агентной технологии. Важна также среда существования агента: это может быть как реальный мир, так и виртуальный (компьютерный), что является важным в связи со всеобщим распространением сети Internet. От агентов требуют способности к обучению и даже самообучению. Поскольку обучение обуславливает наличие знаний у обучаемого, то обучаемым или самообучаемым может быть только интеллектуальный агент.
Свойство умения планировать подразделяет агентов на регулирующие и планирующие. Если умение планировать не предусмотрено (регулирующий тип), то агент будет постоянно переоценивать ситуацию и заново вырабатывать свои действия на окружающую среду. Планирующий агент имеет возможность запланировать несколько действий на различные промежутки времени. При этом агент имеет возможность моделировать развитие ситуации, что дает возможность более адекватно реагировать на текущие ситуации. При этом агент должен учитывать не только свои действия и реакцию на них, но и сохранять модели объектов и агентов окружающей среды для предсказания их возможных действий и реакций.
Агент может иметь доступ к локальным и глобальным ресурсам. При этом агентов, которые имеют доступ к локальным ресурсам (ресурсы, к которым имеет доступ пользователь, в том числе и сетевые), называют персональными помощниками, они автоматизируют работу текущего пользователя, помогая ему в выполнении некоторых операций. Соответственно сетевой агент самостоятельно получает доступ к информации, не доступной пользователю напрямую либо доступ к которой не был предусмотрен. Важным свойством классификации есть мобильность - возможность менять свое местонахождение в окружающей среде. Для программного агента под мобильностью понимается возможность передвигаться по сети от компьютера к компьютеру. Переходя от одного компьютера к другому, такой агент может обрабатывать данные и передавать по сети только результаты своей работы. Система, в которой несколько агентов могут общаться друг с другим, передавать друг другу некоторую информацию, взаимодействовать между собой, называется многоагентной (МАС).
Понятие многоагентной системы
Направление “многоагентной системы” распределенного искусственного интеллекта рассматривает решение одной задачи несколькими интеллектуальными подсистемами. При этом задача разбивается на несколько подзадач, которые распределяются между агентами. Еще одной областью применения МАС есть обеспечение взаимодействия между агентами, когда один агент может выработать запрос к другому агенту на передачу некоторых данных или выполнение определенных действий. Также в МАС есть возможность передавать знания. Построение программных систем по принципу МАС может быть обусловлено следующими факторами:
· так, некоторые предметные области применяют МАС в тех случаях, когда логично будет каждого из участников процесса представить в виде агента. Например, социальные процессы, в которых каждый из участников играет свою роль;
· параллельным выполнением задач, т.е. если предметная область легко представляется в виде совокупности агентов, то независимые задачи могут выполняться различными агентами;
· устойчивостью работы системы: когда контроль и ответственность за выполняемые действия распределены между несколькими агентами. При отказе одного агента система не перестает функционировать. Таким образом, логично поместить агентов на различных компьютерах;
· модульностью МАС, что позволяет легко наращивать и видоизменять систему, т.е. легче добавить агента, чем изменить свойства единой программы. Системы, которые изменяют свои параметры со временем могут быть представлены совокупностью агентов. Модульность обуславливает легкость программирования МАС.
Мультиагентные системы подразделяются на кооперативные, конкурирующие и смешанные. Агенты в кооперативных системах являются частями единой системы и решают подзадачи одной общей задачи. Понятно, что при этом агент не может работать вне системы и выполнять самостоятельные задачи. Конкурирующие агенты являются самостоятельными системами, хотя для достижения определенных целей они могут объединять свои усилия, принимать цели и команды от других агентов, но при этом поддержка связи с другими агентами не обязательна. Под смешанными агентами понимаются конкурирующие агенты, подсистемы которых также реализуются по агентной технологии. Кроме общения с другими агентами должна быть реализована возможность общения с пользователем [2]
Самоорганизации и кооперация в компании
Для того, чтобы понять процесс самоорганизации в мультиагентной системе следует довольно детально рассмотреть этот процесс в реальным мире, например в какой-нибудь компании.
Зарождение и развитие компаний всегда связано с организацией коллективов людей, объединяющих свои ресурсы для достижения общих целей. Все начинается обычно с кооперации отдельных творческих людей или организации рабочих групп менеджеров и специалистов (в больших компаниях). По мере получения результатов, сложившееся "вольное объединение" трансформируется в малую компанию или новые подразделения в большой компании, далее - в группу компаний, консорциум и т.д. При этом какова бы ни была форма существования организации, решения на всех уровнях принимаются некоторыми коллективами людей, способных сообща спланировать и скоординировать свою деятельность при решении общих задач.
Простейшей формой такой организации коллективов людей являются широко распространенные на практике рабочие совещания, построенные по принципу "круглого стола". Цель этих совещаний (в отличии от совещаний других видов) состоит в выявлении и разрешении общих проблем (противоречий) в кооперативной деятельности. Амбиции и иерархии здесь отходят на второй план, уступая место знаниям и опыту. Чем глубже дискуссия за "круглым столом", тем более остро обнажаются противоречия, и тем более продуманными и согласованными будут принимаемые решения (при условии признания всеми общих правил игры и некоторых других ограничений). Можно утверждать, что на время проведения любого совещания в компании как бы организуется новое виртуальное структурное подразделение - временный творческий коллектив специалистов. В результате, возможно незримо, но именно эти коллективы (а в их лице, бы само "дело") начинают интеллектуально управлять компанией. При этом руководитель любого уровня высоко организованной компании постепенно приобретает роль арбитра (что вовсе не отрицает его участие в спорах как рядового специалиста), следящего за соблюдением общих для всех правил игры в условиях заданных ограничений.
Высшей формой групповой коллективной работы самоорганизация. Самоорганизация - основа интенсивного развития компании, способность компании чутко реагировать на изменения во внешней среде, обоснованно и своевременно изменяя не только свое внешнее поведение, но и основополагающие принципы собственного устройства и функционирования. В рассматриваемом случае самоорганизация должна проявлять себя в самостоятельном создании специалистами новых рабочих групп по каждому направлению деятельности компании, независимо от ведомственной принадлежности и уровней подчиненности специалистов (множество открытий и изобретений делается на стыке различных направлений деятельности, если обеспечены условия для общения специалистов, пусть на уровне "курилки". Известны примеры, когда с этой целью компании строят свои производственные здания так, чтобы сотрудники различных подразделений чаще могли бы, даже случайно, встречаться).
Таким образом, деятельность компании (или группы компаний) в каждый момент времени можно представить конфигурацией "круглых столов" (рабочих групп), относительно постоянно действующих или создаваемых на самое короткое время. Предлагаемый взгляд на структуру организации представлен на рис. 1, где кольцами обозначены работающие "круглые столы".