Лабораторная работа № 4 - Северо

advertisement
МОДЕЛИРОВАНИЕ СИСТЕМ
Методические указания к лабораторным работам
Для студентов, обучающихся по направлению подготовки
230100.62 – «Информатика и вычислительная техника»
Составитель А. А. Будаева
Владикавказ 2015
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«СЕВЕРО-КАВКАЗСКИЙ ГОРНО-МЕТАЛЛУРГИЧЕСКИЙ ИНСТИТУТ
(ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ)»
Кафедра Автоматизированной обработки информации
МОДЕЛИРОВАНИЕ СИСТЕМ
Методические указания к лабораторным работам
Для студентов, обучающихся по направлению подготовки
230100.62 – «Информатика и вычислительная техника»
Составитель А. А. Будаева
Допущено
редакционно-издательским советом
Северо-Кавказского горно-металлургического института
(государственного технологического университета).
Протокол заседания РИСа № 1 от 17.01.2014 г.
Владикавказ 2015
1
УДК 004.942:519.876
ББК 32.816
Б90
Рецензент:
кандидат технических наук, доцент
Северо-Кавказского горно-металлургического института
(государственного технологического университета)
Даурова А. А.
Б90
Моделирование систем: Методические указания к лабораторным работам. Для студентов, обучающихся по направлению подготовки 230100.62 – «Информатика и вычислительная техника» /
Сост.: А. А. Будаева; Северо-Кавказский горно-металлургический
институт (государственный технологический университет). – Владикавказ: Северо-Кавказский горно-металлургический институт
(государственный технологический университет). Изд-во «Терек»,
2015. – 103 с.
Методические указания содержат описание лабораторных работ, соответствующих рабочей программе по дисциплине «Моделирование систем»
для студентов, обучающихся по направлению подготовки «Информатика и
вычислительная техника» 230100.62.
Методические указания способствуют формированию практических
навыков моделирования систем с различным характером функционирования; приобретению навыков и умений имитационного моделирования систем, обработки результатов моделирования, а также реализации и анализа
моделей в инструментальных средах (на примере программной среды
GPSS).
УДК 004.942:519.876
ББК 32.816
Редактор: Иванченко Н. К.
Компьютерная верстка: Куликова М. П.
 Составление. ФГБОУ ВПО «Северо-Кавказский
горно-металлургический институт
(государственный технологический университет)», 2015
 Будаева А. А., составление, 2015
Подписано в печать 20.01.2015. Формат 60х84 1/16. Бумага офсетная. Гарнитура
«Таймс». Печать на ризографе. Усл. п.л. 5,99. Уч-изд. л. 3,91. Тираж 20 экз.
Заказ №
. Северо-Кавказский горно-металлургический институт
(государственный технологический университет). Издательство «Терек».
Отпечатано в отделе оперативной полиграфии СКГМИ (ГТУ).
362021, г. Владикавказ, ул. Николаева, 44.
2
Оглавление
Введение .....................................................................................................
5
Лабораторная работа № 1. Моделирование непрерывнодетерминированных систем......................................................................
6
Часть 1. Модели биогеоценоза .............................................................
7
Краткие теоретические сведения ......................................................
–
Общие рекомендации.........................................................................
10
Задания к лабораторной работе ........................................................
–
Часть 2. Моделирование физических процессов ................................
15
Краткие теоретические сведения ......................................................
–
Общие рекомендации.........................................................................
21
Задания к лабораторной работе ........................................................
22
Контрольные вопросы ...........................................................................
26
Лабораторная работа № 2. Моделирование сетей Петри ...................
28
Задание № 1. Моделирование ординарных сетей Петри ...................
–
Задание № 2. Моделирование цветных сетей Петри ..........................
29
Контрольные вопросы ...........................................................................
31
Лабораторная работа 3. Принципы построения моделирующих
алгоритмов: Δt и δz ....................................................................................
32
Теоретические сведения ........................................................................
–
Задание к лабораторной работе ............................................................
39
Контрольные вопросы ...........................................................................
42
Лабораторная работа № 4. Генерация случайных величин для
различных распределений ........................................................................
44
Краткие теоретические сведения..........................................................
–
Задачи для самостоятельного решения ................................................
53
Контрольные вопросы ...........................................................................
55
Лабораторная
работа
5.
Проверка
качества
последовательностей псевдослучайных величин ...................................
56
Краткие теоретические сведения..........................................................
–
1. Универсальные статистические тесты .........................................
57
2. Эмпирические тесты ......................................................................
59
Задачи для самостоятельного решения ................................................
73
Контрольные вопросы ...........................................................................
74
Лабораторная работа № 6. Моделирование стохастических
систем .........................................................................................................
75
Методические указания .........................................................................
–
Задание на моделирование ....................................................................
–
Контрольные вопросы ...........................................................................
83
3
Лабораторная работа № 7. Моделирование многоканальных
систем массового обслуживания на языке GPSS ...................................
84
Методические указания .........................................................................
–
Задание на моделирование ....................................................................
86
Контрольные вопросы ...........................................................................
91
Лабораторная работа № 8. Моделирование разнотипных
заявок на языке GPSS ................................................................................
93
Методические указания .........................................................................
–
Задание на моделирование ....................................................................
94
Контрольные вопросы ...........................................................................
101
Список литературы ....................................................................................
102
Приложение. Пример оформления титульного листа отчета по
лабораторной работе .................................................................................
103
4
Введение
В настоящее время полное и всестороннее исследование автоматизированных информационных систем на всех этапах разработки невозможно без использования метода моделирования. Данный лабораторный практикум является частью комплекса учебных материалов по
дисциплине «Моделирование систем». Он ориентирован на исследование математических (аналитических и имитационных) моделей и
методов, которые применяются при проектировании автоматизированных систем, информационно-вычислительных комплексов, а также
на освоение современной технологии автоматизации исследования
этих систем в среде GPSS.
Цель лабораторного практикума – выработка у студентов умения
самостоятельно применять для решения конкретных инженерных задач по исследованию систем знания по машинному моделированию,
полученные из лекционного курса.
Каждая лабораторная работа по дисциплине «Моделирование систем» должна научить студентов самостоятельно работать с научнотехнической литературой и программной документацией в области
компьютерного моделирования; решать отдельные прикладные задачи
исследования систем на базе метода компьютерного моделирования;
работать в рамках современных технологий компьютерного моделирования на базе системы моделирования GPSS; оформлять программную документацию и результаты имитационных экспериментов.
Предполагается, что при выполнении лабораторных работ задачи
моделирования ограничены рассмотрением вопросов оценки с помощью имитационных машинных экспериментов вероятностновременных характеристик процессов функционирования систем как
наиболее характерных для системного исследования автоматизированных систем.
5
Лабораторная работа № 1
МОДЕЛИРОВАНИЕ НЕПРЕРЫВНО-ДЕТЕРМИНИРОВАННЫХ
СИСТЕМ
Цель:
1) изучение принципов построения моделей непрерывнодетерминированных систем;
2) приобретение практических навыков построения моделей
непрерывно-детерминированных систем;
3) изучение особенностей построения моделей биогеоценоза;
4) изучение особенностей построения моделей физических процессов и явлений;
5) исследование характеристик построенных моделей.
Теоретические сведения
Рассмотрим особенности непрерывно-детерминированного подхода на примере использования в качестве математических моделей
дифференциальных уравнений.
Дифференциальные уравнения – уравнения, в которых неизвестными будут функции одной или нескольких переменных, причем в
уравнение входят не только функции, но и их производные различных
порядков.
Различают уравнения в частных производных и обыкновенные
дифференциальные уравнения.
Математические модели такого вида отражают динамику изучаемой системы и называются D-схемами (англ. dynamic).
Обычно в таких математических моделях в качестве независимой
переменной, от которой зависят неизвестные искомые функции, служит время t.
Тогда математическое соотношение для детерминированных систем в общем виде будет:
 



yt   f  y, t ; yt0   y0 ,
(5)
где




y  dy / dt , y   y1 , y2 , , yn , f   f1 , f 2 , , f n 
6
 
f  y , t  – непрерывная
вектор-функция, определенная на
(n + 1)-мерном множестве
Примеры моделей непрерывно-детерминированных систем:
 модели биогеоценоза;
 модели физических процессов и явлений и др.
Рассмотрим принципы построения и исследования моделей
непрерывно-детерминированных систем на примере моделей биогеоценоза и моделей физических процессов.
Часть 1. Модели биогеоценоза
Краткие теоретические сведения
Модели биогеоценоза относятся к моделям классической экологии (взаимодействие популяций).
Популяция  совокупность особей одного вида, существующих в
одно и то же время и занимающих определенную территорию.
Взаимодействие особей внутри популяции определяется внутривидовой конкуренцией, взаимодействие между популяциями  межвидовой конкуренцией.
Внутривидовая конкуренция в популяции с дискретным размножением. Для популяций с дискретным размножением (некоторые
виды растений, насекомых и т. д.) поколения четко разнесены во времени и особи разных поколений не сосуществуют. Численность такой
популяции можно характеризовать числом Nt и считать t величиной
дискретной  номером популяции.
Одна из моделей межвидовой конкуренции в этом случае выражается уравнением
Nt  1 
Nt  R
.
1  (a  N t ) b
(1)
Здесь R  скорость воспроизводства популяции в отсутствии
внутривидовой конкуренции (математически это соответствует случаю a = 0). Тогда уравнение определяет просто изменение численноt
сти популяции по закону геометрической прогрессии: N t  N 0  R ,
где N0  начальная численность популяции.
7
Знаменатель в уравнении отражает наличие конкуренции, делающей скорость роста тем меньше, чем больше численность популяции; a и b  параметры модели.
Исходные параметры модели:
 R  скорость воспроизводства;
 N0  начальная численность популяции;
 a  параметр, характеризующий интенсивность внутривидовой
конкуренции.
Характерная черта эволюции при b = 1  выход численности популяции на стационарное значение при любых значениях других параметров. Однако, в природе так бывает не всегда, и более общая модель при b  1 отражает другие, более сложные, но реально существующие, виды эволюции. Этих видов модель описывает четыре:
1) монотонное установление стационарной численности популяции;
2) колебательное установление стационарной численности популяции;
3) устойчивые предельные циклы изменения численности популяции;
4) случайные изменения численности популяции без наличия
явных закономерностей (динамический хаос).
Внутривидовая конкуренция в популяции с непрерывным
размножением. Математическая модель в данном случае строится на
основе дифференциальных уравнений. Наиболее известна так называемая логистическая модель:
dN
KN
 r  N 

dt
 K 
(2)
Исходные параметры модели:
 r  скорость роста численности популяции в отсутствие конкуренции;
 K  предельное значение численности популяции, при котором
скорость роста становится равной нулю;
 N0  начальная численность популяции.
Межвидовая конкуренция. В этом случае исследуется конкуренция популяций, потребляющих общий ресурс.
8
Пусть N1 и N2  численности конкурирующих популяций. Модель (называемая также моделью Лотки-Вольтерры) выражается уравнениями
K 1  N 1   12  N 2
 dN 1
,
 dt  r1  N 1
K1
 dN 2
K 2  N 2   21  N 1

 r2  N 2 
K2
 dt
(3)
Содержательный смысл параметров можно понять из сравнения с
предыдущей моделью. Дополнительные параметры 12 и 21 отражают
интенсивность межвидовой конкуренции.
Главный вопрос, который интересует исследователя межвидовой
конкуренции  при каких условиях увеличивается или уменьшается
численность каждого вида? Данная модель предсказывает следующие
режимы эволюции взаимодействующих популяций: устойчивое сосуществование или полное вытеснение одной из них.
Система «хищник–жертва». В этой системе ситуация значительно отличается от предыдущей. В частности, если в случае конкурирующих популяций исчезновение одной означает выигрыш для
другой (дополнительные ресурсы), то исчезновение «жертвы» влечет
за собой и исчезновение «хищника», для которого в простейшей модели «жертва» является единственным кормом.
Обозначим через С численность популяции хищника и через
N  популяции жертвы. Одна из известных моделей выражается следующими уравнениями:
 dN
 dt  r  N  a  C  N ,
 dC

 f  a C  N  q C
 dt
(4)
В первое уравнение заложен следующий смысл. В отсутствие
хищников (т. е. при С = 0) численность жертв растет экспоненциально
со скоростью r, т. к. модель не учитывает внутривидовой конкуренции. Скорость роста числа жертв (т. е.
9
dN
) уменьшается тем больше,
dt
чем чаще происходят встречи представителей видов; а  коэффициент эффективности поиска.
Второе уравнение говорит о следующем. В отсутствии жертв
численность хищников экспоненциально убывает со скоростью q; положительное слагаемое в правой части уравнения компенсирует эту
убыль; f  коэффициент эффективности перехода пищи в потомство
хищников.
Общие рекомендации
1. При проведении расчетов необходим контроль точности результатов и устойчивости применяемого численного метода. Для этого достаточно ограничиться эмпирическими приемами (например, сопоставлением решений, полученных с несколькими разными шагами
по времени).
2. Целесообразно применять для моделирования стандартные методы интегрирования систем дифференциальных уравнений, описанные в математической литературе. Простейшие методы (метод Эйлера) часто бывают неустойчивы и их применение ведет к лишнему расходу времени.
3. Результаты моделирования следует выводить на экран компьютера в следующих видах: таблицы зависимостей численности популяций от времени, графики этих зависимостей.
4. При выводе результатов в табличном виде следует учитывать,
что соответствующий шаг по времени не имеет практически ничего
общего с шагом интегрирования и определяется удобством и достаточной полнотой для восприятия результатов на экране. Экран,
сплошь забитый числами, не поддается восприятию. Выводимые числа следует разумным образом форматировать, чтобы незначащие цифры практически отсутствовали.
5. При выводе результатов в графической форме графики должны быть построены так, как это принято в математической литературе (с указанием того, какие величины отложены по осям, масштабами и т. д.).
Задания к лабораторной работе
1. Выписать математическую модель, определить состав набора
входных параметров и их конкретные числовые значения.
10
2. Спроектировать пользовательский интерфейс программы моделирования, обращая особое внимание на формы представления результатов.
3. Выбрать метод интегрирования дифференциальных уравнений
модели, найти в библиотеке стандартных программ или разработать
самостоятельно программу интегрирования с заданной точностью.
4. Провести отладку и тестирование полной программы.
5. Выполнить конкретное задание из своего варианта работы.
6. Качественно проанализировать результаты моделирования.
7. Создать текстовый отчет по лабораторной работе, включающий:
- титульный лист (название работы, исполнитель, группа и т. д.);
- постановку задачи и описание модели;
- результаты тестирования программы;
- результаты, полученные в ходе выполнения задания (в различных формах);
- качественный анализ результатов.
Варианты
Вариант 1
Изучить характер эволюции популяции, описываемый моделью (1), при значениях параметров b = 1, R = 1, N0 = 100 в зависимости
от значения параметра а в диапазоне 0,1  а  10.
Есть ли качественные различия в характере эволюции в зависимости от значения а?
Вариант 2
Изучить характер эволюции популяции, описываемый моделью (1), при значениях параметров b = 1, R = 4, N0 = 100 в зависимости
от значения параметра а в диапазоне 0,1  а  10.
Есть ли качественные различия в характере эволюции в зависимости от значения а?
Вариант 3
Изучить характер эволюции популяции, описываемый моделью (1), при значениях параметров b = 4, R = 1, N0 = 100 в зависимости
от значения параметра а в диапазоне 0,1  а  10.
Есть ли качественные различия в характере эволюции в зависимости от значения а?
11
Вариант 4
Изучить характер эволюции популяции, описываемый моделью
(1), при значениях параметров a = 1, R = 1, N0 = 100 в зависимости от
значения параметра b в диапазоне 0,1  b  10.
Есть ли качественные различия в характере эволюции в зависимости от значения b?
Вариант 5
Изучить характер эволюции популяции, описываемый моделью
(1), при значениях параметров a = 1, R = 4, N0 = 100 в зависимости от
значения параметра b в диапазоне 0,1  b  10.
Есть ли качественные различия в характере эволюции в зависимости от значения b?
Вариант 6
Изучить характер эволюции популяции, описываемый моделью (1), при значениях параметров a = 3, R = 1, N0 = 100 в зависимости
от значения параметра b в диапазоне 0,1  b  10.
Есть ли качественные различия в характере эволюции в зависимости от значения b?
Вариант 7
Изучить характер эволюции популяции, описываемый моделью (1), при значениях параметров a = 3, b = 1, N0 = 100 в зависимости
от значения параметра R в диапазоне 1  R  4.
Есть ли качественные различия в характере эволюции в зависимости от значения R?
Вариант 8
Изучить характер эволюции популяции, описываемый моделью (1), при значениях параметров a = 3, b = 4, N0 = 100 в зависимости
от значения параметра R в диапазоне 1  R  4.
Есть ли качественные различия в характере эволюции в зависимости от значения R?
Вариант 9
Реализовать модель (1) при следующих наборах значений параметров:
1) N0 = 100, а = 1, R=2, b =1;
2) N0 = 100, а = 1, R=2, b = 4;
3) N0 = 100, а = 1, R=4, b = 3.5;
4) N0 = 100, а = 1, R=4, b = 4.5
и изучить вид соответствующих режимов эволюции.
12
Вариант 10
Для модели (1) в фазовой плоскости (b,R) найти границы зон, разделяющих режимы монотонного и колебательного установления стационарной численности популяции изучаемой системы.
Вариант 11
Для модели (1) в фазовой плоскости (b,R) найти границы зон, разделяющих режим колебательного установления стационарной численности популяции изучаемой системы и режим устойчивых предельных циклов.
Вариант 12
Реализовать моделирование межвидовой конкуренции по формулам (3) при значениях параметров r1 = 2, r2 = 2, K1 = 200, K2 = 200,
12  0,5, 21  0,5. Проанализировать зависимость судьбы популяций
от соотношения значений их начальной численности N10 , N 20 .
Вариант 13
Реализовать моделирование межвидовой конкуренции по формулам (3) при значениях параметров r1 = 2, r2 = 2, K1 = 200, K2 = 200,
N10  100, N 20  100 . . Проанализировать зависимость судьбы популяций от соотношения значений коэффициентов конкуренции 12 и 21.
Вариант 14
Построить в фазовой плоскости ( N1(0) ,N 2( 0) ) границы зон, разделяющих какие-либо два режима эволюции конкурирующих популяций (в соответствии с моделью (3)). Остальные параметры модели выбрать произвольно. Учесть при этом, что режим устойчивого сосуществования популяций может в принципе реализоваться только при
12   21  1 .
Вариант 15
Провести моделирование динамики численности популяций в системе «хищник-жертва» (модель (4)) при значениях параметров r
= 5, a = 0,1, q = 2, f = 0,6. Проанализировать зависимость исхода эволюции от соотношения значений параметров N0 и C0.
Вариант 16
Провести моделирование динамики численности популяций в системе «хищник-жертва» (модель (4)) при значениях параметров r
= 5, a = 0,1, q = 2, N0 = 100, C0 = 6. Проанализировать зависимость
результатов моделирования от значения параметра f в диапазоне
0,1  f  2.
13
Вариант 17
Провести моделирование динамики численности популяций в системе «хищник-жертва» (модель (4)) при значениях параметров r
= 5, a = 0,1, f = 2, N0 = 100, C0 = 6. Проанализировать зависимость
результатов моделирования от значения параметра q в диапазоне
0,1 q  2.
Вариант 18
Провести моделирование динамики численности популяций в системе «хищник-жертва» (модель (4)) при значениях параметров a =
0,1, f = 2, q = 2, N0 = 100, C0 = 6. Проанализировать зависимость результатов моделирования от значения параметра q в диапазоне 0,1
 q  2.
Вариант 19
Провести моделирование динамики численности популяций в системе «хищник-жертва» (модель (4)) при значениях параметров r
= 5, q = 2, f = 2, N0 = 100, C0 = 6. Проанализировать зависимость результатов моделирования от значения параметра q в диапазоне 0,1 q
 2.
Вариант 20
Модель (4) предсказывает сопряженные колебания численности
жертв и хищников. Исследовать зависимость запаздывания амплитуд
колебаний численности хищников от амплитуд колебаний численности жертв в зависимости от значений параметра а. Значения остальных параметров фиксировать по усмотрению.
Вариант 21
Модель (4) предсказывает сопряженные колебания численности
жертв и хищников. Исследовать зависимость запаздывания амплитуд
колебаний численности хищников от амплитуд колебаний численности жертв в зависимости от значений параметра q. Значения остальных параметров фиксировать по усмотрению.
Вариант 22
Модель (4) предсказывает сопряженные колебания численности
жертв и хищников. Исследовать зависимость запаздывания амплитуд
колебаний численности хищников от амплитуд колебаний численности жертв в зависимости от значений параметра f. Значения остальных параметров фиксировать по усмотрению.
Вариант 23
Модель (4) предсказывает сопряженные колебания численности
жертв и хищников. Исследовать зависимость запаздывания амплитуд
колебаний численности хищников от амплитуд колебаний численно14
сти жертв в зависимости от значений параметра r. Значения остальных
параметров фиксировать по усмотрению.
Вариант 24
Модель (4) предсказывает сопряженные колебания численности
жертв и хищников. Исследовать зависимость запаздывания амплитуд
колебаний численности хищников от амплитуд колебаний численности жертв в зависимости от соотношения значений начальных численностей популяций N0 и C0. Значения остальных параметров фиксировать по усмотрению.
Часть 2. Моделирование физических процессов
Рассмотрим основные принципы моделирования физических
процессов на примере изучения процесса движения тел в среде с учетом трения.
Краткие теоретические сведения
Второй закон Ньютона. В рассматриваемых ниже физических
задачах фундаментальную роль играет второй закон Ньютона. Он гласит, что ускорение, с которым движется тело, прямо пропорционально
действующей на него силе (если их несколько — то равнодействующей, т.е. векторной сумме сил) и обратно пропорционально его массе:

 F
a .
m
Чтобы исследовать ситуации, когда сила или масса не являются
величинами постоянными, необходимо записать этот закон в более
общей математической форме.
Допустим, что сила или масса (или и то, и другое) непостоянны и
заданным образом зависят от времени, скорости движения или пере
мещения: F (t , v, s) и m(t , v, s). Достаточно наличия хотя бы одной из
указанных зависимостей, чтобы ускорение было величиной переменной. В этом случае приведенная выше формула определяет его значение в тот момент времени, которому соответствуют сила и масса. Реальный интерес представляет временная зависимость перемещения


s (t ) и скорости v (t ) . Поскольку ускорение есть приращение скорости, а скорость — приращение перемещения, то
15



dv 
ds
,
a (t )  ,v (t ) 
dt
dt
(5)
а сам второй закон Ньютона приобретает вид
  

d 2 s F (t , v , s )

 
dt 2 m(t , v , s )
(6)
или, что то же самое,

   
d s  dv F (t , v , s )
 v (t ), 
  .
dt
dt m(t , v , s )
(7)
Еще раз подчеркнем, что совсем необязательно чтобы сила и/или
масса зависели каждая от трех указанных переменных. Чаще всего в
конкретных задачах присутствует в явном виде одна из указанных
зависимостей.
Проведем дискретизацию по времени простейшим возможным
способом. Если в некоторый момент времени t0 величина s имеет значение s0, а величина v — значение v0, то в некоторый последующий
момент времени t1 = t0 + t будем иметь:

F0




v (t1 )  v (t 0 )  a (t 0 )  t  v (t 0 ) 
 t ,
m0



s (t1 )  s (t 0 )  v (t 0 )  t.
(8)
Здесь индекс «0» означает величины в начальный момент времени.


При вычислениях значений v и s в последующие моменты времени можно поступать аналогично (8). Так, если известны значения


v i и s i в момент ti, то


 Fi

 
vi 1  vi   t , si 1  si  vi  t.
(9)
mi
Вопрос о выборе конкретного значения t весьма непрост и определяется следующими соображениями. При компьютерном моделиро16
вании можно получить решение задачи о движении тела на некотором
конечном отрезке времени [t0, T]. Чем больше величина t, тем:
а) меньше вычислений требуется для того, чтобы пройти весь заданный временной интервал;
б) меньшая точность в передаче значений непрерывных функ

ций s (t ) и v (t ) их дискретными представлениями — наборами чисел


s i и vi .
Вопрос о точности результатов является в описываемом моделировании одним из центральных. Он распадается на два: как оценить
эту точность и можно ли, уменьшая t, достигать все большей точности?
Остановимся вначале на первом. Формулы (8), (9) представляют
собой применение метода Эйлера для приближенного решения системы дифференциальных уравнений (7). Наиболее приемлемой при использовании этого и родственного ему методов (например, РунгеКутта) является эмпирическая оценка точности. Для этого отрезок
[t0, T] проходится с некоторым шагом t, а затем с существенно меньшим (например, в два раза) шагом. Сравнение результатов в точках
t1 , t2 , , T позволяет составить представление о реальной точности
результатов. Если она недостаточна, то следует повторить процесс с
еще меньшим шагом.
Однако, уменьшение шага t не всегда ведет к улучшению результатов моделирования. Одна из причин заключается в том, что чем
меньше шаг, тем больше арифметических действий, ведущих к увеличению глобальной погрешности округления. Другая причина глубже и
связана со способом дискретизации — перехода от описания реально
непрерывного процесса движения тел к описанию по простейшим
формулам (8), (9). Обе причины могут привести к неустойчивости решения, т.е. получению результатов, не имеющих реально ничего общего с истинными. Обычно неустойчивость становится заметной при
повторениях процесса с уменьшением шага t.
Более эффективными при моделировании процессов, описываемых дифференциальными уравнениями, являются методы РунгеКутта более высокого порядка аппроксимации, чем метод Эйлера, неявные методы, методы типа «предиктор-корректор», отличающиеся
повышенной устойчивостью, и другие, описанные в специальной
литературе.
17
Сила сопротивления. В ряде представленных ниже задач необходимо знать, от чего зависит сила сопротивления при движении в
среде. При реальных физических движениях тел в газовой или жидкостной среде трение сильно влияет на характер движения.
Соответствующие закономерности носят эмпирический характер
и отнюдь не имеют столь строгой и четкой формулировки, как второй
закон Ньютона. При относительно малых скоростях величина силы
сопротивления пропорциональна скорости и имеет место соотношение
Fсопр= k1v ,
(10)
где k1 определяется свойствами среды и формой тела. Например, для
шарика k1  6 r — так называемая формула Стокса, где  — динамическая вязкость среды, r — радиус шарика. Так, для воздуха при
нс
нс
t  20 o С и давлении 1 атм   0,0182 2 , для воды   1,002 2 ,
м
м
нс
глицерина   1480 2 .
м
При более высоких скоростях сила сопротивления становится
пропорциональной квадрату скорости:
Fсопр  k2 v 2 .
(11)
Разумеется, линейная по скорости часть силы сопротивления
формально также сохранится, но если k 2 v 2  k1v , то вкладом k1v
можно пренебречь. О величине k2 известно следующее: она пропорциональна площади сечения тела S, поперечного по отношению к потоку, плотности среды среды и зависит от формы тела. Обычно представляют
k2 
1
cSρ среды ,
2
(12)
где c — безразмерный коэффициент лобового сопротивления
(см. рис. 1).
18
Диск
c=1,11
Полусфера
c=0,55
Шар
c=0,4
«Каплевидное» тело
c=0,045
Рис. 1. Значения коэффициента лобового сопротивления для некоторых тел,
поперечное сечение которых имеет указанную на рисунке форму
При достижении достаточно большой скорости, когда образующиеся за обтекаемым телом вихри газа или жидкости начинают интенсивно отрываться от тела, значение с в несколько раз уменьшается;
для шара оно становится приблизительно равным 0,1.
Свободное падение тела. Математическая модель свободного
падения тела — уравнение второго закона Ньютона с учетом двух сил,
действующих на тело — силы тяжести и силы сопротивления среды.
Движение является одномерным; проецируя силу, скорость и перемещение на ось, направленную вертикально вниз, получаем из (7):
d h
 d t  v ,
 d v mg  k v  k v 2
1
2


 d t
m
(13)
В конкретных задачах можно одной из составляющих силы сопротивления пренебречь (если она заведомо много меньше другой).
Частичное тестирование моделирующей программы можно провести для движения без трения. Аналитическое решение в этом случае
общеизвестно.
Входные параметры модели:
- начальная высота тела;
19
начальная скорость тела;
величины, определяющие коэффициенты сопротивления
среды k1 и k2.
Взлет ракеты. Построим простейшую модель вертикального
взлета ракеты, приняв гипотезу, что ее масса уменьшается во время
взлета по линейному закону:
-
m  αt , если m(t )  mкон
m(t )   0
 mкон , если m(t )  mкон
(14)
Силу тяги двигателя будем считать постоянной на всем участке
взлета.
Однако при самом простом моделировании данного процесса необходимо принять во внимание, что плотность воздуха , входящая в коэффициент k2, убывает по мере подъема ракеты по закону
 = 0 . 10h, где h  высота,   5,6 . 105 м1 — иначе модель будет
совершенно неадекватна реальности. Таким образом, модель будет
описываться системой двух дифференциальных уравнений для функций v(t) и h(t):
 dh
 dt  v,

 βh
2
 dv  Fтяги  m(t )cρ010 sv (t )
 dt
m(t)
(15)
Входные параметры модели:
 m0  начальная масса ракеты, заправленной топливом;
 mкон  остаточная масса после полного выгорания топлива;
   расход топлива;
 величины, определяющие k2  коэффициент сопротивления
воздуха (линейной составляющей силы сопротивления можно заведомо пренебречь);
 Fтяги  сила тяги двигателя (принять постоянной).
Движение тела, брошенного под углом к горизонту. Дифференциальные уравнения модели получаются из второго закона Нью20
тона проецированием скорости и перемещения на горизонтальную и
вертикальную оси координат:
 dvx
k 1  k 2 v x2  v y2


vx ,
m
 dt
 dvy
k 1  k 2 v x2  v y2


vy ,
 dt
m
 dx
 dt  vx ,
 dy

 vy .
 dt
(16)
Входные параметры модели:
 m  масса тела;
 v  величина начальной скорости;
   угол начального наклона вектора скорости к горизонту;
* величины, определяющие коэффициенты сопротивления среды k1 и k2.
Общие рекомендации
1. Целесообразно до начала компьютерной реализации модели
провести обезразмеривание переменных, входящих в уравнения, выявить безразмерные комбинации параметров модели и дальнейшие
действия производить в безразмерных величинах.
2. Необходим контроль точности результатов и устойчивости
применяемого численного метода. Для этого достаточно ограничиться
эмпирическими приемами (например, сопоставлением решений, полученных с несколькими разными шагами по времени).
3. Целесообразно применять для моделирования стандартные методы интегрирования систем дифференциальных уравнений, описанные в математической литературе. Простейшие методы (метод Эйлера) часто бывают неустойчивы и их применение ведет к лишнему расходу времени.
4. Результаты моделирования следует выводить на экран компьютера в следующих видах: таблицы зависимостей перемещения и скорости от времени, графики этих зависимостей, траектории. Желательны динамические иллюстрации движения тел (скажем, изображение
21
движений по траекториям в некотором условном масштабе времени
через равные промежутки). Уместны звуковые сигналы (одни — в
критические моменты для моделируемого движения, другие — через
некоторый фиксированный отрезок пройденного пути и. д.).
5. При выводе результатов в табличном виде следует учитывать,
что соответствующий шаг по времени не имеет практически ничего
общего с шагом интегрирования и определяется удобством и достаточной полнотой для восприятия результатов на экране. Экран,
сплошь забитый числами, не поддается восприятию. Выводимые числа следует разумным образом форматировать, чтобы незначащие цифры практически отсутствовали.
6. При выводе результатов в графической форме графики должны быть построены так, как это принято в математической литературе (с указанием того, какие величины отложены по осям, масштабами
и т. д.).
7. Поскольку таблицы, графики и траектории на одном экране
обычно не помещаются, удобно сделать меню, в котором пользователь выбирает желаемый в настоящий момент вид представления результатов.
Задания к лабораторной работе
1. Выписать математическую модель, определить состав набора
входных параметров и их конкретные числовые значения.
2. Если моделирование будет производится в безразмерных переменных (решение — на усмотрение студента и преподавателя), то
произвести обезразмеривание и найти набор значений безразмерных
параметров.
3. Спроектировать пользовательский интерфейс программы моделирования, обращая особое внимание на формы представления результатов.
4. Выбрать метод интегрирования системы дифференциальных
уравнений модели, найти в библиотеке стандартных программ или
разработать самостоятельно программу интегрирования с заданной
точностью.
5. Произвести отладку и тестирование полной программы.
6. Выполнить конкретное задание из своего варианта работы.
7. Качественно проанализировать результаты моделирования.
8. Создать текстовый отчет по лабораторной работе, включающий:
22
титульный лист (название работы, исполнитель, группа и т. д.);
постановку задачи и описание модели;
результаты тестирования программы;
результаты, полученные в ходе выполнения задания (в различных формах);
- качественный анализ результатов.
-
Варианты
Вариант 1
Парашютист прыгает с некоторой высоты и летит, не открывая
парашюта; на какой высоте (или через какое время) ему следует открыть парашют, чтобы иметь к моменту приземления безопасную
скорость (не большую 10 м/с)?
Вариант 2
Изучить, как связана высота прыжка с площадью поперечного сечения парашюта, чтобы скорость приземления была безопасной?
Вариант 3
Промоделировать падения тела с заданными характеристиками
(масса, форма) в различных вязких средах. Изучить влияние вязкости
среды на характер движения. Скорость движения должна быть столь
невелика, чтобы квадратичной составляющей силы сопротивления
можно было пренебрегать.
Вариант 4
Промоделировать падения тела с заданными характеристиками
(масса, форма) в различных плотных средах. Изучить влияние плотности среды на характер движения. Скорость движения должна быть
достаточно велика, чтобы линейной составляющей силы сопротивления можно было пренебрегать (на большей части пути).
Вариант 5
Промоделировать движение исследовательского зонда, «выстреленного» вертикально вверх с уровня земли. В верхней точке траектории над зондом раскрывается парашют, и он плавно спускается в точку старта.
Вариант 6
Промоделировать движение исследовательского зонда, «выстреленного» вертикально вверх с летящего над землей самолета. В верхней точке траектории над зондом раскрывается парашют, и он плавно
спускается на землю.
23
Вариант 7
Глубинная бомба, установленная на взрыв через заданное время,
сбрасывается со стоящего неподвижно противолодочного корабля.
Исследовать связь между глубиной, на которой произойдет взрыв, и
формой корпуса (сферической, полусферической, каплевидной и т. д.).
Вариант 8
Глубинная бомба, установленная на взрыв на заданной глубине,
сбрасывается со стоящего неподвижно противолодочного корабля.
Исследовать связь между временем достижения заданной глубины и
формой корпуса (сферической, полусферической, каплевидной и т. д.).
Вариант 9
Провести моделирование взлета ракеты при значениях параметров m0 = 2 . 107 кг, mкон = 2 . 105 кг,  = 2 . 105 кг/c, Fтяги = 4. 108 н. Ответить на вопрос: достигнет ли ракета при этих значениях параметров
первой космической скорости 7,8 км/с?
Вариант 10
Провести исследование соотношения входных параметров m0 и
Fтяги, при которых ракета достигнет первой космической скорости (и в
соответствующий момент исчерпает горючее). Остальные входные
параметры фиксировать произвольно. Построить соответствующую
фазовую диаграмму в переменных (m0, Fтяги).
Вариант 11
Разработать и исследовать усовершенствованную модель взлета
ракеты, приняв во внимание, что реальные космические ракеты обычно двух- трехступенчатые, и двигатели разных ступеней имеют разную силу тяги.
Вариант 12
Промоделировать движение исследовательского зонда, снабженного разгонным двигателем небольшой мощности, «выстреленного»
вертикально вверх с уровня земли. В верхней точке траектории двигатель выключается, над зондом раскрывается парашют и он плавно
спускается в точку старта.
Вариант 13
Промоделировать движение исследовательского зонда, снабженного разгонным двигателем небольшой мощности, «выстреленного»
вертикально вверх с летящего над землей самолета. В верхней точке
траектории над зондом раскрывается парашют и он плавно спускается на землю.
24
Вариант 14
Глубинная бомба-торпеда, снабженная разгонным двигателем,
установленная на взрыв через заданное время, сбрасывается со стоящего неподвижно противолодочного корабля. Исследовать связь между глубиной, на которой произойдет взрыв, и формой корпуса (сферической, полусферической, каплевидной и т. д.).
Вариант 15
Глубинная бомба-торпеда, снабженная разгонным двигателем,
установленная на взрыв на заданной глубине, сбрасывается со стоящего неподвижно противолодочного корабля. Исследовать связь между временем достижения заданной глубины и формой корпуса (сферической, полусферической, каплевидной и т. д.).
Вариант 16
Торпеда, снабженная разгонным двигателем, нацеливается с подводной лодки на стоящий вертикально над ней надводный корабль.
Исследовать связь между временем поражения цели формой корпуса
(сферической, полусферической, каплевидной и т. д.).
Вариант 17
Построить траектории и найти временные зависимости горизонтальной и вертикальной составляющих скорости и перемещения для
тела массой 1 кг, брошенного под углом 45о к горизонту с начальной
скоростью 10 м/с
1) в воздухе;
2) в воде.
Сравнить результаты с теми, которые получились бы без учета
сопротивления среды (последние можно получить либо численно из
той же модели, либо аналитически).
Вариант 18
Найти вид зависимости горизонтальной длины полета тела и максимальной высоты траектории от одного из коэффициентов сопротивления среды, фиксировав все остальные параметры. Представить эту
зависимость графически и подобрать подходящую аналитическую
формулу, определив ее параметры методом наименьших квадратов.
Вариант 19
Разработать модель подводной охоты. На расстоянии r под углом
 подводный охотник видит неподвижную акулу. На сколько метров
выше ее надо целиться, чтобы гарпун попал в цель?
Вариант 20
Поставить и решить задачу о подводной охоте при дополнительном условии: акула движется.
25
Вариант 21
Промоделировать движение исследовательского зонда, «выстреленного» под углом к горизонту. В верхней точке траектории над
зондом раскрывается тормозной парашют и он плавно движется до
земли.
Вариант 22
Глубинная бомба, установленная на взрыв через заданное время,
сбрасывается со движущегося противолодочного корабля. Исследовать связь между глубиной, на которой произойдет взрыв, пройденным расстоянием по горизонтали и формой корпуса (сферической,
полусферической, каплевидной и т. д.).
Вариант 23
Глубинная бомба-торпеда, снабженная разгонным двигателем,
установленная на взрыв на заданной глубине, сбрасывается с движущегося противолодочного корабля. Исследовать связь между временем достижения заданной глубины, пройденным расстоянием по горизонтали и формой корпуса (сферической, полусферической, каплевидной и т. д.).
Вариант 24
Торпеда, снабженная разгонным двигателем, нацеливается с лежащей на дне подводной лодки на поражение движущегося надводного корабля. Пуск торпеды производится в момент прохождения корабля над лодкой. Исследовать связь между глубиной залегания лодки, временем поражения цели и расстоянием, который корабль успеет
пройти по горизонтали.
Контрольные вопросы
1. В чем состоит предмет исследований классической экологии?
2. В чем сущность процессов:
 внутривидовой конкуренции?
 межвидовой конкуренции?
 отношений «хищник-жертва»?
3. Каковы цели математического моделирования в экологии?
4. В чем отличие приемов моделирования популяций с непрерывным и дискретным размножением?
5. Каковы альтернативные формы записи второго закона Ньютона?
26
6. Как связаны сила трения при движении тела в среде со скоростью движения при относительно небольших (дозвуковых) скоростях?
7. Как (качественно) меняется сила трения со скоростью при околозвуковых скоростях движения?
8. При каких значениях скорости становятся равными линейная и
квадратичная составляющие силы сопротивления при падении шарика
диаметром 5 см
а) в воде?
б) керосине?
в) в глицерине?
27
Лабораторная работа № 2
МОДЕЛИРОВАНИЕ СЕТЕЙ ПЕТРИ
Цель работы:
1. Освоить основные формализмы ординарных и раскрашенных
сетей Петри.
2. Научиться составлять формальное описание ординарных и
цветных сетей Петри.
3. Освоить приемы моделирования систем на основе сетей Петри
в любой из следующих программных систем: Tina, Pndpi, HPSim,
Design/CPN.
Содержание работы
1. Изучить теоретический материал по учебнику (раздел 5) или
лекциям.
2. Построить модели ординарной и цветной сети Петри в соответствии с заданным вариантом.
3. Провести исследование построенной сети путем построения
дерева маркировок.
4. Оценить свойства построенных на шаге 2 сетей Петри: ограниченность, консервативность, безопасность, живость.
Оформление работы
Оформленный отчет по лабораторной работе должен содержать:
 титульный лист с указанием фамилий исполнителей, группы и
номера варианта;
 для каждого из заданий представить:
o сеть Петри по заданию;
o дерево маркировок;
o анализ свойств построенной сети;
Задание № 1. Моделирование ординарных сетей Петри
Требуется построить модель заданного объекта в виде ординарной сети Петри.
28
Варианты для самостоятельной работы
1. Задача об обедающих философах. Пять философов отдыхают
в пансионате. Каждый из философов может или предаваться размышлениям, или обедать, посетив столовую. В столовой находится круглый стол, за которым есть места для каждого из философов, пять тарелок, пять вилок, расположенных между тарелками и блюдо спагетти
в центре стола. Каждый философ для того чтобы пообедать берет одновременно две вилки и приступает к трапезе, по завершению которой
он кладет вилки на стол и предается размышлениям.
2. Представить задачу об обедающих философах для случая, когда левую и праву вилки берут поочередно.
3. Представить модель задачи 2 для случая, когда за стол приглашают одного из философов, не препятствующему общему поглощению пищи обедающими.
4. Представить модель задачи 3 для случая, когда приглашение к
столу необязательные к рассмотрению философом.
5. Построить модель обслуживания процессов в компьютере,
который имеет два процессора, магнитный диск и принтер.
6. Построить модель взаимодействия трех процессов, из которых один пишет сообщения в буфер, а другие два обрабатывают сообщения и помещают результат в выходной буфер.
7. Представить модель задачи 6 при ограничениях на размер буферов.
8. Представить модель задачи 7 для произвольного заданного
числа пишущих и читающих процессов.
9. Построить модель лифта для четырехэтажного дома. Кнопки
вызова находятся на каждом этаже.
10. Представить модель задачи 9 с ограничениями на количество
пассажиров.
Задание № 2. Моделирование цветных сетей Петри
Требуется для указанного варианта построить, формально описать и исследовать цветную сеть Петри.
Варианты для самостоятельной работы
Задания составлены на основе 2 различных задач, каждая задача
содержит 5 вариантов условий. Зная свой вариант задания, следует
выбрать задачу и соответствующие условия.
29
Задача 1
В цеху собирается изделие, состоящее из K деталей типа A , M
деталей типа B , N деталей типа C . Детали поступают в цех с участка
комплектования в указанном ниже порядке. Собранное изделие поступает на склад емкостью S изделий, а со склада – на продажу потребителю. При отсутствии комплекта деталей и заполнении склада
работа цеха останавливается.
Дополнительные условия:
1. Детали поступают на сборку по одной в определенном порядке: сперва типа A , затем типа B , затем типа C .
2. Детали поступают на сборку комплектами: K деталей типа A ,
M – типа B , N – типа C .
Варианты заданий
№ варианта
K
M
N
S
1
3
5
7
9
1
2
2
4
3
2
3
4
6
5
3
3
6
6
6
2
3
3
2
3
Дополнительное
условие
1
2
1
2
1
Задача 2
Система массового обслуживания содержит два типа устройств:
A и B и выполняет заявки k видов. Устройств A – n A экземпляров,
устройств B – n B экземпляров. Заявки поступают извне буфер заявок
и обслуживаются в указанном ниже порядке, обслуженные заявки выводятся из системы.
Устройство типа A обслуживает все заявки, устройство типа
B – только заявки первого и k-го видов.
Дополнительные условия:
1. Заявки поступают произвольном порядке, а выводятся из системы в том же порядке, что и поступили.
2. Заявки имеют приоритеты: сперва обслуживаются все
находящиеся в буфере заявки первого вида, затем все заявки второго
вида и т. д.
30
Варианты заданий
№ варианта
nA
nB
k
2
4
6
8
10
1
2
3
2
3
2
1
2
2
2
4
3
2
3
3
Дополнительное
условие
2
1
2
2
1
Контрольные вопросы
1. Укажите основные области применения сетей Петри.
2. Опишите коротко процесс функционирования сети Петри.
3. Укажите способы наглядного представления динамики сети
Петри.
4. Что представляет собой графа достижимых маркировок сети
Петри?
5. Какие сети Петри называют ординарными?
6. Какие свойства сетей Петри позволяет определить дерево достижимости маркировок?
7. Какие сети Петри называют цветными?
8. Укажите области применения цветных сетей Петри.
31
Лабораторная работа 3
ПРИНЦИПЫ ПОСТРОЕНИЯ МОДЕЛИРУЮЩИХ
АЛГОРИТМОВ: Δt и δz
Цель работы:
1. Изучить принципы построения моделирующих алгоритмов:
принцип Δt и принцип особых состояний δz;
2. Приобрести навыки построения имитационных моделей согласно принципам Δt и δz на примере моделирования работы простейших систем.
Теоретические сведения
Задачей имитационного моделирования является получение траектории движения (изменения) рассматриваемой системы в n – мерном пространстве ( Z1 (t ), Z 2 (t ),...,Z n (t ) ), а также вычисление некоторых показателей, зависящих от выходных сигналов системы и характеризующих ее свойства.
Известны два принципа построения моделирующего алгоритма
процесса функционирования систем: принцип  t и принцип особых
состояний ( z ) [7, 11, 13].
Принцип  t . Предположим, что начальное состояние системы
соответствует значениям Z10 , Z 20 ,..., Z n0 . Принцип  t предполагает
преобразование модели системы к такому виду, чтобы значения
Z11 , Z 21 ,..., Z n1 в момент времени t1  t 0  t можно было вычислить через начальные значения, а в момент t 2  t1  t через значения
Z11 , Z 21 ,..., Z n1 на предшествующем шаге и так для каждого i-ого шага
( Δt  const ; i  1,..., M ).
Принцип  t является универсальным, применим для широкого
класса систем. Его недостатком является неэкономичность с точки
зрения затрат машинного времени. Пример системы, которая моделируется на основе использования принципа  t – устройство, возводящее в квадрат входной сигнал каждый такт времени или дифференцирующий фильтр.
Принцип особых состояний (принцип z ). При рассмотрении
некоторых видов систем можно выделить два вида состояний:
32
- обычное, в котором система находится большую часть времени, при этом Z i (t ); i  1,...,n изменяются плавно;
- особое, характерное для системы в некоторые моменты времени, причем состояние системы изменяется в эти моменты скачком.
Принцип особых состояний отличается от принципа  t тем, что
шаг по времени в этом случае не постоянен, является величиной случайной и вычисляется в соответствии с информацией о предыдущем
особом состоянии.
Примерами систем, имеющих особые состояния, являются системы массового обслуживания (СМО). Особые состояния появляются в
моменты поступления заявок, в моменты освобождения каналов и т. д.
Для таких систем применение принципа  t является нерациональным, так как при этом возможны пропуски особых состояний и
необходимы методы их обнаружения. Принцип z дает возможность
для ряда систем существенно уменьшить затраты машинного времени
на реализацию моделирующих алгоритмов по сравнению с принципом
 t . Логика построения моделирующего алгоритма, реализующего
принцип z , отличается от рассмотренной для принципа  t только
тем, что включает в себя процедуру определения момента времени,
соответствующего следующему особому состоянию системы. Для исследования процесса функционирования больших систем рационально
использование комбинированного принципа построения моделирующих алгоритмов, сочетающего в себе преимущества каждого из рассмотренных принципов.
Пояснения к работе
Пояснения к заданию 1. Процесс, происходящий в фильтре
(рис. 1), описывается дифференциальным уравнением [13]:
dZ
 K ( x(t )  Z (t )) ,
dt
(1)
где K – коэффициент усиления; x(t ) – входной сигнал.
Доказано, что:
dZ dx
 .
k  dt
dt
lim
33
(2)
Преобразуем математическую модель фильтра (1) к виду, позволяющему применить принцип  t . В простейшем случае достаточно
уравнение (1) аппроксимировать конечно-разностным уравнением:
Z i 1  Z i
 K ( xi  Z i ), где Z i  Z i (t0  it ); xi  xi (t0  it ) , (3)
t
что соответствует итерационной формуле:
Z i 1  Kt ( xi  Z i )  Z i ; K 
1
.
t
(4)
Задав начальное условие Z (t0 )  Z 0 можно построить траекторию
процесса, происходящего в фильтре, с целью получения текущего
значения производной любой детерминированной функции x(t ) , подаваемой на вход.
Пример. Пусть шаг  t = 0,01; x(t )  sin( t )  cos(t ) ; Z (0)  0,5
; N = 1000.
Вычислим К = 1 /  t = 100. В табл. 2 приведены результаты вычислений. В последнем столбце табл. 2 приведены значения производной, вычисленные аналитически, по формуле:
x' (t )  cos(t )  sin( t ) .
Таблица 2
Z  Zi
x ' (t )
K ( Zi 1  Zi ) = i 1
i
t
x(t )  xi
Zi
t
0
1
2
3
4
5
6
7
8
9
…
0,01
0,02
0,03
0,04
0,05
0,06
0,07
0,08
0,09
0,1
1,00995
1,0198
1,0295
1,0392
1,0487
1,0582
1,0675
1,0767
1,0858
1,0948
0,5
1,00995
1,0198
1,0295
1,0392
1,0487
1,0582
1,0675
1,0767
1,0858
50,9949
0,98488
0,97469
0,96439
0,95399
0,94351
0,93293
0,92226
0,91149
0,90063
34
0,98995
0,9798
0,9696
0,9592
0,9488
0,9382
0,9276
0,9169
0,9060
0,8952
На рис. 2 приведены графики исходной функции x(t ) и производных x' (t ) , рассчитанных имитационным методом и аналитическим.
При построении графика не учитывается первая строка табл. 2,
так как значение производной, вычисленной имитационным методом,
в момент времени 0 соответствует переходному процессу в дифференцирующем фильтре и поэтому значительно отличается от значения
производной, вычисленной аналитически. Продолжительность переходного процесса в фильтре зависит от задания начального значения
Z (0) . В данном случае переходный процесс продолжается один временной такт.
1,8
X(t)
K*(X(t)-Z(t))
X'(t)
1,2
0,6
0,0
-0,6
-1,2
-1,8
t
Рис. 2
Пояснения к заданию 2. Пусть рассматривается вычислительная
система, включающая один компьютер. Задан интервал поступления
заданий на обработку (равномерный в диапазоне 2–6). Задан интервал
выполнения заданий (равномерный в диапазоне 3–4). Реализовать моделирование работы вычислительной системы по обработке 100 заданий. Рассчитать среднее время ожидания в очереди и вероятность
простоя компьютера.
35
1 шаг. Выберем входные, промежуточные и выходные переменные
входные и промежуточные переменные:
Т инт. прих. – интервал между поступлением заданий;
Т инт. обс. – интервал обработки задания;
Т прих. – момент поступления очередного задания;
Т нач. обс. – момент начала обработки очередного задания;
Т ок. обс. – момент окончания обработки очередного задания;
выходные переменные:
Т ож. – время ожидания задания в очереди;
Т простоя – время простоя компьютера до поступления очередного
задания;
Т ож.ср. – среднее время ожидания задания в очереди;
Р простоя – вероятность простоя компьютера.
В табл. 3. и на рис. 3 приведены данные ручного моделирования
обработки первых четырех заданий для иллюстрации принципа особых состояний. Интервалы поступления заданий и интервалы обработки заданы произвольно.
Таблица 3
Имитационное моделирование обработки заданий
Номер
шага
Tинт. прих. Tинт. обс.
Tприх.
Tнач. обс. Tок. обс.
Tож.
Tпростоя
1
3
4
3
3
7
0
3
2
5
3
8
8
11
0
1
3
2
4
10
11
15
1
0
4
3
4
13
15
19
2
0
…
100
36
Номер
задания
Модельное
время
0
1
приход
3
1
2
ок. обс.
7
8
3 2
4
3
4
10 11
13
15
19
Рис. 3
2 шаг. Разработка блок-схемы алгоритма имитации СМО (рис. 4)
3 шаг. В соответствии с разработанной блок-схемой составляется
программа имитации работы СМО на любом языке программирования
с использованием любых программных средств.
4 шаг. Расчет показателей эффективности СМО с помощью разработанной программы имитации.
5 шаг. Анализ полученных результатов, оценка эффективности
СМО.
Требования к отчету по работе
В отчете по лабораторной работе должно быть представлено следующее:
- цели работы;
- постановка задачи задания 1;
- фрагмент таблицы с результатами моделирования работы дифференцирующего фильтра и графики исходной функции и производных, рассчитанных аналитически и имитационно;
- сравнение результатов, полученных с использованием аналитического и имитационного методов, выводы;
- постановка задачи задания 2;
- блок-схема алгоритма имитации работы СМО;
- листинг программы имитации; результаты работы программы;
- выводы об эффективности функционирования СМО; предложения по улучшению работы СМО;
- выводы по работе в произвольной форме.
37
начало
задание начальных условий:
Тпростоя=0; Тнач.обс.=0;
Тож.=0; Тприх.=0
нет
i<100
да
формирование
Тприх.=Тприх.+Тинт.прих.
Т инт.обс.
Тприх.<Ток.обс.
канал
занят?
нет
да
Тож.=Тож.+Ток.обс.-Тприх.
Тпростоя=Тпростоя+Тприх.-Ток.обс.
Ток.обс.=Тприх.+Тинт.обс.
Ток.обс.=Ток.обс.+Тинт.обс
i=i+1
подведение итоговой
статистики:
Р простоя; Т ож.ср.
конец
Рис. 4. Блок-схема алгоритма имитации работы СМО
38
Задание к лабораторной работе
Задание 1. Рассчитать значения производной X (t ) детерминированной функции X (t ) (в соответствии с вариантом, табл. 1), подаваемой на вход дифференцирующего фильтра.
Таблица 1
К заданию 1
Вариант
X(t)
N
1
2
3
1
sin2(t)
+cos(t)
1000
2
cos2(t)
+sin(t)
1000
3
tg2(t)
100
4
arctg2(t)
100
К заданию 2
интерваинтервалы
лы пообработки
Очередь, дисциплина
Z(0) ступле- заданий перобслуживания
ния за- вым и вторым
даний компьютерами
4
5
6
7
длина очереди не огра(1, 20)
ничена; компьютеры
0,5 (1, 11)
(1, 19)
обслуживают заявки
равновероятно
суммарная длина очереди равна 2; если свободны оба компьютера,
то заявку обслуживает
(1, 19)
первый, если первый
0,5 (1, 13)
(1, 18)
занят, то –второй; если
заняты оба компьютера,
то обслуживает компьютер, который освободится первым
допустима очередь к
каждому компьютеру
равная 2; вероятность
(1, 20)
обслуживания заявки
0,5 (1, 7)
(1, 20)
первым компьютером –
0,3; вероятность обслуживания заявки вторым компьютером – 0,7
длина очереди не ограничена; первые 40 за(1, 5)
даний обслуживает
0,5 (1, 5)
(1, 6)
первый компьютер;
оставшиеся 60 заданий
обслуживает второй
компьютер
39
1
2
3
4
5
6
5
arcsin2(t) 100
0,5
(1, 7)
(1, 5)
(1, 8)
6.
arccos2(t) 100
0,5
(1, 9)
(1, 8)
(1,7)
7.
sin2(2t)+
1000 0,5
+cos(2t)
(1, 3)
(1,5)
(1,4)
8.
cos2(2t)+
1000 0,5
+sin(2t)
(1,15)
(1,19)
(1,14)
(1, 9)
(1,5)
(1,8)
9.
tg2(2t)
100
1
40
Продолжение табл. 1
7
суммарная длина очереди 2; первые 50 ед.
модельного времени
задания обслуживает
первый компьютер;
оставшиеся время
задания обслуживает
второй компьютер
длина очереди не ограничена; если свободны
оба компьютера, то
заявку обслуживает
первый, если первый
занят, то –второй; если
заняты оба компьютера,
то обслуживает компьютер, который освободится первым
длина очереди не
ограничена; вероятность обслуживания
заявки первым компьютером – 0,8; вероятность обслуживания
заявки вторым
компьютером – 0,2
длина очереди не ограничена; первые 100 ед.
модельного времени
задания обслуживает
первый компьютер;
оставшиеся время
задания обслуживает
второй компьютер
длина очереди к каждом у компьютеру равна 2; первые 20 заданий
обслуживает первый
компьютер; оставшиеся
80 заданий обслуживает второй компьютер
1
2
3
4
5
6
10.
arctg2(2t)
100
1
(1, 13)
(1, 29)
(1,30)
11. arcsin2(2t)
100
1
(1,3)
(1,8)
(1,9)
12. arccos2(2t) 100
1
(1,11)
(1,15)
(1,13)
Окончание табл. 1
7
длина очереди к каждому компьютеру равна 2; компьютеры
обслуживают заявки
равновероятно
длина очереди к каждому компьютеру равна
3; если свободны оба
компьютера, то заявку
обслуживает первый,
если первый занят, то –
второй; если заняты оба
компьютера, то обслуживает компьютер,
который освободится
первым
суммарная длина очереди равна 4; первые 30
заданий обслуживает
первый компьютер;
оставшиеся 70 заданий
обслуживает второй
компьютер
1.1. Рассчитать X (t ) имитационным методом на основе
принципа  t в моменты времени t=1,2,…,N (  t =0,01).
Структурная схема дифференцирующего фильтра
1.2. Рассчитать значения производной X (t ) в моменты времени t
= 1, 2,…, N, используя аналитическую формулу (аналитический
метод).
41
1.3. Построить графики исходной функции X (t ) и производных

X (t ) , рассчитанных имитационным методом и аналитическим. Сопоставить полученные результаты, сделать выводы.
Задание 2. Реализовать имитационное моделирование вычислительной системы на основе принципа z с целью оценки эффективности ее функционирования. Известно, что вычислительная система
состоит из двух компьютеров, интервалы времени между двумя последовательными поступлениями заданий подчиняются равномерному
закону распределения с заданными параметрами (см. табл. 1). Время
выполнения заданий также равномерно распределено (см. табл. 1).
Перед каждым компьютером допустима очередь заданий. Характеристики очереди и дисциплина обслуживания заданы в табл. 1.
2.1. Сымитировать обработку 100 заданий.
2.2. Оценить выходные характеристики изучаемой вычислительной системы: среднее время нахождения задания в очереди; среднее
время пребывания задания в системе; вероятность простоя первого и
второго компьютеров; вероятность отказа в обслуживании.
2.3. Повторить имитационный эксперимент 100 раз. Рассчитать
характеристики работы системы задания 2.2. по результатам 100 экспериментов.
2.4. Сделать выводы. Оценить эффективность работы вычислительной системы.
3. Сделать общие выводы по работе в произвольной форме.
Контрольные вопросы
1. Приведите следующие понятия: модель, система, моделирование.
2. Приведите примеры областей использования математического
моделирования. Какие задачи решаются на основе математического
моделирования?
3. Перечислите основные методы математического моделирования. Приведите примеры систем, для моделирования которых используются перечисленные методы.
4. Какие основные подходы используются при построении математических моделей систем? Условия использования и особенности
каждого подхода. Приведите примеры.
42
5. В чем сущность имитационного моделирования? Какие основные проблемы возникают в ходе имитационного моделирования системы?
6. В каких случаях при моделировании системы предпочтительнее использовать аналитические методы, в каких случаях – имитационные методы?
7. Суть принципов построения моделирующих алгоритмов:
 t и z .
8. Бусленко Н.П. в [4] назвал принцип  t «самым расточительным». Почему?
9. Приведите классификацию видов моделирования. Какие виды
моделирования используются при построении модели дифференцирующего фильтра (задание 1) и модели вычислительной системы
(задание 2)?
43
Лабораторная работа № 4
ГЕНЕРАЦИЯ СЛУЧАЙНЫХ ВЕЛИЧИН
ДЛЯ РАЗЛИЧНЫХ РАСПРЕДЕЛЕНИЙ
Цель работы: изучение методов получения случайных величин
для различных распределений на основе базовой последовательности
псевдослучайных квазиравномерно распределенных чисел интервала (0, 1).
Краткие теоретические сведения
1. Генерация случайных величин
Рассмотрим методы получения последовательности случайных
дробей, т. е. случайных действительных чисел Un, равномерно распределённых на [0, 1). Так как в ЭВМ действительное число всегда представляется с ограниченной точностью, то фактически будем генерировать целые числа Xn в интервале от 0 до некоторого m–1. Тогда дробь
Un = Xn/m попадёт в интервал [0, 1). Обычно m на 1 больше максимального числа, которое можно записать в машинном слове (размер
слова). Поэтому Xn можно интерпретировать как целое содержимое
машинного слова с точкой, расположенной справа, а Un можно считать дробью, содержащейся в том же слове, с точкой в крайне левой
позиции.
Наилучшие из известных генераторов случайных чисел представляют собой частные случаи следующей схемы. Выберем четыре числа:
Х0 – начальное значение (Х0 ≥ 0);
а – множитель (а > 0);
с – приращение (с ≥ 0);
m – модуль (m > a, m > c, m > X0)
Тогда искомая последовательность случайных чисел {Хn}
Хn+1 = (аХn + c)mod m, n ≥ 0.
Она называется линейно-конгруэнтной последовательностью.
Последовательность всегда зацикливается, т. е. числа образуют цикл,
который повторяется бесконечное число раз. Это свойство присуще
44
всем последовательностям, имеющим общий вид Xn+1 = f(Xn). Повторяющийся цикл называется периодом.
Рассмотрим методы получения случайных величин для различных распределений.
1. Случайный выбор из конечного множества.
Простейшим и наиболее общим типом распределений, необходимым для практики, является распределение целочисленных случайных
величин. Чтобы получить случайное целое число X между 0 и k  1,
требуется выполнить одно присваивание X = k  U, где U является выходом датчика равномерно распределенного на [0, 1) случайного потока.
В более общем случае требуется приписать различным целым
числам разные веса. Пусть значение X = x1 должно получаться с вероятностью p1 , X = x2 с вероятностью p2, ..., X = xk с вероятностью pk, где
p1 + p2 +...+ pk = 1. Можно выработать равномерно распределенное
число U и принять
 x1 , если 0  U  p1 ;
 x , если p  U  p  p ;

1
1
2
X 2
................................................
 xk , если p1  p 2    p k 1  U  1 .
2. Равномерное распределение на полуинтервале [a, b).
Равномерное распределение на полуинтервале [a, b) определяется
соотношением
x = a+(b–a)U.
3.Нормальное распределение.
Нормальное распределение возникает в тех случаях, когда складывается много независимых случайных величин, причем эти величины сравнимы по степени влияния на рассеивание суммы. Тогда, каковы бы ни были законы распределения отдельных величин, закон распределения суммы будет близок к нормальному.
Случайная величина распределена по нормальному закону с параметрами m и , если ее плотность распределения имеет вид

1
f ( x) 
e
 2
45
(x  m) 2
2σ 2
.
Для получения случайной величины, нормально распределенной
со средним m = 0 и отклонением σ = 1, можно использовать 3 способа.
1 способ
Осуществляется по следующему алгоритму.
1) вырабатывается два случайных числа 0  U1 и U2  1 равномерно распределенные на интервале [0, 1) и формируются числа
V1 = 2U1 – 1 и V2 = 2U2 – 1;
2
2
2) считается некоторая S  V1  V2 ;
3) проверяется S. Если S  1, то выполняется шаг 1, иначе 
шаг 4;
4)
вычисляется x1  V1
 2 ln S
 2 ln S
и x2  V2
– незавиS
S
симые нормально распределенные случайные величины.
2 способ
Основан на центральной предельной теореме. Вначале вырабатывается 12 равномерно распределенных случайных величин
U1, …U12  [0, 1). Затем вычисляется нормально распределенная случайная величина х:
12
x   Ui  6 .
i 1
3 способ
Вырабатывается шесть случайных величин U1, …U6  [0, 1). Счи6
тается
x  2  Ui  3
значение
и
делается
поправка
i 1


1
3x  x 3 .
20 x
Величина x* будет нормально распределенной с параметрами
m = 0 и  = 1.
Чтобы получить нормальное распределение величины с произвольными параметрами m  0 и σ ≠ 1, нужно применить преобразование Y = m + σ∙x, где x  нормально распределенная случайная величина с параметрами m = 0 и  = 1.
4.Экспоненциальное распределение.
Случайная величина распределена по экспоненциальному закону
со средним μ, если ее плотность распределения имеет вид:
x*  x 
46
t оч  r .

Для получения экспоненциально распределенной случайной
величины X со средним  следует использовать преобразование
X =  lnU. В программах следует избегать случая U = 0.
5.Геометрическое распределение.
Если некоторое событие происходит с вероятностью p, то число
N независимых испытаний, необходимых, чтобы это событие произошло (или число испытаний между событиями), подчиняется геометрическому распределению. То есть N = 1 с вероятностью p, N = 2 с
вероятностью p(1 – p), ... , N = n с вероятностью p(1 – p)n–1. Для выработки значения случайной величины с таким распределением есть
следующая формула:
N  int
ln U
1.
ln( 1  p )
6. Распределение Пуассона.
Оно характеризует число реализаций событий, каждое из которых
может произойти в любой момент и некоторый период времени. Вероятность того, что N = n, равна
e  α n
, где  – математическое ожиn!
дание и дисперсия случайной величины. Для простейшего потока событий   , где   интенсивность,   промежуток времени.
Для реализации этого распределения можно использовать следующий алгоритм:
1. p = e, N = 0, q = 1.
2. Выработать случайное число U, равномерно распределенное на
[0, 1).
3. q = qU.
4. Если q  p, то N = N + 1 и вернуться на шаг 2. В противном случае N – искомое случайное число.
2. Идентификация закона распределения по гистограмме
Гистограмма характеризуется двумя массивами: интервалов
группирования ("масштабов") и частоты попадания в интервалы груп47
пирования (k – число интервалов группирования). Существует несколько способов формирования гистограмм.
Первый способ  формирование по методу масштабов. Массив
интервалов группирования известен, выборка случайных величин
х1,...,хn задана. Подсчитывается количество случайных величин, попавших в каждый из интервалов группирования: j, j = 1, k. Для того,
чтобы подсчитать частоту, необходимо это количество разделить на
общее количество случайных величин:
pj 
j
n
,
j  1, k .
Вторым способом является формирование гистограммы по методу равных интервалов. Просматривается выборка х1, ..., хn и находятся
хmin и xmax. Определяется длина интервала ΔI = (xmax – хmin)/k . Затем
формируется массив интервалов группирования: начиная с хmin последовательно прибавляются ΔI.
Далее формирование массива частот {i} осуществляется по методу масштабов.
Третий способ предусматривает формирование гистограмм методом равных частот. Задается число интервалов k. Объем выборки
n известен. Вычисляется величина  = [n/k]. Выборка случайных величин упорядочивается. Затем она делится на k интервалов, в каждый из
которых включается не менее  значений. Равные значения включаются в один интервал (слева). Определяются значения интервалов
группирования, которые равны последнему значению xi в j-м интервале. Массив частот состоит, как правило, из одинаковых значений
i  .
Для непрерывных случайных величин (нормальных, экспоненциальных, равномерных) при построении гистограммы следует
делить полученные частоты на длину интервала. В результате на
графике будет получена эмпирическая функция плотности распределения.
Пример выполнения задачи
Целью задания является изучение методов получения случайных
величин для распределения Пуассона с параметром α = 3,5.
48
Используемые программные средства  лабораторная работа выполняется в среде Microsoft Word. Часть работы написана на VBA,
часть представляет собою dll, написанную в среде VisualC.
Промежуточные результаты расчетов.
Ниже приведены количества выпадений случайных чисел. Число
элементов в выборке составляет 106.
0 : 30238
4 : 189430
8 : 16915
12 : 211
16 : 1
1 : 105436
5 : 132316
9 : 6586
13 : 51
2 : 184653
6 : 77249
10 : 2261
14 : 11
3 : 215243
7 : 38664
11 : 732
15 : 3
Так как в таблице распределения Пуассона приведены вероятности, умноженные на 106, то для сравнения нет никакой надобности
делить полученные нами количества на 106.
Количество выпадений
значения
График закона распределения, полученный
в результате работы программы
250000
200000
150000
100000
50000
0
Значения случайной величины
49
Количество выпадений
значения
График закона распределения, построенный
по табличным данным
250000
200000
150000
100000
50000
0
Значения случайной величины
Вывод. Очевидно, что экспериментально полученные данные соответствуют табличным. Это показывает, что встроенный генератор
случайных величин работает достаточно корректно. Кроме того, использованные преобразования для получения случайных величин с
распределением Пуассона дают правильные результаты.
Текст программы на VBA
Option Explicit
Private Declare Sub GetConsistency Lib "DllForLaba.dll" (ByVal a As
Double, ByVal Length As Long)
Private Declare Function GetArraySize Lib "DllForLaba.dll" () As Long
Private Declare Function GetNumber Lib "DllForLaba.dll" () As Long
Private Declare Function GetKey Lib "DllForLaba.dll" () As Long
Private Sub CommandButton1_Click()
Dim i As Long, Key As Long, Num As Long
GetConsistency aValue.Value, Length.Value
ActiveDocument.Content.InsertAfter Chr(13)
50
i = GetArraySize
For i = 0 To GetArraySize – 1
Key = GetKey – 1
Num = GetNumber
ActiveDocument.Content.InsertAfter " "
ActiveDocument.Content.InsertAfter Key & " : " & Num
Next i
End Sub
Текст программы на Cи
#include <math.h>
#include <map>
#include <windows.h>
extern "C"
{
void WINAPI GetConsistency(double a, long Length);
long WINAPI GetArraySize();
long WINAPI GetNumber();
long WINAPI GetKey();
}
DWORD GetPoissonNumber(double a);
using namespace std;
struct ltstr
{
bool operator() (int s1, int s2) const
{
return s1<s2;
}
};
map<int, int, ltstr> Array;
map<int,int,ltstr>::iterator Cur;
map<int,int,ltstr>::iterator iCur;
void WINAPI GetConsistency(double a, long Length)
51
{
int i;
DWORD Num;
Array.erase(Array.begin(),Array.end());
srand(GetTickCount());
for (i=0;i<Length;i++)
{
Num=GetPoissonNumber(a);
if (Array[Num]==0)
{
Array[Num]=1;
}
else
{
Array[Num]=Array[Num]+1;
}
}
iCur=Array.begin();
}
DWORD GetPoissonNumber(double a)
{
int N;
double q;
double p;
double U;
N=0;
q=1;
p=exp(a*(–1));
U=double((double)rand()/(double)RAND_MAX);
while(q>=p)
{
N=N+1;
U=double((double)rand()/(double)RAND_MAX);
q=q*U;
}
return N;
}
52
long WINAPI GetArraySize()
{
return Array.size();
}
long WINAPI GetNumber()
{
long Num=(*iCur).second;
if (iCur==Array.end())
{
iCur=Array.begin();
}
else iCur++;
return Num;
}
long WINAPI GetKey()
{
return (*iCur).first;}
Задачи для самостоятельного решения
Задачей студента является написание программы, которая должна
генерировать случайные числа, распределенные по закону, указанному в варианте задания. В качестве базового необходимо использовать
генератор, встроенный в язык программирования, на котором реализуется программа. Для проверки качества генерации необходимо построить график закона распределения полученной последовательности
и сопоставить его с теоретическим распределением, обладающим теми же параметрами. Объем последовательности должен быть достаточно большим (~ 10000).
Вариант задания выбирается в соответствии с номером в журнале.
Варианты задач
1.
Нормальное распределение, полученное способом 1; m = 3,5,
2.
Равномерное распределение на интервале [a, b]; a = 24,
 = 1,5.
b = 82.
53
3.
Нормальное распределение, полученное способом 2; m = 0,
4.
5.
Распределение Пуассона;  = 14,6.
Нормальное распределение, полученное способом 3; m = 0,
6.
7.
8.
Геометрическое распределение; р = 0,4.
Распределение Пуассона;  = 7,5.
Нормальное распределение, полученное способом 1; m = 2,7,
9.
10.
11.
12.
13.
Экспоненциальное распределение; μ = 1,5.
Распределение Пуассона;  = 0,5.
Распределение Пуассона;  = 11,0.
Распределение Пуассона;  = 10,2.
Нормальное распределение, полученное способом 2; m = 2,5,
 = 1.
 = 2,5.
 = 0,5.
 = 5.
14. Экспоненциальное распределение; μ=0,51.
15. Нормальное распределение, полученное способом 3; m=3,
=2,5.
16. Геометрическое распределение; р = 0,7.
17. Распределение Пуассона;  = 9,5.
18. Нормальное распределение, полученное
способом 1;
m = –1,5,  = 0,5.
19. Экспоненциальное распределение; μ = 15.
20. Распределение Пуассона;  = 3,0.
21. Распределение Пуассона;  = 12,7.
22. Нормальное распределение, полученное способом 3; m=0,
=2.
23. Геометрическое распределение; р=0,7.
24. Нормальное распределение, полученное способом 1; m = 0,
 = 1.
25. Геометрическое распределение; р = 0,9.
26. Распределение Пуассона;  = 2,5.
27. Нормальное распределение, полученное способом 1; m = 2,
 = 1.
28. Нормальное распределение, полученное способом 2; m = 0,
 = 5.
54
29. Нормальное распределение, полученное способом 3; m = 3,
 = 2.
30. Равномерное распределение на интервале [a, b]; a = 0,5,
b = 5,5.
Отчет о работе должен содержать:
1) описание задания и исходные данные по вариантам;
2) краткое описание использованных программных средств;
3) промежуточные и окончательные результаты расчетов;
4) график закона распределения, полученного в результате работы программы;
5) график теоретического закона распределения, соответствующего варианту;
6) выводы по полученным графикам и результатам;
7) частичная распечатка выборки, которая была получена в результате работы программы;
8) текст программы.
Контрольные вопросы
1. Что означает конгруэнтность двух чисел по модулю?
2. В программных генераторах псевдослучайных чисел используются детерминированные или вероятностные методы?
3. Что определяет собой длина периода генератора псевдослучайных чисел?
55
Лабораторная работа 5
ПРОВЕРКА КАЧЕСТВА ПОСЛЕДОВАТЕЛЬНОСТЕЙ
ПСЕВДОСЛУЧАЙНЫХ ВЕЛИЧИН
Цель работы: изучение методов проверки качества последовательностей псевдослучайных квазиравномерно распределенных величин интервала (0, 1), полученных с помощью базового генератора.
Краткие теоретические сведения
Так как в ЭВМ действительное число всегда представляется с
ограниченной точностью, то фактически генерируются целые числа
Xn в интервале от 0 до некоторого m–1. Тогда дробь Un = Xn/m попадёт
в интервал [0, 1). Обычно m на единицу больше максимального числа,
которое можно записать в машинном слове. Поэтому Xn можно интерпретировать как целое содержимое машинного слова с точкой,
расположенной справа, а Un можно считать дробью, содержащейся в
том же слове, с точкой в крайней левой позиции. Наилучшие из известных генераторов случайных чисел представляют собой частные
случаи следующей схемы. Выберем четыре числа:
Х0 – начальное значение (Х0 ≥ 0);
А – множитель (а > 0);
С – приращение (с ≥ 0);
m – модуль (m > a, m > c, m > X0).
Тогда искомая последовательность случайных чисел {Xn} получается из соотношения:
Xn+1 = (aXn + c) mod m, n ≥ 0.
(1)
Она называется линейно-конгруэнтной последовательностью.
Числа последовательности всегда образуют цикл, который повторяется бесконечное число раз. Это свойство присуще всем последовательностям, имеющим общий вид Xn+1 = f(Xn). Повторяющийся цикл называется периодом. Хотя это и важно, но большой период еще вовсе не
означает, что последовательность хороша для работы.
Рассмотрим тесты для проверки генераторов случайных чисел,
когда ЭВМ манипулирует с группами чисел последовательности и
производит оценку с помощью определенных статистических критериев.
56
Каждый тест применяется к последовательности чисел {Un} равномерно распределенных на интервале (0, 1). Некоторые тесты предназначены для проверки целочисленных последовательностей. В этом
случае проверке подвергается вспомогательная последовательность
{Yn}, которая определяется следующим образом: Yn = Und. Эти числа
распределены равномерно между 0 и (d–1). Число d может быть любым.
1. Универсальные статистические тесты
1.1. Критерий
χ2
Предположим, что все возможные результаты испытаний разделены на k категорий. Проводится n независимых испытаний (исход
каждого испытания не влияет на исход остальных). Пусть ps – вероятность того, что результат испытания попадет в категорию S, и пусть
Ys – число испытаний, которые действительно попали в категорию S.
Сформируем статистику:
(Ys  np s ) 2
.
np s
s 1
k
V
(2)
Формулу (3) можно преобразовать к виду, более удобному для
вычислений:
V
1 k Ys2
 n.
n s 1 ps
(3)
Затем V сравнивается с числом из таблицы для распределения 2
при количестве степеней свободы  = k – 1. Если V меньше значения,
соответствующего p = 0,99 или больше значения, соответствующего
p = 0,001, то результаты бракуются как недостаточно случайные. Если
p лежит между 0,99 и 0,95 или между 0,05 и 0,01, то результаты считаются "подозрительными". При значениях p, заключенных между
0,95 и 0,90 или 0,10 и 0,05, результаты "слегка подозрительны". Часто
с помощью критерия 2 проверяют, по крайней мере, три разные части
исследуемого ряда чисел. Если не менее двух раз из трех результаты
57
оказываются подозрительными, то числа отбрасываются как недостаточно случайные.
1.2. Критерий Колмогорова – Смирнова (КС-критерий )
Критерий 2 применяется в тех случаях, когда результаты испытаний разделяются на конечное число k категорий. Однако часто случайные величины могут принимать бесконечно много значений. В
теории вероятностей и математической статистике непрерывные случайные величины описываются с помощью функции распределения:
F(x) = p{X  x}.
(4)
Используя значения x1, x2, ..., xn случайной величины X, можно
построить эмпирическую функцию распределения:
Fn ( x) 
1
n
n
 k(x ) ,
i 1
i
(5)
где
1, если Х  х ;
k ( x)  
0, в противном случае .
(6)
При увеличении n функции Fn(x) должны все более точно аппроксимировать F(x). КС-критерий можно использовать в тех случаях, когда F(x) не имеет скачков, и он должен указать, насколько маловероятны большие расхождения между Fn(x) и F(x). Для этого используются следующие статистики:
K n  n max Fn ( x)  F( x)  ,
   x  
K n  n max F( x)  Fn ( x)  .
(7)
   x  
K n показывает, каково максимальное отклонение для случая

Fn >F, а K n  для Fn < F. Множитель n нормирует статистики (7)
таким образом, чтобы стандартное отклонение не зависело от n. Да58
лее, как и в случае критерия 2, сравнивают значения (7) с табличными и определяют, имеют ли они высокую или низкую значимость.
Формулы (7) не годятся для машинных расчетов, так как требуется отыскать максимальное среди бесконечного множества чисел. Однако, учитывая, что F(x) неубывающая функция, а Fn(x) имеет конечное число скачков, можно определить статистики (7) с помощью следующего алгоритма:
1. Определяются выборочные значения x1, x2, ... , xn.
2. Значения хi располагаются в порядке возрастания так, что
x1  x2  ...  xn.
3. Статистики (7) вычисляются по следующим формулам:
j

K n  n max   F ( xj )  ,
1 j  n n


j 1

K n  n max  F ( x j ) 
.
1 j  n
n 

(8)
2
1.3. Смешанный критерий (КС-критерий и критерий  )
KС-критерием можно пользоваться в сочетании с критерием 2,
чтобы получить лучшую процедуру отбраковки датчиков. Как правило  два подозрительных результата из трех проверок.
Пусть с помощью критерия 2 были независимо обработаны
20 разных участков случайной последовательности, в результате чего
были получены значения V1, V2, ..., V20 . По этим значениям строится
эмпирическая функция F20(x) и сравнивается с теоретической функцией распределения, которую можно получить из таблиц распределе

ния 2. После определения статистик K 20 и K 20 формируется окончательное суждение об исходе проверки последовательности с помощью
критерия 2.
2. Эмпирические тесты
2.1. Проверка равномерности последовательности
Можно выделить три способа.
1 способ. По гистограмме.
59
Пусть числа последовательности равномерно распределены на
интервале (0, 1). Этот интервал разбиваем на m равных частей. Тогда
любое из чисел Ui попадет в некоторый j интервал с вероятностью
1
p  . Всего в каждый интервал попадает Nj чисел, причем
m
m
N
j 1
j
 N , где N – количество сгенерированных чисел. Частота попа-
дания чисел в интервал j будет
Nj
N
. При достаточно больших N экспе-
риментальная гистограмма приближается к прямой 1/m.
Оценка степени приближения может быть приведена с использованием какого-то критерия согласия. На практике обычно выбирают
m = 2050; N = (1001000)m .
2 способ. Проверка по косвенным признакам.
Вначале сгенерированная последовательность из N чисел разбивается на две подпоследовательности
x1 , x3 , , x2i 1 , 
N
.
 i  1
x2 , x4 , , x2i . 
2
N
.
2
Если условие выполняется, то значение счетчика k увеличивается на
единицу. В результате получаем некоторое значение k  N/2. Геометрически (*) означает, что точка попадает в сектор единичного круга,
причем в любом случае точка всегда попадает внутрь единичного
Sсектор π
 , а частота
квадрата. Вероятность попадания в сектор PS 
Sквадрат 4
Затем проверяется условие x22i 1  x22i  1 (*) для всех i  1 
попадания точки в этот квадрат
k
2k
. Поэтому, если числа рав
N 2 N
номерно распределены, то при достаточно больших N число 2 k будет
N
стремиться к  .
4
60
3 способ. С использованием КС-критерия.
Равномерность можно определить с помощью КС-критерия, где
теоретическая функция распределения F(x) = x, 0  x  1.
2.2. Проверка интервалов
В этом тесте проверяется длина интервалов между появлением значений Uj, принадлежащих некоторому заданному отрезку
(0  Uj < 1). Если  и  – два действительных числа, причем
0   <  < 1, то подсчитываются длины последовательностей
Uj, Uj+1, ..., Uj+r, в которых только Uj+r лежит между  и . Такая последовательность из r + 1 чисел определяет интервал длины r.
Для определения длин интервалов можно использовать следующий алгоритм. Заводим счетчик для подсчета количества интервалов
соответствующей длины:
count [i] – 0  i  t – 1 – количество интервалов длины i;
count [t] – количество интервалов длины  t.
Расчет продолжается до тех пор, пока не будет зарегистрировано
всего n интервалов.
Пока i  n // n – количество интервалов
j=0
пока U(, ) j ++ // U – генерируемые случайные величины
если j  t count [t] ++ иначе count [j] ++
i = i + 1.
Полученные значения счетчика обрабатываются с помощью критерия 2 . Используются следующие вероятности:
p0 = p, p1 = p(1–p), ..., pt–1 = p(1–p) t–1, pt = 1 
t 1
p ,
i 0
i
где p =  –  – вероятность того, что   U < . Значения n и t
выбираются таким образом, чтобы среднее значение count [j] было не
менее 5.
61
2.3. Наибольшее из t
Пусть Vj = max (Utj, Ujt+1, ...,Ujt+t–1) при 0  j < n. Применяется
КС-критерий к последовательности V0, V1, ..., Vn–1, принимая в качестве теоретической функции распределения F(x) = xt, 0  x < 1. Можно
вместо этого проверять на равномерность последовательность
V0t , V1t ,  , Vnt1 .
2.4. Последовательная корреляция
Вычислим статистику:
n(U 0U1    U n  2U n 1  U n 1U 0 )  (U 0    U n 1 )2
C
.
n(U 02    U n21 )  (U 0    U n 1 )2
Это коэффициент последовательной корреляции, который служит
мерой зависимости Uj+1 от Uj. Желательно, чтобы C было близко к 0,
но не равно ему, так как Uj и Uj+1 не являются независимыми. Хорошим следует считать значение C, которое находится в 95 % всех случаев в пределах между n – 2n и n + 2n,
где
n 
1
1
n(n  3)
, n 
, n  2.
n 1
n 1
n 1
2.5. Проверка на монотонность
Этот тест выявляет длины возрастающих подпоследовательностей чисел в исходной последовательности. Для корректного применения критерия 2 требуется выбрасывать элемент, непосредственно
следующий за отрезком монотонности, то есть в случае Uj > Uj+1 очередной отрезок начинается с Uj+2.
Пусть count[r] – количество отрезков длины r, где 1 < r < t, а
count[t] – количество отрезков длины ≥ t. Тогда вероятность появления
отрезка длины r будет pr = 1/r!–1/(r + 1)!, а вероятность появления отрезка длины ≥ t будет pt = 1/t!. Критерий 2 применяется с k = t степенями свободы.
62
2.6. Проверка серий
Проверяется равномерность и независимость пар следующих друг
за другом случайных чисел. Для этого подсчитывается, сколько раз
встречается каждая пара (Y2j, Y2j+1) при 0  j < n и Yi = Xi /d.
Значение d логично выбирать кратным степени 2, скажем, 32, 64,
128. Yi могут принимать значения от 0 до d – 1. Затем применяется
критерий 2 c числом категорий k = d2 и равными вероятностями 1/d2
во всех категориях.
2.7. Проверка комбинаций
В классическом тесте рассмотрим n-групп из пяти следующих
друг за другом случайных чисел (y5j, y5j+1, …, y5j+4).
Выделяются следующие типы комбинаций:
1 – все разные (abcde);
2 – одна пара (aabcd);
3 – две пары (aabbc);
4 – три одного вида (aaabc);
5 – полный сбор (aaabb);
6 – четыре одного вида (aaaab);
7 – пять одного вида (aaaaa).
С помощью критерия 2 проверяется, соответствуют ли частоты
вероятностям. Для облегчения программирования тест упрощается –
считается количество не совпадающих чисел.
1 – все несовпадающие;
2 – четыре несовпадающих;
3 – три несовпадающих;
4 – два несовпадающих;
5 – нет разных.
В общем случае можно рассмотреть n-групп из k следующих подряд чисел (ykj, ykj+1, …, ykj+4). Вначале подсчитывается число групп,
имеющих r различных чисел. Затем применяется критерий 2 со следующими вероятностями pr (r = 0, k ):
pr 
d (d 1)(d  r 1) k  ,
 
dk
r 
63
k 
где    число способов, которые могут разместить k элементов по r
r 
непересекающимся категориям. Это число называют числом Стирлинга.
Числа Стирлинга получают из специальных таблиц – треугольников Стирлинга (табл. 1). Для их расчета можно использовать также
следующие формулы:
n 
n 
n 
n 
n  1 n  1 
   1 ;    1 ,    1 ,    m

.
n 
1 
0 
m 
m  m  1
Для случая k = 5 вектор чисел Стирлинга будет иметь вид
5
   1; 15; 25; 10; 1  .
r 
Таблица 1
n
n 
 
0 
n 
 
1 
n 
 
2 
n 
 
3 
n 
 
4 
n 
 
5 
n 
 
6 
n 
 
7 
n 
 
8 
0
1
2
3
4
5
6
7
8
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
3
7
15
31
63
127
0
0
0
1
6
25
90
301
966
0
0
0
0
1
10
65
350
1701
0
0
0
0
0
1
15
140
1050
0
0
0
0
0
0
1
21
266
0
0
0
0
0
0
0
1
28
0
0
0
0
0
0
0
0
1
2.8. Проверка полного набора
Используется последовательность {Yi}. Определяются длины сегментов Yj+1, Yj+2, ..., Yj+r, необходимых для того, чтобы собрать полный
набор целых чисел от 0 до d–1. Для подсчета можно использовать следующий алгоритм:
64
обнуление массива flag [j], j  0, d  1
пока j < d
пока flag [Y]  0 [r + +] // Y  числа из последовательности
flag [Y] = 1; r + +; j + +
если r  t count [t] + +
иначе count [r] + + ,
где count [i] 0  i  t, количество интервалов длины i;
count [t] количество интервалов длины  t;
flag [j] массив для проверки, собран ли полный набор ( j  0, d  1 ).
Содержимое счетчиков count [d], count [d + 1], ..., count [t] обрабатывается с помощью критерия 2 с k = t – d + 1 степенями свободы.
Соответствующие вероятности равны
pr 
d! r  1 

, d  r t ,
d r d  1
pr  1 
d! t  1

,
d t 1  d 
n 
где   – числа Стирлинга.
m 
2.9. Проверка перестановок
Разделим исходную последовательность на n групп по t элементов в каждой: (Ujt, Ujt+1, ..., Ujt+t–1), 0  j  n . В каждой группе возможно всего t! вариантов относительного расположения чисел. Например, для группы из трех элементов возможно 3!=6 вариантов относительного расположения чисел U1  U2  U3; U2  U3  U1; U3  U1  U2;
U1  U3  U2; U2  U1  U3; U3  U2  U1. Неравенство строгое, т. к. для
действительных чисел маловероятно точное совпадение.
Подсчитывается, сколько раз встречается каждое конкретное относительное расположение, после чего применяется критерий 2 с
k = t! и вероятностями 1/t!. При реализации этого теста удобно воспользоваться приведенным ниже алгоритмом анализа перестановок.
Любому набору несовпадающих элементов (U1, ..., Ut) ставится в соответствие целочисленная функция f(U1, ..., Ut), такая, что
0  f(U1, ..., Ut) < t! и f(U1, ..., Ut) = f(Z1, ..., Zt) в том и только в том случае, когда элементы в (U1, ..., Ut) и (Z1, ..., Zt) расположены в одина65
ковом порядке. В алгоритме используется вспомогательный вектор
(C1, ..., Ct).
1. r = t .
2. Пусть Us = max(U1, ..., Ur). Тогда Cr = s – 1.
3. Поменять местами Ur и Us.
4. r = r – 1.
5. Если r > 0, то вернуться на шаг 2.
6. f =Ct+tCt–1+t(t–1)Ct–2+t(t–1)...3C2+t!C1=(...(C23+C3)4+...+Ct–1)t+Ct..
C1 можно нигде не использовать, так как из шага 2 следует, что C1
всегда равно 0. Заметим, что f(U1, ..., Un) = 0, если U2<U3<...<Un<U1, и
f(U1, ..., Un) = t–1, если U1<U2<...<Un.
2.10. Проверка независимости на основе вычислений корреляционного момента
Корреляционный момент характеризует рассеивание случайных
величин и их зависимость. Если случайные величины независимы, то
корреляционный момент равен нулю. Для проверки вводим фиктивную последовательность {Ui+}, которая является частью исходной
последовательности со сдвигом . Корреляционный момент можно
вычислить по следующей формуле:
K
1 N 
1 N  N 
U
U

U U  i ,
 i i  τ ( N  τ) 2 
N  τ i 1
i 1
i 1
а коэффициент корреляции по формуле
rU i U i-τ 
k
,
D[U i ] D[U i  r ]
2
1 N  2
1
 N  
D[U i ] 
Ui  ,
U i  ( N   )2  
N  τ i 1
i 1

2
1 N  2
1
 N 

D[U i  ] 
U

 U  .

 i
2  i 
N  τ i 1
( N  τ)  i 1

66
Здесь в процессе расчета на компьютере вычисляются все суммы,
а затем в конце  требуемый коэффициент. N должно быть достаточно
большим. Выбирается доверительная вероятность , затем проверяется условие
rU i U i τ 
β
.
N
Выполнение этого условия означает корреляционную независимость числовой последовательности.
Пример выполнения работы
Постановка задачи. Требуется написать программу для получения
последовательности псевдослучайных величин на основе базового
генератора и проверить качество полученной последовательности по
методу интервалов. Полученные значения следует сравнить со статистиками, полученными из статистических таблиц, и сделать выводы о
качестве работы базового генератора.
Решение задачи
Задача решалась в среде Delphi 7.0. Текст программы приведен в
конце отчета.
Тестовый пример
Сгенерированная последовательность не приводится, т. к. тестировалось 10х10000 чисел.
В табл. 5.2 приведены полученные значения счётчиков, в табл. 5.3
 полученные теоретические значения счётчиков, в табл. 5.4  результат работы программы.
Таблица 5.2
Проход
Длина интервала
0
1
2
3
4
5
6
7
8
9
Всего
интер10 валов
1
1
2
3
4
2
93
103
101
116
3
84
92
88
103
4
79
87
75
90
5
79
77
69
77
6
52
76
69
70
7
53
62
62
64
8
53
58
49
53
9
59
55
52
49
10
44
54
49
44
11
34
36
31
44
12
335
335
352
346
67
13
965
1035
997
1056
1
5
6
7
8
9
10
2
106
86
96
108
111
98
3
83
93
79
101
85
101
4
72
77
73
84
86
75
5
91
74
84
78
45
82
6
57
60
65
59
58
86
7
52
54
54
52
58
64
8
47
39
54
70
40
56
9
48
39
51
55
34
47
10
27
46
33
27
36
42
Окончание табл. 5.2
11
12
13
34 344
961
32 338
938
36 369
994
44 347 1025
40 354
947
39 348 1038
1,0000
0,34867844
0,03874205
0,04304672
0,04782969
0,05314410
0,05904900
0,06561000
0,07290000
0,08100000
0,09000000
0,10000000
Полученные значения вероятностей
Таблица 5.3
Проход
Длина интервала
0
1
2
3
4
5
6
7
8
9
Всего
интер10 валов
1
2
3
4
5
6
7
8
9
10
96
103
100
106
96
94
99
102
95
104
87
93
90
95
86
84
89
92
85
93
78
84
81
86
78
76
81
83
77
84
70
75
73
77
70
68
72
75
69
76
63
68
65
69
63
62
65
67
62
68
57
61
59
62
57
55
59
61
56
61
51
55
53
56
51
50
53
54
50
55
46
50
48
51
46
45
48
49
45
50
42
45
43
45
41
40
43
44
41
45
37
40
39
41
37
36
39
40
37
40
336
361
348
368
335
327
347
357
330
362
965
1035
997
1056
961
938
994
1025
947
1038
4,1224
3,8121
14,7604
V7
V8
V9
V10
Vср
9,6201
6,1968
V6
8,1590
V5
20,1603
V4
16,0580
V3
8,3836
V2
6,8645
V1
7,6839
Таблица 5.4
68
Все полученные значения статистик Vi ( i  1, 10 ) сравнивались с
табличными значениями критерия 2. Результаты сравнения, попавшие в категорию подозрительных, приведены в табл. 5.5.
Таблица 4.5
Категория
Недостаточно
случайные
Подозрительные
Слегка
подозрительные
Количество Vi,
Значения Vi, попавшие
попавших в данную
в категорию
категорию
нет
1
–
20,1603
3,8121; 4,1224; 14,7604;
16,0580
4
В%
ко всем
0
10
40
Выводы. Как видим, несмотря на то, что 100 % результатов являются случайными, только 50 % из них полностью удовлетворяют
критерию случайности по методу интервалов. На рис. 5.1 приведено
окно работы программы.
Рис. 5.1.
69
Текст основной программы
procedure TForm1.Generate;
var
i, len, maxarr, maxlen, Code, AllCount, RepeatCount, j : integer;
a, b, summP, averageV : real;
X, P, V : array of real;
Count : array of integer;
begin
Randomize;
Val(MaskEdit1.Text, maxarr, Code);
if Code <> 0 then begin
MessageDlg('Неправильно заданы параметры!', mtWarning,
0);
Exit;
end;
Val(MaskEdit4.Text, maxlen, Code);
if Code <> 0 then begin
MessageDlg('Неправильно заданы параметры!', mtWarning,
0);
Exit;
end;
Val(MaskEdit2.Text, a, Code);
if Code <> 0 then begin
MessageDlg('Неправильно заданы параметры!', mtWarning,
0);
Exit;
end;
Val(MaskEdit3.Text, b, Code);
if Code <> 0 then begin
MessageDlg('Неправильно заданы параметры!', mtWarning,
0);
Exit;
end;
Val(MaskEdit5.Text, RepeatCount, Code);
if Code <> 0 then begin
MessageDlg('Неправильно заданы параметры!', mtWarning,
0);
Exit;
end;
70
[mbOK],
[mbOK],
[mbOK],
[mbOK],
[mbOK],
Memo1.Lines.Clear;
Memo4.Lines.Clear;
SetLength(Count, maxlen + 1);
SetLength(X, maxarr + 1);
SetLength(P, maxlen + 1);
SetLength(V, RepeatCount + 1);
summP := 0;
for i := 0 to maxlen do begin
if i = maxlen then begin
P[i] := 1 – summP;
Memo4.Lines.Add(Format('>=%d %1.8f ', [i, P[i]]))
end else begin
P[i] := Power((1 – (b – a)), i) * (b – a);
Memo4.Lines.Add(Format('%d %1.8f ', [i, P[i]]));
end;
summP := summP + P[i];
end;
Memo4.Lines.Add(Format('Cумма = %1.4f ', [summP]));
for j := 1 to RepeatCount do begin
Memo2.Lines.Add('');
Memo2.Lines.Add(Format('Проход № %d',[j]));
Memo3.Lines.Add('');
Memo3.Lines.Add(Format('Проход № %d',[j]));
for i := 0 to maxlen do
Count[i] := 0;
len := 0;
for i := 0 to maxarr do begin
X[i] := Random;
if (a <= X[i]) and (X[i] < b) then begin
if len <= maxlen then
Inc(Count[len])
else
Inc(Count[maxlen]);
len := 0;
end else
Inc(len);
if flStop then
Exit;
end;
for i := 0 to maxlen do
71
if Count[i] > 0 then
Dec(Count[i]);
for i := 0 to maxlen do
if i = maxlen then
Memo2.Lines.Add(Format('>=%d %d ', [i, Count[i]]))
else
Memo2.Lines.Add(Format('%d %d ', [i, Count[i]]));
AllCount := 0;
for i := 0 to maxlen do
AllCount := AllCount + Count[i];
Memo2.Lines.Add(Format('Сумма = %d ', [AllCount]));
summP := 0;
for i := 0 to maxlen do begin
if i = maxlen then begin
Memo3.Lines.Add(Format('>=%d %d ', [i, Round(AllCount * P[i])]))
end else begin
Memo3.Lines.Add(Format('%d %d ', [i, Round(AllCount * P[i])]));
end;
summP := summP + AllCount * P[i];
end;
Memo3.Lines.Add(Format('Cумма = %d ', [Round(summP)]));
if AllCount = 0 then begin
MessageDlg('Значения искомого интервала не повторялись ни разу!',
mtWarning, [mbOK], 0);
Exit;
end;
V[j] := 0;
for i := 0 to maxlen do
V[j] := V[j] + (power((Count[i] – AllCount * P[i]), 2) / (AllCount *
P[i]));
averageV := averageV + V[j];
Memo1.Lines.Add(Format('V%d = %1.4f', [j, V[j]]));
end;
StaticText1.Caption := Format('Vср = %1.4f', [averageV / RepeatCount]);
Finalize(X);
Finalize(P);
Finalize(Count);
end;
72
Задачи для самостоятельного решения
Требуется написать программу для получения последовательности псевдослучайных величин на основе базового генератора и обработки полученной последовательности для вычисления статистик согласно своему варианту. Полученные значения следует сравнить со
статистиками, полученными из статистических таблиц, и сделать выводы о качестве работы базового генератора. В зависимости от теста
необходимо осуществлять преобразование последовательности к целочисленным значениям.
Вариант задания выбирается в соответствии с номером в журнале.
Если номер больше 14, то вариант = (номер в журнале –14).
Варианты заданий
1. Проверка равномерности полученной последовательности с
помощью критерия 2 .
2. Проверка равномерности полученной последовательности с
помощью КС-критерия.
3. Проверка качества полученной последовательности по методу серий.
4. Проверка качества полученной последовательности по методу комбинаций, k = 6.
5. Проверка равномерности полученной последовательности по
способу гистограмм.
6. Проверка равномерности полученной последовательности по
косвенным признакам.
7. Проверка качества полученной последовательности по методу комбинаций, k = 5.
8. Проверка качества полученной последовательности по методу интервалов.
9. Проверка качества полученной последовательности по методу «наибольшее из t».
10. Проверка последовательной корреляции полученной последовательности.
11. Проверка полученной последовательности на монотонность.
12. Проверка качества полученной последовательности по методу перестановок, k = 5.
13. Проверка качества полученной последовательности по методу полного набора.
73
14. Проверка независимости полученной последовательности на
основе вычисления корреляционного момента.
Отчет о работе должен содержать:
1) описание задания и исходные данные по вариантам;
2) краткое описание используемых программных средств;
3) промежуточные и окончательные результаты расчетов;
4) выводы по полученным результатам;
1) распечатку выборки, которая была получена для оценки
свойств;
2) текст программ.
Контрольные вопросы
1. Как осуществляется статистическая оценка программных генераторов псевдослучайных чисел?
2. Что определяет тест критерия Колмогорова-Смирнова?
3. Что определяет тест критерия хи-квадрат?
4. Что определяет смешанный тест
5. Способы проверки равномерности последовательности?
74
Лабораторная работа № 6
МОДЕЛИРОВАНИЕ СТОХАСТИЧЕСКИХ СИСТЕМ
Цель работы − изучение методов моделирования стохастических
процессов и систем, а также получение навыков анализа результатов
моделирования.
Методические указания
Сущность метода статистического моделирования сводится к построению для процесса функционирования исследуемой системы некоторого моделирующего алгоритма с использованием метода МонтеКарло. Данный алгоритм имитирует поведение и взаимодействие элементов системы с учетом случайных входных воздействий и воздействий внешней среды.
В каждом варианте задания описана работа некоторой стохастической системы, а также указаны те характеристики системы, оценку
которых необходимо получить в процессе моделирования.
Для моделирования непрерывных случайных величин с заданными законами распределения можете использовать любой из рассмотренных ранее методов. Для моделирования наступления случайных
событий пользуйтесь методами, предлагаемыми в статистическом моделировании [1].
Помните, что, если время между наступлением событий распределено экспоненциально, то количество событий, наступающих в единицу времени, подчиняется Пуассоновскому закону распределения.
Какой закон использовать в вашем случае, зависит от построения алгоритма.
Для программной реализации можно использовать любой алгоритмический язык. Из встроенных датчиков случайных чисел пользоваться можно только датчиками равномерно распределенных случайных чисел на интервале от 0 до 1.
Задание на моделирование
1. Построить моделирующий алгоритм для оценки требуемых
параметров исследуемой системы;
2. Разработать программу и провести моделирование работы системы с определением требуемых параметров;
75
3. Программа должна иметь возможность устанавливать и изменять количество повторных реализаций моделируемого процесса, так
как от этого зависит точность получаемых оценок искомых характеристик.
Варианты заданий
Вариант 1
Техническое устройство состоит из двух узлов: Y1 и Y2 .
Исправная работа узла Y1 безусловно необходима для работы
устройства; узел Y2 предназначен для поддержания нормального режима работы Y1 . Время безотказной работы узлов распределено по
экспоненциальному закону и равно в среднем 40 и 60 минут соответственно. Имеется 2 запасных узла Y1 . При выходе из строя Y1
техническое устройство останавливается на 3 ± 1 минуты, после
чего Y1 заменяется и работа устройства возобновляется. Если вышел
из строя Y2 , то закон распределения Y1 меняется: оно работает в среднем 20 минут. Время работы устройств распределено по экспоненциальному закону.
Определить вероятность того, что по истечении двух часов
устройство будет находиться в рабочем состоянии.
Вариант 2
Логика работы устройства обнаружения цели заключается в
следующем: если сигнал превышает порог при двух последовательных локациях – цель обнаружена; в противном случае – цель потеряна. Состояния системы: S 0 – исходное, в это состояние из S1 и S 0
система переходит с вероятностью 0.4; S1 – состояние, соответствующее однократному превышению порога, в это состояние из S 0 и из
этого состояния в очередное S 2 система переходит с вероятностью 0.6; S 2 – состояние, соответствующее двукратному превышению
порога, из данного состояния система может переходить в S1 с вероятностью 0.6 и в S 3 с вероятностью 0.4; S 3 – состояние, соответствующее однократному не превышению порога после обнаружения цели.
Если после очередной локации сигнал превышает порог, система возвращается из S 3 в S 2 с вероятностью 0.6, в противном случае – в S 0 с
76
вероятностью 0.4. Определить оценку вероятности обнаружения цели
за один час, если интервал смены состояний равен 10 минут.
Вариант 3
При передаче информации системой передачи данных, вследствие действия помех в канале связи, в блоке информации могут возникнуть одиночные, двойные и тройные ошибки, причем при обнаружении двойных и тройных ошибок требуется повторить передачу блока информации. При обнаружении одиночной ошибки на приемном
конце в среднем в течение одной секунды производится ее коррекция.
Время передачи блока информации равно в среднем 5 секунд. Время
коррекции и передачи информации подчинено экспоненциальному
закону распределения.
Оценить для 1000 передаваемых блоков информации затраты
времени на коррекцию ошибок и повторную передачу информации,
если известно, что вероятности возникновения ошибок равны, соответственно, P(0)  0.95 ; P(1)  0.025 ; P(2)  0.015 ; P(3)  0.01 .
Вариант 4
Рассматривается процесс обработки детали на токарном станке.
Вероятность появления брака при обработке равна 0.1. В начале работы проверке подвергается каждая третья деталь. Если число бракованных деталей достигает 20, то в дальнейшем проверке подвергается
каждая деталь, обработанная на станке. Если в этом случае число бракованных деталей достигнет 10, то работу на станке прекращают. Поток поступления деталей на обработку подчинен закону Пуассона с
интенсивностью 2 детали в минуту.
Определить среднее время наработки станка до остановки.
Вариант 5
Время между последовательными прибытиями покупателей в магазин равномерно распределяется на интервале от 1 до 20 минут. Для
50% покупателей время обслуживания составляет 8 минут, в то время
как для остальных 50% это время составляет 14 минут. Оценить суммарное время ожидания покупателей (простоя в очереди) и время простоя системы обслуживания за 4 часа работы.
Вариант 6
77
На складе, обслуживающем три сборочных цеха, нормативный
запас комплектующих деталей составляет 10 тысяч комплектов. В
начале работы со склада в каждый из цехов одновременно поступает
по 100 комплектов деталей. Время использования каждым цехом одного комплекта является случайной величиной с экспоненциальным
законом распределения с параметром 20 комплектов в сутки. После
израсходования цехом комплектующих деталей на склад поступает
заявка на новую партию деталей, которая удовлетворяется по мере
возможности.
Оценить интервал времени, на который может хватить нормативного запаса деталей на складе, если известно, что страховой запас деталей на складе равен 200 комплектам.
Вариант 7
Система может находиться в состояниях S1 , S 2 , S 3 . Переход из
одного состояния в другое происходит по схеме однородной цепи
Маркова. Матрица вероятностей переходов имеет вид:
P
0.5
0.5
0.3
0.3
0
0.25
0.2
0.5
0.45
Время между переходами системы из одного состояния в
другое в среднем равно 2 секунды и распределено по экспоненциальному закону.
Оценить вероятность нахождения системы в каждом из состояний
через 10 минут после начала работы, если первоначально система
находится в состоянии S1 .
Вариант 8
Рассматривается процесс обслуживания на бензозаправочной
станции, состоящей из одной бензоколонки. Моменты появления автомобилей на станции образуют случайный поток заявок, интервалы
между которыми имеют плотность распределения f (t )  4  exp(4  t ) .
Время обслуживания каждой машины имеет экспоненциальный
закон распределения с параметром 3 автомобиля в час. Рассматривается работа станции в течение 30 суток.
78
Оценить число обслуженных и отказанных автомобилей, если автомашина, заставшая бензоколонку занятой, немедленно покидает ее.
Вариант 9
Система передачи данных работает в режиме, называемом
нормальным, до появления сбоев в трех сообщениях подряд. В этом
случае система переходит в режим аварии, в котором остается до
тех пор, пока очередное сообщение не будет принято правильно. После этого система возвращается в нормальный режим. Вероятность
сбоя в очередном сообщении равна 0.1, вероятность безошибочного
приема – 0.9. За состояния системы принять: S 0 – нет сбоев; S1 – сбой
в одном сообщении; S 2 – сбои в двух сообщениях подряд и т. д. Оценить вероятность нахождения системы в следующих состояниях: нормальном, аварийном, S 0 , S1 , S 2 , S 3 .
Время работы системы – 10 часов; время передачи информации
распределено равномерно на интервале от 3 до 7 минут; количество
реализаций – 100.
Вариант 10
Время между последовательными прибытиями покупателей в магазине равномерно распределяется на интервале от 2 до 18 минут. Для
30 % покупателей время обслуживания составляет 5 минут, для других 30 % – 12 минут и для остальных 40 % это время составляет
16 минут.
Оценить суммарное время ожидания покупателей и время простоя системы обслуживания за 8 часов работы.
Вариант 11
При передаче информации системой передачи данных, вследствие действия помех в канале связи, в блоке информации могут возникнуть одиночные, двойные и более ошибки. Для передачи информации из пункта А в пункт В используется промежуточный пункт Х.
при обнаружении двух и более ошибок в пунктах Х или В требуется
повторить передачу блока информации из предыдущего пункта. При
обнаружении одиночной ошибки на приемном конце в среднем в течение одной секунды производится ее коррекция. Время передачи
блока информации распределено равномерно и равно в среднем 5 ± 2
секунды из пункта А в пункт Х и 6 ± 2 секунды из пункта Х в пункт В.
79
Время коррекции информации подчинено экспоненциальному закону
распределения.
Оценить для 1000 передаваемых блоков информации затраты
времени на передачу информации, если известно, что вероятности
возникновения ошибок равны, соответственно,
P(0)  0.95 ;
P(1)  0.03 ; P(2 и более)  0.02 .
Вариант 12
Техническое устройство состоит из двух узлов: Y1 и Y2 . Исправная работа узла Y1 безусловно необходима для работы устройства;
узел Y2 предназначен для поддержания нормального режима работы
Y1 . Время безотказной работы узлов распределено по экспоненциальному закону и равно в среднем 30 и 60 минут соответственно. Имеется
3 запасных узла Y1 . При выходе из строя Y1 техническое устройство
останавливается на 3 ± 1 минуты, после чего Y1 заменяется и работа
устройства возобновляется. Если вышел из строя Y2 , то закон распределения Y1 меняется: оно работает в среднем 15 минут. Время работы
устройств распределено по экспоненциальному закону.
Оценить среднее время, которое устройство будет проводить в
работающем состоянии.
Вариант 13
Процесс производства одной из деталей состоит в следующем: заготовки из печи, где они нагреваются до определенной температуры,
транспортируются к месту обработки. Время транспортировки - случайная величина, имеющая экспоненциальный закон распределения со
средним значением 5 минут. Время обработки – случайная величина с
равномерным законом распределения на интервале от 2 до 6 минут.
если суммарное время транспортировки и обработки превышает
14 минут, то деталь бракуется.
Определить среднее число годных и бракованных деталей за смену (8 часов).
Вариант 14
В цех в случайные моменты времени, отделяемые друг от друга
интервалами t , имеющими распределение f (t )  a  exp(a  t ) с параметром a  3 партии в час, поступают очередные партии комплекту80
ющих изделий. Конкретный размер партии деталей определяется, исходя из того, что поставки ведутся партиями, содержащими обычно
1000, 1200 и 1400 деталей, причем известно, что P(1000 )  0.3 ,
P(1200 )  0.6 , P(1400 )  0.1 .
В цехе три сборочные линии, которые обслуживаются различными бригадами. Вероятности того, что вновь поступившая партия деталей попадет в i -ую бригаду, следующие: P(1)  0.3 , P(2)  0.5 ,
P(3)  0.2 . Оценить число деталей, получаемых каждой бригадой за
смену (8 часов).
Вариант 15.
Начальник пожарной бригады обнаружил, что число пожаров за
сутки следует распределению Пуассона со средним значением 4 пожара в сутки. Изучив данные по прежним пожарам, он нашел, что в
70 % случаев для тушения потребовалась только одна пожарная машина, а время, необходимое для ликвидации пожара, имеет нормальное распределение с m = 2.5 часа и  = 0.5 часа. В остальных 30 %
случаев нужны были две пожарные машины, а время для ликвидации
этих пожаров распределено нормально с m = 3.5 часа и  = 1 час.
Предполагая, что необходимые пожарные машины всегда находятся под рукой, определите, сколько часов в среднем они бывают
нужны каждые сутки.
Вариант 16
В систему управления в случайные моменты времени, интервалы
между которыми имеют равномерный закон распределения на интервале [1,5] минут, поступают сообщения о неблагоприятном ходе
управляемого процесса. По каждому из сообщений система может
принять одно из пяти управляющих воздействий U 1 , U 2 , U 3 , U 4 и U 5 .
Причем известно, что вероятности выбора решений равны, соответственно, P(U1 )  0.15 , P (U 2 )  0.2 , P(U 3 )  0.22 , P(U 4 )  0.18 ,
P(U 5 )  0.25 . Потери внутри объекта управления, вызванные задержкой в выдаче управляющего воздействия равны, соответственно. 200,
280, 290, 220 и 300 рублей.
Оценить потери внутри объекта управления за 8 часов работы,
вызванные задержками в выдаче управляющих воздействий.
81
Вариант 17
Психолог в службе «Телефон доверия» ведет разговор с клиентами. Время между поступлениями звонков на разговор подчиняется
равномерному закону распределения на интервале 20 ± 5 минут. Длительность разговора подчиняется экспоненциальному закону распределения и равно в среднем для 40 % случаев 15 минутам, а для 60 %
случаев – 25 минутам. Известно, что клиент, услышавший «занято»,
бросает трубку.
Оценить, какой процент клиентов получает обслуживание, если
служба работает с 16 до 24 часов.
Вариант 18
Т. А. Шанс живет в Лас-Вегасе. Ежедневно перед работой он заходит в соседний ресторан и играет в «тройку». В этой игре игрок
подбрасывает многократно монету до тех пор, пока разность между
числом выпавших «гербов» и «решек» не станет равна трем. За каждый бросок монеты игрок платит один доллар, но при удачном исходе
кона игры он получает 8 долларов. Каждое утро Т. А. Шанс откладывает 10 долларов для этой игры и играет в нее до тех пор, пока либо не
проиграет все деньги, отложенные на игру, либо не завершит одну
партию.
Оценить вероятность того, будет ли Шанс в выигрыше за неделю
в 5 рабочих дней.
Вариант 19
Два стрелка производят выстрелы по мишени. Вероятность попадания в десятку у первого игрока равна 0.8, у второго – 0.9. Каждый
стрелок производит по 5 выстрелов, причем время, затрачиваемое на
один выстрел, распределено равномерно и равно для первого стрелка
18 ± 6 секунд, а для второго – 20 ± 5 секунд. В случае промаха каждый
из стрелков может зарядить запасной патрон и произвести дополнительный выстрел. У первого стрелка есть два запасных патрона, у второго – только один. На перезарядку требуется время, которое равно в
среднем для каждого 5 ± 2 секунды.
Оценить вероятность того, что первый стрелок поразит мишень
5 раз раньше второго.
82
Контрольные вопросы
1. От чего зависит точность метода Монте-Карло?
2. Как определяется оценка «исправленного» среднеквадратического отклонения?
3. Правила моделирования случайных событий?
83
Лабораторная работа № 7
МОДЕЛИРОВАНИЕ МНОГОКАНАЛЬНЫХ СИСТЕМ
МАССОВОГО ОБСЛУЖИВАНИЯ НА ЯЗЫКЕ GPSS
Цель работы − получение первичных навыков работы на языке
моделирования GPSS на примере моделирования многоканальных
устройств: изучение среды моделирования и анализа результатов моделирования в среде GPSS World; ознакомление с методом сбора статистики на стационарном участке функционирования системы.
Методические указания
Для моделирования в среде GPSS World первоначально необходимо создать новый файл с текстом программы на GPSS, при этом тип
документа должен быть Model.
Для запуска программы на создание имитационной модели выбирается команда меню Command/Create Simulation.
Если команда START у вас прописана в тексте программы, то в
результате модель не только проверяется на синтаксис, но и запускается на выполнение. В этом случае вы сразу получите листинг отчета,
в котором приводится информация о результатах моделирования:
наличие транзактов в каждом блоке на момент завершения моделирования, информация обо всех устройствах, памятях и других объектов
языка, к которым производилось обращение в модели.
Если блок START не прописан в программе, то после команды
Command/Create Simulation просто выдается сообщение об успешном
прочтении программы (в случае отсутствия синтаксических и логических ошибок). В данном случае для выполнения программы необходимо выбрать команду меню Command/START и в возникшем окне
указать параметр команды START (по умолчанию предлагается 1).
Определение стационарного участка
Начальные условия модели могут заметно отличаться от тех
условий, которые имеют место при достижении системой устойчивого
состояния. Обеспечить возможность определения типичных значений
соответствующих статистических данных можно следующим образом:
1) моделировать до возникновения типичных условий работы системы;
84
2) отбросить собранную до этого времени статистику без изменения состояния модели;
3) продолжить моделирование, собирая статистику, на которую
уже не влияют нетипичные ситуации.
В данном случае можно использовать команду RESET, которая
сбрасывает статистику в ноль. Когда интерпретатор обрабатывает эту
инструкцию, он устанавливает статистику в нулевое состояние, а затем, как обычно, переходит к следующей команде. Если следующей
командой является START, возобновляются моделирование и сбор
статистических данных.
Существует несколько элементов статистики, на которые команда
RESET не оказывает влияния:
1) «Поток случайных чисел» не устанавливается в исходное состояние. При возобновлении моделирования последовательность случайных чисел продолжается с того места, в котором она оборвалась на
предыдущей фазе моделирования;
2) счетчик текущих значений каждого блока устанавливается равным числу транзактов, находящихся в блоке. Счетчики числа входов в
блоки устанавливаются в ноль. Что касается последующих значений
счетчиков блоков, то далее они интерпретируются как число транзактов, которое входит в блоки в оставшееся время моделирования;
3) таймер абсолютного времени не устанавливается в ноль, а таймер относительного времени устанавливается. Таймер относительного
времени измеряет модельное время, прошедшее после последней
очистки модели (или от начала моделирования, если очистки не было).
Подразумевается, что если моделирование выполняется достаточно долго, то система приходит в стационарное состояние. Время
начала стационарного участка можно определить путем экспериментирования с моделью. Так, если вместо таймера
GENERATE 480
TERMINATE 1
завершить программу следующими блоками:
GENERATE 80
TERMINATE 1
START 1
RESET
START 1
RESET
START 1
85
RESET
START 1
RESET
START 1
RESET
START 1
то общее время моделирования работы системы останется прежним
(480 единиц времени), но статистические данные будут выдаваться
через каждые 80 единиц времени моделирования. Начало стационарного участка определяется как момент времени, начиная с которого
нагрузка многоканального устройства останется постоянной.
Задание на моделирование
1. Построить на GPSS модель системы, описанной в вашем варианте.
2. Провести моделирование для случая одного, двух, трех и более
устройств и определить максимально необходимое количество каналов.
3. Требуемое число каналов определяется для каждого варианта в
зависимости от поставленных условий.
4. Определить момент модельного времени выхода системы на
стационарный участок.
5. Собрать статистику на стационарном участке.
Варианты заданий
Вариант 1
Поток автомобилей, проходящих через подземный туннель и терпящих в этот момент аварию или ломающихся, является пуассоновским со значением среднего, равным 1 день. Для предотвращения образования пробок при туннеле оборудуются ремонтные гаражи. Ремонт одного автомобиля занимает (2 ± 1.5) дня. Смоделировать работу
туннеля за год и определить необходимое количество ремонтных гаражей с учетом того, что ни один автомобиль, потерпевший аварию,
не должен оставаться в туннеле.
Вариант 2
Самолеты прибывают в аэропорт с интервалами в (25 ± 10) минут.
Время вылета самолетов из аэропорта распределено равномерно в ин86
тервале (30 ± 15) минут. Время занятия взлетно-посадочной полосы
зависит от типа самолета и подчиняется экспоненциальному закону со
средним при посадке – 15 минут, при взлете – 25 минут. Определить
необходимое количество взлетно-посадочных полос при условии отсутствия очереди. Моделирование провести в течение суток.
Вариант 3
Психолог в службе «Телефон доверия» ведет разговор с клиентами в течение (25 ± 15) минут. Считается, что запросы на разговор поступают через каждые (15 ± 5) минут. Клиент, услышавший «занято»,
бросает трубку. Определить необходимое количество психологов, если требуется, чтобы доступ к разговору получали не менее 90 % клиентов. смоделировать работу службы в течение недели, если время
работы ее ежедневно с 20 ч 00 мин до 24 ч 00 мин.
Вариант 4
Поступление пациентов в больницу имеет пуассоновское распределение. При этом существует два типа больных: тяжелобольные, со
средним временем поступления два дня и легкобольные, со средним
временем поступления 0.5 дня. Время обслуживания пациентов равно,
соответственно, (15 ± 5) дней и (5 ± 3) дня. Определить необходимое
количество коек в больнице, если пациенты должны получать место в
больнице без ожидания. Смоделировать работу больницы в течение
полугода.
Вариант 5
Рабочие приходят в кладовую через каждые (100 ± 50) секунд для
получения необходимых деталей и инструмента. Время, затрачиваемое одним кладовщиком на поиск требуемой детали, характеризуется
экспоненциальным законом распределения со средним 280 секунд.
выполнить моделирование на интервале 8 часов. Определить оптимальное количество кладовщиков, если требуется, чтобы каждый рабочий в среднем простаивал в очереди не более 2 минут.
Вариант 6
Поток автомобилей, подъезжающих к мойке, является пуассоновским со значением среднего интервала, равным 10 минут. Время мойки распределено экспоненциально со значением среднего, равным
20 минут. На стоянке возле моечной станции могут расположиться
три машины. Если клиенты подъезжают и не застают свободного ме87
ста для ожидания, они уезжают. Промоделировать работу моечной в
течение восьмичасового рабочего дня. Определить необходимое количество мест для мытья автомобилей, если требуется, чтобы обслуживание получали не менее 90 % автомобилей.
Вариант 7
В почтовое отделение поступает пуассоновский поток клиентов
со средним временем появления 5 минут. Первоначально клиенты
осматриваются, заполняют бланки, на что затрачивается в среднем (5 ± 5) минут. Время обслуживания клиентов составляет (10 ± 5)
минут. Смоделировать работу отделения за четыре часа непрерывной
работы и найти оптимальное количество почтовых служащих, если
требуется, чтобы клиенты в среднем проводили в почтовом отделении
не более 25 минут.
Вариант 8
В парикмахерскую могут приходить клиенты двух типов. Клиенты первого типа желают только стричься, распределение интервалов
их прихода составляет (35 ± 10) минут. Клиенты второго типа желают
подстричься и побриться. Распределение интервалов их прихода
(40 ± 20) минут. Парикмахер тратит на стрижку (25 ± 10) минут, а на
бритье (10 ± 2) минуты. Выполнить моделирование работы парикмахерской в течение восьми часов. Определить оптимальное количество
парикмахеров, если требуется, чтобы в очереди скапливалось не более
2 человек.
Вариант 9
В магазин самообслуживания покупатели заходят каждые (3 ± 1)
минуту. Время, затрачиваемое покупателями на отбор товаров, подчиняется экспоненциальному закону и равно в среднем за 12 минут.
Кассир обслуживает клиентов за (5 ± 2) минуты. Выполнить моделирование работы магазина в течение восьмичасового рабочего дня.
Определить оптимальное количество кассиров, если требуется, чтобы
покупатели простаивали в очереди в среднем не более 5 минут.
Вариант 10
Диспетчер управляет внутризаводским транспортом. Заявки на
перевозку поступают к диспетчеру каждые (20 ± 15) минут. Диспетчер
передает заявку на выполнение водителю грузовика, на что тратит
(3 ± 1) минуту. Грузовик выполняет заявку на перевозку за (40 ± 10)
88
минут. Смоделировать работу системы в течение 10 часов. Определить необходимое количество грузовиков, если требуется, чтобы с
момента поступления заявки до момента ее выполнения проходило в
среднем не более 50 минут.
Вариант 11
На станцию автообслуживания приезжают автомобили для заправки бензином или для мойки. Распределение интервалов прихода
автомобилей первого типа (15 ± 5) минут, второго типа – (40 ± 20) минут. На заправку автомобиля работник затрачивает (10 ± 5) минут, а
на мойку – (25 ± 10) минут. Выполнить моделирование работы станции за 9 часов и определить оптимальное количество работников, если: и мойку и заправку могут выполнять одни и те же работники;
необходимо, чтобы в очереди скапливалось не более 2 машин.
Вариант 12
В справочную телефонную сеть города вызовы в дневное время
суток поступают в среднем каждые 20 секунд, время поступления вызовов подчиняется экспоненциальному закону. Обслуживание абонентов оператором длится (40 ± 20) секунд. Смоделировать работу справочной службы в течение 10 часов. Определить необходимое количество операторов, если требуется, чтобы с первого раза дозванивались
не менее 85 % клиентов.
Вариант 13
В почтовое отделение по приему/выдаче переводов приходят клиенты двух типов. Клиенты первого типа желают послать денежный
перевод. Распределение интервалов их прихода (20 ± 10) минут. Время, затрачиваемое на оформление перевода – (10 ± 2) минуты. Клиенты второго типа желают получить перевод. Время их прихода и обслуживания равно, соответственно, (10 ± 5) и (12 ± 3) минуты. Смоделировать работу отделения с 8 ч 00 мин до 14 ч 00 мин. Определить
оптимальное количество почтовых служащих, если требуется, чтобы в
почтовом отделении не скапливалось более 5 человек.
Вариант 14
Читатели приходят в библиотеку в среднем каждые 3 минуты.
Первоначально они проводят поиск необходимых книг в каталоге, на
что затрачивают (8 + 7) минут. Библиотекарь обслуживает читателя в
среднем 3 минуты. Время прихода и время обслуживания подчиняется
89
экспоненциальному закону. Требуется, чтобы клиенты ожидали в очереди в среднем не более 5 минут. Промоделировать работу библиотеки в течение 5 часов и определить необходимое количество работников.
Вариант 15
Больные приходят в поликлинику в среднем каждые 5 минут и
обращаются в регистратуру за талоном к врачу или за карточкой. Регистратор обслуживает посетителя в среднем в течение (3 ± 1) минуты. После регистратуры больной направляется к врачу. Врач осматривает больного и назначает лечение, на что затрачивает в среднем
12 минут. Время прихода больных и время работы врача подчиняются
экспоненциальному закону распределения. Определить оптимальное
количество врачей, если необходимо, чтобы больные ожидали приема
не более 6 минут. Промоделировать работу поликлиники в течение
8 часов.
Вариант 16
В железнодорожную кассу пассажиры приходят каждые (10 ± 5)
минут. Первоначально они изучают расписание движения поездов,
либо обращаются в справочную службу, на что затрачивают (6 ± 5)
минут. Время обслуживания клиентов кассиром распределено равномерно на интервале (12 ± 6) минут. Требуется, чтобы в кассы очередь
не превышала 5 человек. Определить оптимальное количество кассиров, промоделировав работу касс в течение 10 часов.
Вариант 17
После первичной термообработки в печи детали поступают в цех
доводки, в котором проходят два этапа обработки. Время поступления
деталей распределено равномерно на интервале (5 ± 1) минуты. Время
обработки деталей на первом этапе равно (7 ± 2) минуты, на втором
этапе – (12 ± 4) минуты. Определить необходимое количество рабочих
на первом и на втором этапах, если необходимо, чтобы любая подошедшая деталь сразу же бралась на обработку (не должно скапливаться очередей). Промоделировать работу цеха в течение 8-часового рабочего дня.
Вариант 18
В студенческий вычислительный зал заходят студентыпользователи, желающие провести расчеты на ЭВМ. Поток пользова90
телей является пуассоновским со значением среднего, равным 10 минут. Время, необходимое для решения задач, включая выводы результатов на печать, характеризуются интервалом (18 ± 6) минут. Не допускается, чтобы более пяти пользователей ожидали своей очереди.
Смоделировать процесс обслуживания ста пользователей. Определить
необходимое количество машин с тем, чтобы обслуживание получали
все приходящие студенты.
Вариант 19
В вычислительную машину, работающую в системе управления
технологическим процессом, через каждые (3 ± 1) секунды поступает
информация от датчиков и измерительных устройств. До обработки на
ЭВМ информационные сообщения, длина которых 8 байт, накапливаются в буферной памяти объемом 64 байта. Продолжительность обработки всего накопленного пакета сообщений на ЭВМ имеет экспоненциальный характер со средним 15 секунд. Смоделировать процесс работы системы на четыре часа, определить коэффициент загрузки
ЭВМ.
Вариант 20
Вычислительная система состоит из нескольких ЭВМ. С интенсивностью три прихода в одну минуту в систему поступает пуассоновский входной поток заданий, которые адресуются одной из свободных ЭВМ. После обработки задания на одной из ЭВМ оно считается выполненным. Продолжительность обработки заданий на одной
ЭВМ характеризуется интервалом времени (4 + 1) минуты. Смоделировать процесс обработки 200 заданий. Определить необходимое количество ЭВМ, если необходимо, чтобы для вновь поступившего задания сразу же находилась свободная машина.
Контрольные вопросы
1. Перечислите классы инструментальных средств, которые используются при имитационном моделировании систем. Их достоинства и недостатки. Перспективы развития.
2. Опишите основные этапы технологии разработки имитационной модели средствами GPSS/World.
3. Опишите и поясните назначение основных объектов
GPSS/World: транзакты, блоки, списки, функции.
91
4. Поясните назначение и формат записи основных блоков языка
моделирования GPSS: GENERATE, TERMINATE, QUEUE, DEPART,
SEIZE, RELIASE, ENTER, LEAVE, TRANSFER, START.
5. Какой принцип имитационного моделирования  t или Z реализован в программной системе GPSS/World? В чем преимущества и
недостатки такой реализации?
92
Лабораторная работа № 8
МОДЕЛИРОВАНИЕ РАЗНОТИПНЫХ ЗАЯВОК
НА ЯЗЫКЕ GPSS
Цель работы − изучение особенностей моделирования разнотипных заявок с различными приоритетами, а также получение навыков
исследования систем массового обслуживания с определением эффективного режима их работы.
Методические указания
Рассматривается система массового обслуживания (СМО), на
вход которой поступают заявки различных типов, которые могут
иметь различные приоритеты.
Известны следующие характеристики системы: время прихода и
время обработки заявок. В процессе исследования системы необходимо определить наиболее эффективный режим ее работы. Эффективность работы системы рассматривается с точки зрения минимизации
затрат, либо максимизации прибыли.
В любой СМО существует две составляющие: клиенты/заявки и
каналы обслуживания. С одной стороны, чтобы минимизировать затраты на содержание каналов обслуживания или потери от их простоя,
необходимо снижать количество каналов. С другой стороны, при малом количестве каналов обслуживания появляется большая очередь, и
увеличиваются потери от простоя заявок в очереди. Если же очередь
имеет ограничения, то увеличиваются потери от теряющихся заявок,
либо уменьшается прибыль от обслуживания заявок.
В каждом варианте определены характеристики, по которым
должна определяться эффективность работы системы. Необходимо
провести моделирование работы СМО при различном количестве каналов обслуживания, определяя для каждого случая потери или прибыль исследуемой системы.
Если по клиентам указаны характеристики потерь, то для каждого
случая определяются суммарные потери, складывающиеся из потерь
от простоя каналов (или затрат на их обслуживание) и потерь от простоя заявок (или потерь от их ухода). Если в задании указана прибыль
от обслуживания клиентов, то для каждого случая (при различном количестве каналов) определяется общая прибыль системы, рассчитыва93
емая как суммарная прибыль от обслуживания клиентов за вычетом
затрат на содержание каналов обслуживания.
Для проведения необходимых расчетов в модели использовать
переменные, ячейки и стандартные числовые атрибуты языка GPSS.
Результат (общая прибыль или потери) должен выдаваться в отчете,
как значение ячейки.
В результате проведенных исследований выбирается оптимальное
количество каналов обслуживания.
Для выбранного количества каналов рассматривается возможность приоритетного обслуживания: расставляя приоритеты различным типам заявок всевозможными способами, подобрать наиболее
эффективный режим, максимизируя прибыль или минимизируя затраты.
По результатам проведенных исследований необходимо дать рекомендации: какое количество каналов обслуживания является наиболее оптимальным, и каким образом должны быть расставлены приоритеты у заявок для обеспечения эффективной работы системы.
Задание на моделирование
1. Провести моделирование работы системы в течение заданного
модельного времени. Если время моделирования не задано, оно выбирается самостоятельно таким образом, чтобы получить удовлетворительную статистику.
2. Найти наиболее эффективный режим работы моделируемой системы, исходя из стоимости простоя каналов обслуживания (или затрат на их содержание) и стоимости потери клиентов (или прибыли от
их обслуживания).
Варианты заданий
Вариант 1
На склад поступают продукты двух типов: скоропортящиеся и
долго хранимые с интервалами распределений соответственно
(1 ± 0.5) дня и (2 ± 1) день. Со склада в магазин продукты перевозятся
одним или несколькими грузовиками. Емкость грузовика – 1 единица
продукции. Время, затрачиваемое на погрузку, перевозку и разгрузку
распределено по экспоненциальному закону со средним 0.5 дня. В магазине может одновременно находиться 5 единиц продукции. Время
продажи продуктов распределено равномерно на интервале (1.5 + 1)
94
день для скоропортящихся продуктов и (1 + 0.5) дня для долго хранимых. При перевозке продуктов владелец магазина определил безусловный приоритет для скоропортящихся. Определить необходимое
количество грузовиков в системе, если стоимость грузовика –
500 рублей в день. скоропортящиеся продукты могут храниться 3 дня
(с момента поступления на склад до продажи) и затем пропадают, их
стоимость – 1000 рублей на единицу продукции. Продукты второго
типа хранятся 10 дней, их стоимость – 3000 рублей на единицу продукции. Определить, действительно ли необходим приоритете для
скоропортящихся продуктов.
Вариант 2
Самолеты прибывают в аэропорт с интервалами в (25 ± 10) минут.
Время вылета самолетов из аэропорта распределено равномерно в интервале (30 ± 15) минут. Время занятия взлетно-посадочной полосы
зависит от типа самолета и подчиняется экспоненциальному закону со
средним при посадке – 15 минут, при взлете – 25 минут. Исследовать
работу аэропорта при учете приоритетности взлетающих самолетов,
если очередь в воздухе может быть до трех самолетов, а на земле – до
пяти самолетов. Определить наиболее эффективный режим работы
аэропорта, если стоимость каждой взлетно-посадочной полосы
10 тысяч рублей в день, потери от простоя самолетов в воздухе – 500
рублей в час, на земле – 200 рублей в час.
Вариант 3
Поступление пациентов в больницу имеет пуассоновское распределение. При этом существует два типа больных: тяжелобольные, со
средним временем поступления два дня и легкобольные, со средним
временем поступления 0.5 дня. Время обслуживания пациентов равно,
соответственно, (15 ± 5) дней и (5 ± 3) дня. Исследовать работу данной системы при ограниченном количестве коек в больнице. Тяжелобольные поступают вне очереди. Определить эффективный режим
работы, если доходы от больных составляют 150 рублей в день от тяжелобольного и 50 рублей в день от легкобольного. При этом на каждые 10 коек требуется медсестра с окладом 300 рублей в день.
Вариант 4
В женскую парикмахерскую приходят клиентки трех типов: для
стрижки, химии, стрижки и химии одновременно. Распределение интервалов их прихода, соответственно, (20 ± 10) минут, (30 ± 10) минут
95
и (35 ± 15) минут. Парикмахер тратит на стрижку (30 ± 10) минут, а на
химию – (50 ± 10) минут. Стоимость стрижки составляет 250 рублей,
химии – 500 рублей. Парикмахер вместе с местом обслуживания обходится в 800 рублей в день. Исследовать работу парикмахерской в
течение 8-часового рабочего дня с учетом возможности установления
приоритетов для посетителей. Мест для ожидания посетителями своей
очереди – два. Посетитель, заставший более двух ожидающих клиентов, уходит.
Вариант 5
В кладовую за запасными деталями приходят рабочие трех типов,
соответственно, через каждые (5.2 ± 2) минуты, (3 ± 1.6) минуты и
(7 ± 4.5) минуты. Для поиска соответствующей детали кладовщику
требуется (4.4 ± 3) минуты, (2 ± 1) минута и (5.2 ± 3.6) минут. После
получения требуемых деталей рабочий затрачивает время на ремонт
станка, распределенное по экспоненциальному закону со средним 3,
2 и 4 минуты соответственно. Потери от простоя станков соответственно равны 40, 30 и 50 коп/мин. Для содержания кладовщика
требуется 30 рублей в час. Определить оптимальное количество кладовщиков для работы на складе и оптимальный порядок обслуживания заявок.
Вариант 6
В почтовое отделение поступает пуассоновский поток клиентов
трех типов: клиенты, которые отправляют посылки, со средним временем появления 7 минут, клиенты, которые получают посылки, со
средним временем появления 5 минут и посетители, покупающие
открытки или конверты, со средним интервалом прихода 2 минуты. Время обслуживания клиентов составляет, соответственно,
(12 ± 3) минуты, (5 ± 2) минуты и (0.5 ± 0.2) минуты. Клиенты третьего типа уходят, если очередь составляет более трех человек; клиенты
первого типа уходят в другое почтовое отделение, если очередь
больше семи человек. Смоделировать работу отделения за четыре
часа непрерывной работы и найти оптимальное количество человек, обслуживающих посетителей, если известно, что потеря клиентов первого и третьего типов составляет, соответственно, 20 и 4
рублей с человека; стоимость работы почтового служащего составляет 40 рублей в час. Рассмотреть возможность приоритетного
обслуживания.
96
Вариант 7
Одна насосная станция накачивает 1 единицу нефти в среднем за
(5 ± 1) минуты. Поток заявок на нефть подчинен пуассоновскому закону со средним 1 час. На станцию поступают заявки двух типов: на 5
и на 10 единиц нефти. Определить необходимое количество насосных
станций, если потери от простоя насоса составляют 1000 рублей в час;
в ожидании может находиться не более трех заявок, сверх этого заявки теряются, при этом убыток от потери заявок составляет 2000 рублей для заявок первого типа и 4000 рублей – для второго.
Рассмотреть возможность приоритетного обслуживания заявок
для оптимального обслуживания. Насосные станции работают круглосуточно.
Вариант 8
При подходе судов к речному порту из-за географических особенностей местности используются судоходные каналы. Поток судов.
прибывающих в порт, распределен в интервале (35 ± 25) минут. Среднее время пребывания судов в порту, занятое под разгрузку/погрузку,
составляет (1.5 ± 0.5) суток. Затем суда выходят из порта через те
же каналы. Среднее время прохождения судна через канал равно
(1.5 ± 0.5) часа. Определить оптимальное число судоходных каналов,
если стоимость эксплуатации одного канала составляет 1000 рублей в
час, а потери от простоя судна в очереди перед каналом составляет
500 рублей в час. Обеспечить безусловный приоритете для судов, выходящих из порта, так как количество мест у пристани ограничено.
Вариант 9
В телевизионное ателье поступают заявки на ремонт телевизоров двух типов: на мелкий ремонт, производимый на дому, и на крупный ремонт, производимый в ателье. Время поступления заявок составляет, соответственно, (2 ± 0.5) часа и (5 ± 1.5) часа. Мастер затрачивает на ремонт телевизора в среднем, соответственно, (1 ± 0.5) часа
и (5 ± 3) часа. Кроме того, для ремонта на дому мастер затрачивает
время на дорогу в среднем (1 ± 0.4) часа. Определить оптимальное
количество мастеров, если заявка ставится в очередь, только, если
очередь составляет не более десяти заказов, остальные заявки теряются; убытки при потери заявок составляют в среднем 100 рублей; потери от простоя мастера составляют 10 рублей в час. Рассмотреть возможность приоритетного обслуживания в мастерской и на дому.
97
Вариант 10
В мультипрограммную ЭВМ поступает пуассоновский входящий
поток заданий двух типов со средним 0.5 минут и 2 минуты, соответственно для первого и второго типа заданий. Первый тип заданий требует для вычислений (20 ± 5) секунд и (40 ± 5) секунд для вывода на
печать. Второй тип заданий требует соответственно (140 ± 50) секунд
и (30 ± 10) секунд. ЭВМ позволяет обрабатывать одновременно до
пяти заданий, иначе эффективность ее работы резко падает. Принтер
может обрабатывать только одно задание, остальные должны оставаться в очереди. Определить, будет ли справляться один принтер с
выходным потоком заявок так, чтобы очередь на печать не росла бесконечно. Определить оптимальный режим работы ЭВМ (с минимизацией по времени ожидания), изменяя приоритеты заданий при поступлении на счет и на печать.
Вариант 11
В кафе приходят посетители двух типов: по одному человеку, и
по четыре человека. Поток посетителей первого типа является пуассоновским со средним 10 минут. Посетители второго типа приходят в
кафе в интервале (30 ± 5) минут. Время обслуживания (выполнения
заказа) посетителей первого типа составляет (15 ± 5) минут, второго
типа – (25 ± 10) минут. Время, затрачиваемое клиентами на обед, распределено равномерно в интервале (45 ± 15) минут. Определить оптимальное количество мест в кафе, если известно, что:
1) посетитель, заставший все места в кафе занятыми, уходит немедленно;
2) доходы кафе от клиента составляют 100 рублей;
3) каждый четырехместный стол обходится кафе в 200 рублей (до
10 столов); на каждые следующие 10 столов расходы составляют
320 рублей; стоимость каждого стола сверх 20 обходится в
500 рублей.
Вариант 12
В трикотажном ателье 40 швейных машин и 8 оверлоков работают восемь часов в день, пять дней в неделю. Любая из этих машин
может выйти из строя, в этом случае ее отправляют в ремонтную мастерскую, где ее чинят и возвращают в цех. На ремонт сломанной
швейной машины уходит (7 ± 3) часа, на ремонт оверлока – (6 ± 3) часа. При эксплуатации в производстве время наработки до отказа распределено равномерно и составляет (157 ± 25) часов для швейной ма98
шины и (180 ± 35) часов для оверлока. Определить оптимальный режим работы ателье, если:
1) необходимо, чтобы в рабочем состоянии всегда находилось не
менее шести оверлоков;
2) содержание каждого ремонтного рабочего обходится ателье в
400 рублей в день;
3) потери от простоя одной швейной машины обходятся в 20 рублей в час.
Вариант 13
В мастерскую по ремонту холодильников поступают заявки двух
типов: на ремонт холодильников на дому (мелкий ремонт) и ремонт
холодильников в мастерской (крупный ремонт или ремонт по гарантии). Время поступления заявок подчиняется экспоненциальному закону распределения и в среднем равно, соответственно, 2 часа и
4.5 часа. Время на ремонт холодильника в мастерской распределено
равномерно и составляет (5.5 ± 1.5) часа. Заявки на ремонт на дому
выполняются мастером в течение (2.8 ± 1.5) часа (включая время на
дорогу к клиенту и обратно). Работа мастерской организована таким
образом, что заявки на ремонт принимаются только в том случае, если
в очереди находится не более 5 заявок, иначе клиент получает отказ.
Убытки от потери заявок составляют 200 рублей. Каждый работник
обходится мастерской в 500 рублей в день. Определить оптимальный
режим работы мастерской.
Вариант 14
В цех по сборке изделия двух типов поступают через промежутки
времени, распределенные на интервале, соответственно, (4 ± 2) минуты и (2 ± 1) минуту. Рабочий на конвейере выполняет сборку изделия
первого типа за (9 ± 2) минуты и второго типа – за (5 ± 2) минуты,
после чего изделия поступают к контроллеру ОТК. Контроллер тестирует изделие первого типа в течение (2 ± 0.5) минут и второго типа –
(1.5 ± 0.5) минут. Десять процентов изделий контроллер отбраковывает и снова направляет в цех на доработку. Известно, что как только у
контроллера скапливается 10 деталей, конвейер вынужденно останавливают (новые детали не принимаются). Простой конвейера обходится в 100 рублей в минуту. Контроллеру выплачивается 500 рублей в
день. Определить необходимое количество контроллеров и рабочих на
конвейере, если количество рабочих должно быть достаточным, чтобы
99
очередь на конвейер не превышала 20 деталей. Промоделировать работу цеха в течение 8-часового рабочего дня.
Вариант 15
В одно из подразделений городской сотовой связи приходят клиенты трех типов: для внесения абонентской платы, для покупки телефона и для заключения договора на подключение к сети. Время прихода посетителей подчиняется экспоненциальному закону распределения и равно, соответственно, 5, 14 и 25 минут. Время обслуживания
клиентов также распределено экспоненциально и равно для первого
типа заявок – 2 минуты, для второго типа – 10 минут, и для третьего –
10 минут. Клиенты первого типа уходят, если очередь составляет более трех человек; клиенты второго типа уходят, если очередь больше
четырех человек Смоделировать работу отделения за восемь часов
непрерывной работы и найти оптимальное количество человек, обслуживающих посетителей, если известно, что потеря клиентов первого и второго типов составляет, соответственно, 20 и 100 рублей с
человека; стоимость работы работника отделения составляет 50
рублей в час. Рассмотреть возможность приоритетного обслуживания.
Вариант 16
В мебельный салон по изготовлению и продаже мебели посетители приходят в среднем каждые 40 минут, причем половина из них заказывает мягкую мебель, а половина – каркасную. После осмотра образцов товара и общения с продавцом половина посетителей уходят, а
остальная половина заказывает мебель. В отделе продаж и приемки
заказов с клиентами первого типа (с учетом и тех, кто не стал ничего
заказывать и покупать) работают в среднем 20 минут, с клиентами
второго типа – 25 минут. В мастерской, куда передаются заказы на
изготовление, на выполнение одного заказа первого типа затрачивается примерно 14 часов, второго типа – 35 часов. Все временные характеристики распределены экспоненциально. Если в очереди на выполнение в мастерской скопилось 10 заказов, очередной клиент уходит в
другой салон. Прибыль от выполнения заказа на мягкую мебель составляет 2 тысячи, на каркасную – 5 тысяч. Определить необходимое
количество работников в мастерской, если зарплата одного работника
составляет 600 рублей в день при рабочем дне в 8 часов.
100
Вариант 17
На станцию автообслуживания приезжают автомобили для заправки бензином или для мойки. Распределение интервалов прихода
автомобилей первого типа (15 ± 5) минут, второго типа – (40 ± 20) минут. На заправку автомобиля работник затрачивает (10 ± 5) минут, а
на мойку – (25 ± 10) минут. На заправку машины становятся в очередь, только если очередь не превышает 5 машин. В случае, если очередь на мойку составляет 2 машины, очередная подъехавшая машина
уезжает. Прибыль от обслуживания заявки первого типа составляет 30
рублей с машины, второго типа – 60 рублей с машины. Выполнить
моделирование работы станции за 9 часов и определить оптимальное
количество работников, если: и мойку и заправку могут выполнять
одни и те же работники; зарплата одного работника составляет
40 руб./час.
Вариант 18
В мастерскую по ремонту и пошиву обуви приходят два типа посетителей: на ремонт и на пошив, время прихода посетителей первого
типа распределено равномерно в интервале (12 + 5) минут, второго
типа – (40 + 10) минут. На ремонт требуется в среднем 28 минут, на
пошив – 8 часов, время работы распределено экспоненциально. В случае, если очередь составляет более 5 человек, клиенты первого типа
уходят. прибыль от обслуживания клиентов первого типа составляет
200 рублей, второго типа – 1000 рублей. Зарплата одного работника
мастерской составляет 550 рублей в день.
Контрольные вопросы
1. Перечислите особенности работы с основными блоками GPSS:
GENERATE, TERMINATE, SEIZE, RELEASE, ADVANCE, ENTER,
LEAVE, TEST, TRANSFER, START, SPLIT, ASSEMBLE, PREMPT,
RETURN, MATCH.
2. Какие выходные характеристики процесса функционирования
системы представлены в отчете GPSS?
3. Как оценить эффективность функционирования системы по результатам имитационного моделирования?
4. Каковы достоинства и недостатки среды GPSS как средства построения имитационной модели системы?
101
Список литературы
1. Румянцев М. Средства имитационного моделирования бизнеспроцессов // Корпоративные системы, 2007. № 2.
2. Верификация Estelle-спецификаций распределенных систем
посредством раскрашенных сетей Петри // Под ред. Непомнящего В. А., Шилова Н. В. Новосибирск, 1997.
3. Гома Х. UML. Проектирование систем реального времени, параллельных и распределенных приложений. Пер.с англ. М.: ДМК
Пресс 2002 704 с.
4. Котов В. Е. Сети Петри. М.: Наука, 1984.
5. Питерсон Дж. Теория сетей Петри и моделирование систем.
М.: Мир, 1984.
6. Томашевский В., Жданова Е. Имитационное моделирование в
среде GPSS. М.: Бестселлер, 2003.
7. GPSS. http://www.compmodel.ru/394/
102
Приложение
Пример оформления титульного листа отчета по лабораторной работе
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
ФГБОУ ВПО СЕВЕРО-КАВКАЗСКИЙ ГОРНОМЕТАЛЛУРГИЧЕСКИЙ ИНСТИТУТ (ГОСУДАРСТВЕННЫЙ
ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ)
Кафедра Автоматизированной обработки информации
ОТЧЕТ
О ЛАБОРАТОРНОЙ РАБОТЕ № 2
"Моделирование сетей Петри"
ПО КУРСУ: Моделирование систем
Выполнил:
_____________________
Проверил:
_____________________
Владикавказ 2014
103
Download