У меня есть вопрос из двух частей, основанный на задаче оптимизации:
max f(x) s.t. a <= x <= b
, где f - нелинейная функция, а a и b - конечные.
(1) Я слышал, чтоесли возможно, следует попытаться преобразовать эту ограниченную задачу оптимизации в безусловную (меня интересует не найти локальные максимумы, но это также может ускорить оптимизацию).В целом ли это так?
Для решения конкретной проблемы я использую функцию «optim» в R с «Nelder-Mead», которая использует недифференцируемую оптимизацию.
(2) Есть ли «лучшее» преобразование, которое можно использовать для преобразования ограниченной задачи в неограниченную?
Я использую + (ba) * (sin (x) +1) / 2, потому что он включен и непрерывен (и поэтому я надеюсь не находить локальные максимумы путем поиска по всему интервалу).Смотрите https://math.stackexchange.com/questions/75077/mapping-the-real-line-to-the-unit-interval для некоторых преобразований.Тогда проблема без ограничений:
max f(a +(b-a)*(sin(x)+1)/2)
Также в случае одностороннего ограничения a