13 мая 2002 г.
По многочисленным просьбам публикуем информацию об основных отличиях GPSS World и GPSS/PC.
 
1. Совместимость
Следующий раздел посвящён всестороннему сравнению GPSS World с его предшественником GPSS/PC. Можете пропустить этот раздел, если у вас не было опыта работы с GPSS/PC.
GPSS World совместим с GPSS/PC и обычно выдаёт результаты, которые статистически неотличимы от результатов, выдаваемых GPSS/PC. Этот уровень совместимости может быть достигнут исправлением некоторых отличий и запуском процесса моделирования.
Кроме того, доступен ещё более высокий уровень совместимости, называемый режимом совместимости с GPSS/PC. В большинстве случаев можно достигнуть точного повторения результатов. Тем не менее, GPSS World использует новую исполняемую библиотеку. Применяемый в нём метод округления чисел с плавающей запятой немного отличается от используемого в GPSS/PC. Но даже в этом случае большинство моделей GPSS/PC с небольшими изменениями могут давать идентичные результаты при выполнении под управлением коммерческой версии GPSS World в режиме совместимости с GPSS/PC.
Последовательность действий, которой вы должны придерживаться, подробно рассматривается далее, после описания отличий GPSS World от GPSS/PC.
 
2. Отличия от GPSS/PC
GPSS World имеет много отличий от GPSS/PC. GPSS World основывается на идее, что текстовый объект «Модель» формируется и/или модифицируется, а затем транслируется с целью создания объекта «Процесс моделирования». Этим он отличается от GPSS/PC, в котором используются понятия файла программы и процесса моделирования.
В GPSS World была полностью заменена операция загрузки модели, используемая в GPSS/PC. Вместо последовательного ввода и просмотра каждой строки, одну за другой, в GPSS World применяется полноэкранный текстовый редактор и команда меню Create Simulation (Создать процесс моделирования). Любые ошибки, обнаруженные во время трансляции, сохраняются в очереди сообщений об ошибках, поэтому они могут быть легко найдены и исправлены. Быстродействие транслятора гарантирует, что обнаружение и исправление ошибок происходит очень быстро.
GPSS World не выполняет операцию предотвращения ошибки при каждом нажатии клавиши, как это было в GPSS/PC. Вместо этого для создания процесса моделирования GPSS World использует транслятор модели. Это ускоряет время загрузки модели в сотни раз. Однако это привело к изменению механизма обнаружения ошибок. Теперь ошибки обнаруживаются в течение трансляции и могут быть исправлены с помощью команды Next Error (Следующая ошибка) из меню Edit (Правка) главного окна. Курсор автоматически перемещается к ошибке, а в строке состояния внизу главного окна появляется сообщение об этой ошибке.
Возможно, наиболее заметным изменением по сравнению с GPSS/PC является отсутствие необходимости в нумерации строк, которая фактически игнорируются в GPSS World. Это означает, что расположение блоков больше не определяется номером строки оператора блока, а определяется только относительным положением этой строки в файле (файлах) модели, переданном транслятору. Т.к. новый оператор INCLUDE позволяет объектам «Модель» содержать в себе другие файлы текстового формата, объекты «Модель» представляют собой считываемую транслятором последовательность операторов, которая определяет расположение блоков в процессе моделирования. Несмотря на то, что блоки больше не могут быть вставлены во время процесса моделирования, для большинства целей будет проще повторно транслировать модель, если необходимо изменить структуру блоков, т.к. трансляция выполняется очень быстро. При использовании режима ручного моделирования сохраняется высокий уровень интерактивности. Это означает, что любой оператор может использоваться в течение процесса моделирования в качестве интерактивного оператора.
В GPSS World был сохранён высокий уровень интерактивности. Любой оператор модели может быть передан для выполнения выполняющемуся процессу моделирования. PLUS-процедуры могут быть определены или даже переопределены «на лету». Команды GPSS могут использоваться для переопределения объекта или управления процессом моделирования. Блоки могут использоваться, так же, как и в GPSS/PC, для создания временного блока, в который направляется активный транзакт. Все это выполняется после трансляции модели с помощью меню Command (Команда).
В GPSS World не используется автоматическое округление. Теперь для округления промежуточных числовых результатов необходимо явно использовать процедуру Int() или какой-либо другой метод. Это касается и всех выражений, а также операторов VARIABLE и BVARIABLE.
Теперь значения, возвращаемые системными числовыми атрибутами (СЧА), в зависимости от конкретного СЧА могут быть целого, вещественного или строчного типа. Даже СЧА, возвращающие значения в тысячных долях, выполняют это с помощью вещественных чисел двойной точности, лежащих в интервале от 0 до 1000 включительно. «Старые» округления и целочисленные СЧА могут быть использованы в коммерческой версии GPSS World в режиме совместимости с GPSS/PC.
Использование в GPSS World многозадачной архитектуры также привело к некоторым изменениям. Прежде всего, теперь для представления команд или изменения состояния посылаются служебные сообщения. Таким образом, оперативное обновление окна выполняется посредством очереди сообщений, поступающих от процесса моделирования. Точно так же большинство команд, полученных объектом «Процесс моделирования», перед выполнением помещаются в очередь команд процесса моделирования. Исключения составляют только команды SHOW и HALT, которые выполняются немедленно. Кроме того, команда HALT удаляет из очереди все оставшиеся команды.
Остальные изменения перечислены далее и более подробно рассматриваются в других частях данного руководства пользователя:
  • PLUS-операторы могут включать в себя любое количество текстовых строк. Хотя операторы GPSS, кроме списков данных функции, должны находиться на одной текстовой строке, максимальная длина которой теперь составляет 250 символов.
  • Математические выражения, заключённые в скобки, могут теперь использоваться практически везде, где используются СЧА.
  • Системные числовые атрибуты в зависимости от конкретного типа теперь могут возвращать целочисленные, вещественные или строковые значения. В режиме совместимости с GPSS/PC СЧА, за исключением модификаторов функций, возвращают только целочисленные значения.
    Введен новый системный числовой атрибут, A1, который возвращает номер семейства активного транзакта.
  • Блок HELP больше не используется. Его заменили блоком PLUS, который поддерживает вложение в модель законченных процедур, а также блоками потоков данных, которые поддерживают связь с внешними файлами и программами.
  • Управляющий оператор MICROWINDOW был заменен окном «Expression» («Выражения»), которое может быть открыто с помощью подменю Window (Окно).
  • Управляющий оператор PLOT был заменен окном «Plot» («График»), которое может быть открыто с помощью подменю Window (Окно).
  • Управляющий оператор END был заменен командой EXIT, которая может завершать сеанс работы с GPSS World. END теперь является ключевым словом языка PLUS.
  • Управляющий оператор ANOVA был заменен библиотечной процедурой ANOVA.
  • Управляющий оператор EVENTS был заменен окнами «CEC Snapshot» («Кадр СТС») и «FEC Snapshot» («Кадр СБС»), которые могут быть открыты с помощью подменю Window (Окно).
  • Управляющий оператор GROUPS был заменен окнами «Numeric Groups Snapshot» («Кадр числовых групп») и «Transaction Groups Snapshot» («Кадр групп транзактов»), которые могут быть открыты с помощью подменю Window (Окно).
  • Управляющий оператор RESULT был заменен блоками управления потоками ввода-вывода, которые могут автоматически записывать данные в файл результатов.
  • Управляющий оператор WINDOW был заменен специальным подменю Window (Окно) в меню главного окна.
  • Управляющий оператор USERCHAINS был заменен окном «Userchains Snapshot» («Кадр списков пользователя»), которое может быть открыто с помощью подменю Window (Окно).
  • Управляющий оператор ANITRACE больше не используется. Анимация в GPSS World обеспечивается потоками данных и постпроцессорами сторонних разработчиков.
  • Блок MOVE больше не используется. Анимация в GPSS World обеспечивается потоками данных и постпроцессорами сторонних разработчиков.
  • Окно «Positions» и файл POSITION.GPS больше не используются. Анимация в GPSS World обеспечивается потоками данных и анимационными пакетами сторонних разработчиков.
  • Символ «@», обозначавший вложение файлов, был заменен оператором INCLUDE, который использует в качестве операнда полный путь доступа к файлу, заключённый в двойные кавычки.
  • Системный числовой атрибут Z1 больше не отображает общий объем физической памяти. Теперь он возвращает значение максимального объема памяти, который может быть выделен, возвращаемое операционной системой.
  • Следующие функции управления исходным текстом, присутствовавшие в GPSS/PC, были заменены графическим интерфейсом пользователя, полноэкранным редактором и соответствующими опциями: DELETE, DISPLAY, DOS, EDIT, RENUMBER и SAVE.
  • Ячейками, матрицами, именованными величинами и параметрами транзактов теперь поддерживаются значения целочисленного, вещественного или строкового типа данных. Значения времени могут быть целочисленными или вещественными. Целочисленная арифметика неограниченной точности, применявшаяся в GPSS/PC, больше не используется.
  • Команды REPORT теперь всегда функционируют в режиме NOW. Операнд А больше не используется и должен быть нулевым.
  • Теперь в PLUS-выражениях допускается использование процедур из библиотеки PLUS-процедур. Также поддерживаются процедуры обработки строк и более двадцати встроенных вероятностных распределений. 
  • Матрицы GPSS теперь могут иметь до 6 измерений. Любое двумерное поперечное сечение матрицы может динамически просматриваться в окне «Matrix» («Матрица»).
  • Изменились приоритеты операторов. Новые приоритеты рассматриваются в Главе 3. Если возникают какие-либо проблемы, необходимо выделить скобками все операции в выражениях из программных файлов GPSS/PC.
 
3. Модификация старых программ GPSS/PC
Этот раздел предназначен для пользователей GPSS/PC, которые желают перенести существующие модели из GPSS/PC в среду GPSS World. Этот раздел содержит список изменений, которые необходимо внести в программные файлы GPSS/PC. Это обеспечит результаты, которые лишь незначительно отличаются от результатов, полученных в процессе моделирования на GPSS/PC. Чтобы достигнуть этого уровня соответствия, нет необходимости в использовании режима совместимости с GPSS/PC.
Однако если вы хотите получить точное повторение результатов, вы должны также выполнить процедуру, описанную в следующем разделе. 
Перейти к использованию новой системы довольно просто. Пользователи GPSS/PC должны заметить небольшое количество отличий, требующих изменения существующих файлов моделей. С другой стороны, пользователи могут точно повторить результаты GPSS/PC, чтобы установить достоверность модели при выполнении в GPSS World. После этого легко переключиться на новый режим работы, включая модельное время с плавающей точкой и большое число других возможностей.
Номера строк в GPSS World игнорируются. Не используйте старые программные файлы, заменяющие блоки GPSS/PC номером строки. Если вы используете их в качестве подключаемых файлов, они увеличат размер процесса моделирования, если вы используете их в качестве интерактивных команд, они будут выполнены один за другим как операторы режима ручного моделирования.
В вашей программе GPSS/PC необходимо сделать следующие изменения:
  1. Если вы использовали в GPSS/PC функцию предотвращения ошибки при каждом нажатии клавиши для автоматического завершения ввода ключевого слова, вам необходимо набрать оставшиеся символы перед трансляцией модели в GPSS World. 
    Заменить символ «@» оператором INCLUDE. 
    Если в операторе INCLUDE в качестве операнда используется путь доступа к файлу, он должен быть заключён в двойные кавычки.
  2. Удалить все команды REPORT. 
  3. Удалить команды END и все метки, которые могут конфликтовать с новыми ключевыми словами GPSS World, такими, как BEGIN, COUNT, NORMAL и т.д.
  4. Заменить блоки HELP блоками PLUS и/или блоками потоков данных. 
  5. Удалить блоки MOVE. Окна «Positions» больше не поддерживаются. 
  6. Полностью заключайте в скобки все выражения в операторах VARIABLE, FVARIABLE и BVARIABLE.
Наверное, безопаснее всего удалить все старые команды запуска из старого программного файла GPSS/PC перед проверкой измененной модели. Не используйте в сохраняемой программе замену блоков номерами строк. Это функция больше не работает.
 
4. Точное повторение результатов
Большинство программных файлов GPSS/PC может быть изменено так, чтобы при выполнении под управлением GPSS World получить точно те же результаты. Однако из-за различий в округлении вещественных чисел при вычислении с плавающей точкой, возможно, потребуется сделать несколько дополнительных изменений в программном файле GPSS/PC в дополнение к действиям, описанным в предыдущем разделе. Если вы нуждаетесь в результатах, которые будут статистически неотличимы от результатов, полученных в GPSS/PC, у вас нет необходимости выполнять следующие действия с помощью коммерческой версии GPSS World.
1. На первом шаге необходимо включить в настройках модели режим совместимости с GPSS/PC. Это заставляет GPSS World использовать целочисленные значения модельного времени и округлять результаты аналогично GPSS/PC. Чтобы открыть объект «Модель», выберите File / Open (Файл / Открыть). Затем выберите Edit / Settings (Правка / Настройки). Затем на первой странице установите флажок GPSS/PC Compatibility (Совместимость с GPSS/PC).
2. Теперь установите в полях «GENERATE», «ADVANCE» и «TRANSFER» номера потоков случайных чисел в соответствии с файлом SETTINGS.GPS, который вы использовали вместе с GPSS/PC. Затем установите в поле «Time ties» («Временные узлы») номер потока случайных чисел, равный 1. Выберите Edit / Settings (Правка / Настройки). Затем откройте страницу «Random Numbers» («Случайные числа»). Затем введите в поля «GENERATE», «ADVANCE», «TRANSFER» и «Time ties» («Временные узлы») номера потоков случайного чисел.
3. Убедитесь, что все начальные числа во всех командах RMULT меньше 100 000 000.
4. Удалите все зависимости от идентификаторов, которым задаются системные значения по умолчанию. Например, RN$IDENTIFIER задаёт в качестве начального числа для потока случайных чисел системное значение по умолчанию. Этот спецификатор объекта должен быть изменен.
5. Не вызывайте случайную функцию из случайной функции. Замените все подобные операторы.
6. Замените все дроби, встречающиеся в блоках TRANSFER, целыми числами, представляющими тысячные долями.
7. Убедитесь, что случайные функции GPSS не имеют в списке данных функции пару значений, связанную с вероятностью 1/n, где n – число пар. Например, если функция определена 4 точками, не допускается использование в любой паре данных вероятности 0.25. Это можно избежать, добавляя дополнительные точки, пока 1/n не станет периодической дробью или не будет присутствовать в одной из пар списка данных функции. FN$SNORM и FN$XPDIS не должны изменяться.
Специальная программа DOS с именем PCAID.EXE помогает изменить ваш программный файл GPSS/PC. Она исправит номера строк и напомнит вам, если имеются операторы функций GPSS, которые должны быть проверены. Вы можете запустить эту программу в окне DOS.
В любом случае, имейте в виду, что объекты «Модель» – это не просто текстовые файлы. Они включают в себя установки, закладки и списки результатов, которые не могут быть прочитаны внешними текстовыми редакторами. По этой причине после изменения программного файла GPSS/PC вы должны использовать один из текстовых редакторов, чтобы скопировать её в буфер обмена Windows. Затем создайте в GPSS World новый объект модели. Для этого выберите File / New (Файл / Создать). Затем вставьте текст из буфера обмена в окно модели, используя команду Edit / Paste (Правка / Вставить).
Этот процесс создаёт полноценный объект «Модель» GPSS World, основанный на вашей исходной модели. Теперь необходимо получить соответствующие результаты для прогонов процесса моделирования под управлением GPSS/PC и GPSS World.