Wydaje się, że istnieją dwa główne rodzaje funkcji testowych dla optymalizatorów bez pochodnych:
- jednowierszowe, takie jak funkcja Rosenbrock ff., z punktami początkowymi
- zestawy rzeczywistych punktów danych, z interpolatorem
Czy można porównać powiedzmy 10d Rosenbrock z prawdziwymi problemami z 10d?
Można to porównać na różne sposoby: opisać strukturę minimów lokalnych
lub uruchomić ABC optymalizatorów na Rosenbrock i kilka rzeczywistych problemów;
ale oba wydają się trudne.
(Może teoretycy i eksperymentatorzy to tylko dwie zupełnie różne kultury, więc proszę o chimerę?)
Zobacz też:
- Pytanie do scicomp.SE: gdzie można uzyskać dobre zestawy danych / problemy z testowaniem algorytmów / procedur testowych?
- Prostytutka: „Testowanie heurystyki: mamy to wszystko źle” jest zjadliwe: „nacisk na konkurencję ... mówi nam, które algorytmy są lepsze, ale nie dlaczego”.
(Dodano we wrześniu 2014):
Poniższy wykres porównuje 3 algorytmy DFO na 14 funkcjach testowych w 8d z 10 losowych punktów początkowych: BOBYQA PRAXIS SBPLX z NLOpt
14 N-wymiarowych funkcji testowych, Python pod gist.github z tego Matlaba autorstwa A. Hedar × 10 jednorodno-losowych punktów początkowych w obwiedni każdej funkcji.
Na przykład w Ackley górny wiersz pokazuje, że SBPLX jest najlepszy, a PRAXIS okropny; na Schwefel, prawy dolny panel pokazuje SBPLX znajdujący minimum w 5. losowym punkcie początkowym.
Ogólnie BOBYQA jest najlepszy na 1, PRAXIS na 5, a SBPLX (~ Nelder-Mead z ponownym uruchomieniem) na 7 z 13 funkcji testowych, z Powersum tossup. YMMV! W szczególności Johnson mówi: „Odradzałbym nieużywanie wartości funkcji (ftol) lub tolerancji parametrów (xtol) w optymalizacji globalnej”.
Wniosek: nie wkładaj wszystkich pieniędzy na jednego konia ani na jedną funkcję testową.