Как настроить эксперимент Anylogic Optimization?

Кто-нибудь пробовал использовать эксперимент по оптимизации с Anylogic? Я пытаюсь оптимизировать набор параметров с помощью моделирования. Anylogic сообщает, что целевая функция вызывается в конце каждого запуска моделирования. Проблема в том, что он, кажется, вызывает это всякий раз ... Я в замешательстве. Как я могу убедиться, что он вызывается в конце? Есть ли функция, которую мне нужно настроить в оптимизаторе?

Спасибо! Л.


person LouInNY    schedule 09.04.2015    source источник
comment
Не могли бы вы быть более точными? Например, почему вы думаете, что он не вызывается в конце каждой симуляции? Что вы сделали, чтобы сделать такой вывод?   -  person T_D    schedule 10.04.2015
comment
Привет. Я провел тест, в котором на каждом этапе одного моделирования я просто добавляю значение 1 к совокупной ошибке, которую хочу оптимизировать. Следовательно, он должен был возвращать одно и то же значение для каждого прогона (т. Е. Количество шагов в одном прогоне моделирования). Однако он вернул 0. Однако я думаю, что нашел проблему. Похоже, что переменная ошибки не может быть объявлена ​​как статическая, иначе она используется совместно с другими симуляторами (кажется странным, я знаю ...). Anylogic требует, чтобы функция ошибок была статической. Вот почему у меня его параметры были статичными.   -  person LouInNY    schedule 11.04.2015


Ответы (1)


Целевая функция действительно вызывается в конце каждого прогона моделирования, она не вызывается всякий раз. Обычно это происходит из-за концептуальной ошибки в вашей модели, и некоторые варианты могут быть следующими:

  1. В вашем имитационном эксперименте есть конфигурации, которые не передаются напрямую в ваш оптимизационный эксперимент. Это заставляет вас думать, что симуляция в точности такая же, хотя это не так. Например, вы запускаете симуляцию в разные даты, которые вы ожидаете ... внимательно проверьте всю конфигурацию
  2. оптимизация выполняется без случайного начального числа. В некоторых случаях это может вызвать путаницу. Если вы используете фиксированные семена, убедитесь, что это то, что вам нужно.
  3. Одна или несколько переменных вашей целевой функции сбрасываются в конце моделирования, что дает вам всегда одно и то же значение целевой функции. В этом случае вам необходимо внимательно изучить вашу модель.
  4. Использование статических переменных: не используйте статические переменные, если вы не уверены, что они делают ... Статическая переменная используется совместно со всеми экземплярами класса, поэтому не будет странно, когда вы увидите, что переменная используется совместно с другими симуляторами.

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

Резюме: целевая функция ВСЕГДА вызывается в конце, и если вы чувствуете, что это не так, ошибка на вашей стороне.

person Felipe    schedule 28.11.2018