МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Моделирование на GPSS

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

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

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

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

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

    названием 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), представленную в табличном виде.

    Оператор FUNCTION с такой таблицей, содержащей 24 точки для обеспе-

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

    EXP FUNCTION RN1,C24

    0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915

    .7,1.2/.75,1.38/.8,1.6/.84,1.85/.88,2.12/.9,2.3

    .92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9

    .99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8

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

    Сначала определяется интервал (Xi;Xi+1), на котором находится теку-

    щее значение СЧА-аргумента (в нашем примере - сгенерированное зна-

    чение RN1). Затем на этом интервале выполняется линейная интерполя-

    ция с использованием соответствующих значений Yi и Yi+1. Результат

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

    в качестве значения функции. Если функция служит операндом B блоков

    GENERATE или ADVANCE, то усечение результата производится только

    после его умножения на значение операнда A.

    Использование функций для получения случайных чисел с заданным

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

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

    (несколько машинных операций на выполнение линейной интерполяции).

    Чтобы к погрешности аппроксимации не добавлять слишком большую пог-

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

    распределений должно быть достаточно большим (не менее 50). Эта ре-

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

    Функции всех типов имеют единственный СЧА с названием FN, зна-

    чением которого является вычисленное значение функции. Вычисление

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

    на СЧА FN с именем функции.

    Заменим в примере на рис. 4 переменные TARR и TSRV на функцию

    EXP (рис. 5).

    Поскольку в обеих моделях используется один и тот же генератор

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

    GENERATE и ADVANCE, должны получиться весьма близкими, а может быть

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

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

    должна стать заметной.

    EXP FUNCTION RN1,C24

    0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915

    .7,1.2/.75,1.38/.8,1.6/.84,1.85/.88,2.12/.9,2.3

    .92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9

    .99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8

    GENERATE 100,FN$EXP

    ADVANCE 80,FN$EXP

    TERMINATE 1

    Рис. 5

    Особенностью непрерывных функций является то, что они принима-

    ют "непрерывные" (но только целочисленные) значения в диапазоне от

    Y1 до Yn , где n - количество точек таблицы. В отличие от них диск-

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

    B оператора определения функции, принимают только отдельные

    (дискретные) значения, заданные координатами Yi в строках, следую-

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

    функции текущее значение СЧА-аргумента, указанного в поле A

    оператора FUNCTION, сравнивается по условию <= последовательно со

    всеми значениями упорядоченных по возрастанию координат Xi до

    выполнения этого условия при некотором i. Значением функции ста-

    новится целая часть соответствующего значения Yi.

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

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

    (1,2,3,...,n), то такую дискретную функцию с целью экономии памяти

    и машинного времени удобно определить как списковую числовую функ-

    цию (тип L).

    Пусть в модели на рис. 5 заявки, моделируемые транзактами, с

    равной вероятностью 1/3 должны относиться к одному из трех классов

    (типов) 1,2 и 3, а среднее время задержки обслуживания заявок каж-

    дого типа должно составлять соответственно 70, 80 и 90 единиц мо-

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

    рис. 6.

    В блоке ASSIGN в параметр TYPE каждого сгенерированного тран-

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

    CLASS. Аргументом функции является генератор случайных чисел RN1, а

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

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

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

    Поле A блока ADVANCE содержит ссылку на списковую функцию

    MEAN, аргументом которой служит параметр TYPE входящих в блок тран-

    зактов. В зависимости от значений этого параметра (типа заявки)

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

    функции MEAN: 70, 80 или 90 единиц.

    EXP FUNCTION RN1,C24

    0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915

    .7,1.2/.75,1.38/.8,1.6/.84,1.85/.88,2.12/.9,2.3

    .92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9

    .99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8

    CLASS FUNCTION RN1,D3

    .333,1/.667,2/1,3

    MEAN FUNCTION P$TYPE,L3

    1,70/2,80/3,90

    GENERATE 100,FN$EXP

    ASSIGN TYPE,FN$CLASS

    ADVANCE FN$MEAN,FN$EXP

    TERMINATE 1

    Рис. 6

    Следует отметить, что в данном примере можно было бы не

    использовать параметр TYPE и обойтись одной дискретной функцией,

    возвращающей с равной вероятностью одно из трех возможных значений

    среднего времени задержки. Однако использование параметров дает не-

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

    же.

    Транзакты могут входить в модель не только через блок

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

    блоке SPLIT (расщепить), имеющем следующий формат:

    имя SPLIT A,B,C

    В поле A задается число создаваемых копий исходного транзакта

    (родителя), входящего в блок SPLIT. После выхода из блока SPLIT

    транзакт-родитель направляется в следующий блок, а все транзак-

    ты-потомки поступают в блок, указанный в поле B. Если поле B пусто,

    то все копии поступают в следующий блок.

    Транзакт-родитель и его потомки, выходящие из блока SPLIT, мо-

    гут быть пронумерованы в параметре, имя или номер которого указаны

    в поле C. Если у транзакта-родителя значение этого параметра при

    входе в блок SPLIT было равно k, то при выходе из блока оно станет

    равным k+1, а значения этого параметра у транзактов-потомков ока-

    жутся равными k+2, k+3 и т.д.

    Например, блок

    SPLIT 5,MET1,NUM

    создает пять копий исходного транзакта и направляет их в блок с

    именем MET1. Транзакт-родитель и потомки нумеруются в параметре с

    именем NUM. Если, например, перед входом в блок значение этого па-

    раметра у транзакта-родителя было равно 0, то при выходе из блока

    оно станет равным 1, а у транзактов-потомков значения параметра NUM

    будут равны 2, 3, 4, 5 и 6.

    2.2. Блоки, связанные с аппаратными объектами

    Все примеры моделей, рассматривавшиеся выше, пока еще не явля-

    ются моделями систем массового обслуживания, так как в них не учте-

    на основная особенность СМО: конкуренция заявок на использование

    некоторых ограниченных ресурсов системы. Все транзакты, входящие в

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

    "обслуживания" в блоке ADVANCE, который никогда не "отказывает"

    транзактам во входе, сколько бы транзактов в нем не находилось.

    Для моделирования ограниченных ресурсов СМО в модели должны

    присутствовать аппаратные объекты: одноканальные или многоканальные

    устройства. Одноканальные устройства создаются в текущей модели при

    использовании блоков SEIZE (занять) и RELEASE (освободить), име-

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

    имя SEIZE A

    имя RELEASE A

    В поле A указывается номер или имя устройства. Если транзакт

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

    занятым и остаётся в этом состоянии до тех пор, пока этот же тран-

    закт не пройдёт соответствующий блок RELEASE, освобождая уст-

    ройство. Если устройство, указанное в поле A блока SEIZE, уже заня-

    то каким-либо транзактом, то никакой другой транзакт не может войти

    в этот блок и остаётся в предыдущем блоке. Транзакты, задержанные

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

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

    тетов и очередности поступления.

    Каждое устройство имеет следующие СЧА: F - состояние уст-

    ройства (0 - свободно,1 - занято); FR - коэффициент использования в

    долях 1000; FC - число занятий устройства; FT - целая часть средне-

    го времени занятия устройства.

    Воспользуемся блоками SEIZE и RELEASE для моделирования одно-

    канальной СМО с ожиданием (рис. 7). Теперь блок ADVANCE находится

    между блоками SEIZE и RELEASE, моделирующими занятие и освобождение

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

    один транзакт. Транзакты, выходящие из блока GENERATE в моменты за-

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

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

    EXP FUNCTION RN1,C24

    0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915

    .7,1.2/.75,1.38/.8,1.6/.84,1.85/.88,2.12/.9,2.3

    .92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9

    .99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8

    GENERATE 100,FN$EXP

    SEIZE SYSTEM

    ADVANCE 80,FN$EXP

    RELEASE SYSTEM

    TERMINATE 1

    Рис. 7

    Для моделирования захвата (прерывания) одноканального уст-

    ройства вместо блоков SEIZE и RELEASE используются соответственно

    блоки PREEMPT (захватить) и RETURN (вернуть). Блок PREEMPT имеет

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

    имя PREEMPT A,B,C,D,E

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

    захвату. В поле B кодируется условие захвата. Если это поле пусто,

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

    захватчиком. Если же в поле B записан операнд PR, то захват возни-

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

    обслуживаемого транзакта.

    Поля C, D и E определяют поведение транзактов, обслуживание

    которых было прервано. Поле C указывает имя блока, в который будет

    направлен прерванный транзакт. В поле D может быть указан номер или

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

    оставшееся этому транзакту до завершения обслуживания на уст-

    ройстве. При отсутствии операнда в поле E прерванный транзакт сох-

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

    окончании захвата. Если же в поле E указан операнд RE, то транзакт

    теряет такое право.

    Блок RETURN имеет единственный операнд A, содержащий имя или

    номер устройства, подлежащего освобождению от захвата.

    Блоки PREEMPT и RETURN могут быть использованы для моделирова-

    ния СМО с абсолютными приоритетами. В простейших случаях, при одном

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

    A. При этом прерванный транзакт переводится симулятором из списка

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

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

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

    продолжения обслуживания.

    Для создания в модели многоканальных устройств (МКУ) они долж-

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

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

    имя STORAGE A

    Здесь имя - имя МКУ, используемое для ссылок на него; A – емко-

    cть (количество каналов обслуживания) МКУ, задаваемая константой.

    Для занятия и освобождения каналов обслуживания МКУ использу-

    ется пара блоков ENTER (войти) и LEAVE (покинуть), имеющих следую-

    щий формат:

    имя ENTER A,B

    имя LEAVE A,B

    В поле A указывается номер или имя МКУ, в поле B число кана-

    лов МКУ, занимаемых при входе в блок ENTER или освобождаемых при

    входе в блок LEAVE. Обычно поле B пусто, и в этом случае по умолча-

    нию занимается или освобождается один канал.

    Страницы: 1, 2, 3, 4, 5


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.