Чтобы настроить модель для более близкого соответствия вашим задачам, ее бывает необходимо модифицировать с помощью заданного вручную кода. Этот код можно вызывать на разных этапах выполнения модели. Воспользуйтесь предложенной схемой выполнения модели, чтобы установить, на каком этапе эксперимента сработает та или иная функция.
Стандартная модель выполняется следующим образом:
-
Создание экземпляра эксперимента
Для начала AnyLogic создает экземпляры класса эксперимента, исполняющего модуля и класса ExperimentHost.
В ходе этой фазы также выполняется Код инициализации эксперимента. Чтобы узнать больше о Java-коде для модификации экспериментов, изучите описание интересующего вас типа эксперимента. -
Запуск исполняющего модуля
После начала эксперимента первым выполняется код Действия перед запуском эксперимента. Затем для модели создается экземпляр агента верхнего уровня, и AnyLogic настраивает параметры агента верхнего уровня в порядке, в котором эти параметры указаны в секции Предв. просмотр параметров свойств типа агента.
Как только настройка параметров завершена, выполняется код Действия перед прогоном модели. Затем вызывается функция агента create(): задаются значения динамических переменных, рисуется анимация. Функция create() выполняется поочередно для всех агентов, вложенных в агента верхнего уровня.
К моменту, когда функция отработает для всех агентов модели, создание модели и рисование анимации фактически завершены.
После функции create() для каждого агента вызывается функция start(). Для каждого агента формируются диаграммы состояний и заводятся события. Наконец, выполняется код При запуске агента: сначала для агентов, находящихся на наиболее глубоком уровне вложенности, затем выше по дереву модели и далее.
Код При запуске агента верхнего уровня выполняется последним, когда все агенты модели сконструированы, связаны между собой и инициализированы — но перед началом выполнения основной части модели. Его оптимально использовать для инициализации дополнительных элементов и стартовых действий с агентами. -
Прогон модели
В ходе прогона модели системной динамики сначала производятся вычисления для интегрирования до ближайшего дискретного события, тогда как дискретно-событийные и агентные модели просто запускают первое дискретное событие. Далее прогон производится в соответствии с логикой моделей: при необходимости пропускается время, запускаются события, исполняется код, заданный диаграммой процесса, свойствами, настройками и так далее. -
Завершение
После завершения эксперимента (либо в соответствии с настройками, либо в результате соответствующего действия пользователя) исполняющий модуль сначала выполняет код Действия после прогона модели.
После этого агент верхнего уровня уничтожается вместе со всеми вложенными агентами и блоками библиотек. Во время этой фазы выполняется код При уничтожении агентов.
На схеме ниже показан процесс выполнения моделей AnyLogic (щелкните по схеме, чтобы открыть ее в полном размере в браузере по умолчанию):
-
Как мы можем улучшить эту статью?
-