Гибридная функция является функцией, которая продолжает оптимизацию после того, как исходный решатель завершает работу.
Эти решатели 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