УДК 519.711.3 519.682.6 004.514.2
ОРГАНИЗАЦИЯ ПРАКТИКУМА ПО КОМПЬЮТЕРНОМУ ИМИТАЦИОННОМУ МОДЕЛИРОВАНИЮ НА БАЗЕ СРЕДЫ ESimPL
© 2012 Е. А. Бабкин1, В. В. Разиньков2
1канд. техн. наук, доцент, профессор каф. программного обеспечения и администрирования информационных систем e-mail: [email protected] 2аспирант каф. программного обеспечения и администрирования информационных
систем e-mail: [email protected]
Курский государственный университет
Рассматривается организация и технология моделирования среды имитационного событийного моделирования дискретных систем ESimPL, ориентированной на обучение имитационному моделированию. Описывается структура и содержание практикума по разделу «Имитационное моделирование» дисциплины «Компьютерное моделирование» на базе среды ESimPL.
Ключевые слова: имитационное моделирование, среда моделирования,
технология моделирования, событийный граф.
Создание имитационных моделей сложных систем и проведение исследований с этими моделями представляют собой достаточно трудоемкий процесс. Успех проведения имитационных экспериментов существенным образом зависит от инструментальных средств, используемых при моделировании. Используемые инструментальные средства также во многом определяют методику преподавания и содержание раздела «Имитационное моделирование» дисциплины «Компьютерное моделирование», набор основных концептов используемых при моделировании, и как следствие - способ мышления разработчика моделей. Для моделирования процесса функционирования систем в настоящее время используют библиотеки поддержки имитационного моделирования, языки имитационного моделирования и интегрированные среды [Кельтон 2004; Савина 2007].
Использование в учебном процессе языков имитационного моделирования, позволяющих описывать сложные системы, достаточно трудоемко. Интегрированные среды, предоставляющие возможность визуального проектирования моделей, предъявляют высокие требования к вычислительным ресурсам, имеют большую стоимость и ориентированы на промышленное применение, а не на учебный процесс. Последний фактор имеет большое значение, поскольку при изучении компьютерного моделирования ставятся различные задачи: от изучения внутренней организации систем моделирования до решения учебных задач с помощью систем моделирования. В связи с этим в практикуме в качестве инструментального средства используется разработанная нами среда имитационного моделирования дискретных систем ESimPL [Бабкин, Разиньков 2011; Бабкин, Разиньков 2011а]. Данная среда ориентирована на процесс обучения и обладает графическим вводом моделей, что значительно снижает трудоемкость разработки и проверки моделей, а также повышает наглядность процесса моделирования. ESimPL позволяет проводить различные эксперименты с моделью, по ходу которых изменять их условия и наблюдать за состоянием всех объектов модели и
самой системы моделирования. Все это повышает эффективность обучения компьютерному моделированию. Среда ESimPL базируется на использовании событийных графов для представления процесса функционирования исследуемой системы [Бабкин 2005] и метода синтеза событийных графов [Бабкин 2006].
В настоящее время существуют две основные разновидности систем и сред имитационного моделирования (СИМ): процессные (процессно-ориентированные) и событийные (событийно-ориентированные).
В процессных СИМ поведение системы представляется в виде взаимосвязанной последовательности действий. Основными концептами в этом случае являются действия.
В событийных СИМ поведение системы представляется в виде взаимосвязанной последовательности событий. Основными концептами в этом случае являются события.
Событийные модели представляют процесс функционирования исследуемой системы в терминах событий и определяют событийное мышление разработчика моделей, то есть мышление в терминах событий. Выделяются два уровня представления событийных моделей: уровень математической модели - событийный граф и уровень программной модели - в виде совокупности процедур макрособытий на языке программирования высокого уровня с использованием системы поддержки имитационного моделирования, представляющей собой библиотеку процедур и функций или классов на данном языке программирования. В связи с этим событийная система моделирования дискретных систем включает два языка: язык визуального моделирования и язык программирования модели [Бабкин, Разиньков 2011; Бабкин, Разиньков 2011 а].
Для визуального представления событийных моделей на уровне математической модели в соответствии с подходом, изложенным в работе [Бабкин 2006], используются графические и внутренние элементы модели.
Элементами модели, имеющими свои графические обозначения, являются событие, условие, начало и окончание распараллеливания процесса и дуги четырех типов: мгновенного следования, следования с задержкой, мгновенной отмены и отмены события с задержкой [Там же]. Основным графическим элементом модели является событие.
Внутренними элементами, не представляемыми графически, являются статические и динамические объекты и переменные модели. Статическими объектами являются средства (каналы), очереди и ресурсы; динамическими объектами - процессы и активности. Каждому объекту ставится в соответствие два события изменения состояния: занятие и освобождение - для статического объекта, начало и конец выполнения - для динамического. Переменные разделяются на две разновидности: глобальные переменные модели (переменные процесса моделирования) и переменные процесса. Переменная времени языка ESimPL является вещественной переменной двойной точности. Типы переменных включают типы языка С++ и специальные типы: Histogram - гистограмма, TUserProcess - указатель процесса. Переменная типа Histogram (<нижняя граница>, <верхняя граница>, <число интервалов>) используется для накопления статистических данных.
Языком программирования моделей среды ESimPL является язык высокого уровня С++, дополненный библиотекой поддержки имитационного моделирования. Язык моделирования ESimPL является развитием событийно-ориентированного языка SMPL [Автоматизация проектирования 1979] и разработан с использованием объектноориентированного подхода. Программная модель генерируется на языке С++, в тексте которой используются операторы языка ESimPL, реализованные в виде вызова методов граничного класса библиотеки поддержки имитационного моделирования. Язык
моделирования определяется набором операторов, используемых при разработке программной модели.
Основу библиотеки составляют 7 классов, разделенных на 3 группы:
- граничный (интерфейсный) класс, реализующий функциональность языка моделирования; открытые методы данного класса определяют полный набор операторов языка, а также содержат в себе списки регистрируемых в модели объектов (средств, очередей, ресурсов и процессов), переменную модельного времени, переменную текущего процесса, список запланированных и прошедших событий и другие параметры;
- классы, реализующие поведение статических и динамических объектов модели, накапливающие необходимые статистические данные эксперимента (результаты моделирования);
- вспомогательные классы, поля которых хранят информацию о постановке процессов в очереди и занятии ресурсов во время работы программной модели.
Язык моделирования включает следующие группы операторов, реализованных в библиотеке поддержки имитационного моделирования:
- операторы определения в модели статических объектов (средств, очередей, ресурсов);
- операторы изменения и проверки состояний статических объектов;
- операторы создания и удаления в модели динамических объектов (процессов);
- операторы работы с событиями (планирование, отмена и выбор очередного события из списка запланированных);
- операторы генерации псевдослучайных величин с вероятностными распределениями определенного вида (равномерное, экспоненциальное, треугольное);
- оператор генерирования отчёта по результатам моделирования.
Программные средства среды ESimPL включают CASE-средство разработки
событийного графа дискретной системы, систему поддержки имитационного моделирования в виде библиотеки классов и шаблоны примеров с детальными пояснениями. CASE-средство позволяет в интерактивном режиме вводить и редактировать имитационный событийный граф, выполнять проверку разрабатываемого событийного графа функционирования системы на соответствие правилам построения событийных графов, преобразовывать исходный событийный граф в программно-реализуемую форму (граф макрособытий), выполнять проверку корректности программно-реализуемой формы графа с выделенными макрособытиями, сохранять разработанную модель в текстовый файл, содержащий описание модели на языке разметки XML, а также загружать модель из него, генерировать код программной модели на языке С++. Сгенерированная модель может быть откорректирована и откомпилирована разработчиком модели. Скомпилированная модель позволяет выполнять прогон в режимах калибровки - режиме с выводом состояний всех статических объектов системы и режиме трассировки макрособытий - и в режиме компьютерного эксперимента, в котором выводится только отчет о моделировании.
Технология моделирования, реализованная в среде ESimPL, включает следующие этапы:
1. Постановка и анализ задачи компьютерного имитационного моделирования.
2. Создание концептуальной модели: содержательное описание модели
(текстовое описание, временные диаграммы, блок-схемы); проверка полноты и адекватности модели.
3. Создание математической модели на графическом языке ESimPL: выделение статических и динамических объектов; определение возможных состояний объектов;
выделение событий; определение переменных; определение причинно-следственных связей между событиями и представление модели в виде событийного графа; задание спецификаций всех вершин и дуг событийного графа; верификация событийного графа; выделение макрособытий и преобразование событийного графа в программнореализуемую форму; верификация макрособытийного графа.
4. Создание программной модели: генерация исходного кода программной модели на языке С++; верификация программной модели путем детерминированного и стохастического тестирования.
5. Проведение эксперимента: планирование эксперимента; выполнение
рабочих прогонов; обработка, анализ, представление и интерпретация результатов моделирования.
В работе Е.А. Бабкина [2008] изложен подход к преподаванию дисциплины «Компьютерное моделирование», основанный на использовании событийных графов [Бабкин 2005] для представления моделей. При построении раздела практикума «Имитационное моделирование» используется принцип «от простого к сложному», то есть от изучения и исследования готовых моделей к самостоятельному созданию моделей. В практических работах варьируются прикладные области моделирования. Для уменьшения повторяемости и увеличения вариативности заданий имеется избыточное число практических работ и избыточное число заданий по ним. Практикум включает следующие разделы (практические работы):
1. Исследование системы массового обслуживания (СМО).
2. Событийные модели дискретных систем. Язык моделирования ЕБ1шРЬ.
3. Калибровка и проверка пригодности модели.
4. Планирование и выполнение имитационного эксперимента.
5. Сетевые модели планирования и управления.
6. Реализация генераторов псевдослучайных чисел.
В работе 1 используется готовая программная модель одноканальной и многоканальной СМО и СМО с циклическим обслуживанием. Задачей студента является проведение имитационного эксперимента, построение зависимостей среднего времени обслуживания заявки в системе от среднего времени поступления заявки и от среднего времени обслуживания заявки в канале, выполнение расчетов с использованием аналитической модели и сравнение результатов эксперимента с результатами расчетов. В работах 2-5 используется среда имитационного моделирования дискретных систем ЕБ1шРЬ. Причем в работе 2 студент знакомится с представлением модели СМО в виде событийного и макрособытийного графа и технологией работы в среде моделирования. В готовый событийный граф вносятся изменения в соответствии индивидуальным заданием, корректируются
макрособытийная и программная модели, выполняется прогон модели, по результатам прогона строится событийная временная диаграмма. В работах 3 и 4 на основании индивидуального задания студент разрабатывает событийную модель, выполняет детерминированную и стохастическую проверку программной модели, планирует и выполняет эксперимент, строит зависимости и выполняет их анализ. В работе 5 выполняется разработка и исследование сетевой модели планирования и управления с использованием событийных графов, в работе 6 - программирование генераторов псевдослучайных чисел на языке программирования высокого уровня.
Достоинством предлагаемого практикума на базе среды ЕБ1шРЬ является наглядное визуальное моделирование событийного алгоритма функционирования системы, развивающее событийное мышление студента и сокращающее трудоемкость разработки модели. Возможность внесения изменений в программную модель на уровне языка программирования делает данную среду моделирования достаточно
гибким инструментом решения различных студенческих заданий. Разработанный практикум по разделу «Имитационное моделирование» дисциплины «Компьютерное моделирование» внедрен в вузовский учебный процесс для различных специальностей направления «Информатика».
Библиографический список
Автоматизация проектирования вычислительных систем. Языки, моделирование и базы данных / под ред. М. Брейера. М.: Мир, 1979. 836 с.
Бабкин Е. А. Событийные модели дискретных систем / Курск. гос. ун-т. Курск, 2005. 18 с. Деп. в ВИНИТИ 14.01.05, № 30-В2005
Бабкин Е. А. О синтезе событийных моделей дискретных систем [Электронный ресурс] // Ученые записки. Электронный научный журнал Курского государственного университета. 2006. № 1. URL: http://www.scientific-notes.ru/pdf/s15.pdf (дата
обращения: 24.04.2012). № 77-26463
Бабкин Е. А., Бабкина О. М. О преподавании компьютерного моделирования для студентов направления «Информатика» // Вестник Московского городского
педагогического университета. Серия «Информатика и информатизация образования». № 6 (16), 2008. М.-Курск: Курск. гос. ун-т, 2008. С. 11-14
Бабкин Е. А., Разиньков В. В. Учебная система имитационного событийного моделирования // Международный научный журнал Acta Universitatis Pontica Euxinus. Спец. вып.: сб. материалов VII междунар. конф. «Стратегия качества в
промышленности и образовании» - 3-10 июня 2011 г., Варна, Болгария, Т. 3, Днепропетровск, Варна, 2011. С. 562-564.
Бабкин Е. А., Разиньков В. В. Среда имитационного событийного моделирования // Пятая всеросс. науч.-практическая конф. по имитационному моделированию и его применению в науке и промышленности «Имитационное моделирование. Теория и практика» ИММОД-2011: сб. докл. Т. 1. СПб.: ОАО «ЦТСС», 2011. С. 336-340
Кельтон В., Лоу А. Имитационное моделирование. Классика CS. 3-е изд. СПб.: Питер; Киев: Издат. группа BHV, 2004. 847 с.
Савина О.А., Погорелов А.С. Разработка высокоуровневой среды имитационного моделирования JaSim // Третья всеросс. науч.-практическая конф. «Имитационное моделирование. Теория и практика» ИММОД-2007: сб. докл. Т. 1. СПб.: ФГУП ЦНИИТС, 2007. С. 302-305