Применение изменения переменных внутри fmincon - PullRequest
1 голос
/ 18 октября 2019

(Отказ от ответственности: я также написал в mathworks в надежде на быстрый ответ. Я надеюсь, что это не осуждается.)

Я хочу минимизировать очень хорошо себя ведущий реальныйцелевая функция $ f $ из R ^ I. Возможные точки находятся внутри выпуклой оболочки конечного набора точек от x ^ 1 до x ^ n. Меня интересует только нахождение точки y, где f (y) максимизировано, и мне нет дела до N весов (в N-мерном симплексе), которые позволяют мне записать y как выпуклую комбинацию x ^ i.

Конечно, я мог бы просто написать оптимизацию как:

popt = fmincon(@(p) f(x'*p),[],[],ones(1,N),1,zeros(N,1),[]);
y = x'*popt;

Однако, если точки, которые охватывают выпуклую оболочку, почти мультиколлинеарны, то эта составная функция (как функция от p)очень плоский вокруг оптимального. Я подозреваю, что это сильно замедляет fmincon и поможет ему «решить проблему» в пространстве R ^ I, а не в N-мерном симплексе. Какие шаги я могу предпринять, чтобы достичь этого?

...