Описание GPSS-программы работы мастерской.
После разработки блок-диаграммы, описанной в пункте 5.1, разработана программа. Кроме команд, представленных в схеме алгоритма, в программу были включены обязательные управляющие карты: SIMULATE, START, END. Если вы верите в судьбу то можете погадать себе на картах тут: http://101privorot.ru/samoe-prostoe-i-tochnoe-gadanie-na-kartah-na-parnya.html
В начале программы две строки описывают таблицы. Первая таблица выводит интервалы прибытия клиентов из 1-го параметра, вторая Таблица выводит время обслуживания из 4-го параметра транзакта.
Карта SIMULATE указывает, что нужно произвести моделирование. Блок GENERATE вызывает появление транзактов. Карта VARIABLE даст описание переменной и присваиваемого ей значения. В программе используются переменные 1 и 2. Их номера задаются в поле метки.
В вычисляемом выражении, результат которого присваивается переменной, используется счетчик текущего времени С$1, из которого вычитается значение ячейки 1, в которой хранится время прихода предыдущего транзакта. Получаемый интервал времени между приходом двух клиентов мастерской в блоке ASSIGN записывается в первый параметр транзакта. Блок SAVЕVALUE сохраняет в ячейке 1 значение счетчика времени прихода клиента, а блок TABULATE производит регистрацию заданного значения в таблице.
Блок QUEUE производит увеличение количества транзактов в очереди. Придя в блок SEIZE клиент пытается занять прибор с номером 1, т.е. мастера по обслуживанию клиентов. Если мастер занят, то транзакт - клиент будет ожидать его освобождения перед блоком SEIZE. Если мастер свободен, то он станет занят и транзакт пройдет к следующему блоку DEPART, что обеспечивает освобождение 1 единицы в очереди 1.
Блок ADVANCE обеспечивает задержку клиента на интервал 15 с разбросом 5. В блоке ASSIGN запоминается время конца обслуживания в параметре 3. Блок RELEASE освобождает прибор с номером I, т.е. мастера, для занятия следующим клиентом.
Карта VARIABLE вычисляет разность моментов начала и конца обслуживания. В блоке ASSIGN запоминается вычисленный интервал в параметре 4. Блок TABULATE производит регистрацию полученного значения в таблице 2. Блок TERMINATE уничтожает транзакт.
Второй сегмент программы - таймер - состоит из двух блоков и обеспечивает отсчет времени моделирования. Блок GENERATE выдает транзакты через 60 единиц модельного времени, что означает 1 час моделирования. Блок TERMINATE уничтожает транзакт и вычитает 1 из счетчика запуска. Через 8 часов счетчик запуска станет иметь нулевое значение и моделирование закончится. Значение счетчика запуска, равное 8, задается управляющей картой START.
Опубликовал vovan666
November 03 2013 08:54:35 ·
0 Комментариев ·
3573 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.