1 Курс «Имитационное моделирование» Верховодов Александр Васильевич к.

Скачать презентацию 1 Курс «Имитационное моделирование» Верховодов Александр Васильевич к. Скачать презентацию 1 Курс «Имитационное моделирование» Верховодов Александр Васильевич к.

modelirovanie_presentation.ppt

  • Количество слайдов: 281

>1 Курс «Имитационное моделирование» Верховодов Александр Васильевич к.т.н, доцент кафедры АКИТ ВНУ 1 Курс «Имитационное моделирование» Верховодов Александр Васильевич к.т.н, доцент кафедры АКИТ ВНУ

>2 Сведения о курсе Всего часов – 72; Лекций - 10часов; Практических занятий – 2 Сведения о курсе Всего часов – 72; Лекций - 10часов; Практических занятий – 10 часов; Форма итогового контроля – экзамен; Состоит из разделов: «Теория массового обслуживания». «Инструментальные средства имитационного моделирования» «Имитационное моделирование процессов и систем»

>3 Раздел I. «Теория массового обслуживания» Тема «Случайные процессы» Лекция №1 3 Раздел I. «Теория массового обслуживания» Тема «Случайные процессы» Лекция №1

>4 Случайные процессы Определение: Случайный процесс (вероятностный, стохастический) – это процесс изменения во времени 4 Случайные процессы Определение: Случайный процесс (вероятностный, стохастический) – это процесс изменения во времени состояния какой-либо системы в соответствии с вероятностными закономерностями. Определение: Процесс с дискретными состояниями – это процесс, возможные состояния которого можно заранее перечислить, а переход системы из состояния в состояние происходит мгновенно. Определение: Процесс с непрерывным временем – это процесс, при котором моменты возможных переходов системы из состояния в состояние не фиксированы заранее, а случайны.

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

>6 Случайные процессы Определение: Граф состояний – графическая схема случайного процесса с дискретными состояниями; 6 Случайные процессы Определение: Граф состояний – графическая схема случайного процесса с дискретными состояниями; Пример: Устройство S состоит из двух узлов. Состояния: S0 – оба узла исправны: S1 – первый узел ремонтируется, второй исправен; S2 - второй узел ремонтируется, первый исправен; S3 - оба узла ремонтируются;

>7 Случайные процессы Граф состояний: S0 S2 S3 S1 7 Случайные процессы Граф состояний: S0 S2 S3 S1

>8 Случайные процессы Потоки событий Определение: Поток событий - это последовательность однородных событий, следующих 8 Случайные процессы Потоки событий Определение: Поток событий - это последовательность однородных событий, следующих одно за другим в случайныe моменты времени Интенсивность λ – частота появления событий в единицу времени Определение: Поток событий называется регулярным, если события следуют одно за другим через определенные равные промежутки времени. Определение: Поток событий называется стационарным, если его вероятностные характеристики не зависят от времени.

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

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

>11 Случайные процессы Рассмотрим простейший поток событий как неограниченную последовательность случайных точек: Число m 11 Случайные процессы Рассмотрим простейший поток событий как неограниченную последовательность случайных точек: Число m событий, попадающих на отрезок τ, распределено по закону Пуассона:

>12 Случайные процессы Математическое ожидание равно дисперсии: a=σ2=λτ Вероятность того, что за время τ 12 Случайные процессы Математическое ожидание равно дисперсии: a=σ2=λτ Вероятность того, что за время τ не произойдет ни одного события (m=0): Найдем распределение интервала времени Т между произвольными двумя соседними событиями простейшего потока.

>13 Случайные процессы Вероятность того, что на участке времени длиной t не появится ни 13 Случайные процессы Вероятность того, что на участке времени длиной t не появится ни одного из последующих событий, равна: Вероятность противоположного события, т.е. функция распределения случайной величины T: Плотность вероятности случайной величины есть производная ее функции распределения:

>14 Случайные процессы Распределение, задаваемое функцией распределения (4) или плотностью вероятности (5) называется показательным 14 Случайные процессы Распределение, задаваемое функцией распределения (4) или плотностью вероятности (5) называется показательным (или экспоненциальным) Таким образом, интервал времени между двумя соседними произвольными событиями имеет показательное распределение, для которого математическое ожидание равно среднему квадратическому отклонению случайной величины: a=σ=1/λ

>15 Случайные процессы Важнейшее свойство показательного распределения: Если промежуток времени, распределенный по показательному закону, 15 Случайные процессы Важнейшее свойство показательного распределения: Если промежуток времени, распределенный по показательному закону, уже длился некоторое время τ то это никак не влияет на закон распределения оставшейся части промежутка (T- τ). Он будет таким же, как и закон распределения всего промежутка Т. Для простейшего потока с интенсивностью λ вероятность попадания на элементарный отрезок времени Δt хотя бы одного события:

>16 Раздел I. «Теория массового обслуживания» (продолжение) Тема «Случайные процессы» Лекция №2 16 Раздел I. «Теория массового обслуживания» (продолжение) Тема «Случайные процессы» Лекция №2

>17 Случайные процессы Уравнения Колмогорова Рассмотрим пример из Лекции №1. Пусть λij – интенсивность 17 Случайные процессы Уравнения Колмогорова Рассмотрим пример из Лекции №1. Пусть λij – интенсивность простейшего потока событий, под воздействием которых происходит переход системы из состояния Si в состояние Sj. Вероятностью i-го состояния называется вероятность pi(t) того, что в момент t система будет находиться в состоянии Si.

>18 Случайные процессы Рассмотрим систему в момент t и зададим малый промежуток времени Δt. 18 Случайные процессы Рассмотрим систему в момент t и зададим малый промежуток времени Δt. Найдем вероятность p0(t+Δt) того, что система в момент (t+ Δt) будет находиться в состоянии S0. Это достигается разными способами: 1) Система в момент t с вероятностью po(t) находилась в состоянии S0 , и за время Δt не вышла из него. (λ01+λ02) – интенсивность суммарного простейшего потока, выводящего систему из состояния S0. PΔt≈ (λ01+λ02)Δt вероятность выхода системы из состояния S0.

>19 Случайные процессы По теореме умножения вероятностей: p0(t)(1-(λ01+λ02)Δt) - вероятность того, что система находилась 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.

>20 Случайные процессы По теореме умножения вероятностей: p1(t)λ10Δt - вероятность того, что система находилась 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). Отсюда,

>21 Случайные процессы При Δt0 получаем дифференциальное уравнение 1го порядка: Рассуждая аналогично для других 21 Случайные процессы При Δt0 получаем дифференциальное уравнение 1го порядка: Рассуждая аналогично для других состояний системы S получаем систему дифференциальных уравнений Колмогорова для вероятностей системы:

>22 Случайные процессы Правило составления уравнений Колмогорова: В левой части каждого уравнения стоит производная 22 Случайные процессы Правило составления уравнений Колмогорова: В левой части каждого уравнения стоит производная вероятности i-го состояния. В правой части - сумма произведений вероятностей всех состояний (из которых есть дуги в i-е состояние) на интенсивности соответствующих потоков событий, минус суммарная интенсивность всех потоков, выводящих систему из данного состояния, умноженная на вероятность i-го состояния. Для решения системы (7) необходимо добавить условие:

>23 Случайные процессы Зададим начальные условия для системы дифференциальных уравнений (7): При t=0 p0(0)=1, 23 Случайные процессы Зададим начальные условия для системы дифференциальных уравнений (7): При t=0 p0(0)=1, p1(0)=p2(0)=p3(0)=0 (предположим, что при t=0 система была исправна, т.е. находилась в состоянии S0.). Решение уравнений Колмогорова позволяют найти все вероятности состояний системы как функции времени. Особый интерес – предельные (финальные) вероятности системы (при Δt).

>24 Случайные процессы Предельная вероятность состояния Sj. системы S показывает среднее время пребывания системы 24 Случайные процессы Предельная вероятность состояния Sj. системы S показывает среднее время пребывания системы в этом состоянии (в долевом отношении). Предельные вероятности постоянны  в системе (7) p'0(t)= p'1(t)= p'2(t)=p'3(t)=0. Получаем СЛАУ, описывающих стационарный режим:

>25 Случайные процессы Процесс гибели и размножения Класс случайных процессов с графом состояний: Переходы 25 Случайные процессы Процесс гибели и размножения Класс случайных процессов с графом состояний: Переходы осуществляются только в соседние состояния! Предположение: Все потоки событий случайного процесса являются простейшими. S2 Sn S1 Sk S0

>26 Случайные процессы СЛАУ для предельных вероятностей: Нормировочное условие: p0+p1+…+pn=1 26 Случайные процессы СЛАУ для предельных вероятностей: Нормировочное условие: p0+p1+…+pn=1

>27 Случайные процессы Решение СЛАУ: Числители в коэффициентах при p0 представляют произведение всех интенсивностей 27 Случайные процессы Решение СЛАУ: Числители в коэффициентах при p0 представляют произведение всех интенсивностей потоков слева направо до состояния Sk (k=I, 2, ..., п), а знаменатели- произведение всех интенсивностей потоков справа налево до состояния Sk (k=I, 2, ..., п).

>28 Случайные процессы Пример: Задан граф состояний системы S: Решение: Таким образом, в стационарном 28 Случайные процессы Пример: Задан граф состояний системы S: Решение: Таким образом, в стационарном режиме система S находится в состоянии S0 – 70,6% времени; в состоянии S1 – 17,6% времени; в состоянии S2 – 11,8% времени. S2 S1 S0 Найти предельные вероятности системы S.

>29 Раздел I. «Теория массового обслуживания» (продолжение) Тема «Системы массового обслуживания» Лекция №3 29 Раздел I. «Теория массового обслуживания» (продолжение) Тема «Системы массового обслуживания» Лекция №3

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

>31 Системы массового обслуживания Схема работы СМО заявка заявка заявка СМО Обработанные заявки заявка 31 Системы массового обслуживания Схема работы СМО заявка заявка заявка СМО Обработанные заявки заявка заявка заявка заявка заявка

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

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

>34 Системы массового обслуживания Классификация СМО производится по различным признакам: Число каналов обслуживания одноканальные 34 Системы массового обслуживания Классификация СМО производится по различным признакам: Число каналов обслуживания одноканальные многоканальные СМО СМО

>35 Системы массового обслуживания С отказами С ожиданием СМО СМО Характер поступления заявок 35 Системы массового обслуживания С отказами С ожиданием СМО СМО Характер поступления заявок

>36 Системы массового обслуживания С приоритетом Без приоритета СМО СМО Дисциплина обслуживания абсолютным относительным 36 Системы массового обслуживания С приоритетом Без приоритета СМО СМО Дисциплина обслуживания абсолютным относительным

>37 Системы массового обслуживания ограниченная неограниченная СМО СМО Организация очереди 37 Системы массового обслуживания ограниченная неограниченная СМО СМО Организация очереди

>38 Системы массового обслуживания ограниченное неограниченное СМО СМО Время ожидания заявки в очереди 38 Системы массового обслуживания ограниченное неограниченное СМО СМО Время ожидания заявки в очереди

>39 Раздел I. «Теория массового обслуживания» (продолжение) Тема «Системы массового обслуживания» Лекция №4 39 Раздел I. «Теория массового обслуживания» (продолжение) Тема «Системы массового обслуживания» Лекция №4

>40 Системы массового обслуживания СМО с отказами В качестве показателей эффективности СМО с отказами 40 Системы массового обслуживания СМО с отказами В качестве показателей эффективности СМО с отказами будем рассматривать: А - абсолютную пропускную способность СМО, т.е. среднее число заявок, обслуживаемых в единицу времени; Q - относительную пропускную способность, т.е. среднюю долю пришедших заявок, обслуживаемых системой; Ротк - вероятность отказа, т.е. того, что заявка покинет СМО не обслуженной; - среднее число занятых каналов (для многоканальной системы)

>41 Системы массового обслуживания Одноканальная СМО с отказами Имеет 1 канал на который поступает 41 Системы массового обслуживания Одноканальная СМО с отказами Имеет 1 канал на который поступает поток заявок с интенсивностью . , - интенсивность потока обслуживания - среднее время обслуживания; Граф состояний: Состояние S0 – канал свободен; Состояние S1 – канал занят; S0 S1

>42 Системы массового обслуживания Исследуем предельные вероятности состояний: Учитывая p0+p1=1  Таким образом,  42 Системы массового обслуживания Исследуем предельные вероятности состояний: Учитывая p0+p1=1  Таким образом, 

>43 Системы массового обслуживания Пример: Заявки на телефонные переговоры поступают диспетчеру с интенсивностью =90 43 Системы массового обслуживания Пример: Заявки на телефонные переговоры поступают диспетчеру с интенсивностью =90 заявок в час (l/ч). Средняя продолжительность разговора по телефону = 2 мин. Определить показатели эффективности работы СМО при наличии одного телефонного номера. Решение: Тогда, , т.е. в среднем диспетчер ответит только на 25% звонков Вывод: Одного номера недостаточно - среднее число обслуженных заявок

>44 Системы массового обслуживания Многоканальная СМО с отказами Рассмотрим классическую задачу Эрланга: Имеется п 44 Системы массового обслуживания Многоканальная СМО с отказами Рассмотрим классическую задачу Эрланга: Имеется п каналов, на которые поступает поток заявок ,с интенсивностью . Поток обслуживаний имеет интенсивность . Найти предельные вероятности состояний системы и показатели ее эффективности. Граф состояний СМО соответствует процессу гибели и размножения: Состояние Sk – когда в СМО заняты k каналов. S2 Sn S1 S0

>45 Системы массового обслуживания По формулам для процесса гибели и размножения: Обозначим – приведенная 45 Системы массового обслуживания По формулам для процесса гибели и размножения: Обозначим – приведенная интенсивность потока заявок; Тогда, ……….. ………  Формулы Эрланга

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

>47 Системы массового обслуживания Пример: В условиях предыдущей задачи определить оптимальное число телефонных номеров, 47 Системы массового обслуживания Пример: В условиях предыдущей задачи определить оптимальное число телефонных номеров, если условием оптимальности считать удовлетворение в среднем из каждых 100 заявок не менее 90 заявок на переговоры. Решение: Рассчитаем интенсивность нагрузки канала: , т.е. за время среднего (по продолжительности) телефонного разговора поступает в среднем 3 заявки на переговоры. Будем постепенно увеличивать число каналов (телефонных номеров) п=2,3,4,… и определять характеристики СМО.

>48 Системы массового обслуживания Например, при n=2: По условию оптимальности Q0.90  необходимо установить 48 Системы массового обслуживания Например, при n=2: По условию оптимальности Q0.90  необходимо установить 5 телефонных номеров.

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

>50 Системы массового обслуживания Рассчитаем предельные вероятности: Вывод: В стационарном режиме в среднем 47% 50 Системы массового обслуживания Рассчитаем предельные вероятности: Вывод: В стационарном режиме в среднем 47% времени нет ни одной заявки; 35,7 % времени – обрабатывается 1 заявка; 13,4% времени – обрабатываются 2 заявки; 3,3% времени – обрабатываются 3 заявки; 

>51 Системы массового обслуживания Q=1-0.033=0.067  из каждых 100 заявок в среднем будет обслужено 51 Системы массового обслуживания Q=1-0.033=0.067  из каждых 100 заявок в среднем будет обслужено 96,7; A=0.25*0.967=0.242  в час будет обслужено в среднем 0.242 заявки  каждая из трех ЭВМ будет занята обслуживанием заявок в среднем на = 29,2% Замечание: При оценке эффективности работы вычислительного центра необходимо сопоставить доходы от выполнения заявок с потерями от простоев ЭВМ. Что важнее – высокая пропускная способность СМО или значительный простой оборудования?

>52 Раздел I. «Теория массового обслуживания» (продолжение) Тема «Системы массового обслуживания» Лекция №5 52 Раздел I. «Теория массового обслуживания» (продолжение) Тема «Системы массового обслуживания» Лекция №5

>53 Системы массового обслуживания СМО с ожиданием (очередью) Помимо показателей эффективности A, Q, и 53 Системы массового обслуживания СМО с ожиданием (очередью) Помимо показателей эффективности A, Q, и Pотк рассмотрим следующие: Lсист – среднее число заявок в системе; Tсист – среднее время пребывания заявки в системе; Lоч – среднее число заявок в очереди (длина очереди); Tоч – среднее время пребывания заявки в очереди; Pзан – вероятность того, что канал занят (степень загрузки канала)

>54 Случайные процессы Одноканальная СМО с неограниченной очередью Имеется 1 канал, на которые поступает 54 Случайные процессы Одноканальная СМО с неограниченной очередью Имеется 1 канал, на которые поступает поток заявок с интенсивностью . Поток обслуживаний имеет интенсивность . Найти предельные вероятности состояний системы и показатели ее эффективности. ……. Состояние S0 – канал свободен; Состояние S1 – канал занят, очереди нет; Состояние S2 – канал занят, в очереди 1 заявка; ………….. Состояние Sk – канал занят, в очереди (k-1) заявка; ………….. S2 Sk S1 S0

>55 Системы массового обслуживания Вопрос: Существуют ли предельные вероятности? Ведь при t очередь может 55 Системы массового обслуживания Вопрос: Существуют ли предельные вероятности? Ведь при t очередь может неограниченно возрастать. Доказано! При предельные вероятности существуют. При очередь растет до бесконечности. Т.к. , то геометрический ряд сходится к сумме Отсюда,  … … Предельные вероятности образуют убывающую геометрическую прогрессию со знаменателем

>56 Системы массового обслуживания Найдем показатели эффективности СМО: , где - среднее число заявок, 56 Системы массового обслуживания Найдем показатели эффективности СМО: , где - среднее число заявок, находящихся под обслуживанием; По формуле матожидания  Теорема. При любом характере потока заявок распределении времени обслуживания и дисциплине обслуживания выполняется:  Формулы Литтла

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

>58 Системы массового обслуживания Вероятность того, что причал свободен p0=1-0.8 Вероятность того, что причал 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.

>59 Системы массового обслуживания Многоканальная СМО с неограниченной очередью Имеется n каналов с неограниченной 59 Системы массового обслуживания Многоканальная СМО с неограниченной очередью Имеется n каналов с неограниченной очередью и потоком заявок с интенсивностью . Поток обслуживания имеет интенсивность . Найти предельные вероятности состояний системы и показатели ее эффективности. ….. ….. ….. ….. ….. S0- все каналы свободны …………. Sn – заняты все каналы, очередь пустая………… Sn+r – заняты все каналы, в очереди r заявок…………. S2 Sk S1 S0 Sn Sn+1 Sn+r

>60 Системы массового обслуживания Доказано: при предельные вероятности существуют. При очередь растет до бесконечности. 60 Системы массового обслуживания Доказано: при предельные вероятности существуют. При очередь растет до бесконечности. … … … … - вероятность, что заявка окажется в очереди - среднее число занятых каналов - среднее число заявок в очереди среднее число заявок в СМО

>61 Системы массового обслуживания Замечание: При для СМО с неограниченной очередью любая заявка будет 61 Системы массового обслуживания Замечание: При для СМО с неограниченной очередью любая заявка будет обслужена, т.е. Pотк=0, Q=1, A= . Пример: В универсаме к кассе поступает поток покупателей с интенсивностью  = 81 чел. в час. Средняя продолжительность обслуживания кассиром одного покупателя tоб=2 мин. Определить: a) Минимальное количество кассиров пmin, при котором очередь не будет расти до бесконечности, и соответствующие характеристики обслуживания при п=пmin. б) Оптимальное количество nопт контролеров-кассиров, при котором относительная величина затрат Сотн, связанная с издержками на содержание кассиров и с

>62 Системы массового обслуживания пребыванием в очереди покупателей (задаваемая, например, по формуле будет минимальна, 62 Системы массового обслуживания пребыванием в очереди покупателей (задаваемая, например, по формуле будет минимальна, и сравнить характеристики обслуживания при п=пmin и n=nопт. в) Вероятность того, что в очереди будет не более трех покупателей. Решение: а) По условию =81 (1/ч)=1.35(1/мин). Очередь не будет  до  при  при n< . Таким образом, nmin=3 – минимальное число кассиров.

>63 Системы массового обслуживания Найдем характеристики обслуживания СМО при п = 3. Т.о. 2.5% 63 Системы массового обслуживания Найдем характеристики обслуживания СМО при п = 3. Т.о. 2.5% рабочего времени кассиры простаивают. Вероятность того, что будет очередь: Среднее число покупателей в очереди к кассе: Среднее время ожидания в очереди:

>64 Системы массового обслуживания Среднее число покупателей в кассах (с учетом очереди): Среднее время 64 Системы массового обслуживания Среднее число покупателей в кассах (с учетом очереди): Среднее время нахождения в кассах (с учетом очереди): Среднее число занятых обслуживанием кассиров: Доля занятых обслуживанием кассиров: Итак, при n=3 узел кассового обслуживания перегружен!

>65 Системы массового обслуживания б) При n=3: Рассчитаем Cотн при n=4,5,6,7: 65 Системы массового обслуживания б) При n=3: Рассчитаем Cотн при n=4,5,6,7:

>66 Системы массового обслуживания Т.о. min Cотн = 4,14 при n=5  nопт=5 Рассчитаем 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 (мин) Вывод: Среднее число занятых кассиров не изменилось, но остальные показатели улучшились!

>67 Системы массового обслуживания в) Вероятность того, что в очереди будет не более трех 67 Системы массового обслуживания в) Вероятность того, что в очереди будет не более трех покупателей: При n=5: Для сравнения при n=3

>68 Системы массового обслуживания Пример: Железнодорожная касса с двумя окошками продает билеты в два 68 Системы массового обслуживания Пример: Железнодорожная касса с двумя окошками продает билеты в два пункта А и В. Интенсивность потока пассажиров, желающих купить билеты, для обоих пунктов одинакова: A=В = 0,45 (пассажиров в минуту). На обслуживание пассажиров кассир тратит в среднем 2 мин. Рассматриваются два варианта продажи билетов: 1 ВАРИАНТ: Билеты продаются в одной кассе с двумя окошками одновременно в оба пункта А и В; 2 ВАРИАНТ: Билеты продаются в двух специали-зированных кассах (по одному окошку в каждой), одна только в пункт А, другая - только в пункт В.

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

>70 Системы массового обслуживания Решение: а) 1 ВАРИАНТ – это двухканальная СМО с неограни-ченной 70 Системы массового обслуживания Решение: а) 1 ВАРИАНТ – это двухканальная СМО с неограни-ченной очередью. =0.45+0.45=0.9 Т.к. ,то предельные вероятности . Вероятность простоя двух кассиров

>71 Системы массового обслуживания По формулам Литтла: 2 ВАРИАНТ – это две одноканальные СМО 71 Системы массового обслуживания По формулам Литтла: 2 ВАРИАНТ – это две одноканальные СМО с неограни-ченной очередью. Для каждой СМО =0.45 Вывод: По 2му варианту длина очереди и среднее время ожидания больше, чем по 1му варианту.

>72 Системы массового обслуживания б) При среднем времени обслуживания T1сист=10.5 (мин) – по 1му 72 Системы массового обслуживания б) При среднем времени обслуживания T1сист=10.5 (мин) – по 1му варианту очереди; T2сист=20 (мин) – по 2му варианту очереди. Требуется найти , чтобы T2сист < T1сист Т.к.   Вывод: При уменьшении среднего времени обслуживания до 1,83 мин. 2й вариант очереди более эффективный.  

>73 Раздел I. «Теория массового обслуживания» (продолжение) Тема «Системы массового обслуживания» Лекция №6 73 Раздел I. «Теория массового обслуживания» (продолжение) Тема «Системы массового обслуживания» Лекция №6

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

>75 Системы массового обслуживания Одноканальная СМО с ограниченной очередью ….. Lоб=1-p0 – среднее число 75 Системы массового обслуживания Одноканальная СМО с ограниченной очередью ….. Lоб=1-p0 – среднее число заявок под обслуживанием Lcист= Lоч+Lоб

>76 Системы массового обслуживания Многоканальная СМО с ограниченной очередью …. …. ….. ….. 76 Системы массового обслуживания Многоканальная СМО с ограниченной очередью …. …. ….. …..

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

>78 Системы массового обслуживания Решение: По условию m=3 =0.8 - вероятность того, что причал 78 Системы массового обслуживания Решение: По условию m=3 =0.8 - вероятность того, что причал свободен вероятность того, что судно покинет причал без разгрузки

>79 Раздел I. «Теория массового обслуживания» (продолжение) Тема «Законы распределения случайных величин при имитации 79 Раздел I. «Теория массового обслуживания» (продолжение) Тема «Законы распределения случайных величин при имитации процессов» Лекция №7

>80 Законы распределения случайных величин Нормальное распределение (гауссово) Является одним из наиболее важных и 80 Законы распределения случайных величин Нормальное распределение (гауссово) Является одним из наиболее важных и часто используемых видов непрерывных распределений. Определение: Непрерывная случайная величина t имеет нормальное распределение с параметрами m и σ, если плотность распределения вероятности p(t) имеет вид: где m – математическое ожидание; σ – среднее квадратическое отклонение.

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

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

>83 Законы распределения случайных величин Равномерное распределение Применяется в случае, когда известно, что случайная 83 Законы распределения случайных величин Равномерное распределение Применяется в случае, когда известно, что случайная величина может принять значение в определенных границах с одинаковой вероятностью. Плотность вероятностей равномерного распределения на интервале (m-s,m+s) имеет следующий вид: Дисперсия m-математическое ожидание

>84 Законы распределения случайных величин Экспоненциальное распределение Также занимает важное место при проведении системного 84 Законы распределения случайных величин Экспоненциальное распределение Также занимает важное место при проведении системного анализа экономической деятельности. Этому закону подчиняются многие явления, например, срок безотказной работы различных технических устройств, частота поступлений заказов на предприятие, посещение покупателями магазина-супермаркета и др. Функция плотности вероятностей экспоненциального распределения с параметром  задается выражением:

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

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

>87 Законы распределения случайных величин Обобщенное распределение Эрланга Используется в случаях, когда длительность какого-либо 87 Законы распределения случайных величин Обобщенное распределение Эрланга Используется в случаях, когда длительность какого-либо процесса можно представить как сумму k элементарных последовательных составляющих, распределенных по экспоненциальному закону. Пусть математическое ожидание длительно-сти всего процесса при средней длительности элементарной составляющей ,тогда При k=1 получаем экспоненциальное распределение

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

>89 Раздел II. «Инструментальные средства имитационного моделирования» Тема «Введение в имитационное моделирование» Лекция №8 89 Раздел II. «Инструментальные средства имитационного моделирования» Тема «Введение в имитационное моделирование» Лекция №8

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

>91 Введение в имитационное моделирование Примеры типовых задач, решаемых средствами имитационного моделирования при управлении 91 Введение в имитационное моделирование Примеры типовых задач, решаемых средствами имитационного моделирования при управлении экономическими объектами: моделирование процессов логистики для определения временных и стоимостных параметров; управление инвестиционными проектами на различных этапах его жизненного цикла с учетом возможных рисков; прогнозирование финансовой деятельности предприятий на конкретный период времени; анализ адаптивных свойств, расчет параметров надежности и задержек обработки информации в банковских информационных системах;

>92 Введение в имитационное моделирование оценка параметров надежности и задержек в централизованных информационных системах 92 Введение в имитационное моделирование оценка параметров надежности и задержек в централизованных информационных системах с коллективным доступом (кассы продаж ж/д и авиабилетов, системы бронирования и т.д.; анализ эксплуатационных параметров корпоративных информационных систем предприятий, пропускной способности информационных каналов и узлов обработки информации; моделирование действий курьерской службы в регионе; анализ пропускной способности обслуживания населения (торговые комплексы, комбинаты бытового обслуживания, государственные структуры и т.д.).

>93 Введение в имитационное моделирование Современные программные комплексы имитационного моделирования: «Process Charter» (разработчик - 93 Введение в имитационное моделирование Современные программные комплексы имитационного моделирования: «Process Charter» (разработчик - фирма «Scitor», США); «Powersim» (фирма «Modell Data», Норвегия); «Ithink» (фирма «High Performance Systems», США); «Extend+BPR» (фирма «Imagine That!», США); «ReThink» (фирма «Gensym», США); «Pilgrim» (разработчики системы – Московский институт статистики и информатики; фирма «МегаТрон», Россия; фирма «Keisy», Нидерланды; фирма «Enit», Эстония).

>94 Введение в имитационное моделирование Достоинства программного пакета «Pilgrim-5» ориентация на совместное моделирование материальных, 94 Введение в имитационное моделирование Достоинства программного пакета «Pilgrim-5» ориентация на совместное моделирование материальных, информационных и финансовых процессов; наличие развитой CASE-оболочки, позволяющей конструировать многоуровневые модели; возможность непосредственного анализа результатов моделирования благодаря технологии создания функциональных окон наблюдения за моделью с помощью Visual C++, Delphy или других средств; возможность управления моделями непосредственно в процессе их выполнения с помощью специальных диалоговых окон.

>95 Введение в имитационное моделирование Средством построения моделей в системе PILGRIM является графический конструктор 95 Введение в имитационное моделирование Средством построения моделей в системе PILGRIM является графический конструктор «Gem» (от «Generator models»). Схема имитационной модели - ориентированный граф, вершины которого представляют собой компоненты элементарных процессов, а дуги определяют направление потоков заявок и управляющих воздействий в моделируемой системе. Конструктор Gem генерирует программу на языке С++, которая в дальнейшем должна быть скомпилирована в составе проекта в среде MS Developer Studio, где предварительно должен быть установлен Visual C++ с библиотеками Pilgrim.

>96 Введение в имитационное моделирование Этапы построения имитационной модели Анализ структуры моделируемого процесса; Определение 96 Введение в имитационное моделирование Этапы построения имитационной модели Анализ структуры моделируемого процесса; Определение входных и выходных параметров модели; Построение графа модели с помощью конструктора GEM (либо прямое создание программного файла); Описание узлов графа (определение значений параметров узлов модели). Определение условий выбора узла, если в модели имеются ветвления; Компиляция модели.

>97 Введение в имитационное моделирование Транзакты Основной динамической единицей любой модели, работающей под управлением 97 Введение в имитационное моделирование Транзакты Основной динамической единицей любой модели, работающей под управлением имитатора, является транзакт. Определение: Транзакт - это формальный запрос на какое-либо обслуживание. Имеют набор динамически изменяющихся особых свойств и параметров. Пути миграции транзактов по графу модели определяются логикой функционирования компонентов модели в узлах сети.

>98 Введение в имитационное моделирование Транзакт может выполнять следующие действия: порождать группы (семейства) других 98 Введение в имитационное моделирование Транзакт может выполнять следующие действия: порождать группы (семейства) других транзактов; поглощать другие транзакты конкретного семейства; захватывать ресурсы, использовать их на некоторое время и затем освобождать; определять время обслуживания, накапливать информацию о пройденном пути и иметь информацию о своем дальнейшем маршруте.

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

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

>101 Введение в имитационное моделирование Узлы Узлы графа имитационной модели – это центры обслуживания 101 Введение в имитационное моделирование Узлы Узлы графа имитационной модели – это центры обслуживания транзактов. В узлах транзакты могут задерживаться, обслуживаться, порождать семейства новых транзактов, уничтожать другие транзакты. Вид обслуживания транзакта определяется типом узла. Нумерация и присвоение имен узлам графа производится разработчиком модели. Примеры узлов: счет бухгалтерского учета; производственный или ремонтный участок; транспортное средство, перемещающее ресурсы; информационный центр и др.

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

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

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

>105 Раздел II. «Инструментальные средства имитационного моделирования» (продолжение) Тема «Структурирование имитационной модели» Лекция №9 105 Раздел II. «Инструментальные средства имитационного моделирования» (продолжение) Тема «Структурирование имитационной модели» Лекция №9

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

>107 Структура имитационной модели Вставляется в секцию Блок описания узлов модели (стохастическая многоуровневая сеть) 107 Структура имитационной модели Вставляется в секцию Блок описания узлов модели (стохастическая многоуровневая сеть) Всегда необходим

>108 Структура имитационной модели Макрооперация #include <Pilgrim.h> подключает моделирующую среду имитатора к модели. MODBEG 108 Структура имитационной модели Макрооперация #include подключает моделирующую среду имитатора к модели. MODBEG (p1,p2,p3,p4,p5,p6,p7,p8,p9) - оператор перво-начальной настройки осуществляет первоначальную настройку моделирующих программ и инициализацию в памяти ЭВМ графа модели. Аргументы этой функции имеют следующий смысл: p1 – символическое имя узла: строка длиной до 14 символов (char); p2 – максимальный номер узла модели (int), причем 2≤p2≤mmax, где mmax – некоторое граничное значение, задаваемое при установке имитатора на ЭВМ (обычно mmax =1024);

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

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

>111 Структура имитационной модели p6 – номер (int) одной из очередей (узел типа QUEUE, 111 Структура имитационной модели p6 – номер (int) одной из очередей (узел типа QUEUE, ATTACH или SEND), которую необходимо контролировать во времени для анализа динамики задержек в этой очереди с графическим отображением результатов. p7 – номер (int) одного из процессов (узла типа PROC), который необходимо контролировать как в пространстве, так и во времени с графическим отображением результатов. Если нет необходимости в графической интерпретации, то указывается none.

>112 Структура имитационной модели p8 – номер (int) терминатора (узел типа TERM), на входе 112 Структура имитационной модели p8 – номер (int) терминатора (узел типа TERM), на входе которого необходимо наблюдать интенсивность потока транзактов во время моделирования. Если такой необходимости нет, то указывается none. p9 – точность: если p9=1..6, то имитатор будет использовать от 1 до 6 знаков после запятой при выводе результатов; если p9=none, то результаты будут округляться до целых значений.

>113 Структура имитационной модели NETWORK (p1,p2) - координатор сети процессов. Осуществляет диспетчеризацию транзактов в 113 Структура имитационной модели NETWORK (p1,p2) - координатор сети процессов. Осуществляет диспетчеризацию транзактов в узлах модели, планирует события в едином модельном времени и активизирует дискретные или непрерывные компоненты модели, имитирующие внешнюю среду. Аргументы p1 и p2 - это имена (адреса) соответствующих программных функций моделирования внешней среды, производящих интегрирование, решение разностных уравнений, вычисление по формулам и т.д. Функции float p1(d) и float p2(d), если они необходимы, пишутся пользователем. Если процессы p1(d) и p2(d) не моделируются, то в качестве p1 и p2 указывается слово dummy.

>114 Структура имитационной модели MODEND (p1,p2,p3,p4) - оператор завершения моделирования. Выполняется по истечении времени 114 Структура имитационной модели MODEND (p1,p2,p3,p4) - оператор завершения моделирования. Выполняется по истечении времени моделирования, указанного в операторе MODBEG. Позволяет просмотреть на экране монитора графические результаты и выводит итоговые результаты в файл-отчет. Аргументы функции следующие: p1 – символическое имя файла-отчета (сhar); p2 – номер первой страницы отчета (int); p3 - число строк на каждой странице (int); p4 - имеет два значения:  page, если в файле-отчете необходимо проставить символ перевода страницы;  none, если символ перевода страницы не ставится.

>115 Раздел II. «Инструментальные средства имитационного моделирования» (продолжение) Тема «Функциональные узлы имитационной модели » 115 Раздел II. «Инструментальные средства имитационного моделирования» (продолжение) Тема «Функциональные узлы имитационной модели » Лекция №10

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

>117 Функциональные узлы имитационной модели Аргументы функции AG (p1,p2,p3,p4,p5,p6,p7,p8): p1 – символическое имя узла: 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 – равномерное распределение;

>118 Функциональные узлы имитационной модели 3) expo – экспоненциальное распределение; 4) erln – обобщенное 118 Функциональные узлы имитационной модели 3) expo – экспоненциальное распределение; 4) erln – обобщенное распределение Эрланга; 5) beta – треугольное распределение 6) none – если интервал между транзактами является детерминированной величиной. p5 – величина, зависимая от типа функции распределения (float):  математическое ожидание интервала времени (float) между двумя последовательно сгенерированными транзактами (p4 = norm, unif, expo);  математическое ожидание одного слагаемого этого интервала (p4 = erln);  минимальное значение интервала (p4= beta);  постоянная величина этого интервала (p4 = none).

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

>120 Функциональные узлы имитационной модели p7 – величина, зависимая от типа функции распределения (float): 120 Функциональные узлы имитационной модели p7 – величина, зависимая от типа функции распределения (float): максимальное значение интервала времени между двумя последовательно сгенерированными транзактами (p4 = beta); значение zero (p4=norm, unif, expo, erln, none). p8 - номер узла (int), в который передается сгенерированный транзакт (узел-приемник). Параметры генератора могут быть изменены во время работы модели с помощью команды cheg (change generator).

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

>122 Функциональные узлы имитационной модели Аргументы функции SERV (p1,p2,p3,p4,p5,p6,p7,p8): p1 – символическое имя узла: 122 Функциональные узлы имитационной модели Аргументы функции SERV (p1,p2,p3,p4,p5,p6,p7,p8): p1 – символическое имя узла: строка длиной до 14 символов (char); p2 - число обслуживающих каналов (int), при этом ; p3 - дисциплина обслуживания:  abs - приоритетная, с прерыванием обслуживания менее приоритетного транзакта более приоритетным;  none – бесприоритетная.

>123 Функциональные узлы имитационной модели p4 – тип функции распределения интервала времени обслуживания транзакта 123 Функциональные узлы имитационной модели p4 – тип функции распределения интервала времени обслуживания транзакта в узле SERV: 1) norm – нормальное распределение; 2) unif – равномерное распределение; 3) expo – экспоненциальное распределение; 4) erln – обобщенное распределение Эрланга; 5) beta – треугольное распределение 6) none – если интервал между транзактами является детерминированной величиной.

>124 Функциональные узлы имитационной модели p5 – величина, зависимая от типа функции распределения (float): 124 Функциональные узлы имитационной модели p5 – величина, зависимая от типа функции распределения (float): математическое ожидание интервала времени обслуживания транзакта (p4 = norm, unif, expo);  математическое ожидание одного слагаемого этого интервала (p4 = erln);  минимальное значение интервала (p4= beta);  постоянная величина этого интервала (p4 = none).

>125 Функциональные узлы имитационной модели p7 – величина, зависимая от типа функции распределения (float): 125 Функциональные узлы имитационной модели p7 – величина, зависимая от типа функции распределения (float):  максимальное значение интервала времени обслу-живания транзакта (p4 = beta);  значение zero (p4=norm, unif, expo, erln, none). p8 - номер узла (int), в который передается обслуженный транзакт. Если задана приоритетная дисциплина обслуживания (p3 = abs), то имеются две возможности для работы с прерванными неприоритетными транзактами: 1) дообслуживание после ухода приоритетного транзакта; 2) возобновление обслуживания заново.

>126 Функциональные узлы имитационной модели - Узел QUEUE - очередь транзактов (с приоритетами или 126 Функциональные узлы имитационной модели - Узел QUEUE - очередь транзактов (с приоритетами или без приоритетов) Узел QUEUE моделирует очередь транзактов. Строится по одному из двух правил: либо транзакты упорядочены в порядке поступления, либо вновь поступающие транзакты поступают в конец своей приоритетной группы. Аргументы функции QUEUE (p1,p2,p3): p1 – символическое имя узла: строка длиной до 14 символов (char); p2 - тип организации очереди (int): prty, если очередь с приоритетами; none, если очередь без приоритетов. p3 – номер узла-приемника (int).

>127 Функциональные узлы имитационной модели Узел TERM - безусловный терминатор транзактов Узел TERM удаляет 127 Функциональные узлы имитационной модели Узел TERM - безусловный терминатор транзактов Узел TERM удаляет из модели входящий в него транзакт и фиксирует время его существования, начиная с момента выхода этого транзакта из генератора. Аргумент функции TERM (p1): p1 – символическое имя узла: строка длиной до 14 символов (char);

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

>129 Функциональные узлы имитационной модели Среднее время задержки - это среднее время пребывания ключа 129 Функциональные узлы имитационной модели Среднее время задержки - это среднее время пребывания ключа в закрытом состоянии. Число обслуженных транзактов - это число переключений ключа из закрытого состояния в открытое. Аргументы функции KEY (p1. p2): p1 – символическое имя узла: строка длиной до 14 символов (char); p2 – номер узла-приемника (int).

>130 Функциональные узлы имитационной модели Узел CREAT - управляемый генератор транзактов (мультипликатор) Узел CREAT 130 Функциональные узлы имитационной модели Узел CREAT - управляемый генератор транзактов (мультипликатор) Узел CREAT предназначен для создания нового семейства транзактов. Все транзакты в модели принадлежат какому-то семейству. Транзакты, выходящие из обычного генератора AG, принадлежат к семейству с номером 0. Узел CREAT, в отличие от AG - это управляемый генератор. Назначение его самое различное. В замкнутых моделях он применяется для схемы зарядки. Аргументы функции CREAT (p1,p2,p3,p4,p5,p6): p1 – символическое имя узла: строка длиной до 14 символов (char);

>131 Функциональные узлы имитационной модели p2 – идентификатор (int) порождаемого семейства транзактов; p3 – 131 Функциональные узлы имитационной модели p2 – идентификатор (int) порождаемого семейства транзактов; p3 – число порождаемых транзактов (int); p4 – имеет следующие значения: copy – для тиражирования параметров порождающего транзакта каждому порожденному (включая время жизни); none - для присвоения каждому порожденному транзакту в качестве параметров нулевых значений. p5 – номер узла (int), в который направляются порожденные транзакты. p6 – номер узла (int), в который направляется порождающий транзакт.

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

>133 Функциональные узлы имитационной модели Узел DELET – управляемый терминатор транзактов (демультипликатор) Узел DELET 133 Функциональные узлы имитационной модели Узел DELET – управляемый терминатор транзактов (демультипликатор) Узел DELET предназначен для уничтожения группы транзактов, принадлежащих семействам из диапазона, задаваемому параметрами p2 и p3. В отличие от терминатора TERM данный узел управляется специальным поглощающим транзактом. Аргументы функции DELET (p1,p2,p3,p4,p5,p6): p1 – символическое имя узла: строка длиной до 14 символов (char); p2 – начало (int) диапазона номеров семейств уничтожаемых транзактов;

>134 Функциональные узлы имитационной модели p3 – конец (int) диапазона номеров семейств уничтожаемых транзактов; 134 Функциональные узлы имитационной модели p3 – конец (int) диапазона номеров семейств уничтожаемых транзактов; p4 – идентификатор (int) семейства, к которому принадлежит поглощающий транзакт; p5 – число уничтожаемых транзактов (int); p6 – номер узла (int), в который направляется поглощающий транзакт.

>135 Функциональные узлы имитационной модели Логика функционирования узла DELET: 1) в узел входит поглощающий 135 Функциональные узлы имитационной модели Логика функционирования узла DELET: 1) в узел входит поглощающий транзакт семейства p4 и находится там до тех пор, пока в него не поступят p5 транзактов семейства из диапазона [p2;p3]. После поступления требуемого количества транзактов они мгновенно уничтожаются, а поглощающий транзакт переходит в узел p6. 2) если в узел DELET так и не поступят p5 транзактов, то поглощающий транзакт будет все время находиться в нем, блокируя его для поступления других поглощающих транзактов. Для принудительного изгнания такого транзакта из узла используется функция FREED(i).

>136 Раздел II. «Инструментальные средства имитационного моделирования» (продолжение) Тема «Функциональные узлы имитационной модели » 136 Раздел II. «Инструментальные средства имитационного моделирования» (продолжение) Тема «Функциональные узлы имитационной модели » Лекция №11

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

>138 Функциональные узлы имитационной модели Для описания узла-счета с номером i предназначен узел SEND 138 Функциональные узлы имитационной модели Для описания узла-счета с номером i предназначен узел SEND (p1,p2,p3,p4,p5) с аргументами: p1 – символическое имя узла: строка длиной до 14 символов (char); p2 – узел-счет, на который требуется перевести заданную сумму (int). p3 – размер заданной суммы (double). В обязательном порядке определяется до второго знака после запятой. p4 – возможность работы с приоритетами:  prty, если требования на перечисление денег удовлетворяются с учетом приоритетов. В случае отсутствия необходимой суммы на счете i транзакты образуют очередь в узле SEND, причем ближе к голове очереди находится более приоритетная группа транзактов.

>139 Функциональные узлы имитационной модели Внутри приоритетной группы транзакты расположены по возрастанию требуемой суммы. 139 Функциональные узлы имитационной модели Внутри приоритетной группы транзакты расположены по возрастанию требуемой суммы. Если запрашиваемые суммы одинаковы, то транзакты расположены в хронологическом порядке (правило FIFO – «First In First Out»).  none, если требования на перечисление не имеют приоритетов. Тогда организация транзактов в очереди осуществляется по правилу FIFO. p5 – номер узла типа DIRECT, играющего роль «финансового директора» и выполняющего проводки по мере необходимости. Событием в узле типа SEND является факт выполнения проводки со счета i на счет p2. Момент времени этого события - это момент времени проводки, определяемый выводом транзакта из узла SEND.

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

>141 Функциональные узлы имитационной модели p3 – размер денежной суммы (double). Узел DIRECT является 141 Функциональные узлы имитационной модели p3 – размер денежной суммы (double). Узел DIRECT является своеобразным клапаном, через который могут пройти только те транзакты, проводки по которым можно выполнить. Обслуживание всех узлов SEND, имеющихся в модели может выполняться как одним, так и несколькими узлами типа DIRECT. Аргументы функции DIRECT (p1,p2): p1 – символическое имя узла: строка длиной до 14 символов (char); p2 – узел-приемник транзакта, выполнившего проводку Этот узел может быть любого типа, кроме DIRECT.

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

>143 Функциональные узлы имитационной модели При посещении транзактом узла ATTACH ему выдается некоторое количество 143 Функциональные узлы имитационной модели При посещении транзактом узла ATTACH ему выдается некоторое количество единиц хранящегося там ресурса. Узел ATTACH - очередь запросов на получение ресурса. Аргументы функции ATTACH (p1,p2,p3,p4): p1 – символическое имя узла: строка длиной до 14 символов (char); p2 – требуемое количество элементов ресурса (long); p3 – возможность работы с приоритетами:  prty, если требования на ресурсы удовлетворяются с учетом приоритетов.

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

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

>146 Функциональные узлы имитационной модели Для изменения объема ресурса, имеющегося на складе ATTACH используется 146 Функциональные узлы имитационной модели Для изменения объема ресурса, имеющегося на складе ATTACH используется функция SUPPLY (p1,p2,p3) с параметрами: p1 – номер узла ATTACH (int); p2 – признак: add, если требуется добавить ресурс на склад в объеме p3 единиц; none, если требуется заменить складской запас на объем p3 единиц; p3 – количество единиц ресурса (long).

>147 Функциональные узлы имитационной модели Остаток ресурса и дефицит фиксируется в атрибутах узла rsal 147 Функциональные узлы имитационной модели Остаток ресурса и дефицит фиксируется в атрибутах узла rsal и rdef. Дефицит равен суммарному объему запросов всех стоящих в очереди в узле ATTACH транзактов. Полученный на складе ресурс транзакт может вернуть обратно на склад из любого узла модели с помощью команды DETACH (p1,p2), где p1 – номер узла-склада ATTACH (int); p2 – число возвращаемых единиц ресурса.

>148 Функциональные узлы имитационной модели Узел PROC – транзактно-управляемый процесс Специальная функция моделирования транзактно-управляемого 148 Функциональные узлы имитационной модели Узел PROC – транзактно-управляемый процесс Специальная функция моделирования транзактно-управляемого непрерывного процесса. Объединяет в себе возможности имитации: 1) обслуживание в узле подобно SERV с одним каналом; 2) перемещение узла по общему полю данных на координатной сетке; 3) запуск на время активности функции типа float p2(d), где d - элементарный интервал активности, который определяется системой PILGRIM в процессе моделирования и зависит от параметров p3,p4,p5,p6.

>149 Функциональные узлы имитационной модели Интервал требуемого обслуживания транзакта может быть меньше времени пребывания 149 Функциональные узлы имитационной модели Интервал требуемого обслуживания транзакта может быть меньше времени пребывания транзакта в этом узле, так как процесс может быть переведен в состояние "пассивен" или "активен" каким-то транзактом из другого узла с помощью функций ACTIV и PASSIV. Если процесс пассивен, то обслуживание транзакта приостанавливается, а выполнение функции p2 прерывается до тех пор, пока процесс не будет переведен в активное состояние. Аргументы функции PROC (p1,p2,p3,p4,p5,p6,p7,p8): p1 – символическое имя узла: строка длиной до 14 символов (char);

>150 Функциональные узлы имитационной модели p2 - возможность подключения внешней программы:  имя (адрес) 150 Функциональные узлы имитационной модели p2 - возможность подключения внешней программы:  имя (адрес) программы, написанной пользователем, и моделирующей процесс с помощью формул, дифференциальных уравнений и т.д.;  dummy, если внешняя программа отсутствует. p3 - номер исходной точки, в которую устанавливается узел PROC перед началом моделирования (int); p4 - тип функции распределения интервала активности процесса, либо тип координатного пространства. Если это тип функции распределения, то используются условные обозначения:

>151 Функциональные узлы имитационной модели norm – нормальное распределение; unif – равномерное распределение; expo 151 Функциональные узлы имитационной модели norm – нормальное распределение; unif – равномерное распределение; expo – экспоненциальное распределение; erln – обобщенное распределение Эрланга; beta – треугольное распределение none – если интервал является детерминированной величиной. Обозначения для задания типа пространства: earth – поверхность Земли (географические координаты широта и долгота); plane – декартова плоскость (прямоугольная система координат); cosmos – произвольное пространство; none – если режим пространственной имитации в данном узле не нужен.

>152 Функциональные узлы имитационной модели p5 – величина (float), зависимая от параметра p4, определяющего 152 Функциональные узлы имитационной модели p5 – величина (float), зависимая от параметра p4, определяющего тип функции распределения интервала активности процесса, либо тип координатного пространства: математическое ожидание интервала времени активности (p4 = norm, unif, expo); математическое ожидание одного слагаемого этого интервала (p4 = erln); минимальное значение интервала (p4= beta); постоянная величина этого интервала (p4 = none); интервал "непрерывного" нахождения этого узла на координатной сетке (p4= earth, plane, cosmos).

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

>154 Функциональные узлы имитационной модели p7 – величина (float), зависимая от параметра p4: значение 154 Функциональные узлы имитационной модели p7 – величина (float), зависимая от параметра p4: значение zero (p4=norm, unif, expo, erln, none). максимальное значение интервала времени обслуживания транзакта (p4 = beta); p8 – номер узла-приемника (int).

>155 Функциональные узлы имитационной модели Узел DINAM - очередь к процессу с динамическими пространственно- 155 Функциональные узлы имитационной модели Узел DINAM - очередь к процессу с динамическими пространственно- зависимыми приоритетами Предназначен для моделирования обслуживания транзактов в очереди с динамическими пространственно-зависимыми приоритетами. Эта функция моделирует оптимально-управляемую очередь, которая находится на входе узла типа PROC. Аргументы функции DYNAM (p1,p2): p1 – символическое имя узла: строка длиной до 14 символов (char); p2 - номер узла-приемника, в который передается транзакт. Узел PROC обязательно должен использовать свой параметр p4= earth, plane или cosmos.

>156 Функциональные узлы имитационной модели Узел DYNAM - очередь транзактов, направляющихся на обслуживание в 156 Функциональные узлы имитационной модели Узел DYNAM - очередь транзактов, направляющихся на обслуживание в узел PROC. Порядок обслуживания в этой очереди пересматривается каждый раз при поступлении в хвост очереди нового транзакта и при переходе первого транзакта в узел PROC. Функция DYNAM всегда "заглядывает" в узел PROC и анализирует, не следует ли прервать обслуживание находящегося в нем транзакта. Если да, то вычисляется местонахождение текущей точки пространства, в которой находится узел PROC, извлекается из этого узла транзакт обратно в свою очередь и посылается в него более "выгодный" с точки зрения оптимизации транзакт. Используется оригинальный алгоритм оптимизации динамического расписания, обладающий высоким быстродействием и имеющий практическое применение.

>157 Функциональные узлы имитационной модели Управление переходами в многослойных моделях Декомпозиция в имитационной модели 157 Функциональные узлы имитационной модели Управление переходами в многослойных моделях Декомпозиция в имитационной модели – это детализация одного узла с помощью совокупности других узлов. Существуют четыре вида декомпозиции процессов: общий случай декомпозиции сложного процесса с помощью узлов типа DOWN; декомпозиция процессов перечисления денежных средств с помощью узлов типа PAY; декомпозиция процессов выделения ресурсов с помощью узлов типа RENT; абстрактное объединение группы процессов в один псевдопроцесс с помощью виртуального узла PARENT без образования нового узла.

>158 Функциональные узлы имитационной модели Узел DOWN - переход на нижерасположенный слой Предназначен для 158 Функциональные узлы имитационной модели Узел DOWN - переход на нижерасположенный слой Предназначен для объединения большой группы узлов в один общий узел, который находится на одном из слоев модели. Этот узел подвергается декомпозиции на слоях модели, которые расположены ниже. Аргументы функции DOWN (p1,p2,p3): p1 – символическое имя узла: строка длиной до 14 символов (char); p2 - номер узла-приемника на нижнем слое модели (int); p3 - номер узла возврата на данном слое, где расположен узел DOWN.

>159 Функциональные узлы имитационной модели Узел PAY - имитация перечисления денежной суммы Подлежит детализации 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).

>160 Функциональные узлы имитационной модели Узел RENT - имитация получения ресурса со склада Подлежит 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).

>161 Функциональные узлы имитационной модели Узел PARENT - объединение группы процессов Является особым типом 161 Функциональные узлы имитационной модели Узел PARENT - объединение группы процессов Является особым типом узла, использующимся исключительно как средство создания наглядных многоуровневых моделей в графическом конструкторе GEM. Виртуальный узел типа PARENT содержит ссылку на плоскость, его детализирующую, т.е. используется для описания процессов, которые можно рассмотреть не отдельной плоскости. При этом он не выполняет никаких действий по обработке транзакта. При генерации программного кода заменяется своей декомпозицией.

>162 Раздел II. «Инструментальные средства имитационного моделирования» (продолжение) Тема «Сигнальные управляющие функции. Параметры транзактов 162 Раздел II. «Инструментальные средства имитационного моделирования» (продолжение) Тема «Сигнальные управляющие функции. Параметры транзактов и узлов» Лекция №12

>163 Сигнальные управляющие функции Сигнальные управляющие функции Могут использоваться в любом узле (кроме узла-генератора 163 Сигнальные управляющие функции Сигнальные управляющие функции Могут использоваться в любом узле (кроме узла-генератора AG), где необходима специальная логика или должны использоваться функциональные уточнения особенностей узла. Описание функций INTERRUPT () – выполнить прерывание модели. После выполнения этой функции в каком-либо узле работа модели прекращается, а экспериментатор может исследовать полученные результаты.

>164 Сигнальные управляющие функции CHEG (p2,p3,p4,p5,p6,p7,p8) – перенастроить генератор транзактов AG(p1,p2,p3,p4,p5,p6,p7,p8) на новые значения 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 клапан принимает состояние «закрыт», если до этого он был в открытом состоянии.

>165 Сигнальные управляющие функции ACTIV (i) – перевести процесс (узел типа PROC) в активное 165 Сигнальные управляющие функции ACTIV (i) – перевести процесс (узел типа PROC) в активное состояние, если он был пассивен. При этом возобновляется обслуживание транзакта (т.е. отсчет активного времени) и выполнение модели процесса (программы с именем p2). Функция ACTIV может выполняться из любого узла, номер которого не равен i. PASSIV (i) – перевести процесс (узел типа PROC) в пассивное состояние, если он был активен. При этом транзакт переводится в стек прерванных транзактов. Прекращается выполнение модели процесса (программы с именем p2). Функция PASSIV может выполняться из любого узла, номер которого не равен i.

>166 Сигнальные управляющие функции SUPPLY (p1,p2,p3) - изменить объем ресурса, имеющегося на складе ATTACH, 166 Сигнальные управляющие функции SUPPLY (p1,p2,p3) - изменить объем ресурса, имеющегося на складе ATTACH, где p1 – номер узла ATTACH; p2 – признак: add, если требуется добавить ресурс на склад в объеме p3 единиц; none, если требуется заменить складской запас на объем p3 единиц; p3 – количество единиц ресурса. DETACH (p1,p2) - вернуть ресурс обратно на склад, где p1 – номер узла-склада ATTACH; p2 – число возвращаемых единиц ресурса.

>167 Сигнальные управляющие функции ASSIGN (p1,p2,p3) – ассигновать на счет SEND денежные средства, где 167 Сигнальные управляющие функции ASSIGN (p1,p2,p3) – ассигновать на счет SEND денежные средства, где p1 – номер узла-счета SEND; p2 – признак: add, если требуется добавить средства на счет в размере p3 ; none, если требуется установить сальдо счета в размере p3 единиц; p3 – размер денежной суммы. CHANGE (p1,p2) – заменить узел обслуживания очереди. Если состав или количество транзактов в узле-очереди (узлы типа QUEUE, SEND, ATTACH) с номером p1 перестают удовлетворять каким-то требованиям, то с помощью данной функции можно перенаправить все транзакты из узла p1 в узел p2, разгрузив тем самым очередь в узле p1.

>168 Сигнальные управляющие функции FREED (i) – изгнать уничтожающий транзакт из узла DELET. При 168 Сигнальные управляющие функции FREED (i) – изгнать уничтожающий транзакт из узла DELET. При непоступлении в узел DELET заданного количества уничтожаемых транзактов (параметр p5), в данном узле все время находится поглощающий транзакт, блокируя тем самым узел DELET для поступления других поглощающих транзактов. При прохождении транзакта через функцию FREED (i) в каком-либо другом узле, с ее помощью генерируется вспомогательный транзакт, который направляется в узел DELET с номером i, выталкивает из этого узла застрявший поглощающий транзакт, приводит DELET в нормальное состояние и сам погибает. Застрявший транзакт направляется в узел p6 в соответствии с заданными параметрами узла DELET.

>169 Сигнальные управляющие функции SEWT (x) – поместить текущий транзакт в точку пространства с 169 Сигнальные управляющие функции SEWT (x) – поместить текущий транзакт в точку пространства с номером x. Функция приписывает транзакту координаты этой точки путем занесения значения x в параметр транзакта t→tx. SEWK (x,i) – поместить узел с номером i в точку пространства с номером x. Функция приписывает узлу координаты этой точки путем занесения значения x в параметр узла k→kx.

>170 Сигнальные управляющие функции GEOWAY (latA, lonA, latB, lonB) – определить расстояние между точками 170 Сигнальные управляющие функции GEOWAY (latA, lonA, latB, lonB) – определить расстояние между точками A и B по их географическим координатам, измеряемым в радианах, причем latA, lonA – широта и долгота точки A, latB, lon B – широта и долгота точки B. Для определения расстояния функция использует основные формулы сферической тригонометрии. Радиусы Земли для разных широт вычисляются по эллипсоиду Красовского. DEKART (xA, yA, xB, yB) – определить расстояние между точками A и B на декартовой плоскости в прямоугольной системе координат. Расстояние вычисляется по формуле: .

>171 Сигнальные управляющие функции CLCODE – включить блок операторов языка C++. Позволяет разработчику помещать 171 Сигнальные управляющие функции CLCODE – включить блок операторов языка C++. Позволяет разработчику помещать в модель свои программные блоки. При этом нельзя использовать операцию goto не только внутри одного узла, но и для перехода в другой узел. Для принудительного завершения моделирования вместо goto можно использовать только функцию interrupt. После узлового оператора можно записать блок любых операторов языка C++ в формате: clcode { Группа операторов языка C++ }

>172 Параметры транзактов Параметры транзактов Для повышения эффективности создаваемых моделей разработчику доступны следующие параметры 172 Параметры транзактов Параметры транзактов Для повышения эффективности создаваемых моделей разработчику доступны следующие параметры транзактов: t→iu0, t→iu1, t→iu2, t→iu3 – произвольные целочисленные параметры, которые могут использоваться для различных целей, например, для помечивания транзакта; t→ru0, t→ru1, t→ru2, t→ru3 – произвольные параметры, имеющие вид переменной с плавающей точкой;

>173 Параметры транзактов t→ga – признак обслуживания транзакта вновь, который устанавливается операцией присваивания ему 173 Параметры транзактов t→ga – признак обслуживания транзакта вновь, который устанавливается операцией присваивания ему глобальной константы again. Если перед узлом SERV транзакт пройдет через оператор присваивания t→ga= again, то он при прохождении через SERV получает признак обслуживания заново. После выхода из SERV этот признак теряется; t→pr – приоритет транзакта; t→ft – номер семейства, к которому принадлежит транзакт; t→tx – индекс точки пространства. Позволяет определить координаты lat и lon в массиве space.

>174 Параметры состояния узлов Параметры состояния узлов Некоторые параметры узлов доступны разработчику для анализа 174 Параметры состояния узлов Параметры состояния узлов Некоторые параметры узлов доступны разработчику для анализа (но не для их изменения). Параметры содержатся в системном массиве addr. Пусть n – номер узла в модели, тогда: addr[n]→nc – число каналов в узле; addr[n]→na – число транзактов, прошедших через узел на данный момент модельного времени; addr[n]→tn – число транзактов, находящихся в узле в данный момент; addr[n]→ts – среднее время обслуживания, подсчитанное на данный момент;

>175 Параметры состояния узлов addr[n]→op – признак состояния узла типа KEY. Целочисленная переменная, принимающая 175 Параметры состояния узлов addr[n]→op – признак состояния узла типа KEY. Целочисленная переменная, принимающая значение true, если клапан открыт, или false, если он закрыт. addr[n]→se – признак состояния узла типа DELET. Целочисленная переменная, принимающая значение nil, если в узле нет уничтожающего транзакта. addr[n]→kx – индекс точки, в которой находится узел типа CREAT, DELET или PROC. Позволяет определить координаты lat и lon. Параметры узлов можно наблюдать в процессе выполнения имитационной модели.

>176 Датчики случайных величин Датчики случайных величин Часто в процессе моделирования возникает необходимость получить 176 Датчики случайных величин Датчики случайных величин Часто в процессе моделирования возникает необходимость получить случайную величину в формате float, распределенную по какому-либо закону. В системе PILGRIM есть стандартные 32-разрядные датчики псевдослучайных величин. В каждом узле есть свой датчик, независимый от датчиков других узлов. Связь с этими датчиками осуществляется с помощью следующих функций: normal(m,s) - нормальный закон распределения; expont(m) - экспоненциальный закон; unifrm(m,r) - равномерный закон на отрезке [m-r,m+r]; rundum() - равномерный закон на отрезке [0,1];

>177 Датчики случайных величин erlang(e,z) - обобщенный закон Эрланга; triplex(a,b,c) – треугольный закон распределения, 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).

>178 Раздел II. «Инструментальные средства имитационного моделирования» (продолжение) Тема «Создание моделей с помощью графического 178 Раздел II. «Инструментальные средства имитационного моделирования» (продолжение) Тема «Создание моделей с помощью графического конструктора GEM» Лекция №13

>179 Создание моделей с помощью графического конструктора GEM Конструктор моделей GEM («Generator Models») позволяет: 179 Создание моделей с помощью графического конструктора GEM Конструктор моделей GEM («Generator Models») позволяет: автоматизировать процесс создания графа модели; автоматически генерировать программный код на языке C++ предупреждает разработчика о возможных ошибках и не позволяет выполнять заведомо неверные действия. Тем самым снимается ряд проблем, возникающих при ручном кодировании модели в виде программного файла.

>180 Создание моделей с помощью графического конструктора GEM Основное окно конструктора GEM с пустой 180 Создание моделей с помощью графического конструктора GEM Основное окно конструктора GEM с пустой областью построения графа (при запуске файла gem.exe)

>181 Создание моделей с помощью графического конструктора GEM Рабочая область пуста, для редактирования необходимо 181 Создание моделей с помощью графического конструктора GEM Рабочая область пуста, для редактирования необходимо создать либо новую модель, либо загрузить ранее сохраненную. Всю информацию о модели конструктор сохраняет в файле с расширением «pgf» (Pilgrim graf file). При создании законченной версии модели, разработчик может сгенерировать соответствующий модели программный файл с расширением «cpp», который подлежит дальнейшей компиляции в среде Visual C++ с подключением необходимых библиотек и ресурсов Pilgrim.

>182 Создание моделей с помощью графического конструктора GEM Редактирование графа модели Выделим типовые действия 182 Создание моделей с помощью графического конструктора GEM Редактирование графа модели Выделим типовые действия редактирования графа модели:  добавление новых узлов;  перемещение узлов в области построения;  удаление существующих узлов;  определение маршрутов переходов транзактов, или ссылок. В конструкторе все перечисленные действия выполняются «перетягиванием» объекта, обозначающего тип требуемого узла или действия, из панели инструментов в область построения графа. Панель инструментов в левой части окна редактора содержит значки, обозначающие узлы системы.

>183 Создание моделей с помощью графического конструктора GEM Редактирование графа модели Для удаления узла 183 Создание моделей с помощью графического конструктора GEM Редактирование графа модели Для удаления узла в панели инструментов необходимо захватить значок удаления узла и пере-тащить его на узел, который требуется удалить. Узел будет удален вместе со всеми входящими и исходящими ссылками. Для создания ссылок или путей переходов транзактов необходимо в панели инструментов захватить значок  и переместить на узел-источник транзакта. При отпускании кнопки мыши за курсором потянется стрелка, обозначающая ссылку с невыбранным узлом-приемником транзакта. Для выбора узла-приемника необходимо щелкнуть по нему мышью, в результате чего создастся новая ссылка. 

>184 Создание моделей с помощью графического конструктора GEM Созданные ссылки отображаются на экране в 184 Создание моделей с помощью графического конструктора GEM Созданные ссылки отображаются на экране в виде дуг, имеющих три звена, служащих для удобства отображения графа на плоскости. Две промежуточные точки между звеньями выделены небольшими кругами, захватывая и перемещая которые можно придать стрелке нужную форму. Следует помнить, что некоторые типы узлов не могут иметь входящие или, напротив, исходящие ссылки. Конструктором GEM постоянно выполняется проверка корректности действий пользователя, запрещающая заведомо недопустимые преобразования графа модели, в частности создание неправильных ссылок.

>185 Создание моделей с помощью графического конструктора GEM Определение параметров узла Каждый узел модели 185 Создание моделей с помощью графического конструктора GEM Определение параметров узла Каждый узел модели характеризуется множеством параметров: типом, порядковым номером, именем, принадлежностью к плоскости, ссылками, условиями переходов, встроенным программным текстом, параметрами, определяемыми спецификой типа узла, такими, как закон распределения для узла типа SERV, приоритет для QUEUE и т.п.

>186 Создание моделей с помощью графического конструктора GEM Для просмотра или редактирования параметров узла 186 Создание моделей с помощью графического конструктора GEM Для просмотра или редактирования параметров узла необходимо дважды щелкнуть по нему левой кнопкой мыши либо один раз щелкнуть по узлу правой кнопкой, в результате чего отобразится всплывающее меню, и выбрать в нем пункт «параметры узла». Появится диалоговое окно, определяющее параметры. Номер узла присваивается конструктором при его создании. Обычно первые 100 номеров зарезервированы для узлов SEND - бухгалтерских счетов. Нумерация создаваемых узлов осуществляется последовательно, с номера 101. Смена номера узла возможна с помощью соседнего с номером диалогового поля, но не рекомендуется для узлов, созданных ранее.

>187 Создание моделей с помощью графического конструктора GEM Окно определения параметров узла 187 Создание моделей с помощью графического конструктора GEM Окно определения параметров узла

>188 Создание моделей с помощью графического конструктора GEM Поле «Имя» содержит имя узла, отображаемое 188 Создание моделей с помощью графического конструктора GEM Поле «Имя» содержит имя узла, отображаемое на схеме и при выполнении модели. Поле доступно для редактирования. Не рекомендуется использовать имена, не умещающиеся в поле редактирования. Поле «Класс узла» может быть выбран из списка. В списке приводятся только те типы узлов, которые имеют одинаковое обозначение. На­пример, узел типа SEND можно сменить на ATTACH (при этом изменяется набор и смысл параметров узла). Поле «Плоскость» показывает, к какой плоскости принадлежит узел, и доступно только для просмотра.

>189 Создание моделей с помощью графического конструктора GEM Панель «Общий С++ текст» позволяет пользователю 189 Создание моделей с помощью графического конструктора GEM Панель «Общий С++ текст» позволяет пользователю включить в процедуру обработки узла произвольный текст на языке С++. Текст делится на две части: одна выполняется до вызова функции узла, другая - после нее. Смысл такого разбиения заключается в том, что программный текст, выполняющийся до вызова функции узла, может подготавливать какие-либо переменные, которые функцией будут использованы. Так, например, может быть подсчитано время обслуживания транзакта перед выполнением функции узла типа SERV. Программный текст, следующий после вызова функции узла, на ее выполнение уже никак не влияет и может использоваться для обработки параметров выполненной функции или подготовки параметров для других функций модели.

>190 Создание моделей с помощью графического конструктора GEM Узел может содержать несколько исходящих ссылок, 190 Создание моделей с помощью графического конструктора GEM Узел может содержать несколько исходящих ссылок, по которым способен переместиться транзакт. Выбор маршрута должен осуществляться по условиям. Поэтому в правой нижней части окна определения параметров транзакта имеется поле «Условие перехода», определяющее эти условия, а также выполнение соответствующих им индивидуальных фрагментов программного кода. Выбор исходящей ссылки осуществляется щелчком мыши в диалоговом поле «Выходы». Любой вход и выход можно удалить, нажав кнопку внизу списка.

>191 Создание моделей с помощью графического конструктора GEM Необходимым компонентом является кнопка «Определить параметры», 191 Создание моделей с помощью графического конструктора GEM Необходимым компонентом является кнопка «Определить параметры», нажатие на которую вызывает окно определения параметров самой функции обработки узла.

>192 Создание моделей с помощью графического конструктора GEM Определение параметров инициализации и завершения модели 192 Создание моделей с помощью графического конструктора GEM Определение параметров инициализации и завершения модели Модель имеет параметры инициализации и завершения, задаваемые функциями MODBEG и MODEND. Определение этих параметров производится через диалоговые окна, вызываемые нажатием кнопок «Modbeg» и «Modend» в основном окне редактора, либо выбором подпунктов основного меню в разделе «Модель».

>193 Создание моделей с помощью графического конструктора GEM 193 Создание моделей с помощью графического конструктора GEM

>194 Создание моделей с помощью графического конструктора GEM В правой верхней части окна записывается 194 Создание моделей с помощью графического конструктора GEM В правой верхней части окна записывается начальный текст на С++, если он необходим. Программный текст делится на две части: начальный С++ текст используется для подключения внешних библиотек и настройки глобальных параметров; текст инициализации ресурсов подготавливает параметры конкретных узлов типов ATTACH и SEND. Другие поля окна позволяют редактировать переменные, стандартные для функции MODBEG.

>195 Создание моделей с помощью графического конструктора GEM Редактирование переменных функции MODEND осуществляется через 195 Создание моделей с помощью графического конструктора GEM Редактирование переменных функции MODEND осуществляется через диалоговое окно:

>196 Создание моделей с помощью графического конструктора GEM Работа в плоскостях модели При работе 196 Создание моделей с помощью графического конструктора GEM Работа в плоскостях модели При работе с большой моделью удобно пользоваться набором плоскостей построения. Для этого конструктор предлагает набор плоскостей с номерами 1 - 9, фрагменты графов которых не пересекаются на уровне маршрутов транзактов. В каждой из плоскостей могут находиться узлы типа PARENT, РАY, RENT, или DOWN, в свою очередь порождающие новые плоскости. Порождаемые плоскости имеют номера, начинающиеся с 10.

>197 Создание моделей с помощью графического конструктора GEM Возможны следующие операции перехода с уровня 197 Создание моделей с помощью графического конструктора GEM Возможны следующие операции перехода с уровня на уровень: переход на детализирующую плоскость, подъем на плоскость узла-родителя переключение между корневыми плоскостями. Для каждой открытой плоскости конструктор предоставляет собственное окно построения. Переключение между корневыми плоскостями осуществляется через верхнюю панель управления. В правой части панели расположено специальное выпадающее меню, позволяющее выбирать номер корневой плоскости. При этом в информационной строке появится надпись «Корень» и номер плоскости.

>198 Создание моделей с помощью графического конструктора GEM Для перехода на плоскость, детализирующую узел, 198 Создание моделей с помощью графического конструктора GEM Для перехода на плоскость, детализирующую узел, необходимо дважды щелкнуть мышью по узлу-родителю. При этом в рабочей области экрана будет активизирована детализирующая плоскость, в информационной строке на панели «имя плоскости» появятся имя узла-родителя, а также номер текущей плоскости. Для плоскости необходимо задать вход и выход, как номера узлов, в которые попадает транзакт при переходе на плоскость из порождающего узла и из которого происходит возврат на верхнюю плоскость.

>199 Создание моделей с помощью графического конструктора GEM Чтобы назначить вход и выход, необходимо 199 Создание моделей с помощью графического конструктора GEM Чтобы назначить вход и выход, необходимо на левой панели нажать кнопку «Слой». При этом будет выведено диалоговое окно:

>200 Создание моделей с помощью графического конструктора GEM Для удобства навигации в многослойной модели 200 Создание моделей с помощью графического конструктора GEM Для удобства навигации в многослойной модели предусмотрено диалоговое окно, отображающее иерархическую зависимость между плоскостями: или узлами модели:

>201 Создание моделей с помощью графического конструктора GEM Определение переменных модели Блоком диалога позволяет 201 Создание моделей с помощью графического конструктора GEM Определение переменных модели Блоком диалога позволяет задавать имя, тип и начальное значение переменных. При вводе новой переменной обязательными параметрами являются имя и тип, значение пользователь может указывать по своему усмотрению.

>202 Создание моделей с помощью графического конструктора GEM Дополнительные функции Изменение настроек экрана Изменение 202 Создание моделей с помощью графического конструктора GEM Дополнительные функции Изменение настроек экрана Изменение настроек экрана выполняется через диалоговое окно (основное меню, пункт «Настройки»):

>203 Создание моделей с помощью графического конструктора GEM Пользователь-разработчик модели может по своему усмотрению 203 Создание моделей с помощью графического конструктора GEM Пользователь-разработчик модели может по своему усмотрению изменять масштаб, цвет фигур и фона, показать или скрыть панель инструментов и установить признак прямых стрелок. Если признак прямых стрелок выключен, то при перемещении узла внутри плоскости промежуточные звеньевые точки стрелок, привязанных к нему, будут оставаться на месте, а при включенном признаке стрелки будут постоянно иметь прямой вид.

>204 Создание моделей с помощью графического конструктора GEM Проверка корректности модели Конструктор проводит проверку 204 Создание моделей с помощью графического конструктора GEM Проверка корректности модели Конструктор проводит проверку двумя независимыми способами: не позволяет осуществлять заведомо ложные действия при ре­дактировании пользователем модели; имеет возможность проверки графа в целом. Результат проверки графа выдается в окне, как список ошибок возможных и ошибок явных, не позволяющих генерировать программный Рilgrim-файл. К явным ошибкам относятся отсутствие выходов или входов узла и неопределенные вход/выход плоскости.

>205 Создание моделей с помощью графического конструктора GEM Процедура проверки корректности графа вызывается автоматически 205 Создание моделей с помощью графического конструктора GEM Процедура проверки корректности графа вызывается автоматически при запросе пользователя сгенерировать программный Рilgrim-файл, а также в любой момент времени из пункта «Выполнить» основного меню.

>206 Создание моделей с помощью графического конструктора GEM План бухгалтерских счетов При моделировании бухгалтерских 206 Создание моделей с помощью графического конструктора GEM План бухгалтерских счетов При моделировании бухгалтерских проводок необходимо знать номер счета-приемника. Поскольку номер любого счета - это номер узла, его моделирующего, то для того, чтобы проще ориентироваться в их нумерации, существует информационное окно, отображающее номера и названия счетов. Это окно может быть вызвано выбором подпункта «План счетов» пункта «Модель» основного меню программы.

>207 Создание моделей с помощью графического конструктора GEM Поиск узла Функция вызывается через меню 207 Создание моделей с помощью графического конструктора GEM Поиск узла Функция вызывается через меню «Узел» либо через «горячую кнопку» на верхней панели. Поиск может осуществляться по номеру или по параметрам узла, таким, как имя или тип. Результаты поиска выводятся в виде списка, откуда можно перейти на любой узел, редактировать его параметры или скопировать узел в буфер.

>208 Создание моделей с помощью графического конструктора GEM Окно поиска узла 208 Создание моделей с помощью графического конструктора GEM Окно поиска узла

>209 Создание моделей с помощью графического конструктора GEM Копирование/вставка узла Для упрощения создания набора 209 Создание моделей с помощью графического конструктора GEM Копирование/вставка узла Для упрощения создания набора узлов с рядом совпадающих параметров в конструкторе предусмотрена функция копирования/вставки узла. Чтобы скопировать узел в буфер, необходимо выделить его щелчком мыши и выбрать пункт «Копировать» из меню «Узел». Вставка в текущую плоскость осуществляется выбором пункта «Вставить» меню «Узел». При этом будет создан узел того же типа, что и прототип, с аналогичными параметрами.

>210 Создание моделей с помощью графического конструктора GEM Очистить плоскость Функция удаляет все узлы 210 Создание моделей с помощью графического конструктора GEM Очистить плоскость Функция удаляет все узлы текущей плоскости. Вызывается через меню «плоскость». Операция недопустима и выдаст сообщение об ошибке в случае, если хотя бы один из узлов плоскости содержит декомпозицию.

>211 Раздел II. «Инструментальные средства имитационного моделирования» (продолжение) Тема «Обработка имитационной модели в системе 211 Раздел II. «Инструментальные средства имитационного моделирования» (продолжение) Тема «Обработка имитационной модели в системе Pilgrim » Лекция №14

>212 Обработка имитационной модели в системе Pilgrim Формирование программного файла модели Рассмотрим процесс запуска 212 Обработка имитационной модели в системе Pilgrim Формирование программного файла модели Рассмотрим процесс запуска модели на примере построенной модели PRODUCT: 1. Запустить приложение Microsoft Visual C++. 2. В меню файл выбрать New, далее вкладку Projects и Win32 Application. В строке Project name указать название проекта (например, «Production»), а в строке Location указать путь к проекту, например, C:Pilgrim-5-60Pilgrim5Samples. Нажать OK.

>213 Обработка имитационной модели в системе Pilgrim После появления окна с запросом «Какой вид 213 Обработка имитационной модели в системе Pilgrim После появления окна с запросом «Какой вид приложения вы хотите создать?» выбрать An empty project. Нажать Finish и еще раз OK. Таким образом, создана рабочая область Production.dsw для проекта. 3. Скопировать из папки C:Pilgrim-5-60Pilgrim5Projects в папку C:Pilgrim-5-60Pilgrim5SamplesProduction следующие четыре файла: Palette.bmp, Pilgrim.ico, UserHid.h, UserRes.rc. 4. В меню выбрать Project -> Add To Project ->Files и добавить в проект эти четыре файла и файл Product.cpp, сгенерированный конструктором GEM. Таким же образом добавить файлы Comctl32.lib, Pilgrim.lib из папки C:Visual StudioVC98Lib.

>214 Обработка имитационной модели в системе Pilgrim 5. Выбрать в меню Build ->Build Production.exe. 214 Обработка имитационной модели в системе Pilgrim 5. Выбрать в меню Build ->Build Production.exe. После этого, в случае отсутствия ошибок, в папке C:Pilgrim-5-60Pilgrim5Samples Production Debug cформируется файл Production.exe. 6. Запустить полученную модель Production.exe. После запуска имитационной модели в папке C:Pilgrim-5-60Pilgrim5Samples Production Debug сформируется текстовый файл результатов с именем, указанным в тексте модели. В нашем примере это файл «Pilgrim.rep». Для просмотра файла результатов можно использовать любой текстовый редактор.

>215 Обработка имитационной модели в системе Pilgrim Трактовка результатов моделирования Файл результатов представляет собой 215 Обработка имитационной модели в системе Pilgrim Трактовка результатов моделирования Файл результатов представляет собой таблицу, содержащую в зависимости от параметров модели до 12 столбцов: 1) № узла. Указаны номера узлов модели; 2) Наименование узла. Смысловое название узла в модели, присвоенное разработчиком; 3) Тип узла. Указан тип узла: AG, SERV, KEY, QUEUE, TERM, CREAT, DELET, PROC, DYNAM, SEND, DIRECT, ATTACH, MANAGE, PAY, RENT, DOWN или PARENT;

>216 Обработка имитационной модели в системе Pilgrim 4) Точка. Номер последней точки пространства, в 216 Обработка имитационной модели в системе Pilgrim 4) Точка. Номер последней точки пространства, в которой находится узел типа CREAT, DELET или PROC в момент окончания моделирования; 5) Загрузка (%=). Коэффициент использования транзактами узлов типа SERV или PROC в процентах. Для узла типа KEY – доля времени пребывания в закрытом состоянии; 6) Путь (км). Если производятся пространственные перемещения узлов типа PROC, CREAT или DELET, то подсчитывается пройденный путь. Для пространства типа GEO путь считается в километрах;

>217 Обработка имитационной модели в системе Pilgrim 7) M [t] среднее время. Среднее значение 217 Обработка имитационной модели в системе Pilgrim 7) M [t] среднее время. Среднее значение времени задержки транзакта в узле или иной интервал времени, зависящий от типа узла: для SERV - это среднее время пребывания в узле (оно может быть больше времени обслуживания у непри­оритетных транзактов при рз=аbs, т.е. при наличии приоритетных транзактов и правила абсолютных при­оритетов); для QUEUE - среднее время задержки в очереди; для AG - среднее время между двумя сгенерированными транзактами;

>218 Обработка имитационной модели в системе Pilgrim для TERM или DELET - среднее время 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.

>219 Обработка имитационной модели в системе Pilgrim 8) C2 [t] квадрат коэффициента вариации – 219 Обработка имитационной модели в системе Pilgrim 8) C2 [t] квадрат коэффициента вариации – отношение дисперсии временного интервала к квад­рату его среднего значения; 9) Счетчик входов и hold. Число транзактов: прошедших через узел; сгенерированных транзактов (для AG или CREAT); уничтоженных (для TERM или DELET); выполнивших операцию HOLD из другого узла в отношении узла KEY;

>220 Обработка имитационной модели в системе Pilgrim 10) Количество каналов. Число каналов в узле; 220 Обработка имитационной модели в системе Pilgrim 10) Количество каналов. Число каналов в узле; 11) Осталось транзактов. Количество транзактов, которые остались в узле на момент завершения моделирования; 12) Состояние узла в этот момент. Состояние узла в момент окончания прогона модели: узел может быть открыт (свободен), закрыт для входа очередного транзакта, активен или пассивен (узел PROC); В узле типа SEND может быть положительное сальдо на момент завершения модели (денежная сумма с буквой S) и отрицательное сальдо (сумма с буквой D).

>221 Обработка имитационной модели в системе Pilgrim В узле типа ATTACH может быть остаток 221 Обработка имитационной модели в системе Pilgrim В узле типа ATTACH может быть остаток ресурса на момент завершения модели (денежная сумма с буквой S) и дефицит (сумма с буквой D). В узлах типа PAY и RENT указывается количество переходов транзактов на нижние уровни - слои модели (на момент завершения модели).

>222 Обработка имитационной модели в системе Pilgrim Трассировка модели Существуют следующие режимы трассировки, позволяющие 222 Обработка имитационной модели в системе Pilgrim Трассировка модели Существуют следующие режимы трассировки, позволяющие ускорить процесс отладки: выйти в режим трассировки после конкретного события; перейти в трассировку, если какой-то транзакт входит в определенный узел или выходит из него; отслеживать путь конкретного транзакта по сложному графу модели; выйти в режим трассировки по показанию модельного таймера. Управление трассировкой осуществляется из общего меню модельного окна.

>223 Раздел III. «Имитационное моделирование экономических процессов» Тема «Моделирование обслуживания с разными приоритетами» Лекция 223 Раздел III. «Имитационное моделирование экономических процессов» Тема «Моделирование обслуживания с разными приоритетами» Лекция №15

>224 Открытая модель обслуживания с разными приоритетами Описание моделируемого процесса В бухгалтерии некоторой фирмы 224 Открытая модель обслуживания с разными приоритетами Описание моделируемого процесса В бухгалтерии некоторой фирмы работает один бухгалтер. Он имеет персональный компьютер, на котором установлен АРМ бухгалтера. Курьер приносит в бухгалтерию документы, которые бухгалтер обрабатывает на компьютере. Документы обрабатываются в порядке поступления в бухгалтерию. Обработанные документы подшиваются в специальную папку. В работе компьютера периодически возникают неполадки (неисправность в аппаратной части, сбой в программе, нарушение питания и т.п.).

>225 Открытая модель обслуживания с разными приоритетами В этом случае обработка документов прекращается, и 225 Открытая модель обслуживания с разными приоритетами В этом случае обработка документов прекращается, и вызывают специалиста, который устраняет неисправность, после чего бухгалтер продолжает свою работу. Считается, что устранение неполадки начинается мгновенно после ее возникновения. После устранения неполадка учитывается в специальном журнале. Курьер продолжает приносить документы и во время ремонта компьютера. Требуется построить модель, имитирующую обработку потоков документов и неполадок в работе компьютера.

>226 Открытая модель обслуживания с разными приоритетами Параметры модели 226 Открытая модель обслуживания с разными приоритетами Параметры модели

>227 Открытая модель обслуживания с разными приоритетами Схема модели AG AG Q S AG 227 Открытая модель обслуживания с разными приоритетами Схема модели AG AG Q S AG AG Документы Неисправности Компьютер Журнал учета неисправностей

>228 Открытая модель обслуживания с разными приоритетами Текст модели include <pilgrim.h> int Forw; /* 228 Открытая модель обслуживания с разными приоритетами Текст модели include 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);

>229 Открытая модель обслуживания с разными приоритетами network(dummy, dummy) { top(1): queue( 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; }

>230 Открытая модель обслуживания с разными приоритетами Serv ( 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;

>231 Открытая модель обслуживания с разными приоритетами Результаты моделирования 231 Открытая модель обслуживания с разными приоритетами Результаты моделирования

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

>233 Замкнутая модель обслуживания с клапаном Параметры модели 233 Замкнутая модель обслуживания с клапаном Параметры модели

>234 Замкнутая модель обслуживания с клапаном Схема модели AG AG CR T S Q 234 Замкнутая модель обслуживания с клапаном Схема модели AG AG CR T S Q K Q S 1 2 3 4 5 6 7 8 9 Заселение поселка Схема зарядки Поселок Продавец Очередь перед магазином Входная дверь Очередь перед продавцом hold rels

>235 Замкнутая модель обслуживания с клапаном Текст модели #include <pilgrim.h> int Q_max=20; /* Максимальное 235 Замкнутая модель обслуживания с клапаном Текст модели #include 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; /* Время работы продавца */

>236 Замкнутая модель обслуживания с клапаном forward /* Время измеряется в минутах */ { 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; }

>237 Замкнутая модель обслуживания с клапаном else /* генерация пенсионеров */ { t->iu0=N2; t->ru0=T2; 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;

ru0, t->ru0/3, zero," src="https://present5.com/customparser/17573578_165268131 --- modelirovanie_presentation.ppt/slide_238.jpg" alt=">238 Замкнутая модель обслуживания с клапаном top(5): serv("Поселок", N1+N2, none, norm, t->ru0, t->ru0/3, zero," /> 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;

>239 Замкнутая модель обслуживания с клапаном top(9): serv( 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;

>240 Раздел III. «Имитационное моделирование экономических процессов» (продолжение) Тема «Моделирование условного прерывания обслуживания» Лекция 240 Раздел III. «Имитационное моделирование экономических процессов» (продолжение) Тема «Моделирование условного прерывания обслуживания» Лекция №16

>241 Моделирование условного прерывания обслуживания Пример использования узла delet: принцип «тележки» Имеется остановка маршрутного 241 Моделирование условного прерывания обслуживания Пример использования узла delet: принцип «тележки» Имеется остановка маршрутного такси. С определенными интервалами времени на остановку приходят пассажиры и подъезжают такси. Такси уезжает, когда в него сядет 10 пассажиров. Если пришедший пассажир не обнаруживает стоящего такси, он встает в очередь на посадку. Если такси подъехало на пустую остановку, оно ждет пассажиров. Если такси подъехало, а на остановке уже стоит такси, оно встает в очередь такси. Требуется построить модель, имитирующую пассажирский и транспортный потоки.

>242 Моделирование условного прерывания обслуживания Параметры модели 242 Моделирование условного прерывания обслуживания Параметры модели

>243 Моделирование условного прерывания обслуживания Схема модели AG AG T Q K Q 6 243 Моделирование условного прерывания обслуживания Схема модели AG AG T Q K Q 6 7 3 1 8 3 5 2 4 Такси Пассажиры Такси уехало K DEL hold rels hold rels

>244 Моделирование условного прерывания обслуживания Текст модели #include <pilgrim.h> float Pas=1.0; /* интервал прихода 244 Моделирование условного прерывания обслуживания Текст модели #include 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);

>245 Моделирование условного прерывания обслуживания clcode if (addr[2]->na == 1) hold(3); /* начальное размыкание 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;

>246 Моделирование условного прерывания обслуживания top(7): queue( 246 Моделирование условного прерывания обслуживания top(7): queue("Такси", none, 4); place; top(8): key("Остановка свободна?", 4); place; fault(123); } modend("pilgrim.rep", 1, 12, page); return 0;}

>247 Моделирование клапана с таймером Моделирование клапана с таймером На платформу станции метро приходят 247 Моделирование клапана с таймером Моделирование клапана с таймером На платформу станции метро приходят пассажиры. Если поезда нет, они ждут на перроне. Когда поезд приходит, начинается посадка. Когда время посадки заканчивается, поезд уезжает. Рассматривается посадка в поезда только в одном направлении. Поездка пассажира в поезде не включается в моделируемый процесс. Требуется построить модель, имитирующую пассажирский поток и движение поездов.

>248 Моделирование клапана с таймером Параметры модели 248 Моделирование клапана с таймером Параметры модели

>249 Моделирование клапана с таймером Схема модели AG AG T Q 5 6 1 249 Моделирование клапана с таймером Схема модели AG AG T Q 5 6 1 7 3 2 4 Поезда Пассажиры Пассажир сел в поезд K hold rels Перрон Двери поезда S Поезд стоит на перроне T Поезд ушел

>250 Моделирование клапана с таймером Текст модели /* Модель работы станции метрополитена */ /* 250 Моделирование клапана с таймером Текст модели /* Модель работы станции метрополитена */ /* Единица измерения времени - 1 секунда */ /* Время моделирования - 8 часов */ #include #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);

na= =1) hold(3);" src="https://present5.com/customparser/17573578_165268131 --- modelirovanie_presentation.ppt/slide_251.jpg" alt=">251 Моделирование клапана с таймером network(dummy,dummy) { top(2): queue("Перрон",none,3); clcode if (addr[2]->na= =1) hold(3);" /> 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;

>252 Моделирование клапана с таймером top(7): term( 252 Моделирование клапана с таймером top(7): term("Поезд ушел"); hold(3); place; fault(123); } modend ("Metro.rep",1,12,page); return 0; }

>253 Управление маршрутом транзакта Пример управления маршрутом транзакта Имеется автобусный парк, который обслуживает два 253 Управление маршрутом транзакта Пример управления маршрутом транзакта Имеется автобусный парк, который обслуживает два маршрута. На каждом маршруте одновременно должно находиться определенное число автобусов. Вначале диспетчер отправляет на оба маршрута необходимое число автобусов. После рейса автобус возвращается в парк. Когда на каком-либо маршруте автобусов становится меньше, чем нужно, диспетчер отправляет туда автобусы, оставшиеся в парке. Чтобы возвращающиеся из рейса автобусы имели передышку, в парке есть некоторое резервное количество автобусов. Требуется построить модель, имитирующую движение автобусов по маршруту и в парке.

>254 Управление маршрутом транзакта Параметры модели 254 Управление маршрутом транзакта Параметры модели

>255 Управление маршрутом транзакта Схема модели Схема зарядки модели 3 2 S Парк Диспетчер 255 Управление маршрутом транзакта Схема модели Схема зарядки модели 3 2 S Парк Диспетчер Q S S 4 Маршрут 1 Маршрут 2

>256 Управление маршрутом транзакта Текст модели #include <pilgrim.h> float T1; /* Время рейса по 256 Управление маршрутом транзакта Текст модели #include float T1; /* Время рейса по маршруту 1 */ float T2; /* Время рейса по маршруту 2 */ float T3; /* Время обслуживания автобуса диспетчером */ int N1; /* Требуемое число автобусов на маршруте 1 */ int N2; /* Требуемое число автобусов нв маршруте 2 */ int N; /* Общее число автобусов в парке */ int Q; /* Число диспетчеров */ int Forw; /*Стандартное начало модели и схема зарядки */ ...

tn" src="https://present5.com/customparser/17573578_165268131 --- modelirovanie_presentation.ppt/slide_257.jpg" alt=">257 Управление маршрутом транзакта Текст модели top(1): queue("Парк", prty, 2); place; top(2): if addr[3]->tn" /> 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;

>258 Управление маршрутом транзакта top(3): t->pr=0; /* сброс приоритета */ serv ( 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; /* Стандартный конец модели */ ...

tn" src="https://present5.com/customparser/17573578_165268131 --- modelirovanie_presentation.ppt/slide_259.jpg" alt=">259 Управление маршрутом транзакта Текст модели top(1): queue("Парк", prty, 2); place; top(2): if addr[3]->tn" /> 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;

>260 Раздел III. «Имитационное моделирование экономических процессов» (продолжение) Тема «Моделирование информационных ресурсов» Лекция №17 260 Раздел III. «Имитационное моделирование экономических процессов» (продолжение) Тема «Моделирование информационных ресурсов» Лекция №17

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

>262 Имитация информационных ресурсов Схема получения информационного ресурса для выполнения основной функции S N 262 Имитация информационных ресурсов Схема получения информационного ресурса для выполнения основной функции S N каналов – источников получения информации Q S Выполнение основной функции Q K CR DEL От других клиентов Запрос на выполнение основной функции К другим клиентам rels hold 1 2 3 4 6 5 7

>263 Имитация информационных ресурсов Схема выполнения функции основным транзактом при наличии доступа к информации 263 Имитация информационных ресурсов Схема выполнения функции основным транзактом при наличии доступа к информации S Получение и прекращение доступа к ресурсу Q Основной транзакт Транзакт управления доступом к информации passiv 1 2 3 4 5 Q Q PR Основная функция транзактом выполнена active passiv

>264 Моделирование замкнутых моделей КИС Моделирование замкнутых моделей корпоративных информационных систем (КИС) Замкнутая модель 264 Моделирование замкнутых моделей КИС Моделирование замкнутых моделей корпоративных информационных систем (КИС) Замкнутая модель КИС – это модель системы, работающей в режиме «запрос-ответ». Транзакты, единожды сгенерированные, циркулируют в пределах графа модели. Транзакт – это запрос пользователя. Выйдя из генератора, транзакт проходит по графу модели, по мере работы КИС превращается в ответ и возвращается к пользователю. После этого вновь начинает играть роль запроса того же пользователя.

>265 Моделирование замкнутых моделей КИС Моделирование замкнутых моделей корпоративных информационных систем (КИС) Замкнутая модель 265 Моделирование замкнутых моделей КИС Моделирование замкнутых моделей корпоративных информационных систем (КИС) Замкнутая модель КИС – это модель системы, работающей в режиме «запрос-ответ». Транзакты, единожды сгенерированные, циркулируют в пределах графа модели. Транзакт – это запрос пользователя. Выйдя из генератора, транзакт проходит по графу модели, по мере работы КИС превращается в ответ и возвращается к пользователю. После этого вновь начинает играть роль запроса того же пользователя.

>266 Моделирование замкнутых моделей КИС Модель может быть построена следующим образом: Пользователи представляются одно- 266 Моделирование замкнутых моделей КИС Модель может быть построена следующим образом: Пользователи представляются одно- или многоканальными узлами типа serv; число каналов сервера соответствует числу пользователей, время обработки транзакта сервером соответствует времени подготовки пользователем запроса; Приписываемая транзакту роль запроса или ответа обозначается в одном из его параметров; Для зарядки транзактами серверов пользователей, принадлежащих к одному классу, используется единственный генератор, порождающий всего один транзакт. Далее транзакты размножаются с помощью узлов типа creat.

>267 Моделирование замкнутых моделей КИС Варианты зарядки моделей транзактами: 1. Зарядка одного многоканального сервера 267 Моделирование замкнутых моделей КИС Варианты зарядки моделей транзактами: 1. Зарядка одного многоканального сервера S Группа пользователей AG T CR Граф модели КИС

>268 Моделирование замкнутых моделей КИС 2. Зарядка нескольких одноканальных серверов S Группа пользователей AG 268 Моделирование замкнутых моделей КИС 2. Зарядка нескольких одноканальных серверов S Группа пользователей AG T CR Граф модели КИС Q S S …

>269 Моделирование замкнутых моделей КИС 3. Зарядка нескольких многоканальных серверов S Группа пользователей AG 269 Моделирование замкнутых моделей КИС 3. Зарядка нескольких многоканальных серверов S Группа пользователей AG T CR Граф модели КИС Q S S … CR

>270 Раздел III. «Имитационное моделирование экономических процессов» (продолжение) Тема «Моделирование материальных и финансовых ресурсов» 270 Раздел III. «Имитационное моделирование экономических процессов» (продолжение) Тема «Моделирование материальных и финансовых ресурсов» Лекция №18

>271 Моделирование материальных ресурсов Материальные ресурсы перемещаемые неперемещаемые Перемещаемый ресурс – выделяется клиенту, после 271 Моделирование материальных ресурсов Материальные ресурсы перемещаемые неперемещаемые Перемещаемый ресурс – выделяется клиенту, после чего клиент использует его в других местах и возвращает при отсутствии необходимости дальнейшего использования. Неперемещаемый ресурс – представляет собой «базу», к которой приписаны ресурсные единицы. Их можно использовать только на базе.

>272 Моделирование материальных ресурсов Мощность ресурса – максимальное число ресурсных единиц, которое можно использовать 272 Моделирование материальных ресурсов Мощность ресурса – максимальное число ресурсных единиц, которое можно использовать для различных целей. Остаток ресурса – число незанятых на данный момент единиц, которые можно использовать для различных целей. Дефицит ресурса – количество единиц ресурса в суммарном запросе транзактов, стоящих в очереди к данному ресурсу. ресурсы пополняемые непополняемые

>273 Моделирование материальных ресурсов Пример моделирования непополняемого возвращаемого ресурса Рассматривается пункт проката видеодисков. Ресурсом 273 Моделирование материальных ресурсов Пример моделирования непополняемого возвращаемого ресурса Рассматривается пункт проката видеодисков. Ресурсом являются видеодиски, выдаваемые клиенту. По прошествии определенного времени клиент возвращает взятое в пункт проката.

>274 Моделирование материальных ресурсов Схема модели 3 Клиенты detach Att S 4 AG Man 274 Моделирование материальных ресурсов Схема модели 3 Клиенты detach Att S 4 AG Man T Склад пункта проката Проверка наличия ресурса Пользование прокатом Возврат 1 2 5

>275 Моделирование материальных ресурсов Текст модели #include <pilgrim.h> float T_Kl; /* Интервал прихода клиентов 275 Моделирование материальных ресурсов Текст модели #include 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(...)

>276 Моделирование материальных ресурсов { top(2): attach( 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(...); }

>277 Моделирование материальных ресурсов Пример моделирования пополняемого невозвращаемого ресурса В качестве ресурса рассматривается семейный 277 Моделирование материальных ресурсов Пример моделирования пополняемого невозвращаемого ресурса В качестве ресурса рассматривается семейный бюджет. Пополнение происходит за счет зарплаты. Из бюджета берутся деньги на покупки. Если на покупку не хватает денег, семья копит средства и временно ничего не покупает. Построить модель, имитирующую движение ресурсов.

>278 Моделирование материальных ресурсов Параметры модели 278 Моделирование материальных ресурсов Параметры модели

>279 Моделирование материальных ресурсов Схема модели Решение сделать покупку supply Att AG Man T 279 Моделирование материальных ресурсов Схема модели Решение сделать покупку supply Att AG Man T Кошелек Денег на покупку достаточно? Деньги взяты AG T Выдача зарплаты Зарплата получена

>280 Моделирование денежных ресурсов Моделирование финансовых ресурсов Денежные ресурсы представляют собой «емкость», в которой 280 Моделирование денежных ресурсов Моделирование финансовых ресурсов Денежные ресурсы представляют собой «емкость», в которой содержится определенное количество ресурса. Обычно эту «емкость» отождествляют со счетом бухгалтерского учета. Это счет описывается с помощью узла типа send. В узле send образуется очередь транзактов, в которых содержится запрос на перевод денежных средств с данного счета send на какой-либо другой. Приоритеты платежей устанавливаются в соответствии с приоритетными принципами (например, сначала налоги, потом зарплата, потом все остальные платежи).

>281 Моделирование материальных ресурсов Пример распределения денежных ресурсов Send 62 direct Send 51 Send 281 Моделирование материальных ресурсов Пример распределения денежных ресурсов Send 62 direct Send 51 Send 09 Проводка выполнена