Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Система моделирования общего назначения ( GPSS ) является дискретным время моделирования языка программирования общего назначения , где симуляция часы достижения в области дискретных шагов. Система моделируется, когда транзакции входят в систему и передаются от одной службы (представленной блоками) к другой. Он используется в основном как язык моделирования, ориентированный на последовательность операций; [1] это особенно хорошо подходит для таких задач, как завод .

История [ править ]

GPSS был разработан Джеффри Гордоном из IBM в начале 1960-х годов. Он назвал его G Ордон в P rogrammable S imulation S ystem. Название было изменено, когда IBM решила выпустить его как продукт. [2]

Часть нового названия «Универсальное назначение» заключалась в создании стандарта моделирования очередей.

Первоначальные выпуски предназначались для мэйнфреймов IBM 7044 и 7090 . Впоследствии были выпущены версии для IBM 360 , [3] Univac 1108 и CDC. [4] [5] [6]

Со временем были разработаны другие реализации на других языках, нацеленные на системы разного размера, включая VAX от DEC , специализированную версию APL для крупномасштабных систем Univac [7] и Macintosh , среди прочих. [8]

JGPSS [ править ]

J GPSS (Java General Purpose Simulation System) - этоинструмент на основе Java , разработанный для обучения языку моделирования GPSS. [2] [9]

Описание языка [ править ]

GPSS напоминает структуру LEGO, где разработчик модели выбирает блоки для определенных функций, имитирующих определенную систему. [10]

Этот язык не является ни процедурным, ни объектно-ориентированным, ни функциональным программированием. Мир моделируется с помощью сущностей, движущихся по модели. [11] Эти объекты, называемые транзакциями , рассматриваются как переходящие от блока к блоку , где блок представляет собой строку кода и представляет действия блока, которые влияют на саму транзакцию или другие объекты.

Блоки могут быть ориентированы на оборудование (например, машины в мастерской) или на транзакции (такие части незавершенного производства, сигналы в электронных компонентах или документы в бюрократических процедурах). GPSS автоматически отслеживает статистику, которая выводится в фиксированной форме в конце моделирования в виде стандартного отчета. GPSS - один из старейших языков-кандидатов первого объектно-ориентированного подхода, потому что, хотя транзакции действительно являются экземплярами объектов модели, блоки - это методы в современной концепции ООП.

Сущности можно в широком смысле классифицировать по ресурсам, вычислительным объектам и статистическим объектам. [11] Ресурсы, такие как Помещения и Хранилища, представляют собой ресурсы ограниченной емкости. Вычислительные объекты, такие как Ampervariables (переменные), функции и генераторы случайных чисел, используются для представления состояния транзакций или элементов их среды. Статистические объекты, такие как очереди или таблицы (гистограммы), собирают интересующую статистическую информацию.

Пример кода [ править ]

Следующий пример, взятый из Simulation using GPSS , [12] - это «Hello world!» GPSS и проиллюстрируем основные концепции.

Цель состоит в том, чтобы смоделировать один день работы парикмахерской. Клиенты приходят в случайном постоянном потоке, входят в магазин, выстраиваются в очередь, если парикмахер занят, стригутся в порядке очереди, а затем покидают магазин. Мы хотим знать среднюю и максимальную очередь ожидания, а также количество клиентов.

 МОДЕЛИРОВАТЬ; Определить модель * * Сегмент модели 1 *  GENERATE 18,6; Заказчик приезжает каждые 18 ± 6 мин. Стулья QUEUE; Введите строку ЗАХВАТИТЬ Джо; Захватить парикмахера Стулья DEPART; Покинуть линию ADVANCE 16,4; Стричься за 16 ± 4 мин. ВЫПУСТИТЕ Джо; Освободи парикмахера ПРЕКРАТИТЬ; Покинуть магазин * * Модель сегмента 2 * GENERATE 480; Таймер прибывает в время = 480 мин. ТЕРМИНАТ 1; Выключи бег * * Контрольные карты * СТАРТ 1; Начать один пробег КОНЕЦ ; Конечная модель

«Программа» включает между SIMULATEи ENDотчетностью, и разделена на сегменты «модель» и «контрольные карты».

Первый сегмент моделирует клиентов. GENERATEБлок создает поток операций и графиков их , чтобы войти в модель с временем прибытия между равномерно распределенным в диапазоне 18 ± 6. Программист обязан интерпретировать эти транзакции как клиентов и понимать, что время следует считать в минутах. Транзакции начинают свое существование в GENERATEблоке и переходят от блока к блоку в соответствии с определенными правилами, пока не достигнут точки, TERMINATEкоторая удаляет их из модели.

Обычно транзакции переходят от одного блока к другому, поэтому транзакции клиентов покидают GENERATEблок, чтобы войти в QUEUE Chairsблок. Этот блок имитирует очередь ожидания и соответственно собирает статистику. В этом примере он материализует ряд стульев, и в конце моделирования мы будем знать, среди прочего, максимальный размер очереди (сколько стульев необходимо) и среднее время ожидания. QUEUEБлок требует имя очереди в качестве параметра, потому что больше , чем одна очередь может существовать в модели. Каждый связан сDEPARTблок, который срабатывает, когда транзакция покидает очередь. GPSS запоминает, какие транзакции находятся в очереди, чтобы можно было узнать среднее затраченное время и убедиться, что ни одна транзакция с ошибками не покидает очередь без предварительного входа в нее.

После QUEUE chairsблока транзакция попытается перейти к SEIZE Joeблоку, который имитирует захват объекта с именем Джо. Помещения моделируют одиночные серверы мощностью один. Если объект занят, SEIZEто попытка транзакции будет отклонена в праве на вход. В этом примере клиент будет ждать в QUEUEблоке. Если он свободен или как только он станет доступным, транзакции будет разрешено захватить объект, пометить его как занятый для других транзакций и начать подсчет времени обслуживания и другой статистики, пока та же транзакция не пройдет соответствующий RELEASE Joeблок.

В SEIZE/ RELEASEпары связаны с именем объекта, поскольку многие независимые объекты могут существовать в модели. Они могут моделировать операторов, таких как парикмахер, ремонтник, агент, а также элементы оборудования, такие как кран, заправочная станция, разрешительный документ и т. Д., Фактически все, что имеет емкость один. Для моделирования нескольких параллельных серверов, таких как команда из пяти парикмахеров или печь вместимостью 10 человек, GPSS использует объекты с именем STORAGEs.

После того, как клиент схватил Джо, он переходит к следующему утверждению ADVANCE 16,4, задача которого - заморозить объект на заданный период времени, здесь случайное число, выбранное между 16-4 = 12 и 16 + 4 = 20 млн. Другие распределения времени обслуживания доступны через GPSS FUNCTION(понятие несколько отличается от функции в других языках программирования). В течение этого времени другим транзакциям будет разрешено перемещаться по модели, блокируя некоторые другие средства, которые могут существовать в модели, но не Джо, потому что это средство занято замороженным клиентом. По истечении установленного времени клиент проснется, перейдет к следующему утверждению, которое освободит Джо, и TERMINATE.

Тогда следующая транзакция в предыдущем блоке, то есть клиент, сидящий на стуле, сможет это сделать SEIZE Joe. Для выбора «следующей» транзакции GPSS использует принцип «первым пришел - первым обслужен» с приоритетом. Другие политики выбора могут быть запрограммированы путем прямого управления объектом цепочки будущих событий .

Параллельно с этим первым сегментом, имитирующим поведение клиентов, второй сегмент модели имитирует конец дня. В момент времени 480mn = 8h сущность - GENERATEd, которая появится TERMINATEв следующем блоке. На этот раз параметр TERMINATEas равен 1, что означает, что специальный счетчик уменьшается на 1. Когда этот счетчик достигает 0, программа останавливается и вывод распечатывается. Этот специальный счетчик настраивается с помощью STARTвыписки. В этом примере он установлен в единицу, таким образом, симуляция завершится после одного прогона 480 мин за моделируемое время.

Вывод содержит:

ОБЪЕКТЫ СРЕДНЕЕ КОЛИЧЕСТВО СРЕДНЕГО ИЗЪЯТИЯ ПРЕДНАЗНАЧЕНИЕ  ИСПОЛЬЗОВАНИЕ ЗАПИСЕЙ TIME / TRAN TRANS. НЕТ. TRANS. НЕТ. Джо .860 26 15.884 26ОЧЕРЕДЬ МАКСИМАЛЬНОЕ СРЕДНЕЕ ИТОГО НУЛЕВОЙ ПРОЦЕНТ СРЕДНИЙ СРЕДНИЙ ТАБЛИЧНЫЙ ТОК СОДЕРЖАНИЕ СОДЕРЖАНИЕ ЗАПИСИ НУЛИ ВРЕМЯ / ВРЕМЯ ТРАНС / НОМЕР ТРАНС СОДЕРЖАНИЕ Стулья 1 .160 27 12 44,4 2,851 5,133 1$ СРЕДНЕЕ ВРЕМЯ / ТРАНС = СРЕДНЕЕ ВРЕМЯ / ТРАНС ИСКЛЮЧАЯ НУЛЕВЫЕ ОБЪЕКТЫ

Это указывает на то, что Джо был занят 86,0% времени, подстригся 26 клиентам и что в среднем на стрижку уходило 15,88 минут. Между прочим, Джо стриг волосы клиента номер 26, когда симуляция была закрыта. Не было никаких программных положений, чтобы парикмахер закончил стрижку перед закрытием магазина.

Это также указывает на то, что в ожидании своей очереди наблюдался максимум 1 покупатель, фактически количество ожидающих покупателей составляло в среднем 0,160. В общей сложности в очередь вошли 27 покупателей, так что покупатель номер 27 все еще сидел, ожидая своей очереди, когда Джо закрыл магазин. Из этих 27 клиентов 12 были обслужены без ожидания. Фактически, очередь была пустой в 44,4% случаев. Среднее время ожидания составило 2,851 минуты, а среднее время ожидания для 15 = 27-12 клиентов, которые действительно ждали, составило 5,133 минуты.

См. Также [ править ]

Ссылки [ править ]

  1. ^ Арне Тезен; Дж. Уильям Шмидт (2014). Компьютерные методы исследования операций . ISBN 978-1483260747. GPSS - это язык моделирования, ориентированный на последовательность операций.
  2. ^ а б П. Фонсека Касас (2009). «jgpss, gpss-фреймворк с открытым исходным кодом для обучения моделированию» (PDF) . упростить разработку полного инструмента моделирования в соответствии с синтаксисом GPSS. Эта статья представляет ... В оригинале GPSS означала Программируемую систему моделирования Гордона в честь Джеффри Гордона, ее создателя.
  3. ^ (GPSS / 360, в MFT / MVT, но не в DOS)
  4. ^ DC Div (1968). «Техническая записка». IEEE Transactions по системной науке и кибернетике . 4 (4): 446–447. DOI : 10.1109 / TSSC.1968.300174 . IBM предлагает GPSS III для серий 7044 и 7090 и GPSS / 360 для более крупных 360 ... GPSS II также был доступен на UNIVAC 1108
  5. ^ «Введение в GPSS» (PDF) . о языке имитационного моделирования GPSS. ... вкратце; источники, сравнивающие GPSS и другие .... GPSS корпорации для оборудования Univac 1108)
  6. Б. Лисков (1981). «Сессия GPSS» . История языков программирования . ScienceDirect . С.  403–437 . DOI : 10.1016 / B978-0-12-745040-7.50013-2 . ISBN 9780127450407. Предыстория: Система моделирования общего назначения (GPSS) - это ... производители, которые выпустили версии GPSS: UNIVAC (Gorchow, 1968), CDC.
  7. ^ Набиль Р. Адам; Али Дограмачи (2014). Актуальные проблемы компьютерного моделирования . п. 25. ISBN 978-1483258034. Подобно GPSS ... в APL-версии GPSS, хотя APL является интерпретируемым языком. ... Univac Corporation, GPSS 1100 для системы UNIVAC 1108.
  8. ^ Введение в моделирование с помощью Gpss на ПК, MacIntosh и Vax . ISBN 0-1348-323-10.
  9. ^ "Система моделирования общего назначения Java" . Изучите моделирование построения движка моделирования. JGPSS - это реализация системы GPSS, основанная на Java.
  10. ^ «GPSS 50 лет, но все еще молод» . ResearchGate.net . 1 августа 2018 г. В 2011 г., GPSS, система моделирования общего назначения, ... классная комната учащиеся могут изучить очень простую модель железной дороги Lego.
  11. ^ а б Стэнли Гринберг (1972). GPSS Primer . Нью-Йорк: Wiley-Interscience. ISBN 0471324906.
  12. ^ Шрибер, Томас (1974). Моделирование с использованием GPSS . Вайли. ISBN 9780471763109.

Внешние ссылки [ править ]

  • Версия программного обеспечения Wolverine GPSS / H
  • Minuteman Software , компания, которая предоставляет некоторые реализации
  • aGPSS: ПК и Mac: ориентировано на образование и профессионалов
  • Система моделирования общего назначения JGPSS Java.
  • GPSS360 Online GPSS360 - Потомок оригинального GPSS