строки, одной за другой, в GPSS World применяется полноэкранный текстовый редактор. Любые ошибки, обнаруженные во время трансляции по команде меню Create Simulation, сохраняются в очереди сообщений об ошибках, поэтому они могут быть легко найдены и исправлены. Быстродействие транслятора гарантирует, что обнаружение и исправление ошибок происходит очень быстро. Ошибки, обнаруживаемые в течение трансляции, могут быть исправлены с помощью команды Next Error (Следующая ошибка) из меню Edit (Правка) главного окна. Курсор автоматически перемещается к ошибке, а в строке состояния внизу главного окна появляется сообщение об этой ошибке.
Заметным изменением по сравнению с GPSS/PC является отсутствие необходимости в нумерации строк, которая фактически игнорируются в GPSS World. Расположение блоков больше не определяется номером строки оператора блока, а определяется только относительным положением этой строки в файле модели, переданном транслятору. Так как новый оператор INCLUDE позволяет объектам «Модель» содержать в себе другие файлы текстового формата, объекты «Модель» представляют собой считываемую транслятором последовательность операторов, которая определяет расположение блоков в процессе моделирования.
Перечислим ещё некоторые изменения, целесообразность которых при переходе на платформу Windows практически очевидна.
1.Блок HELP больше не используется. Его заменили блоком PLUS, который поддерживает вложение в модель законченных процедур, а также блоками потоков данных, которые поддерживают связь с внешними файлами и программами.
2.Управляющий оператор MICROWINDOW был заменен окном «Expression» («Выражения»), которое может быть открыто с помощью подме-
ню Window (Окно).
3.Управляющий оператор PLOT был заменен окном «Plot» («График»), которое может быть открыто с помощью подменю Window (Окно).
4.Управляющий оператор END был заменен командой EXIT, которая может завершать сеанс работы с GPSS World. Теперь END – ключевое слово язы-
ка PLUS.
5.Управляющий оператор WINDOW был заменен специальным подменю Window (Окно) в меню главного окна.
6.Управляющий оператор ANITRACE и блок MOVE больше не используются. Анимация в GPSS World обеспечивается потоками данных и постпроцессорами сторонних разработчиков. По той же причине больше не используются окно «Positions» и файл POSITION.GPS.
7.Символ «@», обозначавший вложение файлов, был заменен оператором
INCLUDE, который использует в качестве операнда полный путь доступа
кфайлу, заключённый в двойные кавычки.
8.Системный числовой атрибут Z1 больше не отображает общий объем физической памяти. Теперь он возвращает значение максимального объема памяти, который может быть выделен, возвращаемое операционной системой.
9.Следующие функции управления исходным текстом, присутствовавшие
вGPSS/PC, были заменены графическим интерфейсом пользователя, полноэк-
51
ранным редактором и соответствующими опциями: DELETE, DISPLAY, DOS, |
|||||||
EDIT, RENUMBER и SAVE. |
|
|
|
|
|
||
10. Изменились приоритеты операторов. Если возникают какие-либо про- |
|||||||
блемы, необходимо выделить скобками все операции в выражениях из про- |
|||||||
граммных файлов GPSS/PC. |
|
|
|
|
|
||
|
8. Пример моделирования на GPSS World |
|
|||||
Рассмотрим некоторые возможности GPSS World на примере одной задачи |
|||||||
оптимизации производственного процесса. В [15] эта задача решается на |
|||||||
GPSS/PC. |
|
|
|
|
|
|
|
8.1. Задача оптимизации производственного процесса |
|
|
|||||
Пример 1 6 . Задача оптимизации ставится в [13, 15] следующим обра- |
|||||||
зом. |
|
|
|
|
|
|
|
На трикотажной фабрике 50 швей работают на 50 машинах по 8 часов |
|||||||
в день и по 5 дней в неделю. Любая из этих машин в любой момент во время |
|||||||
работы может выйти из строя. В этом случае ее сразу заменяют резервной ма- |
|||||||
шиной. Если резервных машин нет, то швея простаивает до появления резерв- |
|||||||
ной машины, причем почасовой убыток от простоя одной швеи составляет |
|||||||
20 долларов. Тем временем сломанную машину передают в ремонтную мастер- |
|||||||
скую, где чинят в течение 7 ± 3 ч и возвращают в цех. |
|
|
|
||||
Известно, что время наработки на отказ для швейной машины составляет |
|||||||
157 ± 25 ч. Оплата одного рабочего в ремонтной мастерской – 3,75 доллара |
|||||||
в час. |
|
|
|
|
|
|
|
Для создания запаса резервных машин предлагается кроме собственных |
|||||||
50 машин арендовать еще несколько по цене 30 долларов в день. |
|
||||||
|
|
|
Управляющий |
должен |
|||
|
1 |
Машины в цехе: |
решить, сколько рабочих сле- |
||||
|
2 |
157 ± 25 ч. |
дует нанять для работы в мас- |
||||
|
терской |
и |
сколько |
машин |
|||
Резервные машины |
|
арендовать, |
чтобы |
средние |
|||
|
|
|
|||||
|
|
|
ежедневные |
издержки |
произ- |
||
|
|
λ |
водства были минимальны. |
||||
|
50 |
|
Схема описанного процес- |
||||
Ремонт 7 ± 3 ч |
|
са, представлена на рис. 1.18. |
|||||
|
Поскольку разбор этой задачи |
||||||
1 |
Машины, ожидающие |
подробно изложен в пособии |
|||||
[15] по имитационному моде- |
|||||||
|
ремонта |
|
|||||
|
|
лированию на GPSS/PC, то да- |
|||||
|
|
|
|||||
|
|
|
лее будем отмечать лишь те |
||||
Nр |
|
|
изменения, на которые следу- |
||||
Рис. 1.18. Схема перемещения |
ет обратить внимание при пе- |
||||||
реходе к использованию GPSS |
|||||||
|
швейных машин |
|
World. |
|
|
|
|
|
|
52 |
|
|
|
|
|
8.2. Моделирующая программа
Запустите программу GPSSW, создайте через меню File новый документ (New) типа модель (Model). Имитационная модель, приведеная в [15], может быть перенесена в GPSS World практически без изменений. Её можно ввести заново или вставить (клавишами Ctrl-V) в окно модели путём копирования через буфер из текстового файла. Рекомендуется сразу отказаться от номеров строк, так как полноэкранный текстовый редактор GPSS World делает эти номера излишними. Введённая модель имеет вид, представленный на рис. 1.19.
Эта модель отличается от приведенной в [15] только отсутствием номеров строк и управляющей команды START. Обратите внимание: при вводе и редактировании модели удобно пользоваться клавишей Tab для того, чтобы текст программы располагался привычными колонками. Ещё одно отличие состоит в широкой свободе выбора шрифтов. В частности, все комментарии можно писать на русском языке, чего GPSS/PC делать не позволял.
После ввода модели выберите в меню Command опцию Create Simulation. В результате будет создано окно журнала с первыми строками протокола процесса моделирования в следующей форме:
04/15/06 21:54:51 Model Translation Begun.
04/15/06 21:54:51 Ready.
Теперь выберите в меню Command опцию Retranslate. Модель будет транслирована, и в журнал запишутся такие же строки. Они означают, что модель не содержит синтаксических ошибок. В случае наличия ошибок будет выдана информация, позволяющая их найти и исправить.
Рис. 1.19. Вид модели в GPSS World
53
Снова войдите в меню Command и выберите опцию Start 1. Предлагаемое начальное значение 1 в окне этой команды можно менять. После старта и завершения прогона модели автоматически создаётся окно с отчётом, близким по структуре к форматированному отчёту в GPSS/PC. В меню Command имеются и другие доступные опции, имеющие наименование команд GPSS/PC. Выберите, например, опцию SHOW… и запросите в её окне переменную V$COST. На нижней (серой) индикаторной панели появится значение 307.7043815 (см. рис. 1.19), которое имеет запрошенная переменная. Дробное значение этого результата немного отличается от целого числа 308, которое было получено в [15] при таком же счётчике команды START, равном единице. В GPSS/PC как время, так и коэффициент использования памяти R$CEH (см. первую строку модели на рис. 19) могут принимать только целые значения, и этим объясняются полученные расхождения. Выполненная команда SHOW и ответ на неё регистрируются также и в журнале сеанса моделирования. Журнал, модель и отчёты можно сохранять для возобновления работы с ними в последующих сеансах.
Этого опыта моделирования достаточно, чтобы решать на GPSS World задачи и использовать рекомендации, приведенные в [15]. Многооконный интерфейс системы интуитивно понятен и соответствует стандартным соглашениям операционной системы Windows. Кроме этого, имеется встроенная в систему помощь Help. Детальные описания возможностей GPSS World приводятся в [37–40].
8.3. Результаты решения оптимизационной задачи
С целью проверки влияния, которое в GPSS/PC оказывала искусственная дискретизация времени и показателей загрузки оборудования (памяти) на результаты оптимизации, проведём решение поставленной задачи до конца.
Используя обоснованное в пособии [15] начальное значение 20 для счётчика завершений команды START, проверим полученные там же оценки средних издержек при различных значениях числа NP рабочих и числа NM арендуемых для резерва машин (таблица на рис. 1.20 слева). Рекомендуется после каждого изменения параметров модели выполнять сброс накопленной статистики (команда Clear в меню Command) и ретрансляцию (команда Retranslate в меню Command). Выполнив соответствующие четыре эксперимента, получаем на GPSS World данные, представленные на рис. 1.20 в правой таблице (с округлением до одной цифры после точки).
Nр Nм: |
3 |
4 |
5 |
NP N M: |
3 |
4 |
5 |
3 |
276 |
258 |
264 |
3 |
271.4 |
252.3 |
260.2 |
4 |
|
264 |
|
4 |
|
262.6 |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
Рис. 1.20. Результаты оптимизации на GPSS/PC (слева) и на GPSS World
Примечательно, что вариант с тремя рабочими и четырьмя арендуемыми машинами по-прежнему оценивается как оптимальный. В то же время абсо-
54
лютные количественные оценки средних издержек V$COST, полученные разными версиями GPSS, существенно различаются. Числовая структура показателя V$COST такова, что в GPSS/PC вблизи точки оптимума его значение может изменяться только с шагом, кратным 6. Столь большой шаг дискретизации объясняет обнаруженное расхождение результатов, которое, в свою очередь, подчёркивает обоснованность перехода в GPSS World к вещественному типу времени и к вещественным СЧА.
8.4. Анализ потока ремонтируемых машин
Моделируемая система представляет собой замкнутую сеть массового обслуживания. Прохождение машин через какую-либо фиксированную точку сети (например, точку λ на рис. 1.18) образует поток случайных событий, представляющий собой сумму большого числа других потоков. В качестве отдельного слагаемого суммы потоков здесь могут рассматриваться, например, циклические перемещения через выбранную точку какой-то одной, фиксированной машины. Соответствующая предельная теорема теории вероятностей позволяет предположить, что суммарный поток здесь близок к пуассоновскому, т. е. что интервалы времени между двумя ближайшими прохождениями машин через точку λ имеют распределение, близкое к экспоненциальному.
Чтобы проверить эту гипотезу, добавим в исходную модель (это вариант трёх рабочих, трёх арендуемых машин, как на рис. 1.19) объект языка GPSS типа ТАБЛИЦА (TABLE). Для этого добавьте в начало модели следующие две строки:
TIMEINT |
VARIABLE |
C1-X1 |
STAT |
TABLE |
V$TIMEINT,0,0.5,40 |
Первая строка вычисляет интервал между текущим временем (это будет момент прохождения активного транзакта через точку λ ) и сохранённым в ячейке X1 временем прохождения предыдущего транзакта. Вторая строка описывает таблицу, собирающую статистику по этим интервалам прохождения транзактов.
В GPSS-модели точке λ соответствует выход первого блока LEAVE. Вставьте после этого блока следующие две строки:
TABULATE STAT
SAVEVALUE 1,C1
Здесь первая строка инициирует вычисление и учёт очередного интервала времени в таблице STAT, вторая сохраняет в ячейке X1 текущее значение времени для его использования следующим транзактом, когда он будет проходить точку λ.
Ретранслируйте модель и выполните команду START со счётчиком, имеющим достаточно большое значение, например START 50. После появления от-
чёта войдите в меню Window/Simulation Window/Table Window, выберите таб-
лицу STAT (другой таблицы мы не создавали), нажмите Ok. В открытом вами окне таблицы (рис. 1.21) появится частотная гистограмма распределения интервалов времени с оценкой Mean среднего интервала времени и оценкой S.D. среднего квадратичного отклонения интервала времени.
55