281
1 Курс «Имитационное моделирование» Автор курса: Березин Денис Александрович к.э.н, доцент кафедры математической экономики УрГУ

Курс «Имитационное моделирование»

  • Upload
    kamal

  • View
    81

  • Download
    2

Embed Size (px)

DESCRIPTION

Курс «Имитационное моделирование». Автор курса: Березин Денис Александрович к.э.н, доцент кафедры математической экономики УрГУ. Сведения о курсе. Продолжительность – 36 часов; Форма итогового контроля – экзамен; Состоит из разделов: «Теория массового обслуживания». - PowerPoint PPT Presentation

Citation preview

Page 1: Курс «Имитационное моделирование»

1

Курс «Имитационное моделирование»

Автор курса:

Березин Денис Александрович

к.э.н, доцент кафедры математической экономики УрГУ

Page 2: Курс «Имитационное моделирование»

2

Сведения о курсе

Продолжительность – 36 часов; Форма итогового контроля – экзамен;

Состоит из разделов: «Теория массового обслуживания». «Инструментальные средства

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

экономических процессов»

Page 3: Курс «Имитационное моделирование»

3

Раздел I. «Теория массового обслуживания»

Тема «Случайные процессы»

Лекция №1

Page 4: Курс «Имитационное моделирование»

4

Случайные процессы

Определение: Случайный процесс (вероятностный, стохастический) – это процесс изменения во времени

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

Определение: Процесс с дискретными состояниями – это процесс, возможные состояния которого можно заранее перечислить, а переход системы из состояния в состояние происходит мгновенно.

Определение: Процесс с непрерывным временем – это процесс, при котором моменты возможных переходов системы из состояния в состояние не фиксированы заранее, а случайны.

Page 5: Курс «Имитационное моделирование»

5

Случайные процессы

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

Пример марковского процесса - показания счетчика в такси.

Page 6: Курс «Имитационное моделирование»

6

Случайные процессы

Определение: Граф состояний – графическая схема случайного процесса с дискретными состояниями;

Пример: Устройство S состоит из двух узлов.

Состояния:

S0 – оба узла исправны:

S1 – первый узел ремонтируется, второй исправен;

S2 - второй узел ремонтируется, первый исправен;

S3 - оба узла ремонтируются;

Page 7: Курс «Имитационное моделирование»

7

Случайные процессы

Граф состояний:

S0

S2

S3

S1

Page 8: Курс «Имитационное моделирование»

8

Случайные процессы

Потоки событийОпределение: Поток событий - это последовательность

однородных событий, следующих одно за другим в случайныe моменты времени

Интенсивность λ – частота появления событий в единицу времени

Определение: Поток событий называется регулярным, если события следуют одно за другим через определенные равные промежутки времени.

Определение: Поток событий называется стационарным, если его вероятностные характеристики не зависят от времени.

Page 9: Курс «Имитационное моделирование»

9

Случайные процессы

Определение: Поток событий называется потоком без последействия, если для любых двух непересекающихся участков времени τ1 и τ2 число событий, попадающих на один из них, не зависит от числа событий, попадающих на другие.

Определение: Поток событий называется ординарным, если вероятность попадания на малый участок времени t0 двух и более событий пренебрежимо мала по сравнению с вероятностью попадания одного события.

Page 10: Курс «Имитационное моделирование»

10

Случайные процессы

Простейший поток событий называется простейшим (стационарным пуассоновским), если он: Стационарен; Ординарен; Не имеет последействия;

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

n

i i1

Page 11: Курс «Имитационное моделирование»

11

Случайные процессы

Рассмотрим простейший поток событий как неограниченную последовательность случайных точек:

Число m событий, попадающих на отрезок τ, распределено по закону Пуассона:

T

em

Pm

m !

)()(

t0

)1(

Page 12: Курс «Имитационное моделирование»

12

Случайные процессы

Математическое ожидание равно дисперсии:

a=σ2=λτВероятность того, что за время τ не произойдет ни одного

события (m=0):

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

eP )(0

)2(

Page 13: Курс «Имитационное моделирование»

13

Случайные процессы

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

Вероятность противоположного события, т.е. функция распределения случайной величины T:

Плотность вероятности случайной величины есть производная ее функции распределения:

)3( etTP )(

etTPtF 1)()( )4(

etFt )()( )5(

Page 14: Курс «Имитационное моделирование»

14

Случайные процессы

Распределение, задаваемое функцией распределения (4) или плотностью вероятности (5) называется показательным (или экспоненциальным)

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

a=σ=1/λ

Page 15: Курс «Имитационное моделирование»

15

Случайные процессы

Важнейшее свойство показательного распределения:

Если промежуток времени, распределенный по показательному закону, уже длился некоторое время τ то это никак не влияет на закон распределения оставшейся части промежутка (T- τ). Он будет таким же, как и закон распределения всего промежутка Т.

Для простейшего потока с интенсивностью λ вероятность попадания на элементарный отрезок времени Δt хотя бы одного события:

tetTPP t

t

1)( )6(

Page 16: Курс «Имитационное моделирование»

16

Раздел I. «Теория массового обслуживания» (продолжение)

Тема «Случайные процессы»

Лекция №2

Page 17: Курс «Имитационное моделирование»

17

Случайные процессы

Уравнения Колмогорова

Рассмотрим пример из Лекции №2.

Пусть λij – интенсивность простейшего потока событий, под воздействием которых происходит переход системы из состояния Si в состояние Sj.

Вероятностью i-го состояния называется вероятность pi(t) того, что в момент t система будет находиться в состоянии Si.

13

0)(:

i

it

ipt

Page 18: Курс «Имитационное моделирование»

18

Случайные процессы

Рассмотрим систему в момент t и зададим малый промежуток времени Δt.

Найдем вероятность p0(t+Δt) того, что система в момент (t+ Δt) будет находиться в состоянии S0.

Это достигается разными способами:

1) Система в момент t с вероятностью po(t) находилась в состоянии S0 , и за время Δt не вышла из него.

(λ01+λ02) – интенсивность суммарного простейшего потока, выводящего систему из состояния S0.

PΔt≈ (λ01+λ02)Δt вероятность выхода системы из состояния S0.

Page 19: Курс «Имитационное моделирование»

19

Случайные процессы

По теореме умножения вероятностей:

p0(t)(1-(λ01+λ02)Δt) - вероятность того, что система находилась в состоянии S0 и за время Δt не вышла из него.

2) Система в момент t с вероятностью p1(t) (или p2(t)) находилась в состоянии S1 (или S2) и за время Δt перешла в состояние S0.

λ10Δt – вероятность перехода системы из состояния S1 в состояние S0.

λ20Δt – вероятность перехода системы из состояния S2 в состояние S0.

Page 20: Курс «Имитационное моделирование»

20

Случайные процессы

По теореме умножения вероятностей:

p1(t)λ10Δt - вероятность того, что система находилась в состоянии S1 и за время Δt перешла в состояние S0.

p2(t)λ20Δt - вероятность того, что система находилась в состоянии S2 и за время Δt перешла в состояние S0.

По теореме сложения вероятностей:

p0(t+ λ20Δt)= p1(t)λ10Δt+p2(t)λ20Δt+p0(t)(1-(λ01+λ02)Δt).

Отсюда,

))(()()()()(

0201020210100

tptptpt

tpttp

Page 21: Курс «Имитационное моделирование»

21

Случайные процессы

При Δt0 получаем дифференциальное уравнение 1го порядка:

Рассуждая аналогично для других состояний системы S получаем систему дифференциальных уравнений Колмогорова для вероятностей системы:

)()()()()('

)()()()()('

)()()()()('

)()()()()('

332312231133

223203320022

113103310011

002012201100

tptptptp

tptptptp

tptptptp

tptptptp

)()()()()(' 002012201100 tptptptp

)7(

Page 22: Курс «Имитационное моделирование»

22

Случайные процессы

Правило составления уравнений Колмогорова:

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

Для решения системы (7) необходимо добавить условие: 1

3

0)(

i

it

ip

Page 23: Курс «Имитационное моделирование»

23

Случайные процессы

Зададим начальные условия для системы дифференциальных уравнений (7):

При t=0 p0(0)=1,

p1(0)=p2(0)=p3(0)=0

(предположим, что при t=0 система была исправна, т.е. находилась в состоянии S0.).

Решение уравнений Колмогорова позволяют найти все вероятности состояний системы как функции времени.

Особый интерес – предельные (финальные) вероятности системы (при Δt).

Page 24: Курс «Имитационное моделирование»

24

Случайные процессы

Предельная вероятность состояния Sj. системы S показывает среднее время пребывания системы в этом состоянии (в долевом отношении).

Предельные вероятности постоянны в системе (7) p'0(t)= p'1(t)= p'2(t)=p'3(t)=0.

Получаем СЛАУ, описывающих стационарный режим:

22311333231

33200222320

33100111310

22011000201

)(

)(

)(

)(

ppp

ppp

ppp

ppp

Page 25: Курс «Имитационное моделирование»

25

Случайные процессы

Процесс гибели и размножения

Класс случайных процессов с графом состояний:

Переходы осуществляются только в соседние состояния!

Предположение: Все потоки событий случайного процесса являются простейшими.

S2 SnS1 SkS0

01

23

12

kk 1

1kk

nn 1

10

21

32

1kk

kk 1

1nn

Page 26: Курс «Имитационное моделирование»

26

Случайные процессы

СЛАУ для предельных вероятностей:

Нормировочное условие: p0+p1+…+pn=1

nnnnnn

kkkkkk

pp

pp

pp

pp

111

111

221112

110001

........................

........................

Page 27: Курс «Имитационное моделирование»

27

Случайные процессы

Решение СЛАУ:

Числители в коэффициентах при p0 представляют произведение всех интенсивностей потоков слева направо до состояния Sk (k=I, 2, ..., п), а знаменатели- произведение всех интенсивностей потоков справа налево до состояния Sk (k=I, 2, ..., п).

;)...1( 1

1021....1

0112....1

1021

0112

10

01

0

nn

nnp

;0

10

01

1pp

;0

1021

0112

2pp

;0

1021....1

0112....1 ppnn

nn

n

Page 28: Курс «Имитационное моделирование»

28

Случайные процессы

Пример:Задан граф состояний системы S:

Решение:

Таким образом, в стационарном режиме система S находится в состоянии S0 – 70,6% времени; в состоянии S1 – 17,6% времени; в состоянии S2 – 11,8% времени.

706.0)43

12

4

11( 1

0

p

S2S1S0

1 2

4 3

Найти предельные вероятности системы S.

176.0706.04

11 p 118.0706.0

43

122

p

Page 29: Курс «Имитационное моделирование»

29

Раздел I. «Теория массового обслуживания» (продолжение)

Тема «Системы массового обслуживания»

Лекция №3

Page 30: Курс «Имитационное моделирование»

30

Системы массового обслуживания

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

Примеры СМО: вычислительные комплексы, банковские системы торговые терминалы коммутаторы телефонных станций информационные службы комбинаты бытового обслуживания и т.д.

Page 31: Курс «Имитационное моделирование»

31

Системы массового обслуживания

Схема работы СМО

заявка

заявка заявка СМО Обработанные заявки

заяв

казаявка

заявка

заяв

ка

заявка

Page 32: Курс «Имитационное моделирование»

32

Системы массового обслуживания

Предмет теории массового обслуживания:

построение математических моделей, связывающих заданные условия работы СМО (число заявок, каналов, характер потока заявок и т.п.) с показателями эффективности СМО, описывающими ее способность справляться с потоком заявок

Page 33: Курс «Имитационное моделирование»

33

Системы массового обслуживания

Показатели эффективности СМО:среднее число заявок, обслуживаемых в

единицу времени; среднее время ожидания обслуживания;среднее число заявок в очереди;вероятность отказа в обслуживании без

ожидания;вероятность превышения числа заявок в

очереди определенного значения и др.

Page 34: Курс «Имитационное моделирование»

34

Системы массового обслуживания

Классификация СМО производится

по различным признакам:

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

одноканальные многоканальные

СМО СМО

Page 35: Курс «Имитационное моделирование»

35

Системы массового обслуживания

С отказами С ожиданием

СМО СМО

Характер поступления заявок

Page 36: Курс «Имитационное моделирование»

36

Системы массового обслуживания

С приоритетом Без приоритета

СМО СМО

Дисциплина обслуживания

абсолютным относительным

Page 37: Курс «Имитационное моделирование»

37

Системы массового обслуживания

ограниченная неограниченная

СМО СМО

Организация очереди

Page 38: Курс «Имитационное моделирование»

38

Системы массового обслуживания

ограниченное неограниченное

СМО СМО

Время ожидания заявки в очереди

Page 39: Курс «Имитационное моделирование»

39

Раздел I. «Теория массового обслуживания» (продолжение)

Тема «Системы массового обслуживания»

Лекция №4

Page 40: Курс «Имитационное моделирование»

40

Системы массового обслуживания

СМО с отказами В качестве показателей эффективности СМО с отказами

будем рассматривать:А - абсолютную пропускную способность СМО, т.е.

среднее число заявок, обслуживаемых в единицу времени;

Q - относительную пропускную способность, т.е. среднюю долю пришедших заявок, обслуживаемых системой;

Ротк - вероятность отказа, т.е. того, что заявка покинет СМО не обслуженной;

- среднее число занятых каналов (для многоканальной системы)

k

Page 41: Курс «Имитационное моделирование»

41

Системы массового обслуживания

Одноканальная СМО с отказами

Имеет 1 канал на который поступает поток заявок с интенсивностью .

, - интенсивность потока обслуживания

- среднее время обслуживания;

Граф состояний:

Состояние S0 – канал свободен;

Состояние S1 – канал занят;

обt

S0 S1

Page 42: Курс «Имитационное моделирование»

42

Системы массового обслуживания

Исследуем предельные вероятности состояний:

Учитывая p0+p1=1

Таким образом,

01

10

pp

pp

10 pp

0p

1p

0pQ

1pPотк

QA

Page 43: Курс «Имитационное моделирование»

43

Системы массового обслуживания

Пример: Заявки на телефонные переговоры поступают диспетчеру с интенсивностью =90 заявок в час (l/ч). Средняя продолжительность разговора по телефону

= 2 мин. Определить показатели эффективности работы СМО при наличии одного телефонного номера.

Решение: Тогда, , т.е. в среднем диспетчер ответит только на 25% звонков Вывод: Одного номера недостаточно

25,03090

30

Q

обt

)/1(90 час )/1(30)/1(2

11часмин

tоб

75,0откP 5.2225,090 A - среднее число обслуженных заявок

Page 44: Курс «Имитационное моделирование»

44

Системы массового обслуживания

Многоканальная СМО с отказамиРассмотрим классическую задачу Эрланга:Имеется п каналов, на которые поступает поток заявок ,с

интенсивностью . Поток обслуживаний имеет интенсивность . Найти предельные вероятности состояний системы и показатели ее эффективности.

Граф состояний СМО соответствует процессу гибели и размножения:

Состояние Sk – когда в СМО заняты k каналов.

S2SnS1S0

2

3 n

Page 45: Курс «Имитационное моделирование»

45

Системы массового обслуживания

По формулам для процесса гибели и размножения:

Обозначим – приведенная интенсивность потока

заявок;

Тогда,

………..

………

;)!

...!

...!2

1( 12

2

0

n

n

k

k

nkp

;)!

...!

...!2

1( 12

0

nkp

nk

;01 pp

;! 0p

kp

k

k

;!2 0

2

2 pp

;! 0p

np

n

n

Формулы Эрланга

Page 46: Курс «Имитационное моделирование»

46

Системы массового обслуживания

Вероятность отказа СМО есть предельная вероятность того, что все п каналов системы будут заняты:

Относительная пропускная способность:

Абсолютная пропускная способность:

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

0!p

nP

т

отк

0!11 p

nPQ

т

отк

)!

1( 0pn

QAт

k

n

k

pkk

0

Page 47: Курс «Имитационное моделирование»

47

Системы массового обслуживания

Пример: В условиях предыдущей задачи определить оптимальное число телефонных номеров, если условием оптимальности считать удовлетворение в среднем из каждых 100 заявок не менее 90 заявок на переговоры.

Решение: Рассчитаем интенсивность нагрузки канала: , т.е. за время среднего (по продолжительности) телефонного разговора поступает в

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

(телефонных номеров) п=2,3,4,… и определять характеристики СМО.

330

90

Page 48: Курс «Имитационное моделирование»

48

Системы массового обслуживания

Например, при n=2:

По условию оптимальности Q0.90 необходимо установить 5 телефонных номеров.

118.0)!2

331( 1

2

0 p 471.0118.0)!2

3(1 1

2

Q

4.42471.090 A

Характеристики

Число каналов (телефонных номеров)

1 2 3 4 5 6

Q 0.25 0.47 0.65 0.79 0.90 0.95

A 22.5 42.4 58.8 71.5 80.1 85.3

Page 49: Курс «Имитационное моделирование»

49

Системы массового обслуживания

Пример: В вычислительный центр коллективного пользования с 3 рабочими станциями поступают заказы на вычислительные работы. При загрузке всех ЭВМ вновь поступивший заказ не принимается. Среднее время работы с одним заказом – 3 часа. Интенсивность потока заявок 0.25 (1/ч). Найти предельные вероятности состояний и показатели эффективности.

Решение: По условию n=3 =0.25(1/ч) = 3 часа

Отсюда,

Интенсивность нагрузки: (1/ч)

обt33.0

3

11

îát

75.033.0

25.0

Page 50: Курс «Имитационное моделирование»

50

Системы массового обслуживания

Рассчитаем предельные вероятности:

Вывод: В стационарном режиме в среднем 47% времени нет ни одной заявки; 35,7 % времени – обрабатывается 1 заявка; 13,4% времени – обрабатываются 2 заявки; 3,3% времени – обрабатываются 3 заявки;

476.0)!3

75.0

!2

75.075.01( 1

32

0 p

357.0476.075.01

p

134,0476.0!2

75.0 2

2p

033,0476.0!3

)75.0( 3

3p

033,03 pPотк

Page 51: Курс «Имитационное моделирование»

51

Системы массового обслуживания

Q=1-0.033=0.067 из каждых 100 заявок в среднем будет обслужено 96,7;

A=0.25*0.967=0.242 в час будет обслужено в среднем 0.242 заявки

каждая из трех ЭВМ будет занята

обслуживанием заявок в среднем на = 29,2%

Замечание: При оценке эффективности работы вычислительного центра необходимо сопоставить доходы от выполнения заявок с потерями от простоев ЭВМ. Что важнее – высокая пропускная способность СМО или значительный простой оборудования?

725,033.0

242.0k

3

5.72

Page 52: Курс «Имитационное моделирование»

52

Раздел I. «Теория массового обслуживания» (продолжение)

Тема «Системы массового обслуживания»

Лекция №5

Page 53: Курс «Имитационное моделирование»

53

Системы массового обслуживания

СМО с ожиданием (очередью)

Помимо показателей эффективности A, Q, и Pотк рассмотрим следующие:

Lсист – среднее число заявок в системе;

Tсист – среднее время пребывания заявки в системе;

Lоч – среднее число заявок в очереди (длина очереди);

Tоч – среднее время пребывания заявки в очереди;

Pзан – вероятность того, что канал занят (степень загрузки канала)

k

Page 54: Курс «Имитационное моделирование»

54

Случайные процессы

Одноканальная СМО с неограниченной очередью

Имеется 1 канал, на которые поступает поток заявок с интенсивностью . Поток обслуживаний имеет интенсивность . Найти предельные вероятности состояний системы и показатели ее эффективности.

…….

Состояние S0 – канал свободен;

Состояние S1 – канал занят, очереди нет;

Состояние S2 – канал занят, в очереди 1 заявка;…………..

Состояние Sk – канал занят, в очереди (k-1) заявка;…………..

S2 SkS1S0

Page 55: Курс «Имитационное моделирование»

55

Системы массового обслуживания

Вопрос: Существуют ли предельные вероятности? Ведь при t очередь может неограниченно возрастать.

Доказано!При предельные вероятности существуют.При очередь растет до бесконечности.

Т.к. , то геометрический ряд сходится к суммеОтсюда, … …Предельные вероятности образуют убывающую

геометрическую прогрессию со знаменателем

11

121

2

0..)...1(...)...1(

k

k

p

1 1

1

10

p )1( k

kp)1(2

2 p)1(

1 p

1

Page 56: Курс «Имитационное моделирование»

56

Системы массового обслуживания

Найдем показатели эффективности СМО:

, где - среднее число заявок, находящихся под обслуживанием;

По формуле матожидания

Теорема. При любом характере потока заявок

распределении времени обслуживания и дисциплине обслуживания выполняется:

1....)1(

11

k

kkkсист kkpL

обсисточ LLL обL

000 1)1(10 pppLоб

1

2

очL

систсист LT1

очоч LT1

Формулы Литтла

Page 57: Курс «Имитационное моделирование»

57

Системы массового обслуживания

Пример: В порту имеется один причал для разгрузки судов. Интенсивность потока судов равна 0,4 (судов в сутки). Среднее время разгрузки одного судна составляет 2 суток. Предполагается, что очередь может быть неограниченной длины. Найти показатели эффективности работы причала, а также вероятность того, что ожидают разгрузки не более чем 2 судна.

Решение: n=1

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

80.024.0 обt

1

Page 58: Курс «Имитационное моделирование»

58

Системы массового обслуживания

Вероятность того, что причал свободен p0=1-0.8Вероятность того, что причал занят pзан=1-0.2=0.8По формуле предельных вероятностей:p1=0.8(1-0.8)=0.16 - вероятность, что у причала 1 судно;p2=0.82(1-0.8)=0.128 - вероятность, что у причала 2 судна

(т.е. 1 находится в очереди);p3=0.83(1-0.8)=0.1024 - вероятность, что у причала 3

судна (т.е. 2 находятся в очереди);Вероятность того, что разгрузку ожидают не более, чем 2 судна: p= p1 +p2+ p3=0.3904

Эффективность разгрузки низкая. Нужно или n.

2,38.01

)8.0( 2

очL 84.0

2.3очT 4

8.01

8.0

систL 10

4.0

4систT

обt

Page 59: Курс «Имитационное моделирование»

59

Системы массового обслуживания

Многоканальная СМО с неограниченной очередьюИмеется n каналов с неограниченной очередью и потоком

заявок с интенсивностью . Поток обслуживания имеет интенсивность . Найти предельные вероятности состояний системы и показатели ее эффективности.

….. …..

….. ….. …..

S0- все каналы свободны ………….

Sn – заняты все каналы, очередь пустая…………

Sn+r – заняты все каналы, в очереди r заявок………….

S2 SkS1S0

2

3 k

)1( k

Sn Sn+1 Sn+rn

n n n n

Page 60: Курс «Имитационное моделирование»

60

Системы массового обслуживания

Доказано:

при предельные вероятности существуют.

При очередь растет до бесконечности.

… … … …

- вероятность, что заявка окажется в очереди

1n

1n

112

0 ))(!!

...!2!1

1(

nnn

pnn

01 !1pp

0

1

)(!p

nnP

n

оч

0!p

kp

k

k

0!

pn

pn

n

0

1

1 !p

nnp

n

n

0!p

nnp

r

rn

rn

k - среднее число занятых каналов

2

01

)1(!n

nn

pL

n

оч

- среднее число заявок в очереди

очсист LL

среднее число заявок в СМО

Page 61: Курс «Имитационное моделирование»

61

Системы массового обслуживания

Замечание: При для СМО с неограниченной очередью любая заявка будет обслужена, т.е. Pотк=0, Q=1, A= .

Пример: В универсаме к кассе поступает поток покупателей с интенсивностью = 81 чел. в час. Средняя продолжительность обслуживания кассиром одного покупателя tоб=2 мин. Определить:

a) Минимальное количество кассиров пmin, при котором очередь не будет расти до бесконечности, и соответствующие характеристики обслуживания при п=пmin.

б) Оптимальное количество nопт контролеров-кассиров, при котором относительная величина затрат Сотн, связанная с издержками на содержание кассиров и с

1n

Page 62: Курс «Имитационное моделирование»

62

Системы массового обслуживания

пребыванием в очереди покупателей (задаваемая, например, по формуле будет минимальна, и сравнить характеристики обслуживания при п=пmin и n=nопт.в) Вероятность того, что в очереди будет не более трех покупателей.

Решение: а) По условию =81 (1/ч)=1.35(1/мин).

Очередь не будет до при при n< .

Таким образом, nmin=3 – минимальное число кассиров.

очотн TC 3/1

7.2235.1 обt

1n

Page 63: Курс «Имитационное моделирование»

63

Системы массового обслуживания

Найдем характеристики обслуживания СМО при п = 3.

Т.о. 2.5% рабочего времени кассиры простаивают.Вероятность того, что будет очередь:

Среднее число покупателей в очереди к кассе:

Среднее время ожидания в очереди:

735.0025.0)7.23(!3

)7.2( 4

очP

025.0))7.23(!3

)7.2(

!3

)7.2(

!2

)7.2(7.21( 1

432

0

p

35.7)

37.2

1(!33

025.0)7.2(

2

4

очL

44.535.1

35.7очT

Page 64: Курс «Имитационное моделирование»

64

Системы массового обслуживания

Среднее число покупателей в кассах (с учетом очереди):

Среднее время нахождения в кассах (с учетом очереди):

Среднее число занятых обслуживанием кассиров:

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

Итак, при n=3 узел кассового обслуживания перегружен!

)(05.107.235.7 минLсист

)(44.735.1

05.10минTсист

7.2k

9.03

7.2

nkзан

Page 65: Курс «Имитационное моделирование»

65

Системы массового обслуживания

б) При n=3:

Рассчитаем Cотн при n=4,5,6,7:

54.1844.5335.1

33

1 очотн TnC

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

Число кассиров

3 4 5 6 7

Вероятность простоя кассиров p0

0.025 0.057 0.065 0.067 0.067

Среднее число покупателей в очереди Tоч

5.44 0.6 0.15 0.03 0.01

Затраты Cотн 18.54 4.77 4.14 4.53 5.22

Page 66: Курс «Имитационное моделирование»

66

Системы массового обслуживания

Т.о. min Cотн = 4,14 при n=5 nопт=5

Рассчитаем остальные характеристики для n=5:

Pоч=0.091 Lоч=0.198 Tоч=0.146 (мин)

Lсист=2.9 Tсист=2.15 (мин)

Вывод: Среднее число занятых кассиров не изменилось, но остальные показатели улучшились!

7.2k

54.05

7.2

nkзан

Page 67: Курс «Имитационное моделирование»

67

Системы массового обслуживания

в) Вероятность того, что в очереди будет не более трех покупателей:

При n=5:

Для сравнения при n=3

35251554321)3( pppppppprP

3525151 pppPoч

065.0!55

)7.2(065.0

)7.25(!5

)7.2(1)3(

66

rP

986.0065.0!55

)7.2(065.0

!55

)7.2(3

8

2

7

464.0)3( rP

Page 68: Курс «Имитационное моделирование»

68

Системы массового обслуживания

Пример: Железнодорожная касса с двумя окошками продает билеты в два пункта А и В. Интенсивность потока пассажиров, желающих купить билеты, для обоих пунктов одинакова: A=В = 0,45 (пассажиров в минуту). На обслуживание пассажиров кассир тратит в среднем 2 мин. Рассматриваются два варианта продажи билетов:

1 ВАРИАНТ: Билеты продаются в одной кассе с двумя окошками одновременно в оба пункта А и В;

2 ВАРИАНТ: Билеты продаются в двух специали-зированных кассах (по одному окошку в каждой), одна только в пункт А, другая - только в пункт В.

Page 69: Курс «Имитационное моделирование»

69

Системы массового обслуживания

Необходимо:

а) Сравнить два варианта продажи билетов по основным характеристикам обслуживания.

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

Page 70: Курс «Имитационное моделирование»

70

Системы массового обслуживания

Решение:

а) 1 ВАРИАНТ – это двухканальная СМО с неограни-ченной очередью.

=0.45+0.45=0.9

Т.к. ,то предельные вероятности .

5.02

1 8.1

5.0

9.0

19.02

8.1

n

0526.0))8.12(!2

)8.1(

!2

)8.1(

!1

8.11( 1

32

0

p Вероятность простоя двух кассиров

26.7)

2

8.11(!22

0526.0)8.1( 3

очL 47.98.167.7 систL

Page 71: Курс «Имитационное моделирование»

71

Системы массового обслуживания

По формулам Литтла:

2 ВАРИАНТ – это две одноканальные СМО с неограни-ченной очередью. Для каждой СМО =0.45

Вывод: По 2му варианту длина очереди и среднее время ожидания больше, чем по 1му варианту.

19.0 n

1.89.01

)9.0( 2

очL 99.01

9.0

систL

)(47.99.0

67.7минTоч )(5.10

9.0

47.9минTсист

5.0

)(1845.0

1.8минTоч )(20

45.0

9минTсист

Page 72: Курс «Имитационное моделирование»

72

Системы массового обслуживания

б) При среднем времени обслуживания

T1сист=10.5 (мин) – по 1му варианту очереди;

T2сист=20 (мин) – по 2му варианту очереди.

Требуется найти , чтобы T2сист < T1сист

Т.к.

Вывод: При уменьшении среднего времени обслуживания до 1,83 мин. 2й вариант очереди более эффективный.

систT11

1

)(2 минt об

обt сист

об

обT

t

t1

1

обt

сист

систоб

T

Tt

1

1

1 )(83.1

5.1045.01

5.10минt об

Page 73: Курс «Имитационное моделирование»

73

Раздел I. «Теория массового обслуживания» (продолжение)

Тема «Системы массового обслуживания»

Лекция №6

Page 74: Курс «Имитационное моделирование»

74

Системы массового обслуживания

СМО с ограниченной очередью

Пусть число заявок в очереди ограничено и не превышает некоторого заданного числа m. Если в очереди все места заняты, заявка покидает СМО необслуженной.

Для вычисления предельных вероятностей состояний и показателей эффективности таких СМО используется прежний подход, только суммируется не бесконечная прогрессия, а конечная.

Среднее время пребывания в очереди и СМО определяются по формулам Литтла.

Page 75: Курс «Имитационное моделирование»

75

Системы массового обслуживания

Одноканальная СМО с ограниченной очередью

…..

Lоб=1-p0 – среднее число заявок под обслуживанием

Lcист= Lоч+Lоб

20 1

1

mp

01 pp 02

1 pp 0pp kk

01

1 pPP mmотк

)1( 01 pQA m

011 pQ m

11

)1(12

2m

m

оч

mmL

Page 76: Курс «Имитационное моделирование»

76

Системы массового обслуживания

Многоканальная СМО с ограниченной очередью

…. …. …..

…..

1

1

0

)1(!

)1(

!...

!11

nnn

n

np

mn

n

01 !1pp

0!p

nnPP

m

mn

mnотк

)!

1( 0pnn

QAm

mn

0!11 p

nnPQ

m

mn

отк

0!p

kp

k

k

0!p

np

n

n

0

1

1 !p

nnp

n

n

0!p

nnp

r

rn

rn

mr ,1

Page 77: Курс «Имитационное моделирование»

77

Системы массового обслуживания

Пример: В условиях задачи про причал и разгрузку судов найти показатели эффективности работы причала, если известно, что приходящее судно покидает причал (без разгрузки), если в очереди на разгрузку стоит более 3 судов.

2

01

)1(!

)))(1(1(

nnn

nnmmp

L

mn

оч

)!

1( 0pnn

km

mn

kLL очсист

Page 78: Курс «Имитационное моделирование»

78

Системы массового обслуживания

Решение: По условию m=3 =0.8

297.08.01

8.01230

p - вероятность того, что причал свободен

122.0297.08.0 13 откP -вероятность того, что судно покинет

причал без разгрузки

878.0122.01 Q 351.0878.04.0 A

297.0)8.01)(8.01(

))8.0313(8.01(8.023

32

очL

)(152.24.0

861.0сутокTоч

564.1)297.01(861.0 систL

)(91.34.0

564.1сутокTсист

Page 79: Курс «Имитационное моделирование»

79

Раздел I. «Теория массового обслуживания» (продолжение)

Тема «Законы распределения случайных величин при имитации процессов»

Лекция №7

Page 80: Курс «Имитационное моделирование»

80

Законы распределения случайных величин

Нормальное распределение (гауссово)Является одним из наиболее важных и часто

используемых видов непрерывных распределений.Определение: Непрерывная случайная величина t имеет

нормальное распределение с параметрами m и σ, если плотность распределения вероятности p(t) имеет вид:

где m – математическое ожидание;σ – среднее квадратическое отклонение.

2

2

2

)(

2

1)(

mt

etp

Page 81: Курс «Имитационное моделирование»

81

Законы распределения случайных величин

Теорема (Одна из форм центральной предельной теоремы): Пусть - случайная величина, явля-ющаяся суммой n независимых случайных величин, распределенных по неизвестному закону и имеющих конечный третий абсолютный момент. Тогда при n распределение случайной величины стремится к нормальному с математическим ожиданием M(t) и дисперсией D(t), определяемыми из следующих соотношений:

где mi – математическое ожидание, - дисперсия случайной величины ti.

n

iitnT

1

nTt

n

iimtM

1

)(

n

iitD

1

2)( 2i

Page 82: Курс «Имитационное моделирование»

82

Законы распределения случайных величин

Для приближенной оценки среднего квадратического отклонения σ можно использовать правило «трех сигм», согласно которому отклонение по абсолютной величине нормально распределенной случайной величины от ее математического ожидания практически не превышает утроенного среднего квадратического отклонения (с вероятностью 0,9973). Таким образом, если в результате наблюдений над случайной величиной получены a - ее минимальное значение и b - максимальное значение, то можно полагать, что .

6

ab

Page 83: Курс «Имитационное моделирование»

83

Законы распределения случайных величин

Равномерное распределениеПрименяется в случае, когда известно, что случайная

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

Плотность вероятностей равномерного распределения на интервале (m-s,m+s) имеет следующий вид:

Дисперсия

smtпри

smtsmприs

smtпри

tp

,0

;,2

1

;,0

)(

312

))()(()(

22 ssmsmtD

m-математическое ожидание

Page 84: Курс «Имитационное моделирование»

84

Законы распределения случайных величин

Экспоненциальное распределение Также занимает важное место при проведении

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

Функция плотности вероятностей экспоненциального распределения с параметром задается выражением:

.0,0

;0,)(

tпри

tприetp

t

Page 85: Курс «Имитационное моделирование»

85

Законы распределения случайных величин

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

Рассмотрим предельную теорему о суперпозиции потоков. Предположим, что наблюдается k независимых потоков событий. В свою очередь в каждом потоке наблюдается элементарных событий. Интерва-лы времени между событиями – независимые случайные величины, распределенные по неизвестному закону с математическим ожиданием .

1

)( tM2

1)(

tD

),1( kjm j

j1

Page 86: Курс «Имитационное моделирование»

86

Законы распределения случайных величин

Спроектируем моменты всех событий на общую ось времени и рассмотрим случайный интервал времени t=T{k} между двумя событиями полученного суммарного потока, состоящего из n событий, где

Теорема: При n распределение случайной величины интервала t=T{k} в суммарном потоке событий, состоящем из k независимых потоков, стремится к экспоненциальному с математическим ожиданием

k

jjmn

1

k

jj

tM

1

1)(

Page 87: Курс «Имитационное моделирование»

87

Законы распределения случайных величин

Обобщенное распределение Эрланга

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

Пусть математическое ожидание длительно-сти всего процесса при средней длительности элементарной составляющей ,тогда

1

)( tM

k1

.0,0

;0,)!1(

)()(

1

tпри

tприek

ktk

tpkt

k

ktD

2

1)(

При k=1 получаем экспоненциальное

распределение

Page 88: Курс «Имитационное моделирование»

88

Законы распределения случайных величин

Треугольное распределение

Линейное изменение функции плотности вероятностей. Пусть a - минимальное, b - максимальное и m-наиболее вероятное значение случайной величины. Тогда

btпри

btmприbmab

bt

mtaприamab

at

atпри

tp

,0

;,))((

)(2

;,))((

)(2

;,0

)(

3)(

bmatM

36

)()()()(

222 ammbabtD

При получаем экспоненциальное

распределение

2

bam

Page 89: Курс «Имитационное моделирование»

89

Раздел II. «Инструментальные средства имитационного моделирования»

Тема «Введение в имитационное моделирование»

Лекция №8

Page 90: Курс «Имитационное моделирование»

90

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

Определение: Имитационное моделирование (simulation modelling) - разновидность аналогового моделирования, реализуемого с помощью набора математических инструментальных средств, специальных имитирующих компьютерных программ и технологий программирования, позволяющих посредством процессов-аналогов провести целенаправленное исследование структуры и функций реального сложного процесса в памяти компьютера в режиме «имитации», выполнить оптимизацию некоторых его параметров.

Определение: Имитационная модель – специальный программный комплекс, позволяющий имитировать деятельность какого-либо сложного объекта.

Page 91: Курс «Имитационное моделирование»

91

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

Примеры типовых задач, решаемых средствами имитационного моделирования при управлении экономическими объектами:

моделирование процессов логистики для определения временных и стоимостных параметров;

управление инвестиционными проектами на различных этапах его жизненного цикла с учетом возможных рисков;

прогнозирование финансовой деятельности предприятий на конкретный период времени;

анализ адаптивных свойств, расчет параметров надежности и задержек обработки информации в банковских информационных системах;

Page 92: Курс «Имитационное моделирование»

92

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

оценка параметров надежности и задержек в централизованных информационных системах с коллективным доступом (кассы продаж ж/д и авиабилетов, системы бронирования и т.д.;

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

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

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

Page 93: Курс «Имитационное моделирование»

93

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

Современные программные комплексы имитационного моделирования:

«Process Charter» (разработчик - фирма «Scitor», США);

«Powersim» (фирма «Modell Data», Норвегия); «Ithink» (фирма «High Performance Systems», США); «Extend+BPR» (фирма «Imagine That!», США); «ReThink» (фирма «Gensym», США); «Pilgrim» (разработчики системы – Московский

институт статистики и информатики; фирма «МегаТрон», Россия; фирма «Keisy», Нидерланды; фирма «Enit», Эстония).

Page 94: Курс «Имитационное моделирование»

94

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

Достоинства программного пакета «Pilgrim-5» ориентация на совместное моделирование

материальных, информационных и финансовых процессов;

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

возможность непосредственного анализа результатов моделирования благодаря технологии создания функциональных окон наблюдения за моделью с помощью Visual C++, Delphy или других средств;

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

Page 95: Курс «Имитационное моделирование»

95

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

Средством построения моделей в системе PILGRIM является графический конструктор «Gem» (от «Generator models»).

Схема имитационной модели - ориентированный граф, вершины которого представляют собой компоненты элементарных процессов, а дуги определяют направление потоков заявок и управляющих воздействий в моделируемой системе.

Конструктор Gem генерирует программу на языке С++, которая в дальнейшем должна быть скомпилирована в составе проекта в среде MS Developer Studio, где предварительно должен быть установлен Visual C++ с библиотеками Pilgrim.

Page 96: Курс «Имитационное моделирование»

96

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

Этапы построения имитационной модели1) Анализ структуры моделируемого процесса;2) Определение входных и выходных параметров

модели;3) Построение графа модели с помощью конструктора

GEM (либо прямое создание программного файла);4) Описание узлов графа (определение значений

параметров узлов модели). 5) Определение условий выбора узла, если в модели

имеются ветвления;6) Компиляция модели.

Page 97: Курс «Имитационное моделирование»

97

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

Транзакты

Основной динамической единицей любой модели, работающей под управлением имитатора, является транзакт.

Определение: Транзакт - это формальный запрос на какое-либо обслуживание.

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

Page 98: Курс «Имитационное моделирование»

98

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

Транзакт может выполнять следующие действия:

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

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

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

определять время обслуживания, накапливать информацию о пройденном пути и иметь информацию о своем дальнейшем маршруте.

Page 99: Курс «Имитационное моделирование»

99

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

Основные параметры транзактов:уникальный идентификатор транзакта;идентификатор семейства, к которому принадлежит транзактнаборы различных ресурсов, захватываемые и используемые транзактом;время жизни транзакта;приоритет транзакта;параметры обслуживания транзакта в узлах, включая вероятностные характеристики.

Page 100: Курс «Имитационное моделирование»

100

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

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

анализа и др. и другие…

Page 101: Курс «Имитационное моделирование»

101

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

Узлы Узлы графа имитационной модели – это центры

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

Примеры узлов:• счет бухгалтерского учета;• производственный или ремонтный участок;• транспортное средство, перемещающее ресурсы;• информационный центр и др.

Page 102: Курс «Имитационное моделирование»

102

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

Определение: Событием называется факт выхода из узла одного транзакта. Интервалы между событиями являются, как правило, случайными величинами. События модели происходят в некотором модельном времени.Определение: Модельное время – это виртуальное время, в котором автоматически упорядочиваются все события, причем не обязательно пропорционально реальному времени, в котором развивается моделируемый процесс.Определение: Масштаб времени – это число, которое задает длительность моделирования одной единицы модельного времени, пересчитанной в секунды, в секундах астрономического реального времени при выполнении модели.

Page 103: Курс «Имитационное моделирование»

103

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

Определение: Относительный масштаб времени – это отношение, показывающее, сколько единиц модельного времени содержится в одной единице процессорного времени.Выделяют четыре разновидности масштаба времени:1) Реальный. Вводится значение выбранной единицы измерения модельного времени, выраженное в секундах. Например, если 1 ед.мод.вр.=1 час, то вводится значение 3600. Относительный масштаб = 1.2) Максимально ускоренный. Вводится значение 0. Время моделирования определяется процессорным временем выполнения модели. Позволяет достигнуть максимального быстродействия.

Page 104: Курс «Имитационное моделирование»

104

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

3) Пропорционально ускоренный. Вводится значение, меньшее по сравнению с выбранной единицей модельного времени, выраженной в секундах. Например, если 1 ед.мод.вр.=1 час и введено значение 0.1, то 1 час реального процесса будет моделироваться за 0.1 секунды. При этом относительный масштаб = 1/36000.4) Замедленный. Вводится значение, большее по сравнению с выбранной единицей модельного времени, выраженной в секундах. Например, если 1 ед.мод.вр.=1 час и введено значение 7200, то модель будет выполняться в 2 раза медленнее реального процесса. При этом относительный масштаб = 2.

Page 105: Курс «Имитационное моделирование»

105

Раздел II. «Инструментальные средства имитационного моделирования» (продолжение)

Тема «Структурирование имитационной модели»

Лекция №9

Page 106: Курс «Имитационное моделирование»

106

Структура имитационной модели

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

Оператор Необходимость применения в модели

1 #include <Pilgrim.h> всегда необходим

2 [Глобальные переменные и функции] в сложных моделях

3 forward всегда необходим

4

5 [Локальные переменные модели] часто необходимы 6 modbeg (p1,p2,p3,p4,p5,p6,p7,p8,p9) всегда необходим

7 ag (p1,p2,p3,p4,p5,p6,p7,p8)………………………… ag (p1,p2,p3,p4,p5,p6,p7,p8)

всегда необходимы

Page 107: Курс «Имитационное моделирование»

107

Структура имитационной модели

8 [Сигнальные функции] в ресурсных моделях

9 network (p1,p2) всегда необходим

10

Вставляется в секцию

Блок описания узловмодели (стохастическая многоуровневая сеть)

Всегда необходим

11 всегда необходим

12 modend (p1,p2,p3,p4) всегда необходим

13 return 0; всегда необходим

14 всегда необходим

Page 108: Курс «Имитационное моделирование»

108

Структура имитационной модели

Макрооперация #include <Pilgrim.h> подключает моделирующую среду имитатора к модели.

MODBEG (p1,p2,p3,p4,p5,p6,p7,p8,p9) - оператор перво-начальной настройки осуществляет первоначальную настройку моделирующих программ и инициализацию в памяти ЭВМ графа модели.Аргументы этой функции имеют следующий смысл:

p1 – символическое имя узла: строка длиной до 14 символов (char);

p2 – максимальный номер узла модели (int), причем 2≤p2≤mmax, где mmax – некоторое граничное значение, задаваемое при установке имитатора на ЭВМ (обычно mmax

=1024);

Page 109: Курс «Имитационное моделирование»

109

Структура имитационной модели

p3 - модельное время, в течение которого необходимо производить моделирование (float);

p4 - произвольное целое число, используемое для настройки датчиков псевдослучайных величин ( long). В каждом узле есть свой независимый датчик. В качестве этого числа полезно использовать значение таймера ЭВМ, обращение к которому имеет следующий вид p4=(long)time(NULL). В этом случае результаты разных прогонов модели будут разными, имеющими случайные отклонения. При отладке лучше использовать постоянную комбинацию цифр, например, p4=(long)2013456789.

Page 110: Курс «Имитационное моделирование»

110

Структура имитационной модели

p5 – признак режима пространственной имитации

(int): earth – поверхность Земли (сферические географические координаты широта и долгота);  plane – декартова плоскость (прямоугольная система координат); cosmos – произвольное пространство (ответ-ственность за правильность его представления возлагается на разработчика модели)    none – если пространственная имитация в моде-ли не используется.

Page 111: Курс «Имитационное моделирование»

111

Структура имитационной модели

p6 – номер (int) одной из очередей (узел типа

QUEUE, ATTACH или SEND), которую необходимо контролировать во времени для анализа динамики задержек в этой очереди с графическим отображением результатов.

p7 – номер (int) одного из процессов (узла типа

PROC), который необходимо контролировать как в пространстве, так и во времени с графическим отображением результатов. Если нет необходимости в графической интерпретации, то указывается none.

Page 112: Курс «Имитационное моделирование»

112

Структура имитационной модели

p8 – номер (int) терминатора (узел типа TERM), на

входе которого необходимо наблюдать интенсивность потока транзактов во время моделирования. Если такой необходимости нет, то указывается none.

p9 – точность:

   если p9=1..6, то имитатор будет

использовать от 1 до 6 знаков после запятой при выводе результатов;

   если p9=none, то результаты будут

округляться до целых значений.

Page 113: Курс «Имитационное моделирование»

113

Структура имитационной модели

NETWORK (p1,p2) - координатор сети процессов. Осуществляет диспетчеризацию транзактов в узлах модели, планирует события в едином модельном времени и активизирует дискретные или непрерывные компоненты модели, имитирующие внешнюю среду.

Аргументы p1 и p2 - это имена (адреса) соответствующих программных функций моделирования внешней среды, производящих интегрирование, решение разностных уравнений, вычисление по формулам и т.д.

Функции float p1(d) и float p2(d), если они необходимы, пишутся пользователем.

Если процессы p1(d) и p2(d) не моделируются, то в качестве p1 и p2 указывается слово dummy.

Page 114: Курс «Имитационное моделирование»

114

Структура имитационной модели

MODEND (p1,p2,p3,p4) - оператор завершения моделирования. Выполняется по истечении времени моделирования, указанного в операторе MODBEG. Позволяет просмотреть на экране монитора графические результаты и выводит итоговые результаты в файл-отчет.

Аргументы функции следующие:

p1 – символическое имя файла-отчета (сhar);

p2 – номер первой страницы отчета (int);

p3 - число строк на каждой странице (int);

p4 - имеет два значения: •  page, если в файле-отчете необходимо проставить

символ перевода страницы; •  none, если символ перевода страницы не ставится.

Page 115: Курс «Имитационное моделирование»

115

Раздел II. «Инструментальные средства имитационного моделирования» (продолжение)

Тема «Функциональные узлы имитационной модели »

Лекция №10

Page 116: Курс «Имитационное моделирование»

116

Функциональные узлы имитационной модели

Узлы имитационной модели характеризуются параметрами, задаваемыми пользователем при написании моделирующей программы. Параметры узлов могут иметь как постоянное, так и переменное значение.

- узел AG - генератор транзактов Узел AG представляет собой генератор транзактов с бесконечной емкостью. Предназначен для создания транзактов имитационной модели. Транзакты генерируются по одному через определенные поль-зователем промежутки времени.

AG

Page 117: Курс «Имитационное моделирование»

117

Функциональные узлы имитационной модели

Аргументы функции AG (p1,p2,p3,p4,p5,p6,p7,p8):

p1 – символическое имя узла: строка длиной до 14 символов (char);

p2 - номер узла-генератора (int);

p3 - приоритет (int), назначаемый каждому сгене-рированному транзакту, число в диапазоне 1- 32767; при отсутствии приоритета p3=none;

p4 – тип функции распределения интервала времени между двумя последовательно сгенерированными транзактами, имеющий значения:1)    norm – нормальное распределение;2) unif – равномерное распределение;

Page 118: Курс «Имитационное моделирование»

118

Функциональные узлы имитационной модели

3)    expo – экспоненциальное распределение;4)    erln – обобщенное распределение Эрланга;5)    beta – треугольное распределение6)    none – если интервал между транзактами является детерминированной величиной.

p5 – величина, зависимая от типа функции распределения (float):   математическое ожидание интервала времени (float) между двумя последовательно сгенерированными транзактами (p4 = norm, unif, expo);   математическое ожидание одного слагаемого этого интервала (p4 = erln);

   минимальное значение интервала (p4= beta);

   постоянная величина этого интервала (p4 = none).

Page 119: Курс «Имитационное моделирование»

119

Функциональные узлы имитационной модели

p6 - величина, зависимая от типа функции распределения (float):•среднеквадратичное отклонение (p4 = norm);•максимальное отклонение от среднего (p4 = unif);•значение zero (p4 = expo, none);•число слагаемых, входящих в случайный интервал и распределенных по экспоненциальному закону (p4 = erln);•наиболее вероятное значение интервала времени между двумя последовательно сгенери-рованными транзактами (p4 = beta).

Page 120: Курс «Имитационное моделирование»

120

Функциональные узлы имитационной модели

p7 – величина, зависимая от типа функции распределения

(float):•максимальное значение интервала времени между двумя последовательно сгенерированными транзактами (p4 =

beta);

•значение zero (p4=norm, unif, expo, erln, none).

p8 - номер узла (int), в который передается

сгенерированный транзакт (узел-приемник).

Параметры генератора могут быть изменены во время работы модели с помощью команды cheg (change generator).

Page 121: Курс «Имитационное моделирование»

121

Функциональные узлы имитационной модели

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

S

Page 122: Курс «Имитационное моделирование»

122

Функциональные узлы имитационной модели

Аргументы функции SERV (p1,p2,p3,p4,p5,p6,p7,p8):

p1 – символическое имя узла: строка длиной до 14

символов (char);

p2 - число обслуживающих каналов (int), при этом ;

p3 - дисциплина обслуживания:

 abs - приоритетная, с прерыванием обслуживания менее приоритетного транзакта более приоритетным;

  none – бесприоритетная.

Page 123: Курс «Имитационное моделирование»

123

Функциональные узлы имитационной модели

p4 – тип функции распределения интервала времени

обслуживания транзакта в узле SERV:

1)    norm – нормальное распределение;

2)    unif – равномерное распределение;

3)    expo – экспоненциальное распределение;

4)    erln – обобщенное распределение Эрланга;

5)    beta – треугольное распределение

6)    none – если интервал между транзактами является детерминированной величиной.

Page 124: Курс «Имитационное моделирование»

124

Функциональные узлы имитационной модели

p5 – величина, зависимая от типа функции распределения

(float):

математическое ожидание интервала времени обслуживания транзакта (p4 = norm, unif, expo);

  математическое ожидание одного слагаемого этого интервала (p4 = erln);

   минимальное значение интервала (p4= beta);

   постоянная величина этого интервала (p4 = none).

Page 125: Курс «Имитационное моделирование»

125

Функциональные узлы имитационной модели

p7 – величина, зависимая от типа функции распределения (float): максимальное значение интервала времени обслу-живания транзакта (p4 = beta);

  значение zero (p4=norm, unif, expo, erln, none).

p8 - номер узла (int), в который передается обслуженный транзакт.

Если задана приоритетная дисциплина обслуживания (p3 = abs), то имеются две возможности для работы с прерванными неприоритетными транзактами: 1) дообслуживание после ухода приоритетного транзакта;2) возобновление обслуживания заново.

Page 126: Курс «Имитационное моделирование»

126

Функциональные узлы имитационной модели

- Узел QUEUE - очередь транзактов (с приоритетами или без приоритетов) Узел QUEUE моделирует очередь транзактов. Строится по одному из двух правил: либо транзакты упорядочены в порядке поступления, либо вновь поступающие транзакты поступают в конец своей приоритетной группы.

Аргументы функции QUEUE (p1,p2,p3):

p1 – символическое имя узла: строка длиной до 14 символов (char);

p2 - тип организации очереди (int):•prty, если очередь с приоритетами;•none, если очередь без приоритетов.

p3 – номер узла-приемника (int).

Q

Page 127: Курс «Имитационное моделирование»

127

Функциональные узлы имитационной модели

Узел TERM - безусловный терминатор транзактов

 Узел TERM удаляет из модели входящий в него транзакт и фиксирует время его существования, начиная с момента выхода этого транзакта из генератора.

Аргумент функции TERM (p1):

p1 – символическое имя узла: строка длиной до 14 символов (char);

T

Page 128: Курс «Имитационное моделирование»

128

Функциональные узлы имитационной модели

Узел KEY - клапан на пути транзактов

Узел KEY - клапан или ключ - работает в модели по принципу “шлагбаума”. Когда клапан закрыт, транзакт не может в него войти из предшествующего узла. Если же клапан открыт, то транзакт проходит через него в следующий узел без задержки. Среднее время пребывания такого узла в закрытом состоянии подсчитывается автоматически. Для управления этим клапаном или ключом существуют вспомогательные функции hold и rels. 

К

Page 129: Курс «Имитационное моделирование»

129

Функциональные узлы имитационной модели

Среднее время задержки - это среднее время пребывания ключа в закрытом состоянии. Число обслуженных транзактов - это число переключений ключа из закрытого состояния в открытое.

Аргументы функции KEY (p1. p2):•p1 – символическое имя узла: строка длиной до 14 символов (char);•p2 – номер узла-приемника (int).

Page 130: Курс «Имитационное моделирование»

130

Функциональные узлы имитационной модели

Узел CREAT - управляемый генератор транзактов (мультипликатор)

Узел CREAT предназначен для создания нового семейства транзактов. Все транзакты в модели принадлежат какому-то семейству. Транзакты, выходящие из обычного генератора AG, принадлежат к семейству с номером 0. Узел CREAT, в отличие от AG - это управляемый генератор. Назначение его самое различное. В замкнутых моделях он применяется для схемы зарядки.

Аргументы функции CREAT (p1,p2,p3,p4,p5,p6):

p1 – символическое имя узла: строка длиной до 14 символов (char);

CR

Page 131: Курс «Имитационное моделирование»

131

Функциональные узлы имитационной модели

p2 – идентификатор (int) порождаемого семейства транзактов;

p3 – число порождаемых транзактов (int);

p4 – имеет следующие значения:•copy – для тиражирования параметров порождающего транзакта каждому порожденному (включая время жизни);•none - для присвоения каждому порожденному транзакту в качестве параметров нулевых значений.

p5 – номер узла (int), в который направляются порожденные транзакты.

p6 – номер узла (int), в который направляется порождающий транзакт.

Page 132: Курс «Имитационное моделирование»

132

Функциональные узлы имитационной модели

Логика функционирования узла CREAT:1) через узел проходит порождающий транзакт, который принадлежит семейству f1, и поступает в узел p6;

2) одновременно с этим в узле генерируются p3 новых транзактов, принадлежащих семейству с номером f2= p2, которые будут направлены в узел p5. В общем случае p5 и p6 - любые узлы (кроме ag), в частности - это может быть один и тот же узел. Номера семейств f1 и f2 в общем случае могут совпадать.

Page 133: Курс «Имитационное моделирование»

133

Функциональные узлы имитационной модели

Узел DELET – управляемый терминатор

транзактов (демультипликатор)

Узел DELET предназначен для уничтожения группы транзактов, принадлежащих семействам из диапазона, задаваемому параметрами p2 и p3. В отличие от терминатора TERM данный узел управляется специальным поглощающим транзактом.

Аргументы функции DELET (p1,p2,p3,p4,p5,p6):

p1 – символическое имя узла: строка длиной до 14 символов (char);

p2 – начало (int) диапазона номеров семейств уничтожаемых транзактов;

Del

Page 134: Курс «Имитационное моделирование»

134

Функциональные узлы имитационной модели

p3 – конец (int) диапазона номеров семейств уничтожаемых транзактов;

p4 – идентификатор (int) семейства, к которому принадлежит поглощающий транзакт;

p5 – число уничтожаемых транзактов (int);

p6 – номер узла (int), в который направляется поглощающий транзакт.

Page 135: Курс «Имитационное моделирование»

135

Функциональные узлы имитационной модели

Логика функционирования узла DELET:

1)     в узел входит поглощающий транзакт семейства p4 и находится там до тех пор, пока в него не поступят p5 транзактов семейства из диапазона [p2;p3]. После поступления требуемого количества транзактов они мгновенно уничтожаются, а поглощающий транзакт переходит в узел p6.

2) если в узел DELET так и не поступят p5 транзактов, то поглощающий транзакт будет все время находиться в нем, блокируя его для поступления других поглощающих транзактов. Для принудительного изгнания такого транзакта из узла используется функция FREED(i).

Page 136: Курс «Имитационное моделирование»

136

Раздел II. «Инструментальные средства имитационного моделирования» (продолжение)

Тема «Функциональные узлы имитационной модели »

Лекция №11

Page 137: Курс «Имитационное моделирование»

137

Функциональные узлы имитационной модели

Узлы SEND и DIRECT - операции с денежными ресурсами

Предназначены для моделирования финансовой динамики на счетах бухгалтерского учета предприятия (фирмы). Узлом считается счет (субсчет) бухгалтерского учета. Пусть i - номер этого узла. Транзакт, вошедший в узел i, - это запрос на проводку со счета i определенной суммы на какой-то другой счет. При отсутствии требуемой суммы транзакт ожидает момент поступления на счет i достаточных средств. Таким образом, узел с номером i, который формирует запрос на бухгалтерскую проводку, - это специальная очередь транзактов.

SnDir

Page 138: Курс «Имитационное моделирование»

138

Функциональные узлы имитационной модели

Для описания узла-счета с номером i предназначен узел SEND (p1,p2,p3,p4,p5) с аргументами:

p1 – символическое имя узла: строка длиной до 14 символов (char);

p2 – узел-счет, на который требуется перевести заданную сумму (int).

p3 – размер заданной суммы (double). В обязательном порядке определяется до второго знака после запятой.

p4 – возможность работы с приоритетами:   prty, если требования на перечисление денег удовлетворяются с учетом приоритетов. В случае отсутствия необходимой суммы на счете i транзакты образуют очередь в узле SEND, причем ближе к голове очереди находится более приоритетная группа транзактов.

Page 139: Курс «Имитационное моделирование»

139

Функциональные узлы имитационной модели

Внутри приоритетной группы транзакты расположены по возрастанию требуемой суммы. Если запрашиваемые суммы одинаковы, то транзакты расположены в хронологическом порядке (правило FIFO – «First In First Out»).   none, если требования на перечисление не имеют приоритетов. Тогда организация транзактов в очереди осуществляется по правилу FIFO.

p5 – номер узла типа DIRECT, играющего роль «финансового директора» и выполняющего проводки по мере необходимости.Событием в узле типа SEND является факт выполнения проводки со счета i на счет p2. Момент времени этого события - это момент времени проводки, определяемый выводом транзакта из узла SEND.

Page 140: Курс «Имитационное моделирование»

140

Функциональные узлы имитационной модели

saldo - внутренний атрибут узла SEND, отражающий остаток средств на счете i. defic - дефицит средств на счете i. Если атрибут saldo=0, и в этом узле имеются транзакты запросившие проводки, то суммарный дефицит затребованных этими транзактами сумм автоматически отражается в атрибуте defic.Для управления узлом SEND используется функция ASSIGN (p1,p2,p3) со следующим параметрами:

p1 – номер узла-счета SEND (int);

p2 – признак:add, если требуется добавить средства на счет в размере p3 ;none, если требуется установить сальдо

Page 141: Курс «Имитационное моделирование»

141

Функциональные узлы имитационной модели

p3 – размер денежной суммы (double).Узел DIRECT является своеобразным клапаном, через который могут пройти только те транзакты, проводки по которым можно выполнить. Обслуживание всех узлов SEND, имеющихся в модели может выполняться как одним, так и несколькими узлами типа DIRECT.

Аргументы функции DIRECT (p1,p2):

p1 – символическое имя узла: строка длиной до 14 символов (char);

p2 – узел-приемник транзакта, выполнившего проводку Этот узел может быть любого типа, кроме DIRECT.

Page 142: Курс «Имитационное моделирование»

142

Функциональные узлы имитационной модели

Att Узлы ATTACH и MANAGE - операции с материальными ресурсами

Предназначены для моделирования динамики использования материальных ресурсов, необходимых для работы в моделируемых процессах. Под ресурсом могут пониматься любые объекты окружающего мира (сырье, оборудование, персонал и т.д.). Объем ресурса в модели измеряется в целых числах. В модели все виды используемых процессами ресурсов хранятся в специальных узлах-«складах». Узел-«склад» имеет название ATTACH.

Man

Page 143: Курс «Имитационное моделирование»

143

Функциональные узлы имитационной модели

При посещении транзактом узла ATTACH ему выдается некоторое количество единиц хранящегося там ресурса.

Узел ATTACH - очередь запросов на получение ресурса. Аргументы функции ATTACH (p1,p2,p3,p4):

p1 – символическое имя узла: строка длиной до 14

символов (char);p2 – требуемое количество элементов ресурса (long);

p3 – возможность работы с приоритетами:

   prty, если требования на ресурсы удовлетворяются с учетом приоритетов.

Page 144: Курс «Имитационное моделирование»

144

Функциональные узлы имитационной модели

В случае отсутствия необходимого объема ресурсов транзакты образуют очередь в узле ATTACH, причем ближе к голове очереди находится более приоритетная группа транзактов. Внутри приоритетной группы транзакты расположены по возрастанию требуемого объема ресурсов. Если требования одинаковы, то транзакты расположены в хронологическом порядке (правило FIFO – «First In First Out»).   none, если требования на перечисление не имеют приоритетов. Тогда организация транзактов в очереди осуществляется по правилу FIFO.p4 – номер узла-приемника типа MANAGE. (int), выполняющего функцию «управляющего складом».

Page 145: Курс «Имитационное моделирование»

145

Функциональные узлы имитационной модели

Узел MANAGE проверяет наличие требуемого количества ресурса для каждого транзакта, пришедшего в ATTACH. Если ресурса достаточно, транзакт проходит через узел MANAGE и «путешествует» с захваченными единицами по графу модели. Если ресурсов недостаточно, транзакт остается в очереди в узле ATTACH. Таким образом, узел MANAGE - это своеобразный клапан. Узел MANAGE имеет параметры (p1,p2): p1 – символическое имя узла: строка длиной до 14 символов (char);p2 – узел-приемник транзакта. Таким узлом может быть любой узел модели, кроме MANAGE.

Page 146: Курс «Имитационное моделирование»

146

Функциональные узлы имитационной модели

Для изменения объема ресурса, имеющегося на складе ATTACH используется функция SUPPLY (p1,p2,p3) с параметрами:

p1 – номер узла ATTACH (int);

p2 – признак:•add, если требуется добавить ресурс на склад в

объеме p3 единиц;•none, если требуется заменить складской запас на

объем p3 единиц;

p3 – количество единиц ресурса (long).

Page 147: Курс «Имитационное моделирование»

147

Функциональные узлы имитационной модели

Остаток ресурса и дефицит фиксируется в атрибутах узла rsal и rdef. Дефицит равен суммарному объему запросов всех стоящих в очереди в узле ATTACH транзактов. Полученный на складе ресурс транзакт может вернуть обратно на склад из любого узла модели с помощью команды DETACH (p1,p2), где

p1 – номер узла-склада ATTACH (int);

p2 – число возвращаемых единиц ресурса.

Page 148: Курс «Имитационное моделирование»

148

Функциональные узлы имитационной модели

Узел PROC – транзактно-управляемый процесс

Специальная функция моделирования транзактно-управляемого непрерывного процесса. Объединяет в себе возможности имитации:1) обслуживание в узле подобно SERV с одним каналом;2) перемещение узла по общему полю данных на координатной сетке;3) запуск на время активности функции типа float p2(d), где d - элементарный интервал активности, который определяется системой PILGRIM в процессе моделирования и зависит от параметров p3,p4,p5,p6.

PR

Page 149: Курс «Имитационное моделирование»

149

Функциональные узлы имитационной модели

Интервал требуемого обслуживания транзакта может быть меньше времени пребывания транзакта в этом узле, так как процесс может быть переведен в состояние "пассивен" или "активен" каким-то транзактом из другого узла с помощью функций ACTIV и PASSIV.Если процесс пассивен, то обслуживание транзакта приостанавливается, а выполнение функции p2

прерывается до тех пор, пока процесс не будет переведен в активное состояние.Аргументы функции PROC (p1,p2,p3,p4,p5,p6,p7,p8):

p1 – символическое имя узла: строка длиной до 14

символов (char);

Page 150: Курс «Имитационное моделирование»

150

Функциональные узлы имитационной модели

p2 - возможность подключения внешней программы:

 имя (адрес) программы, написанной пользователем, и моделирующей процесс с помощью формул, дифференциальных уравнений и т.д.;    dummy, если внешняя программа отсутствует.p3 - номер исходной точки, в которую устанавливается

узел PROC перед началом моделирования (int);p4 - тип функции распределения интервала активности

процесса, либо тип координатного пространства. Если это тип функции распределения, то используются условные обозначения:

Page 151: Курс «Имитационное моделирование»

151

Функциональные узлы имитационной модели

•norm – нормальное распределение; •unif – равномерное распределение; •expo – экспоненциальное распределение; •erln – обобщенное распределение Эрланга; •beta – треугольное распределение •none – если интервал является детерминированной величиной.

Обозначения для задания типа пространства: •earth – поверхность Земли (географические координаты широта и долгота);

•plane – декартова плоскость (прямоугольная система координат);

•cosmos – произвольное пространство;•none – если режим пространственной имитации в данном узле не нужен.

Page 152: Курс «Имитационное моделирование»

152

Функциональные узлы имитационной модели

p5 – величина (float), зависимая от параметра p4,

определяющего тип функции распределения интервала активности процесса, либо тип координатного пространства:

•математическое ожидание интервала времени активности (p4 = norm, unif, expo);

•математическое ожидание одного слагаемого этого интервала (p4 = erln);

•минимальное значение интервала (p4= beta);

•постоянная величина этого интервала (p4 = none);•интервал "непрерывного" нахождения этого узла на координатной сетке (p4= earth, plane, cosmos).

Page 153: Курс «Имитационное моделирование»

153

Функциональные узлы имитационной модели

p6 – параметр (float) интервала активности обслуживания, зависимый от параметра p4:

•среднеквадратичное отклонение времени обслуживания (p4 = norm);

•максимальное отклонение от среднего времени обслуживания (p4 = unif);

•значение zero (p4 = expo, none);•число слагаемых, входящих в случайный интервал и распределенных по экспоненциальному закону (p4 = erln);

•наиболее вероятное значение интервала времени обслуживания транзакта (p4 = beta);

•скорость перемещения узла от одной точки пространства к другой (p4= earth, plane, cosmos).

Page 154: Курс «Имитационное моделирование»

154

Функциональные узлы имитационной модели

p7 – величина (float), зависимая от параметра p4:

•значение zero (p4=norm, unif, expo, erln, none).•максимальное значение интервала времени обслуживания транзакта (p4 = beta);

p8 – номер узла-приемника (int).

Page 155: Курс «Имитационное моделирование»

155

Функциональные узлы имитационной модели

Узел DINAM - очередь к процессу с динамическими пространственно- зависимыми приоритетами

Предназначен для моделирования обслуживания транзактов в очереди с динамическими пространственно-зависимыми приоритетами. Эта функция моделирует оптимально-управляемую очередь, которая находится на входе узла типа PROC.

Аргументы функции DYNAM (p1,p2):p1 – символическое имя узла: строка длиной до 14 символов (char);

p2 - номер узла-приемника, в который передается транзакт. Узел PROC обязательно должен использовать свой параметр p4= earth, plane или cosmos.

Din

Page 156: Курс «Имитационное моделирование»

156

Функциональные узлы имитационной модели

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

Функция DYNAM всегда "заглядывает" в узел PROC и анализирует, не следует ли прервать обслуживание находящегося в нем транзакта. Если да, то вычисляется местонахождение текущей точки пространства, в которой находится узел PROC, извлекается из этого узла транзакт обратно в свою очередь и посылается в него более "выгодный" с точки зрения оптимизации транзакт.

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

Page 157: Курс «Имитационное моделирование»

157

Функциональные узлы имитационной модели

Управление переходами в многослойных моделях

Декомпозиция в имитационной модели – это детализация одного узла с помощью совокупности других узлов. Существуют четыре вида декомпозиции процессов:1)общий случай декомпозиции сложного процесса с помощью узлов типа DOWN;2)декомпозиция процессов перечисления денежных средств с помощью узлов типа PAY;3)декомпозиция процессов выделения ресурсов с помощью узлов типа RENT;4)абстрактное объединение группы процессов в один псевдопроцесс с помощью виртуального узла PARENT без образования нового узла.

Page 158: Курс «Имитационное моделирование»

158

Функциональные узлы имитационной модели

Узел DOWN - переход на нижерасположенный слой

Предназначен для объединения большой группы узлов в один общий узел, который находится на одном из слоев модели. Этот узел подвергается декомпозиции на слоях модели, которые расположены ниже.Аргументы функции DOWN (p1,p2,p3):p1 – символическое имя узла: строка длиной до 14 символов (char);p2 - номер узла-приемника на нижнем слое модели (int);p3 - номер узла возврата на данном слое, где расположен узел DOWN.

Down

Page 159: Курс «Имитационное моделирование»

159

Функциональные узлы имитационной модели

Узел PAY - имитация перечисления денежной суммы

Подлежит детализации на более низком уровне с помощью узлов SEND и DIRECT. Аргументы функции PAY (p1,p2,p3,p4,p5,p6,p7):p1 – символическое имя узла (char);p2 – номер узла-счета типа SEND, на который переводится денежная сумма (int);p3 – значение денежной суммы (double);p4 – номер узла-счета типа SEND, c которого переводится денежная сумма (int);p5 – признак работы с приоритетами (prty или none);p6 – номер узла-приемника на нижнем слое (int);p7 – номер узла возврата на данном слое модели, где расположен узел PAY (int).

Pay

Page 160: Курс «Имитационное моделирование»

160

Функциональные узлы имитационной модели

Узел RENT - имитация получения ресурса со склада

Подлежит декомпозиции на более низком уровне с помощью узлов ATTACH и MANAGE. Аргументы функции RENT (p1,p2,p3,p4,p5,p6):p1 – символическое имя узла: строка длиной до 14 символов (char);p2 – требование на число элементов ресурса (long);p3 – номер узла-склада ресурсов ATTACH, с которого необходимо получить ресурсы (int);p4 – признак работы с приоритетами (prty или none);p5 – номер узла-приемника на нижнем слое (int);p6 – номер узла возврата на данном слое модели, где расположен узел RENT (int).

Rent

Page 161: Курс «Имитационное моделирование»

161

Функциональные узлы имитационной модели

Узел PARENT - объединение группы процессов

Является особым типом узла, использующимся исключительно как средство создания наглядных многоуровневых моделей в графическом конструкторе GEM. Виртуальный узел типа PARENT содержит ссылку на плоскость, его детализирующую, т.е. используется для описания процессов, которые можно рассмотреть не отдельной плоскости. При этом он не выполняет никаких действий по обработке транзакта. При генерации программного кода заменяется своей декомпозицией.

Parent

Page 162: Курс «Имитационное моделирование»

162

Раздел II. «Инструментальные средства имитационного моделирования» (продолжение)

Тема «Сигнальные управляющие функции. Параметры транзактов и

узлов»

Лекция №12

Page 163: Курс «Имитационное моделирование»

163

Сигнальные управляющие функции

Сигнальные управляющие функции

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

Описание функций

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

Page 164: Курс «Имитационное моделирование»

164

Сигнальные управляющие функции

CHEG (p2,p3,p4,p5,p6,p7,p8) – перенастроить генератор транзактов AG(p1,p2,p3,p4,p5,p6,p7,p8) на новые значения параметров. Номер перенастраиваемого генератора содержится в параметре p2. Аргументы p3…p8 содержат новые значения параметров и имеют тот же смысл, что и при настройке генератора AG.RELS (i) – открыть узел-клапан KEY с номером i. После выполнения RELS клапан принимает состояние «открыт», если до этого он был закрыт. HOLD (i) – закрыть узел-клапан KEY с номером i. После выполнения HOLD клапан принимает состояние «закрыт», если до этого он был в открытом состоянии.

Page 165: Курс «Имитационное моделирование»

165

Сигнальные управляющие функции

ACTIV (i) – перевести процесс (узел типа PROC) в активное состояние, если он был пассивен. При этом возобновляется обслуживание транзакта (т.е. отсчет активного времени) и выполнение модели процесса (программы с именем p2). Функция ACTIV может выполняться из любого узла, номер которого не равен i.PASSIV (i) – перевести процесс (узел типа PROC) в пассивное состояние, если он был активен. При этом транзакт переводится в стек прерванных транзактов. Прекращается выполнение модели процесса (программы с именем p2). Функция PASSIV может выполняться из любого узла, номер которого не равен i.

Page 166: Курс «Имитационное моделирование»

166

Сигнальные управляющие функции

SUPPLY (p1,p2,p3) - изменить объем ресурса,

имеющегося на складе ATTACH, где p1 – номер узла ATTACH;

p2 – признак: add, если требуется добавить ресурс на

склад в объеме p3 единиц; none, если требуется заменить

складской запас на объем p3 единиц;

p3 – количество единиц ресурса.

DETACH (p1,p2) - вернуть ресурс обратно на склад, где

p1 – номер узла-склада ATTACH;

p2 – число возвращаемых единиц ресурса.

Page 167: Курс «Имитационное моделирование»

167

Сигнальные управляющие функции

ASSIGN (p1,p2,p3) – ассигновать на счет SEND денежные средства, где p1 – номер узла-счета SEND; p2 – признак: add, если требуется добавить средства на счет в размере p3 ; none, если требуется установить сальдо счета в размере p3 единиц; p3 – размер денежной суммы.

CHANGE (p1,p2) – заменить узел обслуживания очереди. Если состав или количество транзактов в узле-очереди (узлы типа QUEUE, SEND, ATTACH) с номером p1 перестают удовлетворять каким-то требованиям, то с помощью данной функции можно перенаправить все транзакты из узла p1 в узел p2, разгрузив тем самым очередь в узле p1.

Page 168: Курс «Имитационное моделирование»

168

Сигнальные управляющие функции

FREED (i) – изгнать уничтожающий транзакт из узла DELET. При непоступлении в узел DELET заданного количества уничтожаемых транзактов (параметр p5), в данном узле все время находится поглощающий транзакт, блокируя тем самым узел DELET для поступления других поглощающих транзактов. При прохождении транзакта через функцию FREED (i) в каком-либо другом узле, с ее помощью генерируется вспомогательный транзакт, который направляется в узел DELET с номером i, выталкивает из этого узла застрявший поглощающий транзакт, приводит DELET в нормальное состояние и сам погибает. Застрявший транзакт направляется в узел p6 в соответствии с заданными параметрами узла DELET.

Page 169: Курс «Имитационное моделирование»

169

Сигнальные управляющие функции

SEWT (x) – поместить текущий транзакт в точку пространства с номером x. Функция приписывает транзакту координаты этой точки путем занесения значения x в параметр транзакта t→tx.

SEWK (x,i) – поместить узел с номером i в точку пространства с номером x. Функция приписывает узлу координаты этой точки путем занесения значения x в параметр узла k→kx.

Page 170: Курс «Имитационное моделирование»

170

Сигнальные управляющие функции

GEOWAY (latA, lonA, latB, lonB) – определить расстояние между точками A и B по их географическим координатам, измеряемым в радианах, причем latA, lonA – широта и долгота точки A, latB, lon B – широта и долгота точки B. Для определения расстояния функция использует основные формулы сферической тригонометрии. Радиусы Земли для разных широт вычисляются по эллипсоиду Красовского.DEKART (xA, yA, xB, yB) – определить расстояние между точками A и B на декартовой плоскости в прямоугольной системе координат. Расстояние вычисляется по формуле: . 22 )()( yByAxBxALAB

Page 171: Курс «Имитационное моделирование»

171

Сигнальные управляющие функции

CLCODE – включить блок операторов языка C++. Позволяет разработчику помещать в модель свои программные блоки. При этом нельзя использовать операцию goto не только внутри одного узла, но и для перехода в другой узел. Для принудительного завершения моделирования вместо goto можно использовать только функцию interrupt.После узлового оператора можно записать блок любых операторов языка C++ в формате:clcode{Группа операторов языка C++}

Page 172: Курс «Имитационное моделирование»

172

Параметры транзактов

Параметры транзактов

Для повышения эффективности создаваемых моделей разработчику доступны следующие параметры транзактов:

t→iu0, t→iu1, t→iu2, t→iu3 – произвольные целочисленные параметры, которые могут использоваться для различных целей, например, для помечивания транзакта;

t→ru0, t→ru1, t→ru2, t→ru3 – произвольные параметры, имеющие вид переменной с плавающей точкой;

Page 173: Курс «Имитационное моделирование»

173

Параметры транзактов

t→ga – признак обслуживания транзакта вновь, который устанавливается операцией присваивания ему глобальной константы again. Если перед узлом SERV транзакт пройдет через оператор присваивания t→ga= again, то он при прохождении через SERV получает признак обслуживания заново. После выхода из SERV этот признак теряется;t→pr – приоритет транзакта;t→ft – номер семейства, к которому принадлежит транзакт;t→tx – индекс точки пространства. Позволяет определить координаты lat и lon в массиве space.

Page 174: Курс «Имитационное моделирование»

174

Параметры состояния узлов

Параметры состояния узлов Некоторые параметры узлов доступны разработчику для анализа (но не для их изменения). Параметры содержатся в системном массиве addr. Пусть n – номер узла в модели, тогда:addr[n]→nc – число каналов в узле;addr[n]→na – число транзактов, прошедших через узел на данный момент модельного времени;addr[n]→tn – число транзактов, находящихся в узле в данный момент;addr[n]→ts – среднее время обслуживания, подсчитанное на данный момент;

Page 175: Курс «Имитационное моделирование»

175

Параметры состояния узлов

addr[n]→op – признак состояния узла типа KEY. Целочисленная переменная, принимающая значение true, если клапан открыт, или false, если он закрыт.

addr[n]→se – признак состояния узла типа DELET. Целочисленная переменная, принимающая значение nil, если в узле нет уничтожающего транзакта.

addr[n]→kx – индекс точки, в которой находится узел типа CREAT, DELET или PROC. Позволяет определить координаты lat и lon.

Параметры узлов можно наблюдать в процессе выполнения имитационной модели.

Page 176: Курс «Имитационное моделирование»

176

Датчики случайных величин

Датчики случайных величин Часто в процессе моделирования возникает необходимость получить случайную величину в формате float, распределенную по какому-либо закону. В системе PILGRIM есть стандартные 32-разрядные датчики псевдослучайных величин. В каждом узле есть свой датчик, независимый от датчиков других узлов. Связь с этими датчиками осуществляется с помощью следующих функций:normal(m,s) - нормальный закон распределения;expont(m) - экспоненциальный закон;unifrm(m,r) - равномерный закон на отрезке [m-r,m+r];rundum() - равномерный закон на отрезке [0,1];

Page 177: Курс «Имитационное моделирование»

177

Датчики случайных величин

erlang(e,z) - обобщенный закон Эрланга;triplex(a,b,c) – треугольный закон распределения, где•m- математическое ожидание (в случаях normal, expont, unifrm);•s - cpeднeквадратичное отклонение (в случае normal);•e - математическое ожидание величины одного элемента (в случае erlang);•r - мaкcимальное oтклoнeниe (в случае unifrm);•z - количество отрезков (в случае erlang), z > 0;•a - минимальное значение (в случае triplex);•b - наиболее вероятное значение (в случае triplex);•с - максимальное значение (в случае triplex).

Page 178: Курс «Имитационное моделирование»

178

Раздел II. «Инструментальные средства имитационного моделирования» (продолжение)

Тема «Создание моделей с помощью графического конструктора GEM»

Лекция №13

Page 179: Курс «Имитационное моделирование»

179

Создание моделей с помощью графического конструктора GEM

Конструктор моделей GEM («Generator Models») позволяет:•автоматизировать процесс создания графа модели;•автоматически генерировать программный код на языке C++ •предупреждает разработчика о возможных ошибках и не позволяет выполнять заведомо неверные действия.

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

Page 180: Курс «Имитационное моделирование»

180

Создание моделей с помощью графического конструктора GEM

Основное окно конструктора GEM с пустой областью построения графа (при запуске файла gem.exe)

Page 181: Курс «Имитационное моделирование»

181

Создание моделей с помощью графического конструктора GEM

Рабочая область пуста, для редактирования необходимо создать либо новую модель, либо загрузить ранее сохраненную.

Всю информацию о модели конструктор сохраняет в файле с расширением «pgf» (Pilgrim graf file). При создании законченной версии модели, разработчик может сгенерировать соответствующий модели программный файл с расширением «cpp», который подлежит дальнейшей компиляции в среде Visual C++ с подключением необходимых библиотек и ресурсов Pilgrim.

Page 182: Курс «Имитационное моделирование»

182

Создание моделей с помощью графического конструктора GEM

Редактирование графа модели

Выделим типовые действия редактирования графа модели:  добавление новых узлов;  перемещение узлов в области построения;  удаление существующих узлов; определение маршрутов переходов транзактов, или ссылок.В конструкторе все перечисленные действия выполняются «перетягиванием» объекта, обозначающего тип требуемого узла или действия, из панели инструментов в область построения графа. Панель инструментов в левой части окна редактора содержит значки, обозначающие узлы системы.

Page 183: Курс «Имитационное моделирование»

183

Создание моделей с помощью графического конструктора GEM

Редактирование графа модели

Для удаления узла в панели инструментов необходимо захватить значок удаления узла и пере-тащить его на узел, который требуется удалить. Узел будет удален вместе со всеми входящими и исходящими ссылками. Для создания ссылок или путей переходов транзактов

необходимо в панели инструментов захватить значок и переместить на узел-источник транзакта. При отпускании кнопки мыши за курсором потянется стрелка, обозначающая ссылку с невыбранным узлом-приемником транзакта. Для выбора узла-приемника необходимо щелкнуть по нему мышью, в результате чего создастся новая ссылка.

Page 184: Курс «Имитационное моделирование»

184

Создание моделей с помощью графического конструктора GEM

Созданные ссылки отображаются на экране в виде дуг, имеющих три звена, служащих для удобства отображения графа на плоскости. Две промежуточные точки между звеньями выделены небольшими кругами, захватывая и перемещая которые можно придать стрелке нужную форму. Следует помнить, что некоторые типы узлов не могут иметь входящие или, напротив, исходящие ссылки. Конструктором GEM постоянно выполняется проверка корректности действий пользователя, запрещающая заведомо недопустимые преобразования графа модели, в частности создание неправильных ссылок.

Page 185: Курс «Имитационное моделирование»

185

Создание моделей с помощью графического конструктора GEM

Определение параметров узлаКаждый узел модели характеризуется множеством параметров: •типом, •порядковым номером, •именем, •принадлежностью к плоскости, •ссылками, •условиями переходов, •встроенным программным текстом, •параметрами, определяемыми спецификой типа узла, такими, как закон распределения для узла типа SERV, приоритет для QUEUE и т.п.

Page 186: Курс «Имитационное моделирование»

186

Создание моделей с помощью графического конструктора GEM

Для просмотра или редактирования параметров узла необходимо дважды щелкнуть по нему левой кнопкой мыши либо один раз щелкнуть по узлу правой кнопкой, в результате чего отобразится всплывающее меню, и выбрать в нем пункт «параметры узла». Появится диалоговое окно, определяющее параметры. Номер узла присваивается конструктором при его создании. Обычно первые 100 номеров зарезервированы для узлов SEND - бухгалтерских счетов. Нумерация создаваемых узлов осуществляется последовательно, с номера 101. Смена номера узла возможна с помощью соседнего с номером диалогового поля, но не рекомендуется для узлов, созданных ранее.

Page 187: Курс «Имитационное моделирование»

187

Создание моделей с помощью графического конструктора GEM

Окно определения параметров узла

Page 188: Курс «Имитационное моделирование»

188

Создание моделей с помощью графического конструктора GEM

Поле «Имя» содержит имя узла, отображаемое на схеме и при выполнении модели. Поле доступно для редактирования. Не рекомендуется использовать имена, не умещающиеся в поле редактирования.Поле «Класс узла» может быть выбран из списка. В списке приводятся только те типы узлов, которые имеют одинаковое обозначение. На пример, узел типа SEND можно сменить на ATTACH (при этом изменяется набор и смысл параметров узла). Поле «Плоскость» показывает, к какой плоскости принадлежит узел, и доступно только для просмотра.

Page 189: Курс «Имитационное моделирование»

189

Создание моделей с помощью графического конструктора GEM

Панель «Общий С++ текст» позволяет пользователю включить в процедуру обработки узла произвольный текст на языке С++. Текст делится на две части: одна выполняется до вызова функции узла, другая - после нее. Смысл такого разбиения заключается в том, что программный текст, выполняющийся до вызова функции узла, может подготавливать какие-либо переменные, которые функцией будут использованы. Так, например, может быть подсчитано время обслуживания транзакта перед выполнением функции узла типа SERV. Программный текст, следующий после вызова функции узла, на ее выполнение уже никак не влияет и может использоваться для обработки параметров выполненной функции или подготовки параметров для других функций модели.

Page 190: Курс «Имитационное моделирование»

190

Создание моделей с помощью графического конструктора GEM

Узел может содержать несколько исходящих ссылок, по которым способен переместиться транзакт. Выбор маршрута должен осуществляться по условиям. Поэтому в правой нижней части окна определения параметров транзакта имеется поле «Условие перехода», определяющее эти условия, а также выполнение соответствующих им индивидуальных фрагментов программного кода. Выбор исходящей ссылки осуществляется щелчком мыши в диалоговом поле «Выходы». Любой вход и выход можно удалить, нажав кнопку внизу списка.

Page 191: Курс «Имитационное моделирование»

191

Создание моделей с помощью графического конструктора GEM

Необходимым компонентом является кнопка «Определить параметры», нажатие на которую вызывает окно определения параметров самой функции обработки узла.

Page 192: Курс «Имитационное моделирование»

192

Создание моделей с помощью графического конструктора GEM

Определение параметров инициализации и завершения модели

Модель имеет параметры инициализации и завершения, задаваемые функциями MODBEG и MODEND. Определение этих параметров производится через диалоговые окна, вызываемые нажатием кнопок «Modbeg» и «Modend» в основном окне редактора, либо выбором подпунктов основного меню в разделе «Модель».

Page 193: Курс «Имитационное моделирование»

193

Создание моделей с помощью графического конструктора GEM

Page 194: Курс «Имитационное моделирование»

194

Создание моделей с помощью графического конструктора GEM

В правой верхней части окна записывается начальный текст на С++, если он необходим. Программный текст делится на две части: начальный С++ текст используется для подключения внешних библиотек и настройки глобальных параметров; текст инициализации ресурсов подготавливает параметры конкретных узлов типов ATTACH и SEND. Другие поля окна позволяют редактировать переменные, стандартные для функции MODBEG.

Page 195: Курс «Имитационное моделирование»

195

Создание моделей с помощью графического конструктора GEM

Редактирование переменных функции MODEND осуществляется через диалоговое окно:

Page 196: Курс «Имитационное моделирование»

196

Создание моделей с помощью графического конструктора GEM

Работа в плоскостях модели

При работе с большой моделью удобно пользоваться набором плоскостей построения. Для этого конструктор предлагает набор плоскостей с номерами 1 - 9, фрагменты графов которых не пересекаются на уровне маршрутов транзактов. В каждой из плоскостей могут находиться узлы типа PARENT, РАY, RENT, или DOWN, в свою очередь порождающие новые плоскости. Порождаемые плоскости имеют номера, начинающиеся с 10.

Page 197: Курс «Имитационное моделирование»

197

Создание моделей с помощью графического конструктора GEM

Возможны следующие операции перехода с уровня на уровень: •переход на детализирующую плоскость, •подъем на плоскость узла-родителя•переключение между корневыми плоскостями. Для каждой открытой плоскости конструктор предоставляет собственное окно построения.Переключение между корневыми плоскостями осуществляется через верхнюю панель управления. В правой части панели расположено специальное выпадающее меню, позволяющее выбирать номер корневой плоскости. При этом в информационной строке появится надпись «Корень» и номер плоскости.

Page 198: Курс «Имитационное моделирование»

198

Создание моделей с помощью графического конструктора GEM

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

Page 199: Курс «Имитационное моделирование»

199

Создание моделей с помощью графического конструктора GEM

Чтобы назначить вход и выход, необходимо на левой панели нажать кнопку «Слой». При этом будет выведено диалоговое окно:

Page 200: Курс «Имитационное моделирование»

200

Создание моделей с помощью графического конструктора GEM

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

Page 201: Курс «Имитационное моделирование»

201

Создание моделей с помощью графического конструктора GEM

Определение переменных модели

Блоком диалога позволяет задавать имя, тип и начальное значение переменных.

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

Page 202: Курс «Имитационное моделирование»

202

Создание моделей с помощью графического конструктора GEM

Дополнительные функции

Изменение настроек экрана

Изменение настроек экрана выполняется через диалоговое окно (основное меню, пункт «Настройки»):

Page 203: Курс «Имитационное моделирование»

203

Создание моделей с помощью графического конструктора GEM

Пользователь-разработчик модели может по своему усмотрению изменять масштаб, цвет фигур и фона, показать или скрыть панель инструментов и установить признак прямых стрелок.

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

Page 204: Курс «Имитационное моделирование»

204

Создание моделей с помощью графического конструктора GEM

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

Конструктор проводит проверку двумя независимыми способами:•не позволяет осуществлять заведомо ложные действия при ре дактировании пользователем модели;•имеет возможность проверки графа в целом.

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

Page 205: Курс «Имитационное моделирование»

205

Создание моделей с помощью графического конструктора GEM

Процедура проверки корректности графа вызывается автоматически при запросе пользователя сгенерировать программный Рilgrim-файл, а также в любой момент времени из пункта «Выполнить» основного меню.

Page 206: Курс «Имитационное моделирование»

206

Создание моделей с помощью графического конструктора GEM

План бухгалтерских счетов

При моделировании бухгалтерских проводок необходимо знать номер счета-приемника. Поскольку номер любого счета - это номер узла, его моделирующего, то для того, чтобы проще ориентироваться в их нумерации, существует информационное окно, отображающее номера и названия счетов. Это окно может быть вызвано выбором подпункта «План счетов» пункта «Модель» основного меню программы.

Page 207: Курс «Имитационное моделирование»

207

Создание моделей с помощью графического конструктора GEM

Поиск узла

Функция вызывается через меню «Узел» либо через «горячую кнопку» на верхней панели. Поиск может осуществляться по номеру или по параметрам узла, таким, как имя или тип.

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

Page 208: Курс «Имитационное моделирование»

208

Создание моделей с помощью графического конструктора GEM

Окно поиска узла

Page 209: Курс «Имитационное моделирование»

209

Создание моделей с помощью графического конструктора GEM

Копирование/вставка узла

 Для упрощения создания набора узлов с рядом совпадающих параметров в конструкторе предусмотрена функция копирования/вставки узла. Чтобы скопировать узел в буфер, необходимо выделить его щелчком мыши и выбрать пункт «Копировать» из меню «Узел». Вставка в текущую плоскость осуществляется выбором пункта «Вставить» меню «Узел». При этом будет создан узел того же типа, что и прототип, с аналогичными параметрами.

Page 210: Курс «Имитационное моделирование»

210

Создание моделей с помощью графического конструктора GEM

Очистить плоскость

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

Page 211: Курс «Имитационное моделирование»

211

Раздел II. «Инструментальные средства имитационного моделирования» (продолжение)

Тема «Обработка имитационной модели в системе Pilgrim »

Лекция №14

Page 212: Курс «Имитационное моделирование»

212

Обработка имитационной модели в системе Pilgrim

Формирование программного файла модели

 Рассмотрим процесс запуска модели на примере построенной модели PRODUCT:

1.     Запустить приложение Microsoft Visual C++.

2.     В меню файл выбрать New, далее вкладку Projects и Win32 Application.

В строке Project name указать название проекта (например, «Production»), а в строке Location указать путь к проекту, например, C:\Pilgrim-5-60\Pilgrim5\Samples. Нажать OK.

Page 213: Курс «Имитационное моделирование»

213

Обработка имитационной модели в системе Pilgrim

После появления окна с запросом «Какой вид приложения вы хотите создать?» выбрать An empty project. Нажать Finish и еще раз OK. Таким образом, создана рабочая область Production.dsw для проекта.3. Скопировать из папки C:\Pilgrim-5-60\Pilgrim5\Projects в папку C:\Pilgrim-5-60\Pilgrim5\Samples\Production следующие четыре файла: Palette.bmp, Pilgrim.ico, UserHid.h, UserRes.rc.4. В меню выбрать Project -> Add To Project ->Files и добавить в проект эти четыре файла и файл Product.cpp, сгенерированный конструктором GEM. Таким же образом добавить файлы Comctl32.lib, Pilgrim.lib из папки C:\Visual Studio\VC98\Lib.

Page 214: Курс «Имитационное моделирование»

214

Обработка имитационной модели в системе Pilgrim

5.     Выбрать в меню Build ->Build Production.exe. После этого, в случае отсутствия ошибок, в папке C:\Pilgrim-5-60\Pilgrim5\Samples\ Production \Debug cформируется файл Production.exe.

6.     Запустить полученную модель Production.exe.

После запуска имитационной модели в папке C:\Pilgrim-5-60\Pilgrim5\Samples\ Production \Debug сформируется текстовый файл результатов с именем, указанным в тексте модели. В нашем примере это файл «Pilgrim.rep». Для просмотра файла результатов можно использовать любой текстовый редактор.

Page 215: Курс «Имитационное моделирование»

215

Обработка имитационной модели в системе Pilgrim

Трактовка результатов моделирования Файл результатов представляет собой таблицу, содержащую в зависимости от параметров модели до 12 столбцов:1)     № узла. Указаны номера узлов модели;2)     Наименование узла. Смысловое название узла в модели, присвоенное разработчиком;3)   Тип узла. Указан тип узла: AG, SERV, KEY, QUEUE, TERM, CREAT, DELET, PROC, DYNAM, SEND, DIRECT, ATTACH, MANAGE, PAY, RENT, DOWN или PARENT;

Page 216: Курс «Имитационное моделирование»

216

Обработка имитационной модели в системе Pilgrim

4)     Точка. Номер последней точки пространства, в которой находится узел типа CREAT, DELET или PROC в момент окончания моделирования;

5)   Загрузка (%=). Коэффициент использования транзактами узлов типа SERV или PROC в процентах. Для узла типа KEY – доля времени пребывания в закрытом состоянии;

6)    Путь (км). Если производятся пространственные перемещения узлов типа PROC, CREAT или DELET, то подсчитывается пройденный путь. Для пространства типа GEO путь считается в километрах;

Page 217: Курс «Имитационное моделирование»

217

Обработка имитационной модели в системе Pilgrim

7)     M [t] среднее время. Среднее значение времени задержки транзакта в узле или иной интервал времени, зависящий от типа узла:для SERV - это среднее время пребывания в узле (оно может быть больше времени обслуживания у непри оритетных транзактов при рз=аbs, т.е. при наличии

приоритетных транзактов и правила абсолютных при оритетов);для QUEUE - среднее время задержки в очереди;для AG - среднее время между двумя сгенерированными транзактами;

Page 218: Курс «Имитационное моделирование»

218

Обработка имитационной модели в системе Pilgrim

для TERM или DELET - среднее время существования транзакта; для KEY - среднее время пребывания в закрытом состоянии;для CREAT и DYNAM - всегда нулевое значение;для PROC при p4=none, p4=поrm, p4=ехро или p4=unif - среднее время пребывания в узле (оно может быть больше времени обслуживания транзакта при переводе узла в пассивное состояние);для PROC при p4=earth, p4=plane или p4=cosmos -сум марное время пребывания транзакта в узлах DYNAM и PROC с учетом возможных возвратов транзактов из PROC в DYNAM.

Page 219: Курс «Имитационное моделирование»

219

Обработка имитационной модели в системе Pilgrim

8)  C2 [t] квадрат коэффициента вариации – отношение дисперсии временного интервала к квад рату его среднего значения;

9)     Счетчик входов и hold. Число транзактов:прошедших через узел;сгенерированных транзактов (для AG или CREAT);уничтоженных (для TERM или DELET);выполнивших операцию HOLD из другого узла в отношении узла KEY;

Page 220: Курс «Имитационное моделирование»

220

Обработка имитационной модели в системе Pilgrim

10)     Количество каналов. Число каналов в узле;11)   Осталось транзактов. Количество транзактов, которые остались в узле на момент завершения моделирования;12)     Состояние узла в этот момент. Состояние узла в момент окончания прогона модели:узел может быть открыт (свободен), закрыт для входа очередного транзакта, активен или пассивен (узел PROC);В узле типа SEND может быть положительное сальдо на момент завершения модели (денежная сумма с буквой S) и отрицательное сальдо (сумма с буквой D).

Page 221: Курс «Имитационное моделирование»

221

Обработка имитационной модели в системе Pilgrim

В узле типа ATTACH может быть остаток ресурса на момент завершения модели (денежная сумма с буквой S) и дефицит (сумма с буквой D). В узлах типа PAY и RENT указывается количество переходов транзактов на нижние уровни - слои модели (на момент завершения модели).

Page 222: Курс «Имитационное моделирование»

222

Обработка имитационной модели в системе Pilgrim

Трассировка моделиСуществуют следующие режимы трассировки, позволяющие ускорить процесс отладки:выйти в режим трассировки после конкретного события;перейти в трассировку, если какой-то транзакт входит в определенный узел или выходит из него;отслеживать путь конкретного транзакта по сложному графу модели;выйти в режим трассировки по показанию модельного таймера.Управление трассировкой осуществляется из общего меню модельного окна.

Page 223: Курс «Имитационное моделирование»

223

Раздел III. «Имитационное моделирование экономических процессов»

Тема «Моделирование обслуживания с разными приоритетами»

Лекция №15

Page 224: Курс «Имитационное моделирование»

224

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

Описание моделируемого процесса В бухгалтерии некоторой фирмы работает один

бухгалтер. Он имеет персональный компьютер, на котором установлен АРМ бухгалтера. Курьер приносит в бухгалтерию документы, которые бухгалтер обрабатывает на компьютере. Документы обрабатываются в порядке поступления в бухгалтерию. Обработанные документы подшиваются в специальную папку.

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

Page 225: Курс «Имитационное моделирование»

225

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

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

Требуется построить модель, имитирующую обработку потоков документов и неполадок в работе компьютера.

Page 226: Курс «Имитационное моделирование»

226

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

Параметры модели

Параметры Среднее значение

Интервал прихода курьера 6 минут

Время обработки документа бухгалтером 4,8 минут

Интервал возникновения неполадок 1 сутки

Время устранения неполадки 1 час

Page 227: Курс «Имитационное моделирование»

227

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

Схема модели

AG

AG

Q S

AG

AG

Документы

Неисправности

Компьютер

Журнал учета неисправностей

Page 228: Курс «Имитационное моделирование»

228

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

Текст моделиinclude <pilgrim.h> int Forw; /* Номер следующего узла */ int Dist; /* Закон распределения времени обслуживания */ float Tobs; /* Среднее время обслуживания */ float Pogr; /* Среднеквадратическое отклонение */ /* Время измеряется в часах */ forward {

modbeg("Компьютер", 6, 1200.0, (long)time (NULL), none, 1, none, 3, 2); ag("Бухгалтерия", 5, none, norm, 0.1, 0.1/3, zero, 1);

ag("Неисправности", 6, 1, expo, 24.0, zero, zero, 1);

Page 229: Курс «Имитационное моделирование»

229

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

network(dummy, dummy) {

top(1): queue("Столик-очередь", prty, 2); place; top(2): if (t->pr == 1) /* Неполадка */ {

Forw=4; Dist=unif; Tobs=1.0; Pogr=0.5; } else /* Документ */ {

Forw=3; Dist=norm; Tobs=0.08; Pogr=0.08/3;

}

Page 230: Курс «Имитационное моделирование»

230

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

Serv ("АРМ бухгалтерии", 1, abs, Dist, Tobs, Pogr, zero, Forw);

place; top(3): term("Архивные папки"); place; top(4): term("Неиспр. устр-на"); place; fault(123);

} modend("pilgrim.rep", 1, 12, page); return 0;

Page 231: Курс «Имитационное моделирование»

231

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

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

НАЗВАНИЕ МОДЕЛИ: АРМ бухгалтера ВРЕМЯ МОДЕЛИРОВАНИЯ: 1200.07 Лист: 1

№ узла

Наименование узла

Тип узла

Точка

Загрузка, %=,

Путь, км

M [t] среднее

C [t]

вариация

Счeтчик

входов

Кол. кан

Ост.

Тр.

Состояние узла

в этот момент

1 Столик-очередь

queue

0.37 2.02 12094 1 1 открыт

2 АРМ бухгалтерии

serv %= 87.4 0.09 1.90 12093 1 0 открыт

3 Архивные папки

term 0.45 1.38 12044 0 0 открыт

4 Неисправность. устранена

term 1.00 0.16 49 0 0 открыт

5 Бухгалтерия ag 0.10 0.24 12045 1 1 открыт

6 Неисправности

ag 23.68 1.05 50 1 1 открыт

Page 232: Курс «Имитационное моделирование»

232

Замкнутая модель обслуживания с клапаном

Замкнутая модель обслуживания с клапаномВ небольшом поселке имеется магазин, где работает

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

Требуется построить модель, имитирующую поток покупателей в магазине.

Page 233: Курс «Имитационное моделирование»

233

Замкнутая модель обслуживания с клапаном

Параметры модели

Параметры Среднее значение

Число обычных покупателей 800 человек

Число пенсионеров 200 человек

Время расхода продуктов у обычных покупателей

8 часов

Время расхода продуктов у пенсионеров 6 часов

Время обслуживания покупателя продавцом 3 минуты

Максимальное число покупателей в магазине 20 человек

Page 234: Курс «Имитационное моделирование»

234

Замкнутая модель обслуживания с клапаном

Схема модели

AG AG

CR

T

S Q K

QS

1 2

3

4

5 6 7

89

Заселение поселка

Схема зарядки

Поселок

Продавец

Очередь перед магазином

Входная дверь

Очередь перед продавцом

holdrels

Page 235: Курс «Имитационное моделирование»

235

Замкнутая модель обслуживания с клапаном

Текст модели#include <pilgrim.h>int Q_max=20; /* Максимальное число людей в магазине/float Mod_time=7*600.0; /* Время моделирования */int N1=800; /* Число обычных покупателей */int N2=200; /* Число пенсионеров */int Ng; /* Номер генератора */float T1=480.0; /* Время расхода продуктов у обычных покупателей */float T2=240.0;/* Время расхода продуктов у пенсионеров*/float T3=3.0; /* Время работы продавца */

Page 236: Курс «Имитационное моделирование»

236

Замкнутая модель обслуживания с клапаном

forward /* Время измеряется в минутах */{ modbeg("Магазин", 9, Mod_time, (long)time (NULL),

none, 6, none, 4, 2); ag("Обычные люди", 1, none, none, 0.0, zero, zero, 3);

ag("Пенсионеры", 2, 1, none, 0.0, zero, zero, 3); network(dummy, dummy)

{ top(3): if (t->pr == 0) /* генерация обычных

покупателей */ { t->iu0=N1;

t->ru0=T1; }

Page 237: Курс «Имитационное моделирование»

237

Замкнутая модель обслуживания с клапаном

else /* генерация пенсионеров */ {

t->iu0=N2; t->ru0=T2;

} creat(" Заселение домов", none, t->iu0, copy, 5, 4);

place; top(4): if (t->pr = = 0) /* выключение генераторов */ Ng=1;

else Ng=2; cheg (Ng, none, none, Mod_time, zero, zero, 3); term("Порождающие"); place;

Page 238: Курс «Имитационное моделирование»

238

Замкнутая модель обслуживания с клапаном

top(5): serv("Поселок", N1+N2, none, norm, t->ru0, t->ru0/3, zero, 6); place;

top(6): queue("Очередь перед магазином", prty, 7);

place; top(7): key("Бабушка на входе", 9);

place; top(8): queue("Очередь к продавцу", prty, 9);

clcode /* Если число покупателей в очереди */

if (addr[8]->tn == Q_max) /* достигло предела*/ hold(7); /* закрыть дверь */

place;

Page 239: Курс «Имитационное моделирование»

239

Замкнутая модель обслуживания с клапаном

top(9): serv("Продавец", 1, none, norm, T3, T3/3, zero, 5);

clcode /* Покупатель покинул очередь */

rels(7); /* открыть дверь для нового */

place;fault(123); } modend("pilgrim.rep", 1, 12, page); return 0;

Page 240: Курс «Имитационное моделирование»

240

Раздел III. «Имитационное моделирование экономических процессов» (продолжение)

Тема «Моделирование условного прерывания обслуживания»

Лекция №16

Page 241: Курс «Имитационное моделирование»

241

Моделирование условного прерывания обслуживания

Пример использования узла delet: принцип «тележки»

 Имеется остановка маршрутного такси. С определенными интервалами времени на остановку приходят пассажиры и подъезжают такси. Такси уезжает, когда в него сядет 10 пассажиров. Если пришедший пассажир не обнаруживает стоящего такси, он встает в очередь на посадку. Если такси подъехало на пустую остановку, оно ждет пассажиров. Если такси подъехало, а на остановке уже стоит такси, оно встает в очередь такси.

Требуется построить модель, имитирующую пассажирский и транспортный потоки.

Page 242: Курс «Имитационное моделирование»

242

Моделирование условного прерывания обслуживания

Параметры модели

Параметры Среднее значение

Интервал прихода пассажиров 1 минута

Интервал приезда такси 10 минут

Page 243: Курс «Имитационное моделирование»

243

Моделирование условного прерывания обслуживания

Схема модели

AG

AG T

Q K

Q

6 73

1

8

3 524

Такси

Пассажиры

Такси уехало

KDEL

hold

rels

hold

rels

Page 244: Курс «Имитационное моделирование»

244

Моделирование условного прерывания обслуживания

Текст модели#include <pilgrim.h>float Pas=1.0; /* интервал прихода пассажиров */float Tax=10.0; /* интервал прихода такси */ float Mod_time=360.0; forward{ modbeg("Маршрутное такси", 5, Mod_time,

(long)time(NULL), none, 2, none, 5, 2); ag("Пассажиры", 1, none, expo, Pas, zero, zero, 2); ag("Такси", 6, none, norm, Tax, Tax/3, zero, 2); network(dummy, dummy) { top(2): queue("Пассажиры", none, 3);

Page 245: Курс «Имитационное моделирование»

245

Моделирование условного прерывания обслуживания

clcode if (addr[2]->na == 1) hold(3); /* начальное размыкание ключа */ place; top(3): key("Есть такси?", 4); place; top(4): delet("Посадка в такси", 0, 10, 5); rels(3); hold(8); place; top(5): term("Такси уехало");

hold(3); rels(8); place;

Page 246: Курс «Имитационное моделирование»

246

Моделирование условного прерывания обслуживания

top(7): queue("Такси", none, 4); place;

top(8): key("Остановка свободна?", 4); place;

fault(123); } modend("pilgrim.rep", 1, 12, page); return 0;}

Page 247: Курс «Имитационное моделирование»

247

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

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

 На платформу станции метро приходят пассажиры. Если поезда нет, они ждут на перроне. Когда поезд приходит, начинается посадка. Когда время посадки заканчивается, поезд уезжает. Рассматривается посадка в поезда только в одном направлении. Поездка пассажира в поезде не включается в моделируемый процесс.

Требуется построить модель, имитирующую пассажирский поток и движение поездов.

Page 248: Курс «Имитационное моделирование»

248

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

Параметры модели

Параметры Среднее значение

Интервал прихода пассажиров 15 секунд

Интервал приезда поезда 90 секунд

Время стоянки поезда 30 секунд

Page 249: Курс «Имитационное моделирование»

249

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

Схема модели

AG

AG TQ

5 6

1

7

32 4

Поезда

Пассажиры Пассажир сел в поезд

K

holdrels

Перрон Двери поезда

S

Поезд стоит на перроне

T

Поезд ушел

Page 250: Курс «Имитационное моделирование»

250

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

Текст модели/* Модель работы станции метрополитена */ /* Единица измерения времени - 1 секунда */ /* Время моделирования - 8 часов */ #include <pilgrim.h> #define T_PASS 15.0 /* Интервал прихода пассажиров */ #define T_POEZD 90.0 /* Интервал прихода поездов */ #define T_POEZD_STAND 30.0 /*Время стоянки поезда* forward { modbeg("Станция метро", 7, 60.0*60*8,

(long)time(NULL), none, 2,none,4,2);

ag("Пассажиры",1,none,expo,T_PASS,zero,zero,2); ag("Поезда",5,none,none,T_POEZD,T_POEZD/3,zero,6);

Page 251: Курс «Имитационное моделирование»

251

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

network(dummy,dummy) { top(2):queue("Перрон",none,3);

clcode if (addr[2]->na= =1)

hold(3); place;

top(3):key("Двери поезда",4);place;

top(4):term("Пассажир сел в поезд");place;

top(6):serv("Поезд стоит", 1, none, none,

T_POEZD_STAND, T_POEZD_STAND/3,zero, 17); rels(3); place;

Page 252: Курс «Имитационное моделирование»

252

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

top(7):term("Поезд ушел"); hold(3); place; fault(123);

}modend ("Metro.rep",1,12,page); return 0;

}

Page 253: Курс «Имитационное моделирование»

253

Управление маршрутом транзакта

Пример управления маршрутом транзакта Имеется автобусный парк, который обслуживает два

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

Требуется построить модель, имитирующую движение автобусов по маршруту и в парке.

Page 254: Курс «Имитационное моделирование»

254

Управление маршрутом транзакта

Параметры модели

Параметры Среднее значение

Общее число автобусов в парке N

Необходимое число автобусов на маршруте 1 N1

Необходимое число автобусов на маршруте 2 N2

Среднее время рейса по маршруту 1 T1

Среднее время рейса по маршруту 2 T2

Время обслуживания автобуса диспетчером T3

Количество диспетчеров в парке Q

Page 255: Курс «Имитационное моделирование»

255

Управление маршрутом транзакта

Схема модели

Схема зарядки модели

3

2

S

Парк Диспетчер

Q

S

S

4

Маршрут 1

Маршрут 2

Page 256: Курс «Имитационное моделирование»

256

Управление маршрутом транзакта

Текст модели#include <pilgrim.h> float T1; /* Время рейса по маршруту 1 */ float T2; /* Время рейса по маршруту 2 */ float T3; /* Время обслуживания автобуса диспетчером */ int N1; /* Требуемое число автобусов на маршруте 1 */ int N2; /* Требуемое число автобусов нв маршруте 2 */int N; /* Общее число автобусов в парке */ int Q; /* Число диспетчеров */ int Forw; /*Стандартное начало модели и схема зарядки */ ...

Page 257: Курс «Имитационное моделирование»

257

Управление маршрутом транзакта

Текст моделиtop(1): queue("Парк", prty, 2);

place; top(2): if addr[3]->tn < N1

Forw=3; /* на маршрут 1 */ else if addr[4]->tn < N2

Forw=4; /* на маршрут 2 */ else /* оставить в парке */

{ t->pr=1; /* в начало очереди */ Forw=1; /* оставить в парке */

} serv("Диспетчер", Q, none, norm, T3,

T3/3,zero,Forw); place;

Page 258: Курс «Имитационное моделирование»

258

Управление маршрутом транзакта

top(3): t->pr=0; /* сброс приоритета */ serv ("Маршрут 1", N1, none, norm,

T1, T1/3, zero, 1); place;

top(4): t->pr=0; serv("Маршрут 2", N2, none, norm,

T2, T2/3, zero, 1); place;

/* Стандартный конец модели */ ...

Page 259: Курс «Имитационное моделирование»

259

Управление маршрутом транзакта

Текст моделиtop(1): queue("Парк", prty, 2);

place; top(2): if addr[3]->tn < N1

Forw=3; /* на маршрут 1 */ else if addr[4]->tn < N2

Forw=4; /* на маршрут 2 */ else /* оставить в парке */

{ t->pr=1; /* в начало очереди */ Forw=1; /* оставить в парке */

} serv("Диспетчер", Q, none, norm, T3,

T3/3,zero,Forw); place;

Page 260: Курс «Имитационное моделирование»

260

Раздел III. «Имитационное моделирование экономических процессов» (продолжение)

Тема «Моделирование информационных ресурсов»

Лекция №17

Page 261: Курс «Имитационное моделирование»

261

Имитация информационных ресурсов

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

Эти ресурсы подразделяются на две разновидности:

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

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

Page 262: Курс «Имитационное моделирование»

262

Имитация информационных ресурсов

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

S

N каналов – источников получения информации

Q

S

Выполнение основной функции

Q K CR DEL

От других клиентов

Запрос на выполнение основной функции

К другим клиентам

rels

hold

1 2 3

4

6

5

7

Page 263: Курс «Имитационное моделирование»

263

Имитация информационных ресурсов

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

информации

S

Получение и прекращение доступа к ресурсу

Q

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

Транзакт управления доступом к информации

passiv

1 2

3 4 5

Q

Q PR

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

active passiv

Page 264: Курс «Имитационное моделирование»

264

Моделирование замкнутых моделей КИС

Моделирование замкнутых моделей корпоративных информационных систем (КИС)

 Замкнутая модель КИС – это модель системы, работающей в режиме «запрос-ответ». Транзакты, единожды сгенерированные, циркулируют в пределах графа модели.

Транзакт – это запрос пользователя. Выйдя из генератора, транзакт проходит по графу модели, по мере работы КИС превращается в ответ и возвращается к пользователю. После этого вновь начинает играть роль запроса того же пользователя.

Page 265: Курс «Имитационное моделирование»

265

Моделирование замкнутых моделей КИС

Моделирование замкнутых моделей корпоративных информационных систем (КИС)

 Замкнутая модель КИС – это модель системы, работающей в режиме «запрос-ответ». Транзакты, единожды сгенерированные, циркулируют в пределах графа модели.

Транзакт – это запрос пользователя. Выйдя из генератора, транзакт проходит по графу модели, по мере работы КИС превращается в ответ и возвращается к пользователю. После этого вновь начинает играть роль запроса того же пользователя.

Page 266: Курс «Имитационное моделирование»

266

Моделирование замкнутых моделей КИС

Модель может быть построена следующим образом:•Пользователи представляются одно- или

многоканальными узлами типа serv;•число каналов сервера соответствует числу

пользователей, время обработки транзакта сервером соответствует времени подготовки пользователем запроса;

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

•Для зарядки транзактами серверов пользователей, принадлежащих к одному классу, используется единственный генератор, порождающий всего один транзакт. Далее транзакты размножаются с помощью узлов типа creat.

Page 267: Курс «Имитационное моделирование»

267

Моделирование замкнутых моделей КИС

Варианты зарядки моделей транзактами:

1. Зарядка одного многоканального сервера

S

Группа пользователей

AG

T

CR

Граф модели

КИС

Page 268: Курс «Имитационное моделирование»

268

Моделирование замкнутых моделей КИС

2. Зарядка нескольких одноканальных серверов

S

Группа пользователей

AG

T

CR Граф модели КИС

Q S

S

Page 269: Курс «Имитационное моделирование»

269

Моделирование замкнутых моделей КИС

3. Зарядка нескольких многоканальных серверов

S

Группа пользователей

AG

T

CR Граф модели КИС

Q S

S

CR

Page 270: Курс «Имитационное моделирование»

270

Раздел III. «Имитационное моделирование экономических процессов» (продолжение)

Тема «Моделирование материальных и финансовых ресурсов»

Лекция №18

Page 271: Курс «Имитационное моделирование»

271

Моделирование материальных ресурсов

Материальные ресурсы

перемещаемые неперемещаемыеПеремещаемый ресурс – выделяется клиенту, после чего клиент использует его в других местах и возвращает при отсутствии необходимости дальнейшегоиспользования.

Неперемещаемый ресурс – представляет собой «базу», к которой приписаны ресурсные единицы. Их можно использовать только на базе.

Page 272: Курс «Имитационное моделирование»

272

Моделирование материальных ресурсов

Мощность ресурса – максимальное число ресурсных единиц, которое можно использовать для различных целей.

Остаток ресурса – число незанятых на данный момент единиц, которые можно использовать для различных целей.

Дефицит ресурса – количество единиц ресурса в суммарном запросе транзактов, стоящих в очереди к данному ресурсу.

ресурсы

пополняемые

непополняемые

Page 273: Курс «Имитационное моделирование»

273

Моделирование материальных ресурсов

Пример моделирования

непополняемого возвращаемого ресурса

 Рассматривается пункт проката видеодисков. Ресурсом являются видеодиски, выдаваемые клиенту. По прошествии определенного времени клиент возвращает взятое в пункт проката.

Параметры Среднее значение

Интервал прихода клиентов T_K1

Количество видеодисков в пункте проката Q

Максимальное количество выдаваемых клиенту видеодисков

Max_Q

Максимальное время пользования видеодисков Max_T

Page 274: Курс «Имитационное моделирование»

274

Моделирование материальных ресурсов

Схема модели

3

Клиенты

detach

Att S

4

AGMan T

Склад пункта проката

Проверка наличия ресурса

Пользованиепрокатом

Возврат

1 2 5

Page 275: Курс «Имитационное моделирование»

275

Моделирование материальных ресурсов

Текст модели#include <pilgrim.h> float T_Kl; /* Интервал прихода клиентов */ float Max_T; /* Макс. время пользования ресурсом */ int Max_Q; /* Макс. число единиц выдаваемого ресурса */ int Q; /* Исходное число единиц ресурса на складе */ forward{

modbeg("Пункт проката",...); ag("Клиенты", 1, none, expo, T_Kl, zero, zero, 2);supply(2, Q); /* Начальное помещение ресурса

на склад */ network(...)

Page 276: Курс «Имитационное моделирование»

276

Моделирование материальных ресурсов

{ top(2): attach("Склад", rundum()*Max_Q, prty, 3);

place; top(3): manage("Есть ресурс?", 4);

place; top(4): serv("Пользование ресурсом", 32000, none,

unif, Max_T, Max_T/3, zero,5); place;

top(5): term("Возврат ресурса"); clcode detach();

fault(123); } modend(...); }

Page 277: Курс «Имитационное моделирование»

277

Моделирование материальных ресурсов

Пример моделирования пополняемого невозвращаемого ресурса

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

Построить модель, имитирующую движение ресурсов.

Page 278: Курс «Имитационное моделирование»

278

Моделирование материальных ресурсов

Параметры модели

Параметры Среднее значение

Интервал принятия решений о покупке T_P

Максимальная сумма покупки P_MAX

Период получения зарплаты T_Z

Размер зарплаты Z

Page 279: Курс «Имитационное моделирование»

279

Моделирование материальных ресурсов

Схема модели

Решение сделать покупку

supply

AttAGMan T

КошелекДенег на покупку

достаточно?Деньги взяты

AG T

Выдача зарплаты Зарплата получена

Page 280: Курс «Имитационное моделирование»

280

Моделирование денежных ресурсов

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

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

В узле send образуется очередь транзактов, в которых содержится запрос на перевод денежных средств с данного счета send на какой-либо другой.

Приоритеты платежей устанавливаются в соответствии с приоритетными принципами (например, сначала налоги, потом зарплата, потом все остальные платежи).

Page 281: Курс «Имитационное моделирование»

281

Моделирование материальных ресурсов

Пример распределения денежных ресурсов

Send62

directSend

51

Send09

Проводка выполнена