Математическое моделирование. Документ Microsoft Word. исследование и оптимизация свойств локальных информационных систем
Скачать 1.67 Mb.
|
Тема 9. Моделирующие комплексы Цели изучения темы: · изучить сущность подхода на основе методологии имитационного моделирования к анализу и синтезу информационных процессов и систем. Задачи изучения темы: · изучить сущность и границы применимости метода статистических испытаний; · изучить основные принципы компьютерной имитации стохастических процессов; · понять возможности моделирующих комплексов для создания и применения имитационных моделей. Успешно изучив тему, Вы: получите представление о: · когда применяется и как практически реализуется модель на основе метода статистических испытаний; · принципах построения и механизме программной имитации стохастических процессов; будете знать: · как можно создавать модели с помощью систем имитационного моделирования; · из чего состоят и как следует анализировать результаты прогонов программной модели. Вопросы темы: 1. Создание имитационных моделей с помощью систем моделирования. 2. Конструкционные элементы модели системы Pilgrim. 3. Средства описания модели в системе Pilgrim. Вопрос 1. Создание имитационных моделей с помощью систем моделирования. Имитационную модель нужно создавать. Для этого необходимо специальное программное обеспечение - система моделирования (simulation system). Специфика такой системы определяется технологией работы, набором языковых средств, сервисных программ и приемов моделирования. Имитационная модель должна отражать большое число параметров, логику и закономерности поведения моделируемого объекта во времени (временная динамика) и в пространстве (пространственная динамика). Моделирование объектов экономики связано с понятием финансовой динамики объекта. Имитационное моделирование представляет собой процесс, реализуемый с помощью средств вычислительной техники, позволяющий автоматизировать решение таких задач как: 1) Создание или модификация имитационной модели. 2) Проведение модельных экспериментов и интерпретация получаемых результатов. В случаях разработки сложных моделей, предназначенных для проведения большого объема экспериментов, для решения этих задач используются моделирующие комплексы (системы). К числу основных требований, предъявляемых к моделирующим системам, относятся следующие: 1) Рациональный состав функциональных возможностей, обеспечивающий баланс между высокой эффективностью разработки моделей, с одной стороны, и простотой овладения этими функциями пользователями системы, с другой стороны. 2) Открытость системы с точки зрения возможностей подключения других ресурсов (в частности, результаты моделирования, используемые для принятия управленческих решений, могут передаваться из моделирующей системы в базы данных экономической информационной системы, например, через интерфейс ODBC - если моделирование проводится в среде Windows - либо в процессе моделирования обращаться к данным, хранящимся в базе данных). 3) Оптимальный баланс между уровнем общности используемых в системе средств, обеспечивающих сокращение времени разработки модели, и универсальностью в смысле возможности использования системы для разработки моделей достаточно широкого класса. 4) Экономическая целесообразность, означающая, что эффект от применения системы к решению практических задач в течение периода ее промышленной эксплуатации существенно превысит затраты на создание системы, ее сопровождение и освоение пользователями. С началом развития средств вычислительной техники и обусловленным им прогрессом теории и практики имитационного моделирования создано более 300 языков моделирования дискретных систем и процессов. Примером одной из наиболее старых систем моделирования является система GPSS, которая была разработана сотрудником компании IBM Джеффри Гордоном в 1961 году (он же был и создателем описанного выше событийного алгоритма). Система и по сей день остается в числе наиболее распространенных и в своей несколько усеченной версии доступна для свободного применения. Другой распространенной в России системой является система Pilgrim, представляющая собой программный продукт, созданный на объектно-ориентированной основе и учитывающий основные достоинства ряда других моделирующих систем. К достоинствам системы следует отнести: 1) Возможность имитации в одной модели процессов, связанных с движением материальных, информационных и финансовых потоков; 2) Наличие развитой CASE-оболочки, позволяющей конструировать многоуровневые модели в режиме структурного системного анализа; 3) Наличие интерфейсов с базами данных; 4) Возможность для конечного пользователя моделей непосредственно анализировать результаты благодаря формализованной технологии создания функциональных окон наблюдения за моделью с помощью Visual C++, Delphi или других средств; 5) Возможность управления моделями непосредственно в процесс выполнения с помощью специальных окон диалога. С помощью системы Pilgrim можно создавать дискретно-непрерывные модели. Разрабатываемые модели обладают свойством коллективного управления процессом моделирования. В текст модели можно вставлять блоки на языке C++. Различные версии этой системы работали на IBM-совместимых и DEC-совместимых компьютерах под операционными системами семейств Unix или Windows. Система Pilgrim обладает свойством мобильности, т.е. переноса на любую другую платформу при наличии компилятора C++. Поскольку выполняемый код модели в системе Pilgrim является результатом компиляции описания модели, то программные модели отличаются высоким быстродействием. Это позволяет эффективно их применять для решения задач оценивания, принятия управленческих решений и адаптивного выбора вариантов. Полученный в результате компиляции объектный код можно встраивать в программные комплексы или применять на любом объекте, так как для запусков разработанных программных моделей средства системы Pilgrim не требуются. Рассматриваемые далее подходы и методические приемы ориентированы на систему Pilgrim, однако в полной мере сохраняют свою общность и могут использоваться в других моделирующих системах. Вопрос 2. Конструкционные элементы модели системы Pilgrim. Для построения моделей в системе Pilgrim используются следующие концептуальные и конструкционные элементы. Граф модели. Структурной средой протекания всех моделируемых процессов, независимо от количества уровней структурного анализа, является ориентированный граф. Транзакт. Представляет собой формальный запрос на какое-либо обслуживание. Транзакт в отличие от обычных заявок, которые рассматривались при анализе модели массового обслуживания в теме по стохастическим системам, имеет набор динамически изменяющихся свойств и параметров. Транзакт является динамической единицей любой модели, работающей под управлением имитатора, и может выполнять следующие действия: · порождать группы (семейства) других транзактов; · поглощать другие транзакты конкретного семейства; · захватывать ресурсы, использовать их в течение некоторого времени, а затем - освобождать; · определять времена обслуживания, накапливать информацию о пройденном пути и иметь информацию о своем дальнейшем пути и о путях других транзактов. К основным параметрам транзактов относятся: · уникальный идентификатор транзакта; · идентификатор (номер) семейства, к которому принадлежит транзакт; · наборы различных ресурсов, которые транзакт может захватывать и использовать какое-то время; · время жизни транзакта; · приоритет - неотрицательное число; чем больше приоритет, тем приоритетнее транзакт (например, в очереди); · параметры обслуживания в каком-либо обслуживающем устройстве (включая вероятностные характеристики). Транзактами могут быть: · требование на перечисление денег; · заказ услуг в какой-либо компании; · телеграмма, поступающая на узел коммутации сообщений; · сигнал о загрязнении какого-либо пункта местности; · приказ руководства; · покупатель магазина; · пассажир самолета; · ожидающая анализа проба загрязнения почвы. Пути перемещении транзактов по графу стохастической сети определяются логикой функционирования компонентов модели в узлах сети. Узлы. Узлы графа модели представляют собой центры обслуживания транзактов (но необязательно массового обслуживания). В узлах транзакты могут задерживаться, обслуживаться, порождать семейства новых транзактов, уничтожать другие транзакты. С точки зрения вычислительных процессов в каждом узле порождается независимый процесс. Вычислительные процессы выполняются параллельно и координируют друг друга. Они протекают в едином модельном времени, в одном пространстве, учитывают временную, пространственную и финансовую динамику. В системе Pilgrim имеется 17 типов узлов, реализующих специальные функции обслуживания. Нумерация и присвоение имен узлам стохастической сети производится разработчиком модели. Транзакт всегда принадлежит одному из узлов графа и независимо от этого относится к определенной точке пространства или местности, координаты которой могут изменяться. Каждый узел имеет графическое обозначение, функциональное наименование, произвольный уникальный номер и произвольное название. Пути следования транзактов обозначаются дугами - сплошными линиями со сплошной стрелкой на одном конце. Возможные воздействия одних узлов на другие узлы изображаются пунктирными линиями со стрелкой на одном конце. Примерами узлов могут служить: · счет бухгалтерского учета; · бухгалтерия предприятия; · производственный (ремонтный) участок; · транспортное средство, которое перемещает ресурсы из одной точки пространства в другую; · передвижная лаборатория; · компьютерный центр коммутации сообщений (или пакетов сообщений); · склад ресурсов. Событие. Событием называется факт выхода из узла одного транзакта. События всегда происходят в определенные моменты времени. Они могут быть связаны и с точкой пространства. Интервалы между двумя соседними событиями в модели - это, как правило, случайные величины. Так, если в момент времени t произошло какое-то событие, а в момент времени t+d должно произойти ближайшее следующее (но не обязательно в этом же узле) и если в модель включены непрерывные компоненты, то очевидно, что передать управление таким компонентам модели можно только на время в пределах интервала (t, t+d). Разработчик модели не может управлять событиями (например, из программы). Поэтому функция управления событиями отдана специальной управляющей программе - координатору, входящей в состав модели. Ресурс. Независимо от своей природы ресурс в процессе моделирования может характеризоваться тремя параметрами: мощностью, остатком и дефицитом. Мощность ресурса - это максимальное число ресурсных единиц, которые можно использовать для различных целей. Остаток ресурса - число незанятых на данный момент единиц, которые можно использовать для удовлетворения транзактов. Дефицит ресурса - количество единиц ресурса в суммарном запросе транзактов, стоящих в очереди к данному ресурсу. При решении задач динамического управления ресурсами можно выделить три основных типа ресурсов: материальные, информационные и денежные. Пространство. Географическое, декартова плоскость (можно ввести и другие). Узлы, транзакты и ресурсы могут быть привязаны к точкам пространства и перемещаться в нем. Примером графа модели в системе Pilgrim может служить граф модели рассмотренной ранее одноканальной СМО с неограниченной очередью (рис. 24): Рис. 24. Граф модели одноканальной СМО Граф модели включает следующие узлы (транзакты в имитационной модели означают запросы к системе массового обслуживания).
Вопрос 3. Средства описания модели в системе Pilgrim. Для автоматизации составления описания модели и получения на его основе исходного текста программной модели в моделирующей системе Pigrim предусмотрен специальный конструкторGem. На рис. 25 показано окно конструктора с построенным в его рабочей плоскости графом модели СМО. Рис. 25. Граф модели СМО на рабочей плоскости конструктора Gem Рассмотрим основные возможности и правила работы с конструктором. Результаты проектирования/корректировки модели. Описание модели конструктор сохраняет в файле с расширением pgf (Pilgrim graf file), выполняя команду Сохранить (Сохранить как) меню Файл. Для законченной версии модели разработчик может сгенерировать программный файл модели с расширением cpp, который будет далее скомпилирован в среде Visual C++ и вместе с подключенными библиотеками и ресурсами Pilgrim использован для сборки исполнительного модуля программной модели. Файл с исходным текстом программы создается командой Генерировать С++-файл меню Выполнить. Установка параметров моделирования. Задание основных параметров модели производится с помощью инструмента ModBeg (рис. 26): Рис. 26. Окно задания параметров моделирования В строку Название вводится имя модели, которое будет указано в таблице результатов моделирования. В строке Время указывается время моделирования. В строке ПСЧ указывается начальное значение для генератора псевдослучайных чисел, необходимых для имитации случайных процесов. По умолчанию в качестве начального значения берется показание компьютерного таймера. Строки Задержка и Поток предназначены для задания номеров контролируемых узлов: очереди (Queue) и терминатора (Term) соответственно. Для указанных узлов в процессе моделирования будут строиться графики времени задержки в узле типа Queue и динамики выходного потока в узле типа Term. В правой верхней части окна записывается начальный текст на С++, если он необходим. Программный текст делится на две части: начальный текст используется для подключения внешних библиотек и настройки глобальных параметров; текст инициализации ресурсов подготавливает параметры конкретных узлов типов attach и send. Другие поля окна позволяют редактировать переменные, стандартные для оператора modbeg. Описание выводного файла. Параметры файла, содержащего результаты моделирования, задаются с помощью инструмента ModEnd (рис. 27): Рис. 27. Окно задания параметров файла-отчета Определение переменных. При определении новой переменной модели (рис. 28) обязательными параметрами в окне ввода (вызывается с помощью инструмента Переменные на панели инструментов) являются имя и тип, значение пользователь может задавать или не задавать по своему усмотрению. Рис. 28. Окно задания переменных модели Построение графа модели. В процессе редактирования графа модели можно выполнять следующие действия: · добавлять новые узлы; · перемещать узлы в области построения; · удалять существующие узлы; · определять маршруты переходов транзактов. Для редактирования графа модели в конструкторе используется технология «перетаскивания и бросания» объекта, обозначающего тип требуемого узла или действия, из панели инструментов в область построения графа. Панель инструментов в левой части окна редактора содержит значки, обозначающие узлы системы. Изображения узлов перетаскиваются при нажатой левой кнопке мыши. На панели представлены группы узлов, поэтому в отдельных случаях (в тех, когда на панели указан другой класс узла) для указания класса узла потребуется выполнить дополнительное действие. Задать класс можно: 1) Перетаскиванием графического символа какого-либо узла из группы на рабочую плоскость и последующим изменением свойства Класс узла (окно свойств может быть вызвано выбором опции Параметры контекстного меню, отображаемого нажатием правой клавиши мыши, или двойным щелчком левой кнопки по изображению узла). Например, узел term можно задать, поместив на рабочую плоскость узел ag и поменяв его класс со значения AG на значение Terminator. 2) Одним или несколькими нажатиями клавиши под значком узла на панели инструментов до момента появления узла нужного класса. Узлы нумеруются автоматически (первая цифра номера означает номер плоскости, так как в системе Pilgrim есть возможность иерархического построения графа моделей. Для удаления узла нужно: · захватить инструмент левой кнопкой мыши; · не отпуская кнопку, поместить указатель мыши на удаляемый узел; · подтвердить необходимость удаления. Для проведения стрелки нужно: · захватить инструмент левой кнопкой мыши; · не отпуская кнопку, поместить указатель мыши на узел-источник стрелки; · отпустить кнопку, что будет означать привязку начала стрелки к данному узлу; · поместить указатель мыши на узел-приемник стрелки и щелкнуть левой кнопкой мыши. Для удаления стрелки нужно: · войти в окно описания узла-источника стрелки; · пометить мышкой соответствующий Выход из узла; · нажать кнопку Удалить. Номер узла присваивается конструктором при его создании. Обычно первые 100 номеров зарезервированы для узлов send - бухгалтерских счетов. Нумерация создаваемых узлов осуществляется последовательно, с номера 101. Смена номера узла возможна с помощью соседнего с номером диалогового поля, но не рекомендуется для узлов, созданных ранее. Определение параметров узла. Каждый узел модели характеризуется множеством параметров: · типом; · порядковым номером; · именем; · принадлежностью к плоскости; · ссылками; · условиями переходов; · встроенным программным текстом; · параметрами, определяемыми спецификой типа узла, такими, как закон - распределения для узла типа serv, приоритет для queue и т.п. Для описания узла необходимо открыть окно его свойств (рис. 29). Рис. 29. Окно задания свйств узла Для вызова окна необходимо дважды щелкнуть по изображению узла левой кнопкой мыши либо один раз щелкнуть по узлу правой кнопкой и после появления всплывающего меню выбрать в нем пункт Параметры узла. Узел может содержать несколько ссылок на узлы, в которые может перейти транзакт из данного узла. Выбор маршрута должен осуществляться в соответствии с условиями, которые формулируются в правой нижней части окна определения параметров транзакта (поле Условие перехода). Для каждого из маршрутов выхода транзакта могут определяться действия, выполняемые после выхода, в виде операторов на языке С++. Выбор исходящей ссылки осуществляется щелчком мыши в диалоговом поле Выходы. Любой вход и любой выход можно удалить, нажав кнопку Удалить под списком. На Рис. показан пример задания условий (для окна на рис. 29), при которых транзакт переходит из узла 102 в узел 103, и действий, выполняемых в этом случае. Рис. 30. Спецификация условий и действий Панель Общий С++ текст позволяет включить в процедуру обработки узла произвольный текст на языке С++. Текст имеет две части: одна выполняется до выполнения узлового оператора, другая - после. До вхождения транзакта в узловой оператор могут формироваться значения параметров, необходимых для выполнения оператора, например, величина среднего времени обслуживания транзакта в узле serv. После выхода транзакта из узлового оператора могут стоять конструкции, предназначенные для управления логикой работы модели (сигнальные функции - см. далее) или осуществляющие сбор (накопление) статистики для подсчета итогов. Поле Имя содержит имя узла, отображаемое на схеме и в таблице с результатами моделирования. Имена, назначаемые по умолчанию, можно (и целесообразно) изменять. Значение поля Класс выбирается из списка, который состоит из типов узлов, имеющих одинаковый графический символ. Например, узел типа send можно сменить на attach (при этом изменяется набор и смысл параметров узла). Нажатие кнопки Определить параметры приведет к появлению окна, вид которого зависит от типа узла. Так, для узла serv окно будет иметь вид, показанный на рис 31: Рис. 31. Окно установки параметров узла Смысл параметров Параметр 1, Параметр 2, Параметр 3 зависит от значения, указанного в поле ввода параметра Закон распределения. В частности, Параметр 1 для экспоненциального и нормального законов распределения представляет собой математическое ожидание (среднее), а Параметр 2 для нормального законов распределения - среднеквадратическое отклонение времени нахождения транзакта в узле. Поле Плоскость показывает, к какой плоскости принадлежит узел, и доступно только для просмотра. Проверка графа модели. Построенная с помощью конструктора модель подвергается проверке. Предусмотрено два типа проверок: · автоматическая в процессе построения модели (заведомо ложные действия блокируются); · полная проверка графа (запускается командой меню). Результат проверки графа выдается в окне в виде списка возможных и явных ошибок (рис. 32), не позволяющих сгенерировать программный Рilgrim-файл (к явным ошибкам относятся отсутствие выходов или входов узла и неопределенные вход/выход плоскости – см. далее). Рис. 32. Окно сообщений об ошибках в графе модели Проверка корректности графа производится автоматически в момент, непосредственно предшествующий генерации программного Рilgrim-файла, а также может быть вызвана явно указанием пункта Выполнить основного меню. Выводы: 1. Для исследования стохастических систем применяется имитационное моделирование. Механизм машинной реализации этой методологии основан на агрегатном описании моделируемых процессов, при котором программным образом воспроизводится последовательность смен моделируемой системой своих состояний. 2. Эффективность применения подхода на основе имитационного моделирования к решению сложных задач можно значительно повысить путем использования моделирующих комплексов. Их применение позволяет значительно сократить затраты на создание модели проведение на ней машинных экспериментов. 3. Повысить эффективность и автоматизировать процессы создания и применения моделей в моделирующих комплексах можно путем построения концептуальной основы, позволяющей получать формализованное описание моделируемого объекта и генерировать на его основе программный код. Основными элементами описание модели в системе Pilgrim являются граф, транзакт, узел, ресурс, событие, пространство. 4. Использование стандарта для описания модели в моделирующих комплексах позволяет автоматически получать исходный текст программной модели с помощью специальных компонентов. В системе Pilgrim таким компонентом является конструктор моделей Gem. Вопросы для самопроверки: 1. Решение каких задач можно автоматизировать при помощи моделирующих комплексов? 2. Поясните на блок-схеме логическую последовательность действий по имитации работы одноканальной СМО с очередью. 3. Какие требования предъявляются к моделирующим комплексам? 4. Каковы основные достоинства моделирующей системы Pilgrim? 5. Что представляет собой модель в системе Pilgrim? 6. Что называется транзактом в модели системы Pilgrim? 7. Что такое узел в системе Pilgrim? 8. Какие узлы системы Pilgrim нужны для моделирования одноканальной системы массового обслуживания? 9. Что такое ресурс в системе Pilgrim? 10. Что является событием в модели системы Pilgrim? Литература по теме: 1. Емельянов А.А., Власова Е.А., Дума Р.В. Имитационное моделирование экономических процессов / Под ред. А.А. Емельянова. – М.: Финансы и статистика, 2009. – 480 с.. Емельянова. – М.: Маркет ДС, 2010. – 464 с. |