Хорошая C ++ альтернатива MATLAB’s & quot; fminunc & quot ;?

Я пытаюсь преобразовать некоторый код, написанный на MATLAB, в C ++. У меня возникли некоторые (или на самом деле довольно много) проблемы с поиском альтернативы функции «fminunc», которая используется в коде MATLAB, которую я могу заменить и использовать в коде C ++. Я просматривал библиотеку «dlib», потому что слышал, что это может быть функция, которую я могу использовать, но я не уверен, какую функцию использовать.

Вот как «fminunc» используется в коде MATLAB, который я хочу преобразовать:

[theta, cost] = ...
fminunc(@(t)(costFunction(t, X, y)), initial_theta, options);

Кто-нибудь знает какие-нибудь хорошие оптимизирующие функции, подобные этой в C ++?

2

Решение

В dlib есть несколько оптимизаторов, некоторые из которых используют градиенты, а другие не просто работают над функциями черного ящика. Вы можете увидеть некоторые примеры здесь http://dlib.net/optimization_ex.cpp.html и в целом здесь http://dlib.net/optimization.html.

0

Другие решения

Я считаю, что вы ищете Google Церера Солвер, библиотека C ++ с открытым исходным кодом для моделирования и решения больших сложных задач оптимизации. Код предназначен для решения двух классов задач:

  1. Нелинейные задачи наименьших квадратов с ограничениями границ.
  2. Общие безусловные задачи оптимизации.

Автоматическое дифференцирование также поддерживается.

Несколько интересных примеров приложений можно найти Вот.

0

По вопросам рекламы [email protected]