Здається, існує два основні види тестової функції для непохідних оптимізаторів:
- одноводкові накладки Розенброк функціонують далі, із початковими точками
- набори реальних точок даних, з інтерполятором
Чи можна порівняти скажімо 10d Rosenbrock з будь-якими реальними проблемами 10d?
Можна порівняти різними способами: описати структуру місцевих мінімумів,
або запустити оптимізатори ABC на Розенброк та деякі реальні проблеми;
але обидва вони здаються важкими.
(Можливо, теоретики та експериментатори - це просто дві досить різні культури, тому я прошу химери?)
Дивись також:
- scicomp.SE питання: Де можна отримати хороші набори даних / проблеми тестування алгоритмів / процедур тестування?
- Хукер, "Тестування евристики: у нас все не так" є химерним: "наголос на конкуренції ... говорить нам, які алгоритми кращі, але ні чому".
(Додано у вересні 2014 року):
На графіку нижче порівнюються 3 алгоритми DFO на 14 тестових функціях у 8d з 10 випадкових стартових точок: BOBYQA PRAXIS SBPLX від NLOpt
14 N-мірних тестових функцій, Python під gist.github з цього Matlab від A. Хедар × 10 рівномірних випадкових стартових точок у обмежувальному вікні кожної функції.
Наприклад, у Еклі, верхній рядок показує, що SBPLX найкращий і PRAXIS жахливий; на нижній правій панелі Schwefel показано, що SBPLX знаходить мінімум на 5-й випадковій стартовій точці.
В цілому, BOBYQA найкращий на 1, PRAXIS на 5 та SBPLX (~ Nelder-Mead з перезапуском) на 7 з 13 тестових функцій, з Powersum підкиданням. YMMV! Зокрема, Джонсон каже: "Я б радив вам не використовувати функціональне значення (ftol) або допуски параметрів (xtol) у глобальній оптимізації".
Висновок: не покладайте всі свої гроші на одного коня чи на одну тестову функцію.