УДК 004.942
Сажина Ю.В. аспирант Свиридова А.С. аспирант
Сибирский государственный университет науки и технологий им. ак. М. Ф. Решетнева Россия, г. Красноярск ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ ПРИ ПРОЕКТИРОВАНИИ РАСПРЕДЕЛЕННЫХ ИНТЕЛЛЕКТУАЛЬНЫХ СИСТЕМ Аннотация: В статье рассматриваются основные понятия имитационного моделирования как способа проектирования сложных распределенных систем. Приведен обзор языков и программных средств моделирования. Так же описаны этапы и методики имитационного моделирования, приведены исторические данные развития данного вида моделирования. В статье рассматривается задача проектирования системы складских перемещений на основе мультиагентного подхода, реализованная средствами имитационного моделирования.
Ключевые слова: модель, имитационное моделирование, агент, мультиагентные системы, четкие и нечеткие правила, дискретно -событийное и агентное моделирование, системная динамика, Arena, AnyLogic, Simulink.
Sazhina Yu.V., graduate student Reshetnev Siberian State University of Science and Technology
Russia, Krasnoyarsk Sviridova A.S., graduate student Siberian State University Reshetnev Siberian State University of Science and Technology
Russia, Krasnoyarsk IMITATIVE SIMULATION IN DESIGN OF DISTRIBUTED INTELLIGENT SYSTEMS Abstract: The article deals with the basic concepts of simulation modeling as a way of designing complex distributed systems. The review of languages and software modeling tools is given. The stages and methods of simulation modeling are described, historical data of the development of this type of modeling are given. The article deals with the problem of designing a system of warehouse movements based on the multi-agent approach implemented by means of simulation modeling.
Keywords: model, simulation, agent, multiagent systems, clear and fuzzy rules, discrete - event and agent modeling, system dynamics, Arena, AnyLogic, Simulink.
Введение
В любой отрасли человеческой деятельности все более важную роль играют сложные распределенные системы, способные успешно решать поставленные задачи в условиях неопределенности за счет распараллеливания действий между несколькими вычислительными потоками. Такими системами являются интеллектуальные мультиагентные системы, в основе которых заложен принцип автономности отдельных частей программы (или как их еще называют агентов), способных функционировать в среде, в которой одновременно протекает множество параллельных процессов. При этом каждый агент обладает набором определенных характеристик, способен решать поставленные задачи, может взаимодействовать как с другими агентами и влиять на их поведение, так и с окружающей средой. В распределенных системах управления под агентом понимается некая искусственная сущность (или объект, компьютерная программа), которая способна действовать в интересах достижения поставленных целей [4, С. 116 - 117]. При этом агент может как принимать на себя какие - либо обязательства, так и отказаться от выполнения тех или иных действий в силу своей занятости другой задачей или отсутствием компетентности. Также агент может порождать новых агентов или наоборот подавлять, активизировать общий сценарий деятельности, запоминать свое и других агентов текущее состояние. Другими словами, агент является активным объектом, способным формировать свое собственное поведение [10].
Отсюда возникает вопрос: Если есть некая программная сущность, способная решать сложные задачи, почему нет широкой доступности систем, основанных на подобных активных объектах? Это связано с тем, что такие системы сложны в проектировании, так как способы принятия решений таких агентов основаны на принципах работы человеческого мозга, а эта область до сих пор до конца не изучена.
Объект исследования
Системы на основе мультиагентного подхода имеют широкую область применения. В рамках своего исследования мною ведется работа по проектированию мультиагентой системы складскими перемещениями. Более подробно данную задачу можно рассмотреть в моей работе «Многоагентная система управления складскими перемещениями» [14]. На рисунке 1 представлена схема работы агента, осуществляющего поиск и доставку объекта:
Рисунок 1 - Схема работы простого агента
Основной задачей агента в данной задаче является поиск и доставка объекта за короткое время. Как было описано выше, агент не существует сам по себе, он взаимодействует с окружающей средой и с другими агентами (в многоагентной системе). В данном случае взаимодействие агентов в системе было принято осуществлять за счет совокупности четких и нечетких правил. Четкими правилами являются ограничения среды, они непосредственно прописываются разработчиком при проектировании. Таким правилом, например, является: «если объект не найден, то выбери новую позицию» или «если корзина полная, иди к лотку» и другие. Нечеткие правила в данной задаче необходимы для разрешения конфликтов между агентами и внутри каждого агента при резервировании позиции в заявке. База нечетких правил ставит в соответствие набору входных параметров значения выходных параметров. В данном случае система описывается двумя входными параметрами и одним выходным. В задаче введено понятие «объем корзины», относительно от которого рассматривается понятие «габариты объекта». Примерами таких нечетких правил являются: IF (корзина пустая) AND (габариты объекта малые) THEN изменить статус позиции на «зарезервирована»; ELSE IF (корзина пустая на половину) AND (габариты
объекта большие) THEN положить объект в лоток (закрыть предыдущую позицию, изменить статус позиции на «доставлено»). С помощью нечетких правил осуществлен выбор позиции в заявке. То есть, агент должен «расставить» числовые приоритеты по таким параметрам, как размер искомого объекта, наполненность корзины, близость к объекту в хранилище, близость к лотку. Сумма числовых приоритетов по данным параметрам по одной позиции сравнивается с такими же числовыми приоритетами других агентов этой же позиции. Чье число больше, тот агент резервирует позицию, меняет статус позиции на «зарезервирована» и осуществляет поиск объекта. Таким же образом осуществлен выбор между позициями внутри одного агента.
Понятие моделирования
Существуют различные способы проектирования мультиагентных систем. Одним из них является имитационное моделирование, позволяющее описывать поведение реального объекта с помощью набора алгоритмов во времени. Причем этим временем можно управлять: замедлять в случае быстропротекающих процессов или ускорять для процессов с медленной изменчивостью [15, С. 5-6]. Имитационное моделирование становится не только популярным, но и эффективным инструментом для проектирования сложных систем, одними из которых являются мультиагентные системы.
Модели сложных систем строятся в виде программ. Выделяют две области компьютерного моделирования: математическое и имитационное. Математическое моделирование связано с разработкой математических моделей, с обоснованием численных методов. Имитационное моделирование в свою очередь связано с разработкой и выполнением программной системы, которая позволяет отобразить поведение и структуру моделируемого объекта. Имитационная модель всегда является выполняемой моделью, она отражает как объект переходит из одного состояния в другое [15, С. 5-6]. Также, с помощью имитационного моделирования можно строить модели тех систем, с которыми нельзя провести эксперимент. Но при всех положительных качествах данного моделирования, у него есть и слабые стороны, например, проектировщику зачастую трудно оценить адекватность модели, а сбор, анализ и интерпретация результатов требует определенных знаний и навыков. Но зачастую имитационное моделирование является единственным способом создания сложной системы.
История развития имитационного моделирования
История развития имитационного моделирования насчитывает более 60 лет. Проанализировав информацию нескольких источников [6, С. 122 -124], можно составить следующие основные этапы исторического формирования имитационного моделирования, как способа решения задач:
1) 1955 - 1960 гг. Началом развития имитационного моделирования, как методологии исследования динамических систем, можно считать 1955 год. В это время поведение системы описывалось с помощью
универсальных языков (например, FORTRAN, C\C++). В процессе развития учеными были выявлены повторяющиеся для имитации последовательности операций: «создать объект», «двигать», «передать по условию», «ожидать в течение», «генерировать случайные числа». В 1960 г. ученый Кейт Дуглас Точер предложил записывать эти последовательности операции в виде подпрограмм на языке FORTRAN [18].
2) 1961 - 1965 гг. Через год (1961г) Джефри Гордон создает специализированный язык имитационного моделирования GPSS (General Purpose Simulation System - система моделирования общего назначения) [17, С. 3], в котором выдвигает концепцию имитации поведения сети компьютеров как процесса движения транзактов через блоки, представляющие собой подпрограммы на языке ALGOL (дословный перевод с английского «алгоритмический язык») [5]. Позднее Ф. Кивиат начал разработку специализированного языка GASP (General Activity Simulation Program) на основе ALCOL и FORTRAN [2, С. 2-3]. В 1963 году Х. Марковиц разработал язык SIMSCRIPT, описывающий поведение системы в виде последовательности событий. В 1966 году Алан Притскер разработал сетевой имитационный язык Q-GERT (Graphical Evaluation and Review Technique) на основе им же разработанного метода графической оценки и обзора [8].
3) 1965 - 1970 гг. В конце 1960 - начале 1970-х годов появляются такие процессно - ориентированные языки моделирования, как SIMULA, SLAM, GASPIV, SIMAN для создания непрерывных и дискретно -событийных моделей [16]. Одновременно развивались языки непрерывного моделирования CSMP III, CSSL III, CSSL IV, ASCL, DARE-Р, объединенные в семейство GSSL (Continuous System Simulation Language - язык имитации непрерывных систем) [2, С. 2-3]. К концу 1997 г. было создано около десятка версий старейшего языка GPSS. Так, разработанная Д.Хенриксеном версия GPSS/H позволила в 30 раз ускорить разработку модели по сравнению с начальным вариантом GPSS [12].
4) 1971 - 1978 гг. Данный период характеризуется развитием уже разработанных языков, основной уклон делается на повышение эффективности процессов моделирование и на превращение моделирования в более простой и быстрый метод исследования сложных систем [3].
5) Конец 70 - начало 80-х гг. Первое время специализированные языки были процедурными и описывали поведение системы в виде последовательности вызываемых подпрограмм. При этом результаты такого моделирования представлялись в терминах специализированного языка и требовали приведения к терминам объекта моделирования. В дальнейшем стали разрабатывать программы компьютерной анимации, которые позволяли отображать проведение имитационных экспериментов. Данный период характеризуется как период перехода от программирования к развитию моделей.
6) Середина 1990 - начало 2000-х гг. В 90-х гг. на мировом рынке появилось множество сред имитационного программирования (Arena, Extend, MicroSaint, Enterprise Dynamics и пр.), содержащие понятный и не требующий знаний программирования интерфейс. В начале 2000-х гг. появилось более 60 программных продуктов имитационного моделирования. Такие среды не требуют программирования в виде последовательности программ. Вместо этого проектировщик компонует модель, перенося готовые блоки из соответствующих библиотек программного продукта на рабочее поле и устанавливает связь между ними. Но при этом данные среды предусматривают программирование для более расширенных возможностей моделирования.
Методы имитационного моделирования
Имитационное моделирование активно применяется во многих областях деятельности человека. На рисунке 2 представлена схема распределения областей применения имитационного моделирования соответственно используемым в моделях уровням абстракции.
Высокий уровень абстракции
(меньше деталей, макроуровень, стратегический уровень)
Средний уровень абстракции
(средняя детальность, мезоуровень, тактический уровень)
Низкий уровень абстракции
(больше деталей, микроуровень, оперативный уровень)
Множества, глобальные зависимости и циклы обратных
• Социальные системы
• Экосистемы • Экономика • Рынок и конкуренция
• Управление персоналом
• Управление транспортным парком • Перевозки . Колл-центры
• Бизнес-процессы • Мультимодальные
терминалы • Аэропорты • Больницы
• Ж/дузлы 4 Производство
• Военные действия • Движение транспорта
• Движение пешеходов
• Компьютерная
аппаратура • Системы контроля
• Управление проектами
• Цепочки поставок
• Бизь
• Склады
■
Рисунок 2 - Области применения имитационного моделирования
В нижней части рисунка располагаются модели физического уровня, в которых объекты реального мира моделируются максимально подробно. На этом уровне необходимо учесть физическое взаимодействие, размеры, скорость, расстояния и т.д. Примерами таких объектов являются движение на регулируемом перекрестке, антиблокировочная система тормозов автомобиля и др.
Модели, расположенные на верхнем уровне схемы, более абстрактны и оперируют такими обобщенными понятиями, как совокупность потребителей, статистика уровня занятости и др., а не отдельными объектами, как с моделями низкого уровня абстракции. Так как взаимодействие между объектами происходит на высоком уровне, такие
модели помогают понять взаимосвязи в системе без необходимости моделировать промежуточные шаги, например, изучить влияние вложений в рекламу на продажи продукта.
Другие модели, не относящиеся к двум описанным уровням абстракции, имеют средний уровень абстракции. Например, при моделировании отделения травматологии необходимо учитывать реальные размеры помещения, чтобы узнать, как долго пациент будет идти от приемной до рентгеновского кабинета. При этом можно исключить физическое взаимодействие между людьми.
От правильности выбора уровня абстракции зависит успешность проекта моделирования. В процессе разработки модели может возникнуть необходимость пересмотреть выбранный уровень абстракции.
В современном имитационном моделировании используют три подхода (методологии) [1, С. 52-54]:
- дискретно - событийное моделирование представляет моделируемую систему в виде процесса (последовательности операций), выполняемой агентами;
- агентное моделирование позволяет видеть взаимодействие моделируемых объектов даже без четкого представления общей схемы процесса;
- системная динамика используется для разработки долгосрочных стратегических моделей.
Каждый метод применяется в некотором диапазоне уровней абстракции. На рисунке 3 представлена схема представления методов имитационного моделирования относительно уровня абстракций [13]:
Рисунок 3 - Методы имитационного моделирования
Как видно из рисунка, системная динамика предполагает очень высокий уровень абстракции и используется для стратегического моделирования систем по управлению персоналом или проектами.
Дискретно - событийное моделирование поддерживает средний и низкий уровни абстракции и применяется для моделирования систем, связанных с движением во времени. Между ними находятся агентные модели, которые могут применяться практически на любом уровне абстракции. Иногда отдельные части системы проще моделировать с помощью методов, отличных от основного. В таких ситуациях лучше всего строить многоподходные модели.
Этапы имитационного моделирования
Вне зависимости от типа модели имитационное моделирование включает в себя несколько основных этапов [11, С. 10-13], схема которых представлена на рисунке 4, и является сложным итерационным процессом:
Рисунок 4 - Этапы имитационного моделирования
1) Формулировка проблемы и определение целей имитационного исследования. Результатом на этом этапе является содержательное описание объекта моделирования. Для этого проводится изучение проблемной ситуации, выполняется сбор данных об объекте моделирования, выполняется обоснование необходимости моделирования и выбор метода моделирования.
2) Разработка концептуального описания. Результатом деятельности системного аналитика на данном этапе является концептуальная модель (или вербальное описание). На этом этапе происходит переход от реальной системы к логической схеме ее функционирования, определяется структура модели, границы системы, приводится описание внешней среды и определяется ее влияние на рассматриваемую систему. Здесь же уточняется методика имитационного
эксперимента. При создании небольших моделей первые два этапа объединяются.
3) Формализация имитационной модели. Составляется формальное описание объекта моделирования. В дальнейшем данное описание необходимо перевести в программу - имитатор в соответствии с технологией программирования с применением языков и систем моделирования.
4) Программирование имитационной модели (разработка программы-имитатора). На данном этапе осуществляется выбор языка и системы моделирования, производится алгоритмизация, программирование и отладка имитационной модели.
5) Испытание и исследование модели, проверка модели. Проводится верификация модели, оценка адекватности, исследование свойств и другие процедуры комплексного тестирования разработанной модели. После того, как имитационная модель реализована с помощью выбранного программного средства, ее необходимо проверить на достоверность реальному объекту.
6) Планирование и проведение имитационного эксперимента. На данном технологическом этапе осуществляется стратегическое и тактическое планирование имитационного эксперимента. При организации направленного вычислительного эксперимента на имитационной модели могут быть выбраны различные аналитические методы для обработки результатов: регрессионный и дисперсионный анализ, градиентный и другие методы оптимизации. Результатом данного этапа является составленный и реализованный план эксперимента, заданные условия имитационного прогона для выбранного плана.
7) Анализ результатов моделирования. Проводится интерпретация результатов моделирования и принятие решений по пригодности разработанной модели. Моделирование является итерационным процессом, поэтому на каждом следующем этапе можно вернуться на предыдущий этап для внесения поправок в процесс моделирования.
Средства имитационного моделирования
В настоящее время, как было описано выше, разработано и используется множество специализированных языков имитационного моделирования: языки моделирования (GPSS, Q-GERT, GASP IV, SLAM II, SIMULA, MODSIM, QNAP) и объектно - ориентированные библиотеки, реализованные на языках C++ и Java [7, С. 7 - 10]. Существуют и множество проблемно - ориентированных систем и средств имитационного моделирования, например, ProModel, Arena, AnyLogic, PowerSim, ReThink, Process Charter и многие другие [7, С. 7-10]. Такие системы имеют понятный графический интерфейс и не требуют от пользователя знания программирования, но они позволяют моделировать только узкие классы систем. Для моделирования математических систем часто и активно
используется система Matlab, имеющая в составе инструмент визуального моделирования динамических систем Simulink [7, С. 7-10]. Matlab включает в себя множество средств и инструментов для построения не только математических систем, но требует знания языка программирования и четкого представления работы моделируемого процесса. Структура пакета Matlab позволяет сочетать и аналитический, и имитационный подходы к созданию модели.
В работах [1, С. 2-4] и [9, С. 42-44] представлен обзор таких часто используемых пакетов имитационного программирования, как AnyLogic, Arena, Simulink. Все три рассматриваемых пакета достойны внимания разработчиков имитационных моделей, необходимо только выбрать тот пакет, который подходит под конкретный объект исследования. Инструментарий пакета Arena направлен на моделирование бизнес -процессов. AnyLogic является более универсальным инструментом, что делает возможным его применение как в учебных целях, так и для проектирования сложных систем в крупных компаниях. Simulink можно рассматривать не только как инструмент вычислительной системы Matlab, но и как самостоятельный продукт имитационного моделирования. Однако он работает только при наличии ядра Matlab, что только расширяет его возможности.
В своей работе по проектированию мультиагентной системы складских перемещений мною применяется имитационное моделирование. Средством разработки проекта выбрана система моделирования AnyLogrc, так как она является универсальным средством моделирования, отвечает всем моим требованиям и включает возможность программирования недостающего функционала. Система моделирования AnyLogic позволяет наглядно представить такие простые операции агента в рассматриваемой задаче, как «принять заявку», «найти объект», «взять объект», «доставить объект» и т.д. Так же в системе предусмотрена возможность расширенной настройки любого объекта моделирования за счет программирования на языке Java. Благодаря данной функции осуществляется настройка работы агента и программируется система разрешения конфликтов как внутри агента, так и между агентами.
Задача проектирования конкретной мультиагентной системы на примере складских перемещений рассмотрена кратко, так как основная цель данной статьи состоит в освещении темы имитационного моделирования и существующих программных систем моделирования. Более подробно о результатах проектирования мультиагентной системы складскими перемещениями в среде AnyLogic предлагается рассмотреть в следующих моих работах.
Заключение
В завершение данной статьи хотелось бы отметить, что не смотря на то, что применение технологий имитационного моделирования насчитывает
не один десяток лет, и даже разработано множество специализированных языков и спроектировано множество программных систем моделирования, нельзя утверждать, что данный вид проектирования сложных систем используется повсеместно. Но несомненным является то, что имитационное моделирование позволяет анализировать системы, представлять структуру имитационной модели близко к естественной, а также позволяет проигрывать модель во времени и анимировать ее поведение, что является очень важным при моделировании сложных и опасных систем. А выбор программной системы и языка моделирования всегда остается за разработчиком модели.
Использованные источники:
1. Асафьев Г.К. Современные системы моделирования / Г.К. Асафьев // сборник трудов молодых ученых и сотрудников кафедры ВТ под редакцией проф. Т.И. Алиева - СПб: СПбГУ ИТМО, 2010. - с 90.
2. Баландина Е.А. Обзор и анализ средств имитационного моделирования / Е.А. Баландина, С.В. Тимошенко // Электронный научный журнал «Современные проблемы науки и образования». - г. Пенза - 2014. - №3.
3. Бигдан В.Б. Становление и развитие имитационного моделирования в Украине / В.Б. Бигдан, В.В. Гусеев, Т.П. Марьянович // г.Киев, Украина [Электронный ресурс]. - URL: http://masters.donntu.org/2008/kita/rubtsov/library/stan.htm. (дата обращения: 03.02.2018).
4. Гуревич Л.А. Мультиагентные системы / Л.А.Гуревич, А.Н.Вахитов // Введение в Computer Science. - 2005 - c 116 - 139.
5. Дегтярев М. Язык программирования ALGOL (АЛГОЛ) [Электронный ресурс]. - URL: http://www.progaprosto.ru/doc/yazyk programmirovaniya algol.php (дата обращения: 21.01.2018).
6. Конюх В.Л. Развитие средств имитационного моделирования / В.Л. Конюх, Я.Б. Игнатьев, В.В. Зиновьев // Теоретические основы и методология имитационного и комплексного моделирования. - Новосибирск, Кемерово. -2005. - с. 122 - 124.
7. Кузнецов Ю.А. Применение пакетов имитационного моделирования для анализа математических моделей экономических систем (учебно -методические материалы по программе повышения квалификации «Применение программных средств в научных исследованиях и в преподавании математики и механики) / Ю.А. Кузнецов Ю.А., В.И.Перова. -2007. - Нижний Новгород. - с. 99.
8. Курбаковских Е.А. Разработка системы моделирования динамических систем на основе ГЕРТ - СЕТЕЙ / Е.А. Курбаковских // Молодежь и наука: сборник материалов Х Юбилейной Всероссийской научно-технической конференции студентов, аспирантов и молодых ученых с международным участием, посвященной 80-летию образования Красноярского края
[Электронный ресурс]. — Красноярск: Сибирский федеральный ун-т, 2014. -URL: http://conf.sfu-kras.ru/sites/mn2014/directions.html (дата обращения: 21.01.2018).
9. Михеева Т.В. Информационные технологии имитационного моделирования в организации корпоративной производственной системы / Т.В. Михеева // Вестник НГУ (серия: Информационные технологии). - Т.7, выпуск 2. - 2009. - с 42-28.
10.Мультиагентная (многоагентная) система. Основные принципы построения мультиагентной системы «Управление социально -эпидемическими процессами на примере эпидемии ВИЧ/СПИД» [Электронный ресурс] // Центр проблем организации государственных служащих. - 2015. - URL: http://parentalnotes.com/?page_id=2621 (дата обращения: 12.12.2017.
11. Наместников А.М. Разработка имитационных моделей в среде MATLAB. Методические указания для студентов / А. М. Наместников // УлГТУ. -Ульяновск. - 2004. - С. 72.
12.Национальная библиотека им. Н.Э. Баумана [Электронный ресурс]. -URL: https://ru.bmstu.wiki/GPSS (General Purpose Simulation System) (дата обращения: 21.01.2018).
13. Румянцев М. Средства имитационного моделирования бизнес - процессов / М. Румянцев // Корпоративные системы. - 2007. - №2.
14.Сажина Ю.В. Актуальные проблемы авиации и космонавтики [Электронный ресурс] / Ю.В. Сажина, Л.В. Липинский, А.С. Свиридова // Тезисы III Международная науч.-практ. конф: в 2 т. Т.1. Технические науки. Информационные технологии./под общ. ред. Ю.Ю.Логинова; Сиб. гос. аэрокосмич. ун-т. - Красноярск, 2017. - Т.1.
15. Салмина Н.Ю. Имитационное моделирование (учебное пособие) / Н.Ю.Салмина // Томский государственный университет систем управления и радиоэлектроники. -Томск «Эль Контент». - 2012 - с. 88.
16. Типовые системы имитационного моделирования [Электронный ресурс]. - URL: http://life-prog.ru/1 49033 tipovie-sistemi-imitatsionnogo-modelirovaniya.html (дата обращения: 08.02.2018).
17.Язык моделирования систем GPSS [Электронный ресурс]. - URL: http://msbro.ru/wp-content/uploads/2009/11/ (дата обращения: 21.01.2018).
18.FORTRAN [Электронный ресурс]. - URL: http://progopedia.ru/language/fortran/ (дата обращения: 21.01.2018).