1.7. Виды имитационного моделирования Существует несколько видов имитационных моделей: модели с использованием агентов, дискретно-событийные модели и модели системной динамики (рис. 1.11). Каждый вид моделирования применяется в некотором диапазоне уровней абстракции. Системная динамика предполагает очень высокий уровень абстракции и, как правило, используется для стратегического моделирования. Дискретно-событийное моделирование поддерживает средний и низкий уровни абстракции. Между ними находятся агентные модели, которые могут быть как очень детализированными, когда агенты представляют физические объекты, так и предельно абстрактными. Рис.1.11. Виды имитационного моделирования 1.7.1. Системная динамика Методы системной динамики были предложены и разработаны Дж. Форрестером в конце 50-х годов как исследование «информационных обратных связей в промышленной деятельности с целью показать, как организационная структура, усиления (в политиках) и задержки (в принятии решений и действиях) взаимодействуют, влияя на успешность предприятий» [24]. В основе класса моделей системной динамики лежит концепция, ориентированная на моделирование систем и процессов на высоком уровне агрегирования, где отображения отдельных элементов процессов, т.е. их дискретности, становится ненужным (например, экономика отдельных стран и регионов, транспортные системы страны, и т.п., проблемы мирового развития). В основе этой концепции лежит представление о функционировании системы, как совокупности потоков информации, энергии, промышленной продукции, денежных средств и т.п. Первым этапом процесса системно-динамического моделирования является, как было сформулировано выше (стр. 21), содержательная постановка задачи и формулировка целей моделирования. На втором этапе для построения концептуальной модели необходимо определить причинно- следственные связи между переменными системы. В теории системной динамики предлагается использование диаграмм причинно-следственных связей, как способа представления системы в виде структуры с обратными связями. Контур (петля) обратной связи – это замкнутый маршрут, который отражает взаимосвязь причин и последствий. Характер обратных связей может быть положительный или отрицательный. Положительные связи (reinforcing feedback) имеют позитивный, усиливающий характер, а отрицательные (balancing feedback) являются негативными, балансирующими. [11]. Отрицательные контуры обратной связи стремятся стабилизировать систему, препятствуют неограниченному росту переменных, в то время как положительные могут вызвать их неограниченный рост и дестабилизировать систему. На рис. 1.12 показан пример упрощенной модели для расчета динамики численности населения региона, в которой присутствует контур отрицательной (R) и положительной обратной связи (B). Из анализа модели следует, что для положительной динамики численности населения рождаемость должна превышать смертность. Рис 1.12. Пример модели динамики численности населения с обратными связями Математически модель системной динамики описывается дифференциальными уравнениями, в которых используются представления динамических процессов в пространстве состояний: Х' = f (x, u, t), (1.1) T где X = (x1, x2,..., xт) – вектор состояний; х1,..., xт – переменные состояния; u = (u1..., up)T – вектор входов; t –модельное время. Дифференциальные модели, применяемые в математической теории систем, включают кроме уравнений (1), которые называются уравнениями состояния, еще и уравнение у = H (х, u), (1.2) T здесь переменная у = (y1,...., yq) – вектор выходов моделируемых процессов. При составлении дифференциальных моделей производится выбор переменных состояния, и устанавливаются связи между ними в виде функций правых частей уравнений состояния. Как правило, сформулировать такие зависимости только с использованием переменных состояния бывает трудно. Более продуктивным оказывается другой подход, основанный на детальном описании цепочек причинно-следственных связей между факторами, отображаемыми в модели с помощью переменных состояния. Моделируемый объект, независимо от наблюдаемого в действительности характера его функционирования, формализуется в виде непрерывной абстрактной системы, между элементами которой циркулируют непрерывные «потоки» той или иной природы. Структура такой системы графически представляется в виде диаграммы (схемы) потоков. Выделяются такие типы непрерывных потоков, как потоки информации, материалов, заказов, денежных средств, средств производства, людей и т.п. Основными элементами непрерывной системы рассматриваемого типа являются абстрактные накопители (емкости, резервуары), а также элементы задержки, которые также могут быть представлены в виде своеобразных накопителей. Указанные два типа элементов системы выполняют в принципе функции интегрирования и запаздывания. Характеристикой состояния каждого накопителя является объем или уровень находящегося в нем содержимого того или иного типа (материалы, денежные средства и т.п.). Аналогично, характеристикой состояния элемента задержки является объем (уровень) содержимого того или иного типа, находящийся в запаздывании. В качестве характеристики воздействия одного элемента на другой выступает темп потока, циркулирующего между этими элементами. Изменения во времени значений уровней содержимого накопителя и элементов задержки под воздействием входящих и исходящих непрерывных потоков описываются некоторыми дифференциальными уравнениями. Для компьютерного моделирования таких изменений необходимо предварительно перейти от дифференциальных уравнениями к конечноразностным, которые описывают функционирование элементов системы в дискретном времени. В своей методике Дж. Форрестер [24] вводит допущение о постоянстве значений темпов всех потоков на протяжении каждого шага моделирования. Благодаря этому зависимости между характеристиками состояний элементов непрерывной системы данного типа и темпами соответствующих потоков можно записать в виде конечноразностных уравнений xi(t, t + Δt) = xi (t) + Δt [Ri (t, t + Δt) – Si (t, t + Δt)] (1.3) где xi(t) – значение характеристики состояния (уровня содержимого) i-го накопителя системы в момент t модельного времени. Ri(t, t + Δt) – значение темпа потока поступающего вход i-го накопителя. Si(t, t + Δt)– значения темпа потока, исходящего их того же накопителя на интервале модельного времени [t, t + Δt]. Начальные значения характеристик состояний всех элементов системы задаются. Согласно методике темпы всех потоков на протяжении шага [t, t + Δt] считаются равными своим «действительным» значениям, вычисленным в начале данного шага, и также являются функциями уровней: Si(t)=fi(x1(t),x2(t),…, xk(t)), (1.4) где f – произвольная функция от k аргументов (уровней ) в момент времени t. Аналогичные уравнения используются для определения значений характеристик состояний элементов задержки. В соответствии с рассматриваемой методикой темпы всех потоков на протяжении шага [t, t + Δt] считаются равными своим «действительным» значениям, вычисленным на начале данного шага. Вследствие этого значения характеристик состояний всех элементов системы для момента (t + Δt) времени, могут определяться в произвольном порядке, независимо друг от друга. Шаг моделирования Δt считается величиной постоянной. В [24] изложены рекомендации по выбору значения шага моделирования в каждом конкретном случае. На рис. 1.13 показаны специальные символы потоковых сетей. Узлы сети изображаются в виде прямоугольников. В моделях системной динамики нуль сети принято обозначать специальным знаком «Озеро». Рис. 1.13. Символы потоковых сетей В моделях системной динамики используются дифференциальные уравнения, переменные состояния которых непрерывны, для решения которых используются численные методы. Модельное время в моделях системной динамики изменяется на постоянный шаг, величина которого определяется выбранными методом решения дифференциальных уравнений (шаг интегрирования). Алгоритм имитации реализуется на основе разностных уравнений следующим образом. 1. Устанавливаются параметры модельного времени (начальное значение, шаг интегрирования, длина интервала моделирования). 2. Задаются начальные условия (значения уровней в начальный момент системного времени). 3. По уравнению (1.4), для каждого момента времени ti вычисляются значения всех темпов и вспомогательных переменных. 4. Модельное время увеличивается на шаг интегрирования. 5. По уравнению (1.3) рассчитываются значения всех уровней на данный момент системного времени. Итерации по этой схеме выполняются до тех пор, пока не закончится интервал моделирования. Таким образом, в моделях системной динамики реализуется удобная и простая схема сбора и формализации информации, получаемой от эксперта в процессе построения моделей. 1.7.2. Дискретно-событийное моделирование Дискретно-событийное моделирование – метод, предлагающий абстрагироваться от непрерывной природы событий и рассматривать только основные события моделируемой системы, такие как: «ожидание», «обработка заказа», «движение с грузом», «разгрузка» и другие. Дискретнособытийное моделирование наиболее развито и имеет огромную сферу приложений – от логистики и систем массового обслуживания до транспортных и производственных систем. Этот вид моделирования наиболее подходит для моделирования производственных процессов. Метод основан Джеффри Гордоном в 1960-х годах [26]. В дискретных имитационных системах изменение состава и состояния происходит в дискретные моменты времени, называемые событиями. Под событием понимается мгновенное изменение состояния модели, произошедшее в результате осуществления множества взаимодействий между компонентами модели в один и тот же момент модельного времени. Поэтому модельное время в таких системах продвигается от события к событию. Функционирование дискретной системы можно описать различными способами: 1) через изменения состояния системы, происходящие в моменты свершения событий; 2) через описания действия, в которых принимают участие элементы системы; 3) через описание процесса, через который проходят элементы. В системах массового обслуживания (СМО) структура моделируемого процесса изображается в виде потока, проходящего через канал обслуживания и другие элементы системы. Модель имеет блочную структуру. Моделируемый процесс представляется как поток заявок в системе обслуживания. Заявки (транзакты) конкурируют между собой за место в канале, образуют очереди перед каналом, если он занят. Существуют истоки и стоки этих заявок. Блок-схема модели описывает маршруты движения заявок в системе. В системе программирования есть специальные средства, которые являются аналогами элементов систем массового обслуживания, такими как обслуживающие устройства, заявки, очереди. В принципе, система позволяет моделировать не только СМО, но и другие системы (например, склад, распределение ресурсов и многие другие). Структура систем массового обслуживания представлена на рис.1.14. Заявка характеризуется моментом появления на входе системы, статусом по отношению к другим заявкам, некоторыми параметрами, определяющими потребности во временных ресурсах на обслуживание. Постоянно поступающие заявки на обслуживание образуют поток заявок – совокупность заявок, распределенную во времени. Рис.1.14. Структура систем массового обслуживания Поток заявок может быть однородным (с точки зрения обслуживания все заявки равноправны) и неоднородным. Основной параметр потока заявок – промежуток времени между моментами поступления двйх соседних заявок. Поток заявок может быть стационарным и нестационарным (например, изменяться от времени суток). Поток заявок поступает в систему в случайные моменты времени, которые описываются функцией распределения времени поступления заявок (например, простейший поток, поток Эрланга). Элемент системы, в котором происходят операции, называется обслуживающим устройством (ОУ). В момент выполнения операций он занят, иначе – свободен. Если канал свободен, то заявка принимается к обслуживанию. Обслуживаемая заявка задерживается каналом на время, равное периоду обслуживания. После обслуживания заявка покидает прибор обслуживания. Таким образом, канал характеризуется временем обслуживания заявки. При случайном характере поступления заявок образуются очереди. Заявки могут приниматься к обслуживанию разным способом: в порядке очереди; в случайном порядке; по минимальному времени получения отказа и другими способами. Реальный процесс функционирования систем массового обслуживания представляется в виде смены последовательности фаз обслуживания, выполняемых различными устройствами. Обслуженная заявка покидает прибор обслуживания и либо покидает систему, либо движется дальше в соответствии с технологической схемой работы системы. Различают следующие типы систем: по количеству обслуживающих устройств системы могут быть одноканальные и; с ожиданием обслуживания или системы с отказами (без ожидания); с ограничением на длину очереди (или с ограниченным ожиданием) и без ограничения; с упорядоченной очередью и с неупорядоченной очередью; с приоритетами и без приоритетов и другие. Любая модель строится для того, чтобы оценить показатели качества обслуживания. К основным показателям относятся: общее количество обслуженных заявок за некоторый промежуток времени; пропускная способность канала, которое определяется как среднее число заявок, обслуженных в единицу времени; доля обслуженных заявок; доля заявок, получивших отказ; время пребывания заявки в системе (от момента поступления заявки в систему до момента завершения ее обслуживания); среднее время обслуживания (функция распределения времени обслуживания); средняя длина очереди; среднее время ожидания; загрузка каналов – коэффициент использования (как доля времени, в течение которого канал обслуживания был занят). Эта величина характеризует степень простоя канала. Классические математические методы исследования систем массового обслуживания предложены теорией массового обслуживания. Однако аналитические методы не приспособлены для решения практических задач: например, часто используется предположения о простейшем потоке заявок (однако для различных фаз обслуживания он может быть не простейшим), об однотипных устройствах и т.п. В имитационном моделировании эти и другие ограничения снимаются: могут применяться произвольные законы распределения, различные схемы обслуживания (например, порядок обслуживания заявок из очереди и т.п.), СМО исследуется не обязательно в стационарном режиме (возможно изучение переходного режима, когда показатели отличаются от предельных асимптотических значений). При создании систем массового обслуживания нужны алгоритмы реализации потоков событий в случайные моменты времени и моделирующие процессы функционирования обслуживающих систем. Далее необходимо многократно воспроизводить и реализовывать случайные процессы обслуживания событий. На выходе модели выполняется статистическая обработка полученных данных, оценка показателей качества обслуживания. 1.7.3. Агентное моделирование Агентное моделирование – относительно новое (1990-е-2000-е гг.) направление в имитационном моделировании, которое применяется для исследования децентрализованных систем. Динамика функционирования таких систем определяется не глобальными правилами и законами (как в других парадигмах моделирования), а наоборот, эти глобальные правила и законы являются результатом индивидуальной активности членов группы. Цель агентных моделей – получить представление об этих глобальных правилах, общем поведении системы, исходя из предположений об индивидуальном, частном поведении ее отдельных активных объектов и взаимодействии этих объектов в системе. Под агентом понимается некая сущность, обладающая активностью, автономным поведением, которая может принимать решения в соответствии с некоторым набором правил, взаимодействовать с окружением, а также самостоятельно изменяться [3]. Поведение сложной системы описывается как результат взаимодействия агентов, что позволяет фиксировать закономерности, присущие системе в целом. Агентный подход применяется в тех областях моделирования, где отсутствуют теоретические представления о системе и формальные модели не дают возможности получения достоверной информации о ней. Агент определяется как идентифицируемый, дискретный объект с определенным набором характеристик и правил, которые управляют его поведением и способностью принимать самостоятельные решения. Агент взаимодействует с другими агентами и со средой, в которой он находится. В тоже время он автономен и может функционировать самостоятельно. При разработке агентной модели используется общая процедура моделирования. Однако к задачам начального этапа следует добавить, вопервых, идентификацию агентов, действующих в системе и описание среды в которой они будут действовать; во-вторых, правила взаимодействия агентов между собой. Структура агентной модели может быть задана как графически, так и с помощью сценариев. Поведение агента также может быть задано различными способами. Если у агента есть состояние, от которого зависят его действия и реакция, то его поведение задается с помощью диаграммы состояний. Внутреннюю динамику поведения агента также можно задать с помощью дискретных событий или методов системной динамики. Агентное моделирование может использоваться для имитации динамики дискретных систем с большим количеством объектов (агентов), поэтому агенты могут разбиваться на группы. При этом поведение агентов, относящихся к одной группе можно считать одинаковым. В таблице 1.3 представлены возможности реализации в каждом из подходов объектов с разными уровнями абстракции. Таблица 1.3 Уровни абстракции в различных подходах имитационного моделирования Высокий Средний Низкий Системная динамика + – – Дискретно-событийное моделирование – + + Агентное моделирование + + + Из анализа таблицы 1.3. нужно отметить преимущества агентноориентированного подхода для анализа динамики развития экономикосоциальных систем. В некоторых имитационных моделях отдельные элементы экономикосоциальных систем приходится представлять на разных уровнях абстракции. Агентное моделирование позволяет реализовывать отдельные объекты таких систем в виде действующего индивидуального агента, а динамику поведения объекта задать, используя методы системной динамики или дискретнособытийное моделирование. По этой причине многие агентные модели совмещают в себе несколько подходов к моделированию. Использование комбинированных моделей позволяет получить глубокую и точную информацию о динамике развития системы.