
Моделирование движения пешеходов
Моделирование пешеходных потоков приобретает все большую актуальность в условиях растущего населения крупных городов и увеличения темпов строительства зданий. Во многих странах мира моделирование движения пешеходов является обязательным этапом при проектировании зданий, будь то торговый центр, аэропорт, вокзал или спортивный комплекс. Для точного и быстрого решения таких задач необходимо использовать современные средства, основанные на технологии имитационного моделирования.
В своей работы мы используем библиотеку для моделирования движения пешеходов в физическом пространстве, в основе которой заложены многолетние теоретические исследования и работа которой неоднократно проверена на практике. Библиотека позволяет моделировать здания, в которых движутся пешеходы, а также улицы и другие места большого скопления людей, гибко задавать пешеходные потоки и анимировать их, чтобы сделать модель понятной любому человеку. Библиотека позволяет собирать статистику плотности пешеходов в различных областях модели, вычислять время пребывания пешеходов в определенных пространствах и т. д., что позволяет определять и устранять проблемные места.
При моделировании пешеходных потоков мы решаем следующие задачи:
Расчет пропускной способности помещений. Допустим, необходимо построить гипермаркет, станцию метро, железнодорожный или аэровокзал. В таком случае появляется задача: как сконфигурировать помещение таким образом, чтобы пешеходные потоки не мешали друг другу, сервисы справлялись с нагрузкой, а люди чувствовали себя комфортно.
Организация пешеходного движения. При строительстве парков развлечений, музеев, стадионов возникают вопросы организации движения людей, например: «Где поставить киоск или рекламный щит?», «Как организовать процесс, чтобы люди, стоящие в очередях за билетами, не мешали проходящей толпе?». Чем больше размер помещения и количество посетителей, тем актуальнее данные вопросы.
Анализ вариантов эвакуации людей. При эвакуации люди ведут себя агрессивно, стараясь как можно быстрее покинуть зону опасности. Встает вопрос организации пешеходных потоков в нештатных ситуациях. Для этого применяются соответствующие знаки, указывающие на аварийные выходы, кроме того, часто за эвакуацию отвечаю специальные люди. Моделирование чрезвычайных происшествий позволяет заранее предвидеть проблемы, возникающие при эвакуации людей, и в конечном счете спасти человеческие жизни.
Дискретно-событийное моделирование
Мир вокруг нас является скорее "непрерывным", чем "дискретным": большинство наблюдаемых нами процессов - это непрерывные изменения во времени. Однако, для анализа этих процессов иногда имеет смысл абстрагироваться от их непрерывной природы и рассматривать только некоторые "важные моменты" ("события") в жизни моделируемой системы. Подход к построению имитационных моделей, предлагающий апроксимировать реальные процессы такими событиями и называется "дискретно-событийным" моделированием (discrete event modeling).
Вот некоторые примеры событий: покупатель вошел в магазин, на складе закончили разгружать фуру, конвейер остановился, в производство запущен новый продукт, уровень запасов достиг некоего порога и т.д. В дискретно-событийном моделировании движение поезда из точки А в точку Б будет представлено двумя событиями: отправление и прибытие, а само движение станет "задержкой" (интервалом времени) между ними. (Это, однако, не означает, что вы не сможете показать поезд движущимся - как раз наоборот, AnyLogic позволяет создавать визуально непрерывные анимации для логически дискретных процессов).
Термин "дискретно-событийное моделирование", однако, обычно используется в более узком смысле для обозначения "процессного" моделирования, где динамика системы представляется как последовательность операций (прибытие, задержка, захват ресурса, разделение, ...) над некими сущностями (entities, по-русски - транзакты, заявки), представляющими клиентов, документы, звонки, пакеты данных, транспортные средства и т.п. Эти сущности пассивны, они сами не контролируют свою динамику, но могут обладать определенными атрибутами, влияющими на процесс их обработки (например, тип звонка, сложность работы) или накапливающими статистику (общее время ожидания, стоимость). Процессное моделирование - это средне-низкий уровень абстракции: здесь каждый объект моделируется индивидуально, как отдельная сущность, но множество деталей "физического уровня" (геометрия, ускорения/замедления) обычно опускается. Такой подход широко используется в бизнес-процессах, производстве, логистике, здравоохранении.
Прежде чем использовать этот подход, мы советуем Вам убедиться, что моделируемая система (с точки зрения целей проекта) действительно естественно описывается как (возможно, иерархическая) последовательность операций. Вы всегда должны иметь в виду альтернативные подходы; например, если легче описать поведение каждого объекта индивидуально, чем пытаться загнать всех в общий процесс, решением может быть агентное моделирование. Аналогично, если Вас интересуют только общие количественные оценки процессов, а не динамика отдельных объектов, воможно, Вам удастся описать систему в терминах системной динамики. AnyLogic поддерживает все три подхода, так что Вы можете свободно экспериментировать с уровнем абстракции, оставаясь в рамках одного инструмента.
Основная Библиотека AnyLogic
Основное средство процессного моделирования в AnyLogic - это Основная библиотека. В эту библиотеку вошли объекты для определения "потока" процесса (process workflow): Source (источник), Sink (выход из системы), Delay (задержка), Queue (очередь), Service (обслуживание), SelectOutput (выбор пути), и т.д., а также задействованных в процессе ресурсов. Все объекты гибкие и настраиваемые: пераметры могут изменяться динамически, действия могут зависеть от атрибутов заявок, и т.д. Объекты имеют "точки расширения" типа Действие при входе/Действие при выходе - это места, где можно определить действия, производимые над заявками при их прохождении через объект. Базовый класс заявок Entity (на самом деле это Java-класс), в свою очередь, может быть расширен путём добавления полей и методов. Компоненты модели, построенные из блоков Основной библиотеки, могут естественным образом взаимодействовать с компонентами системной динамики, с агентами или с низкоуровневыми примитивами AnyLogic - диаграммами состояний и событиями.
Если моделируемая система сложна, имеет смысл разбить её модель на компоненты (подпроцессы) и поместить каждый из них в отдельный активный объект. Вы можете определить входы и выходы из подпроцесса, поместить их на внешний интерфейс активного объекта и скрыть его реализацию. На верхнем уровне Вы будете оперировать такими объектами как блоками, соединяя их входы и выходы. Вы можете создать несколько экземпляров активного объекта с разными параметрами, в том числе и в других проектах.
Основная библиотека тесно интегрирована с анимационными средствами AnyLogic и позволяет создавать анимации процессов любой степени сложности, в том числе иерархические и с несколькими перспективами. Например, Вы можете определить глобальный взгляд на процесс производства с несколькими агрегированными индикаторами, а также детальные анимации конкретных операций - и переключаться между ними.
Сетевое моделирование
В Основную библиотеку также входят объекты, разработанные для моделирования процессов, происходящих в (и зависящих от) пространства: таких, где объекты-заявки и ресурсы перемещаются в некой сети. Это подмножество объектов значительно упрощает моделирование некоторых типов систем, например, производства, внуризаводской логистики, супермаркета, склада, госпиталя. Для использования этого подхода, называемого сетевым моделированием (Network Based Modeling), Вы должны определить топологию сети (например, используя векторную графику AnyLogic поверх плана или чертежа здания или сооружения), множества ресурсов (статических, движущихся или перемещаемых), и собственно процесс. Процесс в данном случае - это комбинация объектов типа "переместиться туда-то" или "присоединить к себе ресурс" и обычных объектов Основной библиотеки. Заявки и ресурсы автоматически анимируются движущимися по сегментам сети или находящимися в её узлах; эта анимация может также комбинироваться с обычной.