Активные объекты являются основными строительными блоками модели
AnyLogic. Активные объекты могут моделировать любые объекты реального
мира: машины, людей, станки, цеха, города, компании, здания и т.д.
Активный объект является экземпляром класса активного объекта. Классы
активного объекта создаются пользователем или могут быть взяты из
библиотек.
Чтобы создать новый класс активного объекта
Имя
– Имя класса активного объекта.
Поскольку
AnyLogic создает для каждого класса активного объекта соответствующий
Java класс, при задании имени класса активного объекта нужно
руководствоваться правилами названия классов в Java. Пожалуйста,
начинайте имя класса с заглавной буквы.
Исключить – Если опция выбрана, то класс активного объекта будет исключен из модели.
Агент – Если опция выбрана, то этот активный объект будет объявлен агентом. Сделав это, Вы уведомляете AnyLogic, что Ваш класс активного объекта является подклассом встроенного в AnyLogic класса Agent, расширяющего, в свою очередь, класс ActiveObject функциональностью, требуемой от агента в большинстве агентных моделей. Также при этом станут доступны свойства на странице Агент.
Параметризованный класс – Если опция выбрана, то Вы сможете задать параметры класса для этого класса активного объекта в поле Параметры справа. В поле Метка Вы можете задать метку, которая будет отображаться в панели свойств вложенных объектов у поля, в котором будут задаваться фактические имена параметров класса вложенного объекта.
Действие при запуске - Здесь Вы можете написать Java код, который будет выполняться после того, как все объекты модели будут созданы, соединены и проинициализированы, но до выполнения каких-либо активностей модели. Здесь Вы можете, например, запустить какие-либо события этого объекта. Порядок выполнения Действий при запуске у объектов может меняться.
Действие при уничтожении - Здесь Вы можете написать Java код, который будет выполняться при уничтожении активного объекта этого класса.
Импорт – выражения импорта (import), требуемые для успешной компиляции кода этого класса. При генерации Java кода эти выражения будут добавлены перед объявлением Java класса.
Базовый класс (подкласс класса ActiveObject
или
Agent)–
Вы можете унаследовать Ваш класс активного объекта от другого класса.
Это дает Вам возможность вынести какую-то общую для нескольких классов
функциональность в одно место - в один Java класс. Эта функциональность
будет доступна всем классам, расширяющим этот базовый класс.
Реализуемые интерфейсы – Здесь задается список интерфейсов, реализуемых этим классом (имена интерфейсов должны разделяться запятыми).
Дополнительный код класса– Здесь Вы можете задать дополнительные методы, переменные, вложенные классы и константы этого класса. Этот код будет вставлен в объявление класса. Все заданные здесь члены класса будут доступны из любого места активного объекта этого класса. Заданные здесь методы могут быть вызваны из любой активности активного объекта, нарпимер, при происхождении события или срабатывании перехода диаграммы состояний.
Создать группу icon на верхнем уровне – Если опция выбрана, то группа фигур, составляющих значок этого класса активного объекта, будет доступна из кода как icon.
Создать группу presentation на верхнем уровне – Если опция выбрана, то группа фигур, составляющих презентацию этого класса активного объекта, будет доступна из кода как presentation.
Автоматически создавать наборы данных для динамических переменных – Если опция выбрана, то AnyLogic создаст наборы данных для динамических переменных (накопителей, потоков или вспомогательных переменных), содержащихся в данном классе активного объекта. В каждый набор данных будет добавлено определенное число значений, собранное с заданной периодичностью.
Хранить до ... последних изменений – [Доступно, если установлен флажок Автоматически создавать наборы данных для динамических переменных] Количество значений, которое будет храниться в автоматически созданном для динамической переменной наборе данных.
Период – [Доступно, если установлен флажок Автоматически создавать наборы данных для динамических переменных] Период добавления текущих значений динамических переменных в соответствующие наборы данных.
Тип пространства – Группа кнопок, позволяющая задать тип пространства, в котором будут обитать агенты (Непрерывное, Дискретное или ГИС).
Начальное расположение задается средой – Если опция выбрана, то начальное расположение агентов в пространстве будет определяться в соответствии с заданными свойствами среды.
Начальные координаты
– [Доступно, если не установлен флажок Начальное расположение задается средой]
Здесь Вы можете ввести выражения, которые будут
вычислять координаты начального местоположения Ваших агентов в
пространстве. Имена свойств будут отличаться в зависимости от
вбыранного Типа пространства:
X,Y в случае Непрерывного
пространства;
Столбец, Строка в случае Дискретного
пространства;
Широта, Долгота
в случае ГИС
пространства.
Скорость – [Виден, если Тип пространства: Непрерывное или ГИС] Скорость, с которой будет двигаться агент (в случае пространства ГИС она задается в метрах в секунду).
Поворот – [Виден, если Тип пространства: Непрерывное или ГИС] Направление (движения) агента.
Действие при достижении места назначения – Здесь Вы можете написать Java код, который будет выполняться при достижении агентом места назначения.
Действие при получении сообщения – Здесь Вы можете написать Java код, который будет выполняться при получении агентом сообщения от другого агента (возможно, что и от себя самого). Отправитель сообщения доступен в этом коде как sender, а только что полученное сообщение - как msg.
Действие перед выполнением шага – Здесь Вы можете написать Java код, который будет выполняться для агента перед тем, как он выполнит свой шаг синхронизации. У агентов одной популяции Действие перед выполнением шага будет выполняться в определенном неизменном порядке.
Действие на шаге – Здесь Вы можете написать Java код, который будет выполняться для агента во время выполнения его шага синхронизации. У агентов одной популяции Действие на шаге будет выполняться в определенном неизменном порядке.