Tampaknya ada dua jenis fungsi pengujian utama untuk pengoptimal tanpa-derivatif:
- satu garis seperti fungsi Rosenbrock , dengan titik awal
- set poin data nyata, dengan interpolator
Apakah mungkin untuk membandingkan katakanlah 10d Rosenbrock dengan masalah 10d nyata?
Orang dapat membandingkan dengan berbagai cara: menggambarkan struktur minimum lokal,
atau menjalankan pengoptimal ABC di Rosenbrock dan pada beberapa masalah nyata;
tetapi keduanya tampaknya sulit.
(Mungkin para ahli teori dan peneliti hanyalah dua budaya yang sangat berbeda, jadi saya minta chimera?)
Lihat juga:
- scicomp.SE pertanyaan: Di mana orang bisa mendapatkan set data yang baik / masalah pengujian untuk algoritma / rutinitas pengujian?
- Hooker, "Menguji Heuristik: We Have It All Wrong" sangat tajam: "penekanan pada kompetisi ... memberi tahu kita algoritma mana yang lebih baik tetapi bukan mengapa."
(Ditambahkan di September 2014):
Plot bawah ini membandingkan 3 algoritma DFO pada 14 fungsi tes di 8d dari 10 random start poin: BOBYQA PRAXIS SBPLX dari NLOpt
14 N-dimensi fungsi tes, Python bawah gist.github dari ini Matlab oleh A. Hedar × 10 titik awal seragam-acak di kotak pembatas fungsi masing-masing.
Di Ackley, misalnya, baris atas menunjukkan bahwa SBPLX adalah yang terbaik dan PRAXIS mengerikan; pada Schwefel, panel kanan bawah menunjukkan SBPLX menemukan minimum pada titik awal acak ke-5.
Secara keseluruhan, BOBYQA yang terbaik pada 1, PRAXIS pada 5, dan SBPLX (~ Nelder-Mead dengan restart) pada 7 dari 13 fungsi tes, dengan Powersum melakukan undian. YMMV! Secara khusus, Johnson berkata, "Saya akan menyarankan Anda untuk tidak menggunakan fungsi-nilai (ftol) atau toleransi parameter (xtol) dalam optimasi global."
Kesimpulan: jangan letakkan semua uang Anda di atas satu kuda, atau pada satu fungsi tes.
sumber
Keuntungan dari testis sintetik seperti fungsi Rosenbrock adalah bahwa ada literatur yang ada untuk dibandingkan, dan ada perasaan di masyarakat bagaimana metode yang baik berperilaku pada testcases tersebut. Jika setiap orang menggunakan testcase mereka sendiri, akan jauh lebih sulit untuk mencapai konsensus mana metode bekerja dan mana yang tidak.
sumber
(Saya harap tidak ada keberatan untuk menempelkan saya pada akhir diskusi ini. Saya baru di sini, jadi tolong beri tahu saya jika saya telah melampaui batas!)
Fungsi uji untuk algoritma evolusioner sekarang jauh lebih rumit daripada yang bahkan 2 atau 3 tahun yang lalu, seperti yang dapat dilihat oleh suite yang digunakan dalam kompetisi di konferensi seperti (sangat baru) 2015 Congress on Evolutionary Computation 2015. Lihat:
http://www.cec2015.org/
Suite tes ini sekarang mencakup fungsi-fungsi dengan beberapa interaksi non-linear antar variabel. Jumlah variabel bisa sebesar 1000, dan saya kira itu akan meningkat dalam waktu dekat.
Inovasi terbaru lainnya adalah "Kompetisi Optimalisasi Kotak Hitam". Lihat: http://bbcomp.ini.rub.de/
Algoritme dapat meminta nilai f (x) untuk titik x, tetapi tidak mendapatkan informasi gradien, dan khususnya tidak dapat membuat asumsi apa pun pada bentuk analitik fungsi objektif.
Dalam beberapa hal, ini mungkin lebih dekat dengan apa yang Anda sebut sebagai "masalah nyata" tetapi dalam pengaturan yang terorganisir dan objektif.
sumber
Anda dapat memiliki yang terbaik dari kedua dunia. NIST memiliki serangkaian masalah untuk minimizer, seperti pemasangan polinomial tingkat 10 ini , dengan hasil yang diharapkan dan ketidakpastian. Tentu saja, membuktikan bahwa nilai-nilai ini adalah solusi terbaik aktual, atau keberadaan dan sifat-sifat minimum lokal lainnya lebih sulit daripada pada ekspresi matematika yang terkontrol.
sumber