Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Моделирование на GPSS

я в  строках,
       следующих  непосредственно  за  оператором 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,  освобождая у
12345След.
скачать работу

Моделирование на GPSS

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ