Понятие имитационного моделирования
Имитационное моделирование— метод, позволяющий строить модели, описывающие процессы так, как они проходили бы в действительности
Имитационное моделирование применяется в тех случаях, когда модель слишком сложна, чтобы можно было использовать аналитические методы решения .
Имитационное моделирование ценно как предварительный этап, который поможет принять решения о необходимости и возможности проведения самого реального эксперимента. Имитационное моделирование использует статистическую машину имитации, которая выявляет, при каких сочетаниях вводимых факторов достигается оптимальный результат деятельности процессов.
Объекты GPSSW
Объекты GPSSW :
· Динамические объекты. Они «создаются» и «уничтожаются» так, как это необходимо по логике модели в процессе моделирования.
· Операционные объекты. Они формируют логику модели, давая транзактам указания: куда идти и что делать дальше.
· Аппаратные объекты — соответствуют обслуживающим приборам в СМО.
· Статистические объекты - служат для сбора и обработки статистических данных о функционировании модели.
· Вычислительные объекты - Они используются для вычисления некоторых величин, заданных арифметическими или логическими выражениями либо табличными зависимостями.
· Запоминающие объекты - обеспечивают хранение в памяти ПК отдельных величин, используемых в модели, а также массивов таких величин.
Управление последовательностью выполнения программы GPSSW
Работа GPSSW-модели под управлением симулятора заключается в перемещении транзактов от одних блоков к другим аналогично тому, как в моделируемой СМО перемещаются заявки.
В начальный момент времени в GPSS-модели нет ни одного транзакта. В процессе моделирования симулятор генерирует транзакты в определенные моменты времени в соответствии с теми логическими потребностями, которые возникают в моделируемой системе. Подобным же образом транзакты покидают модель в определенные моменты времени в зависимости от специфики моделируемой системы. В общем случае в модели одновременно существует большое число транзактов, однако в каждый момент времени симулятор осуществляет продвижение только какого-либо одного транзакта. Центральной задачей, выполняемой симулятором, является определение того, какой транзакт надо выбрать следующим для продвижения в модели, когда его предшественник прекратил свое продвижение. Продвижение транзактов на обслуживание организуется в порядке убывания приоритетов транзактов, а в пределах каждого уровня приоритета — в порядке поступления транзактов.
Если транзакт начал свое движение, он перемещается от блока к блоку по пути, предписанному блок-схемой. В тот 'момент, когда транзакт входит в некоторый блок, на исполнение вызывается подпрограмма симулятора, соответствующая типу этого блока, а после ее выполнения, при котором реализуется функция данного блока, транзакт «пытается» войти в следующий блок. Такое продвижение транзакта продолжается до тех пор, пока не произойдет одно из следующих возможных событий:
1) транзакт входит в блок, функцией которого является удаление транзакта из модели;
2) транзакт входит в блок, функцией которого является задержка транзакта на некоторое определенное в модели время;
3) транзакт «пытается» войти в следующий блок, однако блок «отказывается» принять его. В этом случае транзакт остается в том блоке, где находился, и позднее будет повторять свою попытку войти в следующий блок. Когда условия в модели изменятся, такая попытка может оказаться успешной, и транзакт сможет продолжить свое перемещение по блок-схеме.
Если возникло одно из описанных выше условий, обработка данного транзакта прекращается, и начинается перемещение другого транзакта. Таким образом, выполнение моделирования симулятором продолжается постоянно. Каждое продвижение транзакта в модели является событием, которое должно произойти в определенный момент модельного времени. Для того чтобы поддерживать правильную временную последовательность событий, симулятор имеет таймер модельного времени, который автоматически корректируется в соответствии с логикой, предписанной моделью.
Таймер GPSS/PC имеет следующие особенности:
1) регистрируются только целые значения
2) единица модельного времени определяется разработчиком модели, который задает все временные интервалы в одних и тех же, выбранных им единицах;
3) симулятор не анализирует состояние модели в каждый следующий момент модельного времени, а продвигает таймер к моменту времени, когда происходит ближайшее следующее событие.
Центральной задачей, выполняемой симулятором, является определение того, какой транзакт надо выбрать следующим для продвижения в модели, когда его предшественник прекратил свое продвижение. С этой целью симулятор рассматривает каждый транзакт как элемент некоторого списка. В относительно простых моделях используются лишь два основных списка: список текущих событий (включает в себя те транзакты, планируемое время продвижения которых равно или меньше текущего модельного времени и список будущих событий (включает в себя транзакты, планируемое время продвижения которых больше текущего времени, т.е. события, связанные с продвижением этих транзактов, должны произойти в будущем)
Симулятор GPSS/PC помещает транзакты в зависимости от условий в модели в тот или иной список и переносит транзакты из списка в список, просматривает списки, выбирая следующий транзакт для обработки, корректирует таймер модельного времени после обработки всех транзактов в списке текущих событий
Операторы, связанные с транзактами. Блоки, связанные с аппаратными объектами
Исходная программа на языке GPSSW, как и программа на любом языке программирования, представляет собой последовательность операторов. Операторы исходного текста GPSSW записываются и вводятся в ПК в следующем формате (в скобках указаны необязательные части):
GENERATE ─ генерировать,
SEIZE ─ занять,
RELEASE ─ освободить,
ADVANCE ─ задержать,
QUEUE ─ стать в очередь,
DEPART ─ покинуть очередь,
TRANSFER ─ передать,
TERMINАTE ─ завершить,
Пояснения к некоторым терминам стандартного отчета.
Общая информация:
START TIME ─ начальное время моделирования.
END TIME ─ конечное время моделирования.
BLOKS ─ количество блоков в модели.
Информация об устройстве
FACILITY ─ номер ли имя устройства.
ENTRIES ─ количество транзактов входивших в устройство.
UTIL ─ коэффициент использования устройства.
AVE.TIME ─ среднее время занятости устройства одним
транзактом.
AVAILABLE ─ состояние доступности устройства в конце
моделирования (0 – недоступно, 1 – доступно).
Информация об очереди
QUEUE ─ имя или № устройства.
MAX ─ максимальное количество транзактов, входивших в очередь.
CONT ─ текущее содержимое очереди.
ENTRIES ─ количество транзактов, находившихся в очереди.
ENTRIES(0) ─ количество транзактов, входивших в очередь с
«нулевым» временем задержки.
AVE.CONT ─ средняя длина очереди.
AVE.TIME ─ среднее время пребывания в очереди одного
транзакта.
AVE.(-0) ─ среднее время пребывания в очереди одного транзакта
без учета «нулевых» входов.
Операторы для сбора статистических данных. Блоки, изменяющие маршруты транзактов
В более сложных моделях возникает необходимость направления транзактов к другим блокам в зависимости от некоторых условий. Эту возможность обеспечивают блоки изменения маршрутов транзактов.
Блок TRANSFER (передать) служит для передачи входящих в него транзактов в блоки, отличные от следующего. Блок имеет девять режимов работы, из которых рассмотрим здесь лишь три наиболее часто используемых. В этих трех режимах блок имеет следующий формат:
имя TRANSFER A, B, C Смысл операндов в полях A, B и C зависит от режима работы блока.
В режиме безусловной передачи поля A и C пусты, а в поле B указывается имя блока, к которому безусловным образом направляется транзакт, вошедший в блок TRANSFER. Например: TRANSFER, FINAL
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|