ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Journal influence

Higher Attestation Commission (VAK) - К1 quartile
Russian Science Citation Index (RSCI)

Bookmark

Next issue

2
Publication date:
16 June 2024

A prototype of an agents design support system for complex system simulation models

Date of submission article: 23.12.2015
UDC: 004.89
The article was published in issue no. № 3, 2016 [ pp. 79-84 ]
Abstract:The paper describes the details of implementation of a support system for designing simulation model agents. It also considers the sequence of stages for developing a simulation model that was used as a basis for constructing an agent model algorithm from the conceptual model of domain to the software implementation. Th e paper considers software implementation of the components for a conceptual model, for visual design of knowledge bases and for implementation of agents in the Madkit simulation environment. A conceptual model component provides facilities for a hierarchical structure of concepts, determining concepts’ properties and relations between them. This description of the relationships is performed by constructing a set of semantic networks, whose vertices are the concepts of a conceptual model, and links are relationships between them. Each of semantic networks explains a different aspect of a considered domain. A component for visual design of knowledge base provides an opportunity for rule construction in the form “IF conditions THEN actions” and code generation in Jess and Clips languages. A component for agent implementation in Madkit includes a simulation library; specially designed software classes (“Typical Agent”, “Scheduler”, etc.), as well as classes to perform service functions (interaction with a database or an external system). The main function of this component is providing simulation of an agent-based model, as well as informing the user about the current state of a modeling process and the parameters of particular agents. All components are implementated as web applications.
Аннотация:В работе рассматривается реализация прототипа системы поддержки проектирования агентов имитационных моделей. Приведена последовательность этапов процесса разработки имитационной модели, использованная в качестве основы для построения алгоритма формирования агентной модели, – от концептуального описания исследуемой области до ее программной реализации. Рассмотрена программная реализация компонентов создания концептуальной модели, визуального конструирования баз знаний продукционного типа и реализации агентов в среде моделирования Madkit. Компонент создания концептуальной модели предназначен для формирования иерархической структуры понятий, определения свойств понятий и отношений между ними. При этом описание отношений осуществляется путем построения набора семантических сетей, вершинами которых являются понятия концептуальной модели, а связями – отношения между ними. Каждая из семантических сетей поясняет отдельный аспект моделируемой области. Компонент визуального конструирования баз знаний обеспечивает конструирование правил вида «ЕСЛИ условия ТО действия» и генерацию кода базы знаний на языках Jess и Clips. Компонент реализации агентов в среде моделирования Madkit включает в себя библиотеку среды моделирования, классы, использующиеся в процессе агентного моделирования («Типовой агент», «Планировщик» и т.д.), а также классы для выполнения служебных функций (взаимодействие с БД или с внешней системой). Основные функции данного компонента – выполнение агентной модели, а также информирование пользователя о текущем состоянии процесса моделирования и параметров отдельных агентов. Реализация всех компонентов осуществлена в виде веб-приложений.
Authors: Pavlov A.I. (asd@icc.ru) - Institute for System Dynamics and Control Theory Siberian Branch of RAS, Irkutsk, Russia, Ph.D, Stolbov A.B. (stolboff@icc.ru) - Institute for System Dynamics and Control Theory Siberian Branch of RAS, Irkutsk, Russia
Keywords: agent-based simulation, rule-based expert system, systems, knowledge-based system
Page views: 7502
Print version
Full issue in PDF (6.81Mb)
Download the cover in PDF (0.36Мб)

Font size:       Font:

Разнообразие структур и поведения моделируемых объектов реального мира в зависимости от задач исследования обусловливает высокую сложность автоматизации процесса разработки имитационных моделей, в том числе агентных, поэтому в большинстве современных инструментальных средств моделирования данный процесс осуществляется путем написания кода на императивном языке программирования с невысоким уровнем автоматизации. В работе [1] был предложен подход к обеспечению поддержки пользователя в процессе создания агентных имитационных моделей сложных систем. Особенностью его является нацеленность на обеспечение специалистов-предметников, не имеющих существенных навыков программирования, возможностью создания имитационных моделей на основе информации из концептуальной модели (КМ) предметной области, а также использования формализма продукционных правил и парадигмы визуального программирования для описания поведения элементов модели (агент, ресурс, среда). Для реализации предложенного подхода была разработана концептуальная архитектура системы поддержки проектирования агентов для имитационных моделей сложных систем [2].

Целью данной работы является описание промежуточных результатов, полученных в процессе реализации архитектуры системы. В частности, приводится более подробное описание последовательности этапов разработки модели, а также рас- смотрены разработанные к настоящему времени модули системы поддержки: компонент создания КМ, компонент визуального конструирования баз знаний продукционного типа, компонент реализации агентов в среде моделирования Madkit [3].

Основные этапы процесса разработки агентной модели

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

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

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

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

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

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

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

Последовательность определяет список основных задач, которые должна решать разрабатываемая система поддержки проектирования агентых моделей. Для реализации 1-го этапа используется компонент создания КМ. Компонент визуального конструирования баз знаний продукционного типа применяется на этапах 3 и 4, а компонент реализации агентов в среде моделирования Madkit – на этапе 6. Опишем данные компоненты более подробно.

Компонент создания КМ

Согласно требованиям к программной системе, исходным для построения модели является описание предметной области в форме КМ. В данной работе структура этой КМ имеет следующий вид:

KM={Понятие, Атрибут, Отношение, Спецификация внешнего метода};

Понятие ={Имя, Описание, Список атрибутов};

Атрибут={Имя, Тип атрибута, Значение по умолчанию};

Тип атрибута={Литеральный, Объектный};

Отношение ={Понятие 1, Тип отношения, Имя, [Понятие 2]};

Внешний метод ={Имя, Описание, Список параметров, Тип реализации}.

Поясним некоторые определения, связанные с предложенной структурой КМ. Под литеральным типом атрибута понимаются текст, число, дата и т.п., а под объектным – ссылка на другое понятие. Отношения задаются между понятиями и являются как бинарными, так и унарными. Типами отношений могут быть как общепринятые (причинно-следственное отношение, ассоциация, агрегация и др.), так и связанные с предметной спецификой и заданные пользователем. Например, для моделирования поведения роботов пользователь может явно ввести такой тип отношения, как «движение», со следующими возможными названиями для этого отношения: вправо, влево. Спецификация внешнего метода – это способ описания в КМ, разработанных сторонними исследователями програм- много кода. При этом необходимо указать спецификацию входных и выходных параметров, а также тип реализации (например, функция Jess [4], метод JAVA, скрипт PHP и т.п.).

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

Несмотря на наличие редакторов, обладающих схожей функциональностью, например Protégé [6] или TopBraid Composer [7], было принято решение о разработке данного компонента ввиду приблизительно одинаковых трудозатрат на интеграцию модулей работы с форматами OWL или RDF и программой реализации данного компонента. Кроме того, обеспечение коллективной работы с КМ более эффективно реализуется в случае использования СУБД, а не XML-файла.

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

Данный компонент реализован в виде веб-приложения и обладает следующей функциональностью: создание баз знаний для выбранной КМ, формирование перечня шаблонов фактов на основе существующих понятий КМ, визуальное конструи- рование правил вида «ЕСЛИ условия ТО дей- ствия», ввод начальных условий для запуска процедуры логического вывода, генерация и тестирование кода базы знаний на языках Jess и Clips [8]. Пример построения правила для описания развития деградационного процесса [9] приведен на рисунке 2.

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

-  наличие факта указанного шаблона;

-  ограничение на значение слота факта (текст, число);

-  сравнение значения слота с существующим фактом;

-  сравнение со значением слота другого факта.

Для формирования правой части правила используются следующие виды действий:

-  создание нового факта;

-  модификация существующего факта;

-  удаление факта;

-  вызов внешней процедуры.

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

Для хранения информации баз знаний используется СУБД PostgreSQL. Серверная часть включает в себя генератор кода, реализованный на языке PHP, и блок интерпретации, обеспечивающий до- ступ к машине вывода. Блок интерпретации реализован в виде веб-сервиса на языке Java, который обеспечивает доступ к системе Jess.

Компонент реализации агентов в среде моделирования Madkit

Данный компонент обеспечивает автоматическое создание программных объектов Java, которые, в свою очередь, выполняют программную реализацию агентов имитационной модели. Реализация агентов осуществляется с помощью специального базового класса (далее – типовой агент). Применение типового агента обеспечивает унификацию процесса создания агентов, а также возможность декларативного определения состояния и поведения агентов. Типовой агент обладает следующей структурой:

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

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

Программная реализация типового агента в среде Madkit (рис. 3) осуществляется путем насле- дования от класса «Абстрактный агент», предназначенного для организации синхронного типа агентного взаимодействия.

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

В текущей реализации в процессе принятия решений типовой агент использует машину вывода Jess для интерпретации своего поведения. В связи с предлагаемой структурой поведения для реализации императивного блока в систему Jess с использованием встроенного интерфейса Userfunction внедрен общий механизм вызова внешних программных процедур, реализованных на языке Java. 

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

1.    Получение сообщений.

2.    Обнуление состояния рабочей памяти Jess.

3.    Загрузка правил и шаблонов фактов в машину вывода Jess.

4.    Загрузка описания текущей ситуации в машину вывода Jess:

-     преобразование литеральных свойств агента в слоты шаблона «мое состояние»;

-     преобразование объектных свойств в факты соответствующих шаблонов;

-     преобразование агентных свойств в факты соответствующих шаблонов (при этом используются состояния агентов на момент времени t–1).

5.    Преобразование информации из сообщений в факты шаблона.

6.    Запуск логического вывода.

7.    Поиск в рабочей памяти фактов шаблонов, связанных с событием и действием.

8.    Запуск метода среды «Обработать действие».

9.    Сохранение состояния из соответствующих фактов рабочей памяти.

10. Обработка действий, связанных с посылкой сообщений между агентами.

Программная реализация компонента осуществлена путем создания веб-сервиса на языке Java, который включает в себя библиотеку среды моделирования Madkit, классы, использующиеся в процессе агентного моделирования («Типовой агент», «Планировщик» и т.д.), а также классы для выполнения служебных функций (взаимодействие с БД или с внешней системой). Основной функцией сервиса является выполнение агентной модели.

Кроме того, учитывая специфику удаленного исполнения агентной модели, необходимо решить задачу информирования пользователя о текущем состоянии процесса моделирования и параметров отдельных агентов. Для решения этой задачи разработан коммуникационный модуль. Модуль реализован на основе WebSocket-сервера [10] программной платформы Node.js и обеспечивает трансляцию данных о состоянии процесса моделирования всем заинтересованным пользователям. В общем случае процесс передачи данных инициируется планировщиком в конце каждого шага моделирования. Передаваемая информация кодируется в JSON-формат и отправляется на HTTP-сервер платформы Node.js, в контексте которого запущен WebSocket-сервер, осуществляющий отправку данных пользователю в соответствии с информацией об адресатах. При этом вопросы отображения полученных данных на компьютере пользователя не относятся к сфере ответственности компонента.

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

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

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

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

Литература

1.     Столбов А.Б., Павлов А.И. Разработка системы поддержки проектирования имитационных моделей сложных систем на основе декларативного метода описания агентов // Имитационное моделирование: теория и практика. ИММОД-2013: тр. Всерос. науч.-практич. конф. СПб, 2013. С. 267–270.

2.     Павлов А.И., Столбов А.Б. Архитектура системы под- держки проектирования агентов для имитационных моделей сложных систем // Программные продукты и системы. 2015. № 2 (109). С. 12–16.

3.     Michel F., Ferber J., Gutknecht O. The Multiagent Development Kit. URL: http://www.madkit.org/ (дата обращения: 21.12.2015).

4.     Jess, the rule engine for the JavaTM platform. URL: http://www.jessrules.com/ (дата обращения: 21.12.2015).

5.     Anand N., Yang M., J.H.R. van Duin, Tavasszy L. GenCLOn: An ontology for city logistics. Expert Systems with Applications, 2012, no. 39, pp. 11944–11960.

6.     Protégé is a free, open source ontology editor and knowledge-base framework. URL: http://protege.stanford.edu/ (дата обращения: 21.12.2015).

7.     TopBraid composer standard edition. URL: http://www. topquadrant.com/tools/modeling-topbraid-composer-standard-edition/ (дата обращения: 21.12.2015).

8.     CLIPS, a tool for building expert systems. URL: http://clipsrules.sourceforge.net (дата обращения: 21.12.2015).

9.     Берман А.Ф., Николайчук О.А., Павлов Н.Ю., Юрин А.Ю. Методы и средства автоматизированного построения деревьев событий и отказов // Автоматизация и современные технологии. 2013. № 9. С. 8–16.

10.   RFC 6455 – The WebSocket Protocol. URL: https://tools. ietf.org/html/rfc6455 (дата обращения: 21.12.2015).


Permanent link:
http://swsys.ru/index.php?page=article&id=4181&lang=en
Print version
Full issue in PDF (6.81Mb)
Download the cover in PDF (0.36Мб)
The article was published in issue no. № 3, 2016 [ pp. 79-84 ]

Perhaps, you might be interested in the following articles of similar topics: