Научная статья на тему 'Путь от аналоговых моделей к симулятору на цифровом компьютере'

Путь от аналоговых моделей к симулятору на цифровом компьютере Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
489
205
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Емельянов Александр Анатольевич

Симулятор GPSS появился быстро, без предварительного планирования и при неожиданно незначительных усилиях. В разработке GPSS были неосознанные попытки использовать опыт аналогового моделирования, приобретенный при изучении систем управления ракетами в исследовательской лаборатории компании General Electric в Англии. Под влиянием опыта моделирования на аналоговом компьютере появилось представление диаграмм моделей в виде блок-схем, сформировалась выразительность языка GPSS и создан алгоритм симуляции, что сделало язык и симулятор доступными в большей степени для системных аналитиков, чем для программистов.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Путь от аналоговых моделей к симулятору на цифровом компьютере»

№>5(11)2007

А.А. Емельянов

Путь от аналоговых моделей к симулятору на цифровом компьютере

Симулятор GPSS появился быстро, без предварительного планирования и при неожиданно незначительных усилиях. В разработке GPSS были неосознанные попытки использовать опыт аналогового моделирования, приобретенный при изучении систем управления ракетами в исследовательской лаборатории компании General Electric в Англии. Под влиянием опыта моделирования на аналоговом компьютере появилось представление диаграмм моделей в виде блок-схем, сформировалась выразительность языка GPSS и создан алгоритм симуляции, что сделало язык и симулятор доступными в большей степени для системных аналитиков, чем для программистов.

Имитационное моделирование (англ. simulation) — распространенная разновидность аналогового моделирования, реализуемого с помощью набора математических средств, специальных компьютерных программ-симуляторов и особых информационных технологий, позволяющих создавать в памяти компьютера процессы-аналоги, с помощью которых можно провести целенаправленное исследование структуры и функций реальной системы в режиме ее имитации, осуществить оптимизацию некоторых параметров.

Эти вычислительные процессы выполняются параллельно и взаимодействуют, а по своим параметрам являются аналогами исследуемых процессов (с точностью до масштабов времени и пространства)1.

Довольно часто создатели имитационных моделей, особенно — начинающие, не понимают, почему этот вид моделирования называется аналоговым. Как следствие, неумение научно осознавать аналогии в процессах различной природы приводит к систематическим ошибкам в моделях и появлению некорректных результатов. Данная статья предназначена, прежде всего, для обоснования ме-

тодов компьютерной имитации как разновидности аналогового моделирования — одного из мощных средств системного анализа.

Джеффри Гордон, автор и разработчик первого в истории моделирования симуля-тора GPSS, отмечал: «В разработке GPSS были неосознанные попытки использовать аналоговый компьютер. Более того, я уверен, что представление диаграмм моделей в идее блок-схем и выразительность языка сделали его доступным для системных аналитиков больше чем для программистов, и что это пришло под влиянием опыта моделирования на аналоговом компьютере.

Благодаря моей собственной квалификации я начал моделировать на аналоговых компьютерах в начале 50-х годов, когда работал над изучением управляемых ракет в исследовательской лаборатории компании General Electric в Англии. Аналоговое моделирование, конечно, имеет другую — отличающуюся от цифрового моделирования технику. Однако любой из тех, кто работал с аналоговым моделированием, мог сказать о том, что аналоговый компьютер за счет приближения к проблемной области притягивал к себе пользователей.

1 В странах, занимающих лидирующее положение в создании новых компьютерных систем и IT, научное направление Computer Science использует именно такую трактовку имитационного моделирования.

41

li95(11)2007

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

Вычислительная техника часто позволяет повысить наглядность и скорость моделирования благодаря методам, которые основаны на особых кибернетических свойствах вычислительных устройств и позволяют осуществлять действия, объединяемые общим названием «аналоговое моделирование». Аналоговое моделирование основано на применении электронных или алгоритмических аналогов, реализуемых в вычислительном устройстве и отражающих реальные процессы. Например, сложно формализуемые задачи линейного программирования в экономике и модель циркуляции щ крови в сердечно-сосудистой системе че-^ ловека решаются гораздо эффективнее § и нагляднее на аналоговых вычислительных | машинах — специальных электронных уст-5 ройствах, которые сейчас имеются только § в больших исследовательских лаборатори-§ ях и большинству компьютерных пользователей известны лишь понаслышке. Поэтому * в XX веке аналоговые машины успешно ис-<э пользовались наряду с цифровыми вычис-|| лительными машинами.

1

£ Аналоговые вычислительные машины

| Электронная аналоговая вычислитель-Ц ная машина (АВМ) — вычислительное уст-5 ройство для воспроизведения (моделиро-г§ вания) определенных соотношений между ¡5 непрерывно изменяющимися машинными § переменными, являющимися физическими

2 аналогами соответствующих переменных ^ решаемой задачи. В качестве таких аналогов используются электрические напряжения и токи, а искомые соотношения модели-

42

руются физическими процессами, протекающими в электрических цепях электронных устройств.

Основными решающими элементами в АВМ являются операционные усилители. В 40-50-е годы XX века выпускались операционные усилители на электронных ламповых триодах, в 60-70-е — на полупроводниковых транзисторах, а в 80-е годы появились миниатюрные прецизионные усилители в виде интегральных схем.

Первая американская электронная АВМ появилась в 1944 году. Первые отечественные АВМ, построенные на операционных усилителях постоянного тока, были созданы в 1948 году. В то время цифровые вычислительные машины были очень медленными (использовались в основном счетно-перфорационные машины в банковском деле). Именно операционные усилители, работающие по принципу систем автоматического регулирования с глубокой отрицательной обратной связью, позволили осуществить точное моделирование математических операторов (в том числе, главных операторов интегрирования) и параллельную обработку информации в реальном времени при решении систем дифференциальных уравнений.

В первую очередь АВМ стали использовать в виде самостоятельных средств математического моделирования динамических объектов в реальном времени. Часто они входили в состав тренажеров (авиационных, космических, атомных установок, транспортных средств и т. п.). Со временем, в связи с прогрессом в области цифровой электроники, АВМ все чаще стали подключать к цифровым вычислительным машинам для совместной обработки информации.

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

№>5(11)2007

ясняется это следующими обстоятельствами. За последние 20 лет произошла колоссальная универсализация цифровой вычислительной техники и микроминиатюризация элементной базы. Стоимость современных компьютеров невысока. Увеличилась доступность их использования широким кругом простых пользователей, не являющихся специалистами в области Computer Science. В результате сейчас аналоговые вычислительные устройства в основном используются:

• в некоторых крупных исследовательских лабораториях (во всем мире применяется не более 100 мощных аналоговых машин);

• в составе самых различных навигационных приборов и в системах управления современными самолетами, ракетами, подводными лодками и космическими кораблями, где бортовые цифровые компьютеры решают свои задачи совместно с аналоговыми вычислителями, которые по-прежнему обладают большой скоростью и надежностью.

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

Чтобы лучше понять простейшие решения в моделировании на аналоговых вычислителях рассмотрим два упрощенных примера использования операционных усилителей. Обычно операционный усилитель обозначается как треугольник (рис. 1 а).

1. Дифференцирующий усилитель. Это устройство, в котором входное напряжение Uin связано с выходным Uout соотношением

где K — коэффициент.

и¡с — начальные условия в г

Рис. 1. Обозначения в программах аналоговых вычислителей:

а — операционный усилитель; б — дифференцирующий усилитель; в — интегрирующий усилитель; г — суммирующий интегратор на базе операционного усилителя

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

Если считать такой усилитель идеальным, то можно записать и пп = ис и иоШ = - Я /Ь, где и пп — входная переменная (напряжение), иш — выходная переменная, ис — напряжение на конденсаторе, Я и 1Ь — сопротивление и ток в цепи обратной связи соответственно. Учитывая,что

dt '

43

И95(11)2007

получим

и„,

---нс

л

где НС = т — постоянная времени дифференцирующего усилителя.

2. Интегрирующий усилитель. Это устройство, в котором входное и выходное напряжения связаны соотношением

ип,

= к | и ,па.

Простейшим интегрирующим цепям (например, НС-цепям) аналогичны недостатки предыдущего устройства. Схема интегрирующего усилителя приведена на рис. 1в. Считая операционный усилитель идеальным можно записать Uin = Я1п и иш = ис,

лип

а учитывая, что Iп = -¡1Ь = С Ц]^ = -С лиш. Следовательно

я лг

, получим

£

е а

в §

0 со

и §

1

I

и

1

к й

5

I <0

Цош =-

НС

| Цплг,

где НС = т — постоянная времени интегрирующего усилителя.

Условное обозначение суммирующего интегратора на основе операционного усилителя показано на рис. 1г.

Преимущества аналоговых вычислителей заключаются в их высоком быстродействии: интегрирование дифференциального уравнения с помощью миниатюрного электронного устройства — операционного усилителя — происходит очень быстро, без выполнения многих миллионов операций по какой-то сложной программе, как это происходит в обычном цифровом компьютере. Правда по точности результаты уступают решениям, полученным на цифровом компьютере: на хорошей аналоговой машине относительная погрешность составляет 0,1% (ошибка может появиться в четвертом знаке). Поэтому на таких машинах можно

проводить экономико-математические исследования, но реальные финансовые расчеты проводить недопустимо.

В отличие от цифровых вычислительных машин в большинстве аналоговых машин используются вполне определенные отдельные решающие элементы для каждой математической операции, входящей в процесс решения данной задачи. При этом появляется возможность параллельной работы, которая позволяет получить очень высокие скорости решения задач на аналоговых вычислительных машинах: большинство из них независимо от сложности решается за две минуты «медленными» аналоговыми машинами и за доли секунды машинами с периодизацией решения. С другой стороны, параллельная работа накладывает практические ограничения на сложность задач, которые могут быть решены на аналоговых вычислительных машинах. Эти ограничения зависят непосредственно от задачи. Например, маленькая машина с 20 усилителями легко решает четыре нелинейных дифференциальных уравнения второго порядка, которые описывают динамическую систему с четырьмя степенями свободы; аналоговая вычислительная машина с 80 усилителями может без особого труда описать систему с десятью степенями свободы. Намного более сложные задачи, требующие до 1000 усилителей, успешно решаются на больших машинах.

Точность отдельных решающих элементов, осуществляющих операции сложения, умножения, интегрирования и т. д., лежит в пределах 0,005-3% полной шкалы значений. Если нужно получить точность элементов выше 0,2%, то при этом резко повышается стоимость вычислительного оборудования. Точность, которой можно добиться при решении всей задачи, определенным образом зависит от самой задачи, ее постановки на машине, а также от точности решающих элементов, так как ошибки могут или взаимно компенсироваться или складываться при решении задач, связанных с линейными дифференциальными уравнения-

44

0

1

0

Не5(11) 2007

ми с постоянными коэффициентами. Общая точность решения на аналоговых вычислительных машинах равна точности по компонентам, если эти решения имеют хорошее затухание.

Простота программирования на аналоговой машине дает возможность специалисту по системной инженерии создать масштабную модель, с помощью которой удобно проводить исследования характера работы и взаимодействия процессов и систем. Аналоговые машины позволяют быстро проверить новые идеи и гипотезы; блоки счетно-решающих элементов легко заменить или перепрограммировать подругой схеме. Схемы расчетов по моделям, которые одновременно являются схемами программ, очень легки для восприятия. Некоторые простые примеры показаны на рис. 2.

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

Моделирование задач в реальном масштабе времени, которое требует высокой точности расчетов (например, вычисление траекторий с координатными преобразователями в трехмерном пространстве), и моделирование компонентов цифровых систем привело к естественным попыткам объединения существующих аналоговых и цифровых машин во многих больших лабораториях моделирования. Техника совместного моделирования впервые стала применяться в промышленности, связанной с космическими исследованиями.

В примере, представленном на рис. 3, показана схема лабораторного экспери-

яад.....?}

рлт,х2щ.....п

ытхдо.....и

л*«,*'«.....п

со

I

I?

Х'(0) „ Х(0)

Рис. 2. Примеры аналоговых вычислений:

а — решение дифференциального уравнения первого порядка;

б — система уравнений первого порядка; в — уравнения второго порядка(модель движения в пространстве)

мента, где универсальный компьютер связан стандартными преобразователями с бортовым аналоговым вычислителем, работающим в реальном масштабе времени. На долю компьютера приходится та часть вычислений в масштабе времени 1:1, для которой он лучше всего приспособлен: точные координатные преобразования, вычисления траекторий и моделирование управляющего цифрового оборудования. Аналоговый вычислитель моделирует динамическую часть системы управления, которая связана с большей полосой частот и меньшей точностью.

Огромный вклад аналоговых вычислительных машин в 50-70 годы XX века в достижения современного системного анализа

45

Ив5(11) 2007

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Цифровой компьютер общего назначения

Усилие, развиваемое двигателем ракеты

Порт ввода

Пересчет движения ракеты:

1) уравнения движения;

2) вращение Земли;

3) система движения;

4) координатные преобразователи

Положение ракеты и ее скорость

Положение мишени

Управление ведущего компьютера:

1) цифровая фильтрация;

2) постоянные траектории;

3) коэффициенты усиления системы управления

Порт вывода

Аналоговый вычислитель

Угловые скорости ракеты (наклоны относительно поперечной оси, рыскание, вращение) и отклонения двигателя ракеты

Аналого-цифровые преобразователи

1 к

Автопилот и вращательная динамика: 1) угловые ускорение и скорость; 2) коэффициент усиления автопилота и постоянные времени; 3) чувствительность двигателя ракеты; 4) центр гравитационных изменений

Цифро-аналоговые преобразователи

т

Команды управления:

1) угловые скорости наклона;

2) рыскание

Рис. 3. Комбинированное аналого-цифровое моделирование системы управления ракетой

£

Й а

в §

0 со

и §

1

I

и

1

к й

5

I <0

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

Сейчас некоторые аналоговые методы и модели, зародившиеся в мире аналоговых вычислительных машин, перекочевали на цифровые компьютеры и благодаря новым цифровым вычислительным возможностям стали еще более эффективными. Два самых известных примера применения аналоговых методов на современных цифровых компьютерах:

• метод интегрирования Монте-Карло, существенно сокращающий время расчета

на компьютере интегралов произвольной кратности с любой подынтегральной функцией (в результате в ряде случаев стало возможным отказаться от применения сложных программ численного интегрирования);

• симулятор Дж. Гордона, позволяющий избежать решения сложных систем дифференциальных уравнений при решении задач массового обслуживания (многие из них и не имели аналитических решений).

Важное замечание. К сожалению, иногда под термином «компьютерное моделирование» понимают решение дифференциальных уравнений, описывающих процессы реальной действительности, с помощью сложных программ на основе численных (приближенных) методов высшей математики. Но такое моделирование является не компьютерным, а чисто математическим, так как моделью является дифференциальное уравнение, составленное математиком

46

Не5(11) 2007

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

• повышенные погрешности (ошибки недопустимой величины);

• резкое увеличение сложности компьютерных программ и времени расчета.

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

^Ро( Г) = -Хро( Г) + Г), 6Г

а

Pn(t) = -Хрп-1( t) -(Х + ц)рп(t) + црл+1(Г), п > 1;

где р((Г) — вероятность того, что в момент времени Г в системе находится ровно (заявок, 0 < п, п ^да; Х — интенсивность входного потока заявок (простейший поток); ц — интенсивность обслуживания заявок (экспоненциальный закон).

Интенсивности Х и ц связаны со средним интервалом поступления заявки Га и сред-

ним временем обслуживания заявки Г3 соотношениями: Х=1/Га и ц=1/Г8.

Видно, что число уравнений в системе сверху не ограничено. К счастью, в этом ¡Я простейшем случае с помощью метода пол- < ной математической индукции и соответствующего предельного перехода (при п ^да) можно получить аналитическое решение, чего нельзя сказать про более реальные случаи. Задача может усложниться тем, что в исследуемой системе массового обслуживания не одна, а много взаимосвязанных очередей. Это означает, что совместно надо решать много систем дифференциальных уравнений. Возникает вопрос, как решить такие уравнения. Готовых пакетов прикладных программ для этого не существует.

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

Далее рассмотрим возможности цифрового компьютера. Если использовать те же системы дифференциальных уравнений, то

47

6

Н95(11)2007

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

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

Пример 1. Допустим, в поселке имеется небольшая парикмахерская. С точки зрения сферы услуг — это типичная система массового обслуживания: в ней есть обслуживающее устройство (парикмахер), механизм формирования очереди (комната ожи-щ дания) и генератор заявок (поселок и его ^ жители). Проанализируем временной фраг-§ мент ее работы в начале дня. | Исходное состояние системы: в парик-5 махерской никого нет, но после открытия § в нее пойдет поток клиентов. Все они могут § быть поименованы и представлены бумаж-=§■ ными фишками, на которых можно простав-* лять числа, соответствующие каким-то вре-<э менам. На листе бумаги нарисуем узлы сис-|| темы массового обслуживания «Жители | поселка», «Комната ожидания» и «Парик* махер», как это показано на рис. 4а. [Ц Первый временной интервал, характер-Ц ный для нашей парикмахерской — простей-5 шей системы массового обслуживания — г§ это интервал поступления клиентов. Интер-¡5 вал поступления ограничен моментами вхо-§ да в парикмахерскую данного клиента 2 и клиента, зашедшего перед ним. Для первого клиента этот интервал равен времени пути от дома до парикмахерской в предположении, что он вышел одновременно с от-

48

крытием парикмахерской, например в 9 часов (но можно придумать и другие варианты).

В нашем примере первый клиент — это Демидов, который войдет в комнату ожидания в 9:14. Далее все отрезки времени будем измерять в минутах полагая, что нулевая отметка соответствует 9:00. В табл. 1 содержатся данные о первых восьми клиентах. Их порядок входа и имена обозначены в столбце 2. Интервалы поступления (столбец 4) определяются на основании хронометража моментов входа клиентов относительно 9:00 (столбец 3). Эти интервалы могут зависеть от разных обстоятельств: переменчивых вкусов самого клиента (от самой заявки), внешнего вида других известных клиентов (от других соседних заявок), времени года (от внешней среды), рекламы парикмахерской или, вообще, быть случайными и независимыми.

Интервал сервиса или обслуживания (столбец 5) также зависит от разных обстоятельств: моды, вкуса клиента, внешнего вида других обслуженных клиентов, времени года, рекламы парикмахерской или, так же как интервалы поступления, быть случайными и независимыми. Время входа к мастеру (столбец 6) определяется как момент времени перехода из комнаты ожидания в зал обслуживания к парикмахеру. Для Демидова, поскольку он первый, этот момент совпадает с моментом входа в парикмахерскую, но для других клиентов это время отличается на длительность задержки в очереди. Если найти аналоговое правило или унифицированный алгоритм определения таких моментов, то можно отказаться от решения систем дифференциальных уравнений, определяющих состояния системы массового обслуживания. Задержка в очереди (столбец 7) определяется как разность между показаниями в столбцах 6 и 5 для конкретного клиента.

Заготовим для всех клиентов фишки с фамилиями и расставим их по порядку, определяемому номером. В качестве времен в начальный момент на фишках про-

Ив5(11) 2007

ставляются только интервалы поступления (рис. 4а). Будем записывать все изменения виртуального времени моделирования на специальном листке-таймере, обозначен-

ном как Timer. Будем считать, что во время эксперимента фишка всегда находится в каком-то процессе типа «генератор», «очередь», «обслуживание» или удалена из

Жители поселка (генератор заявок)

Конверт с подготовленными фишками

Жители поселка (генератор заявок)

Конверт с подготовленными фишками

I

I?

Комната ожидания

Парикмахер

Конверт с использованными фишками

Листок-таймер

Комната ожидания (очередь)

Заявка ЛУ Заявка I Живаго I Волков V 0мин. уу 0мин.

Парикмахер (обслуживание)

Заявка =t Елин | 3 мин. m

Конверт с использованными фишками

Листок-таймер

Рис. 4. Аналоговый макет-симулятор массового обслуживания:

а — начальное состояние макета (Timer = 0); б — макет в процессе имитации (Timer = 47)

49

Ив5(11) 2007

Таблица 1

Таблица формирования виртуального времени в аналоговом симуляторе, мин.

№ п/п Порядок и фамилия клиента Время входа относительно 9:00 утра Интервал поступления клиента Интервал обслуживания Время входа к мастеру* Задержка в комнате ожидания*

1 2 3 4 5 6 7

1 Демидов 14 14 20 14 0

2 Елин 32 18 16 — —

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

3 Волков 42 10 12 — —

4 Живаго 47 5 28 — —

5 Алёхин 96 49 22 — —

6 Боковой 146 50 8 — —

7 Ёлкин 182 36 42 — —

8 Грибов 224 42 44 — —

* Незаполненные ячейки читателю предлагается рассчитать самостоятельно.

модели. Время передвижения фишки будем считать пренебрежимо малым. В модели участвуют только фишки, находящиеся в генераторе, очереди и на обслуживании. Генератор может содержать только одну щ фишку — очередного клиента, который ¡^ пойдет в парикмахерскую. Как только фиш-§ ка из генератора перейдет в очередь, осво-g бодившееся место в генераторе сразу зай-§ мет следующая фишка из конверта. Фишки | в конвертах при моделировании в данном § случае не учитываются. U Введем понятие «события» (пока только ^ для нашего аналогового макета). Собы-<э тие — это факт выхода фишки из процесса | (генератора, очереди или обслуживания). I Событие называется текущим, если оно по* мечено нулевым значением временного ин-[Ц тервала. Событие называется будущим, ес-g ли оно помечено ненулевым положитель-5 ным значением временного интервала. | Введем полезные обозначения:

I

=с NTmer — число фишек, находящихся в мо-¡5 дели на момент времени Timer; ¡2 MTmmer — множество номеров фишек, на-с= ходящихся в модели на момент времени Timer.

50

Определим две основные фазы процесса (рис. 5) для симуляции массового обслуживания, поочередно используемые в нашем макете, предполагая, что в начальный момент времени Timer = 0.

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

1) в каких-то процессах застряли фишки с ненулевыми интервалами и мешают продвижению (например, фишка на обслуживании мешает очередной фишке попасть к парикмахеру);

2) все подготовленные фишки закончились, а эксперимент завершился.

Фаза 2. Когда продвижение фишек в модели остановилось нужно:

1) посмотреть на все NTimer фишек, имеющихся в модели в данный момент времени Timer, и увидеть ту, у которой проставлено наименьшее значение времени — обозна-

Не5(11) 2007

Посмотреть на все NTm«• фишек, имеющихся в модели на данный момент времени Timer, и увидеть ту, у которой проставлено меньшее время 7",™ (если их несколько, то выбирается любая из них)

> <

Увеличить значение таймера на время Гт|п: Timer - Timer + 7™

У найденной фишки 7"min заменить на 0

Времена у всех остальных фишек уменьшить на Тт¡„: Ti-Tj- 7min, / е М-[¡тег

Фаза 2 W

I

I?

Рис. 5. Алгоритм действий симулятора

чим его через Tmin (если их несколько, то выбирается любая из них);

2) увеличить значение таймера на это время Tmin:

Timer = Timer + Tmin;

3) у найденной фишки Tmin заменить на 0;

4) времена у всех остальных фишек уменьшить на Tmin:

Ti = Ti — Tmin- i e MTmer -

где Ti — новое значение времени, указанное на фишке;

5) перейти к фазе 1.

Итак, начнем эксперимент.

Заготовим для определенности 8 фишек (Демидов, Елин, Волков, Живаго, Алёхин, Боковой, Ёлкин, Грибов) и поместим их в конверт. Из конверта выбирается фишка Демидов и помещается в генератор.

Фаза 1. В модели есть только одна фишка Демидов (T = 14), которую продвинуть нельзя.

Фаза 2. Ситуация простейшая: в модели единственная фишка Демидов, MTimer = 1, Tmin = 14. Увеличим на 14 значение таймера:

Timer = 0 +14 = 14.

51

Ив5(11) 2007

Демидову вместо 14 проставим интервал 0.

Фаза 1. Фишка Демидов (T = 0) продвигается из генератора в очередь, а в генератор из конверта перемещается фишка Елин (T2 = 18). Путь Демидову свободен и дальше, поэтому фишка Демидов продвигается на обслуживание, получив значение времени обслуживания (T = 20).

Отмечаем время входа к мастеру на обслуживание: Timer = 14. Далее сразу определим задержку в очереди для первого клиента (фишка Демидов, порядковый номер 1):

■f13= 14 - 14 =

0,

£

Й S

i

Si §

0 со

t §

!

1

U

1 к

£ 5

I <0

q1 = f16

где t16 — время входа к мастеру (6-й столбец

табл. 1);

t13 — время входа в парикмахерскую (3-й

столбец в табл. 1).

Далее движения нет, а в модели две фишки: Демидов (U = 20) и Елин (t2 = 18).

Фаза 2. Число фишек в модели NTimer = 2. Выбираем фишку Елин в генераторе, имеющую минимальное значение интервала T2 = Tmin = 18. Далее увеличим значение таймера:

Timer = 14 + 18 = 32.

Елину вместо 18 проставим 0. Интервал Демидова уменьшим:

T1 = 20 - 18 = 2.

Фаза 1. Фишка Елин (T2 = 0) продвигается в очередь из генератора, а на освободившееся место сразу попадает из конверта фишка Волков (T3 = 10). Елину выход из очереди на обслуживание пока запрещен, и эта фишка остается в очереди.

Фаза 2. Число фишек в модели NTmner = 3. Выбираем фишку Демидов, находящуюся на обслуживании и имеющую минимальный интервал T = Tmin = 2. Увеличим значение таймера:

Timer = 32 + 2 = 34.

Демидову вместо 2 проставим 0. Интервал Волкова уменьшим:

T3 = 10 - 2 = 8.

Фаза 1. Число фишек в модели NVrner = 3. Фишка Демидов выходит из модели и попадает в конверт. Фишка Елин занимает место на обслуживание и получает новое значение интервала T2 = 16. Далее продвижение в модели останавливается.

Фаза 2. Число фишек в модели NVrner = 2. Выбираем фишку Волков в генераторе: T3 = Tmin = 8. Увеличиваем значение таймера:

Timer = 34 + 8 = 42.

Волкову вместо 8 проставим 0. Интервал Елина уменьшим:

T2 = 16 - 8 = 8.

Фаза 1. Число фишек в модели NVrner = 2. Фишка Волков продвигается в очередь, а на ее место попадает фишка Живаго (T4 = 5). Волков дальше на обслуживание не попадает: место занято Елиным (T2 = 8).

Фаза 2. Число фишек в модели NVrner = 3. Выбираем фишку Живаго в генераторе: T4 = Tmin = 5. Увеличиваем значение таймера:

Timer = 42 + 5 = 47.

Живаго вместо 5 проставим 0. Интервал Елина уменьшим:

T2 = 8 - 5 = 3.

Фаза 1. Число фишек в модели NVrner = 3. Фишка Живаго продвигается из генератора в очередь и становится на второе место после Волкова, а на освободившееся место помещается фишка Алёхин (T5 = 49).

Именно последняя ситуация показана на рис. 4б. Используя две вышеуказанные группы действий можно очень просто заполнить два столбца таблицы и получить полезную и, главное, точную информацию, соответствующую конкретным исходным данным: среднюю задержку в очереди, максимальную задержку, сколько мест нужно иметь в комнате ожидания.

52

Не5(11) 2007

Реальные системы и процессы массового обслуживания намного сложнее. Число процессов, особенно в логистических системах, доходит до нескольких сотен. Так просто, как это было сделано в нашем случае вручную, их нельзя макетировать. Однако рассмотренные два вида действий и правила их выполнения, если бы можно было сделать макет, всегда справедливы.

А теперь представим, что каждая фишка — это маленький участок оперативной памяти цифрового компьютера, а процессы — автономные компьютерные программы, которые «перепасовывают» друг другу такие фишки с помощью адресов-указателей. В макете рассмотрены только простейшие процессы (генератор, очередь и обслуживающее устройство). Однако существуют средства автоматизированного создания и иных типовых процессов с последующей компоновкой из них имитационных моделей. Они вместе с симулятором входят в состав системы имитационного моделирования.

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

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

скорректировано в соответствии с простейшим соотношением, на которое время процессора практически не тратится (по сравнению с решением системы дифференциальных уравнений):

q-

q ■ n + q^j n +1

после чего n приравнивается n + 1, и моделирование продолжается.

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

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

Итак, на вопрос, почему имитационное моделирование является разновидностью аналогового, с помощью рассмотренного выше примера получен наглядный ответ.

Список литературы

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

1. Беки Г.Е., Герлах Д.Л. Моделирование. В кн.: Справочник по системотехнике / под ред. Р.Е. Макола. М.: Советское радио, 1970.

2. Бражник А.Н. Имитационное моделирование: возможности GPSS World. СПб.: Реноме.

3. Емельянов А.А., Власова Е.А., Дума Р.В. Имитационное моделирование экономических процессов / под ред. А.А. Емельянова. М.: Финансы и статистика, 2006.

4. Gordon G. The development of the general purpose simulation system (GPSS). In: History of Programming Languages. New York: ACM, 1981.

53

i Надоели баннеры? Вы всегда можете отключить рекламу.