Quando utilizzare una funzione ibrida
Una funzione ibrida è una funzione che continua l'ottimizzazione dopo la fine del risolutore originale.
Questi risolutori Global Optimization Toolbox possono eseguire automaticamente una funzione ibrida, o un secondo risolutore, dopo aver terminato:
Per eseguire una funzione ibrida, impostare l'opzione HybridFcn sul secondo risolutore.
Una funzione ibrida può ottenere una soluzione più accurata, partendo dalla soluzione relativamente approssimativa trovata dal primo risolutore, nelle seguenti circostanze:
Indipendentemente dal fatto che la funzione obiettivo abbia o meno regioni non uniformi, se la soluzione si trova in una regione uniforme con vincoli uniformi, allora utilizzare una funzione ibrida da Optimization Toolbox™, come
fmincon.Se la funzione obiettivo o un vincolo non sono uniformi in prossimità della soluzione, allora utilizzare
patternsearchcome funzione ibrida.Supponiamo che il problema abbia più minimi locali e che si voglia ottenere una soluzione globale accurata. I risolutori mono-obiettivo possono cercare le vicinanze di una soluzione globale, ma non ottengono necessariamente un risultato estremamente accurato. Se la funzione obiettivo è regolare, allora utilizzare una funzione ibrida da Optimization Toolbox, come ad esempio
fminunc.Per problemi multiobiettivo uniformi, una funzione ibrida solitamente migliora le soluzioni di
gamultiobj.
Per vedere quali risolutori sono disponibili come funzioni ibride, fare riferimento all'argomento di input options nella pagina di riferimento del risolutore originale. Per ottimizzare la funzione ibrida, è possibile includere un set separato di opzioni per la funzione ibrida. Ad esempio, se la funzione ibrida è 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)
Vedi anche
ga | gamultiobj | particleswarm | simulannealbnd