Механики
Скачать 4.29 Mb.
|
«Отчёт» – создается автоматически по завершении процесса моделирования и содержит результаты моделирования. • «Текстовый объект» – текстовые файлы, используемые для упрощения разработки больших моделей и формирования библиотеки исходных текстов. Три первых объекта являются основными и всегда используются при имитационном моделировании. 6.3.2. Элементы языка GPSS World Элементами языка GPSS World являются: • алфавитно -цифровые символы : латинские прописные и строчные буквы от «A» до «Z» и цифры от 0 до 9; • имя – совокупность алфавитно-цифровых символов (от 1 до 200), начинающаяся всегда с алфавитного символа, причем допускается исполь- зование букв только латинского алфавита; для того чтобы имя не совпало с зарезервированными ключевыми словами (названиями операторов, системными числовыми атрибутами и т.п.), рекомендуется использование символа «_» (подчеркивание); примеры правильных имен: AS_27, R25, Pribor, W5Fix, Object_New1; • метка – имя, расположенное в поле метки оператора для задания имени объекта GPSS-модели (памяти, таблицы, переменной,…) или для обозначения местоположения блока; • переменная пользователя – имя, используемое в процессе моделирования для хранения числовых и строковых величин; • числа – могут быть трёх типов: целочисленные 32-разрядные (при переполнении преобразуются в вещественные); вещественные 64-разрядные с плавающей точкой двойной точности (порядок может изменяться от –308 до +308, а точность ограничена примерно 15-ю десятичными разрядами), строковые – массив символов произвольной длины, определяе- мой пользователем; • системные числовые атрибуты (СЧА) – переменные, описыва- ющие состояния процесса моделирования, автоматически поддерживаемые в GPSS и доступные в течение всего процесса моделирования; • арифметические операторы – задают арифметические операции (перечислены в порядке приоритетности выполнения операций): ^ (возведение в степень); # (умножение), может быть изменено пользователем на *, / (деление), \ (целочисленное деление); @ (остаток от деления); + (сложение), - (вычитание); 256 Раздел 6. Имитационное моделирование • операторы отношения – задают логические условия (перечислены в порядке приоритетности выполнения операций): > или ’G’ (больше), >= или ‘GE’ (больше или равно), < или ‘L’ (меньше), <= или ‘LE’ (меньше или равно); = или ‘E’ (равно), != или ‘NE’ (не равно); • логические операторы – задают логические операции (перечислены в порядке приоритетности выполнения операций): & или ‘AND’ (логическое «И»); | или ‘OR’ (логическое «ИЛИ»); • выражения – часть языка PLUS: представляют собой совокуп- ность переменных, чисел и СЧА, связанных арифметическими оператора- ми, логическими операторами и операторами отношения; могут исполь- зоваться в операндах операторов GPSS и в PLUS-процедурах; всегда заключаются в круглые скобки; • процедуры – программы на языке PLUS (PLUS-процедуры), встроенные в GPSS World (стандартная процедура) или созданные поль- зователем (пользовательская процедура); обращение к процедуре осущест- вляется путем задания в качестве операнда GPSS-операторов имени процедуры с её параметрами; библиотека стандартных процедур включает: обслуживающие процедуры для управления прогонами процессов моделирования и анализа экспериментов; математические процедуры: ABS (абсолютное значение), EXP (степень экспоненты), INT (целая часть), LOG (натуральный логарифм), SQR (квадратный корень), SIN (синус), COS (косинус), TAN (тангенс), ATN (арктангенс); процедуры запроса для получения информации о состоянии находящегося в модели транзакта; строковые процедуры для операций со строками; процедуры потоков данных для управления потоками данных внутри PLUS-процедуры; процедуры динамического вызова для вызова функций, хранящихся во внешних исполняемых файлах, включая динамически подключаемые библиотеки DLL; вероятностные распределения. 6.3.3. Объекты GPSS- модели «Машинная программа выполняет то, что вы ей приказали делать, а не то, что бы вы хотели, чтобы она делала» (Третий закон Грида) GPSS-модель представляет собой написанную на языке GPSS программу и включает в себя множество объектов, которые могут быть Раздел 6. Имитационное моделирование 257 разбиты на 6 групп (рис.6.4): • основные объекты; • оборудование; • числовые объекты; • генераторы случайных чисел; • групповые списки; • потоки данных. К основным объектам GPSS-модели относятся: • операторы (блоки и команды) – основные объекты GPSS- модели, определяющие совокупность действий, которая должна быть выполнена в модели в соответствии с заданными в операторе параметрами, называемыми операндами; • транзакты – динамические объекты, движущиеся в GPSS-модели от одного оператора (блока) к другому в заданной последовательности. Объектами оборудования являются: • приборы (одноканальные устройства) – объекты, которые мо- гут находиться в одном из двух состояний: свободном или занятом; при моделировании систем массового обслуживания используются для имита- ции процессов занятия и освобождения прибора, то есть для моделиро- вания одноканальных СМО; занятие и освобождение прибора транзактом выполняется в GPSS-модели с помощью операторов SEIZE и RELEASE; • памяти (многоканальные устройства) – объекты, состоящие из множества элементов, которые занимаются и освобождаются транзактами, при этом один транзакт может занять один или несколько элементов памяти, но не более чем её ёмкость; при моделировании систем массового обслуживания «память» используется для имитации процессов занятия и Объекты GPSS-модели Основные Оборудование Числовые Генераторы случайных чисел Групповые списки Потоки данных Приборы Памяти Логические ключи Очереди Ячейки Матрицы Таблицы Переменные Функции Встроенные с равномерным законом Библиотечные Табличные Списки пользователя Операторы Транзакты Числовые группы Группы транзактов Рис.6.4. Классификация объектов GPSS-модели 258 Раздел 6. Имитационное моделирование освобождения приборов многоканальных СМО; ёмкость памяти задается в области описания GPSS-модели с помощью оператора STORAGE, а занятие и освобождение элементов «памяти» транзактом – с помощью операторов ENTER и LEAVE; • очереди – объекты, используемые для накапливания транзактов, находящихся в состоянии ожидания какого-то события, например освобо- ждения прибора или памяти; при моделировании систем массового обслу- живания «очередь» используется для имитации процессов ожидания перед обслуживающими приборами; следует иметь в виду, что понятие «очередь» весьма относительное, поскольку в действительности транзак- ты, ожидающие освобождения прибора или памяти, заносятся в «список задержки» соответствующего прибора или памяти, при этом формирова- ние списков задержки, то есть занесение в очередь и удаление из очереди, происходит автоматически, независимо от наличия операторов QUEUE и DEPART; последние используются только с целью сбора статистики по очередям путем фиксирования моментов поступления транзакта в очередь и удаления его из очереди; • логические ключи – объекты, которые могут находиться только в двух состояниях: «установлен» или «сброшен»; установка, сброс или инвертирование ключа осуществляется с помощью оператора LOGIC. К числовым объектам GPSS-модели относятся: • ячейки – объекты для хранения величин, которым могут быть присвоены некоторые значения; • матрицы – объекты для хранения массивов элементов размерно- сти от 2 до 6; • переменные – объекты для хранения величин, значения которых вычисляются на основе некоторого заданного выражения; переменные описываются с помощью операторов VARIABLE (арифметическая переменная), FVARIABLE (арифметическая переменная c плавающей точкой), BVARIABLE (булева переменная); • функции – объекты, позволяющие вычислять значения в зависимости от некоторого аргумента; функции описываются с помощью оператора FUNCTION; • таблицы – объекты, используемые для построения гистограммы плотности распределения случайной величины и представляющие собой набор чисел, отображающих частоту попадания значений случайной величины в тот или иной частотный диапазон (интервал); таблицы описываются с помощью оператора TABLE. Генераторы случайных (точнее, псевдослучайных) чисел представля- ют собой объекты GPSS-модели, которые можно разделить на три группы: • встроенные генераторы равномерно распределённых в интерва- ле (0; 1) случайных чисел, основанные на мультипликативном конгруэнт- ном методе, с длиной периода 2 147 483 646; количество таких генераторов равно 999, причём номер генератора (от 1 до 999) определяет начальное Раздел 6. Имитационное моделирование 259 число для запуска генератора; при обращении к генератору с помощью системного числового атрибута (СЧА) RNj, где j – номер генератора, вырабатываются целочисленные случайные величины в интервале (0; 999); • библиотечные генераторы случайных чисел с конкретными законами распределений, реализованные в виде встроенных библиотечных процедур количеством более 20; • табличные генераторы случайных чисел с произвольными законами распределений, реализуемые пользователем в виде таблиц с помощью оператора описания FUNCTION. Кроме перечисленных объектов при разработке больших сложных GPSS-моделей дополнительно могут использоваться: • групповые списки, включающие в себя: списки пользователя; числовые группы; группы транзактов, • потоки данных. Объекты в GPSS-модели могут формироваться автоматически, либо должны объявляться с использованием специальных команд – операторов описания. К объявляемым объектам относятся: памяти, переменные, матрицы, таблицы, функции, а также параметры транзактов. 6.3.4. Состав и структура GPSS- модели GPSS-модель представляет собой программу, написанную на языке GPSS в виде последовательности операторов, описывающих логику работы моделируемой системы. Операторы GPSS-модели делятся на две группы: • GPSS-операторы; • PLUS-операторы. В свою очередь, GPSS-операторы делятся на команды и блоки. Команды предназначены: • для описания (определения) некоторых объектов, таких как памяти, переменные, функции, матрицы, таблицы; эти команды называются также операторами описания; • для управления процессом моделирования (запуск, остановка и продолжение процесса моделирования, сброс статистики, завершение моделирования и т.п.); некоторые из этих команд могут находиться как в GPSS-модели, так и задаваться пользователем в процессе моделирования извне в качестве интерактивных операторов с использованием соответствующих пунктов менюGPSS World; эти команды называются также операторами управления. Все команды делятся на: • срочные, выполнение которых начинается в момент их появления; • несрочные, которые заносятся в специальную очередь команд и последовательно выбираются для выполнения в процессе моделирования. 260 Раздел 6. Имитационное моделирование Область описания (операторы описания) Модуль 1 (исполняемые операторы) Модуль N (исполняемые операторы) … STORAGE FUNCTION TABLE … GENERATE QUEUE SEIZE DEPART ADVANCE RELEASE TERMINATE … Рис.6.5. Cтруктура GPSS- модели Операторы блоков или просто блоки представляют собой исполняемые операторы и реализуют в процессе моделирования некото- рые действия, предписанные этими операторами. Название «блок» проис- ходит от так называемых блок-диаграмм, которые используются для графического представления GPSS-моделей. Блок-диаграмма представля- ет собой набор стандартных блоков, связанных между собой в последо- вательности, определяемой логикой работы моделируемой системы. Каждому такому блоку в языке GPSS соответствует определенный оператор, реализующий некоторую конкретную функцию. При этом полагается, что реализация оператора связана с выполнением достаточно большой совокупности действий (блока). В GPSS World изображение этих блоков и перемещение транзактов в процессе моделирования можно увидеть в окне «BLOCK ENTITIES», доступ к которому выполняется из главного меню: Window/Simulation Window/Blocks Window. Система имитационного моделирования GPSS, предназначенная для моделирования сложных систем со стохастическим характером функцио- нирования, обладает эффективными встроенными средствами для описа- ния параллельных процессов, протекающих в исследуемой системе. Эти средства позволяют выполнять описание каждого из параллельных процес- сов независимо друг от друга в виде отдельных программных модулей, что существенно упрощает процесс программирования и создания модели. В то же время, качество модели в значительной степени зависит от того, насколько достоверно и корректно отражены в модели связи между моду- лями, отображающие логику функционирования моделируемой системы. Таким образом, укрупнено структуру GPSS-модели можно предста- вить в виде множества модулей (рис.6.5), каждый из которых описывает один из протекающих в исследуемой системе параллельных процессов. Здесь же приведены некоторые операторы описания (команды) и исполня- емые операторы (блоки), используемые в соответствующих модулях. Следует отметить, что выделение специальной области описания являет- ся желательным, но не обязательным. Такое выделение позволяет создать хорошо структурированную GPSS-мо- дель, наглядную и легко понимаемую. В принципе, операторы описания мо- гут быть в любом месте исполняемой области. При этом в GPSS World даже необязательно, чтобы оператор описа- ния объекта находился до того, как соответствующий объект будет исполь- зован. Раздел 6. Имитационное моделирование 261 Оператор GPSS World, в общем случае, содержит 4 поля: <Метка> <Операция> <Операнды> ; <Комментарий> Поле <Метка> содержит имя, которое может быть присвоено оператору блока и оператору описания. Каждый оператор занимает вполне определенное место в GPSS- модели. Для изменения естественного порядка выполнения процесса моделирования любому исполняемому оператору может быть присвоена метка в виде имени. В поле метки оператора описания указывается имя описываемого объекта (памяти, таблицы, функции и т.д.). Поле <Операция> содержит зарезервированное слово GPSS World, определяющее функциональное назначение блока и задающее совокупность действий, которые должны быть выполнены. Названия операторов (операции) в GPSS World обычно записываются прописными (но могут и строчными) буквами, не допускают сокращений и не могут использоваться в качестве переменных или имён объектов. Примеры операций: GENERATE (ГЕНЕРИРОВАТЬ), TERMINATE (ЗАВЕРШИТЬ), QUEUE (СТАТЬ В ОЧЕРЕДЬ), DEPART (ПОКИНУТЬ ОЧЕРЕДЬ), SEIZE (ЗАНЯТЬ), RELEASE (ОСВОБОДИТЬ), ENTER (ВОЙТИ), LEAVE (ВЫЙТИ), ADVANCE (ЗАДЕРЖАТЬ), PRIORITY (НАЗНАЧИТЬ ПРИОРИТЕТ), GATE (ВПУСТИТЬ), ASSIGN (НАЗНАЧИТЬ), TEST (ПРОВЕРИТЬ). В поле <Операнды> задаются данные, необходимые для выполнения операции и представляющие собой параметры (операнды) оператора, разделяемые запятыми или пробелами, например: <A,B,C,D> или <A B C D>. При этом некоторые операнды являются обязательными, то есть должны быть всегда заданы, а другие – необязательными, то есть могут быть опущены при записи оператора. В последнем случае значения этих операндов определяются транслятором по умолчанию. Между двумя соседними операндами может находиться только запятая или пробел: <A,B> или <A B>. Если между операндами A и B после запятой появится пробел: <A, B> или между ними будет находиться два пробела, то это равносильно двум запятым, и операнд В будет восприниматься транслятором как третий операнд, а значение второго операнда будет определяться по умолчанию. Большинство операторов содержат один или два операнда. В некоторых операторах в качестве операндов могут использоваться операторы отношения, задающие условия, выполнение которых проверяется в процессе выполнения операции. Поле «Комментарий» располагается после операндов, от которых отделяется символом «точка с запятой». GPSS-модель может содержать комментарий, который занимает всю строку. В этом случае признаком комментария служит символ «звездочка» 262 Раздел 6. Имитационное моделирование < *> или «точка с запятой» <;>, располагающийся в первой позиции строки, что говорит о наличии в этой строке только комментария. Если комментарий располагается после оператора в той же самой строке, то в качестве разделителя (признака комментария) используется только символ «точка с запятой». В поле |