46000 (665307), страница 3

Файл №665307 46000 (Моделирование на GPSS) 3 страница46000 (665307) страница 32016-07-31СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

событий просматривается с начала. Использование такой возможности

будет рассмотрено ниже.

Для удаления транзактов из модели служит блок TERMINATE (за-

вершить), имеющий следующий формат:

имя TERMINATE A

Значение поля A указывает, на сколько единиц уменьшается со-

держимое так называемого счетчика завершений при входе транзакта в

данный блок TERMINATE. Если поле A не определено, то оно считается

равным 0, и транзакты, проходящие через такой блок, не уменьшают

содержимого счетчика завершений.

Начальное значение счетчика завершений устанавливается управ-

ляющим оператором START (начать), предназначенным для запуска про-

гона модели. Поле A этого оператора содержит начальное значение

счетчика завершений (см. разд. 3). Прогон модели заканчивается,

когда содержимое счетчика завершений обращается в 0. Таким образом,

в модели должен быть хотя бы один блок TERMINATE с непустым полем

A, иначе процесс моделирования никогда не завершится.

Текущее значение счетчика завершений доступно программисту че-

рез системный СЧА TG1.

Участок блок-схемы модели, связанный с парой блоков

GENERATE-ТERMINATE, называется сегментом. Простые модели могут

состоять из одного сегмента, в сложных моделях может быть несколько

сегментов.

Например, простейший сегмент модели, состоящий всего из двух

блоков GENERATE и TERMINATE и приведенный на рис. 1, в совокупности

с управлящим оператором START моделирует процесс создания случайно-

го потока транзактов, поступащих в модель со средним интервалом в

100 единиц модельного времени, и уничтожения этих транзактов. На-

чальное значение счетчика завершений равно 1000. Каждый транзакт,

проходящий через блок TERMINATE, вычитает из счетчика единицу, и

таким образом моделирование завершится, когда тысячный по счету

транзакт войдет в блок TERMINATE. При этом точное значение таймера

в момент завершения прогона непредсказуемо. Следовательно, в приве-

денном примере продолжительность прогона устанавливается не по мо-

дельному времени, а по количеству транзактов, прошедших через мо-

дель.

GENERATE 100,40

TERMINATE 1

START 1000

Если необходимо управлять продолжительностью прогона по мо-

дельному времени, то в модели используется специальный сегмент, на-

зываемый сегментом таймера.

GENERATE 100,40

TERMINATE

GENERATE 100000

TERMINATE 1

START 1

Например, в модели из двух сегментов, приведенной на рис. 2,

первый (основной) сегмент выполняет те же функции, что и в предыду-

щем примере. Заметим, однако, что поле A блока TERMINATE в первом

сегменте пусто, т.е. уничтожаемые транзакты не уменьшают содержимо-

го счетчика завершений. Во втором сегменте блок GENERATE создаст

первый транзакт в момент модельного времени, равный 100000. Но этот

транзакт окажется и последним в данном сегменте, так как, войдя в

блок TERMINATE, он обратит в 0 содержимое счетчика завершений,

установленное оператором START равным 1. Таким образом, в этой мо-

дели гарантируется завершение прогона в определенный момент модель-

ного времени, а точное количество транзактов, прошедших через мо-

дель, непредсказуемо.

В приведенных примерах транзакты, входящие в модель через блок

GENERATE, в тот же момент модельного времени уничтожались в блоке

TERMINATE. В моделях систем массового обслуживания заявки обслужи-

ваются приборами (каналами) СМО в течение некоторого промежутка

времени прежде, чем покинуть СМО. Для моделирования такого обслужи-

вания, т.е. для задержки транзактов на определенный отрезок модель-

ного времени, служит блок ADVANCE (задержать), имеющий следующий

формат:

имя ADVANCE A,B

Операнды в полях A и B имеют тот же смысл, что и в соот-

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

входящие в блок ADVANCE, переводятся из списка текущих событий в

список будущих событий, а по истечении вычисленного времени задерж-

ки возвращаются назад, в список текущих событий, и их продвижение

по блок-схеме продолжается. Если вычисленное время задержки равно

0, то транзакт в тот же момент модельного времени переходит в сле-

дующий блок, оставаясь в списке текущих событий.

Например, в сегменте, приведенном на рис. 3, транзакты, посту-

пающие в модель из блока GENERATE через случайные интервалы време-

ни, имеющие равномерное распределение на отрезке [60;140], попадают

в блок ADVANCE. Здесь определяется случайное время задержки тран-

закта, имеющее равномерное распределение на отрезке [30;130], и

транзакт переводится в список будущих событий. По истечении времени

задержки транзакт возвращается в список текущих событий и входит в

блок TERMINATE, где уничтожается. Заметим, что в списке будущих со-

бытий, а значит и в блоке ADVANCE может одновременно находиться

произвольное количество транзактов.

GENERATE 100,40

ADVANCE 80,50

TERMINATE 1

В рассмотренных выше примерах случайные интервалы времени под-

чинялись равномерному закону распределения вероятностей. Для полу-

чения случайных величин с другими распределениями в GPSS/PC исполь-

зуются вычислительные объекты: переменные и функции.

Как известно, произвольная случайная величина связана со слу-

чайной величиной R, имеющей равномерное распределение на отрезке

[0;1], через свою обратную функцию распределения. Для некоторых

случайных величин уравнение связи имеет явное решение, и значение

случайной величины с заданным распределением вероятностей может

быть вычислено через R по формуле. Так, например, значение случай-

ной величины E с показательным (экспоненциальным) распределением с

параметром d вычисляется по формуле:

E= -(1/d) * ln(R)

Напомним, что параметр d имеет смысл величины, обратной математи-

ческому ожиданию E, а, следовательно, 1/d - математическое ожидание

(среднее значение) случайной величины E.

Для получения случайной величины R с равномерным распределени-

ем на отрезке [0;1] в GPSS/PC имеются встроенные генераторы случай-

ных чисел. Для получения случайного числа путем обращения к такому

генератору достаточно записать системный СЧА RN с номером генерато-

ра, например RN1. Правда, встроенные генераторы случайных чисел

GPSS/PC дают числа не на отрезке [0;1], а целые случайные числа,

равномерно распределенные от 0 до 999, но их нетрудно привести к

указанному отрезку делением на 1000.

Проще всего описанные вычисления в GPSS/PC выполняются с

использованием арифметических переменных. Они могут быть целыми и

действительными. Целые переменные определяются перед началом моде-

лирования с помощью оператора определения VARIABLE

(переменная), имеющего следующий формат:

имя VARIABLE выражение

Здесь имя - имя переменной, используемое для ссылок на нее, а

выражение - арифметическое выражение, определяющее переменную.

Арифметическое выражение представляет собой комбинацию операндов,

в качестве которых могут выступать константы, СЧА и функции, зна-

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

что знаком операции умножения в GPSS/PC является символ # (номер).

Результат каждой промежуточной операции в целых переменных преобра-

зуется к целому типу путем отбрасывания дробной части, и, таким

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

Действительные переменные 0определяются перед началом модели-

рования с помощью оператора определения FVARIABLE, имеющего тот же

формат, что и оператор VARIABLE. Отличие действительных переменных

от целых заключается в том, что в действительных переменных все

промежуточные операции выполняются с сохранением дробной части

чисел, и лишь окончательный результат приводится к целому типу отб-

расыванием дробной части.

Арифметические переменные обоих типов имеют единственный СЧА с

названием V, значением которого является результат вычисления ариф-

метического выражения, определяющего переменную. Вычисление выраже-

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

СЧА V с именем переменной.

Действительные переменные могут быть использованы для получе-

ния случайных интервалов времени с показательным законом распреде-

ления. Пусть в модели из примера на рис. 3 распределения времени

поступления транзактов и времени задержки должны иметь показатель-

ный закон. Это может быть сделано так, как показано на рис. 4.

TARR FVARIABLE -100#LOG((1+RN1)/1000)

TSRV FVARIABLE -80#LOG((1+RN1)/1000)

GENERATE V$TARR

ADVANCE V$TSRV

TERMINATE 1

Рис. 4

Переменная с именем TARR задает выражение для вычисления ин-

тервала поступления со средним значением 100, вторая переменная с

именем TSRV - для вычисления времени задержки со средним значением

80. Блоки GENERATE и ADVANCE содержат в поле A ссылки на соот-

ветствующие переменные, при этом поле B не используется, так как в

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

Большинство случайных величин не может быть получено через

случайную величину R с помощью арифметического выражения. Кроме то-

го, такой способ является достаточно трудоемким, так как требует

обращения к математическим функциям, вычисление которых требует

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

использование вычислительных объектов GPSS/PC типа функция.

Функции используются для вычисления величин, заданных таблич-

ными зависимостями. Каждая функция определяется перед началом моде-

лирования с помощью оператора определения FUNCTION (функция), имею-

щего следующий формат:

имя FUNCTION A,B

Здесь имя - имя функции, используемое для ссылок на нее; A

стандартный числовой атрибут, являющийся аргументом функции; B -

тип функции и число точек таблицы, определяющей функцию.

Существует пять типов функций. Рассмотрим вначале непрерывные

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

в определении непрерывной числовой функции, таблица которой соде-

ржит 24 точки, поле B должно иметь значение C24.

При использовании непрерывной функции для генерирования слу-

чайных чисел ее аргументом должен быть один из генераторов случай-

ных чисел RNj. Так, оператор для определения функции показательного

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

EXP FUNCTION RN1,C24

Особенностью использования встроенных генераторов случайных чисел

RNj в качестве аргументов функций является то, что их значения в

этом контексте интерпретируются как дробные числа от 0 до 0,999999.

Таблица с координатами точек функции располагается в строках,

следующих непосредственно за оператором FUNCTION. Эти строки не

должны иметь поля нумерации. Каждая точка таблицы задается парой Xi

(значение аргумента) и Yi (значение функции), отделяемых друг от

друга запятой. Пары координат отделяются друг от друга символом "/"

и располагаются на произвольном количестве строк. Последователь-

ность значений аргумента Xi должна быть строго возрастающей.

Как уже отмечалось, при использовании функции в поле B блоков

GENERATE и ADVANCE вычисление интервала поступления или времени за-

держки производится путем умножения операнда A на вычисленное зна-

чение функции. Отсюда следует, что функция, используемая для гене-

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

описывать зависимость y=-ln(x), представленную в табличном виде.

Характеристики

Тип файла
Документ
Размер
468,14 Kb
Тип материала
Учебное заведение
Неизвестно

Список файлов реферата

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6485
Авторов
на СтудИзбе
303
Средний доход
с одного платного файла
Обучение Подробнее