Гибридная функция является функцией, которая продолжает оптимизацию после завершения работы исходного решателя.
Эти решатели Global Optimization Toolbox могут автоматически запустить гибридную функцию, или второй решатель, после того, как они закончат:
Чтобы запустить гибридную функцию, установите HybridFcn
опция второму решателю.
Гибридная функция может получить более точное решение, начиная с относительно грубого решения, найденного первым решателем, в следующих обстоятельствах:
Имеет ли целевая функция нежесткие области, если решение находится в гладкой области с плавными ограничениями, используйте гибридную функцию из Optimization Toolbox™, например fmincon
.
Если целевая функция или ограничение не находится рядом с решением, используйте patternsearch
как гибридная функция.
Предположим, что задача имеет несколько локальных минимумов, и вы хотите получить точное глобальное решение. Решатели с одной целью могут искать окрестности глобального решения, но не обязательно получают чрезвычайно точный результат. Если целевая функция сглажена, используйте гибридную функцию из Optimization Toolbox, например fminunc
.
Для гладких мультиобъективных задач гибридная функция обычно улучшается на решениях из gamultiobj
.
Чтобы увидеть, какие решатели доступны в качестве гибридных функций, обратитесь к options
входной параметр на странице с описанием для исходного решателя. Чтобы настроить гибридную функцию, можно включить отдельный набор опций для гибридной функции. Для примера, если гибридная функция fmincon
:
hybridopts = optimoptions('fmincon','OptimalityTolerance',1e-10); options = optimoptions('ga','HybridFcn',{'fmincon',hybridopts}); [x,fval] = ga(fun,nvars,A,b,Aeq,beq,lb,ub,nonlcon,options)
ga
| gamultiobj
| particleswarm
| simulannealbnd