Quand utiliser une fonction hybride
Une fonction hybride est une fonction qui continue l'optimisation après la fin du solveur d'origine.
Ces solveurs Global Optimization Toolbox peuvent exécuter automatiquement une fonction hybride, ou un deuxième solveur, une fois qu'ils ont terminé :
Pour exécuter une fonction hybride, définissez l’option HybridFcn sur le deuxième solveur.
Une fonction hybride peut obtenir une solution plus précise, à partir de la solution relativement approximative trouvée par le premier solveur, dans les circonstances suivantes :
Que la fonction objectif ait ou non des régions non lisses, si la solution se trouve dans une région lisse avec des contraintes lisses, utilisez une fonction hybride de Optimization Toolbox™, telle que
fmincon.Si la fonction objectif ou une contrainte n'est pas lisse près de la solution, utilisez
patternsearchcomme fonction hybride.Supposons que le problème comporte plusieurs minima locaux et que vous souhaitiez obtenir une solution globale précise. Les solveurs à objectif unique peuvent rechercher le voisinage d'une solution globale, mais n'obtiennent pas nécessairement un résultat extrêmement précis. Si la fonction objectif est lisse, utilisez une fonction hybride de Optimization Toolbox, telle que
fminunc.Pour les problèmes multi-objectifs fluides, une fonction hybride améliore généralement les solutions de
gamultiobj.
Pour voir quels solveurs sont disponibles en tant que fonctions hybrides, reportez-vous à l'argument d'entrée options sur la page de référence du solveur d'origine. Pour régler la fonction hybride, vous pouvez inclure un ensemble d'options distinct pour la fonction hybride. Par exemple, si la fonction hybride est 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)
Voir aussi
ga | gamultiobj | particleswarm | simulannealbnd