Автор: Пользователь скрыл имя, 10 Января 2014 в 12:16, курсовая работа
Целью данной курсовой работы является разработка имитационной модели с регулярным входным потоком, отсутствующей очередью и естественным отсчетом времени т.е моделирование работы больничной палаты. Основой для разработки модели в данной курсовой работе является метод имитационного моделирования. Так же курсовая работа предполагает создание программы на языке C++, обеспечивающей ввод исходной информации, ее обработку, реализацию алгоритма имитации процесса и выдачу необходимой информации.
1. Введение………………………………………………………………………3
2. Моделирование систем массового обслуживания…………………………5
2.1 Структура и параметры эффективности и качества функционирования СМО………………………………………………………………………………5
2.2 Классификация СМО и их основные элементы………………...…………6
2.3 Процесс имитационного моделирования…………………………………12
3. Описание моделируемой системы……………………………………...…..16
3.1 Модельное время……………………………………………………….…..17
3.2 Используемые классы и объекты……………...………………….……….17
3.3 События и методы………………………………………………….………19
4. Программная реализация на С++…. ………………………………….……21
5. Анализ результатов работы программы……………………………....……35
6. Заключение……………….……………………………………………...…..38
7. Список использованной литературы…………………………………….…39
На этапах верификации и валидации осуществляется оценка функционирования имитационной модели. На этапе верификации определяется, соответствует ли запрограммированная для ЭВМ модель замыслу разработчика. Это обычно осуществляется путем ручной проверки вычисления, а также может быть использован и ряд статистических методов.
Установление адекватности имитационной
модели исследуемой системы
Условия проведения машинных прогонов модели определяется на этапах стратегического и тактического планирования. Задача стратегического планирования заключается в разработке эффективного плана эксперимента, в результате которого выясняется взаимосвязь между управляемыми переменными, либо находится комбинация значений управляемых переменных, минимизация или максимизация имитационной модели. В тактическом планировании в отличии от стратегического решается вопрос о том, как в рамках плана эксперимента провести каждый имитационный прогон, чтобы получить наибольшее количество информации из выходных данных. Важное место в тактическом планировании занимают определение условий имитационных прогонов и методы снижения дисперсии среднего значения отклика модели.
Следующие этапы в процессе имитационного исследования- проведение машинного эксперимента и анализ результатов- включают прогон имитационной модели на ЭВМ и интерпретацию полученных выходных данных. Последним этапом имитационного исследования является реализация полученных решений и документирование имитационной модели и ее использование. Ни одни из имитационных проектов не должен считаться законченным до тех пор, пока их результаты не были использованы в процессе принятия решений. Успех реализации во многом зависит от того, насколько правильно разработчик модели выполнил все предыдущие этапы процессов имитационного исследования. Если разработчик и пользователь работали в тесном контакте и достигли взаимопонимания при разработке модели и ее исследовании, то результат проекта скорее всего будет успешно внедряться. Если же между ними не было тесной взаимосвязи, то, несмотря на элегантность и адекватность имитационного моделирования, сложно будет разработать эффективные рекомендации.
Вышеперечисленные этапы редко
выполняются в строго заданной последовательности,
начиная с определения проблемы
и кончая документированием. В ходе
имитационного моделирования
3. Описание моделируемой системы
Схема процесса выполнения заданий
на станке и поломок станка показана
на
рис. 1. Задания поступают на станок в среднем
1 раз в час. Распределение вели-
чины интервала между ними экспоненциально.
При нормальном режиме работы
задания выполняются в порядке их поступления.
Время выполнения задания
нормально распределено с математическим
ожиданием 0,5 ч и среднеквадратич-
ным отклонением 0,1. Перед выполнением
задания производится наладка станка,
время которой распределено равномерно
на интервале 0,2-0,5 ч. Задания, вы-
полненные на станке, направляются в другие
отделы цеха и считаются покинув-
шими рассматриваемую систему. Станок
время от времени ломается. Интервалы
между поломками распределены нормально
с математическим ожиданием 20 ч и
среднеквадратичным отклонением 2 ч. При
поломке выполняемое задание уда-
ляется со станка и помещается в начало
очереди заданий к станку. Выполнение
задания возобновляется с того места,
на котором оно было прервано. Когда ста-
нок ломается, начинается процесс устранения
неисправности, который состоит
из трех фаз. Продолжительность каждой
фазы распределена экспоненциально с
математическим ожиданием, равным 45 мин.
Поскольку общая продолжитель-
ность устранения поломки является суммой
независимых и одинаково опреде-
ленных случайных величин с одинаковыми
параметрами, она имеет эрлангов-
ское распределение.
Рис 1. Схема работы станка с поломками
Работа станка анализируется в
течение 500 ч для получения информации
о за-
грузке станка и времени выполнения задания.
В качестве единицы модельного времени
примем одну минуту. К генерации
многочисленных случайных величин,
входящих в описание системы, будем
подхо-
дить избирательно. Чтобы генераторы
случайных чисел не работали со слишком
большими или слишком маленькими параметрами
и вследствие этого не теряли
точность при численном интегрировании
и решении уравнений, будем в одних
случаях задавать параметры распределений
в минутах, а в других — в часах, ум-
ножая во втором случае результат на 60
и округляя до ближайшего целого числа,
а именно:
Обобщим первоначальную задачу, предположив,
что вместо одного станка у нас
есть несколько станков (многоканальный
узел). Это обобщение необходимо для того,
чтобы выяснить в дальнейшем, как влияет
количество (панков на производительность
системы. Предположим, что каждый станок
обслуживается своими
собственными наладчиком и ремонтником,
так что ни одному из станков не при-
ходится ожидать ремонта, когда он ему
потребуется. Очередь единственная, и
за-
явка попадает на первый свободный станок.
Если после поломки станка сущест-
вует хотя бы один свободный и готовый
к обслуживанию станок, заявка сразу же
переходит к нему, и обслуживание считается
непрерывным. Тогда сформулиро-
ванная задача есть частный случай, когда
число каналов (станков) равно едини-
це. Система является открытой, число заявок
— переменное. Для моделирования
системы необходимо описать класс Станок
(Machine), представленный одним по-
стоянным объектом, и класс Заявка (Client),
представленный переменным чис-
лом объектов, которые по ходу моделирования
порождаются в системе и уда-
ляются из нее. Поведение заявок в системе
полностью моделируется станком,
поэтому класс Client собственного метода
run( ) не имеет. Отметим существен-
ные особенности системы:
Упорядочим имеющиеся у нас
сведения о работе станка. На рис. 2 приведена
диаграмма его состояний и возможные переходы.
Каждый переход обозначен названием метода
класса Machine, который этот переход
обрабатывает.
Рис. 2. Диаграмма состояний и переходов станка
Изменяемые поля данных класса
Machine должны каким-то образом обеспечи-
вать информацию о текущем состоянии объекта
и о том, сколько времени оста-
лось до перехода в то или иное состояние.
Объект класса Client при возвраще-
нии в очередь должен наряду со временем
пребывания в системе сохранять
информацию об оставшемся времени дообслуживания,
а также — в целях сбора
статистики — изменять значение признака,
свидетельствующего о том, что в его
обслуживании был перерыв. Таким образом,
класс Client имеет следующие поля
данных:
Неизменяемые поля данных класса Machine:
Изменяемые поля данных класса
Machine:
Отметим, что отличными от -1 в некоторых состояниях могут быть сразу два изменяемых поля данных станка — время до окончания обслуживания и время до окончания безаварийной работы.
В системе с каждым из станков могут происходить следующие события:
Снова обратившись к рис. 2, отметим
интересную особенность: между множествами
переходов и событий существует связь
«многие к одному» — одному пе-
реходу соответствует одно событие, но
одному событию могут соответствовать
несколько переходов. Перечисленные пять
методов программируются по текстовому
описанию системы. Остановимся на некоторых
нюансах:
При создания имитационной модели очереди с разнотипными заявками (работа порта) был выбран язык программирования C++ и написана программа на этом языке, позволяющая в полной мере отразить функционирование системы.