AnyLogic позволяет задавать дополнительные условия оптимизации, накладывая ограничения на значения оптимизационных параметров и на получаемые оптимизатором решения - ограничения и требования соответственно.
Оптимизационное ограничение задает диапазон допустимых значений для параметров оптимизации.
Ограничение представляет собой арифметическое выражение, задающее более узкий диапазон допустимых значений параметров.
parameterA
+ parameterB + 2*parameterC = 10
parameterC - parameterA*parameterB >= 300
Оптимизатор будет использовать только допустимые значения параметров, удовлетворяющие заданным ограничениям - тем самым, Вы сузите пространство поиска и оптимизация будет производиться быстрее.
Чтобы задать
ограничение
Введите выражение ограничения в поле Выражение.
Старайтесь
использовать ограничения только тогда, когда в этом есть необходимость,
потому что добавление новых ограничений существенно уменьшает скорость
оптимизационного процесса.
Требование является дополнительным ограничением, накладываемым на решения, которые будет находить оптимизатор. Если на момент окончания прогона модели заданные требования будут выполняться, то полученный оптимизатором набор значений параметров будет признан допустимым, и результат оптимизации будет запомнен оптимизатором. Если ограничения удовлетворены не будут, то найденные значения параметров и решение будут считаться недопустимыми.
Выражение требования может содержать любые арифметические операции над данными модели. В выражении также можно вызывать созданные Вами функции, а также предопределенные функции (sin(), cos(), sqrt() и т.д.). Корневой активный объект эксперимента доступен здесь как root:0
<= 2*root.varB
– root.statistics.max() <= 500
sqrt(root.varC)>=49
Чтобы задать
требование
Допустимым решением является такое решение, которое удовлетворяет всем заданным ограничениям и требованиям.
Нахождение допустимого решения является первоочередной задачей
оптимизатора. Когда оно будет найдено,
оптимизатор начнет поиск более оптимальных решений.
Тот факт, что найденное решение будет недопустимым, еще не говорит о том, что задача не имеет решений вообще. Хотя такие задачи и существуют, например, следующая:
varA
+ varB <= 4
varA + varB >= 5
Очевидно, что решения, удовлетворяющего обоим этим условиям, нет.
Если оптимизационная задача является решаемой, то оптимизатор всегда найдет допустимое решение и будет искать оптимальное решение (т.е., наилучшее решение, удовлетворяющее всем ограничениям).
Если оптимизатор не может найти допустимое решение, то это означает, что в заданном ограничениями и требованиями поле поиска решения нет. Вы должны будете проверить Ваши ограничения, попытаться найти противоречия между ними или между каким-то ограничением и интервалом допустимых значений присутствующего в выражении ограничения параметра и устранить их.
Чтобы отключить/включить
ограничение
Чтобы отключить/включить
требование