Транзакты

реклама
Содержание
Введение ....................................................................................................................... 2
Язык имитационного моделирования GPSS ............................................................ 3
Функциональная структура GPSS. ............................................................................ 3
Транзакты ..................................................................................................................... 4
Блоки, влияющие на атрибуты транзактов и на их движение в модели ............... 5
Списки .......................................................................................................................... 6
Устройства ................................................................................................................... 6
Памяти .......................................................................................................................... 7
Логические ключи ....................................................................................................... 7
Очереди ........................................................................................................................ 7
Таблицы ........................................................................................................................ 8
Ячейки .......................................................................................................................... 8
Функции и переменные .............................................................................................. 8
1 Моделирование СМО задания №27 на языке GPSS ............................................. 9
1.1 Постановка задачи ................................................................................................. 9
1.2 Алгоритмизация модели ..................................................................................... 10
Вывод .......................................................................................................................... 12
Список использованных источников ...................................................................... 15
Приложение А ........................................................................................................... 16
2
Введение
Важным этапом моделирования является создание математической
модели исследуемой системы. На базе математической модели происходит
анализ характеристик системы, при компьютерном моделирования на основе
математической
информации
модели
о
создается
поведении
алгоритм
системы.
программ
Формальное
для
получения
описание
объекта
исследование необходимо также для взаимопонимания между специалистами
разных областей, объединенных для решения какой-либо глобальной задачи.
При построении математических моделей процессов функционирования
систем можно выделить следующие основные подходы: непрерывнодетерминированный,
дискретно-детерминированный,
дискретностохастический, непрерывно-стохастический, сетевой, обобщенный (или
универсальный).
Соответственно этим подходам были разработаны типовые
математические схемы создания моделей.
1. Непрерывно-детерминированный подход использует в качестве
математических моделей системы дифференциальных уравнений.
2. Дискретно-детерминированный подход реализуется с помощью
математического аппарата теории автоматов. Система представляется в виде
автомата, перерабатывающего дискретную информацию и меняющего свои
внутренние состояния лишь в допустимые моменты времени.
3. Дискретно-стохастический
математического
аппарата
подход
вероятностные
использует
автоматы,
в
которые
качестве
можно
определить как дискретные потактные преобразователи информации с
памятью, функционирование которого в каждом такте зависит только от
состояния памяти в нем и может быть описано статистически.
4. Непрерывно-стохастический подход применяется для формализации
процессов обслуживания. Этот подход наиболее известен ввиду того, что
большинство
производственных
(и
не
только
производственных
-
экономических, технических и т.д.) систем по своей сути являются системами
3
массового обслуживания. Типовой математической схемой моделирования
таких систем являются Q-схемы.
Наиболее часто для анализа Q-схем используют имитационные методы. В
этом случае формализованное описание системы массового обслуживания
представляет собой графическое отображение (с соответствующими
комментариями) элементарных приборов, клапанов, отражающих наличие
управляющих воздействий, и связей между ними. На данный момент
существует много программных средств, специализирующихся на создание
имитационных моделей на основе Q-схем. Примерами для прикладного
применения непрерывно-стохастического подхода могут служить исследования
потоков поставок продукции некоторому предприятию, потоков деталей и
комплектующих изделий на сборочном конвейере цеха и т.п.
Язык имитационного моделирования GPSS
Функциональная структура GPSS.
Система GPSS ориентирована на класс объектов, процесс
функционирования которых можно представить в виде множества состояний и
правил перехода из одного состояния в другое, определяемых в дискретной
пространственно-временной области. Примерами таких объектов являются
вычислительные системы, сети ЭВМ, системы передачи сообщений,
транспортные объекты, склады, магазины, предприятия и т.п. В качестве
формальных моделей таких объектов используют системы массового
обслуживания, автоматы, стохастические сети, сети Петри и макросети,
агрегаты и т.п.
В состав GPSS входят следующие типы объектов: транзакты, блоки,
списки, устройства, памяти, логические ключи, очереди, таблицы, ячейки,
функции, переменные. Любую модель на языке GPSS можно представить в
виде комбинации компонентов, взятых из числа названных объектов. Модель
имеет три уровня представления:
4
 верхний уровень, определяемый комбинацией функциональных
основных объектов: устройств, памятей, ключей, очередей;
 средний уровень, представляемый схемой из типовых блоков, между
которыми перемещаются транзакты;
 нижний уровень - уровень физической реализации языка GPSS в виде
программ и наборов данных, составляющих основу моделирующей
системы.
Транзакты
Функционирование объекта отображается в модели в виде перемещения
транзактов от блока GENERATE в блок TERMINATE через промежуточные
блоки. Транзакты, или сообщения являются абстрактными подвижными
элементами, которые могут моделировать различные объекты реального мира:
сообщения, программы, транспортные средства, людей и т.п. Перемещаясь
между блоками модели, транзакты вызывают (и испытывают) различные
действия. Возможны их задержки в некоторых точках модели, изменения
маршрутов и направлений движения, расщепление транзактов на несколько
копий и т.п. С каждым транзактом связан упорядоченный набор данных. Он
включает номер транзакта; номер блока, в котором в данный момент находится
транзакт; номер следующего блока; время перехода в следующий блок;
приоритет, характеризующий очередность обработки транзактов в
определенных случаях; а также набор параметров, с помощью которых
каждому транзакту можно присвоить числовые значения, выражающие
желаемые свойства или характеристики моделируемых объектов: вес, скорость,
объем, цвет, время обработки и т.п.
5
Блоки, влияющие на атрибуты транзактов и на их движение в
модели
В GPSS/PC существует ряд блоков, с помощью которых можно изменить
значение параметров транзактов. Блок ASSIGN модифицирует значение
параметра транзакта, входящего в этот блок. Блок INDEX изменяет значение
параметра номер 1. Блок INCREMENT увеличивает значение параметра, блок
DECREMENT уменьшает величину параметра.
Блок MARK записывает в указанный им параметр текущее значение
таймера абсолютного времени или, если параметр не указан, заменяет значение
отметки времени на текущее значение таймера.
С помощью блока USING осуществляется доступ текущего транзакта к
параметрам другого транзакта модели. Блок LOCATE определяет и записывает
в параметр текущего транзакта номер блока, в который должен войти
определенный транзакт. Пересылка транзакта в требуемую точку модели
осуществляется блоком TRANSFER. Блок ТЕSТ проверяя выполнение
определенного условия, может также направлять транзакты в заданную точку
модели, если условие не выполняется. В этом его действия аналогичны блоку
GATE. Для организации в модели циклов используют блок LOOP, с помощью
которого можно предусмотреть многократное прохождение транзактом
заданной цепочки блоков.
Изменение приоритета транзакта осуществляет блок PRIORITY. Блок
BUFFER возобновляет просмотр списка текущих событий и используется, как
правило, в качестве режима блока PRIORITY.
С помощью блоков TRACE и UNTRACE осуществляют трассировку
движения транзактов в модели.
6
Списки
Списки относятся к элементам внутренней организации системы GPSS.
Они представляют собой структуры данных, в которых размещается полная
информация о транзактах. С помощью списков обеспечивается внутренняя
логика работы моделирующей системы.
Список будущих событий содержит транзакты, которые смогут начать
движение в модели в будущие моменты времени. Это те транзакты, для
которых моменты начала движения определены в блоках GENERATE и
ADVANCE.
Устройства
Устройства моделируют объекты, в которых может происходить
обработка транзактов. Как правило, она связана с затратами времени.
Особенность устройств состоит в том, что каждое из них в данный момент
времени может быть занято лишь одним транзактом. Существует аналогия
между устройствами GPSS и каналами систем массового обслуживания. В
GPSS имеется возможность моделировать прерывания устройств. Существуют
средства логической проверки состояния устройств. Каждое из действий с
устройством отображается в модели определенным блоком.
Захват и освобождение устройства моделируются соответственно
блоками SEIZE и RELEASE. Для проверки состояния устройств используют
GATE. Прерывание моделирует блок PREEMPT, снятие прерывания - блок
RETURN.
7
Памяти
Памяти служат для моделирования объектов, обладающих определенной
емкостью. Памяти моделируются блоками ENTER и LEAVE. Входящий в блок
ENTER транзакт занимает определенную часть памяти. При входе транзакта в
блок LEAVE память освобождается. Емкость памяти задают с помощью
оператора STORAGE, который не является блоком GPSS и относится к числу
служебных карт.
Логические ключи
Для представления в модели коммутируемых объектов с двумя
состояниями ("ВКЛЮЧЕНО" - "ВЫКЛЮЧЕНО") используют логические
ключи, моделируемые блоками LOGIC и GATE. При входе транзакта в блок
LOGIC происходит срабатывание соответствующего ключа. Ключ
может быть включен (S), выключен (R) или переключен (1).
Очереди
Транзакты в процессе движения могут задерживаться перед блоками,
вход в которые в данных условиях невозможен. При поступлении транзактов на
вход задерживающих блоков образуются очереди. Для сбора статистики об
очередях в местах задержки ставят блоки QUEUE. Эти блоки сами по себе не
создают очередь, а лишь являются средством ее регистрации. При входе
транзакта в блок QUEUE текущая длина очереди получает приращение. Уход
из очереди отображается блоком DEPART.
8
Таблицы
Для сбора статистических данных о различных отчетах модели и их
представления в стандартной табличной форме используют таблицы. Занесение
информации в таблицу осуществляется блоком TABULATE в момент входа
очередного транзакта в этот блок. описание структуры таблицы и типа
заносимых данных (СЧА) осуществляется картой TABLE.
Ячейки
Для записи в процессе моделирования текущих значений СЧА
используют ячейки. Занесение информации в ячейку осуществляет блок
SAVEVALUE. При входе транзакта в этот блок требуемое значение СЧА
фиксируется в ячейке, номер которой определяется операндом блока
SAVEVALUE. Ячейки имеют различные форматы (слово, полуслово, с
плавающей точкой).
Изменение содержимого ячеек может осуществляться блоками
SDECREMENT и SINCREMENT. Блок SDECREMENT вычитает заданное
значение из величины, содержащейся в ячейке. Блок SINCREMENT добавляет
требуемое приращение к содержимому ячейки.
Функции и переменные
Функции служат для отображения зависимостей между двумя СЧА. В
GPSS/PC имеется два типа функций: непрерывные (С) и дискретные (D).
Функцию задают набором пар точек - координат. Непрерывная функция
воспроизводится в виде ломаной кривой, отрезки которой соединяют соседние
точечные значения. Дискретная функция имеет вид ступенчатой кривой.
9
1 Моделирование СМО задания №27 на языке GPSS
1.1 Постановка задачи
Вариант 20. Из литейного цеха на участок обработки и сборки
поступают заготовки через 20 ± 5 мин. Треть из них обрабатывается в течение
60 мин и поступает на комплектацию. Две трети заготовок обрабатывается за
30 мин перед комплектацией, которая требует наличия одной детали первого
типа и двух деталей второго. После этого все три детали подаются на сборку,
которая занимает 60 ± 2 мин для первой детали и 60 ± 8 мин для двух других,
причем они участвуют в сборке одновременно. При наличии на выходе
одновременно всех трех деталей изделие покидает участок.
Смоделировать работу участка в течение 100 ч. Определить места
образования и характеристики возможных очередей.
Элементы модели вычислительной системы:
 Транзакты – задания, которые адресуются ЭВМ;
 Очереди – очереди заданий перед каждой ЭВМ неограниченной
длины;
 Устройства обработки – ЭВМ, обрабатывающие задания.
10
1.2 Алгоритмизация модели
На рисунке 1 представлена блок-схема модели литейного цеха
60+ 2 мин.
60 мин.
20+5
обработка
1/3 деталей
сборка
1/3 деталей
15 мин.
30+4 мин.
обработка
2/3 деталей
сборка
2/3 деталей
логический
ключ
30+4 мин.
сборка
2/3 деталей
Рисунок 1 - Блок-схема
На участок обработки поступают изделия с интервалом 20 5 минут.
Треть деталей направляется на 1-й участок обработки, где обрабатывается 60
минут. Остальные две трети деталей обрабатываются на 2-ом участке, где для
обработки 2-х деталей, затрачивается 30 минут. Для того чтобы приступить к
сборке, необходимо наличие 1-й детали 1-го типа, и 2-х деталей второго типа.
Для синхронизации деталей в модель введен логический ключ, состояние при
инициализации – включен. После того как 2 детали второго типа обработаются
на 2 участке, они переходят к блоку логического ключа, и ждут, когда его
состояние изменится на выключенное. Как только детали 1-го типа
заканчивают обработку на 1 участке, они переходят на 1-й участок сборки,
предварительно изменив состояние логического ключа на выключенное. Таким
образом, детали 2-го типа также поступают на сборку. После сборки деталей,
они переходят в блок накопления, и как только там окажется 3 детали, готовое
изделие удаляется из модели.
11
simulate
10 generate 20,5
11 logic S key1
20 split 2.3,chan2
21 queue 1
30 seize ob1
40 advance 60
50 release ob1
51 depart 1
51 logic r key1
60 seize sb1
61 advance 60,2
62 release sb1
63 transfer,chan4
80 chan2 seize ob2
90 advance 15
100 release ob2
101 queue 2
110 gate LR key1
111 depart 2
120 split 1,chan5
130 seize sb2
140 advance 30,4
150 release sb2
160 transfer,chan4
170 chan5 seize sb3
171 advance 30,4
172 release sb3
180 chan4 assemble 3
190 terminate
200 generate 6000
201 terminate 1
start 1
– начало моделирования
– генерирование транзактов с интервалом
в 20  5 минут
– инициализация логического ключа, S –
закрыт
– отправка 2/3 деталей по метке
– очередь 1
– участок обработки 1 занят
– обработка в течение 60 минут
– освобождение устройства
– выход из очереди
– логический ключ - выключен
– участок сборки 1 занят
– сборка в течении 60  2 минуты
– освобождение устройства
– отправка по метке
– участок обработки 2 занят
– обработка в течение 15 минут
– освобождение устройства
– очередь 2
– проверка состояния ключа
– выход из очереди
– расщепление транзактов, отправка по
метке
– участок сборки 2 занят
– сборка в течение 304 минуты
– освобождение участка сборки
– отправка по метке
– участок сборки 3 занят
– сборка в течение 304 минуты
– освобождение устройства
– сборка трех деталей в одну
– удаление готовой детали
– генерация работы в течении 100 часов
– удаление
– 1 прогон
12
Вывод
GPSS World Simulation Report - model_var_okonch.117.1
Monday, December 11, 2006 09:58:31
START TIME
0.000
END TIME
6000.000
NAME
CHAN2
CHAN4
CHAN5
KEY1
OB1
OB2
SB1
SB2
SB3
LABEL
CHAN2
CHAN5
CHAN4
FACILITY
BLOCKS
31
FACILITIES
5
STORAGES
0
VALUE
14.000
28.000
25.000
10000.000
10002.000
10005.000
10003.000
10007.000
10008.000
LOC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
ENTRIES
BLOCK TYPE
GENERATE
LOGIC
SPLIT
QUEUE
SEIZE
ADVANCE
RELEASE
DEPART
LOGIC
SEIZE
ADVANCE
RELEASE
TRANSFER
SEIZE
ADVANCE
RELEASE
QUEUE
GATE
DEPART
SPLIT
SEIZE
ADVANCE
RELEASE
TRANSFER
SEIZE
ADVANCE
RELEASE
ASSEMBLE
TERMINATE
GENERATE
TERMINATE
UTIL.
ENTRY COUNT CURRENT COUNT RETRY
300
0
0
300
0
0
300
0
0
300
200
0
100
0
0
100
1
0
99
0
0
99
0
0
99
0
0
99
0
0
99
1
0
98
0
0
98
0
0
399
0
0
399
1
0
398
0
0
398
2
0
396
0
0
396
0
0
396
198
0
198
0
0
198
1
0
197
0
0
197
0
0
199
0
0
199
1
0
198
0
0
493
100
0
98
0
0
1
0
0
1
0
0
AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
13
OB1
SB1
OB2
SB2
SB3
100
99
399
198
199
QUEUE
1
2
59.766
59.640
14.979
29.882
29.732
1
1
1
1
1
425
422
865
426
651
0
0
0
0
0
MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME
201 201
300
0
100.564
2011.272
4
2
398
119
1.340
20.196
LOGICSWITCH
KEY1
FEC XN
426
865
651
1296
425
422
1299
0.996
0.984
0.996
0.986
0.986
PRI
0
0
0
0
0
0
0
VALUE
1
BDT
6003.384
6008.424
6015.363
6020.114
6023.424
6030.492
12000.000
0
0
0
0
0
0
0
0
0
0
200
0
201
198
197
AVE.(-0) RETRY
2011.272
0
28.811
0
RETRY
2
ASSEM
422
861
422
1296
425
422
1299
CURRENT
22
15
26
0
6
11
0
NEXT
23
16
27
1
7
12
30
PARAMETER
VALUE
Из приведенного выше файла стандартного отчета были получены
данные, представленные в таблице 1
Устройства
обработки
ob1
ob2
sb1
sb2
sb3
Количество
обработанных
транзактов
Коэффициент
загрузки
Максимальная
длина очереди
100
399
99
198
199
0.996
0.996
0.984
0.986
0.986
200
201
0
198
197
Анализируя эти данные, можно прийти к выводу что:
 участок обработки 1 – обработал 100 транзактов, коэффициент
загруженности его равен 0,996;
 участок обработки 2 – обработал 399 транзактов, коэффициент
загруженности его равен 0,996;
 участок сборки 1 – обработал 99 транзактов, коэффициент
загруженности его равен 0,984;
14
 участок сборки 2 – обработал 198 транзактов, коэффициент
загруженности его равен 0,986;
 участок сборки 3 – обработал 199 транзактов, коэффициент
загруженности его равен 0,986.
Система характеризируется высоким коэффициентом загруженности
всех устройств, и довольно большими очередями транзактов, в ожидании
устройства.
Для снижения загруженности устройств и уменьшения размера очередей,
возможно увеличение интервала времени поступающих в систему транзактов.
15
Список использованных источников
1. Самарский А.А., Михайлов А.П. Математическое моделирование.
М., 1997.
2. Петров А.А., Поспелов И.Г., Шананин А.А. Опыт математического
моделирования экономики. М.,
1996.
3. Капица П.Л. Эксперимент, теория, практика: Статьи и выступления.
М., 1987. С.417.
16
Приложение А
Синтаксис операторов GPSS использованных в данном курсовом
проекте
GENERATE - вводит транзакты в модель.
Формат: GENE [RATE] A,B,C,D,E,F,G
А - среднее значение интервала времени;
В - разброс или модификатор среднего значения(по умолчанию ноль);
С - время появления первого транзакта;
D - общее число генерируемых транзактов;
Е - уровень приоритета каждого транзакта;(от 0 до 127,значение по умолчанию 0);
F - число параметров (по умолчанию 12);
G - тип параметра ( F - полнословный, Н - полусловный - по умолчанию ).
Вводит транзакты в модель, посылая их в следующий по порядку блок. Если в поле В не
указана Функция, то интервал между поступлением транзактов определяется случайным
числом, равномерно распределенным в диапазоне от (А - В) до (А + В). Если поле В является
функцией (FN$), то этот интервал определяется произведением поля А на значение функции,
заданной в поле В.
TRANSFER - изменяет движение транзакта в модели.
Формат: TRAN[SFER] А,В,С,D
А - режим передачи (пробел,.,ALL,BOTH,FN,P,PICK,SBR,SIM);
В - следующий блок;
С - следующий блок;
D - значение индекса, используемое в режиме ALL.
Транзакт направляется в блок, определяемый в соответствии с режимом передачи,
указанным в
поле А. Режимы передачи поля А:
Пробел - транзакт передается в блок, определяемый полем;
"." - статистический режим; в поле А указано десятичное число, выражающее вероятность
перехода в блок С; его дополнение до единицы указывает вероятность перехода в блок В;
17
ALL - транзакт последовательно пытается перейти в блоки, определяемые значениями В,
B+D, B+2D.....C;
BOTH - транзакт последовательно пытается войти в блок В, затем в блок С, до тех пор, пока
один из них станет доступным;
FN - функциональный режим: поле В является номером функции; следующий блок
определяется суммой значения этой функции поля С;
Р - параметрический режим: поле В является номером параметра; следующий блок
определяется суммой значения этого параметра и поля С;
PICK - выборочный режим: блок выбирается с равной вероятностью из блоков с номерами:
В, B+l,..., С.
SBR - режим перехода к подпрограмме: номер текущего блока помещается в параметр,
указанный в поле С, а транзакт передается в блок, номер которого указан в поле В.
SIM
одновременный
-
режим:
проверяется
одновременное
выполнение
условий
беспрепятственного движения транзактов в задерживающих блоках. Если условие
выполняется, транзакт передается в следующий блок, в противном случае транзакт
переходит на блок С;
QUEUE - помещает транзакт в конец очереди.
Формат: QUEU[E] А,В
А - номер очереди (числовое или символьное имя очереди);
В - число добавляемых к очереди элементов (по умолчанию 1).
Увеличивает текущее содержимое очереди, указанной в поле А, на значение в поле
В. Если поле В не определено, увеличивает содержимое очереди на единицу. Транзакт может
находиться в двух различных очередях одновременно.
DEPART - удаляет транзакт из очереди.
Формат: DEPA[RT] А,В
А - номер (имя) очереди;
В - число удаляемых из очереди элементов.
Удаляет текущий транзакт из очереди, указанной в поле А, и уменьшает содержимое
очереди на значение поля В. Транзакт может находиться одновременно в двух различных
очередях.
SEIZE - занимает устройство.
Формат: SEIZ[E] А
18
А - номер устройства.
Транзакт пытается занять устройство, определенное полем А. Если прервано,
транзакт задерживается в предыдущем блоке.
ADVANCE (ЗАДЕРЖАТЬ) ADVANCE - задерживает транзакт.
Формат: ADVA[NCE] A,B
А - среднее время задержки (константа, если В не задано);
В - разброс относительно среднего значения, должен быть меньше или равен А.
Блок
ADVANCE
моделирует
временною
задержку
транзакта
в
течение
определенного интервала. Значение задержки по умолчанию равно нулю. Если поле В не
является FN$, т время задержки является случайным числом, распределенным
равномерно на интервале от (; + В) до (А - В). Если поле В является функцией FN$, то
время задержки определяете произведением поля А на значение функции в поле В.
Функция может быть использована для задания времени задержки с определенным
средним значением и отклонением, зависящим от А.
RELEASE - освобождает устройство.
Формат: RELE[ASE] А
А - номер устройства(числовое или символьное имя освобождаемого устройства) .
Устройство, указанное в поле А, освобождается и становится доступным для других
транзактов. Освобождать устройство должен тот же транзакт, который его занимал.
TERMINATE - удаляет транзакт.
Формат: TERMI[NATE] A
А - величина, вычитаемая из содержимого счетчика завершений(поле А карты START).
Транзакт удаляется из модели и поступает в пассивный буфер. Если в поле А пробел,
воздействия на счетчик завершений не происходит, в противном случае его значение
уменьшается на величину, указанную в поле А.
START - управление процессом моделирования.
Формат: STAR[T] А,В,С,D
А - счетчик числа завершений;
В - подавление вывода на печать (В = NP);
С - промежуточный вывод статистики; 0 - распечатка списков.
Поле А определяет счетчик завершений при прогоне модели. При входе транзакта в
блок TERMINATE с ненулевым значением поля А, содержимое поля А блока TERMINATE
19
вычитается из остаточного значения счетчика - поля А карты START.
Прогон завершается, когда значение счетчика достигнет нуля. Указатель NP в поле В
отменяет вывод стандартного отчета GPSS. Величина , указанная в поле С, определяет число
завершений, по достижении которого выдается промежуточный отчет. Таким образом можно
получать статистические данные в определенных интервалах моделирования. Если поле D
содержит 1, полученный отчет будет содержать списки текущих и будущих событий, а также
списки пользователя.
Скачать