Sia una funzione abbastanza carina (ad esempio, continua, differenziabile, non troppi massimi locali, forse concava, ecc.). Voglio trovare un massimo di f : un valore x ∈ R d che rende f ( x ) il più grande possibile.
Se avessi una procedura per valutare precisione su qualsiasi input di mia scelta, avrei potuto utilizzare tecniche di ottimizzazione matematica standard : arrampicata in salita, discesa in pendenza (bene, salita in pendenza), ecc. Tuttavia, nella mia applicazione non ho un modo di valutare esattamente f ( x ) . Invece, ho un modo per stimare il valore di f ( x ) .
In particolare, dato qualsiasi e qualsiasi ε , ho un oracolo che produrrà una stima di f ( x ) e il cui errore previsto è approssimativamente ε . Il tempo di esecuzione di questa invocazione dell'oracolo è proporzionale a 1 / ε 2 . (È implementato da un tipo di simulazione; l'accuratezza della simulazione aumenta con la radice quadrata del numero di prove e posso scegliere quante prove eseguire, quindi posso scegliere l'accuratezza desiderata.) Quindi questo mi dà un modo per ottenere una stima di qualsiasi accuratezza che desidero, ma più preciso voglio che sia la stima, più tempo ci vorrà.
Dato questo rumoroso oracolo per , ci sono delle tecniche per calcolare un massimo di f nel modo più efficiente possibile? (O, più precisamente, trovare un massimo approssimativo.) Esistono varianti di arrampicata in collina, discesa in pendenza, ecc., Che funzionano all'interno di questo modello?
Ovviamente, potrei fissare un valore molto piccolo di e applicare l'arrampicata o la discesa con pendenza con questo oracolo, mantenendo lo stesso ε per tutto. Tuttavia, ciò potrebbe essere inutilmente inefficiente: potremmo non aver bisogno di una stima così precisa vicino all'inizio, mentre la precisione vicino alla fine quando si sta concentrando sulla soluzione è più importante. Quindi c'è un modo per sfruttare la mia capacità di controllare in modo dinamico l'accuratezza della mia stima, per rendere più efficiente il processo di ottimizzazione? Questo tipo di problema è stato studiato prima?