Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
PAGE 6
Время выхода транзакта
и его удаления из модели
EMBED PBrush
Лекция 1. Имитационная система GPSS
1. Функциональная структура системы
Система моделирования GPSS (General Purpose Simulation System) предназначена для построения имитационных моделей сложных дискретных систем и ориентирована на построение моделей таких систем как СМО, ВС. Система GPSS относится к моделирующим системам транзактного типа.
Транзакт это дискретный объект, который может отображать различные объекты реального мира: заявки, сообщения, транспортные средства моделей и т.д. Перемещаясь между компонентами модели составленной на языке GPSS, транзакты вызывают различные действия. Возможны его задержка в различных точках модели, изменение маршрутов в зависимости от условий и т.д..
В GPSS приняты следующие функциональные компоненты моделируемой системы, описываемые комбинациями блоков:
- приборы
- память
- логические ключи
- вспомогательные элементы (например, матрицы)
Конфигурация GPSS-модели отображает направления, по которым происходит перемещение транзактов. Т.о. транзакты динамические элементы GPSS-модели. В модели может находиться большое число транзактов, однако в один момент времени передвигается только один транзакт.
Когда транзакт входит в некоторый блок, на исполнение вызывается соответствующая подпрограмма, и далее транзакт пытается войти в следующий блок. Такое передвижение транзакта продолжается до тех пор, пока не произойдет одно из следующих событий:
- транзакт входит в блок, функцией которого является задержка транзакта на некоторое определяемое в модели время;
- транзакт входит в блок, функцией которого является удаление транзакта из модели;
- блок, куда пытается войти транзакт, оказывается занятым. В этом случае транзакт остается в том блоке, в котором он в настоящее время находится. Позднее он будет повторять попытки войти в этот блок.
Если возникло одно из описанных условий, транзакт остается на месте, и начинается перемещение другого транзакта.
2. Создание и ввод транзактов в модель
GENERATE A, B, C, D, E, F, G
Это блок GPSS, определяющий момент ввода нового транзакта в модель случайным образом в соответствии с заданным распределением времени между транзактами. По умолчанию в любом блоке GPSS применяется равномерное распределение случайных величин.
Операнды блока служат для управления характеристиками распределения интервалов. С помощью операндов А и В (неотрицательных целых чисел) задаётся распределение интервалов поступления транзактов.
Операнд А определяет среднее время между поступлением 2х соседних транзактов в блоке GENERATE. Операнд В задаёт половину размаха интервалов времени прибытия. R[A-B, A+B]. А должно быть больше В.
Например:
GENERATE 5, 3
Здесь, интервал времени случайное число со средним значением, равным 5, и размахом, равным 6, т. е. может принимать целочисленные значения: 2, 3, 4, 5, 6, 7, 8.
Рассмотрим ситуацию, когда очередной транзакт вошел в модель из блока GENERATE в момент модельного времени, равный 15. После того, как он попадет в следующий блок, интерпретатор GPSS определят время прибытия следующего транзакта. Для этого разыгрывается случайное число R[2,8], например 7, и оно прибавляется к 15. Т.о. следующий транзакт появится в модели в момент времени, равный 22.
Когда значение А или В (или оба) не указаны, по умолчанию предполагается нулевое значение.
Например:
GENERATE 10
Иначе говоря, интервал времени детерминированное (не случайное) число, равное 10. Это время ввода первого транзакта.
С этот операнд используется для задания смещения интервалов. Фактически смещение это время прибытия первого транзакта. Все последующие транзакты возникают в соответствии с распределением интервалов времени, заданным операндами А и В. По умолчанию смещение отсутствует.
Операнд D задает максимальное число транзактов, которые могут войти в модель из данного блока GENERATE в течение одного запуска модели. Когда это число достигнуто, блок GENERATE перестает быть активным. По умолчанию , т.е. блок остается активным в течение всего времени моделирования.
Операнд E устанавливает уровень приоритета транзактов, входящих в модель из данного блока GENERATE. E=(0127), 0 самый низкий уровень и задается по умолчанию.
F определяет количество параметров описывающих некоторый транзакт. По умолчанию их число равно 12, т.е. , Fmax=100.
G определяет длину параметра транзакта (всегда целочисленные).
G=F все параметры транзактов имеют длину слова т.е. 4 байта.
G=H все параметры транзактов имеют длину полуслова т.е. 2 байта.
По умолчанию каждому параметру отводится полуслово. Это эквивалентно G=H.
Примеры:
времени определяются как случайные числа R[0, 6].
2. С=10. Первый транзакт войдет в модель только через
10 единиц модельного времени.
3. D=5. В модель войдет только первых пять транзактов.
три полнословных параметра.
Примеры:
GENERATE 7,2
Т4 может выйти в моменты времени 21+[5,9]
Вероятность равна 1/5 (по количеству вариантов)
GENERATE 3 GENERATE 6, , , ,7
GENERATE 8, 4, 480, , 13
Представим также, что к моменту времени 20 из модели ещё не вышел ни один транзакт. Какое число транзактов с уровнем приоритета, равным 0, 7 и 13, находится в модели к моменту времени 20?
0 6
7 3
13 0
а) 0,6/0,10 = 6±2
б) 0,6/0,20 = 3±1
в) (0,6/0,3)*24 = 48±16
г) (0,6/0,1)*24 = 144±48
3. Параметры и числовые атрибуты транзактов
С каждым транзактом, переходящим из одного блока в другой, связан упорядоченный набор данных (числовых атрибутов) Tn. Существует две группы атрибутов: программно недоступные, или системные числовые атрибуты; и атрибуты, к которым может обращаться пользователь, или стандартные числовые атрибуты (СЧА). Для обращения к СЧА служит определенное имя.
Рисунок содержит следующие названия числовых атрибутов:
4. Блоки
Каждый GPSS-блок модели описывается в таком формате:
Символический адрес Наименование типа Аргумент А, Аргумент В,
блока блока и т.д.
1) Поле метки. Каждый блок имеет свой порядковый номер в модели, но можно использовать метку для организации переходов транзактов. Имя метки должно содержать от трех до пяти алфавитно-цифровых символов, причем первые три символа должны быть алфавитными.
Таблица 1- Примеры правильных и неправильных символических адресов
Правильно |
Неправильно |
BYPAS |
BY25 |
BLOK1 |
2AND4 |
OUT |
NO |
JOE23 |
A2B |
SNO2M |
P |
2) Поле операции содержит имя блока GPSS, например GENERATE.
3) В поле операндов указываются значения параметров блока, настраивая его функции. Число операндов каждого блока зависит от типа блока.
Комментарии. Все символы, стоящие в строке справа от символа (;) являются комментарием и не будут просматриваться транслятором.
5. Удаление транзактов из модели
Транзакт, прошедший по модели, должен быть удалён, а память, занимаемая им, освобождена. Такую операцию производит блок TERMINATE с транзактом, попавшим в него.
TERMINATE А
При каждом удалении транзакта в этом блоке из счетчика завершения событий вычитается значение операнда А. Как только содержание счетчика завершения событий становится равным 0, моделирование завершается. Значение А по умолчанию равно 0. В модели может быть любое количество блоков TERMINATE.
Начальное значение счетчика завершения событий определяется параметром А команды START. Интерпретатор GPSS начинает моделирование, когда встречается команда START.
6. Управление длительностью процесса моделирования
Рассмотрим возможности, предоставляемые системой пользователю для управления длительностью процесса моделирования.
1) По заданному числу транзактов
GENETATE 11
Блоки модели
TERMINATE 1
START 200
После того, как 200-й транзакт покинет модель, моделирование прекратится. Может оказаться, что в модели останется несколько транзактов.
2) По заданному времени моделирования
Допустим, разработчик хочет промоделировать работу системы за 8 часов и в качестве единицы времени выбрал 1 мин. Отразим его требования в модели. В таком случае, модель должна состоять из двух частей.
1-я часть. GPSS-модель объекта исследования
GENERATE 8,3
Блоки модели
TERMINATE
2-я часть. «Часы» модельного времени
GENERATE 480
TERMINATE 1
START 1
Во всех блоках TERMINATE, кроме находящегося в «часах», поле операнда A должно оставаться пустым. В команде START операнд A должен быть равен 1.
В процессе моделирования транзакты из основной части модели удаляются, не влияя на длительность моделирования. В момент модельного времени, равный 480, из последнего блока GENERATE появляется первый транзакт. Он сразу же попадет в блок TERMINATE, у которого операнд А=1. Поэтому из счетчика завершения событий вычитается 1 и новое значение счетчика становится равным 0. Интерпретатор прекращает моделирование.
Примеры:
1. Часть модели, состоящая из двух блоков, используется в качестве часов в модели GPSS:
GENERATE 60
TERMINATE 1
START
1.1 Если в качестве операнда А команды START указано число 8, то в какой момент времени завершится моделирование? (Ответ: Т=480)
1.2 Если в этой модели использовать GENERATE 70 и START 8, то в какой момент времени завершится моделирование? (Ответ: Т=560)
1.3 Если START 3, в какой момент времени завершится моделирование? (Ответ: Т=180)
2. Для управления процессом моделирования разработчик использует два двухблочных сегмента модели и команду START со значением операнда А=25. Когда завершится моделирование?
С-1.
GENERATE 25
TERMINATE 2
С-2.
GENERATE 15
TERMINATE 1
START 25
(Ответ: в момент времени, равный 175)
Из сегмента С1 выйдет 7 заявок, из С2 11 заявок.