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

GPSS (General Purpose Simulating System) - обще целевая система моделирования) является языком моделирования, используемым для построения дискретных моделей и проведения моделирования на ЭВМ. Цель книги «Моделирование на GPSS — помочь читателю в овладении процессом моделирова­ния на GPSS. Для достижения этой цели в книге описаны основные концепции моделирования процессов с дискретными событиями, приведены методы их реализации на GPSS. Создание мо­делей проиллюстрировано на 27 примерах, предложено более 300 задач для того, чтобы читатель мог проверить уровень своего понима­ния материала.

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

Моделирование дискретных процессов опи­рается на фундаментальные знания в области теории вероятностей и математической стати­стики. Предполагается, что читатель имеет некоторое представление о вероятностных про­цессах, включая некоторые элементы стати­стики. Никаких других ограничений для из­учения GPSS и тех средств моделирования, которые предоставляет язык, не существует. Некоторый опыт программирования хотя и же­лателен, но не обязателен. Тот, кто знаком с процедурными языками (с такими, например, как Fortran, Basik, PL/1) обнаружит, что не­которые ключевые понятия процедурных язы­ков при изучении GPSS не используются. Тот, кто изучает эту книгу, обнаружит, как быстро и легко можно создавать модели на GPSS. Начав с элементарного изучения, он вскоре овладеет всеми средствами GPSS.

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

Теперь читателю, по-видимому, стало ясно, что логика моделирования дискретных процес­сов в основном встроена в интерпретатор GPSS. К сожалению, это преимущество языка стано­вится его недостатком для тех пользователей, которые не понимают внутренней логики ин­терпретатора, а это приводит к тому, что GPSS используют вслепую. Бездумное использова­ние этого языка высокого уровня может дать только малозначащие результаты на неадекват­ной модели. Неадекватность может быть свя­зана с неумением описать тонкости функциони­рования объекта и, следовательно, остаться необнаруженной. Все эти обстоятельства уч­тены в книге, и автор следует такому подходу, при котором пользователь должен тщательно разобраться в создаваемой им модели.

Построение изложения материала довольно просто. В гл. 1 даны основные понятия о мето­дах моделирования на уровне процедур, без использования системы GPSS. В частности, здесь читатель знакомится с моделированием систем, в которых события происходят в слу­чайные моменты времени. Функционирование модели показано на примере системы массового обслуживания с очередью и одним обслужива­ющим прибором. Здесь на основе разработан­ных и представленных стандартных блок-схем рассмотрены такие элементы модели, как гене­ратор случайных чисел, описаны концепции планирования событий, логика очередности по­явления событий, решаются задачи синхрони­зации. Все это дано как подготовка к гл. 2, которая вводит читателя в язык GPSS; в ней описано основное подмножество блоков, ис­пользуемых при построении моделей на GPSS. Первым примером построения модели на GPSS является та же модель системы массового об­служивания с очередью и одним прибором. Это дает возможность читателю шаг за шагом сравнить процедурный метод, описанный в гл. 1, с использованием макрокоманд высокого уровня, применяемых при моделировании тех же систем на GPSS.

Сразу же за разбором первого примера в гл. 2 введены понятия цепей текущих и будущих событий GPSS, изложены принципы постро­ения интерпретатора и его внутренней логи­ческой схемы. Далее логика интерпретации проиллюстрирована на числовом примере, шаг за шагом демонстрирующим способ выполнения интерпретатором своей работы. Логика интер­претации дополнительно показана на числовых примерах, следующих за вторым и третьим примерами моделирования в гл. 2. Опыт пре­подавания языка показал, что рассмотрение внутренней логической схемы интерпретатора может быть с большим успехом осуществлено на этой ранней стадии изучения. Хотя число­вые примеры очень тщательно проработаны, все же у читателя остается впечатление о GPSS как о чем-то «мистическом». Поэтому всюду, где вводят новые концепции GPSS, их интер­претируют, если это возможно, в терминах цепей текущих и будущих событий GPSS и внутренней логической схемы работы интерпре­татора. Это позволяет быстро свыкнуться с основными понятиями GPSS и дает пользо­вателю возможность употреблять такие поня­тия самостоятельно.

В гл. 2 всюду, где требуется использование операндов различных блоков GPSS, их вводят непосредственно как константы. Более того, всюду в главе использовано равномерное рас­пределение, причем распределение задается в неявном виде самим интерпретатором. Это позволяет уменьшить степень детализации и по­могает ему сосредоточить свое внимание на осно­вах создания моделей с помощью GPSS и на внутренней логической схеме работы интерпре­татора.

Гл. 3 содержит описание генераторов случай­ных чисел GPSS, способ записи и использова­ния функций для реализации равномерного и неравномерного распределений на языке. Особое внимание уделено реализации повторе­ния модифицированной последовательности событий так, чтобы можно было изучить си­стему с другой конфигурацией при другом мно­жестве условий эксперимента. В гл. 4 описана большая часть так называемых стандартных числовых атрибутов GPSS и показано их при­менение. В гл. 3 и 4 приведены методы опре­деления операнда в неявном виде, т. е. с по­мощью функций, задаваемых пользователем; стандартных числовых атрибутов, определя­емых в интерпретаторе, и методы моделирова­ния при наличии неравномерных распределе­ний. В гл. 4 также дано представление о табли­цах, которые необходимы для определения вида распределения случайных переменных.

Элементы языка, введенные в гл. 2—4, в це­лом позволяют использовать GPSS для постро­ения моделей, проведения тестовых расчетов и автоматической выдачи собранных результа­тов. Гл. 5 посвящена описанию и иллюстрации таких средств языка, которые позволяют про­вести моделирование со сбором интересующих пользователя параметров и выдачей результа­тов, собранных самим пользователем. Эти сред­ства значительно расширяют возможности языка моделирования.

Таким образом, в гл. 1—5 описаны почти все основные возможности GPSS. Гл. 6 и 7 охва­тывают большую часть оставшихся основных средств языка, включая определение и исполь­зование булевских переменных, использование в GPSS косвенной адресации, возможность параллельного моделирования систем с аль­тернативными конфигурациями, оставшиеся три типа цепей GPSS, которые можно использовать прямым или косвенным образом для постро­ения более сложных моделей. В гл. 8 изложены некоторые свойства языка, которые в явном виде при изучении блоков не были рассмот­рены.

Язык GPSS существует в нескольких диалек­тах. Наиболее широко используемым и доступ­ным диалектом является GPSS/360, который описан в данной книге; GPSS V, являющийся расширением GPSS/360, описан в приложе­нии А, дополнительное описание находится в приложении В. Тот, кто изучает (GPSS/360, знакомится с большим подмножеством GPSS V. Для тех, кто планирует использовать для моде­лирования GPSS V, в этой книге дан весь необ­ходимый материал. Остается потратить лишь немного времени на изучение инструкции поль­зователя по GPSS V, для того чтобы глубоко осознать свойства ОР35 V, не включенные в GPSS/360.

Диалекты GPSS/360 и GPSS V'являются вер­сиями языка GPSS, разработанного фирмой IBM (International Business Machines) Эти версии, в свою очередь, являются прямыми потомками нескольких более ранних версий GPSS, также разработанных фирмой IBM. Пер­вую разработанную IBM версию GPSS можно рассматривать как язык-предок. Вместе со сво­ими прямыми потомками ряд близких языков-предков был применен конкретными исследова­тельскими группами и разработчиками ЭВМ вне фирмы IBM. Важнейшими из них являются NGPSS/6000 (GPSS, разработанная для группы развития военно-воздушных сил США Се­верным отделением фирмы Unaited Aircraft Corporation и использованная на ЭВМ Control Data Corporation серии 6000, CDC-6000); GPSS/NORDEN (версия системы GPSS с раз­делением времени, разработанная там же), GPSS/UCC (версия ОР35, разработанная фир­мой Uneversity Compoting и используемая в ре­жиме удаленной пакетной обработки); GPSSTS (версия языка с разделением времени, разра­ботанная отделением информационных сетей фирмы Computer Sciences Corporation), GPSS V/6000 (разработка GPSS V, сделанная в Северо-западном университете для ЭВМ серии CDC-6000 и переданная фирмой Control Data для использования в системе CYBERNET и для продажи пользователям фирмы Control Data); (GPSS-10 (версия GPSS, разработанная недавно в университете Западного Онтарио для ЭВМ РОР-10). Диалекты различных реали­заций и версии GPSS в этой книге не рассмо­трены. В большинстве случаев, однако, непо­средственное изучение GPSS/360 эквивалентно непосредственному изучению большого под­множества всех этих версий. Тот, кто овладел основными сведениями, изложенными в этой книге, будет в состоянии легко применить свои знания GPSS/360 к нужной версии.

Примеры, приведенные в книге, и сопро­вождающий их материал были разработаны для преподавания в Мичиганском университете, для заочного обучения по этой программе сотруд­ников фирмы Роге! МоЬг Сотрапу и в Стан-фордском исследовательском институте, а также для обучения на одно- и двухнедельных курсах, проводимых регулярно на летних инженерных конференциях в Мичиганском университете и продолженных в Калифорнийском университете в Сайта-Крусе (штат Калифорния). Большая часть книги была проверена на аудиторных занятиях. Книга содержит двенадцать прило­жений, разработанных специально как крат­кие справочные пособия по языку для поль­зователей, активно работающих с GPSS.

При написании книги всегда возникает во­прос, какой уровень детализации необходимо обеспечить, на каком уровне следует закрепить знания после повторений? Автор может не достичь своей цели, если будет чересчур или недостаточно лаконичен. Я поставил своей за­дачей дать в книге полное изложение, поэтому, возможно, я не так краток, как любят некото­рые. Некоторым читателям может показаться, что проработка идей здесь более детальна, чем это необходимо лично для них, но после прочте­ния книги большинство читателей будет овла­девать GPSS более эффективно, чем это могло бы быть в ином случае.

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

Прокомментировать

Рубрика Компьютеры

Добавить комментарий

Войти с помощью: 

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.