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

  • Понятие транзакта в имитационной модели

  • Понятие события в процессе моделирования

  • Классификация средств имитационного моделирования

  • История создания языка GPSS

  • Основные понятия языка GPSS

  • Вход транзактов в модель

  • Выход транзактов из модели

  • Одноканальное обслуживающее устройство (прибор)

  • Реализация задержки во времени ADVANCE

  • Пример модели системы массового обслуживания

  • GENERATE

  • DEPART

  • Command

  • «ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ». Лекция_4._Моделирование_в_системе_имитационного_моделирования_GP. Лекция Моделирование в системе имитационного моделирования gpss понятие имитационной модели смо


    Скачать 0.62 Mb.
    НазваниеЛекция Моделирование в системе имитационного моделирования gpss понятие имитационной модели смо
    Анкор«ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ
    Дата06.02.2023
    Размер0.62 Mb.
    Формат файлаpdf
    Имя файлаЛекция_4._Моделирование_в_системе_имитационного_моделирования_GP.pdf
    ТипЛекция
    #923604

    Лекция 4. Моделирование в системе имитационного моделирования
    GPSS
    Понятие имитационной модели СМО
    Система массового обслуживания - это система, состоящая из обслуживающего прибора, заявки, находящейся на обслуживании, и ожидающих обслуживания заявок.
    Рассмотрим на процедурном уровне модель системы обслуживания с одним прибором и очередью.
    Сначала обсудим способ функционирования этой системы и поставим цель разработать модель на ЭВМ, которая промоделировала бы данную систему. Далее рассмотрим основные вопросы, связанные с созданием такой модели. При моделировании таких систем предполагается, что существует генератор случайных чисел. Считают, что обращение к генератору происходит как к функции, которая выдает значения случайных чисел, равномерно распределенных в интервале от 0,000000 до 0,999999 включительно.
    Так как поток заявок и время обслуживания случайные величины, значит, количество заявок, обслуженных в заданном интервале времени, – случайная величина (рис. 1).
    Рис. 1. Временная диаграмма СМО
    Имитационная
    модель - это формальное описание логики функционирования исследуемой системы во времени, учитывающее наиболее существенные взаимодействия ее элементов и обеспечивающее возможность проведения статистических экспериментов.
    Имитационная модель СМО – это модель, отражающая поведение системы и изменения ее состояния во времени при заданных потоках требований, поступающих на входы системы. Параметры входных потоков требований – внешние параметры СМО. Выходными параметрами являются
    величины, характеризующие свойства системы
    - качество ее функционирования, – например такие, как:

    коэффициенты использования каналов обслуживания;

    средняя длина очередей в системе;

    время нахождения требований в очередях и каналах обслуживания и т.д.
    Имитационное моделирование позволяет исследовать СМО при различных типах входных потоков и разной интенсивности поступления требований в систему, а также различных дисциплинах обслуживания требований.
    Понятие транзакта в имитационной модели
    В любой модели обслуживания происходит перемещение неких элементов отображающих перемещения в моделируемом объекте. Например, финансовый поток, поток материальных ценностей, поток клиентов и тому подобное.
    Такие элементы в имитационном моделировании называются транзактами. В процессе моделирования транзакты входят в модель в определенные моменты времени в соответствии с теми логическими потребностями, которые возникают в модели. Подобным же образом транзакты покидают модель в определенные моменты времени в зависимости от специфики моделирования.
    Транзакт GPSS – это динамический объект, под которым может подразумеваться клиент, требование, вызов или заявка на обслуживание прибором обслуживания.
    Транзакты в GPSS могут создаваться (вводиться), уничтожаться
    (выводиться), задерживаться, размножаться, сливаться, накапливаться и т. д.
    Модель может быть представлены в виде блоков, выполняющих свои, специфические функции. Транзакт перемещается от блока к блоку. Такое продвижение транзакта продолжается до тех пор, пока не произойдет одно из следующих событий:

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

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

    транзакт "пытается" войти в следующий блок в соответствии с предписанной моделью логикой, однако блок "отказывается" принять этот транзакт. Транзакт остается в текущем блоке и продолжает движение лишь после разрешения войти в следующий блок.
    Если возникло одно из перечисленных условий и транзакт остается на месте, то начинается перемещение в модели другого транзакта и, таким образом, выполнение моделирования в системе продолжается.
    Различные события в моделируемых системах происходят в течение некоторого периода времени. Транзакты поступают в систему, а когда
    подходит очередь, поступают на обслуживание. После завершения обслуживания транзакт покидает систему. При моделировании все события должны происходить на фоне модельного времени. Следовательно, интерпретатор GPSS должен автоматически обслуживать таймер модельного времени.
    Когда начинается моделирование, в интерпретаторе планируется приход первого транзакта. После этого таймер модельного времени устанавливается в значение времени, соответствующее приходу первого транзакта. Этот транзакт (а также другие, если они приходят в тот же моменте времени) входит в модель. Далее он (или они, друг за другом) продвигается через все возможные блоки модели, которые ему встречаются.
    Интерпретатор GPSS продвигает далее значение таймера до значения времени, когда происходит следующее (или следующие) событие, которое им запланировано. Эти события, возникающие как следствие продвижения транзактов через блоки, возникают в последующие моменты времени. Когда в этот второй отмеченный таймером момент времени не остается транзакта, который надо перемещать, таймер опять продвигается, и т.д.
    Понятие события в процессе моделирования
    При имитационном моделировании выделяют три представления времени: реальное, модельное (системное) и машинное время.
    Реальное время – это время, в котором происходит функционирование моделируемой системы в реальной жизни, например час, смена, год.
    Модельное (системное) время – это время, в котором происходит функционирование моделируемой системы при проведении имитационного моделирования на ЭВМ. В системном времени выполняются следующие действия:

    осуществляется переход моделируемой системы из одного состояния в другое;

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

    обеспечивается управление ходом имитационных экспериментов;

    обеспечивается параллельная реализация событий в моделируемой системе.
    Машинное время – это время, отражающее затраты времени ЭВМ на проведение имитационного моделирования.
    Система моделирования GPSSW основана на переходе требований
    (транзактов) от блока к блоку (от оператора к оператору) в определенные моменты времени, что называется событием.
    В процессе моделирования системы, таймер модельного времени, безусловно, должен постоянно корректироваться в соответствии с теми основными событиями, которые возникают в реальной системе.

    Событие – это нечто, меняющее статус связанных с ним состояний системы. События соответствуют конкретным изменениям в реальной системе: требование появилось, требование вошло в очередь, требование обслуживается и т.д. При этом прослеживается процесс моделирования с использованием как абсолютного времени (текущего), так и относительного
    (с начала прогона модели, с момента последней модификации или последнего сброса и т.д.).
    События характеризуются условиями (или законом) возникновения и типом, который определяет порядок их обработки (дисциплину обслуживания). Событие по существу представляет собой мгновенное изменение некоторого элемента системы или состояния системы в целом
    Классификация средств имитационного моделирования
    Программные средства имитационного моделирования, которые используются для разработки имитационных моделей, можно разделить на следующие четыре группы:
    1.
    Программирование компьютерной модели с помощью универсальных языков (например, C++, Delphi, Pascal). Динамику системы описывают уравнениями, которые кодируют в программу, затем проводят расчет уравнений и устанавливают связь выходных величин с входными.
    2. Программирование компьютерной модели с применением специализированных языков моделирования (например, GPSS, AnyLogic), написанных на универсальных языках. Динамика системы отображается взаимодействием элементов модели во времени и пространстве.
    Специализированные языки имитационного моделирования компактны и имеют широкий круг приложений, однако требуют специальной подготовки пользователя, который должен написать программу в терминах языка для конкретного объекта моделирования.
    3. Построение компьютерных моделей и проведение имитационных экспериментов при помощи специализированных компьютерных сред
    (например, Arena, AnyLogic, GPSS World, Pilgrim). Имитационные среды не требуют программирования в виде последовательности команд. Вместо написания программы пользователи составляют модель из библиотечных графических модулей, и/или заполняют специальные формы. Как правило, имитационная среда обеспечивает возможность визуализации процесса имитации, позволяет проводить сценарный анализ и поиск оптимальных решений.
    4. Включение средств имитационного моделирования в стандартные математические компьютерные системы (например, пакет Simulink системы
    Matlab, Mathcad, Mathematica). Это программные среды, предназначенные для выполнения разнообразных математических и технических расчетов, предоставляющие пользователю инструменты для работы с формулами, числами, графиками, текстом, включают в себя средства для управления
    переменными, вводом и выводом данных, а также снабжены графическим интерфейсом.
    Также в сфере имитационного моделирования можно выделить четыре основные парадигмы моделирования, применяемых в качестве каркаса при построении моделей: динамические системы, системная динамика, дискретно-событийное моделирование, мультиагентные системы. Сущест- вует целый ряд программных инструментов, ориентированных на эти подходы:
    1. Динамические системы (Matlab).
    2. Системная динамика (iThink, PowerSim).
    3. Дискретно-событийное моделирование (Arena, GPSS World, Pilgrim).
    4. Мультиагентные системы (AnyLogic).
    Здесь следует отметить, что в настоящее время данная классификация во многом становится условной, поскольку современные интегрированные средства моделирования охватывают как динамические системы, так и системную динамику, дискретно-событийное моделирование и мультиагентные системы.
    История создания языка GPSS
    Одним из первых языков моделирования, облегчающих процесс написания имитационных программ, был язык GPSS, созданный в виде конечного продукта Джеффри Гордоном в фирме IBM в 1962 г. Этот язык в свое время входил в первую десятку лучших языков программирования, опережая транслятор c языка АЛГОЛ, и был реализован практически на всех типах ЭВМ. Изучение этого языка и создания моделей позволяет понять принципы разработки имитационных программ и научиться работать c имитационными моделями.
    Появившийся впервые еще в 1962 году, он выдержал множество модификаций для самых различных операционных систем и компьютеров и в то же время сохранил почти неизменными внутреннюю организацию и основные блоки.
    Основные понятия языка GPSS
    Основными понятиями языка GPSS являются транзакт, блок, оператор.
    Транзакт GPSS – это динамический объект, под которым может подразумеваться клиент, требование, вызов или заявка на обслуживание прибором обслуживания. То есть основное назначение GPSS - это моделирование систем массового обслуживания, хотя наличие дополнительных встроенных средств позволяет моделировать и некоторые другие системы (например, распределение ресурсов между потребителями).
    Транзакты в GPSS могут создаваться (вводиться), уничтожаться
    (выводиться), задерживаться, размножаться, сливаться, накапливаться и т. д.
    Именно благодаря наличию транзакта GPSS обладает такой изящностью и
    простотой. Другим фундаментальным понятием GPSS является понятие
    «блок». Блок GPSS представляет собой некоторый самостоятельный элемент моделируемой системы. Каждый блок реализует одну или несколько операций над транзактом, группой транзактов или параметрами транзактов, а совокупность блоков составляет моделирующую программу. Таким образом,
    GPSS имеет блочную структуру и легко может быть приспособлен и для структурно-функционального моделирования не очень сложных систем.
    GPSS достаточно легок в освоении, а наличие в нем функций, переменных, стандартных атрибутов, графики и статистических блоков существенно расширяет его возможности.
    Модель GPSS World записывается в виде последовательности операторов, которые делятся на три типа:
    1. блоки;
    2. операторы описания данных;
    3. команды.
    Команды GPSS World используются как для построения модели (то есть они могут содержаться в тексте модели), так и для интерактивного взаимодействия с моделью (например, команда START, речь о которой пойдет ниже).
    Формат блоков в GPSS World состоит из частей, называемых полями.
    Поле – это набор символов, отделенный пробелами или ограничителем. В общем случае оператор состоит из следующих полей:
    [<Метка>] <Операция> <Операнды> [< Комментарии>]
    Метка должна начинаться с буквы (все буквы в модели - латинские).
    Чтобы название метки (устройства, очереди, функции, переменной и т.д.) не совпадало с названием операции, целесообразно использовать символ подчеркивания. Например, обслуживающее устройство - «кладовщик» может быть в модели названо «K_ladovsik».
    Операция - это непосредственно команда, которая должна быть выполнена при входе транзакта в данный блок. Для написания каждой операции в GPSS World существует четко установленная грамматика.
    Каждый из блоков характеризуется своим собственным предписанным ему глаголом.
    Операнды задают информацию, специфичную для данного блока. Их не может быть больше семи: А, В, С, D, E, F, G. Число операндов каждого блока зависит от типа блока. Операнды отделяются запятыми. Если отдельный операнд опускается, то на его месте ставится пробел.
    Комментарии отделяются от поля операндов символом «;» или «*».
    Они могут быть написаны на русском языке и служат для удобства ориентирования в модели.
    В системе GPSSW используют символы обозначения и специальные символы. Символы обозначения включают прописные буквы A-Z, строчные буквы a-z,, цифры 0-9 и символ _ (подчеркивание).
    Специальные символы - это символы, используемые для обозначения операторов и пунктуации: # (решетка), * (звездочка), + (плюс), - (минус), /

    (косая черта направо), \ (косая черта налево) и , (запятая). Символ [А] также является оператором.
    Для идентификации объектов, переменных и местоположения программы используются имена - последовательность символов. Существует несколько правил для создания имени:
    1. можно использовать от 1 до 250 символов;
    2. имя должно начинаться с символа;
    3. имя не должно быть ключевым словом системы GPSSW.
    Система GPSSW не различает в обозначениях верхний и нижний регистры (прописные или строчные буквы). Только символы в строковых константах и комментариях сохраняют нижний регистр. Все другие символы строчных букв преобразуются в прописные.
    Вход транзактов в модель
    Блок GENERATE (генерировать) - введение транзактов в модель. Не существует ограничений на число различных блоков GENERATE в одной модели.
    Формат блока:
    GENERATE [A],[B],[C],[D],[E]
    A - Средний интервал времени (это может быть число, СЧА, встроенная функция);
    B - Половина поля допуска равномерно распределенного интервала (число,
    СЧА);
    C - Смещение интервалов;
    D - Ограничитель транзактов;
    Е - Уровень приоритета транзактов.
    Примеры использования блока GENERATE для равномерно распределенных интервалов времени прибытия :
    1. Транзакт входит в модель через каждые 12±4 минуты:
    GENERATE 12,4 2. Транзакт входит в модель через каждые 5 минут:
    GENERATE 5 3. Приход в модель через каждые 20±3 минуты 5 транзактов:
    GENERATE 20,3„5 4. Приход в нулевой момент времени трех транзактов с приоритетом 2:
    GENERATE ,„3,2
    Все возможные виды распределения интервалов времени прибытия в
    GPSS World делят на равномерно распределенные и все другие виды распределений. Для того, чтобы задать более сложный вид распределения, необходимо обратиться к соответствующей функции. Предусмотрены следующие функции типовых распределений вероятностей:

    Beta - бета-распределение;

    Binomial - биномиальное распределение;

    Discrete Uniform - дискретное равномерное распределение;


    Exponential - экспоненциальное распределение;

    Gamma - гамма-распределение;

    Geometric - геометрическое распределение;

    Laplace - распределение Лапласа;

    Logistic - логистическое распределение;

    LogLaplace - логлапласово распределение;

    LogLogistic - логлогистическое распределение;

    LogNormal - логнормальное распределение;

    Negative Binomial - отрицательное биномиальное распределение;

    Normal - нормальное распределение;

    Pareto - распределение Парето;

    Poisson - пуассоновское распределение;

    Triangular - треугольное распределение;

    Uniform - равномерное распределение;

    Weibull - распределение Вейбула.
    Примеры использования блока GENERATE для других распределений:
    1. Для экспоненциального закона распределения при среднем времени прибытия требований 10 минут
    GENERATE (Exponential (1,0,10))

    1 – первый операнд - номер генератора случайных чисел;

    0 – второй операнд – смещение, величина сдвига, определяющего месторасположение распределения;

    10 –третий операнд - среднее значение, если смещение равно 0.
    2. Для нормального закона распределения при среднем времени прибытия требований 10 минут и стандартном отклонении 3:
    GENERATE (Normal (1,10,3))
    Для нормального распределения первый операнд имеет тоже значение, что и для экспоненциального закона распределения, второй операнд - математическое ожидание, третий – стандартное отклонение.
    Выход транзактов из модели
    Блок TERMINATE (завершить) - удаление транзактов из модели.
    Блоки TERMINATE всегда позволяют выйти всем транзактам, которые пытаются это сделать.
    Формат блока:
    TERMINATE [A]
    Операнд А - величина уменьшения счетчика завершения. По умолчанию А = 0.
    При попадании в этот блок транзакты уменьшают величину счетчика, включаемого командой START (начать) на величину А.
    Счетчик завершений – это ячейка памяти, которая хранит число, записанное в начале моделирования. В процессе моделирования транзакты
    попадают в блоки TERMINATE и таким образом происходит уменьшение содержания счетчика. В модели может быть любое число блоков
    TERMINATE, но счетчик завершения только один. При достижении содержания счетчика завершения значения 0, моделирование завершается.
    Примеры использования блока TERMINATE:
    1. Закончить моделирование, когда через модель пройдет 300 транзактов:
    GENERATE 23,4
    • • •
    TERMINATE 1
    START 300 2. Ввести в модель счетчик времени (таймер-сегмент), по истечении которого (например, 200 минут) процесс моделирования остановится:
    GENERATE 200
    TERMINATE 1
    (здесь генерируется 200 минут, которые убывают по одной минуте).
    Таймер сегмент присутствует в большинстве моделей и вводится в конце основного сегмента модели, при этом основной сегмент заканчивается оператором TERMINATE (заметим, что значение операнда А использовано по умолчанию, то есть А = 0). Только таким образом можно управлять продолжительностью моделирования.
    Одноканальное обслуживающее устройство (прибор)
    Одноканальное обслуживающееустройство (прибор) характеризуется следующими свойствами:

    Каждое устройство (прибор) может обслуживать только одно требование.

    Когда на устройство (прибор) поступает требование в модели, надо пропустить время, необходимое для его обслуживания – время обслуживания.
    Для того, чтобы различить устройства (приборы), им надо дать имена.
    Имена могут быть либо числовыми, либо символическими.
    Четыре типа блоков – SEIZE, RELEASE, PREEMPT и RETURN обеспечивают транзактам пользование этими элементами обслуживания.
    SEIZE (занять) - занятие обслуживающего устройства
    Формат блока SEIZE:
    SEIZE A
    A – имя (символьное или числовое) занимаемого устройства.
    Прибор из состояния незанято переходит в состояние занято
    Блок SEIZE служит целям записи факта использования устройства входящим в этот блок транзактом. Когда транзакт пытается войти в блок
    SEIZE, осуществляется проверка, свободно ли устройство, имя которого задано значением аргумента А этого блока. Транзакту не разрешается занимать устройство, которое уже занято или захвачено другим транзактом.

    Устройство будет оставаться занятым до тех пор, пока этот транзакт не войдет в соответствующий блок RELEASE.
    RELEASE (освободить) - освобождение обслуживающего устройства.
    Формат блокаRELEASE:
    RELEASE A
    A – имя (символьное или числовое) освобождаемого устройства.
    Прибор из состояния занято переходит в состояние незанято. Вход транзакта в блок SEIZE моделирует занятие устройства, а вход транзакта в блок RELEASE моделирует освобождение устройства.
    Если делается попытка освободить свободный прибор, то выдается сообщение об ошибке и моделирование прекращается.
    Эти блоки являются взаимно дополняющими.
    Между блоком SEIZE, в котором транзакт занимает устройство, и блоком RELEASE, в котором транзакт освобождает устройство, может быть расположено произвольное число блоков. Транзакт может занимать и прерывать обслуживание любого количества устройств. Одним из параметров транзакта является его приоритет, который указывается в блоке
    GENERATE. Может возникнуть необходимость смоделировать ситуацию, когда очередной транзакт должен занять обслуживающее устройство, прервав обслуживание предыдущего транзакта. Такое прерывание называется «захватом устройства» и моделируется блоком PREEMPT.
    PREEMPT (захватить) – захват обслуживающего устройства.
    Формат блока PREEMPT:
    PREEMPT A, [B], [C], [D], [E]
    A – имя (символьное или числовое) захватываемого устройства.
    Если устройство свободно, то блок PREEMPT работает так же, как и блок SEIZE. При занятом устройстве блок PREEMPT функционирует либо в приоритетном режиме, либо в режиме прерывания. Режимы определяются операндом B:

    PR – приоритетный;

    по умолчанию (операнд B не используется) – прерывания.
    Что делать с транзактом, обслуживание которого прервано, определяют операнды C, D и E.
    C – имя (символьное или числовое), куда должен быть направлен прерванны транзакт;
    D – номер параметра прерванного транзакта, в который записывается оставшееся до завершения обслуживания время;
    E - при значении RE определяет режим удаления прерванного транзакта.
    Прерывание, сгенерированное транзактом на каком-либо устройстве, определенном в поле А, не снимается до тех пор, пока транзакт, гене- рировавший прерывание, не войдет в блок RETURN.
    RETURN (вернуть) – возврат обслуживающего устройства.
    Формат блока RETURN:
    RETURN A

    A – имя (символьное или числовое) возвращаемого устройства.
    Аналогично паре блоков SEIZE – RELEASE вернуть устройство может лишь тот транзакт, который его захватил. Если в блок RETURN пытается войти какой-то другой транзакт, выводится сообщение об ошибке.
    В распоряжении пользователя имеются два типа взаимно дополняющих пар блоков, с помощью которых можно промоделировать обслуживающее устройство: SEIZE – RELEASE и PREEMPT – RETURN.
    Реализация задержки во времени
    ADVANCE (задержать) – задержка продвижения транзакта в течение некоторого времени. Обычно этот интервал задается случайной переменной.
    Формат блока ADVANCE:
    ADVANCE A, B
    A - среднее время задержки на обслуживание (это может быть число,
    СЧА, встроенная функция);
    B - половина поля допуска равномерно распределенного времени задержки (число, СЧА).
    Когда транзакт попадает в такой блок, выполняется соответствующая подпрограмма и вычисляется время пребывания транзакта в нем. Этот блок никогда не препятствует входу транзактов. Любое число транзактов может находится в этом блоке одновременно.
    Примеры использования блока ADVANCE:
    1.Клиент в банке обслуживается в среднем 6

    2 минуты:
    ADVANCE 6,2 2. Автомобиль занимает колонку Kolonka и заправляется в течении 4 минут, затем освобождает колонку
    SEIZE
    Kolonka

    ADVANCE
    4
    RELEASE
    Kolonka
    Это классический случай использования последовательности SEIZE -
    ADVANCE – RELEASE.
    3. Для того, чтобы задать закон распределения времени задержки, отличного от равномерного, необходимо обратиться к соответствующей функции, как это приводилось в описании блока GENERATE. Например, время задержки имеет экспоненциальный закон распределения со средним временем 10 минут
    ADVANCE (Exponential (1,0,10))
    Пример модели системы массового обслуживания
    Для моделирования системы массового обслуживания достаточно воспользоваться всего несколькими блоками GPSS (рис. 2).
    Рассмотрим каждое событие, возникшее в СМО:

    1. Появление требования в системе (GENERATE – Генерировать).
    2. Вход требования в очередь (QUEUE – Очередь).
    3. Определение занятости канала обслуживания (SEIZE – Занять). Если канал занят, то требование остается в очереди, если свободен – то входит в канал обслуживания.
    4. Выход требования из очереди (DEPART – Выйти).
    5. Обслуживание требования в канале обслуживания (ADVANCE
    Задержать).
    6. Освобождение канала обслуживания (RELEASE – Освободить).
    7. Выход требования из системы (TERMINATE – Завершить).
    Рис. 2. Представление СМО на языке моделирования GPSS
    Освоение языка моделирования GPSS World можно начать с рассмотрения самой простой модели - модели турникета в метро.
    Пример 1. Пассажиры приходят к турникету метро каждые 7±4 секунды и встают в очередь, в которой находятся до тех пор, пока не пройдут на перрон. Проход через турникет занимает 5±3 секунды. Требуется определить время, необходимое для того, чтобы через турникет прошло 100 человек.
    Для создания модели необходимо смоделировать вход и выход транзакта (пассажира) из модели и обслуживание транзакта (проход пассажира через турникет).
    Для того, чтобы воспроизвести этот пример на компьютере, можно использовать студенческую версию GPSS World, которую можно бесплатно скачать с сайта фирмы Minuteman Software.
    Кроме этого сайта, для скачивания студенческой версию GPSS World можно воспользоваться следующей ссылкой: http://gpss-world-student-version.software.informer.com/5.2/
    Запустим систему GPSS World, после чего появится главное окно системы, которое представлено на рис. 3. В меню File пункт New создадим файл с текстом модели и сохраним его с именем Model_1:

    Рис. 3. Окно модели примера 1.
    В данной модели в качестве единицы измерения времени возьмем секунду. Моделирование потока пассажиров выполняется с помощью блока
    GENERATE (Генерировать). Первый операнд – средний интервал времени между прибытием двух пассажиров, по условию задачи он равен 7, второй – отклонение времени прихода от среднего - 4.
    Пассажир может пройти через турникет только тогда, когда турникет свободен. Для этого вводится блок SEIZE (Занять), который определяет занятость канала обслуживания. Имя канала обслуживания – Turn, которое задается в поле операнда. Далее необходимо промоделировать проход пассажира через турникет. Для моделирования этого процесса используется блок ADVANCE (Задержать). Первый операнд – средний интервал времени между проходом пассажира, который равен 5, второй – отклонение времени прихода от среднего - 3. Сообщение об освобождении канала обслуживания делается с помощью блока RELEASE
    (Освободить). Имя освобождаемого канала обслуживания – Turn, оно задается в поле операнда.
    После того, как пассажир пройдет через турникет, он покидает модель. Это действие представлено блоком TERMINATE (Завершить). В поле операнда стоит число 1, т.к. пассажиры проходят через турникет по одному.
    Команда START (Начать) используется для управления временем моделирования. Операнд команды START служит для определения начального значения счетчика завершения. По условию задачи через турникет должно пройти
    100 человек.
    В этой модели нет необходимости получать информацию об характеристиках очереди, поэтому при создании модели не были
    использованы блоки QUEUE – Очередь и DEPART – Выйти. Если надо проанализировать очередь, то эти блоки необходимо включить.
    Чтобы получить стандартный отчет для модели, необходимо в меню
    Command (Команда) выполнить команду Create Simulation (Создать выполняемую модель). Появится окно JOURNAL, а затем - REPORT с результатами моделирования. Стандартный отчет для модели представлен на рис. 4.
    GPSS World Simulation Report - Model_1.5.1
    Monday, January 28, 2008 11:46:27
    START TIME END TIME BLOCKS FACILITIES STORAGES
    0.000 724.428 5 1 0
    NAME VALUE
    TURN 10000.000
    LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
    1 GENERATE 100 0 0 2 SEIZE 100 0 0 3 ADVANCE 100 0 0 4 RELEASE 100 0 0 5 TERMINATE 100 0 0
    FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY
    DELAY
    TURN 100 0.688 4.984 1 0 0 0 0 0
    FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
    101 0 730.127 101 0 1
    Рис. 4. Стандартный вывод результатов моделирования для модели примера 1.
    В верхней строке стандартного отчета указывается общая информация о результатах работы модели:

    START TIME (начальное время – абсолютное модельное время в момент начала моделирования) - 0.000;

    END TIME (время окончания) - 724.428;

    BLOCKS (число блоков, использованных в модели) - 5;

    FACILITIES (число устройств, использованных в модели) – 1;

    STORAGES (число многоканальных устройств) – 0.
    Дальше идет информация об именах, содержащихся в модели и информация о блоках с указанием числового номера позиции данного блока в модели. Затем информация о канале обслуживания и последняя строка – информация о списках текущих (CEC) и будущих событий (FEC):

    FEC (список будущих событий) – FEC;

    XN (номер каждого транзакта находящегося в списке) – 101;


    PRI (приоритет транзакта) – 0;

    BDT (момент абсолютного модельного времени, когда транзакт покинет список будущих событий) - 730.127;

    ASSEM (номер семейства данного транзакта) – 101;

    CURRENT (номер блока, в котором находится транзакт в конце моделирования) – 0;

    NEXT (номер следующего блока, в который должен войти транзакт) – 1;

    PARAMETER (имя или номер параметра транзакта) – значения нет;

    VALUE (значение параметра) - значения нет.
    Более подробно рассмотрим выдаваемую информацию о канале обслуживания TURN:

    FACILITY (имя или номер устройства) – TURN;

    ENTRIES ( количество раз, когда устройство было занято) – 100;

    UTIL. (коэффициент использования канала обслуживания, доля времени моделирования, в течение которого устройство было занято) - 0.688;

    AVE. TIME (среднее время обслуживания требования в канале) - 4.984;

    AVAIL.(состояние устройства в конце моделирования: 1 – устройство доступно, 0 - недоступно) – 0;

    OWNER (номер транзакта, который занимает устройство; если устройство не занято, то 0) – 0;

    PEND (количество транзактов, ожидающих выполнения с прерыванием других транзактов) -0;

    INTER (количество транзактов в списке пррываний) – 0;

    RETRY (количество транзактов, ожидающих специального условия, зависящего от состояния устройства) – 0;
    В процессе моделирования разработчику модели доступны следующие
    СЧА одноканального обслуживающего устройства (указаны групповые имена):

    F
    - состояние устройства (1 – занят, 0 – свободен);

    FC
    - счетчик числа занятий;

    FI
    - состояние прерывания (1 – прервано, 0 – не прервано);

    FR
    - коэффициент использования (в долях тысячи);

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

    FV
    - состояние доступности (1 – доступно, 0 – не доступно).
    В примере 1 при необходимости анализа в модели состояния устройства ссылка на СЧА, обеспечивающая доступ к этому параметру будет иметь вид: F$Turn, где Turn – имя устройства.
    В примере требовалось определить время, необходимое для того, чтобы через турникет прошло 100 человек. Это время моделирования - 724.428 сек.
    После перевода в минуты получим 12 минут 7 секунд.


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