Есть функция f = (a, b, c, ... ) где
в качестве аргументов а, b, c - могут передаваться значения, которые изменяются от k до n (разные для каждого а,b,c)
1) нужно получить значения a, b, c при которых f - максимально
2) нужно получить комбинации интервалов a,b,c при которых f не ниже порога fMin
Т.к на обычном CPU полный перебор требует большого количества времени, нужно более производительное решение.
Есть ли какие-нибудь библиотеки или готовые высокопроизводительные алгоритмы решающие эту задачу на GPU (CUDA)?
Или может быть есть другие хитрые математические способы хотя бы приблизительно найти результат?
аргументы a,b,c - в какой-то степени коррелируют со значением функции f
Слышал про градиентный спуск, который ищет экстремум функции, но остаётся вопрос как получить интервалы аргументов при которых f не меньше минимально допустимого порога
На куду вам требуется переходить, когда у вас есть понятный алгоритм с понятной точкой, на которой можно сделать распараллеливание
Ну и насколько я помню - видеокарты любят целые числа
JackBoner Стоит заметить, что помимо упомянутой sim3x имитации отжига, есть ещё куча вариантов поиска экстремумов многомерных функций. Один из них, например, алгоритм пчелиной колонии. Короче вариантов - масса. По генетическим алгоритмам очень много информации. Даже видео в рускоязычном ютубе есть.