Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Бочкарев А.А. Моделирование в среде AnyLogic. К...doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
1.39 Mб
Скачать

2.3. Виды моделирования

Основными видами моделирования систем являются:

  • дискретно-событийное моделирование;

  • непрерывное моделирование;

  • комбинированное непрерывно-дискретное моделирование;

  • моделирование по методу Монте-Карло.

Рассмотрим каждый из основных видов моделирования.

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

  • выполняется в течение нулевого времени;

  • может вызвать изменения состояния системы;

  • может запланировать другие события в будущем.

Примерами события являются приход клиента в отделение банка, окончание обслуживания или количество сырья на складе достигает максимально (минимально) допустимого уровня.

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

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

Рис. 2.4. Система массового обслуживания с одним устройством обслуживания

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

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

Существует два основных подхода к продвижению модельного времени: продвижение времени от события к событию и продвижение времени с постоянным шагом.

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

Пример 2.2. Рассмотрим механизм продвижения времени от события к событию в системе массового обслуживания с одним устройством обслуживания (рис. 2.5), ее схема рассмотрена в примере 2.1 (см. рис. 2.4).

Введем следующие обозначения:

ti – время поступления требования i (t0 = 0);

Ai = titi-1 – время между поступлениями требования i–1 и i;

Si – время, потраченное устройством на обслуживание требования i (без учета времени задержки требования в очереди);

Di – время задержки требования в очереди;

ci = ti + Di + Si – время ухода требования i по завершении обслуживания;

ei – время возникновения события i любого типа, принимаемое часами модельного времени (e0 = 0).

Каждый из представленных выше параметров, как правило, является случайной величиной. Предположим, что нам известны распределения вероятностей для времени поступления требований A1, A2, … и для времени обслуживания S1, S2, … и что они имеют функции распределения, обозначенные как FA и FS соответственно. В момент времени e0 = 0 устройство находится в состоянии незанятости. Время поступления первого требования определяется путем генерации значения A1 из FA и прибавления его к 0. После этого часы модельного времени переводятся на время возникновения следующего (первого) события e1 = t1. На рис. 2.5 изогнутые стрелки представляют продвижение часов модельного времени. Поскольку на момент t1 устройство находится в состоянии незанятости, оно немедленно начинает обслуживание с задержкой требования в очереди D1 = 0, и его состояние меняется на занятое. Время c1 завершения обслуживания поступившего требования определяется путем генерации значения S1 из FS и прибавления его к t1. Время поступления второго требования t2 вычисляется по формуле t2 = t1 + A2, где значение A2 генерируется из FA. Если t2 < c1, как показано на рис. 2.5, часы модельного времени переводятся с e1 на e2 = t2. (Если бы c1 было меньше t2, часы были бы переведены с e1 на e2 = c1). Так как требование, поступившее в момент времени t2, обнаруживает, что устройство обслуживания уже занято, число требований в очереди увеличивается с 0 до 1, а время поступления требования записывается. Однако в этот раз не генерируется время обслуживания требования S2. Время поступления третьего требования вычисляется по формуле t3 = t1 + A2. Если c1 < t3, как показано на рис. 2.5, часы модельного времени переводятся на время возникновения следующего события e3 = c1. Когда требование, обслуживание которого завершено, уходит, начинается обслуживание требования в очереди (того, которое поступило в момент времени t2), вычисляется время его задержки в очереди D2 = c1t2 и время обслуживания c2 = c1 + S2 (теперь S2 генерируется из FS), а число требований в очереди меняется с 1 на 0. Если t3 < c2, часы модельного времени переводятся с e3 на время возникновения следующего события e3 = t3 и т.д. Моделирование может быть прервано, например, в случае, когда число требований, задержка которых в очереди была учтена, достигнет указанного значения.

Рис. 2.5. Механизм продвижения времени от события к событию в системе с одним устройством обслуживания

Компоненты дискретно-событийной имитационной модели и их организация будут рассмотрены в разделе 9 «Дискретно-событийное моделирование».

Непрерывное моделирование – это моделирование системы по времени с помо­щью представления, в котором переменные состояния меняются непрерывно по отношению ко времени. Как правило, в непрерывных имитационных моделях ис­пользуются дифференциальные уравнения, которые устанавливают отношения для скоростей изменения переменных состояния во времени. Если дифференци­альные уравнения очень просты, их можно решать аналитически, чтобы предста­вить значения переменных состояния для всех значений времени как функцию значений переменных состояния в момент времени 0. При больших непрерывных моделях аналитическое решение невозможно, но для численного интегрирования дифференциальных уравнений в случае с заданными специальными значениями для переменных состояния в момент времени 0 используются технологии численного анализа, например интегрирование Рунге-Кутта.

Некоторые продукты для моделирования, в частности SIMULINK, разрабатывались специально с целью создания непрерывных имитационных моделей. Кроме того, такие пакеты дискретно-событийного моделирования, как Arena и Extend, имеют возможности для непрерывного моделирования и дополнительные возможности, которые позволяют использовать дискретные и непрерывные компоненты в одной модели одновременно.

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

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

,

где a – скорость размножения добычи в отсутствии хищников, –bx2 – потери от хищников.

Развитие популяции хищников зависит от количества пищи (добычи), при отсутствии пищи x1 = 0 относительная скорость изменения популяции хищников равна , наличие пищи компенсирует убывание, и при x1 > 0 имеем

.

Таким образом, система Вольтерра – Лотка, имеет вид:

(2.1)

где a, b, c, d > 0.

На рис. 2.6 приведен фрагмент рабочего документа MathCAD, содержащий решение системы Вольтерра – Лотка (2.1) при a = 4, b = 2,5, c = 2, d = 1 и графики решения с начальным условием x1(0) = 3, x2(0) = 1.

Видно, что процесс имеет колебательный характер. При заданном начальном соотношении особей обоих видов 3:1 обе популяции сначала растут. Когда число хищников достигает величины b = 2,5, популяция добычи не успевает восстанавливаться и число добычи начинает убывать. Уменьшение количества пищи через некоторое время начинает сказываться и на популяции хищников, и когда число добычи достигает величины x1 = c/d = 2, число хищников тоже начинает сокращаться вместе с сокращением числа добычи. Сокращение популяций происходит до тех пор, пока число хищников не достигнет величины x2 = a/b =1,6. С этого момента начинает расти популяция добычи; через некоторое время пищи становится достаточно, чтобы обеспечить прирост хищников, обе популяции растут, и процесс повторяется снова и снова.

Рис. 2.6. Результат решения системы Вольтерра – Лотка

в MathCAD

Приведенный пример полностью детерминистический, т.е. в нем нет случайных компонентов. Однако имитационная модель может содержать и неизвестные величины; например, в систему уравнений Вольтерра – Лотка (2.1) могут быть добавлены случайные величины, которые каким-то образом зависят от времени, или постоянные множители могут быть смоделированы как величины, случайно изменяющие свои значения в определенные моменты времени.

На рис. 2.7 представлена имитационная модель «Хищник – добыча», разработанная в среде AnyLogic.

Рис. 2.7. Модель «Хищник – добыча» в AnyLogic

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

Таким образом, имитационная модель позволяет учесть большое количество параметров и стохастических переменных, следовательно, является более реалистичной моделью процесса по сравнению с моделью Вольтерра – Лотка (2.1).

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

  • дискретное событие может вызывать дискретное изменение в значении непрерывной переменной состояния;

  • в определенный момент времени дискретное событие может вызывать изменение отношения, управляющего непрерывной переменной состояния;

  • непрерывная переменная состояния, достигшая порогового значения, может вызвать возникновение или планирование дискретного события.

Комбинированные непрерывно-дискретные имитационные модели могут создаваться с помощью пакетов Arena, Extend и AnyLogic.

Рассмотрим комбинированное непрерывно-дискретное моделирование на следующем примере.

Пример 2.4. Танкеры, перевозящие нефть, прибывают в один разгрузочный док, пополняя резервуар-хранилище, из которого нефть по трубопроводу попадает на нефтеперегонный завод. Из разгружающегося танкера нефть подается в резервуар-хранилище с постоянной скоростью. Танкеры, прибывающие к занятому доку, образуют очередь. На нефтеперегонный завод нефть подается из резервуара с различными заданными скоростями. Док открыт с 6.00 до 24.00. По соображениям безопасности разгрузка танкеров прекращается по закрытии дока.

Дискретными событиями в этой модели являются прибытие танкера на разгрузку, закрытие дока в полночь и открытие его в 6.00. Уровни нефти в разгружающемся танкере и резервуаре-хранилище задаются переменными непрерывного состояния, скорость изменения которых описаны с помощью дифференциальных уравнений. Разгрузка нефти считается завершенной, когда уровень нефти в танкере составляет менее 5% его емкости. Разгрузка может быть возобновлена, когда уровень нефти в резервуаре станет меньше 80% его емкости. В случае если уровень нефти в резервуаре станет меньше 5000 баррелей, нефтеперегонный завод может быть временно закрыт. Для того, чтобы избежать частого закрытия и возобновления работы завода, подача нефти из резервуара на завод не будет возобновлена до тех пор, пока в нем не наберется 50000 баррелей нефти. Каждое из пяти событий, связанных с уровнем нефти (например, падение уровня нефти ниже 5% емкости танкера), является событием состояния. В отличие от дискретных событий, события состояния не планируются, они происходят, когда переменные непрерывного состояния переходят пороговые значения.

Моделирование по методу Монте-Карло определяется как процедура, в которой используются случайные числа, т.е. величины U(0, 1). Такая процедура предназначена для решения стохастических и детерминистических задач, в которых течение времени не играет особой роли. Следовательно, моделирование по методу Монте-Карло является статическим, а не динамическим.

Моделирование по методу Монте-Карло может быть легко реализовано в Excel. Рассмотрим моделирование системы массового обслуживания на следующем примере.

Пример 2.5. Рассмотрим имитационную модель фирмы по прокату автомобилей в аэропорту, заимствованную из книги Дж. Мура и Л. Уэдерфорда […]2. Клиент, прибывший первым, обслуживается у стойки по оформлению проката. В общем случае, каждый клиент становится в начало очереди и, если служащий, оформляющий прокат не занят, то клиенту предоставляется обслуживание, которое состоит в заполнении бланков по аренде автомобиля, выбора вариантов арендной платы, получении инструкций и т.п. Затем клиенты покидают офис, чтобы забрать взятые напрокат автомобили и уехать. Допустим, собраны статистические данные о распределении прибытия клиентов в офис течение суток с 5-минутным интервалом времени. На основании этих данных вычислены вероятность и интегральная вероятность (функция распределения) прибытия одного, не менее двух и не менее трех клиентов, представленные в табл. 2.1.

Таблица 2.1

Вероятность и интегральная вероятность прибытия клиентов в течение 5-минутного интервала времени

Количество прибывающих клиентов

Вероятность, %

Интегральная

вероятность, %

0

70

70

1

12

82

2

16

98

3

2

100

Для упрощения предположим, что время обслуживания одного клиента занимает ровно 5 мин. Необходимо смоделировать круглосуточные операции по оформлению проката автомобилей в течение недели. Следовательно, модель должна содержать 7·24·60/5=2016 временных интервалов. Целью моделирования является определение необходимого количества стоек и, соответственно, служащих, оформляющих прокат. Для определения эффективности работы служащего, оформляющего прокат, необходимо вычислить максимальные и средние значения таких показателей, как количество прибывающих клиентов, количество клиентов в очереди, количество обслуживаемых клиентов и количество ожидающих клиентов.

Имитационная модель будет управляться случайными числами, генерируемыми Excel, которые задают вероятности количества клиентов, прибывающих в любой 5-минутный интервал времени. Для каждого из 2016 временных интервалов функция =СЛЧИС() выдает случайное число из интервала от 0 до 1 каждый раз, когда в рабочем листе происходят какие-либо изменения. На рис. 2.8 представлены полученные статистические данные для рассматриваемой модели при наличии одной стойки по оформлению проката.

Рис. 2.8. Результаты имитации модели работы фирмы по прокату автомобилей

Результаты моделирования, представленные на рис. 2.8, являются в определенной степени неожиданными. Например, в каждый 5-минутный интервал прибывает «половина» клиента или в среднем каждые 10 минут прибывает один клиент. Поскольку для обслуживания этого клиента всегда требуется только 5 минут времени, то в среднем стойка по оформлению проката занята только половину времени, что приводит к значительному времени простоя служащего. Тем не менее, в течение недели возникают случаи предельной загрузки, когда сразу 10 клиентов ожидают обслуживания. Учитывая время обслуживания одного клиента, составляющее 5 минут, не сложно вычислить время задержки последнего клиента в очереди, которое составит 5·10 = 50 мин. Очевидно, для проверки предположения о том, что добавление еще одной стойки по оформлению проката позволит сократить задержки клиентов в очереди, необходимо внести соответствующие изменения в модель и рассчитать статистические данные для модели с двумя стойками.

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