
- •Методические указания
- •1. Цели и задачи дисциплины
- •Основные умения, приобретаемые студентами при изучении дисциплины
- •2. Цели и задачи курсовОй работы
- •3 Требования к курсовой работе
- •3.1 Оформление курсовой работы
- •3.2 Порядок выполнения курсовой работы
- •4 Методика проведения машинного моделирования
- •5 Основы имитационного моделирования
- •5 Моделирование в среде matlab
- •5.1 Операторы управления вычислительным процессом
- •5.1.1 Оператор условного перехода.
- •5.1.2 Оператор переключения
- •5.1.3 Операторы цикла
- •5.2 Команды общего назначения
- •5.3 Особенности создания м-файлов
- •6 Моделирование в системе gpssw
- •7 Пример моделирования смо
- •Формализация функционирования системы:
- •8 Задание на курсовую работу
- •7 Рекомендуемая литература
5 Основы имитационного моделирования
5.1 Общие сведения
Система — это совокупность объектов, например людей или механизмов, функционирующих и взаимодействующих друг с другом для достижения определенной цели. Данное определение предложено Шмидтом и Тейлором [Schmidt and Taylor, 1970]. На практике понятие системы зависит от задач конкретного исследования. Так, совокупность предметов, которые составляют систему в одном исследовании, может являться лишь подмножеством в иной системе, при проведении другого исследования. Скажем, при исследовании функционирования банка с целью определения числа кассиров, необходимого для обеспечения адекватного обслуживания клиентов, желающих снять деньги со счета, обналичить чек, сделать вклад, система будет состоять из кассиров и посетителей, ожидающих своей очереди на обслуживание. Если же в исследовании должны быть учтены служащие, занимающиеся выдачей кредитов, и сейфы для вкладов на ответственном хранении, определение системы расширится соответствующим образом.
Состояние системы определяется как совокупность переменных, необходимых для описания системы на определенный момент времени в соответствии с задачами исследования. При исследовании банка примерами переменных состояния могут служить число занятых кассиров, число посетителей в банке и время прибытия каждого клиента в банк.
Существуют системы двух типов: дискретные и непрерывные. В дискретной системе переменные состояния в различные периоды времени меняются мгновенно. Банк можно назвать примером дискретной системы, поскольку переменные состояния, например количество посетителей в банке, меняются только по прибытии нового посетителя, по окончании обслуживания или уходе посетителя, раньше находившегося в банке. В непрерывной системе переменные меняются беспрерывно во времени. Самолет, движущийся в воздухе, может служить примером непрерывной системы, поскольку переменные состояния (например, положение и скорость) меняются постоянно по отношению ко времени. На практике система редко является полностью дискретной или полностью непрерывной. Но в каждой системе, как правило, превалирует один тип изменений, по нему мы и определяем ее либо как дискретную, либо как непрерывную.
В определенные моменты функционирования большинства систем возникает необходимость их исследования с целью получения представления о внутренних отношениях между их компонентами или вычисления их производительности в новых условиях эксплуатации. На рис. 1 изображены различные способы исследования системы.
Рисунок 1 Способы исследования системы
Имитационное моделирование (то есть многократного испытания модели с нужными входными данными, чтобы определить их влияние на выходные критерии оценки работы системы) воспринимается как «метод последней надежды», и в этом есть толика правды. Однако в большинстве ситуаций мы быстро осознаем необходимость прибегнуть именно к этому средству, поскольку исследуемые системы и модели достаточно сложны и их нужно представить доступным способом.
Допустим, есть математическая модель, которую требуется исследовать с помощью моделирования (далее — имитационная модель). Прежде всего, необходимо прийти к выводу о средствах ее исследования. В этой связи следует классифицировать имитационные модели по трем аспектам.
Статическая или динамическая. Статическая имитационная модель — это система в определенный момент времени или же система, в которой время просто не играет никакой роли. Примерами статической имитационной модели являются модели, созданные по методу Монте-Карло.Динамическая имитационная модель представляет систему, меняющуюся во времени, например конвейерную систему на заводе. Построив математическую модель, следует решить, каким образом ее можно использовать для получения данных о системе, которую она представляет.
Детерминированная или стохастическая. Если имитационная модель не содержит вероятностных (случайных) компонентов, она называетсядетерминированной. Примером такой модели является сложная (и аналитически сложно вычислимая) система дифференциально-разностных уравнений, описывающих химическую реакцию. В детерминированной модели результат можно получить, когда для нее заданы все входные величины и зависимости, даже если в этом случае потребуется большое количество компьютерного времени. Однако многие системы моделируются с несколькими случайными входными данными компонентов, в результате чего создаетсястохастическая имитационная модель. Большинство систем массового обслуживания и управления запасами именно таким образом и моделируется.Стохастические имитационные модели выдают результат, который является случайным сам по себе, и поэтому он может рассматриваться лишь как оценка истиных характеристик модели-Это один из главных недостатков моделирования.
Непрерывная или дискретная. Следует заметить, что дискретная модель не всегда используется для моделирования дискретной системы, и наоборот. Необходимо ли для конкретной системы использовать дискретную или непрерывную модель, зависит от задач исследования. Так, модель транспортного потока на автомагистрали будет дискретной, если вам необходимо учесть характеристики и движение отдельных машин. Однако, если машины можно рассматривать в совокупности, транспортный поток может быть описан с помощью дифференциальных уравнений в непрерывной модели.
5.2 Методы продвижения времени
Дискретно-событийное моделирование используется для построения модели, отражающей развитие системы во времени, когда состояния переменных меняются мгновенно в конкретные моменты времени.(Говоря математическим языком, система может меняться только висчислимое количество моментов времени.) В такие моменты времени происходят события, при этомсобытие определяется как мгновенное возникновение, которое может изменить состояние системы. Хотя теоретически дискретно-событийное моделирование можно осуществлять с помощью вычислений вручную, количество данных, которые должны сохраняться и обрабатываться при моделировании большинства реальных систем, диктует необходимость применения вычислительных машин.
Динамическая природа дискретно-событийных имитационных моделей требует, чтобы за текущим значением имитационного времени следили по мере функционирования имитационной модели. Необходим также механизм для продвижения имитационного времени от одного значения к другому. В имитационной модели переменная, обеспечивающая текущее значение модельного времени, называется часами модельного времени. При создании модели на таких универсальных языках, какFORTRANили С, единица времени для часов модельного времени никогда не устанавливается явно. Подразумевается, что оно будет указываться в тех же единицах,что и входные параметры. К тому же модельное время и время, необходимое для прогона имитационной модели на компьютере, как правило, невозможно соотнести.
Существует два основных подхода к продвижению модельного времени: продвижение времени от события к событию ипродвижение времени с постоянным шагом. Первый подход используется всеми основными имитационными программами и большинством разработчиков, создающих свои модели на универсальных языках, второй подход является разновидностью первого.
При использовании продвижения времени от события к событию часы модельного времени в исходном состоянии устанавливаются в 0 и определяется время возникновения будущих событий. После этого часы модельного времени переходят на время возникновения ближайшего события, и в этот момент обновляются состояние системы с учетом произошедшего события, а также сведения о времени возникновения будущих событий. Затем часы модельного времени продвигаются ко времени возникновения следующего (нового) ближайшего события, обновляется состояние системы и определяется время будущих событий, и т. д. Процесс продвижения модельного времени от времени возникновения одного события ко времени возникновения другого продолжается до тех пор, пока не будет выполнено какое-либо условие останова, указанное заранее. Поскольку в дискретно-событийной имитационной модели все изменения происходят только во время возникновения событий, периоды бездействия системы просто пропускаются, и часы переводятся со времени возникновения одного события на время возникновения другого. (При продвижении времени с постоянным шагом такие периоды бездействия не пропускаются, что приводит к большим затратам компьютерного времени.) Следует отметить, что длительность интервала продвижения модельного времени от одного события к другому может быть различной.
5.3 Компоненты дискретно-событийной организации
Хотя моделирование применяется к самым разнообразным реальным системам, все дискретно-событийные имитационные модели включают ряд общих компонентов. Логическая организация этих компонентов позволяет обеспечивать программирование, отладку и последующее изменение программы имитационной модели. В частности, дискретно-событийная имитационная модель, которая использует механизм продвижения времени от события к событию и написана на универсальном языке, содержит следующие компоненты:
состояние системы — совокупность переменных состояния, необходимых для описания системы в определенный момент времени;
часы модельного времени - переменная, указывающая текущее значение модельного времени;
список событий — список, содержащий время возникновения каждого последующего типа событий;
статистические счетчики — переменные, предназначенные для хранения статистической информации о характеристике системы;
программа инициализации — подпрограмма, устанавливающая в исходное состояние имитационную модель в момент времени, равный 0;
синхронизирующая программа — подпрограмма, которая отыскивает следующее событие в списке событий и затем переводит часы модельного времени на время возникновения этого события
программа обработки событий — подпрограмма, обновляющая состояние системы, когда происходит событие определенного типа (для каждого типа событий существует отдельная программа обработки событий);
библиотечные программы — набор подпрограмм,- применяемых для генерации случайных наблюдений из распределений вероятностей, которые были определены как часть имитационной модели;
генератор отчетов — подпрограмма, которая считывает оценки (со статистических счетчиков) критериев оценки работы и выдает отчет по окончании моделирования;
основная программа — подпрограмма, которая вызывает синхронизирующую программу, для того чтобы определить следующее событие, а затем передает управление соответствующей событийной программе с целью обеспечения заданного обновления состояния системы. Основная программа может также контролировать необходимость прекращения моделирования и вызывать генератор отчетов по его окончании.
Логические отношения (поток управления) между данными компонентами показаны на рис. 2. Моделирование начинается в момент времени, равный 0. При этом основная программа вызывает программу инициализации, которая устанавливает часы модельного времени в 0, затем задает исходное состояние системы, устанавливает в исходное состояние статистические счетчики и инициализирует список событий. После возвращения управления основной программе она вызывает синхронизирующую программу, чтобы определить тип ближайшего события. Если следующим должно произойти событие типа i, часы имитационного времени переводятся на время возникновения события типа i, и управление возвращается основной программе. Основная программа активизирует программу обработки событий I, при этом происходят три типа действий: первое — обновляется состояние системы в соответствии с произошедшим событием типа г; второе — собирается информация о критериях оценки работы системы путем обновления статистических счетчиков; третье — генерируется время возникновения будущих событий, и информация о нем добавляется в список событий. Часто при определении времени будущих событий возникает необходимость сгенерировать случайные наблюдения из распределения вероятностей; такое наблюдение будем называть случайной величиной. После полного завершения обработки в программе обработки событий i или в основной программе выполняется проверка с целью определить (относительно некоторого условия останова), следует ли прервать моделирование. И если моделирование должно быть завершено, из основной программы вызывается генератор отчета, для того чтобы считать оценки (со статических счетчиков) необходимых критериев работы и создать отчет. Если время прекращения моделирования еще не настало, управление снова передается основной программе, и цикл «основная программа—синхронизирующая программа—основная программа—программа обработки событий—проверка условия прекращения имитации» повторяется до тех пор, пока условие останова не будет выполнено.
Рисунок 2 Поток управления в механизме продвижения времени от события
к событию
Здесь следует сказать несколько слов о состоянии системы. Система — это четко определенная совокупность объектов. Объекты характеризуются с помощью значении, именуемых атрибутами. В дискретно-событийной имитационной модели эти атрибуты являются частью состояния системы. Объекты с каким-либо общим свойством часто объединяются в списки (в файлы, либо наборы). Для каждого объекта существует запись в списке, состоящем из атрибутов объектов. Порядок размещения объектов в списке определяется некоторым правилом. Требования объединяются в списки.
Организация и функционирование дискретно-событийной моделирующей программы, в которой применяется механизм продвижения времени от события к событию, довольно типичны, если эта программа написана на универсальном языке (например, FORTRAN или С). Такой подход к имитационному моделированию называется планированием событий, поскольку время будущих событий явно указано в модели и запланировано в модельном будущем. Существует альтернативный подход к имитационному моделированию, именуемый процессным подходом. При этом моделирование рассматривается с точки зрения отдельных объектов, участвующих в нем, и разработанный код описывает «опыт» отдельного «типичного» объекта по мере его «перемещения» по системе. Для разработки такого рода имитационных моделей требуется специальное программное обеспечение имитационного моделирования. Даже при использовании процессного подхода моделирование фактически выполняется вне нашего поля зрения — как часть представленной выше логики планирования событий.
5.4
Этапы
в исследовании
системы посредством моделирования
Теперь, когда мы изучили некоторые подробности внутренней работы дискретно-событийного моделирования, нужно вернуться назад, чтобы понять: программирование модели — всего лишь часть общих усилий, направленных на разработку и анализ сложной системы посредством моделирования. При этом внимание должно уделяться множеству разных вопросов, в частности статистическому анализу выходных данных моделирования и управлению проектом. На рис 3 показаны этапы, составляющие типичное исследование системы посредством моделирования [Banks, Carson and Nelson, 1996; Law, 1999; Law and McComas, 1990]. Число возле символа, представляющего отдельный этап, соответствует номеру более подробного описания этого этапа, приведенного ниже. Заметьте, что исследование посредством моделирования — это не простой последовательный процесс, он предполагает необходимость часто возвращаться назад, к предыдущему этапу.
1. Формулировка задачи и планирование исследования системы.
Постановка задачи руководителем.
Проведение ряда встреч с руководителем проекта, аналитиками имитационного моделирования и экспертами по изучаемой тематике с целью исследования системы. Рассмотрение следующих вопросов:
глобальная цель исследования;
специальные вопросы, на которые должно ответить исследование;
критерии качества работы, используемые в будущем для оценки эффективности различных конфигураций системы;
масштаб модели;
моделируемые конфигурации системы;
применяемое программное обеспечение;
временной интервал для исследования и необходимые ресурсы.
Рисунок 3 Этапы исследования системы с помощью моделирования
2. Сбор данных и определение модели.
2.1. Сбор информации о конфигурации системы и способах эксплуатации, которая сводится к тому, что:
одного специалиста в данном случае недостаточно;
необходимо привлечь экспертов по изучаемой тематике, владеющих достоверной информацией;
способы эксплуатации нельзя формализовать.
Сбор данных (если это возможно) для определения параметров модели и входных распределений вероятностей.
Схематическое изображение данных в •«описании допущений», представляющем собой концептуальную модель.
Сбор данных (по возможности) о рабочих характеристиках существующей системы (с целью осуществления проверки на этапе 6).
Выбор уровня детальности модели в зависимости от перечисленных ниже факторов:
цели проекта;
критериев качества работ;
доступности данных;
интересов достоверности;
компьютерных возможностей;
мнений экспертов по изучаемой тематике;
ограничений, связанных со временем и финансированием.
Установление между каждым элементом модели и соответствующим ему элементом системы взаимно-однозначного соответствия.
Регулярное взаимодействие с руководителем и другими ведущими специалистами проекта.
3. Определение адекватности концептуальной модели.
3.1. Выполнение структурного анализа концептуальной модели с предоставлением описания допущений на рассмотрение аудитории, которая состоит из руководителей, аналитиков, а также экспертов по изучаемой тематике, принимая во внимание, что:
- анализ помогает убедиться, что допущения, принятые для модели, верны и ничего не упущено;
анализ обеспечивает право собственности на модель;
анализ выполняется до начала программирования, чтобы в дальнейшем избежать перепрограммирования модели.
4. Создание компьютерной программы и ее проверка.
Программирование модели (на языке FORTRAN, Pascal или С) или с помощью программного обеспечения для моделирования (в частности, Arena, JPSS World, MatLab Auto-Mod, Extend, ProModel, WITNESS). Преимущество использования языков программирования заключается в том, что, как известно, у них невысокая закупочная стоимость, и созданная с их помощью модель требует меньше времени для выполнения. Использование программного обеспечения моделирования уменьшает время программирования, поэтому в итоге дает меньшую стоимость всего проекта.
Проверка моделирующей компьютерной программы, а также ее отладка
5. Выполнение предварительных прогонов.
5.1. Выполнение предварительных прогонов с целью осуществления проверки на этапе 6.
6. Проверка соответствия программной модели.
Если есть существующая система - сравнение критериев качества работы и существующей системы (этап 2).
Независимо от наличия существующей системы — просмотр аналитиками и экспертами по изучаемой теме результатов прогонов модели с целью определения их правильности.
Использование анализа чувствительности для определения факторов модели, имеющих существенное влияние на критерии качества работы системы, так как их следует моделировать очень точно.
7. Планирование экспериментов.
7.1. Детальное изложение того, что является важным для каждой системной конфигурации:
длительность каждого прогона;
длительность переходного периода (если он необходим);
количество независимых прогонов имитационной модели с использованием различных случайных чисел , что потребуется при построении доверительных интервалов.
8. Выполнение рабочих прогонов.
8.1. Выполнение рабочих прогонов для получения результатов, которые понадобятся на этапе 9.
9. Анализ выходных данных.
9.1. Обработка выходных данных с целью:
определения абсолютных характеристик известной конфигурации системы;
проведения относительного сравнения альтернативных конфигураций системы
10. Документальное представление и использование результатов.
10.1 Документальное оформление допущений (см. этап 2) компьютерной программы и результатов исследования для использования в текущем и будущих проектах.
10.2 Представление результатов исследования:
использование анимации для объяснения модели руководителям и другим людям, которым не известны все ее подробности;
обсуждение процесса создания модели и ее достоверности, чтобы повысить уровень доверия к ней.
10.3. Использование результатов в процессе принятия решений, если они действительны и достоверны.