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ą.
źródło
Zaletą syntetycznych przypadków testowych, takich jak funkcja Rosenbrock, jest to, że istnieje istniejąca literatura do porównania, a społeczność ma poczucie, jak dobre metody zachowują się na takich przypadkach. Gdyby wszyscy używali własnych testów, o wiele trudniej byłoby dojść do konsensusu, które metody działają, a które nie.
źródło
(Mam nadzieję, że nie mam nic przeciwko temu, aby zająć się końcem tej dyskusji. Jestem tu nowy, więc proszę daj mi znać, jeśli popełniłem naruszenie!)
Funkcje testowe dla algorytmów ewolucyjnych są teraz znacznie bardziej skomplikowane niż były nawet 2 lub 3 lata temu, co widać w zestawach używanych w konkursach na konferencjach takich jak (bardzo) Kongres na temat obliczeń ewolucyjnych 2015. Widzieć:
http://www.cec2015.org/
Te zestawy testów zawierają teraz funkcje z kilkoma nieliniowymi interakcjami między zmiennymi. Liczba zmiennych może wynosić nawet 1000, i przypuszczam, że może wzrosnąć w najbliższej przyszłości.
Kolejną bardzo niedawną innowacją jest „Konkurs optymalizacji czarnej skrzynki”. Zobacz: http://bbcomp.ini.rub.de/
Algorytm może zapytać o wartość f (x) dla punktu x, ale nie uzyskuje informacji o gradiencie, w szczególności nie może przyjmować żadnych założeń dotyczących formy analitycznej funkcji celu.
W pewnym sensie może to być bliższe temu, co określiłeś jako „prawdziwy problem”, ale w zorganizowanym, obiektywnym otoczeniu.
źródło
Możesz mieć to, co najlepsze z obu światów. NIST ma szereg problemów związanych z minimalizatorami, takich jak dopasowanie do wielomianu 10-go stopnia , z oczekiwanymi wynikami i niepewnościami. Oczywiście udowodnienie, że wartości te są najlepszym rozwiązaniem, lub istnienie i właściwości innych minimów lokalnych jest trudniejsze niż na kontrolowanym wyrażeniu matematycznym.
źródło