Построение имитационной модел
Например, речь человека можно описать в виде текста, то есть дискретной моделью. Можно записать речь как непрерывную звуковую волну, то есть как непрерывную функцию времени. Затем можно эту же звуковую волну оцифровать, то есть вновь представить дискретной моделью, и такая модель будет не менее точной, чем непрерывная.
Рассмотрим теперь, как соотносятся модели математические и компьютерные.
При моделировании реальных систем мы вначале составляем некоторое представление о реальной системе, достаточно точное. Это значит, что мы формируем математическую модель системы. Затем эту математическую модель мы превращаем в модель компьютерную. Следовательно, математические представления играют при моделировании роль своеобразного связующего звена между компьютерными моделями и реальными системами.
Но мы должны понимать, что объекты, реализованные в компьютерной программе, только лишь похожи на соответствующие математические объекты, но не идентичны им. Например, прямая линия на экране дисплея не есть то же самое, что прямая линия в математике. В математике прямая не имеет толщины. А на экране компьютера прямая не может не иметь определенную толщину, иначе она не была бы видна.
Это обычная компьютерная практика - моделировать математические объекты с известными свойствами посредством физических (компьютерных) объектов, которые сами этими свойствами не обладают. При этом, хотя точность моделирования математических объектов компьютерными может быть очень высокой, это все-таки не избавляет нас от необходимости понимания замаскированных различий между исходными математическими объектами и их компьютерными образами.
Язык (система) имитационного моделирования дискретных систем GPSS позволяет автоматизировать при моделировании систем процесс программирования моделей. В настоящее время он является одним из наиболее эффективных и распространенных программных средств моделирования сложных дискретных систем на ЭВМ и успешно используется для моделирования систем, формализуемых в виде схем массового обслуживания, с помощью которых описываются многие объекты.
С помощью языка имитационного моделирования GPSS очень удобно моделировать работу систем массового обслуживания (парикмахерская, заводской цех и др.).
Язык GPSS построен в предположении, что моделью сложной дискретной системы является описание ее элементов и логических правил их взаимодействия в процессе функционирования моделируемой системы.
Рассмотрим такую задачу: В парикмахерскую с одним парикмахером приходят клиенты через 20 ± 10 минут друг за другом. Время стрижки одного клиента составляет 19 ± 5 мин. Требуется определить среднюю длину очереди клиентов и среднее время ожидания клиентами начала обслуживания.
Эту задачу можно изобразить схематически следующим образом:
Рис.8. Схема работы парикмахерской (число обслуживающих каналов равно 1)
В соответствии со схематическим изображением парикмахерской ее модель на языке GPSS может быть написана следующим образом:
GENERATE 20,10
SEIZE 1
ADVANCE 19,5
RELEASE 1
TERMINATE
Здесь левая колонка - это номера строк модели: произвольные положительные числа в порядке возрастания. Строки нумеруются не: 1, 2, 3 и т.д. Удобнее всего нумеровать их так, как показано: 10, 20, 30 и т.д. Это позволяет легко вставлять новую строку между любыми двумя уже введенными строками и присваивать ей номер, например 15, 25, 26 и т.п. В системе GPSS World можно не нумеровать строки.
Следующие две колонки - названия операторов и поле переменных. Рассмотрим, какие же операторы входят в модель, и для чего они предназначены.
Блок GENERATE порождает транзакты (клиентов) через каждые 20 ± 10 единиц времени (в данном примере считаем единицу времени минутой). Число 20 в первом операнде (в поле A) указывает интервал модельного времени, через который генерируются транзакты. В поле B записано число 10, которое задает временные границы интервала, т.е. время прихода очередного клиента получается как случайное число в промежутке от 20 - 10 = 10 до 20 + 10 = 30.
Таким образом, первый блок модели выдает через случайные интервалы времени транзакты, которые изображают приходящих в парикмахерскую клиентов.
Блок SEIZE 1, в который поступают транзакты из блока GENERATE, выполняет операцию занятия транзактами устройства номер 1.
В нашей модели устройство соответствует креслу парикмахера или самому парикмахеру. Транзакты, появляющиеся в блоке GENERATE в моменты, когда устройство занято, остаются в этом блоке в очереди к устройству.
Блок ADVANCE 19, 5 задерживает транзакт, который занял устройство, на 19 ± 5 единиц времени, моделируя тем самым задержку клиента на время его обслуживания.