Select date in calendarSelect date in calendar

Pages: 1
Проблема с Optimization, Оптимизационный эксперимент работает в 6.9 работает, а в 7.2 - Ошибка
Ошибка в оптимизационном эксперименте в AnyLogic 7.2 уже на втором прогоне при выполнении по шагам.Текст: To run OptomizeAdditional() you need to specify more iteration.
Настройка числа итераций не помогает.
Да меня и полный перебор устроил бы.  Можно как-то отключить OptomizeAdditional()?
В AnyLogic 6.9, где и делалась модель, эксперимент работает.
Есть какие-то тонкости в конвертации модели из 6.9?
Оптимизационный эксперимент в 6.4.0, Проблема: результат оптимизационного эксперимента не совпадает с простым экспериментом
Всем спасибо за проявленный интерес. Вопрос снимаю. Нашел ошибку в задании модельного времени   для оптимизационного эксперимента. Теперь все работает.
Оптимизационный эксперимент в 6.4.0, Проблема: результат оптимизационного эксперимента не совпадает с простым экспериментом
Простая детерминированная модель: два источника, очереди, формирователи партий, три сервиса, два из которых используют общий ресурс. Подбираю размеры партий. В простом эксперименте все работает, проверено до 1000 заявок. А в оптимизационном эксперименте до 40 заявок результаты совпадают с простым экспериментом, оптимизация работает. А при большем числе заявок начинаются ошибки, и при дальнейшем увеличении (до 60)  целевая функция (общее время обработки) вообще принимает нулевое значение (вместо порядка 100). Количество итераций – не влияет. И при одной итерации результат вычисления целевой функции тоже неправильный. Переполняться тут нечему, да и переменные одни и те же.
В чем может быть дело? Стохастики тут нет, все прозрачно. 
Как проверить класс заявки в модели Enterprise Library?, код ((entity instanceof D1)? 2 : 1) не работает. Почему?
Всем, кто читал, спасибо за проявленный интерес. Разобрался. Дело оказалось в том, что для объектов Source в поле "Класс заявки" я указал D1, D2 и т.п., 
а значение в поле "Новая заявка" оставил предлагаемым по умолчанию: New Entity(). 
Т.е. заявки D1, D2 ... у меня просто не генерировались. 
Пишу в полях "Новая заявка" New D1(),  New D2() ...  и все прекрасно. 
Ресурс предоставляет себя заявкам разных классов в требуемом порядке. 
Как проверить класс заявки в модели Enterprise Library?, код ((entity instanceof D1)? 2 : 1) не работает. Почему?
AnyLogic Advanced 6.4.0. Enterprise Library.
Не удается проверить  в коде нестандартный класс заявки.
Пытаюсь управлять предоставлением ресурсов для обработки заявок, вычисляя для заявок приоритеты запросов (объекты ResourcePool) в зависимости от класса заявки (классы заявок от разных источников D1, D2 ...).
Но код подобный
((entity instanceof  D1) ? 2 : 1)
в поле «Приоритет запроса» ResourcePool не работает.
Проверяю: такой код не работает у меня не только для объектов ResourcePool, но и для service и sink.
Пробую уже  на элементарном примере:
Source - Sink.
Добавляю в модель простую переменную plainVar (значение по умолчанию 0) и Java класс D1 (базовый класс com.xj.anylogic.libraries.enterprise.Entity). 
Класс заявки источника меняю с Entity на D1.
На событие «Действие при входе» объекта Sink меняю значение переменной:
plainVar = ((entity instanceof D1)? 2 : 1).
На симуляции при поступлении в Sink первой заявки значение переменной изменяется с 0 не на 2, как ожидается, а на 1. 
Итак, объект Sink не опознает класс заявки D1.
Код
entity instanceof D1
не работает.
В чем дело?
Как запомнить в партии заявок ее размер (batchQ AnyLodic 5)?
Спсаибо. Попробовал. В AnyLogic 5 у меня это не получилось - не проходит компиляция.
Как запомнить в партии заявок ее размер (batchQ AnyLodic 5)?
Подскажите, как лучше записать в параметр сообщения размер сформированной партии заявок на выходе блока batchQ библиотеки Enterprise Library в AnyLogic 5.4.1.

Проблема в следующем:

Формирую на выходе batchQ партии заявок (класс сообщения BatchD). Число составляющих партию заявок меняю по ходу эксперимента кодом посредством управления параметром batchQ.size. Мне надо записать это число в параметр (назвал его quantity) сформированной партии (сообщения BatchD), чтобы далее обрабатывать ее с учетом этого «размера». Думается, ситуация достаточно типичная.

Если включаю код
((BatchD)entity).quantity=size;
в  параметр  onExit блока batchQ, то в процессе эксперимента (компиляция завершается успешно) возникает исключение: «Exception during step: java.lang.ClassException».

Получается, что на событие onExit в batchQ экземпляр выходного сообщения еще не сформирован. Странно.

Мне приходится по onExit в batchQ запоминать batchQ.size в переменной

currentSize = size,

а потом на событие onEnter в добавляемой за  batchQ очереди формировать quantity пришедшей заявки:

((BatchD)entity).quantity = currentSize.

Это работает, но … полного удовлетворения нет. Дополнительная переменная, очередь (если следующий блок не имеет onEnter) .

Обойтись без переменной и использовать на onEnter очереди batchQ.size - нельзя, т.к. size может измениться за те несколько шагов, что имеют место между onExit batchQ  и onEnter очереди.

Как-то лучше можно сделать?
Время simulation, Как запустить код на факт завершения работы модели в Enterprise Library?
AnyLogic 5.4.1.

Для определения времени завершения процесса вычисляю в параметре onEnter блока sink переменную Tall:

Tall=getTime();

В результате по завершении симуляции имею в ней общее время. Но по ходу симуляци  эти вычисления выполняются многократно понапрасну (на каждое поступление заявки).

Как выполнить getTime() на событие завершения работы модели?

У модели есть «Код инициализации».

Как запустить «код завершения»?
Pages: 1