Агентно-ориентированное программирование

Основные термины и определения

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

Свойства агента

Автономность: агенты функционируют без прямого вмешательства людей или кого-либо другого и владеют определенной способностью контролировать свои действия и внутреннее состояние.Методы (способы) общения: агенты взаимодействуют с другими агентами средствами некоторого коммуникационного языка.Реактивность: агенты способны воспринимать окружающую среду (которая может быть физическим миром, пользователем, взаимодействующим через графический интерфейс, коллекцией других агентов) и адекватно реагировать в определенных временных рамках на изменения, которые происходят.Активность: агенты не просто реагируют на изменения среды, но и обладают целенаправленным поведением и способностью проявлять инициативу.Индивидуальная картина мира: каждый агент имеет собственную модель окружающего его мира (среды), которая описывает то, как агент видит мир. Агент строит свою модель мира на основе информации, которую получает из внешней среды.Коммуникабельностьи кооперативность: агенты могут обмениваться информацией с окружающей их средой и другими агентами. Возможность коммуникаций означает, что агент должен получать информацию об его окружающей среде, что дает ему возможность строить собственную модель мира. Более того, возможность коммуникаций с другими агентами является обязательным условием совместных действий для достижения целей.Интеллектуальное поведение: поведение агента включает способность к обучению, логичной дедукции или конструированию модели окружающей среды для того, чтобы находить оптимальные способы поведения.Каждый агент — это процесс, который владеет (располагает) определенной частью знаний об объекте и возможностью обмениваться этими знаниями с другими агентами.Классификацию агентов можно провести в двух направлениях — по их инструментальной реализации (языку программирования агентов) и по основным приметам, которыми они владеют.На сегодня не существует языка программирования или инструментальной системы разработки, которая бы полностью соответствовала требованиям построения агентов. С точки зрения принципов распределенного объектно-ориентированного программирования необходимость передачи методов может быть существенно сокращена в том случае, если может быть обеспечен удаленный доступ к общим методам посредством передачи ссылок на удаленные объекты, данных экземпляров этих объектов и их состояний.В дополнение к концепции ООП, каждый агент имеет возможность создания копий самого себя с полной или ограниченной функциональностью, обеспечивая возможность настройки на среду путем исключения неэффективных методов и замены их новыми. Традиционная для ООП схема класс/объект нарушается, т. к. агент имеет возможность постоянного изменения сценария поведения без его изменения в родительском классе. Многозначное наследование позволяет создавать экземпляры агентов, смешивая сценарии поведения, схемы наследования и атрибуты, определенные в родительских классах.Чаще всего в агентных технологиях используются: универсальные языки программирования (Java); языки, “ориентированы на знания”, такие, как языки представления знаний (KIF), языки переговоров и обмена знаниями (KQML, AgentSpeak, April), языки спецификаций агентов; специализированные языки программирования агентов (TeleScript); языки сценариев и Scripting Languages (Tcl/Tk); символьные языки и языки логического программирования (Oz).Одно из самых главных свойств агента — это интеллектуальность. Интеллектуальный агент владеет определенными знаниями о себе и об окружающей среде. На основе этих знаний он способен определять свое поведение. От агентов требуют способности к обучению и даже самообучению. Умение планировать подразделяет агентов на регулирующие и планирующие. Если умение планировать не предусмотрено (регулирующий тип), то агент будет постоянно переоценивать ситуацию и заново вырабатывать свои действия на окружающую среду.Планирующий агент имеет возможность запланировать несколько действий на различные промежутки времени. При этом агент имеет возможность моделировать развитие ситуации, что дает возможность более адекватно реагировать на текущие ситуации. При этом агент должен учитывать не только свои действия и реакцию на них, но и сохранять модели объектов и агентов окружающей среды для предсказания их возможных действий и реакций.Для программного агента под мобильностью понимается возможность передвигаться по сети от компьютера к компьютеру. Переходя от одного компьютера к другому, такой агент может обрабатывать данные и передавать по сети только результаты своей работы.Система, в которой несколько агентов могут общаться друг с другом, передавать друг другу некоторую информацию, взаимодействовать между собой, называется многоагентной системой (МАС).

Понятие многоагентной системы (MAC)





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

q применяют МАС в тех случаях, когда логично будет каждого из участников процесса представить в виде агента;

q параллельным выполнением задач, т. е. если предметная область легко представляется в виде совокупности агентов, то независимые задачи могут выполняться различными агентами;

q устойчивостью работы системы: когда контроль и ответственность за выполняемые действия распределены между несколькими агентами. При отказе одного агента система не перестает функционировать;

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

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

Наши рекомендации