Test dei metodi di ottimizzazione numerica: Rosenbrock vs. funzioni di test reali


15

Sembrano esserci due tipi principali di funzioni di test per gli ottimizzatori senza derivato:

  • one-liner come la funzione Rosenbrock e seguenti, con punti di partenza
  • insiemi di punti dati reali, con un interpolatore

È possibile confrontare diciamo 10d Rosenbrock con qualche reale problema 10d?
Si potrebbe confrontare in vari modi: descrivere la struttura dei minimi locali
o eseguire gli ottimizzatori ABC su Rosenbrock e su alcuni problemi reali;
ma entrambi sembrano difficili.

(Forse teorici e sperimentatori sono solo due culture abbastanza diverse, quindi sto chiedendo una chimera?)

Guarda anche:


(Aggiunto a settembre 2014):
Il diagramma seguente confronta 3 algoritmi DFO su 14 funzioni di test in 8d da 10 punti di partenza casuali: BOBYQA PRAXIS SBPLX di NLOpt
14 funzioni di test N-dimensionali, Python sotto gist.github da questo Matlab di A. Hedar 10 punti di partenza casuali uniformi nel riquadro di delimitazione di ciascuna funzione.×
×

Su Ackley, ad esempio, la riga in alto mostra che SBPLX è il migliore e PRAXIS terribile; su Schwefel, il pannello in basso a destra mostra SBPLX che trova un minimo sul 5 ° punto di partenza casuale.

Nel complesso, BOBYQA è il migliore su 1, PRAXIS su 5 e SBPLX (~ Nelder-Mead con riavvii) su 7 su 13 funzioni di test, con Powersum un lancio. YMMV! In particolare, Johnson afferma: "Ti consiglierei di non utilizzare il valore di funzione (ftol) o le tolleranze dei parametri (xtol) nell'ottimizzazione globale".

Conclusione: non mettere tutti i tuoi soldi su un cavallo o su una funzione di test.

inserisci qui la descrizione dell'immagine

Risposte:


13

Funzioni semplici come quelle di Rosenbrock vengono utilizzate per il debug e il pre-test di algoritmi appena scritti: sono veloci da implementare ed eseguire e è improbabile che un metodo che non sia in grado di risolvere bene i problemi standard funzioni bene sui problemi della vita reale.

Per un recente confronto approfondito di metodi senza derivati ​​per funzioni costose, vedere Ottimizzazione senza derivati: una revisione degli algoritmi e un confronto delle implementazioni software . LM Rios, NV Sahinidis - doi 10.1007 / s10898-012-9951-y Journal of Global Optimization, 2012. (Vedi anche la pagina web di accompagnamento: http://archimedes.cheme.cmu.edu/?q=dfocomp )


Prof. Neumaier, potresti indicare alcuni problemi reali, prove, per "è improbabile che un metodo che non sia in grado di risolvere bene i problemi standard funzioni bene sui problemi della vita reale"? Mi rendo conto che non è facile. (Sarei interessato ai tuoi commenti su Hooker.) Inoltre, una rapida occhiata ai modelli c dal tuo link mostra che princetonlibgloballib richiede AMPL, e source_convexmodels * .c mancano tutti ";" dopo fscanf () - banale ma
denis l'

@Denis: problemi come Rosenbrock derivano dai primi tempi dell'ottimizzazione automatizzata, in cui le persone hanno isolato le difficoltà tipiche in semplici esempi rappresentativi che possono essere studiati senza le complessità numeriche dei problemi della vita reale. Quindi non sono realmente artificiali, ma modelli semplificati di reali difficoltà. Ad esempio, Rosenbrock illustra l'effetto combinato di una forte non linearità e lievi cattive condizioni.
Arnold Neumaier l'

Il sito AMPL ampl.com offre una versione studentesca gratuita per AMPL.
Arnold Neumaier l'

7

Il vantaggio di testcase sintetici come la funzione Rosenbrock è che esiste una letteratura esistente con cui confrontarsi, e c'è un senso nella comunità su come si comportano i buoni metodi su tali test. Se tutti usassero il proprio testcase, sarebbe molto più difficile trovare un consenso su quali metodi funzionano e quali no.


1

(Spero che non ci siano obiezioni alla mia partecipazione alla fine di questa discussione. Sono nuovo qui, quindi per favore fatemi sapere se ho trasgredito!)

Le funzioni di test per algoritmi evolutivi sono ora molto più complicate di quanto lo fossero anche 2 o 3 anni fa, come si può vedere dalle suite utilizzate nelle competizioni in conferenze come il (molto recente) Congresso sul calcolo evolutivo del 2015. Vedere:

http://www.cec2015.org/

Queste suite di test ora includono funzioni con diverse interazioni non lineari tra variabili. Il numero di variabili può essere grande quanto 1000, e immagino che potrebbe aumentare nel prossimo futuro.

Un'altra innovazione molto recente è una "competizione per l'ottimizzazione della scatola nera". Vedi: http://bbcomp.ini.rub.de/

Un algoritmo può interrogare il valore f (x) per un punto x, ma non ottiene informazioni sul gradiente, e in particolare non può fare ipotesi sulla forma analitica della funzione obiettivo.

In un certo senso, questo potrebbe essere più vicino a quello che hai definito un "problema reale", ma in un contesto organizzato e oggettivo.


1) "nessuna obiezione": al contrario, i tuoi buoni collegamenti sono i benvenuti! 2) qualche buona trama lì? Metodi e problemi sono entrambi frattalizzanti, quindi diventa sempre più difficile per chiunque trovare un problema come il loro. In particolare, conosceresti i metodi per la previsione delle serie storiche ?
denis,

Le funzioni obiettive per il Concorso CEC 2015 sull'ottimizzazione multi-obiettivo dinamica sono disponibili su: sites.google.com/site/cec2015dmoocomp/competition-process/… Per altre competizioni, vai su cec2015.org e fai clic su concorsi, quindi fai clic su concorsi su competizioni accettate. Ognuno ha le sue funzioni. Alcuni documenti su alcuni di essi hanno delle belle trame (per i casi 2D). Le competizioni della conferenza GECCO sono disponibili su: sigevo.org/gecco-2015/competitions.html#bbc I risultati saranno disponibili dopo il 15 luglio.
Lysistrata,

0

Puoi avere il meglio di entrambi i mondi. Il NIST ha una serie di problemi per i minimizzatori, come ad esempio il montaggio di questo polinomio di 10 ° grado , con risultati attesi e incertezze. Certo, dimostrare che questi valori sono la migliore soluzione effettiva, o l'esistenza e le proprietà di altri minimi locali è più difficile che su un'espressione matematica controllata.


Bene, i problemi del NIST sono piccoli (2 3 1 1 11 7 6 6 6 6 6 parametri). Esistono set di test "reali" e riproducibili per ogni angolo di "reale"? Cf. una richiesta di problemi di ottimizzazione basata sulla simulazione
denis
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.