fmincon: вернуть последнюю возможную точку - PullRequest
0 голосов
/ 30 ноября 2018

Я использую fmincon для решения

min f(x)
s.t. c(x) >= 0, lb <= x <= ub

, где c(x) - нелинейное неравенство.Я начинаю с точки x_0, которая удовлетворяет ограничениям неравенства и ограничениям ящика.Поиск дает точку, которая неосуществима.Мне интересно, есть ли возможность отслеживать точки, исследуемые fmincon, которые возможны, и из них возвращать ту, которая минимизирует f(x)?

Одно из решений, которое я нашел, - это сохранить файл storage.mat и в функции f(x) записать

load('storage')
x_store = [x_store , x];
save('storage','x_store ')

и ex post найти в x_store точку, которая удовлетворяетограничения и минимизирует f(x).Одна из проблем этого метода заключается в том, что я не могу вызвать fmincon параллельно и выполнить мультистарт.

Другое решение заключается в использовании функции вывода .Это, однако, сохраняет не все вызовы f(x), а только вызовы итерации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...