Технологии имитационного моделирования. Сущность метода имитационного моделирования

Имитационное моделирование

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

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

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

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

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

Применение имитационного моделирования

К имитационному моделированию прибегают, когда:

  • дорого или невозможно экспериментировать на реальном объекте;
  • невозможно построить аналитическую модель: в системе есть время, причинные связи, последствие, нелинейности, стохастические (случайные) переменные;
  • необходимо сымитировать поведение системы во времени.

Цель имитационного моделирования состоит в воспроизведении поведения исследуемой системы на основе результатов анализа наиболее существенных взаимосвязей между её элементами или другими словами - разработке симулятора (англ. simulation modeling ) исследуемой предметной области для проведения различных экспериментов.

Имитационное моделирование позволяет имитировать поведение системы во времени. Причём плюсом является то, что временем в модели можно управлять: замедлять в случае с быстропротекающими процессами и ускорять для моделирования систем с медленной изменчивостью. Можно имитировать поведение тех объектов, реальные эксперименты с которыми дороги, невозможны или опасны. С наступлением эпохи персональных компьютеров производство сложных и уникальных изделий, как правило, сопровождается компьютерным трёхмерным имитационным моделированием. Эта точная и относительно быстрая технология позволяет накопить все необходимые знания, оборудование и полуфабрикаты для будущего изделия до начала производства. Компьютерное 3D моделирование теперь не редкость даже для небольших компаний.

Имитация, как метод решения нетривиальных задач, получила начальное развитие в связи с созданием ЭВМ в 1950-х - 1960-х годах.

Можно выделить две разновидности имитации:

  • Метод Монте-Карло (метод статистических испытаний);
  • Метод имитационного моделирования (статистическое моделирование).

Виды имитационного моделирования

Три подхода имитационного моделирования

Подходы имитационного моделирования на шкале абстракции

  • Агентное моделирование - относительно новое (1990-е-2000-е гг.) направление в имитационном моделировании, которое используется для исследования децентрализованных систем, динамика функционирования которых определяется не глобальными правилами и законами (как в других парадигмах моделирования), а наоборот, когда эти глобальные правила и законы являются результатом индивидуальной активности членов группы. Цель агентных моделей - получить представление об этих глобальных правилах, общем поведении системы, исходя из предположений об индивидуальном, частном поведении её отдельных активных объектов и взаимодействии этих объектов в системе. Агент - некая сущность, обладающая активностью, автономным поведением, может принимать решения в соответствии с некоторым набором правил, взаимодействовать с окружением, а также самостоятельно изменяться.
  • Дискретно-событийное моделирование - подход к моделированию, предлагающий абстрагироваться от непрерывной природы событий и рассматривать только основные события моделируемой системы, такие как: «ожидание», «обработка заказа», «движение с грузом», «разгрузка» и другие. Дискретно-событийное моделирование наиболее развито и имеет огромную сферу приложений - от логистики и систем массового обслуживания до транспортных и производственных систем. Этот вид моделирования наиболее подходит для моделирования производственных процессов. Основан Джеффри Гордоном в 1960-х годах.
  • Системная динамика - парадигма моделирования, где для исследуемой системы строятся графические диаграммы причинных связей и глобальных влияний одних параметров на другие во времени, а затем созданная на основе этих диаграмм модель имитируется на компьютере. По сути, такой вид моделирования более всех других парадигм помогает понять суть происходящего выявления причинно-следственных связей между объектами и явлениями. С помощью системной динамики строят модели бизнес-процессов, развития города, модели производства, динамики популяции, экологии и развития эпидемии. Метод основан Джеем Форрестером в 1950 годах.

Области применения

  • Динамика населения
  • ИТ-инфраструктура
  • Математическое моделирование исторических процессов
  • Пешеходная динамика
  • Рынок и конкуренция
  • Сервисные центры
  • Цепочки поставок
  • Уличное движение
  • Экономика здравоохранения

Свободные системы имитационного моделирования

См. также

  • Сетевое моделирование

Примечания

Литература

  • Хемди А. Таха Глава 18. Имитационное моделирование // Введение в исследование операций = Operations Research: An Introduction. - 7-е изд. - М .: «Вильямс», 2007. - С. 697-737. - ISBN 0-13-032374-8
  • Строгалев В. П., Толкачева И. О. Имитационное моделирование. - МГТУ им. Баумана, 2008. - С. 697-737. -

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

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

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

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

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

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

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

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

Обратите внимание!

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

Заметим, что с точки зрения сиециалиста-нрикладника правомерно трактовать имитационное моделирование как информационную технологию: «Имитационное моделирование контролируемого процесса или управляемого объекта - это высокоуровневая информационная технология, которая обеспечивает два вида действий, выполняемых с помощью компьютера:

  • 1) работы по созданию или модификации имитационной модели;
  • 2) эксплуатацию имитационной модели и интерпретацию результатов» .

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

Рис. 1.7.

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

  • Лычкина II. II. Указ. соч.
  • Распределенные вычисления - способ решения трудоемких вычислительных задачс использованием нескольких компьютеров, чаще всего объединенных в параллельнуювычислительную систему.
  • Емельянов А. А, Власова Е. А., Дума Р. В. Имитационное моделирование экономическихпроцессов. М. : Финансы и статистика, 2006. С. 6.

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

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

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

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

Имитационное моделирование (в узком смысле) - это представление динамического поведения системы посредством продвижения ее от одного состояния к другому в соответствии с хорошо известными операционными правилами (алгоритмами).

Итак, для создания имитационной модели надо выделить и описать состояния системы и алгоритмы (правила) его изменения. Далее это записывается в терминах некоторого инструментального средства моделирования (алгоритмического языка, специализированного языка) и обрабатывается на ЭВМ.

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

ИМ могут использоваться для проектирования, анализа и оценки функционирования систем. С ИМ проводятся машинные эксперименты, которые позволяют сделать выводы о поведении системы:

· в отсутствии ее построения, если это проектируемая система;

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

· без разрушения системы, если цель эксперимента состоит в определении воздействия на нее.

Процесс формирования имитационной модели коротко можно представить следующим образом (Рис.2 ):

Рис.2 . Схема формирования имитационной модели

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

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

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

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

Возможности имитационного моделирования:

1. С ИМ проводятся машинные эксперименты, которые позволяют сделать выводы о поведении системы:

· без ее построения, если это проектируемая система;

· без вмешательства в ее функционирование, если это действующая система, экспериментирование с которой невозможно или нежелательно (дорого, опасно);

· без ее разрушения, если цель эксперимента состоит в определении предельного воздействия на систему.

2. Экспериментально исследовать сложные взаимодействия внутри системы и понять логику ее функционирования.

4. Изучить воздействие внешних и внутренних случайных возмущений.

5. Исследовать степень влияния параметров системы на показатели эффективности.

6. Проверить новые стратегии управления и принятия решений при оперативном управлении.

7. Прогнозировать и планировать функционирование системы в будущем.

8. Проводить обучение персонала.

Основой имитационного эксперимента служит модель имитируемой системы.

ИМ развивалось для моделирования сложных стохастических систем - дискретных, непрерывных, комбинированных.

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

где - состояния модели в - ый момент времени, представляющее собой вектор.

Введем в рассмотрение:

Вектор состояния внешней среды (вход модели) в -ый момент времени,

Вектор управления в -ый момент времени.

Тогда ИМ определяется заданием оператора , с помощью которого можно определить состояние модели в следующий момент времени по состоянию в текущий момент, векторам управления и внешней среды:

Это преобразование запишем в рекуррентной форме:

Оператор определяет имитационную модель сложной системы с ее структурой и параметрами.

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

Тогда имеем:

Имитационная модель – это логико-математическое описание системы, которое может быть использовано в ходе проведения экспериментов на ЭВМ.

Рис.3. Состав ИМ сложной системы

Возвращаясь к проблеме имитационного моделирования сложной системы, условно выделим в ИМ: модель управляемого объекта, модель системы управления и модель внутренних случайных возмущений (Рис.3 ).

Входы модели управляемого объекта делятся на контролируемые управляемые и неконтролируемые неуправляемые возмущения. Последние генерируются датчиками случайных чисел по заданному закону распределения. Управление, в свою очередь является выходом модели системы управления, а возмущения – выходом датчиков случайных чисел (модели внутренних возмущений).

Здесь - алгоритм системы управления.

Имитация позволяет исследовать поведение моделируемого объекта в течение продолжительного интервала времени – динамическая имитация . В этом случае как говорилось выше трактуется как номер момента времени. Кроме этого можно исследовать поведение системы в определенный момент времени – статическая имитация , тогда трактуется как номер состояния.

При динамической имитации время может меняться с постоянным и переменным шагом (Рис.4 ):

Рис.4. Динамическая имитация

Здесь g i – моменты совершения событий в СДС, g * i – моменты совершения событий при динамической имитации с постоянным шагом, g ‘ i - моменты совершения событий при переменном шаге.

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

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

Основные положения , вытекающие из сказанного:

1. ИМ это численный метод и должен применяться тогда, когда другие методы использовать невозможно. Для сложных систем это в данный момент основной метод исследования.

2. Имитация это эксперимент, а значит, при ее проведении должна использоваться теория планирования эксперимента и обработки его результатов.

3. Чем более точно описывается поведение моделируемого объекта, тем точнее требуется модель. Чем точнее модель, тем она сложнее и требует больших ресурсов ЭВМ и времени для исследования. Поэтому надо искать компромисс между точностью модели и ее простотой.

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

Имитационные модели

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

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

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

Детерминированное моделирование

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

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

Такой компьютерный эксперимент фактически претендует на воспроизведение натурного эксперимента. На вопрос: "Зачем это нужно делать?" можно дать следующий ответ: имитационное моделирование позволяет выделить "в чистом виде" следствия гипотез, заложенных в представления о микрособытиях (т.е. на уровне элементов системы), избавив их от неизбежного в натурном эксперименте влияния других факторов, о которых мы можем даже не подозревать. Если такое моделирование включает и элементы математического описания процессов на микроуровне, и если исследователь при этом не ставит задачу поиска стратегии регулирования результатов (например, управления численностью колонии микроорганизмов), то отличие имитационной модели от математической (дескриптивной) оказывается достаточно условным.

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

Модели случайных процессов

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

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

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

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

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

Целью моделирования систем такого вида является получение ответа на ряд вопросов. Относительно простой вопрос - какое в среднем время придется стоять и очереди при заданных законах распределения указанных выше случайных величин? Более сложный вопрос; каково распределение времен ожидания обслуживания в очереди? Не менее сложный вопрос: при каких соотношениях параметров входных распределений наступит кризис, при котором очередь до вновь вошедшего покупателя не дойдет никогда? Если задуматься над этой относительно простой задачей, возможные вопросы будут множиться.

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

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

Пример алгоритма детерминированной имитационной модели

Рассмотрим имитационную модель эволюции популяции живых организмов, известную под названием "Жизнь", которую легко реализовать на любом языке программирования.

Для построения алгоритма игры рассмотрим квадратное поле из п -\- 1 столбцов и строк с обычной нумерацией от 0 до п. Крайние граничные столбцы и строки для удобства определим как "мертвую зону", они играют лишь вспомогательную роль.

Для любой внутренней клетки поля с координатами (i,j) можно определить 8 соседей. Если клетка "живая", ее закрашиваем, если клетка "мертвая", она пустая.

Зададим правила игры. Если клетка (i,j) "живая" и ее окружает более трех "живых" клеток, она погибает (от перенаселения). "Живая" клетка также погибает, если в ее окружении находится менее двух "живых" клеток (от одиночества). "Мертвая" клетка оживает, если вокруг нее появляются три "живые" клетки.

Для удобства введем двумерный массив А , элементы которого принимают значение 0, если соответствующая клетка пустая, и 1, если клетка "живая". Тогда алгоритм определения состояния клетки с координатой (i , j ) можно определить следующим образом:

S:=A+A+A+A+A+A+A+A;
If (A = 1) And (S > 3) Or (S < 2)) Then B: =0;
If (A = 0) And (S = 3)
Then B: = 1;

Здесь массив Вопределяет координаты поля на "следующем этапе. Для всех внутренних клеток от i = 1 до n - 1 и j = 1 до n - 1 справедливо сказанное выше. Отметим, что последующие поколения определяются аналогично, стоит лишь осуществить процедуру переприсваивания:

For I: = 1 То N - 1 Do
For J: = 1 То N - 1 Do
A : = В ;

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

For I: = 1 To K Do
Begin K1: = Random (N-1);
K2:= Random (N-1)+1;
End;

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

В базовом курсе информатики ученики могут реализовать имитационную модель "Жизнь" в рамках раздела "Введение в программирование". Более основательное освоение имитационного моделирования может происходить в старших классах в профильном или элективном курсе информатики. Далее будет говориться о таком варианте.

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

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

а) генератор равномерно распределенных случайных чисел на любом отрезке [а, b];

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

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

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

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

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

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

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

На примере задачи об очереди отрабатываются сразу несколько новых понятий и навыков:

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

Задание :

    1. Составить схему ключевых понятий;
  • Подобрать практические задания с решениями для базового и профильного курсов информатики.

Имитационное моделирование

Моделирование

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

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

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

Математическое моделирование связано, в основном, с разработкой математи­ческих моделей физических явлений, с созданием и обоснованием численных методов. Существует академическая трактовка моделирования как области вычислительной математики, которая является традиционной для активности прикладных математиков. В России сложилась сильная школа в этой области: НИИ Математического Моделирования РАН - головная организация, Науч­ный Совет РАН по проблеме "Математическое моделирование", издается журнал "Математическое моделирование" (www . imamod . ru ).

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

Проблемы разработки имитационных моделей

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

    моделирование динамических систем,

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

    системная динамика

    агентное моделирование.

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

Моделирование динамических систем

Направлено на исследова­ние сложных объектов, поведение которых описывается системами алгебро-дифференциальных уравнений. Инженерным подходом к моделированию таких объектов 40 лет назад была сборка блок-схем из решающих блоков аналоговых компьютеров: интеграторов, усилителей и сумматоров, токи и напряжения в которых представляли переменные и параметры моделируе­мой системы. Этот подход и сейчас является основным в моделировании динамических систем, только решающие блоки являются не аппаратными, а программными. Он реализован, например, в инструментальной среде Simulink .

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

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

Системная динамика .

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

В настоящее время системная динамика превратилась в зрелую науку. Общество системной динамики (The- System Dynamics Society, www.systemdynamics.org) является официальным форумом системных анали­тиков во всем мире. Ежеквартально выходит журнал System Dynamics Review, ежегодно созываются несколько международных конференций по этим проблемам. Системная динамика как методология и инструмент ис­следования сложных экономических и социальных процессов изучается во многих бизнес-школах по всему миру..

Агентное моделирование

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

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

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

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

В современном мире информационных технологий десятилетие сравнимо с веком прогресса в традиционных технологиях, Но в имитационном моделировании почти без изменения применяются идеи и решения 60-х годов прошлого века. На базе этих идей еще в прошлом веке были разработаны программные средства, которые с незначительными изменениями применяются до сих пор. Разработка имитационных модели с использованием этих программ является весьма сложной и трудоемкой задачей, доступной только высококвалифицированным специалистам и требующей больших временных затрат. Один из разработчиков имитационных моделей Роберт. Шеннон писал: «разработка даже простых моделей требует 5-6 человеко-месяцев и стоит по­рядка 30 ООО долларов, а сложных - на два порядка больше». Иными слова­ми, трудоемкость построения сложной имитационной модели традицион­ными методами оценивается в сотню человеко-лет.

Имитационное моделирование традицион­ными методами реально используется уз­ким кругом профессионалов, которые должны иметь не только глубокие знания в той прикладной области, для которой строится модель, но также глубокие знания в программировании, теории вероятностей и статистике.

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

AnyLogic - инструмент имитационного моделирования нового поколения

AnyLogic - программное обеспечение для имитационного моделирования нового поколения, разработано российской компанией The AnyLogic Company (бывшая «Экс Джей Текнолоджис»,- англ. XJ Technologies). Этот инструмент существенно упрощает разработку моделей и их анализ.

Пакет AnyLogic создан с использованием последних достижений информационных технологий: объектно-ориентированный подход, элементы стандарта UML, языка программирования Java, и т.д. Первая версия пакета (Anylogic 4.0) была выпущена в 2000г. К настоящему времени выпущена версия Anylogic 6.9.

Пакет поддерживает все известные методы имитационного моделирования:

    Моделирование динамических систем

    системная динамика;

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

    агентное моделирование.

Рост произво­дительности компьютеров и достижения в информационных технологиях, использованные в AnyLogic, сделали возможным реализацию агентных мо­делей, содержащих десятки и даже сотни тысяч активных агентов

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

    производство;

    логистика и цепочки поставок;

    рынок и конкуренция;

    бизнес-процессы и сфера обслуживания;

    здравоохранение и фармацевтика;

    управление активами и проектами;

    телекоммуникации и информационные системы;

    социальные и экологические системы;

    пешеходная динамика;