Яцкив И. В. - Моделирование Систем. Опорный Конспект

86
ИНСТИТУТ ТРАНСПОРТА И СВЯЗИ Яцкив И . В . Опорный конспект Моделирование систем

description

Modelling of Systems

Transcript of Яцкив И. В. - Моделирование Систем. Опорный Конспект

Page 1: Яцкив И. В. - Моделирование Систем. Опорный Конспект

ИНСТИТУТ ТРАНСПОРТА И СВЯЗИ Яцкив И.В. Опорный конспект

Моделирование систем

Page 2: Яцкив И. В. - Моделирование Систем. Опорный Конспект

2

Transporta un sakaru institūts Институт транспорта и связи И.Яцкив. Моделирование систем. – Опорный конспект лекций. - Рига: Институт транспорта и связи, 2002. – 86 с. Учебное пособие предназначено для студентов факультета электроники и компьютерных наук. Соответствует учебным программам бакалаврской (44482) и магистерской (465232) степеней обучения.

Page 3: Яцкив И. В. - Моделирование Систем. Опорный Конспект

3

1.1

Моделирование Систем

Яцкив И.В.И.В.

1.2

Тема 1. Основные понятия

- Система- Модель- Моделирование

1.3

Основные понятия

Моделирование – это замещение исследуемого объекта (оригинала) его условным образом или другим объектом (моделью) и изучение свойств оригинала путем исследования свойств модели

Page 4: Яцкив И. В. - Моделирование Систем. Опорный Конспект

4

1.4

Назначение моделирования при изучении систем

достижение различных целей без «разрушения» системы (вмешательства

в ее работу)

1.5

Цели, достигаемые при моделировании:

• увеличение понимания механизмов в реальных системах• предсказание поведения системы• упрощение процедуры проектирования сложных систем• оценка параметров системы, которые напрямую неизмеримы• тестирование чувствительности пaрaметров систем• оптимизация систем• возможности тренировки операторов на имитаторах систем,

обучение на которых опасно и проблематично• верификация моделей, полученных другим путем

1.6

Необходимость соблюдения условий

Обеспечение адекватного отображения свойств оригинала, существенных с точки зрения исследуемой проблемы (цели моделирования)Обеспечение возможности эксперимен-тирования с моделью

Page 5: Яцкив И. В. - Моделирование Систем. Опорный Конспект

5

1.7

Классы моделей

Физические модели –реальное воплощение тех физических свойств оригинала, которые составляют цель исследования (макет, стенд)

Математические модели –формализованное описание системы (процесса, операции) с помощью некоторого абстрактного языка (матем.соотношений, алгоритма и т.д.)

1.8

Основные принципы моделирования

Информационной достаточности (критический уровень априорных сведений о системе)Осуществимости – обеспечение поставленной цели с вероятностью существенно отличающейся от 0 и за конечное времяМножественности моделейАгрегированияПараметризации

1.9

Основные понятия

Концептуальная модель – это абстрактная модель, определяющая структуру моделируемой системы, свойства элементов и причинно-следственные связи ей присущие. Этапы построения:

- определение типа системы- описание набора внеш. воздействий - декомпозиция системы

Page 6: Яцкив И. В. - Моделирование Систем. Опорный Конспект

6

Цикл моделированияЦикл моделирования

Page 7: Яцкив И. В. - Моделирование Систем. Опорный Конспект

7

1.10

Основные понятия

Валидация – процесс удостоверения того, что модель в сфере ее применения достаточна точна для ее применения (Schlesinger, 1974)

1.11

Трех-этапный подход к валидациимодели (Naylor and Finger,1967):

(1) Валидность внешнего представления (2) Эмпирическое тестирование допущений модели(3) Статистические сравнения между выходом реальной системы и модели

1.12

(1) Валидность внешнего представления

Прогоны модели могут дать ответы на вопросы:Появились или нет неожидаемые событияНет ли резко растущих очередейКорректен ли путь транзакта через систему (используется анимация)

Page 8: Яцкив И. В. - Моделирование Систем. Опорный Конспект

8

1.13

Технология компьютерного моделирования

Определение цели моделированияРазработка концептуальной модели Формализация моделиПрограммная реализация моделиВалидация моделиПланирование модельных экспериментов Реализация плана экспериментаАнализ и интерпретация результатов

1.14

Два похода к построению математической модели

Аналитическое моделированиепредполагает использование матем.модели в форме различного рода уравнений, связывающих вход. и вых.параметрыНаличие точного решения

Имитационное моделирование – матем. модель воспроизводит логику (алгоритм) функ-ционирования системы во времени при различных сочетаниях значений параметров системы и внешней среды

1.15

Выбор вида решения зависит от ответа на вопросы:

С какой целью проводится моделирование?

К какому классу относится моделируемое явление (система, процесс) ?

Page 9: Яцкив И. В. - Моделирование Систем. Опорный Конспект

9

1.16

Имитационное моделирование целесообразно, если:

Характер процессов не позволяет описать их в аналитической формеНеобходимо наблюдать за поведением системы в течение определенного периодаИзучение функционирования системы в новых условиях, при включении новых компонент, внедрения новой стратегииБольшое количество случайных составляющих

1.17

Недостатки имитационного моделирования

Большие затраты времени и силИМ отражает субъективные представления разработчикаПолучение обоснованных выводов требует проведения серии экспериментов и применения статистического анализа

1.18

Для устранения недостатков необходимо:

Использование систем моделированияЗнание схем построения ИМ

Page 10: Яцкив И. В. - Моделирование Систем. Опорный Конспект

10

1.19

Этап формализации модели включает в себя:

1.Выбор метода отображения динамики системы (на основе событий, процессов, работ или транзактов)2.Математическое описание случайных факторов3.Выбор механизма и масштаба изменения модельного времени

1.20

1. Выбор метода отображения динамики системы (на основе событий, процессов,

работ или транзактов)

1.21

Работа (активность) -

Единичное действие системы по обработке входных данных

Работа характеризуется:- временем выполнения - потребляемыми ресурсами

Page 11: Яцкив И. В. - Моделирование Систем. Опорный Конспект

11

1.22

Процесс -

Логически связанный набор работ

Процесс характеризуется:- Статическими характеристиками

(длительность, результат, потребляемые ресурсы, условия запуска и остановки)

- Динамической характеристикой (состоянием)

1.23

Событие -

Мгновенное изменение элемента или состояния системы в целом

Событие характеризуется:- Условиями возникновения - Типом события (определяет порядок обработки)

- Нулевой длительностью

1.24

Транзакт -

Некоторое сообщение, которое поступает на вход системы и подлежит обработке

Транзакт характеризуется:- Временем поступления в систему - Типом транзакта (определяет порядок обработки)

Page 12: Яцкив И. В. - Моделирование Систем. Опорный Конспект

12

1.25

2. Моделирование случайных факторов

Случайных событийСлучайные величины (дискретные и непрерывные)Случайные функции (процессы)

(следующая тема)

1.26

3.Выбор механизма и масштаба изменения модельного времени

Три представления времени:Реальное – в нем происходит функционирование системыМодельное – в его масштабе организуется работа моделиМашинное – затараты ЭВМ на имитацию

1.27

3.Выбор механизма и масштаба изменения модельного времени

Управление модельным временем методами:

Постоянного шагаПо особым состояниям

Page 13: Яцкив И. В. - Моделирование Систем. Опорный Конспект

13

2.1

Тема 2. Конструирование имитационных моделей

«Моделирование систем»

2.2

Основные понятия

Имитационное моделирование – это процесс проектирования модели реальной системы и производства экспериментов с моделью с целью понимания поведения системы и/или оценивания различных стратегий оперирования с системой (Pegden - 1995)

2.3 Управление модельным временем методами:

Постоянного шагаПо особым состояниям

Page 14: Яцкив И. В. - Моделирование Систем. Опорный Конспект

14

2.4

Основные понятия

Модель с дискретными событиями –это модель, в которой переменные состояния системы изменяются в дискретное время Переменная состояния системы –внутренняя переменная системы, которую выбрали для характеристики важнейших элементов системы (свойств системы)

2.5

Arrivals Queue

Servers

Departures

Модель M/M/n

2.6

Основные понятия

Сущность (транзакт) (entity) – это любой объект внутри системы, которой может вызвать изменение состояния системы. Задерживаются в их продвижении через систему для инициализации деятельности.М.б.созданы, уничтожены, задержаныМогут иметь атрибуты (приоритет, объем, тип)

Page 15: Яцкив И. В. - Моделирование Систем. Опорный Конспект

15

2.7

Основные понятия

Деятельность (activity) – некоторые операции, которые надо выполнить в процессе продвижения сущности через систему. Термин употребляют, когда могут рассчитать задержку вперед. Иногда они не могут быть вычислены вперед (включают задержку или зависят от некоторых условных событийРесурс (resource) – статический объект, который обеспечивает сервис сущности. Множество единиц ресурса составляют его емкость. Большинство видов деятельности ограничиваются ресурсами

2.8

Типы событий

Безусловное (основное) событие –время наступления, которого можно предсказатьУсловное (вспомогательное) событие –осуществляется в зависимости от состояния системы

2.9

Основные понятия

Событие – мгновенное действие, изменяющее состояние системы.

– м.б.окончанием деятельности (которое может быть вычислено вперед) – безусловное событие

– м.б.результатом текущего состояния системы – условное событие

– Стартовое событие– Завершающее событие (м.б. как условным, так и безусловным)

Календарь событий – включает типы событий и время их осуществления (только безусловные)

Page 16: Яцкив И. В. - Моделирование Систем. Опорный Конспект

16

2.10

Моделирование систем с дискретными событиями по особым состояниям

ei - момент наступления (мгновенного) i-ого события;ti - момент поступления i-ой заявки;ci - момент завершения обслуживания i-ого клиента;

2.11

Моделирование систем с дискретными событиями по особым состояниям

Генерируются значения следующих случайных величин:

• Ai = ti – ti-1 = интервал между (i-1) и i моментами поступления заявок;

• Si = время, затрачиваемое сервером на обслуживание i-ого клиента (исключая ожидание в очереди).

2.12

Подход к моделированию путем управления событиями

(1) Модель инициализируется и таймер модельного времени устанавливается в 0(2) Таймер продвигается к следующему событию из календаря (списка) событий (3) Любое условное событие выполнятся в этот момент(4) Текущее событие удаляется из календаря будущих событий и он обновляется(5) Если не достигнуто событие-окончание, то шаги 2,3,4 повторяются

Page 17: Яцкив И. В. - Моделирование Систем. Опорный Конспект

17

2.13

Результаты табличного моделирования

Времямежду

приходами

Время Время обсл. Началообслуживания

Завершениеобслуживания

15 15 55 15 70

75 90 45 90 135

15 105 75 135 210

15 120 25 210 235

15 135 35 235 270

15 150 55 270 325

105 255 55 325 380

15 270 35 380 415

15 285 25 415 440

2.14

Сущность Время Основноесобытие

Условноесобытие

Входы в календарь событий

A E S0 Start 15 70 240

1 15 A 90 70 24070 E 90 135 240

2 90 A 105 135 2403 105 A 120 135 2404 120 A 135 135 2405 135 A 240

135 E Waits ends for entity 3

150 210 240

6 150 A 255 210 240210 E Waits ends

for entity 4255 235 240

235 E Waits ends for entity 5

255 270 240

240 STOP

Метод управления событиями, примененный к модели банка

2.15

Свойства подхода

Традиционный ГибкостьТребует навыков программирования при разработке моделей на универсальных языках

Page 18: Яцкив И. В. - Моделирование Систем. Опорный Конспект

18

2.16

Page 19: Яцкив И. В. - Моделирование Систем. Опорный Конспект

19

2.17

Page 20: Яцкив И. В. - Моделирование Систем. Опорный Конспект

20

2.18

Page 21: Яцкив И. В. - Моделирование Систем. Опорный Конспект

21

3.1

Тема 3. Статистические аспекты моделирования

«Моделирование систем»

3.2

Основные понятия

Имитационное моделирование – это процесс проектирования модели реальной системы и производства экспериментов с моделью с целью понимания поведения системы и/или оценивания различных стратегий оперирования с системой (Pegden - 1995)

3.3

Тема 3.1. Моделирование случайных факторовТема 3.2. Обработка результатов экспериментов

Page 22: Яцкив И. В. - Моделирование Систем. Опорный Конспект

22

3.4 Тема 3.1. Моделирование случайных

факторов

Случайных событийСлучайные величины (дискретные и непрерывные)Случайные функции (процессы)

3.5

Arrivals Queue

Servers

Departures

Модель M/M/n

3.6 Основные принципы моделирования

случайных факторов

В основе использование случайных чисел, имеющих равномерное распределение в (0,1) При программной реализации числа псевдослучайныВозможность воспроизведенияНезависимость между собой

Page 23: Яцкив И. В. - Моделирование Систем. Опорный Конспект

23

3.7 Моделирование случайных событий

(метод розыгрыша по жребию )

Пусть А – случайное событие с вероятностью p(A)

АлгоритмГенерируем число u ~ R(0,1)- Если u < p(A) – событие произошло- Если u > p(A) – событие не произошло

3.8 Моделирование случайных величин

(дискретных )

3.9

Пример:

Объектом моделирования является банк с одним оператором. Поток клиентов неоднородный. Эмпирические распределения интервалов времени между клиентами и времени обслуживания приведены в таблицах.

Цель. Путем имитационного моделирования определить коэффициент использования оператора и максимальное время ожидания в очереди.

Page 24: Яцкив И. В. - Моделирование Систем. Опорный Конспект

24

3.10 Пример: распределение интервалов

между приходами клиентов

Интервал(seconds)

Серединаинтервала

Частота Относительнаячастота (%)

0 - 30 15 66 55

30 - 60 45 36 30

60 - 90 75 12 10

90 - 120 105 6 5

3.11 Пример: распределение времени

обслуживания клиентов

Время обсл.(seconds)

Серединаинтервала

Частота Относительнаячастота (%)

20 - 30 25 17 17

30 - 40 35 28 28

40 - 50 45 25 25

50 – 60 55 20 20

60 - 90 75 10 10

3.12 Пример: моделирование случайных

величин

Интервал Частота Относит.частота

Накопл.частота

Random number

0 - 30 66 0.55 0.55 0.00 - 0.55

30 - 60 36 0.30 0.85 0.55 - 0.85

60 - 90 12 0.10 0.95 0.85 - 0.95

90 - 120 6 0.05 1.00 0.95 - 1.00

Page 25: Яцкив И. В. - Моделирование Систем. Опорный Конспект

25

3.13

Пример: моделирование случайных величин

Времяобсл.(sec)

Серед.интер-вала

Час-тота

Относит.частота (%)

Накопл. Частота

(%)

Случ.числа

20 - 30 25 17 17 17 00 – 0.17

30 - 40 35 28 28 45 0.18 – 0.45

40 - 50 45 25 25 70 0.46 – 0.70

50 - 60 55 20 20 90 0.71 – 0.90

60 - 90 75 10 10 100 0.91 – 1.00

3.14

Пример: равномерные псевдослучайные числа

0.08 0.72 0.87 0.46 0.15 0.96 0.040.00 0.52 0.27 0.46 0.73 0.95 0.760.10 0.25 0.02 0.11

3.15

Пример: Табличное моделирование

Сл.Число

Интервал

Время

Оче-редь

Сл.Число

Времяобсл.

Начало

Заверш

Вр.ож.

0.08 15 15 0 0.72 55 15 70 00.87 75 90 0 0.46 45 90 135 0

0.15 15 105 1 0.96 75 135 210 30

0.04 15 120 2 0.00 25 210 235 90

0.52 15 135 2 0.27 35 235 270 100

0.46 15 150 3 0.73 55 270 325 120

0.95 105 255 2 0.76 55 325 380 70

0.10 15 270 2 0.25 35 380 415 110

0.02 15 285 3 0.11 25 415 440 130

Page 26: Яцкив И. В. - Моделирование Систем. Опорный Конспект

26

3.16

Пример: выводы

Моделирование завершилось на 440 секундеЗа время моделирования было обслужено 9 клиентовИз них только 2 в очереди не стояли.Максимальная очередь – 3 клиента.среднее время ожидания – 72.2сек со стандартным отклонением 50.4сек.максимальное время ожидания – 130 сек.Коэффициент использования оператора –405/440=0.92

3.17 Моделирование случайных величин

(непрерывных )

Генерация числа, равномерно распределенного в интервале от a до b

АлгоритмГенерируем число u ~ R(0,1)Искомое число равно x=a+(b-a)u

3.18 Моделирование случайных величин

(непрерывных )

Page 27: Яцкив И. В. - Моделирование Систем. Опорный Конспект

27

3.19 Моделирование случайных величин

(непрерывных )

Генерация числа, экспоненциально распределенного с параметром

АлгоритмГенерируем число u ~ R(0,1)Искомое число равно

λ

)1ln(/1( u−)λ

λσλµ

1/=1/=

3.20 Моделирование случайных величин

(непрерывных )

Генерация числа, нормально распределенного с параметрами В основе центральная предельная теорема: Пусть Y1, Y2, …, Yn последовательность независимых одинаково распределенных переменных со средним E[Yi]= и дисперсиейD[Yi]= . СВ

имеет стандартное нормальное распределение

),σµ(N

n

nyz

y

y

n

ii

σ

µ )(1

−=

∑=

∞<2yσ

3.21

Моделирование случайных величин (непрерывных )

Алгоритм:Генерируем n чисел ui ~ R(0,1)Получаем по ЦПТ

Переходим к необходимым параметрам

.12

21

n

nuz

n

ii −

=∑

=

.µσ += zx

Page 28: Яцкив И. В. - Моделирование Систем. Опорный Конспект

28

4.1

Тема 4. Планирование модельных экспериментов

«Моделирование систем»

4.2

Основной вопрос

В какое время надо наблюдать за системой и насколько долго, чтобы получить реальную картину?

4.3

На этапе планирования экспериментов надо ответить на вопросы:

К какому классу относится моделируемая система? Какой режим работы системы интересует?В течение какого промежутка времени следует наблюдать за системой?Какой объем испытаний надо провести, чтобы обеспечить заданную точность оценок изучаемых характеристик системы?

Page 29: Яцкив И. В. - Моделирование Систем. Опорный Конспект

29

4.4

Две цели планирования экспериментов

Сокращение общего объема испытаний при соблюдении требований к достоверности и точности их результатовПовышение информативности каждого из экспериментов в отдельности

4.5

Факторное пространство

– множество внешних и внутренних параметров модели, значения которых исследователь может контролировать в ходе подготовки и проведения экспериментов

4.6

Факторы могут быть

Количественными и качественными (значения факторов называют уровнями)

Активными (их уровни исследователь может изменить) и пассивными

Page 30: Яцкив И. В. - Моделирование Систем. Опорный Конспект

30

4.7

Термины теории планирования эксперимента

Центр плана – точка, соответствующая нулевым уровням всех факторовВерхний и нижний уровни фактора –расположены симметрично относительно нулевого уровняИнтервал варьирования - некоторое число J, прибавление которого к нулевому уровню дает верхний уровень, а вычитание – нижний.

4.8 Два варианта постановки задачи планирования имитационного

эксперимента

I. Из всех допустимых выбрать такой план, который позволил бы получить наиболее достоверное значение отклика (исследуемого показателя) при фиксированном числе опытов – решение задачи в такой постановке называется стратегическим планированием эксперимента

4.9 Два варианта постановки задачи планирования имитационного

эксперимента

II. Выбрать такой допустимый план, при котором статистическая оценка функции отклика может быть получена с заданной точностью при минимальном обьемеопытов – решение задачи в такой постановке называется тактическим планированием эксперимента

Page 31: Яцкив И. В. - Моделирование Систем. Опорный Конспект

31

4.10

1. Этап – Стратегическое планирование

Нацелено на решение вопросов создания качественного плана Получение максимального обьемаинформации об исследуемой системеПри каком сочетании внешних и внутренних факторов получена будет максимальная информация о системе

4.11

Основные задачи

Идентификация факторов (ранжирование по степени влияния на исследуемый показатель). Первичные и вторичныеВыбор уровней факторов на основе требований:- уровни фактора должны заполнять весь возможный диапазон изменений- общее количество уровней по всем факторам не должно приводить к чрезмерному объему моделирования

4.12

Факторный эксперимент

ПолныйЧастичный:- рандомизированный план- латинский план- эксперимент с изменением факторов по одному- дробный факторный эксперимент

Page 32: Яцкив И. В. - Моделирование Систем. Опорный Конспект

32

4.13

2. Этап – Тактическое планирование

Нацелено на установление необходимого объема испытаний для достижения заданной точности

4.14

Вычисление объема испытаний

При отсутствии корреляции междуслуч.значениями исследуемого показателяТребование - истинное среднее лежит в интервале (y-b,y+b) с заданной доверительной вероятностью

22 /)( 1 bDzN yt α−=

4.15

Вычисление выборочной дисперсии

При неизвестном значении дисперсии выполняют пробную серию прогонов L и вычисляют на ее основе оценку

∑=

−−

=L

iLi yy

LD

1

2)(1

1

Page 33: Яцкив И. В. - Моделирование Систем. Опорный Конспект

33

5.1

ТЕМА 5:Программное обеспечение

имитационного моделирования

@TSI

@И.Яцкив,2001

5.2 Ï Î , èñï î ëüçóåì î å äëÿ

ñî çäàí èÿ èì èòàöèî í í ûõ ì î äåëåé

ßçûêè óí èâåðñàëüí ûå (ÑÈ++)ßçûêè èì èòàöèî í í î ãî ì î äåëèðî âàí èÿ (GPSS, SIMAN)Ñèñòåì û èì èòàöèî í í î ãî ì î äåëèðî âàí èÿ (WITNESS, Arena, Extend, ProModel)

5.3 Отличия языков моделирования от

универсальных

Автоматический отсчет модельного времени, имитация события и параллельно развивающихся процессовВстроенные генераторы случайных чиселНакопление и обработка статистических данныхАвтоматический вывод результатовДиагностика логических ошибок

5.4 История развития имитационного ПО

Период поиска (1955-60)

Поиск идей «как?»

K.Tocher, D.OwenGeneral Simulation

Program (1960)

Page 34: Яцкив И. В. - Моделирование Систем. Опорный Конспект

34

5.5 История развития имитационного ПО

Период «пришествия»(1961-65)

Создание основ большинства

современных языков моделирования

GPSS (Gordon)SIMSCRIPT (Markowitz) основан на Fortran

GASP (Kiviat) в начале основан на ALGOL,потом на Fortran

SIMULA - расширение ALGOL

CSL

5.6 История развития имитационного ПО

Период формирования(1966-70)

Расширение возможностей каждого языка

GPSS/360 (7 версий различных групп)SIMSCRIPT IIECSLSIMULA (появление классов)

5.7 История развития имитационного ПО

Период распространения (1971-78)

Основная задача –упростить процесс моделирования

GPSS/NORDEN(visual online environment)GPSS/H(O.Henriksen,1977, IBM mainfraimes)GASP-IV(A.Pritsker)SIMULA

5.8 История развития имитационного ПО

Период обьединений и перерождений (1979-86)

Адаптация к новым поколениям ЭВМ

SLAM II (A.Pritsker)SIMAN (D.Pegden) – первый язык подMS-DOS

Page 35: Яцкив И. В. - Моделирование Систем. Опорный Конспект

35

5.9 История развития имитационного ПО

Современный период (1987-...)Внедрениеанимации анализаторов данныхупрощение процесса моделирования

Появление систем нового типа: ARENA, Witness и др

5.10

SIMNETNETWORK

Имиатции сетевых моделей

Сетевой

SLAMHEДИС

КомбинированныйНепрерывно-дискретный

DYNAMOMIMIC

Апроксимация диф.уравнений

Непрерывный

АИССАПАС

АгрегатныйАгрегативный

SIMSCRIPTSIMULAGPSS

СобытийныйПроцессныйТранзактный

Дискретный

ПримерыСпособ имитацииТип модели

В настоящее время известно более 500 систем имитационного моделирования

5.11 Критерии выбора ПО

I. Удобство построения модели

Многообразие типов моделей (ориентированные на процессы, события...)Возможность подключения модулей, написанных на других языкахАнализ входных данныхНабор генераторовУдобный синтаксисГрафическое построение моделей

5.12 Критерии выбора ПО

II. Свойства по выполнению модели

Скорость выполненияОграничения на размер модели, количество переменных, атрибутовОтладчикНаличие текущей информация о процессе моделирования

Page 36: Яцкив И. В. - Моделирование Систем. Опорный Конспект

36

5.13 Критерии выбора ПО

III. Анимация и визуализация

Размерность (2D, 3D)Возможность импортирования рисунковБиблиотека объектовУправление скоростью анимацииТребования к hardwareПеремещение обьектов или указание их пути

5.14 Критерии выбора ПО

IV. Возможности анализа иэкспериментирования

Менеджер сценария, прогонаВозможности независимых повторенийПолучение стационарных характеристикСтандартизованный отчетОтчет по запросуРасширенный статистический анализБизнес-графикиЭкспортирование файлов

5.15 Критерии выбора ПО

V. Поддержка продавца, документация

ОбучениеПолнота документацииНабор примеровHelpПоддержка новых версий

Page 37: Яцкив И. В. - Моделирование Систем. Опорный Конспект

37

6.1 ТЕМА 6: GPSS – General Purpose Simulation System

1961г. Дж.Гордон (IBM)Первоначальные задачи: моделирование коммуникационных и ВСОснован на блочном представлении моделиНедостаток ранних версий – отсутствие алгоритмических средств вычислений

6.2

Версии GPSS

GPSS/PCGPSS/HGPSSV

GPSS/WORLD

6.3 Обьекты моделирования на

GPSS

Вычислительные системы и сетиТехнологические и производственные процессыСистемы обработки и передачи информацииБизнес-процессыТранспортные процессы и т.д.

6.4

При построении модели

В системе выделяется конечное множество абстрактных элементов, описывающих реальныеэлементы системы

Выделенным множествамэлементов и операций ставятся в соответствие множество обьектов языка GPSS

Page 38: Яцкив И. В. - Моделирование Систем. Опорный Конспект

38

6.5 Модель системы на GPSS строится путем обьединения обьектов в некоторую фиксированную логическую структуру

Выполенение модели –продвижение транзактов через

блоки

6.6

V, BVFN

ПеременныеФункции

Вычислительная

FSL

УстройстваПамяти Логич.переключ

Аппаратная

-БлокиОперационная

-ТранзактыДинамическая

Мнемон обозн.

Типыобьектов

Категории обьектов

Обьекты языка GPSS

6.7

QT

ОчередиТаблицы

Статистическая

C

G

Списки пользователяФункции

Группирующая

XM

ЯчейкиМатрицы ячеек

Запоминающая

Мнемон обозн.

Типыобьектов

Категории обьектов

Обьекты языка GPSS (продолжение)

6.8 Транзакты

(сообщения, элементы потока)

Описывают единицы исследуемых потоков (заявок на обслуживание)

Используются для задания некоторых специфических условий моделирования

Page 39: Яцкив И. В. - Моделирование Систем. Опорный Конспект

39

6.9

Блоки

Задают логикуфункционирования имитационной

модели (ИМ) системы и определяют пути движениятранзактов между обьектами

аппаратной категории

6.10

Блоки

Почти все изменения состояний ИМ происходят в результате входа транзактов в блоки и выполнения блоками своих функций

Основные функции:

Создание и уничтожение транзактовИзменение числовых атрибутов обьектовЗадержка транзактов на указанное времяИзменение маршрута движения транзакта и др.

6.11 Объекты аппаратной

категории

Служат для описания единиц оборудования систем. Воздействуя на эти обьекты, транзакты изменяют их состояния и влияют на движение

других транзактов

Устройство(прибор)Память(многоканальное устройство)Логические ключи

6.12 Обьекты вычислительной

категории

Описывают связи между элементами системы, задаваемые логическими или

аналитическими соотношениями

Арифметические переменныеБулевские переменныеФункции

Page 40: Яцкив И. В. - Моделирование Систем. Опорный Конспект

40

6.13

Статистические обьекты

Обеспечивают вычисление и представление в стандартном виде

показателей эффективности функционирования системы

• Очереди• Таблицы

6.14

Запоминающие обьекты

Служат для задания условий моделирования, хранения, накопления,

обработки информации, не предусмотренной стандартными

средствами

Ячейки (сохраняющие величины)Матрицы

6.15 Объекты группирующей

категории

Содержат информацию о транзактах, находящихся в модели

6.16 Продвижение транзактов по модели может приводить к наступлению

следующих событий

Поступление заявки в системуЗанятие (освобождение) места в накопителеЗанятие (освобождение) канала обслуживанияПрерывание обслуживания

Page 41: Яцкив И. В. - Моделирование Систем. Опорный Конспект

41

6.17 Транзакты помещаются в

один из списков

текущих событийбудущих событийпрерыванийсинхронизируемых транзактовпользователя

6.18 Управляющая программа

GPSS

Обеспечивает продвижение транзактов по заданным программистом маршрутам и помещенеие транзактов в спискиИмитирует наступление событий в модели, осуществляет их обработкуОрганизует изменение модельного времениОсуществляет сбор, обработку и выдача результатов имимтационных экспериментов в стандартном виде

6.19

Примеры систем М/М/1

Транзакты

ЗапросыСообщениеКораблиДетальПациент

Устройство

БДКанал связиПричалСтанокДоктор

6.20

Модель системы M/M/1

GENERATE (Exponential(1,0,10))QUEUE BUFFERSEIZE PRIBORDEPART BUFFERADVANCE (Exponential(1,0,12))RELEASE PRIBORTERMINATE 1

Page 42: Яцкив И. В. - Моделирование Систем. Опорный Конспект

42

7.1

ТЕМА 7: Основныеблоки GPSS

7.2 Структура программы на

GPSS• Операторы описания

– начальных значений генераторов,– таблиц, – переменных, сохраняемых величин, –функций, – емкости МКУ, – начальных значений логических переключателей

• Блоки программы

7.3 GENERATE A,B,C,D,E

• GENERATE 60• GENERATE 60,20• GENERATE (NORMAL(1,20,2))• GENERATE 5,FN$TYPE• GENERATE 60,20,10• GENERATE 60,,,5• GENERATE

(UNIFORM(1,40,80)),,,,4

7.4

PRIORITY A

• PRIORITY 5• PRIORITY FN$TYPE

Page 43: Яцкив И. В. - Моделирование Систем. Опорный Конспект

43

7.5 TERMINATE A

• TERMINATE• TERMINATE 1• TERMINATE 5

7.6 Блоки, связанные с

устройством

• SEIZE A• RELEASE A

• SEIZE SERVER• RELEASE SERVER

7.7 ADVANCE A,B

• ADVANCE 60• ADVANCE 60,20

• Вр.обсл. по нормальному закону N(20,2)• ADVANCE (NORMAL(1,20,2))

• Вр.обсл. по закону Эрланга Erl(2,1/20)• ADVANCE (EXPONENTIAL (1,0,20))• ADVANCE (EXPONENTIAL (1,0,20))

7.8

Блоки, связанные с МКУ

• Name STORAGE exp– BUFER STORAGE 3

– ENTER A,B– ENTER BUFER– ENTER BUFER,3

– LEAVE A,B– LEAVE BUFER– LEAVE BUFER,3

Page 44: Яцкив И. В. - Моделирование Систем. Опорный Конспект

44

7.9 Блоки, собирающие статистику об очереди

• QUEUE A,B» QUEUE RINDA» QUEUE RINDA,2

• DEPART A,B» DEPART RINDA» DEPART RINDA,2

7.10 ПЕРЕМЕННЫЕ

• ОПИСАНИЕ

NAME VARIABLE EXP

• ИСПОЛЬЗОВАНИЕ – ПОТОК ЭРЛАНГАERL VARIABLE(EXPONENTIAL(1,0,0.25))+(EXPONENTIAL(1,0,0.25))

GENERATE V$ERL

8.1

Тема 8: Стандартные числовые атрибуты (SNA)

- параметры состояния в моделировании. Возвращают значения, которые можно

использовать в операндах блоков и выражениях GPSS

8.2 Атрибуты транзактов GPSS – описывают

свойства транзактов

• PR- приоритет• М1 – время пребывания в системе• MPj - транзитное время = текущее значение модельного времени - значение зафиксированное в j-ом параметре

• Параметры транзактов–Pj–P$name

Page 45: Яцкив И. В. - Моделирование Систем. Опорный Конспект

45

8.3 ASSIGN A,B

• ASSIGN 1,5• ASSIGN 1+,1• ASSIGN 2,FN$TYPE

• ASSIGN DLINA,2 - P$DLINAприсваивается значение 2

8.4 Фиксация транзитного

времени

MARK A

MARK 2…ASSIGN 1,MP2

8.5 Сохраняемые величины

(ячейки)• Описание

– INITIAL X1,0– INITIAL X$COUNT,5

• Изменение– SAVEVALUE A,B

• SAVEVALUE 1,10• SAVEVALUE 1+,1• SAVEVALUE COUNT-,1

8.6

СЧА блоков

• N$label – число транзактов, вошедших в блок за все время моделирования

• W$label – текущее содержимое блока

Page 46: Яцкив И. В. - Моделирование Систем. Опорный Конспект

46

8.7 СЧА для устройств

• F$name – 1, если устройство занято, 0 - иначе

• FC$name – сколько транзактов занималоустр-ство

• FI$name – 1, если устройство захвачено транзактом в режиме Interrupt, 0 -иначе

• FR$name –коэффициент использования устр-ства

• FT$name – среднее время занятия транзактом

• FV$name – 1, если устр-ство доступно, 0 - иначе

8.8 СЧА для очередей

• Q$name – текущее содержимое очереди

• QA$name – среднее содержимое очереди

• QC$name – общее количнство входов в очередь

• QM$name – максимальное содержимое очереди

• QZ$name – количество транзактов с «нулевым входом»

• QT$name – среднее время пребывания в очереди

• QX$name – среднее время пребывания – за вычетом нулевых входов

8.9 СЧА для МКУ

• R$name – количество незанятых каналов• S$name – количество занятых каналов• SA$name – среднее количество занятых каналов• SC$name – общее число занятий каналов• SE$name – 1- если полностью не занято, 0 -иначе• SF$name – 1- если полностью занято, 0 - иначе• SR$name – коэффициент использования• SM$name – максим. кол-во используемых каналов• ST$name – среднее кол-во используемых каналов• SV$name – 1- если доступно, 0- иначе

8.10 Логические переключатели

(LS$name)

Два состояния• Set – “1”• Reset – “0”

СЧАLS$name – возвращает 1 при включенном переключателе, 0 – иначе.

Page 47: Яцкив И. В. - Моделирование Систем. Опорный Конспект

47

8.11 Логические переключатели

(LS$name)Описание

INITIAL A INITIAL LS$LOCK

Изменение состоянияLOGIC X A

X – вспомогательный операнд:• R – выключить• L – включить• I – инвертировать

LOGIC R LOCK

8.12 Блоки управления движением

транзактов

• GATE• TEST

• TRANSFER

8.13 GATE X A,B

• Направляет движение транзактов в зависимости от условий, заданных полями операндах

• X – вспомогательный операнд условия. Определяет проверяемое условие относительно объекта, имя которого указано в A

• B – метка альтернативного выхода

8.14 Условия относительно

устройства• FNV – устройство не доступно• FV – устройство доступно• I – устройство захвачено• NI – устройство не захвачено• NU – устройство не занято• U – устройство занято

• GATE NU BUFER• GATE U BUFER,METKA

Page 48: Яцкив И. В. - Моделирование Систем. Опорный Конспект

48

8.15 Условия относительно МКУ

• SE – МКУ пусто• SF – МКУ полностью занято• SNE – МКУ не пусто• SNF – МКУ не полно• SNV – МКУ не доступно• SV – МКУ доступно

• GATE SNF SERER• GATE SV BUFER,METKA

8.16 Условия относительно

логических переключателей• LS – ЛП включен• LR – ЛП выключен

• GATE LS LOCK• GATE LS LOCK,METKA

8.17 TEST X A,B,C

- направляет транзакты в зависимости от результатов сравнения значения в операндах A и B

X – вспомогательный операнд условия:E, G, L, LE, GE, NE

TEST L Q$BUFER,5TEST E PR,1,METKA

8.18

TRANSFER A,B,C,D

• ПЕРЕНАПРАВЛЯЕТ ПОТОК ТРАНЗАКТОВ В НОВЫЙ БЛОК В ЗАВИСИМОСТИ ОТ УСЛОВИЯ, ОПИСАННОГО В ПОЛЕ

ОПЕРАНДА A

• ДЕВЯТЬ РЕЖИМОВ РАБОТЫ БЛОКА

Page 49: Яцкив И. В. - Моделирование Систем. Опорный Конспект

49

8.19 Безусловный режим

A – пробелТранзакт перемещается в блок, метка которого указана в поле B

– TRANSFER ,METKA

8.20

Вероятностный режим

• A – ‘.XXX’• B –метка блока• C –метка блока• Активный транзакт перемещается с вероятностью, указанной в операнде A, в блок, метка которого указана в поле C, с дополняющей вероятностью в блок, метка которого указана в поле B

• TRANSFER .75,METKA,OUT

8.21 Режим BOTH

• A – ‘BOTH’• B – метка блока• C – метка блока• Активный транзакт перемещается в первый блок, который его примет. Сначала тестируется блок, метка которого указана в поле B, если он отказывает во входе, то в блок, метка которого указана в поле С, если он отказал, то снова в B и так пока какой-нибудь блок его не примет

• TRANSFER BOTH,METKA,OUT

8.22

Режим ALL

• A – ‘ALL’• B –метка первого блока цикла• C –метка последнего блока цикла• D – инкремент числа блоков

TRANSFER ALL,MET1,MET2,5• MET1 SEIZE ...

4 БЛОКА

• SEIZE ...4 БЛОКА

• MET2 SEIZE …

Page 50: Яцкив И. В. - Моделирование Систем. Опорный Конспект

50

8.23 Режим PICK

• A – ‘PICK’• B – метка первого блока • C – метка последнего блока

– НАЗНАЧЕНИЕ ДЛЯ ТРАНЗАКТА ВЫБИРАЕТСЯ СЛУЧАЙНЫМ ОБРАЗОМ

TRANSFER PICK,MET1,MET2• MET1 SEIZE ...

……..• MET2 SEIZE …

8.24

Остальные режимы

• FUNCTION - ‘FN’ –направление движения транзакта определяется через значение функции

• PARAMETER –’P’ –направление движения определяется на основе значения параметра транзакта

• SUBROUTINE –’SBR’ –режим подпрограммы• SIMULTANEOUS – ‘SIM’ –переход к блоку в зависимости от того установлен ли для транзакта режим ‘delay’

8.25 Таблицы

• Тип:обычная

Оператор описанияNAME TABLE A,B,C,D

A- табулируемая величина, B – правая граница 1-го интервала, C –ширина интервала, D - число интервалов

TABULATE A (A- имя таблицы)

8.26 Таблицы

• Тип: связанная с очередью

Оператор описанияNAME QTABLE A,B,C,D

A- имя очереди,B – правая граница 1-го интервала,C –ширина интервала, D - число интервалов

Page 51: Яцкив И. В. - Моделирование Систем. Опорный Конспект

51

Пример 1 • Постановка задачи Система с очередями имеет один сервер и обслуживает поступающие заявки двух

типов. Заявки первого типа поступают в систему с интервалом времени, распределённым равномерно в [35, 75] мин. Заявки второго типа поступают в систему с интервалом времени 20 мин. Они обслуживаются сервером со временем обслуживания: заявки первого типа – равномерно распределённым в интервале [16, 30] мин, заявки второго типа – с постоянным временем 25 мин. Если сервер занят, когда поступает заявка, то заявка присоединяется к очереди с дисциплиной обслуживания FIFO.

Время моделирования Т = 500 мин. Очередь ограничена двумя заявками. • Текст программы

VAR VARIABLE (N$GEN1+N$GEN2-N$SER1-N$SER2)/(N$GEN1+N$GEN2) * segment 1 GEN1 GENERATE 55,20 TEST L Q$BUFER,2,OUT1 SER1 QUEUE BUFER SEIZE SERVER DEPART BUFER ADVANCE 23,7 RELEASE SERVER OUT1 TERMINATE * segment 2 GEN2 GENERATE 20 TEST L Q$BUFER,2,OUT2 SER2 QUEUE BUFER SEIZE SERVER DEPART BUFER ADVANCE 25 RELEASE SERVER OUT2 TERMINATE * segment 3 timer GENERATE 500 SAVEVALUETOT,V$VAR TERMINATE 1

• Результаты (файл статистики) GPSS World Simulation Report - lb3.85.1 Tuesday, October 23, 2001 20:44:54 START TIME END TIME BLOCKS FACILITIES STORAGES 0.000 500.000 19 1 0 NAME VALUE BUFER 10005.000 GEN1 1.000 GEN2 9.000 OUT1 8.000 OUT2 16.000 SERV1 3.000 SERV2 11.000 SERVER 10007.000 TOT 10009.000 VAR 10000.000 LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY GEN1 1 GENERATE 8 0 0

2 TEST 8 0 0 SERV1 3 QUEUE 4 0 0 4 SEIZE 4 0 0 5 DEPART 4 0 0 6 ADVANCE 4 0 0 7 RELEASE 4 0 0

Page 52: Яцкив И. В. - Моделирование Систем. Опорный Конспект

52

OUT1 8 TERMINATE 8 0 0 GEN2 9 GENERATE 25 0 0 10 TEST 25 0 0 SERV2 11 QUEUE 18 2 0 12 SEIZE 16 0 0 13 DEPART 16 0 0 14 ADVANCE 16 1 0 15 RELEASE 15 0 0 OUT2 16 TERMINATE 22 0 0 17 GENERATE 1 0 0 18 SAVEVALUE 1 0 0 19 TERMINATE 1 0 0 FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY SERVER 20 0.960 24.000 1 32 0 0 0 2 QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY BUFER 2 2 22 1 1.398 31.778 33.291 0 SAVEVALUE RETRY VALUE TOT 0 0.333 FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE 32 0 516.363 32 14 15 36 0 520.000 36 0 9 34 0 528.535 34 0 1 37 0 1000.000 37 0 17 Из полученного отчета видно, что: – моделирование начинается в момент 0 и заканчивается в момент 500; – используется 19 блоков и одно одноканальное устройство; – используется 10 пользовательских имён, которым присвоены номера; – было сгенерировано 8 транзактов 1-го типа и 25 транзактов 2-го типа; – в очередь попало 4 транаякта 1-го типа и 18 транзактов 2-го типа; – в сервер вошли 4 транзакта 1-го типа и 16 транзактов 2-го типа; – были обслужены 4 транзакта 1-го типа и 15 транзактов 2-го типа; – систему покинули 8 транзактов 1-го типа и 22 транзакта 2-го типа; – на момент окончания обслуживания в системе остались 2 транзакта 2-го типа в очереди и 1 транзакт 2-

го типа в сервере; – всего было 20 вхождений в сервер; – коэффициент занятости сервера равен 0.96; – среднее время обслуживания одного транзакта равно 24 мин.; – на конец обслуживания сервер занятым транзактом с номером 32, и 2 транзакта ожидают

обслуживания; – максимальная длина очереди равна 2; – на конец обслуживания в очереди остались 2 транзакта; – всего в очередь было 22 вхождения; – транзактов с 0-м входом было 1; – среднее кол-во эл-ов в очереди 1.398; – среднее время пребывания в очереди с учётом транзакта с 0-м входом равно 31.778; – среднее время пребывания в очереди без учёта транзакта с 0-м входом равно 33.291; – в цепи будущих событий находится транзакт с номером 32 и временем окончания обслуживания

сервером 516.363 мин; – в момент времени 520 мин. определена генерация транзакта типа 2; – в момент времени 528.535 мин. определена генерация транзакта типа 1; – окончание следующего цикла моделирования определено в момент 1000 мин; – вероятность отказа заявке в обслуживании равна 0.333 Пример 2

• Постановка задачи В систему поступают заявки, интервал между которыми распределён следующим

образом: Мин. 100 200 300 400

Page 53: Яцкив И. В. - Моделирование Систем. Опорный Конспект

53

Вер. 0.1 0.25 0.45 0.2 Система состоит из 2-х частей. В 1-й части может одновременно находиться 10

заявок, остальные поступают сразу во 2-ую часть. В первой части системы заявки поступают на любой из свободных приборов:

PRIB1 (100÷10), PRIB2 (80÷10), PRIB3 (50÷10) или ожидают в очереди с дисциплиной LIFO.

Во второй части заявки, прошедшие 1-ю часть, получают более высокий приоритет при обслуживании на приборе PRIB4 (20÷5).

Требуется: 1) моделировать до тех пор, пока на PRIB4 не будет обслужено 20 заявок; или не

пройдет 1000 единиц модельного времени, 2) подсчитать количество заявок, обслуженных во 2-й части системы, 3) оценить распределение времени пребывания заявок в системе. • Tекст программы

POST FUNCTION RN1,D4 .10,100/.35,200/.8,300/1,400 PART1 STORAGE 10 INITIAL X$STOCK,0 TIME TABLE M1,15,20,10 GENERATE 1,FN$POST TRANSFER BOTH,MM1,MM2 MM1 ENTER PART1 MM7 GATE U PRIB1,MM3 GATE U PRIB2,MM4 GATE U PRIB3,MM5 LINK LINE1,LIFO MM3 SEIZE PRIB1 ADVANCE 100,10 RELEASE PRIB1 TRANSFER ,MM6 MM4 SEIZE PRIB2 ADVANCE 80,10 RELEASE PRIB2 TRANSFER ,MM6 MM5 SEIZE PRIB3 ADVANCE 50,10 RELEASE PRIB3 MM6 UNLINK LINE,MM7,1 LEAVE PART1 PRIORITY 1 SEIZE PRIB4 ADVANCE 20,5 RELEASE PRIB4 TABULATE TIME SAVEVALUE STOCK+,1 TEST NE X$STOCK,20,MM10 MM8 TERMINATE GENERATE 1000 MM10 TERMINATE 1 START 1

Page 54: Яцкив И. В. - Моделирование Систем. Опорный Конспект

54

9.1

ТЕМА 9: ДОПОЛНИТЕЛЬНЫЕВОЗМОЖНОСТИ ЯЗЫКА

9.2 Функции

(FN$NAME)• Типы функций:

– Непрерывная - C– Дискретная - D

Оператор описанияNAME FUNCTION A,BX(1),Y(1)/X(2),Y(2)/…/X(n),Y(n)

A- аргумент, B – тип функции+число точек ее задающих

9.3 Непрерывная функция

TIME FUNCTION RN1,C40,0/0.1,100/0.4,200/1.0,300

GENERATE 1,FN$TIMEИЛИ

ASSIGN 1,FN$TIMEADVANCE P1

9.4 Дискретная функция

TYPE FUNCTION RN1,D40,0/0.1,1/0.4,2/1.0,3

ASSIGN 1,FN$TYPETEST E P1,3,OUT

Page 55: Яцкив И. В. - Моделирование Систем. Опорный Конспект

55

Пример (Schr4d1.gps) * Function Definition * Mean FUNCTION RN1,D5 ;Distribution of Mean Service Time .1,450/.29,750/.61,1000/.85,1500/1,3000 * * Storage Capacity Definition * Telrs STORAGE 8 ;Provide 8 Tellers * * Model Segment 1 * GENERATE (Exponential(1,0,180)) ;Customers arrive ASSIGN 1,(Exponential(1,0,FN$Mean)) ;Set P1=ServiceTime QUEUE One ;Enter the line ENTER Telrs ;Engage a teller DEPART One ;Leave the line ADVANCE P1 ;Transact business LEAVE Telrs ;Free the teller TERMINATE ;Leave the bank * * Model Segment 2 * GENERATE 180000 ;Timer arrives after5h. TERMINATE 1 ;Shut off the run

Page 56: Яцкив И. В. - Моделирование Систем. Опорный Конспект

56

9.5 Блоки управления цепью

пользователяLINK A,B,C – поместить транзакт в ЦП с именем, указанным в операнде A

B – дисциплина размещения транзактов в ЦП (FIFO, LIFO, Pj)С – альтернативный выход (метка перед блоком SEIZE)

LINK LINE1,LIFO,METKA1METKA1 SEIZE CHANEL

….

9.6 Блоки управления цепью

пользователяUNLINK A,B,C – переместить транзакт из ЦП с именем, указанным в операнде A вблок, метка которого указана в поле B

С – количество перемещаемыхтранзактов

LINK LINE1,LIFO,METKA1METKA1 SEIZE CHANEL

….RELEASE CHANELUNLINK LINE1,METKA1,1

9.7 Цепь пользователя перед МКУ

ASSIGN 1,FN$DLINAGATE SF SERVER,MET1LINK LINE1,P1

MET1 ENTER SERVER….LEAVE SERVERUNLINK LINE1,MET1,1

Page 57: Яцкив И. В. - Моделирование Систем. Опорный Конспект

57

Пример (Schr7a1.gps) – BANK MODEL * Function Definition Mean FUNCTION RN1,D5 ;Distribution of Mean Service Time .1,450/.29,750/.61,1000/.85,1500/1,3000 * * * Storage Capacity Definition * Telrs STORAGE 8 ;Provide 8 Tellers * * Model Segment 1 * GENERATE (Exponential(1,0,180)) ;Customers arrive ASSIGN 1,(Exponential(1,0,FN$Mean)) ;Set P1 = Service Time PRIORITY 1 ;Set high priority for later * service -completion event QUEUE One ;Enter the line GATE SNF Telrs,Wait ;Is a teller available Grab ENTER Telrs ;Yes capture a teller DEPART One ;Leave the line ADVANCE P1 ;Transact business LEAVE Telrs ;Free the teller UNLINK Line,Grab,1 ;Send next waiting customer * (if any) to capture TERMINATE ;Leave the bank Wait LINK Line,FIFO ;No, go onto back of user chain * * Model Segment 2 * GENERATE 180000 ;Timer arrives after 5 hours TERMINATE 1

Page 58: Яцкив И. В. - Моделирование Систем. Опорный Конспект

58

9.8 Случайное размещение в

очереди • SELECT O A,B,C,D,E,F - выбрать имя сущности и присвоить параметру транзактаО – условный или логический оператор:FNV, FV, I, LS, LR, NI, NU, SE, SF, SNE, SNF, SNV, SV, U, E, G, GE, L, LE, MIN, MAX, or NE.A – имя или номер параметра транзакта, которому присваивается имя сущности

9.9

• B – начальный номер объекта• C – конечный номер объекта • D – значение, которое используется для сравнения с Е-операндом

• Е – имя класса стандартных атрибутов. D и E требуется в условном режиме

• F – номер альтернативного блока

Пример (Schr7a2.gps) – BANK MODEL * Function Definition * Mean FUNCTION RN1,D5 ;Distribution of Mean Service Time .1,450/.29,750/.61,1000/.85,1500/1,3000 * * Model Segment 1 * GENERATE (Exponential(1,0,180)) ;Customers arrive ASSIGN 1,(Exponential(1,0,FN$Mean)) ;Set P1 = service time PRIORITY 1 ;Set high priority for later * Service -completion event SELECT E 2,1,8,0,F,Queup ;Is teller available? Line QUEUE P2 ;Update segregated line data QUEUE 10 ;Update aggregate line data SEIZE P2 ;Capture a teller DEPART 10 ;Update aggregate line data DEPART P2 ;Update segregated line data ADVANCE P1 ;Transact business RELEASE P2 ;Free the teller TERMINATE ;Leave the bank Queup SELECT MIN 2,1,8,,Q ;Set P2 = number of shortest line TRANSFER ,Line ;Go queue up * GENERATE 180000 ;Timer arrives after 5 hours TERMINATE 1 ;Shut off the run

Page 59: Яцкив И. В. - Моделирование Систем. Опорный Конспект

59

10.1

Тема 10:АНСАМБЛИ ТРАНЗАКТОВ

10.2 Два способа ввода

транзактов в модель

• Блок GENERATE – генерирует первый транзакт нового ансамбля

• Блок SPLIT – генерирует транзакты, которые становятся членами ансамбля транзакта-родителя

10.3

Расщепление транзактов

SPLIT A,B – при входе в блок транзакта-родителя образуются транзакты потомки

А – число транзактов-потомковВ – метка блока, куда отправятся

транзакты –потомки

SPLIT 5,METKA1SPLIT 5,MET,2

10.4 Свойства транзактов-

потомков- тот же уровень приоритета, что и у родителя

- то же число и значения параметров, что и у родителя

- отметка времени потомков совпадает с отметкой времени родителей

Page 60: Яцкив И. В. - Моделирование Систем. Опорный Конспект

60

10.5 Блоки, выполнение которых зависит от свойств принадлежности ансамблю

ASSEMBLEGATHERMATCHGATE

10.6 Вывод членов ансамбля из

моделиASSEMBLE A – собрать (соединить) в блоке число транзактов одного семейства, указанное в операнде A и (А-1) транзактов вывести из модели, а первый отправить в следующий блок

А – счетчик соединения

10.7 Накопление членов ансамбля

GATHER A – накопление в блоке числа транзактов одного семейства, указанное в операнде A, далее всем накопленным транзактам разрешается покинуть этот блок и перейти в следующий блок

А – счетчик сборки

10.8 Синхронизация движения транзактов ансамбля

MATCH A – синхронизировать движение транзактов. В операнде A указывается метка сопряженного блока.

Когда транзакт входит в блок:- если сопряженный блок содержит транзакт, который является членом того же семейства, то пара найдена и транзакты начинают движение

- если в сопр.блоке нет транзакта, то активный транзакт выводится из ЦТС и ожидает пару, находясь в цепи синхронизации

Page 61: Яцкив И. В. - Моделирование Систем. Опорный Конспект

61

10.9 Организовать цикл

• LOOP A,B -А – номер параметра циклаВ – метка блока

Когда транзакт входит в блок, считывается значение параметра транзакта (А), уменьшается на единицу, если = 0 , то переход к следующему блоку, если не равно 0, то на блок с меткой в поле В

ТЕМА 11: ЗАХВАТ ПРИБОРА

• Понятие о захвате прибора Транзакты, желающие воспользоваться прибором, должны, как правило, ждать своей очереди,

если прибор занят. Однако иногда системы строятся таким образом, чтобы разрешить вновь прибывающему транзакту заместить транзакт на занятом приборе. Это замещение заключается в том, что прибор отбирается у еще не обслуженного до конца транзакта и вновь пришедшему транзакту разрешается немедленное его занятие. В это время замещенный транзакт либо может ждать до тех пор, пока прибор не освободится вновь, либо может пойти куда-либо с намерением или без намерения вернуться впоследствии к прибору, с которого его сняли.

Если разрешена возможность захвата прибора, немедленно возникает множество вопросов. Вот некторые из них.

1. При каких условиях разрешается захват? 2. Какова судьба захваченного транзакта? (На самом деле захватывается не транзакт, а

прибор, который был занят транзактом. Для простоты изложения, однако, будем использовать такие обороты, как «захваченный транзакт».

3. Когда захваченный транзакт подвергается воздействию? Происходит ли это во время возникновения захвата или позже, в зависимости от положения и состояния транзакта, подвергшегося захвату?

• Необходимые условия для возникновения захвата

Захват может произойти при следующих условиях.

1. Захват происходит только тогда, когда транзакт, занимающий приборЮ сам не является «захватчиком». Заметим, что уровень приоритета транзакта не играет в данном случае роли. Заметим также, что эта возможность позволяет осуществлять захват только на «одном уровне». Захват на одном уровне означает, что только один замещенный транзакт может ожидать повторного занятия данного прибора.

2. Захват происходит тогда, когда уровень приоритета возможного «захватчика» превышает уровень приоритета текущего транзакта. В роли захватчика может выступать и сам захваченный транзакт.

Каждая из этих возможностей может быть применена к одному и тому же прибору в данной модели. Например, в точке А модели транзакту может быть разрешено захватить пятый прибор только в случае, если текущий пользователь сам не является захватчиком, а в точке В транзакт способен захватить пятый прибор лишь тогда, когда его приоритет выше, чем у текущего транзакта.

• Различные возможности для захваченных транзактов Для захваченных транзактов существуют три возможности дальнейшей обработки.

1. Транзакт может ждать, пока прибор вновь не станет для него доступным.

Page 62: Яцкив И. В. - Моделирование Систем. Опорный Конспект

62

2. Может пойти в какую-либо точку модели, не повторяя попытки занять прибор, с которого его сняли.

3. Может пойти в какую-либо точку модели, претендуя на пользование прибором, с которого его сняли.

При расмотрении возможности 1 предположим сначала, что разрешен только один уровень захвата. Предположим, что некоторый транзакт занял прибор и в процессе его использования был снят с этого прибора другим транзактом. Предположим, что во время захвата транзакт находится либо 1) в цепи будущих событий, чему соответствует его нахождение в блоке ADVANCE, где имитируется время пребывания на приборе, либо 2) в цепи текущих событий, готовый в этот момент модельного времени освободить прибор. Если транзакт находится в цепи будущих событий, интерпретатор выводит его оттуда и помещает в специальную цепь, называемую цепью прерывания, где он находится в пассивном состоянии. Перед этим вычисляется и запоминается «оставшееся время обслуживания» прерванного транзакта, т.е. определяется, сколько времени транзакту осталось занимать прибор перед его освобождением. Как только транзакт, захвативший прибор, закончит обслуживаться на нем, интерпретатор автоматически переводит прерванный транзакт на повторное занятие прибора. Это требует вывода захваченного транзакта из цепи прерывания и помещения его обратно в цепь будущих событий, где он будет находиться, пока не истечет ранее подсчитанное «оставшееся время обслуживания».

Цепи прерывания – четвертый тип цепей, используемых интерпретатором GPSS. У каждого прибора имеется цепь прерывания, связанная с ним. Ввод транзакта в цепь прерывания и вывод его оттуда обеспечиваются интерпретатором автоматически. Транзакт может попасть в эту цепь только одним путем – если его прерывают в период использования им некоторого прибора. Пока транзакт находится в цепи прерывания, он не вносит никакого вклада в счетчик текущего содержимого любого блока GPSS-модели.

Два других возможных варианта для захваченных транзактов не связаны с помещением их в пассивное состояние в цепь прерывания в момент захвата; вместо этого они остаются в модели в активном состоянии.

• Блоки моделирования прерывания Для моделирования захвата (прерывания) одноканального устройства вместо блоков SEIZE и

RELEASE используются соответственно блоки PREEMPT (захватить) и RETURN (вернуть). Блок PREEMPT имеет следующий формат:

имя PREEMPT A,B,C,D,E В поле A указывается имя или номер устройства, подлежащего захвату. В поле B

кодируется условие захвата. Если это поле пусто,то захват возникает, если обслуживаемый транзакт сам не является захватчиком. Если же в поле B запис ан операнд PR, то захват возникает, если приоритет транзакта-захватчика выше, чем приоритет обслуживаемого транзакта.

Поля C, D и E определяют поведение транзактов, обслуживание которых было прервано. Поле C указывает имя блока, в который будет направлен прерванный транзакт. В поле D может быть указан номер или имя параметра прерванного транзакта, в который записывается время, оставшееся этому транзакту до завершения обслуживания на устройстве. При отсутствии операнда в поле E прерванный транзакт сохраняет право на автоматическое восстановление на устройстве по окончании захвата. Если же в поле E указан операнд RE, то транзакт теряет такое право.

Блок RETURN имеет единственный операнд A, содержащий имя или номер устройства, подлежащего освобождению от захвата.

Блоки PREEMPT и RETURN могут быть использованы для моделирования СМО с абсолютными приоритетами. В простейших случаях, при одном уровне захвата, в блоке PREEMPT используется единственный операнд A. При этом прерванный транзакт переводится симулятором из списка будущих событий в так называемый список прерываний устройства, а по окончании захвата устройства возвращается в список будущих событий с предварительно вычисленным временем занятия устройства для продолжения обслужив ания.

Page 63: Яцкив И. В. - Моделирование Систем. Опорный Конспект

63

СПИСОК ЛИТЕРАТУРЫ

1. Томас Стерн. Учимся моделировать. - http://www.osp.interline.ru/nets/1998/05/index.htm 2. Jerry Banks, John S.Carson ll, Barry L.Nelson, David Nicol. Discrete-Event System Simulation.- Prentice

Hall, New Jersey, 2000. – 594p. 3. Law Averill.M., Kelton W.D. Simulation Modelling and Analysis. –McGraw-Hill,1991. –760p. 4. Yatskiv I. Introduction to Simulation Modelling. – Riga: Transport and Telecommunication Institute, 2000,

99p. 5. Хинчин И.В. и др. Принципы статистического моделирования. Минск: БГУ, 1997.-254с. 6. Клейнрок Л. Вычислительные системы с очередями. – М.:Мир,1979. –600lpp. 7. Шрайбер Т. Моделирование на GPSS. – М.:Машиностроение, 1980. –592с. 8. Kleijnen V.G., Jack P.C. Simulation: a statistical perspeсtive. - Wiley, New York, 1992. –241p. 9. B.Ripley. Stohastic Simulation. - Wiley, New York, 1987. – 198p.

Page 64: Яцкив И. В. - Моделирование Систем. Опорный Конспект

64

Transporta un sakaru institūts

Приняла: И. Яцкив

Дата: 2002 г. Май

Rīga 2002

Домашнее задание №1 по дисциплине

“Моделирование систем” 2001/2002 гг. 14 вариант

Студент 4-го курса заочного отделения

Лучкин Тимур

группа 4801BN

Page 65: Яцкив И. В. - Моделирование Систем. Опорный Конспект

65

Цель работы: 1. Приобрести опыт в моделировании дискретных систем при использовании

событийного принципа отсчета модельного времени. 2. Научиться программировать и использовать генераторы случайных величин,

отличные от генераторов с равномерным законом распределения. Научиться тестировать подобные генераторы.

Задание: Система с очередями имеет один сервер и обслуживает поступающие заявки двух типов. Заявки 1 типа образуют поток {1}. Заявки 2 типа поступают в систему с интервалом времени, распределенным {2}. Они обслуживаются сервером с разным временем обслуживания: заявки первого типа – {3}; заявки второго типа – {4}.. Если сервер занят, когда поступает заявка, то заявка присоединяется к очереди с дисциплиной обслуживания {5}. Время моделирования Tf=500 мин.

Результаты имитации отразить в таблице. В таблицу занести последовательно шаги имитационного процесса. Каждая строка соответствует одному событию. В нее заносятся разыгрываемые времена осуществления будущих событий и значения парамеров, которые были изменены при наступлении текущего. В качестве следующего выбирается событие с минимальным временем осуществления.

Событ. tm l1 l2 h S n Q n

0 50 44 501 0 0 0 0 l2 44 - 75 54 1 0 0 1 l1 50 112 - - 1 1 1 1

В таблице использованы следующие обозначения для событий и переменных:

l1=прибытие следующей заявки типа 1; l2=прибытие следующей заявки типа 2; tm=таймер модельного времени; S=статус сервера (0 - свободен, 1 - занят); h=окончание обслуживания текущей заявки (активной). Для tm=0 h = 501 мин. n=текущая длина очереди; Q =очередь, содержащая типы стоящих в ней заявок (длина вектора не ограничена).

Протестировать разработанные генераторы Найти {6}. Определить {7}. Имитацию реализовать программно, используя любой алгоритмический язык. {1}.{2}.{3}…. – согласно варианту 14 вариант

{1} {2} {3} {4} {5} {6} {7} Эрланговский ( l=3, λ =0.25)

Пуассоновский

( λ =0.5)

Нормальное ( 2,12 == σµ )

Экспоненциальное ( λ =2)

FIFO Коэффициент простоя сервера

Среднее число заявок, стоявших в

очереди

Page 66: Яцкив И. В. - Моделирование Систем. Опорный Конспект

66

1.Разработка в среде GPSS World Исходный текст программы: GENERATE (EXPONENTIAL(1,0,1/0.25)+EXPONENTIAL(1,0,1/0.25)+EXPONENTIAL(1,0,1/0.25)) *Генерируем время прихода заявки 1-ого типа по Эрланговскому зак. распр. QUEUE ONE *Собираем статистику об очереди ONE SEIZE SERVER *Занимаем сервер SERVER DEPART ONE *Прекращаем сбор статистики ADVANCE (NORMAL(1,12,2)) *Имитируем задержку заявки по нормальн. зак. распр. RELEASE SERVER *Освобождаем сервер TERMINATE *Удаляем текущую заявку (транзакт) из системы GENERATE (POISSON(1,1/0.5)) *Генер. время прихода заявки 2-ого типа по Пуассоновскому .з.р. QUEUE ONE SEIZE SERVER DEPART ONE ADVANCE (EXPONENTIAL(1,0,1/2)) *Имитируем задержку заявки по экспоненц. зак. распр. RELEASE SERVER TERMINATE GENERATE 500 *Кол-во единиц времени, в течении кот. происходит моделир. TERMINATE 1

Page 67: Яцкив И. В. - Моделирование Систем. Опорный Конспект

67

Отчет: GPSS World Simulation Report - kr1_work.53.1 Tuesday, May 21, 2002 00:11:01 START TIME END TIME BLOCKS FACILITIES STORAGES 0.000 500.000 16 1 0 NAME VALUE ONE 10000.000 SERVER 10001.000 LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY 1 GENERATE 36 0 0 2 QUEUE 36 3 0 3 SEIZE 33 0 0 4 DEPART 33 0 0 5 ADVANCE 33 1 0 6 RELEASE 32 0 0 7 TERMINATE 32 0 0 8 GENERATE 252 0 0 9 QUEUE 252 22 0 10 SEIZE 230 0 0 11 DEPART 230 0 0 12 ADVANCE 230 0 0 13 RELEASE 230 0 0 14 TERMINATE 230 0 0 15 GENERATE 1 0 0 16 TERMINATE 1 0 0 FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY SERVER 263 0.997 1.896 1 260 0 0 0 25 QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY ONE 28 25 288 2 12.689 22.029 22.183 0 FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE 291 0 502.000 291 0 8 260 0 502.460 260 5 6 283 0 504.025 283 0 1 292 0 1000.000 292 0 15

Из отчета видно, что:

• Коэффициент простоя сервера – 1-0.997= 0.003; • Среднее число заявок, стоявших в очереди – 12.689; • Было создано 36 заявок первого типа и 252 заявки второго типа, из них

на сервер попало 33 и 230 заявок соответственно; • На конец обслуживания в очереди осталось 3 заявки первого типа и 22

заявки второго.

Page 68: Яцкив И. В. - Моделирование Систем. Опорный Конспект

68

2.Разработка в среде Delphi 6 Описание интерфейса программы

Рис.1 Главное окно программы

Программа позволяет смоделировать процесс прихода заявок двух типов с одним сервером и одной очередью. Перед началом моделирования необходимо выбрать каким образом будет задаваться базовое число (начальная точка) для Random – генератора. Начальной точкой могут быть либо системные часы компьютера ( ), либо какое-то пользовательское число ( ). Во втором случае мы имеем возможность генерации повторяющихся цепочек случайных чисел, что позволяет в точности повторить процесс моделирования . Далее можно поменять время моделирования. По-умолчанию 500 единиц времени. Теперь, нажав кнопку мы можем посмотреть либо отчёт , либо дополнительную статистику . Если была нажата кнопка , то откроется новое окно с таблицей результатов имитации (Рис. 2). В таблицу занесены шаги имитационного процесса. Каждая строка соответствует одному событию.

Page 69: Яцкив И. В. - Моделирование Систем. Опорный Конспект

69

Рис. 2 Часть таблицы с результатами имитации

В данной работе не приводится таблица целиком, из-за больших размеров таковой. К работе прилагается дискета с выполняемым файлом, с которой можно запустить программу и просмотреть данную таблицу целиком. Возможные события, описываемые в таблице: L1 Приход заявки первого типа (с последующим занятием сервера, либо

добавлением в очередь) L2 Приход заявки второго типа (с последующим занятием сервера, либо

добавлением в очередь) h Освобождение сервера от заявки, пришедшей НЕ из очереди Q:L1 Занятие сервера заявкой первого типа, стоящей в очереди Q:L2 Занятие сервера заявкой второго типа, стоящей в очереди Q:h Освобождение сервера от заявки, пришедшей из очереди Описание параметра S: С наступлением одного из вышеперечисленных событий значение S (занятости сервера) меняется на одно из следующих: -1 – наступившее событие изменит статус сервера на ЗАНЯТ 0 – наступившее событие изменит статус сервера на СВОБОДЕН

Page 70: Яцкив И. В. - Моделирование Систем. Опорный Конспект

70

Если в главном окне нажать кнопку Прочая статистика, то появится окно с прочими собранными данными (Рис. 3), в том числе с данными, требуемыми данным заданием (Коэффициент простоя сервера, Среднее число заявок).

Рис. 3 Прочая статистика

Проверка разработанных генераторов В правой части главного окна мы можем сгенерировать заданное число событий, распределенных по одному из предложенных распределений. Массив чисел будет выведен в окошке справа (Рис. 4). Далее, нажав кнопку

программа скопирует массив чисел в буфер обмена, потом мы должны вставить этот массив чисел в пакет Статистика (Statistics) для дальнейшей обработки.

Рис.4 Проверка работы генератора

Page 71: Яцкив И. В. - Моделирование Систем. Опорный Конспект

71

Проверка разработанных генераторов в пакете Статистика

Для проверки генерирующихся чисел воспользуемся гистограммой. Для этого с пакете Статистика выберем меню Graphs – Stats 2D Graphs – Histograms. В появившемся окне (Рис. 5) мы должны указать список переменных (скопированный массив чисел), нажав .

Рис. 5 Построение гистограмм в пакете Статистика

Далее, в списке Fit Type (Рис. 6) нам надо указать, какое распределение (по нашему мнению) имеет массив сгенерированных нами чисел.

Рис. 6 Fit Type – список возможных распределений

Page 72: Яцкив И. В. - Моделирование Систем. Опорный Конспект

72

В данной работе, мы для каждого распределения (Эрланговское, Нормальное и Экспоненциальное) будем брать для проверки этих же распределений, для того, чтобы убедиться, что наш генератор генерирует числа в соответствии с указанным законом. 1.Эрланговское распределение

Сгенерируем в разработанной программе массив из 500 чисел по

эрланговскому закону распределения и вставим их в пакет Статистика. Попробуем построить для данного массива гистограммы по четырем распределениям:

Нормальное Экспоненциальное

Гамма (Эрланг)

Из приведенных гистограмм видно, что массив чисел соответствует Гамма распределению (распределение Эрланга – это Гамма распределение, у которого первый параметр может принимать только целые значения).

Работа Эрланговского генератора – удовлетворительная. 3.Нормальное распределение Повторим те же шаги:

Page 73: Яцкив И. В. - Моделирование Систем. Опорный Конспект

73

Нормальное Экспоненциальное

Гамма (Эрланг)

Из приведенных гистограмм видно, что массив чисел соответствует Нормальному распределению.

Работа генератора нормального распределения – удовлетворительная. 4.Экспоненциальное распределение Повторим те же шаги:

Нормальное Экспоненциальное

Page 74: Яцкив И. В. - Моделирование Систем. Опорный Конспект

74

Гамма (Эрланг)

Из приведенных гистограмм видно, что массив чисел соответствует Экспоненциальному закону распределения (из гистограмм видно, что Экспоненциальное и Гамма распределения очень похожи, так как экспоненциальное распределение – есть частный случай Гамма распределения).

Работа Экспоненциального генератора – удовлетворительная. Вывод: Разработанные генераторы являются качественными.

Разбор программного кода Список и описание глобальных переменных:

Tm,L1,L2,H,Total:real; S:boolean; CurrL:integer; Q:TStringList; EndQueue:integer; EndServerStatus:boolean;

Tm – таймер модельного времени L1 – время прибытия следующей заявки типа 1. L2 – время прибытия следующей заявки типа 2. H – окончание обслуживания текущей заявки Total – время моделирования S – статус сервера (0 – свободен, -1 – занят) CurrL – тип текущей заявки Q – очередь, содержащая типы стоящих в ней заявок EndQueue – длина очереди на конец моделирования EndServerStatus – статус сервера на конец моделирования

Page 75: Яцкив И. В. - Моделирование Систем. Опорный Конспект

75

Список используемых процедур и функций: function Exponen(lamda:real):real; function Erlang(lamda:real):real; function Normal(Mat,Disp:real):real; function Mini(Nr1,Nr2:real):real; function BusyTime:real; Описание используемых процедур и функций:

Функция Exponen Функция получает в качестве входного параметра значение λ и

возвращает число, распределенное по экспоненциальному закону распределения. (Функция Random – генератор случайных чисел в интервале от 0 до 1)

Функция Erlang Получает в качестве входного параметра значение λ и возвращает число, распределенное по эрланговскому закону распределения.

Функция Normal Получает в качестве входных параметров значения математического ожидания и дисперсии. Возвращает число, распределенное по нормальному закону распределения.

Функция Mini Получает в качестве входных параметров два числа (время прибытия следующих заявок первого и второго типа) и возвращет меньшее из них. Также, устанавливает тип текущей заявки 1 или 2, в зависимости от наименьшего значения.

Функция BusyTime

Page 76: Яцкив И. В. - Моделирование Систем. Опорный Конспект

76

Возвращает время, необходимое на обслуживание текущей заявки на сервере. Вычисляется либо по нормальному, либо по экспоненциальному закону распределения (зависит от типа заявки).

Исходный текст главного модуля программы В приведенном исходном тексте вырезаны строки по сбору статистики (для отчета). Полный исходный текст программы будет приведен в конце данной работы – в приложении.

Используемая литература

Приложение

Полный исходный текст программы

Блок диаграмма главного модуля программы

Page 77: Яцкив И. В. - Моделирование Систем. Опорный Конспект

77

Begin

L1=Erlang

L2=Poisson

L1>L2

Tm=L2

CurrL=2

L2=Poisson

Tm=L1

CurrL=1

L1=Erlang

Tm<H Q.Append(CurrL)

S=0

Q.Count=0

Q.Append(CurrL)

CurrL=Q[0]

Q.delete(0)

H=H+BusyTime

S=1

H=Tm+BusyTime

S=1

H<500

End

2

1

1

2да

да

да

да

Page 78: Яцкив И. В. - Моделирование Систем. Опорный Конспект

78

Приложение 2

Transporta un sakaru institūts

Приняла: И. Яцкив

Дата: 2002 г. Май

Rīga 2002

Контрольная работа № 2 по дисциплине

“Моделирование систем” 2001/2002 гг. 14 вариант

"Распределительный алгоритм кругового опроса"

Студент 4-го курса заочного отделения

Лучкин Тимур

группа 4801BN

Page 79: Яцкив И. В. - Моделирование Систем. Опорный Конспект

79

Описание модели: Вновь поступившие заявки (требования) становятся в единственную очередь. При

освобождении процессора они получают квант обслуживания. Когда этот квант истекает и необходимо дальнейшее обслуживание, требование возвращается в хвост очереди и повторяет цикл. Требование покидает систему, когда полностью обслужено. Требования поступают в соответствии с Пуассоновским потоком с интенсивностью λ требований в минуту. Заявка передается по каналу связи (от терминала до ЦП и также обратно – за время, распределенное равномерно (2 ± 1)с. Время обслуживания распределено по нормальному закону с параметрами µ =28 и 2с. Задание: Необходимо разработать GPSS модель и провести с нею эксперименты.

1. Подобрать квант времени для обслуживания в режиме разделения так, чтобы не менее 20% заявок обслуживалось за один цикл (квант не может превышать 28с). Оценить распределение числа циклов, требуемых для обслуживания заявки.

2. Промоделировать систему с изменяющимися приоритетами: при невозможности обслужить заявку за один квант и вытеснении её с процессора, ей присваивается приоритет в зависимости от числа оставшихся требуемых квантов времени (1 оставшийся квант – максимальный приоритет и т.д.). Определить по предыдущему пункту (после оценки распределения).

3. Оценить распределение времени пребывания заявки в системе. Построить доверительный интервал для математического ожидания времени пребывания.

Исходные данные: Вариант 14.

15.0=λ

Page 80: Яцкив И. В. - Моделирование Систем. Опорный Конспект

80

Задание 1 Экспериментальным путем было установлено, что квант времени должен находиться в пределах 25-28с. Поэтому для задания было взято значение: 26с. Исходный текст программы на GPSS World TIME TABLE M1,1000,1000,11 ;Vremja prebivan.zajavki v sisteme CIKL TABLE P2,0,1,8 ;Kol-vo ciklov zajavki INITIAL X$KVANT,26 ;Znachenije kvanta GENERATE (EXPONENTIAL(1,0,1/0.15)) ;Chastota postuplenija zajavok ASSIGN 1,(NORMAL(1,28,2)) ;Vremja, neobhod.na polnoe obsluzhivanie zajavki METKA1 QUEUE MAYDAY ;Nachinaem sbor statist. ob ocheredi GATE NU SERVER,WAIT ;Server zanjat? AGAIN SEIZE SERVER ;Zanimaem server DEPART MAYDAY ;Konec statist. ob ocheredi ADVANCE X$KVANT ;Zaderzhka na kvant vremeni ASSIGN 2+,1 ;Uvelichivaem kol-vo ciklov RELEASE SERVER ;Osvobozhdaem server ADVANCE 2,1 ;Zaderzhka na peredachu iz CepiPolz. k terminalu UNLINK LINE,AGAIN,1 ;Vikinut' iz CP na terminal ASSIGN 1-,X$KVANT ;Umen'shaem vremja obsluzh. zajavki TEST LE P1,0,METKA1 ;Proverjaem, ne isteklo-li vremja obsluzh.zajavki TABULATE TIME ;Tabuliruem dannie dlja tablici TIME TABULATE CIKL ;Tabuliruem dannie dlja tablici CIKL TERMINATE ;Udaljaem aktivnuju zajavku iz sistemi WAIT ADVANCE 2,1 ;Zaderzhka na peredachu ot terminala k CP LINK LINE,FIFO ;Pomeschaem v cep' polzovatelja GENERATE 10000 TERMINATE 1

Отчет START TIME END TIME BLOCKS FACILITIES STORAGES 0.000 10000.000 20 1 0 NAME VALUE AGAIN 5.000 CIKL 10001.000 KVANT 10002.000 LINE 10008.000 MAYDAY 10004.000 METKA1 3.000 SERVER 10005.000 TIME 10000.000 WAIT 17.000 LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY 1 GENERATE 1496 0 0 2 ASSIGN 1496 0 0 METKA1 3 QUEUE 1771 0 0 4 GATE 1771 0 0 AGAIN 5 SEIZE 385 0 0 6 DEPART 385 0 0 7 ADVANCE 385 1 0 8 ASSIGN 384 0 0 9 RELEASE 384 0 0 10 ADVANCE 384 0 0 11 UNLINK 384 0 0 12 ASSIGN 384 0 0 13 TEST 384 0 0 14 TABULATE 109 0 0 15 TABULATE 109 0 0 16 TERMINATE 109 0 0 WAIT 17 ADVANCE 1769 0 0 18 LINK 1769 1386 0

Page 81: Яцкив И. В. - Моделирование Систем. Опорный Конспект

81

19 GENERATE 1 0 0 20 TERMINATE 1 0 0 FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY SERVER 385 1.000 25.964 1 325 0 0 0 1 QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY MAYDAY 1386 1386 1771 2 683.992 3862.180 3866.546 0 TABLE MEAN STD.DEV. RANGE RETRY FREQUENCY CUM.% TIME 4351.562 2540.965 0 _ - 1000.000 13 11.93 1000.000 - 2000.000 15 25.69 2000.000 - 3000.000 11 35.78 3000.000 - 4000.000 11 45.87 4000.000 - 5000.000 11 55.96 5000.000 - 6000.000 13 67.89 6000.000 - 7000.000 16 82.57 7000.000 - 8000.000 11 92.66 8000.000 - 9000.000 6 98.17 9000.000 - 10000.000 2 100.00 CIKL 1.560 0.499 0 0.000 - 1.000 48 44.04 1.000 - 2.000 61 100.00 USER CHAIN SIZE RETRY AVE.CONT ENTRIES MAX AVE.TIME LINE 1385 0 682.722 1769 1385 3859.369 SAVEVALUE RETRY VALUE KVANT 0 26.000 FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE 325 0 10013.720 325 7 8 1 30.190 1498 0 10014.861 1498 0 1 1499 0 20000.000 1499 0 19

Анализ Рассмотрим, как меняется количество заявок, прошедших за один цикл

с изменением кванта обслуживания. При кванте = 25 TABLE MEAN STD.DEV. RANGE RETRY FREQUENCY CUM.% CIKL 1.713 0.455 0 0.000 - 1.000 27 28.72 1.000 - 2.000 67 100.00

27 заявок (28.72%) прошло за один цикл, 67 (71.28%) за два.

При кванте = 26

Page 82: Яцкив И. В. - Моделирование Систем. Опорный Конспект

82

TABLE MEAN STD.DEV. RANGE RETRY FREQUENCY CUM.% CIKL 1.596 0.493 0 0.000 - 1.000 42 40.38 1.000 - 2.000 62 100.00

42 заявки (40.38%) прошло за один цикл, 62 (59.62%) за два.

При кванте = 28 TABLE MEAN STD.DEV. RANGE RETRY FREQUENCY CUM.% CIKL 1.197 0.399 0 0.000 - 1.000 159 80.30 1.000 - 2.000 39 100.00

159 заявок (80.30%) прошло за один цикл, 39(19.70%) за два.

Возьмем для сравнения заведомо маленький квант: При кванте = 12 TABLE MEAN STD.DEV. RANGE RETRY FREQUENCY CUM.% CIKL 2.975 0.158 0 1.000 - 2.000 2 2.53 2.000 - 3.000 77 100.00

Как видно, ни одна заявка не прошла за один цикл, 2 прошли за 2 цикла и 77 за три цикла.

Page 83: Яцкив И. В. - Моделирование Систем. Опорный Конспект

83

Из этих примеров видно, что больше всего заявок будет проходить за один цикл при кванте времени, находящемся где-то между 26-30с.

Задание 2 Как видно из предыдущего пункта (Задание 1), максимально возможное количество циклов заявки ( при кванте времени = 26) равно двум, значит максимальный приоритет, который может получить заявка во время до обслуживания равен 1 (заявка, которая только что поступила в систему имеет нулевой приоритет). В данном случае, решение данного задания облегчает тот факт, что заявка может иметь либо нулевой приоритет, либо приоритет = 1. Это значит, что если заявка не прошла с первого раза, то не нужно рассчитывать количество оставшихся циклов, так как их количество будет равно 2 (максимальное количество циклов) – 1 (текущее количество циклов) = 1, то есть для всех заявок, повторно входящих в очередь, мы можем сразу ставить приоритет = 1. Также, поменяем дисциплину обслуживания заявок, поступающих в ЦП (цепь пользователя). Теперь они будет размещаться там, исходя из установленного приоритета. Исходный текст программы (модифицированный для 2-ого задания) TIME TABLE M1,1000,1000,11 ;Vremja prebivan.zajavki v sisteme CIKL TABLE P2,0,1,8 ;Kol-vo ciklov zajavki PRITET TABLE PR,0,1,3 ;S kakim prioritetom zajavka pokinula sistemu INITIAL X$KVANT,26 ;Znachenije kvanta GENERATE (EXPONENTIAL(1,0,1/0.15)) ;Chastota postuplenija zajavok ASSIGN 1,(NORMAL(1,28,2)) ;Vremja, neobhod.na polnoe obsluzhivanie zajavki TRANSFER ,SKIP ;Propuskaem ustanovku prioriteta METKA1 PRIORITY 1 ;Ustanovka prioriteta (uvelichenie) SKIP QUEUE MAYDAY ;Nachinaem sbor statist. ob ocheredi GATE NU SERVER,WAIT ;Server zanjat? AGAIN SEIZE SERVER ;Zanimaem server DEPART MAYDAY ;Konec statist. ob ocheredi ADVANCE X$KVANT ;Zaderzhka na kvant vremeni ASSIGN 2+,1 ;Uvelichivaem kol-vo ciklov RELEASE SERVER ;Osvobozhdaem server ADVANCE 2,1 ;Zaderzhka na peredachu iz CepiPolz. k terminalu UNLINK LINE,AGAIN,1 ;Vikinut' iz CP na terminal ASSIGN 1-,X$KVANT ;Umen'shaem vremja obsluzh. zajavki TEST LE P1,0,METKA1 ;Proverjaem, ne isteklo-li vremja obsluzh.zajavki TABULATE TIME ;Tabuliruem dannie dlja tablici TIME TABULATE CIKL ;Tabuliruem dannie dlja tablici CIKL TABULATE PRITET ;Tabuliruem dannie dlja tablici PRITET TERMINATE ;Udaljaem aktivnuju zajavku iz sistemi

Page 84: Яцкив И. В. - Моделирование Систем. Опорный Конспект

84

WAIT ADVANCE 2,1 ;Zaderzhka na peredachu ot terminala k CP LINK LINE,PR ;Pomeschaem v cep' polzovatelja GENERATE 10000 TERMINATE 1

Отчет START TIME END TIME BLOCKS FACILITIES STORAGES 0.000 10000.000 23 1 0 NAME VALUE AGAIN 7.000 CIKL 10001.000 KVANT 10003.000 LINE 10010.000 MAYDAY 10006.000 METKA1 4.000 PRITET 10002.000 SERVER 10007.000 SKIP 5.000 TIME 10000.000 WAIT 20.000 LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY 1 GENERATE 1431 0 0 2 ASSIGN 1431 0 0 3 TRANSFER 1431 0 0 METKA1 4 PRIORITY 177 0 0 SKIP 5 QUEUE 1608 0 0 6 GATE 1608 0 0 AGAIN 7 SEIZE 385 0 0 8 DEPART 385 0 0 9 ADVANCE 385 1 0 10 ASSIGN 384 0 0 11 RELEASE 384 0 0 12 ADVANCE 384 0 0 13 UNLINK 384 0 0 14 ASSIGN 384 0 0 15 TEST 384 0 0 16 TABULATE 207 0 0 17 TABULATE 207 0 0 18 TABULATE 207 0 0 19 TERMINATE 207 0 0 WAIT 20 ADVANCE 1606 0 0 21 LINK 1606 1223 0 22 GENERATE 1 0 0 23 TERMINATE 1 0 0 FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY SERVER 385 1.000 25.964 1 208 0 0 0 1 QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY MAYDAY 1223 1223 1608 2 610.269 3795.206 3799.932 0 TABLE MEAN STD.DEV. RANGE RETRY FREQUENCY CUM.% TIME 4247.552 2435.564 0 _ - 1000.000 23 11.11 1000.000 - 2000.000 26 23.67 2000.000 - 3000.000 24 35.27 3000.000 - 4000.000 24 46.86 4000.000 - 5000.000 26 59.42 5000.000 - 6000.000 25 71.50 6000.000 - 7000.000 24 83.09 7000.000 - 8000.000 23 94.20 8000.000 - 9000.000 12 100.00 CIKL 1.845 0.362 0 0.000 - 1.000 32 15.46 1.000 - 2.000 175 100.00 PRITET 0.845 0.362 0 _ - 0.000 32 15.46 0.000 - 1.000 175 100.00 USER CHAIN SIZE RETRY AVE.CONT ENTRIES MAX AVE.TIME

Page 85: Яцкив И. В. - Моделирование Систем. Опорный Конспект

85

LINE 1222 0 609.028 1606 1222 3792.202 SAVEVALUE RETRY VALUE KVANT 0 26.000

Как можно видеть из отчета, количество заявок, проходящих за два цикла (с повышенным приоритетом) резко возросло, так как на сервер в первую очередь попадали именно они. Количество заявок, проходящих за один цикл сократилось (с 40.38% до 15.46%). Используя приоритеты, почти в два раза возросло количество полностью обслуженных заявок (со 109 до 207), что говорит об эффективности использования данного метода.

Количество заходов на сервер не изменилось. То есть, если в первом задании заявка обслуженная наполовину (не обслуженная до конца) снова попадала в конец очереди и висела там до тех пор, пока не были бы обслужены все стоящие перед ней, то теперь, становясь в очередь, она сразу "перепрыгивала" все заявки, которые еще ни разу не попадали на сервер.

Распределение заявок, покинувших систему с приоритетом 0 или 1.

Задание 3

Для наблюдения за временем пребывания заявки в системе использовался параметр М1, который табулировался в таблице TIME. Распределение времени пребывания заявки в системе: TABLE MEAN STD.DEV. RANGE RETRY FREQUENCY CUM.% TIME 4374.599 2481.265 0 _ - 500.000 12 5.88 500.000 - 1000.000 10 10.78 1000.000 - 1500.000 12 16.67 1500.000 - 2000.000 10 21.57 2000.000 - 2500.000 13 27.94 2500.000 - 3000.000 12 33.82 3000.000 - 3500.000 12 39.71 3500.000 - 4000.000 12 45.59 4000.000 - 4500.000 12 51.47 4500.000 - 5000.000 14 58.33

Page 86: Яцкив И. В. - Моделирование Систем. Опорный Конспект

86

5000.000 - 5500.000 11 63.73 5500.000 - 6000.000 11 69.12 6000.000 - 6500.000 12 75.00 6500.000 - 7000.000 13 81.37 7000.000 - 7500.000 10 86.27 7500.000 - 8000.000 11 91.67 8000.000 - 8500.000 12 97.55 8500.000 - 9000.000 5 100.00

Найдем доверительный интервал для математического ожидания времени пребывания:

⋅+

⋅−

−−

1,

12

12

1

n

Sx

n

Sx

αα ττ

,

где x -оценка математического ожидания [4374.599] S -оценка среднеквадратичного отклонения [2481.265]

21 ατ−

-значение квантиля t-распределения Стьюдента, соответствующие

уровню значимости γα −= 1 ( 05.095.01 =−=α ) [по таблице: 1.65] n -объем выборки [204]