Автор работы: Пользователь скрыл имя, 01 Мая 2013 в 19:32, реферат
Мультиагентные технологии — один из главных инструментов, интеллектуальное ноу-хау, применяемое в деятельности компании.
Суть мультиагентных технологий заключается в принципиально новом методе решения задач.
В отличие от классического способа, когда проводится поиск некоторого чётко определенного (детерминированного) алгоритма, позволяющего найти наилучшее решение проблемы, в мультиагентных технологиях решение получается автоматически в результате взаимодействия множества самостоятельных целенаправленных программных модулей — так называемых агентов. Агент может действовать по поручению и в интересах человека.
В основу архитектуры разрабатываемой системы взаимодействия заложены принципы распределённости одноранговых сетей («peer-to-peer»). Каждый узел управляет лишь небольшим набором данных, обеспечивая достойную производительность, при этом для конечного пользователя доступны данные всех узлов. Это дополнительно повышает надёжность системы в целом.
При этом значения атрибутов экземпляров классов хранятся отдельно от них. Это позволяет дополнительно использовать гибкую настройку способов и места хранения этих значений, свободно расширять набор типов данных и хранить целые структуры. Возможно, например, организовать хранение значений некоторого атрибута во внешней информационной системе (или базе данных).
Для обеспечения устойчивой работы распределённой системы требуется, чтобы все узлы системы использовали одну общую структуру данных, или частично одинаковые структуры. Это требование удовлетворяется с помощью механизма репликации структуры данных: узлы системы время от времени могут обмениваться изменениями, сделанными в структуре, тем самым, обеспечивая общность структуры данных системы в целом. Кроме репликации структуры данных, похожим способом решается проблема репликации и самих данных. Например, необходима репликация единых справочников по всем узлам системы, чтобы каждый узел мог функционировать автономно. С этой целью в системе ведётся протоколирование всех изменений данных, что дополнительно позволят просматривать историю изменений и делать откаты. Любой объект, предназначенный для репликации, получает уникальный идентификатор во всей сети и ассоциируется с некоторой иерархической сетевой настройкой. По событию обновления данных (запросу пользователя или по времени), сервер синхронизирует своё состояние с сервером верхнего уровня и, в случае успеха, сообщает серверам нижнего уровня о необходимости также провести обновление.
Обеспечения удаленного доступа к информации в распределенной системе достигается уже имеющимися возможностями спецификации EJB по построению распределённых систем. При организации доступа к любому объекту EJB сервер создаёт особый интерфейсный объект, называемый «заглушкой», с которой работает пользователь. Этот объект обеспечивает «прозрачное» сетевое взаимодействие клиента с сервером, где реально находится необходимый объект. Для того, чтобы связать два объекта, предположительно находящихся на разных серверах, достаточно, чтобы каждый из них хранил подобную «заглушку» на другого. Пользователь, запрашивая связанные объекты для некоторого объекта, получит набор «заглушек» к реальным объектам, которые и будут использоваться для доступа к ним. При связи двух объектов, находящихся на одном сервере, в хранении «заглушек» нет необходимости, но для конечного пользователя принципы доступа к связанным объектам остаются едиными.
Для того чтобы связать два объекта между собой, необходимо также на основе сетевого сервиса сообщений решить задачу нахождения этих объектов в распределённой сети серверов. Сообщение представляет собой набор параметров, определяющих целевой сервис, который должен быть вызван на каждом сервере, на который это сообщение будет послано и механизм возврата результатов работы этих сервисов в точку вызова. При этом на каждом сервере хранится набор таблиц маршрутизации, имеющих уникальные идентификаторы. Каждая таблица определяет набор параметров подключения к другим серверам приложений. Конечный пользователь использует сетевой сервис сообщений, создавая новое сообщение и определяя уникальный идентификатор таблицы маршрутизации. Сервис передаёт это сообщение на каждый из серверов, описанных в указанной таблице маршрутизации, используя такой же сетевой сервис на каждом из них. Таким образом, сообщение каскадно передаётся по всей заранее сконфигурированной сети, а пользователь получает набор результатов работы всех найденных целевых сервисов.
Описанный сетевой сервис сообщений является ключевым элементом обеспечения логики внутрисетевого взаимодействия узлов распределенной системы. Кроме описанной функциональности он обладает некоторыми дополнительными возможностями: управление стратегиями передачи сообщений и организация иерархических сетей. Например, можно остановить поиск, найдя заданное количество результатов, или дойдя до заданной глубины вложенности узлов вверх или вниз по иерархии.
Мультиагентная среда
Для функционирования мультиагентного приложения также требуется трехуровневая модель, в которой мультиагентное приложение находится на верхнем уровне. Его можно разделить на два подуровня: проблемно-ориентированный, включающий в себя среду функционирования агентов с погруженными в неё агентами и уровень платформы, обеспечивающий все необходимые сервисные и прочие программные компоненты (архитектура мультиагентной среды представлена на рисунке ниже).
Проблемно-ориентированный уровень обеспечивает агентов доступом к онтологиям и сценам, задавая контекст их функционирования и взаимодействия для решения задач, поставленных перед ними.
Уровень платформы отвечает
за коммуникацию агентов, обеспечение
распределённого
Мультиагентное приложение исполняется в программной среде второго уровня модели, обеспечивающей промежуточную инфраструктуру (совместный доступ к ресурсам, управление транзакциями, безопасность и прочие системные функции). Здесь используется готовое решение, базирующиеся на общепринятых стандартах — J2EE (http://java.sun.com/j2ee) сервера.
Нижний уровень модели — физическая инфраструктура. Здесь располагаются компоненты физического доступа к ресурсам, сетям и данным.
На рисунке представлена упрощенная модель описания сценариев функционирования агентов предлагаемой мультиагентной платформы.
Основными понятиями этой модели являются:
Action — некоторое действие, которое может исполнять программный агент. Действие может быть определено для целого класса агентов (действие по умолчанию), либо для конкретного экземпляра.
Process — последовательность исполнения цепочки действий, приводящая к достижению некоторой цели.
ActionForward — результат исполнения действия, который интерпретируется как переход к исполнению другого действия, приостановка или завершение процесса.
Expression — сложное выражение, вычисление которого приводит к исполнению действия и получению его результата.
Ключевым моментом здесь является структура выражений, определяемая как иерархия вызовов предопределённых функций (на схеме Functor). Имея достаточный набор функций, пользователь сможет самостоятельно (без помощи программистов) менять логику работы системы, комбинируя их вызовы, в зависимости от ситуации.
На рисунке ниже приведен простейший пример выражения для подтверждения социальной категории «пенсионер».
Каждое действие задаётся как некоторое выражение, описывающее логику выполнения выражения. Исполняющая система вводит понятие процесса, ассоциированного с некоторым экземпляром программного агента, в рамках которого исполняются выражения. Для процесса могут быть заданы входные параметры. Функции, которые исполняются в рамках процесса могут использоваться для вызова других выражений, приостановки работы, программирования события для старта во времени, а также непосредственного вызова действий, определённых для других агентов.
Реализуемые компоненты рассмотренной мультиагентной платформы поэтапно внедряются и апробируются при реализации промышленной версии системы СУПРЕМА.
Решение поставленных задач на основе существующих средств вычислительной техники было бы невозможно еще несколько лет назад. Проблема при этом состояла не в том, чтобы разместить данные на каждого жителя Самарской области или обеспечить приемлемую скорость обработки, а в том, чтобы разработать программное обеспечение, способное самостоятельно находить индивидуальные варианты и принимать индивидуальные решения для сотен тысяч и миллионов людей, обладающих множеством индивидуальных особенностей, генерируя предложения по индивидуальным программам жизни каждого человека. И при этом в условиях, когда сама социальная среда жизни человека и сам человек непрерывно изменяются, исчезают старые и постоянно появляются новые предложения и возможности.
Решение этой задачи стало возможным на основе мультиагентного подхода, базирующегося на понятии интеллектуального агента, способного воспринимать информацию, принимать решения на основе знаний (онтологий) и коммуницировать с другими агентами.
Мультиагентные системы могут быть построены как открытые, способные «налету» адаптироваться к изменениям за счет своих онтологий — баз знаний предметной области, отделенных от программного кода системы, пополнение которых открыто и доступно для специалистов и менеджеров, не имеющих навыков программирования. Эти системы способны накапливать, обрабатывать и применять знания о предметной области, описывающие основные понятия социального профиля (дотации, льготы и т.д.), законы, регламентирующие деятельность государственных органов в социальной сфере и порядок применения тех или иных норм и правил и т.д.
На основе мультиагентной технологии для каждого жителя Самарской области можно построить персонального интеллектуального агента, который будет действовать от имени и по поручению своего владельца, заботясь о его гуманитарном и социально-экономическом развитии и реализации его интеллектуального и творческого потенциала в интересах области и государства. При этом агент будет также заботиться о соблюдении всех положенных по закону социальных льгот и дотаций, а также сможет находить варианты более эффективного использования социальных средств для человека (например, продолжения профессионального образования, организации медицинской помощи, предоставления санатория для восстановления здоровья и т.д.).
Для того, чтобы работа агента с каждым жителем была адресной и эффективной, данные об этом человеке должны размещаться в социальном паспорте, отражающем его текущее социально-экономическое положение и хранящем историю его жизни. На основе понятий и правил, лежащих в онтологии, а также информации из социального паспорта, описывающей текущее состояние человека, агент сможет находить и подготавливать процесс принятия решений человеком. Сформированные для человека предложения, согласованные с работниками социальных департаментов, могут распечатываться и отправляться жителям обычной или электронной почтой.
Предполагается, что ответы жителей будут вводиться и фиксироваться через социальные мультимедийные киоски самими жителями или работниками социальных служб в своих компьютерах, и далее через территориально-распределенную сеть становиться доступными агентам людей для продолжения работы.
Онтологии предметной области
Блок онтологий, играющий ключевую роль в способности агентов принимать решения, можно определить как совокупность пополняемых баз знаний, описывающих основные понятия и отношения предметной области, а также сценарии или правила поведения агентов в форме семантических сетей. Эта семантическая сеть таким образом может содержать как декларативные, так и процедурные компоненты и включать такие понятия (концепты) как физические или абстрактные объекты или понятия, свойства, процессы, отношения, атрибуты.
Онтология социальной сферы должна включать в себя знания о видах социальной помощи, объектах, условиях и организационном порядке предоставления этой помощи, финансовых ограничениях и т.д. При этом в онтологии должны быть описаны специализированные знания каждой конкретной социальной службы, на основе которых принимаются решения, например, районного отдела социального обеспечения, пенсионного фонда, фонда занятости населения и т.д.
Базовыми объектами онтологии социальной сферы должны стать такие понятия, как: «льгота», «пособие», «дотация» и др. На основе этих базовых объектов онтологии социальной сферы можно построить составные объекты: «категории жителей, к которым применима льгота», «размер единовременного пособия» и др. С каждым из перечисленных объектов связано некоторое количество сценариев действий, отношений, атрибутов.
Предусматриваемый в составе системы конструктор онтологий поможет работникам социальной сферы самостоятельно дополнять знаниями предметную область, что позволит избежать изменений в исходном тексте (коде) программы, например, при изменении механизма предоставления льгот различным категориям жителей и сделает систему более гибкой и, в то же время, более устойчивой к внешним условиям.
Построенные таким образом
открытые системы уже сегодня
оказываются более