Главная Случайная страница


Категории:

ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника






ОСНОВНЫЕ КОНЦЕПЦИИ СОЗДАНИЯ СИСТЕМ МАССОВОГО ОБСЛУЖИВАНИЯ (СМО)

МЕТОДИЧЕСКОЕ ПОСОБИЕ

для студентов специальности 220400

«Программное обеспечение ВТ и АС»

 

 

 

Издательство ВСГТУ

Улан-Удэ, 2001


УДК: 519.876.5

 

 

Курс лекций по дисциплине «Компьютерное моделирование»/ Сост. Алтаев А.А. – Улан-Удэ, Изд-во ВСГТУ, 2001. – 63 с.

 

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

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

 

 

Рецензент: Дарибазарон С.Б., к.ф.-м.н., доц. ВСГТУ

 

Печатается по решению редакционно-издательского совета ВСГТУ

 

 

Ó ВСГТУ, 2001 г.

Ó Алтаев А.А.

Оглавление

 

ВВЕДЕНИЕ.. 4

1. ОСНОВНЫЕ КОНЦЕПЦИИ СОЗДАНИЯ СИСТЕМ МАССОВОГО ОБСЛУЖИВАНИЯ (СМО) 5

1.1. Система обслуживания с одним прибором и очередью... 6

1.2. Основные понятия СМО.. 6

1.3. Элементы процедуры решения.. 7

1.3.1. События. 7

1.3.2. Таймер модельного времени. 7

1.3.3. Завершение моделирования. 8

1.4. Алгоритмизация модели.. 8

1.5. Моделирование многоканальных устройств.. 9

2. ПРИНЦИП РАБОТЫ СИСТЕМЫ МОДЕЛИРОВАНИЯ ДИСКРЕТНЫХ СИСТЕМ GPSS 9

2.1 ОПИСАНИЕ МОДЕЛЕЙ С ПОМОЩЬЮ ЯЗЫКА GPSS. 16

2.2 ОПИСАНИЕ ОБЪЕКТОВ GPSS. 21

2.3 БЛОКИ, СВЯЗАННЫЕ С ТРАНЗАКТАМИ GPSS. 29

2.4 БЛОКИ, ОПИСЫВАЮЩИЕ РАБОТУ ОБОРУДОВАНИЯ.. 36

2.5 ИЗМЕНЕНИЕ МАРШРУТОВ ТРАНЗАКТОВ.. 40

2.6 БЛОКИ ДЛЯ СБОРА СТАТИСТИКИ.. 44

2.7 ОСНОВНЫЕ ВЫВОДЫ ПО ЯЗЫКУ GPSS. 46

ЛИТЕРАТУРА.. 48

ПРИЛОЖЕНИЯ.. 49

ПРИЛОЖЕНИЕ 1. Условные обозначения на блок-диаграммах GPSS. 49

ПРИЛОЖЕНИЕ 2. Основные сокращения и обозначения симулятора GPSS. 54

ПРИЛОЖЕНИЕ 3. Стандартные числовые атрибуты (СЧА) GPSS. 55

ПРИЛОЖЕНИЕ 4. Блоки GPSS. 58

ПРИЛОЖЕНИЕ 5. Карты GPSS. 62

 


 

ВВЕДЕНИЕ

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

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

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

- динамические-статические;

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

- стохастические (вероятностные)-детерминированные.

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

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

Функционирование динамической дискретной системы в период времени [t0, T] заключается в последовательной смене состояний системы z(t1) -> z(t2) -> . . . -> z(tn), где t0 <= t1 <= t2 <= . . . <= tn<= T.

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

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

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

Упорядоченная во времени логически взаимосвязанная последовательность событий, выделенная в соответствии с некоторым признаком, называется процессом. Таким образом, процесс- это более агрегативное понятие, чем событие и действие.

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

Любая подобная система неизбежно испытывает различного pода возмущения, источниками котоpых могут быть либо внешние воздействия, обусловленные случайными или систематическими изменениями окружающих условий, либо внутренние флюктуации, возникающие в самой системе в результате взаимодействия элементов. Пpи исследовании эти системы пpедставляются в виде стохастических моделей дискpетных пpоцессов (CМДП). Несмотря на успешное pазвитие и пpименение методов аналитического моделиpования СМДП, основным методом исследования таких систем остается имитационное моделиpование на ЭВМ с пpименением специализиpованных языков пpогpаммиpования.

За всю историю pазвития вычислительной техники было создано более 300 языков моделирования дискретных процессов. Одним из первых языков описания СМДП, появившихся в начале 60-х годов, был язык блок-диаграмм, предложенный Гордоном, идеи которого оказались настолько плодотворны, что использовались во многих последующих pазpаботках в нашей стране и за рубежом. На основе языка блок-диаграмм в 70-х годах был создан и в последующем адаптиpован к ПК широко используемый в настоящее вpемя для моделиpования большого класса систем язык и система моделирования GPSS (General Purpose Simulation System - Система моделирования общего назначения).

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

Для дальнейшего рассмотрения системы введем следующие определения:

ОЧЕРЕДЬ - это группа заявок, ожидающих обслуживания.

МОДЕЛЬНОЕ ВРЕМЯ - это промежуток времени между началом моделирования и его завершением.

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

ИНТЕРВАЛ ПРИБЫТИЯ заявок - это интервал времени между последовательными моментами прибытия заявок в систему.

ВРЕМЯ ОБСЛУЖИВАНИЯ - это время, требуемое прибору для выполнения обслуживания.

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

1. Число заявок, прибывших на обслуживание за заданный промежуток времени.

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

3. Среднее время пребывания заявок в очереди.

4. Средняя длина очереди.

5. Максимальная длина очереди.

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

 

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

1. Случайные переменные ИНТЕРВАЛ ПРИБЫТИЯ и ВРЕМЯ ОБСЛУЖИВАНИЯ являются равномерно распределенными и принимают только целые значения.

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

3. Вначале моделирования система "пуста", т. е. нет очереди и обслуживающий прибор свободен.

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

Элементы процедуры решения

События

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

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

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

Таймер модельного времени

Так как работа модели связана с последовательным возникновением событий, то вполне естественно использовать понятие "Таймер Модельного Времени" в качестве одного из элементов модели системы. Для этого вводят специальную переменную и используют ее для фиксации текущего времени работы модели.

Опишем теперь некоторые специфические свойства таймера модельного времени.

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

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

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

1. Концепция фиксированного приращения значений таймера.

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

2. Концепция переменного приращения значений таймера.

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

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

Завершение моделирования

 
 

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

Алгоритмизация модели

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

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

ОПИСАНИЕ ОБЪЕКТОВ GPSS

Для описания некоторых характеристик отдельных объектов GPSS (например, емкости памяти, переменных операторов, параметров таблиц) используются карты описания объектов. Формат этих карт подобен формату карт описания блоков.

Язык GPSS оперирует с тремя типами объектов аппаратной категории: устройствами, памятями и логическими ключами.

Устройства. Эти объекты аппаратной категории GPSS применяются для описания таких элементов, которые могут использоваться только одним транзактом в данный момент времени. Каждое устройство предполагает использование четырех СЧА (см. Приложение 3).

Кроме того, каждое устройство имеет шесть стандартных логических атрибутов (СЛА): Un[5] — истина, если устройство используется, т. е. занимается посредством блока SEIZE или посредством блока PREEMPT; NUn — истина, если устройство не используется ни блоком SEIZE, ни PREEMPT; In[6] — истина, если устройство занимается с помощью блока PREEMPT; NIn—истина, если устройство не занимается блоком PREEMPT; FVn — истина, если устройство доступно; FNVn —, истина, если устройство недоступно.

Памяти[7]. Эти объекты GPSS описывают такие устройства, которые обслуживают одновременно несколько транзактов. Посредством этого объекта можно представить, например, очередь людей у кассы; рейд, где корабли ожидают освобождения места для разгрузки в порту, и т. д. Каждой памяти присущи семь СЧА (см. Приложение 3).

Емкость каждой памяти определяется в начале процесса испытаний модели с помощью карты STORAGE. Используются два формата — для определения одной или нескольких памятей, Например:

1 STORAGE 237

(в «поле метки» записывается номер памяти, а в «поле операндов» — объем этой памяти).

STORAGE S1,100/S2,200

(«поле метки» пустое, а в «поле операндов» описываются памяти и их емкости). Емкости описываются по следующим правилам: 1) номер памяти обозначается через СЧА Sn; 2) номер памяти отделяется от значения ее емкости запятой; 3) несколько памятей одной и той же емкости могут определяться одним значением, их номера разделяются знаком «—»; SI—S10, 100; 4) отдельные значения емкости разделяются знаком «/».

Каждый объект типа «память» использует шесть СЛА: SEn — истина, если память пуста, т. е. Sn = 0, Rn = вся емкость; SNEn — истина, если Sn > 0, Rn < вся емкость; SFn — истина, если Sn = вся емкость, Rn = 0; SNFn — истина, если Sn < вся емкость, Rn > 0; SV — истина, если память доступна; SNV — истина, если память недоступна.

Ключи. Эти объекты используются для описания двоичных состояний логического или физического характера. В процессе работы модели один транзакт может установить ключ в определенное положение, другой может изменить его состояние, а третий — использовать это состояние при принятии определенных решений. С этим объектом связаны два СЛА: LRi[8] — истина, если ключ i выключен, и ложь, если он включен; LSi[9] — истина, если ключ i включен, и ложь, если он выключен.

 

В вычислительной категории используются объекты трех типов: арифметические переменные, булевские переменные и функции. При построении модели некоторой системы S необходимо выразить арифметические и логические соотношения между атрибутами. Для этого используются арифметические и булевские переменные, которые представляют стандартными числовыми атрибутами V и BV.

Арифметические переменные (определяются перед началом моделирования).

Целые арифметическиепеременные описываются картой

Метка Операция A

j VARIABLE выражение

j - имя переменной, используемое для ссылок на неё, обозначается индексом номера или символом. Выражение - арифметическое выражение, включающее в себя различные стандартные числовые атрибуты, а также другие переменные. Результат каждой промежуточной операции в целых переменных преобразуется к целому типу путём отбрасывания дробной части. Для обозначения алгоритмических операторов используются пять символов: «+» — алгебраическое суммирование; «—» — алгебраическое вычитание; «*»[10] — алгебраическое умножение; «/» — алгебраическое деление; @ — деление по модулю. Все указанные действия в выражении осуществляются по тем же правилам и в том же порядке, как, например, в языке ПАСКАЛЬ. Деление на 0 не считается ошибкой (результат при этом равен 0). В выражении не допускаются пробелы (первый пробел означает конец выражения), нет ограничений на количество чисел, но последнее число должно кончаться в колонке 71. Если выражение не помещается на одной карте, то используют несколько карт с дополнительным определением вспомогательных переменных.

Например:

10 VARIABLE Q9+3—P7*FN3

где переменная 10, которая обозначается V10, вычисляется добавлением к длине очереди 9 (Q9) константы 3 и вычитанием результата произведения параметра 7 (Р7) текущего транзакта на функцию 3 (FN3).

Действительные переменные:

j FVARIABLE выражение

Действие аналогично VARIABLE, за исключением того, что отдельные элементы и промежуточные результаты не округляются, округляется конечный результат выражения.

Например:

1 FVARIABLE 10(11/3)

1 VARIABLE 10(11/3)

где первая переменная с плавающей запятой равняется 36, т. е. произведение 3,67 • 10 = 36,7 ограничивается до 36, а вторая переменная равна 30, т. е. 3,67 ограничивается до 3 и умножается на 10.

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

· Логические операторы используются для определения состояния объектов аппаратной категории и рассматриваются при описании стандартных логических атрибутов «устройств» и «памятей». Например:

3 ВVARIABLE FNI2

4 BVARIABLE SF2

где булевская переменная 3 (BV3) равна 1, если устройство 2 не занимается блоком PREEMPT, а булевская переменная 4 равна 1, если память 3 заполнена.

· Условные операторы сравнивают алгебраические операнды, которые могут быть константами либо СЧА: G — больше; L — меньше; Е—равно; NE—не равно; LE—меньше либо равно; GE—больше либо равно. Например:

11 BVARIABLE V2'G'5

(здесь ВVII равна 1, если V2>5).

· Булевские операторы обозначают следующее: «+»—ИЛИ; «*» — И. Например:

7 BVARIABLE (V2'G'7)*(FNI2+LR7)

(т. е. BV7 равна 1, если V2>7 при условии, что устройство 2 не занято блоком PREEMPT или логический переключатель LR7 включен).

Функции. Как и переменные, функции не связаны с определенными блоками. Существует пять типов функций:[11] 1) непрерывные числовые значения Сn; 2) дискретные числовые значения Dn; 3) перечень числовых значений Ln; 4) дискретные значения атрибутов Еn; 5) перечень значений атрибутов Мn. Первые два типа функции, являются основными. На рис. 5 показана непрерывная функция.

 
 

Каждая функция определяется посредством карты, имеющей вид

Метка Операция A B

j FUNCTION Arg Cn

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

Каждая карта FUNCTION сопровождается картами, содержащими значения отдельных точек функции (пары Xi и Yi). Каждая из этих карт может содержать шесть пар Xi и Yi), расположенных на 12 шестисимвольных полях. Например, функцию, показанную на рис. 5, можно представить следующим образом:

Метка Операция

1 FUNCTION RN1,C5

X1,Y1/X2,Y2/X3,Y3/X4,Y4/X5,Y5

Значения Xi и Yi могут быть нецелыми числами. Значения Х должны удовлетворять условию Xi < Xi+1.

Пользователь может представить координаты функции в свободном формате, а не по шесть на каждой карте. Для этого нужно, чтобы: 1) первое число начиналось с колонки 1; 2) последнее число кончалось до или в 71-й колонке; 3) координаты Xi и Yi отделялись друг от друга запятой; 4) пары координат отделялись друг от друга знаком «/».

Например, если необходимо, чтобы случайная величина получала значения 1, 4, 5 с относительной частотой 0,40; 0,10; 0,50, то дискретная функция может иметь вид

15 FUNCTION RN8,D3

0.4,1/.5,4/1,5

Графическое представление данной функции приведено на рис. 6

У функции аргументом может необязательно RNj. Например, аргументом может быть любой СЧА. При использовании аргументов, отличных от RNj, существуют ограничения:

1. Значениями аргумента должны быть только целые числа;

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

Генерация случайных чисел в GPSS имеет следующие особенности. Все случайные равномерно распределенные числа, используемые в GPSS, получаются в результате расчета, который исходит из набора восьми основных чисел, называемых исходными. Пользователь может задать любое из этих чисел (RN1, ...,RN8). В случаях, когда обращение к датчику случайных чисел подразумевается, используется RNj. Начальные значения и, следовательно, последовательности псевдослучайных чисел, получаемые во всех системных датчиках (RN1, .,.,RN8), одинаковы. Для получения различных последовательностей необходимо изменять их начальное значение.

Моделирование пуассоновских потоков в GPSS. Наступление событий часто подчиняется следующим условиям:

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

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

3. Все интервалы наступления независимы друг от друга (процесс с ограниченным последействием)

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

k = 0, 1, 2, ...

где Pk(T) – вероятность того, что ровно k событий произойдет за время T; l - средняя интенсивность наступления событий. Когда интенсивность наступления распределена по закону Пауссона, соответствующие значения интервалов времени наступления распределены по экспоненциальному закону: ИВН = ИВНср×[-ln(1-RNi)], где ИВНср – средний интервал времени наступления, RNi – случайное число (RNi Î[0, 1]). Знак минус принят в выражении потому, что значение логарифма отрицательно. Вычисление натурального логарифма в GPSS не предусмотрено и выражение -ln(1-RNi) аппроксимируется ломаной прямой, заданной координатами 24 точек

EXPON FUNCTION RN1,C24  
0,0/.100,.104/.200,.222/.300,.355/.400,.509/.500,.690 .600,.915/.700,1.200/.750,1.380/.800,1.600/.840,1.830/.880,2.120 .900,2.300/.920,2.520/.940,2.810/.950,2.990/.960,3.200/.970,3.500 .980,3.900/.990,4.600/.995,5.300/.998,6.200/.999,7/1,8

График функции EXPON показан на рис. 7.

Например, необходимо смоделировать пуассоновский входящий поток со средним значением 6 заявки в течение каждых 24 часов. Единица измерения – 1 мин. В таком случае блок GENERATE будет иметь вид

GENERATE 240,FN$EXPON


Операнд A получен путем преобразования интенсивности в соответствующее ей среднее время между последовательными поступлениями заявок: 4 часа или 240 мин. Например, если значение RNj равно 0,55, значение функции FN$EXPON будет равно 0,8025. Произведение 0,8025×240 равно 192,6. Следовательно, следующая заявка поступит в модель через 192 мин. Так как, для пуассоновского потока принято предположение, что интервал между двумя последовательными поступлениями не может равен нулю, то рекомендуется значение операнда A блока GENERATE брать не менее 50.

 

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

В статистической категории GPSS используется два типа объектов: очереди и таблицы.

Очереди. Транзакт помещается в очередь в том случае, когда некоторое устройство не в состоянии обслужить его немедленно (например, устройство занято, либо память перепол­нена). Статистические данные об очередях могут быть получены в разных точках модели. Для изменения длины очереди в выбранных точках размещается два типа блоков: блок QUEUE и блок DEPART. Блок QUEUE может быть помещен перед любым блоком диаграммы, в котором может возникнуть задержка. При этом транзакты увеличивают длину очереди при входе в блок QUEUE и уменьшают ее при входе в блок DEPART. В GPSS транзакт может входить в несколько блоков QUEUE одновременно. Каждая очередь имеет семь стандартных числовых атрибутов (см. прил. 3).

Таблицы. Статистические таблицы используются для получения частотных распределений определенных аргументов, которыми могут быть некоторые СЧА (например, времени задержки транзакта в модели в целом или в отдельных ее частях; длин очередей; содержимого памяти и т. д.). У каждой таблицы имеются определенные области значений аргумента. Число попаданий аргумента в каждую из этих областей регистрируется. В конце эксперимента с моделью результаты в таблицах выводятся на печать. С помощью карты TABLE пользователь определяет аргумент и области частотных интервалов. Карта TABLE имеет следующий формат:

 

Метка Опе-рация Табулируе-мый аргумент Верхняя граница первого интерва­ла Размер интер-валов Коли-чество интер-валов
    А В C D
j TABLE СЧАi Кn Кn Кn
    СЧА*n
    СЧАi
    СЧА*n —
    RT
    IA

Знак «—» после СЧА показывает, что используется разностный режим. Табулируемый аргумент RT[12] указывает на режим «RT», а IA[13] — на режим «IA». В режиме RT добавляется поле E, в котором указывается интервал времени, относительно которого измеряется интенсивность (автомобилей в час, сообщений в сутки и т.д.). Например, если за единицу модельного времени принята одна минута, то карта

TABRT TABLE RT,0,5,10,60

означает, что значение интенсивности указывает на число приходов за 60 минут.

Каждая таблица имеет три СЧА (см. прил. 3): TBn — средние значения аргумента, которые накапливаются в таблице с послед­ней карты RESET или CLEAR; TDn — стандартное отклонение, равняющееся корню квадратному из дисперсии аргументов; ТСn — счетчик входов в таблицу, т. е. общее число табулированных аргументов.

 

Объекты запоминающей категории(ячейки и матрицы) обеспечивают обращения к сохраняемым значениям.

Ячейки. Эти объекты используются в модели для сохранения отдельных значений СЧА, чтобы в дальнейшем можно было обращаться к ним. Для этого необходимо резервировать ячейки оперативной памяти ЭВМ, в которых эти значения будут храниться посредством карты SAVEVALUE[14]. При принятии определенных решений отдельные транзакты могут обращаться к этим ячейкам и использовать хранящуюся в них информацию. Ячейка SAVEVALUE может сохранять числовое значение в размере формата «слова», «полуслова», «байта», «плавающей точки» в зависимости от ее типа. Ячейкам SAVEVALUE каждого типа соответствует один СЧА (см. прил. 3).

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

Поле А интерпретируется как номер ячейки SAVEVALUE, значение которой изменяется в результате прохождения блока.

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

В поле В задается значение, которое надо записать в данную ячейку. Ячейки SAVEVALUE могут иметь символические имена. Например:

SAVEVALUE PROCE,PH2,XH

(т. е. значение параметра 2 транзакта, вошедшего в блок SAVEVALUE, записывается в ячейку SAVEVALUE с именем PROCE формата «полуслово»). Или

SAVEVALUE XB4 — 12,10,ХН

(где блок SAVEVALUE записывает число 10 в ячейки формата «полуслово», начиная с той, номер которой записан в ячейку формата «байт», и кончая ячейкой 12-го формата «полуслово». Число, записанное в ячейке 4, должно быть меньше 12, иначе заданный диапазон номеров окажется ошибочным).

Формат ячейки SAVEVALUE задается в поле С. Допускаются следующие записи: X, XF, или пробел (ячейка формата «слово»), Н или ХН (ячейка формата «полуслово»), ХВ (ячейка формата «байт») и XL (ячейка формата «плавающая точка»). Если записываемое значение превышает максимально допустимое для ячейки SAVEVALUE .данного формата, выдается предупреждающее сообщение. Например:

SAVEVALUE HTOT,156,XН

(т. е. в ячейке SAVEVALUE формата «полуслово с именем НТОT записывается число 156);

SAVEVALUE RLCLK,Cl,XF

(когда текущее значение условного времени записывается в ячейку SAVEVALUE формата «слово»);

SAVEVALUE QUELN,Q*PB10,XF

(т. е. длина очереди, определяемой: параметром 10 формата «байт», записывается в ячейку формата «слово» с именем QUELN).

Содержимое ячеек SAVEVALUE можно изменить заменой добавлением и вычитанием значений. Если за номером ячейки в поле А стоит знак «+», значение, записанное в поле В, добавляется к текущему содержимому ячейки. Знак «—» определяет вычитание значения, записанного в поле В, из текущего содержимого этой ячейки. Отсутствие символа означает замену содержимого. Например:

SAVEVALUE CROSS,V$RSLT,XF

(т. е. текущее содержимое ячейки GROSS формата «слово» заменяется значением переменной RSLT);

SAVEVALUE GROSS+,V$RSLT,XF

(в этом случае значение переменной RSLT добавляется к текущему содержимому ячейки GROSS).

Матрицы. Эти объекты дают возможность упорядочить значения, которые нужно сохранить в виде матриц m ´ n, где т — число строк; n — число столбцов. Пользователь может определить число строк и столбцов, а также размер информации, которая будет храниться (формат «слово», «полуслово», «байт», «плавающая точка») с помощью карты MATRIX. С этим типом объекта связаны СЧА (см. прил.3).

Матрицы. Эти объекты дают возможность упорядочить значения, которые нужно сохранить в виде матриц m ´ n, где т — число строк; n — число столбцов. Пользователь может определить число строк и столбцов, а также размер информации, которая будет храниться (формат «слово», «полуслово», «байт», «плавающая точка») с помощью карты MATRIX. С этим типом объекта связаны СЧА (см. прил.3). Блоки MSAVEVALUE присваивают, или изменяют значения элементов матриц.

Карта MATRIX определяет матрицу GPSS.

Метка Операция A B C

j MATRIX A B C

j - имя матрицы. А - неиспользуемое поле (для совместимости с прежними версиями GPSS). B - количество строк матрицы. Обязателен. Операнд должен быть константой. С - количество столбцов матрицы. Обязателен. Операнд должен быть константой. Например:

ARRAY MATRIX ,100,5

Этот карта определяет матрицу ARRAY, которая имеет 100 строк и 5 столбцов.

Размер матрицы ограничен -он может содержать не более 8191 элемента. Если есть необходимость в большем количестве элементов нужно определить дополнительную матрицу.

Изменение элементов матриц во время моделирования производится блоком:

MSAVEVALUE A B C D

А - имя или

Последнее изменение этой страницы: 2016-07-22

lectmania.ru. Все права принадлежат авторам данных материалов. В случае нарушения авторского права напишите нам сюда...