Форум

Добрый день. Моя модель может запускаться в двух режимах. Первый подразумевает запуск одиночного прогона, который позволяет по анимации оценить адекватность работы модели, корневой класс - Main. Модель стохастическая, для набора статистики и поиска оптимума создан вспомогательный класс Root. По сути он управляет многократным созданием и удалением Main через определенные промежутки времени (по таймеру) и сбора статистики перед каждым удалением. После определённого количества срабатываний счётчика (достижения размера выборки) результаты сравниваются с требуемыми, в случае, если они меньше, то к входному параметру прибавляется некое число (шаг) и выполнение таймера продолжается еще некоторое количество раз (равное размеру выборки) и так ad infinitum. Root не наследует анимацию Main, т. о. я думал, что обезопасил машину от затраты процессорного времени на анимацию. Вот сейчас решил проверить: а действительно ли анимация Main и всех АО вниз по иерархии не создаётся. Оказалось это не так, простая трассировка из кода анимации срабатывает. Провел эксперимент: посчитал время выполнения по-старому: 640 прогонов выполнено за 8718 мсек 640 прогонов выполнено за 8922 мсек 640 прогонов выполнено за 9891 мсек и предварительно вручную "временно исключив" все анимации, кроме той, которая действительно отображается: 640 прогонов выполнено за 3360 мсек 640 прогонов выполнено за 3390 мсек 640 прогонов выполнено за 3781 мсек Вопрос в том как программно отключить все анимации в случае, когда корневой объект не Main, а Root? Подскажите есть ил более простой способ реализации моей задачи? Сильно ли упростится реализация при переходе на 6-ю версию?
Все вопросы остаются открытыми, но у меня получилось сделать то, что я хотел. Метод дубовый, но работает: Дополнительный код класса Main(){ battlefield = (_Group)(new __Group()); } public class __Group extends _Group { public void setup() { } public void init() { super.init(); } public void update() { super.update(); } }
Рекомендую Вам перейти на AnyLogic 6. Вашу задачу там можно будет решить с помощью эксперимента по варьированию параметров, установив все параметры как фиксированные. При этом анимация создаваться не будет, модель будет прогоняться в самом быстром режиме. Более того, большинство вещей в 6-й версии делается гораздо проще и быстрее.

Ваше сообщение