Che cosa è l'ottimizzazione surrogata?
Un surrogato è una funzione che approssima un'altra funzione. La surrogata è utile perché la valutazione richiede poco tempo. Ad esempio, per cercare un punto che minimizzi una funzione obiettivo, è sufficiente valutare il suo surrogato su migliaia di punti e prendere il valore migliore come approssimazione del punto di minimo della funzione obiettivo.
L'ottimizzazione surrogata è più adatta alle funzioni obiettivo che richiedono molto tempo. La funzione obiettivo non deve essere necessariamente regolare, ma l'algoritmo funziona meglio quando la funzione obiettivo è continua.
L'ottimizzazione surrogata tenta di trovare un minimo globale di una funzione obiettivo utilizzando poche valutazioni della funzione obiettivo. Per fare ciò, l'algoritmo cerca di bilanciare il processo di ottimizzazione tra due obiettivi: esplorazione e velocità.
Esplorazione per cercare un minimo globale.
Velocità nell'ottenere una buona soluzione in poche valutazioni della funzione obiettivo.
È stato dimostrato che l'algoritmo converge verso una soluzione globale per funzioni obiettivo continue su domini limitati. Vedi Gutmann [1] . Tuttavia, questa convergenza non è rapida.
In generale, non esiste un criterio di arresto utile che arresti il risolutore quando è vicino a una soluzione globale. In genere, si imposta un criterio di arresto pari a un numero di valutazioni di funzioni o a una quantità di tempo e si sceglie la migliore soluzione trovata entro questo budget computazionale.
Per i dettagli sull'algoritmo surrogateopt, vedere Surrogate Optimization Algorithm.
Riferimenti
[1] Gutmann, H.-M. A radial basis function method for global optimization. Journal of Global Optimization 19, Issue 3, 2001, pp. 201–227. https://doi.org/10.1023/A:1011255519438