Cuándo utilizar una función híbrida
Una función híbrida es una función que continúa la optimización después de que finaliza el solucionador original.
Estos solucionadores Global Optimization Toolbox pueden ejecutar automáticamente una función híbrida, o un segundo solucionador, después de finalizar:
Para ejecutar una función híbrida, configure la opción HybridFcn
en el segundo solucionador.
Una función híbrida puede obtener una solución más precisa, a partir de la solución relativamente aproximada encontrada por el primer solucionador, en las siguientes circunstancias:
Independientemente de si la función objetivo tiene regiones no suaves o no, si la solución está en una región suave con restricciones suaves, entonces use una función híbrida de Optimization Toolbox™, como
fmincon
.Si la función objetivo o una restricción no es suave cerca de la solución, entonces utilice
patternsearch
como una función híbrida.Supongamos que el problema tiene múltiples mínimos locales y desea obtener una solución global precisa. Los solucionadores de objetivo único pueden buscar la proximidad de una solución global, pero no necesariamente obtienen un resultado extremadamente preciso. Si la función objetivo es suave, utilice una función híbrida de Optimization Toolbox, como
fminunc
.Para problemas multiobjetivo suaves, una función híbrida generalmente mejora las soluciones de
gamultiobj
.
Para ver qué solucionadores están disponibles como funciones híbridas, consulte el argumento de entrada options
en la página de referencia del solucionador original. Para ajustar la función híbrida, puede incluir un conjunto separado de opciones para la función híbrida. Por ejemplo, si la función híbrida es 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)
Consulte también
ga
| gamultiobj
| particleswarm
| simulannealbnd