Каков наиболее строгий способ применения границ для проектных переменных? - PullRequest
0 голосов
/ 23 мая 2018

Я вижу, что моя расчетная переменная превышает свои пределы.(в данном случае используется COBYLA)

У меня есть пример установки с одной переменной дизайна, где оптимум лежит около 0.

Я установил 'lower = 0'.

Я хочу, чтобы это был очень строгий предел, потому что отрицательные значения дают NaN для моего решателя.

Оптимизатор работает, то есть 1, 2, 0, -0.125000000e-01, -1.56250000e-02, -1.95312500e-03, -2.44140625e-04 -3.05175781e-05, -3.81469727e-06, -5.00000000e-07

Я предполагаю, что это зависит от типа оптимизатора?Но есть ли способ обеспечить более строгое соблюдение.

1 Ответ

0 голосов
/ 23 мая 2018

К сожалению, COBYLA не строго соблюдает границы переменных ( см. Scipy docs ). Лучшее, что вы можете сделать, это добавить их в виде линейных ограничений и попытаться применить их в оптимальной точке.

Вы можете попробовать SLSQP.Он строго соблюдает границы.

...