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