Чтобы сглаживать в противном случае несглаженную проблему, можно иногда добавлять вспомогательные переменные. Например,
f (x) = макс. (g (x), h (x))
может быть несглаженная функция, даже когда g (x) и h (x) является гладким, как проиллюстрировано следующими функциями.
f (x) несглажен в точках x = π/4 и x = 5π/4.

Это отсутствие гладкости может вызвать проблемы для решателей Optimization Toolbox™, все из которых принимают, что целевые функции и нелинейные ограничительные функции непрерывно дифференцируемы. Так, при попытке решить
x = mint (f (t)) начинающий с точки x0 = 1,
вы не получаете выходной флаг 1, потому что решение не дифференцируемо в локально минимизирующей точке x = π/4.
fun1 = @sin; fun2 = @cos; fun = @(x)max(fun1(x),fun2(x)); [x1,fval1,eflag1] = fminunc(fun,1)
Local minimum possible.
fminunc stopped because it cannot decrease the objective function
along the current search direction.
<stopping criteria details>
x1 =
0.7854
fval1 =
0.7071
eflag1 =
5Иногда, можно использовать вспомогательную переменную, чтобы превратить несглаженную проблему в сглаженную проблему. Для предыдущего примера рассмотрите вспомогательную переменную y со сглаженными ограничениями
Рассмотрите задачу оптимизации согласно этим ограничениям,
Получившееся решение xY решение исходной проблемы
Эта формулировка использует подход, основанный на проблеме.
myvar = optimvar("myvar"); auxvar = optimvar("auxvar"); smprob = optimproblem("Objective",auxvar); smprob.Constraints.cons1 = auxvar >= sin(myvar); smprob.Constraints.cons2 = auxvar >= cos(myvar); x0.myvar = 1; x0.auxvar = 1; [sol2,fval2,eflag2] = solve(smprob,x0)
Solving problem using fmincon.
Local minimum found that satisfies the constraints.
Optimization completed because the objective function is non-decreasing in
feasible directions, to within the value of the optimality tolerance,
and constraints are satisfied to within the value of the constraint tolerance.
sol2 =
struct with fields:
auxvar: 0.7071
myvar: 0.7854
fval2 =
0.7071
eflag2 =
OptimalSolutionЭта та же концепция лежит в основе формулировки fminimax функция; см. Целевой Метод Достижения.