Главная страница
Навигация по странице:

  • 1. Блок SPLIT

  • . Блок GATHER [gæðə]

  • 5. Блок MATCH

  • Ответы к экзамену по оптимизации бизнес процессов в системе gpss. Задачи оптимизации бп


    Скачать 0.55 Mb.
    НазваниеЗадачи оптимизации бп
    АнкорОтветы к экзамену по оптимизации бизнес процессов в системе gpss
    Дата14.06.2022
    Размер0.55 Mb.
    Формат файлаdocx
    Имя файлаОтветы к экзамену по оптимизации бизнес процессов в системе gpss.docx
    ТипВопросы к экзамену
    #589563
    страница3 из 8
    1   2   3   4   5   6   7   8

    Нормальное распределение интенсивности


    Вид функции плотности нормального распределения (Гаусса-Лапласса)



    Зависит от двух параметров: математическое ожидание и стандартное отклонение.

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




    1. Назначение системы GPSS


    Система моделирования GPSS (General Purpose Simulation System Система Моделирования Общего Назначения) является универсальной системой для имитационного моделирования любых систем, в том числе бизнес-процессов.

    Процессы в этой системе рассматриваются с другой точки зрения, чем в системах типа ADONIS. Если в последних главным объектом моделирования является действие, работа, а исполнители, документы и другие объекты, только вспомогательными объектами, то в GPSS главными объектами являются исполнители и материальные или информационные сущности, которые участвуют в действиях.

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

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

    Система GPSS является одной из самых старых систем моделирования и использовалась еще до появления персональных компьютеров. В связи с этим многие приемы описания модели носят программистский характер и для моделирования в GPSS необходимо придерживаться правил специального языка для описания модели.

    При использовании системы GPSS для ссылок на числа, блоки или объекты применяются имена. Имя представляет собой алфавитно-цифровую последовательность, длиной до 20 символов, начинающуюся с буквы. Допустимо применение символов только латинского алфавита. В состав имени могут включаться также символы подчеркивания "_". При трансляции GPSS присваивает именам уникальные номера, начиная со стартового номера 10000.
    1. Моделирование последовательных действий БП


    Пусть все действия бизнес-процесса связаны отношением «конец-начало» последовательно одна за другой. Пример такой последовательности показан на рис. 3.1.


    Рисунок 3.1 – Пример последовательного выполнения работ
    Для последовательного выполнения работ с постоянным временем выполнения легко вычислить все временные характеристики, такие как суммарное время выполнения всех работ, суммарное время ожидания, суммарное время простоя, суммарное время задержки. Также легко вычисляется общая стоимость одной реализации бизнес-процесса. Для проектов со случайным временем выполнения требуются более сложные расчеты или имитационное моделирование.
    1. Моделирование параллельных действий БП


    Параллельными называются действия, которые выполняются в одно и тоже время. На рис. 1 показан пример графика Гантта одного экземпляра простейшего бизнес-процесса, состоящего из двух параллельно выполняемых действий.
    Моделирование параллельных действий требует соблюдения определенных правил. Все действия, выполняемые параллельно, должны иметь вложенность начала и конца параллельности. Нельзя войти в выполнение одного из параллельных действий другим способом кроме, как с помощью оператора параллельности и нельзя выйти из системы параллельных действий другим способом, кроме оператора окончания параллельности. Другими словами, операторы параллельности должны быть вложены друг в друга как матрешки

    1. Блок SPLIT

    Блок SPLIT предназначен для создания копий транзактов.
    (Далее пояснение, что такое транзакты и как они движутся по модели.)
    Блок имеет следующий формат:
    SPLIT [,[][,]]
    В синтаксической схеме блока квадратные скобки показывают, что данного элемента может не быть. В данном случае может быть только один параметр, два или три параметра.
    (Далее пояснение о позиционном методе задания параметров.)
    Входящий в блок транзакт называется исходным или порождающим.

    Рассмотрим параметры блока.

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

    Если вычисленное значение аргумента поля А равно нулю, то блок SPLIT

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

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

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

    Если, например, задан параметр С равный числу 3. И пусть третий параметр исходного транзакта имеет значение Х. Тогда первая копия транзакта будет иметь значение Х+1, вторая копия - Х+2, третья копия - Х+3 и т.д.

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

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

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

    интерпретатором в список. По связям
    внутри семейства транзактов нельзя установить, какой из транзактов семейства является порождающим. Если копия транзакта входит в блок SPLIT, то вторичная копия становится членом того же семейства, что и первичная копия. Таким образом, каждый транзакт является членом одного и только одного семейства. Семейство может состоять из произвольного числа транзактов. Когда транзакт уничтожается, интерпретатор автоматически исключает его из членов соответствующего семейства. Таким образом, семейство существует до тех пор, пока из модели не удаляется последний из его членов. При каждом удалении транзакта связи между ними корректируются так, чтобы транзакты данного семейства по-прежнему образовывали замкнутый список.
    В модели одновременно может существовать произвольное число семейств, оно все время меняется, поскольку каждый генерируемый блоком GENERATE транзакт создает новое семейство.


    1. Блок ASSEMBLE [ə'sembl]



    Блок ASSEMBLE объединяет заданное число транзактов, принадлежащих к одному семейству, в один транзакт (т.е. осуществляет сборку заданного числа транзактов). После сборки из блока ASSEMBLE выходит только один транзакт, который переходит в следующий по номеру блок. В одном и том же блоке ASSEMBLE возможна одновременная сборка транзактов нескольких семейств.
    Блок ASSEMBLE имеет следующий формат:
    ASSEMBLE
    Поле А задает число транзактов, участвующих в сборке, то есть первоначальное значение специального счетчика.
    Когда транзакт входит в блок ASSEMBLE,
    интерпретатор просматривает семейство, к которому принадлежит этот транзакт, и проверяет, есть ли другой транзакт из того же семейства в данном блоке ASSEMBLE.

    Если при входе транзакта в блок ASSEMBLE, значение счетчика стало равным нулю (т.е. нужно было "объединить" только один транзакт), транзакт немедленно покидает блок ASSEMBLE и переходит в следующий по номеру блок.

    Если результат отрицательный (вычисленное значение аргумента поля А нулевое или отрицательное), происходит ошибка выполнения. Обычно значение счетчика сборки больше единицы, поэтому при входе в блок ASSEMBLE исходного транзакта результат вычитания единицы из счетчика положительный. Этот результат (новое значение счетчика сборки) сохраняется, а исходный транзакт исключается из списка текущих событий и переходит в состояние синхронизации. Этот транзакт не будет возвращен в список текущих событий до тех пор, пока в блок ASSEMBLE не войдет заданное число транзактов, и счетчик сборки не станет равным нулю.

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

    4. Блок GATHER ['gæðə]
    Блок GATHER накапливает заданное число транзактов, принадлежащих к одному семейству. Ни один из накапливаемых транзактов не уничтожается. Когда в блоке GATHER накопится заданное число транзактов, все эти транзакты одновременно попытаются войти в следующий по номеру блок. Транзакт никогда не задерживаются на входе блока GATHER. Одновременно в одном блоке GATHER может происходить накопление транзактов нескольких семейств.

    Блок GATHER имеет следующий формат записи:
    GATHER
    Поле А задает число транзактов, принадлежащих к одному семейству, которое нужно накопить.
    При входе транзакта в блок GATHER, интерпретатор просматривает семейство, к
    которому он принадлежит, и проверяет, находится ли в данном блоке GATHER другой транзакт из того же семейства.

    Если вычисленное значение счетчика накапливания нулевое или отрицательное, происходит ошибка выполнения. Начальное значение счетчика должно быть больше или равно единице. Если в блок GATHER не вошло заданное число транзактов, транзакты, находящиеся в блоке, остаются в состоянии синхронизации.

    При входе первого из накапливаемых транзактов в блок GATHER выполняются операции, аналогичные операциям, выполняемым при входе исходного транзакта в блок ASSEMBLE. Счетчик числа накапливаемых транзактов, начальное значение которого задается полем А блока GATHER, уменьшается на единицу.

    5. Блок MATCH
    Блок MATCH используется для синхронизации движения двух транзактов, принадлежащих к одному семейству, без удаления этих транзактов из модели.
    Блок MATCH имеет следующий формат:
    MATCH
    Поле А задает метку другого блока MATCH, называемого "сопряженным блоком MATCH". Если такого блока нет, происходит останов по ошибке.
    Блоки MATCH не объединяют синхронизируемые транзакты. Синхронизация осуществляется путем подбора пар транзактов из одного семейства и задержки этих транзактов до тех пор, пока оба транзакта из одной пары не поступят в заданные точки модели. Транзакты никогда не задерживаются в блоке MATCH. Транзакты, для которых выполнилось условие синхронизации, переходят к следующему по номеру блоку. В одной паре блоков MATCH могут одновременно находиться в состоянии синхронизации пары транзактов из различных семейств. Возможна также одновременная синхронизации пар транзактов из одного семейства в нескольких блоках MATCH.

    Допускается использование блока MATCH в качестве сопряженного самому себе. В этом случае блок MATCH действует как блок GATHER с
    начальным значением счетчика, равным 2. При входе транзакта в блок MATCH интерпретатор определяет номер блока, заданного в поле А, и затем просматривает семейство, к которому принадлежит вошедший в блок MATCH транзакт.

    Если для транзакта, вошедшего в блок MATCH, нет транзакта из того же семейства, находящегося в состоянии синхронизации в сопряженном блоке MATCH, то этот транзакт удаляется из списка текущих событий и помещается в список синхронизации. Это транзакт не возвращается в список текущих событий до тех пор, пока другой транзакт из этого же семейства не войдет в сопряженный блок MATCH.

    Если в сопряженном блоке MATCH есть транзакт из того же семейства и оно находится в состоянии синхронизации, то индикатор синхронизации устанавливается в "0". Затем транзакт, который находился в сопряженном блоке MATCH, возвращается в список текущих событий, где он становится последним среди транзактов с таким же значением приоритета. Тем временем интерпретатор продолжает обработку второго транзакта данной пары, вошедшего в рассматриваемый блок MATCH. Это транзакт обрабатывается так, как если бы он проходил через блок ADVANCE с нулевой задержкой.

    Может случиться так, что транзакт, для которого выполнилось условие синхронизации, не может сразу выйти из блока MATCH и войти в следующий по номеру блок. Несмотря на то, что транзакт остается в блоке MATCH, он не может быть синхронизирован с другим транзактом, поскольку его индикатор синхронизации установлен в "0". Счетчик числа транзактов в блоке MATCH (Wj) уменьшается на единицу при выходе из блока каждого транзакта, для которого выполнилось условие синхронизации.
    1. 1   2   3   4   5   6   7   8


    написать администратору сайта