Библиотека нелинейного программирования на C++
Я ищу рекомендации для библиотек C++ для нелинейного программирования (не только для целых чисел!).
предпочтение отдается активно поддерживаемым решениям F/OSS, но активно поддерживаемые коммерческие решения, предлагающие бесплатные версии оценки, приемлемы.
спасибо заранее!
Edit: как спрошено, здесь больше деталей:
приложение, над которым я работаю, просто, и речь идет о минимизации полиномы степени 4 и выше (до 11) с небольшим набором (~20) ограничений, выраженных в виде неравенств (опять же, как полиномы, степень
наконец, мне нужно решение, которое работает на Windows, а кроссплатформенный будут предпочтительный.
3 ответов
NLopt имеет твердый код C для доброй дюжины алгоритмов, включая COBYLA,
Ограниченная оптимизация линейными Аппроксимациями для оптимизации Без производных с нелинейным неравенством и ограничениями равенства, М. J. D. Пауэлл.
Добавлено:здесь
являются запусками нескольких непроизводных оптимизаторов в NLopt
.
Для тестовых функций Rosenbrock и Powell в 5d и 10d они все очень чувствителен к случайным startpoints; ymmv.
Я не уверен, но может быть ROOT от ЦЕРН будет соответствующий для вас. Это действительно огромная библиотека (ROOT::Math:: Полином класс, например) из самого ЦЕРНа.
Я должен сказать, что это не библиотека "одна минута, чтобы узнать", но имеет оба:консоль для работы со всеми математическими материалами в режиме реального времени (похоже на строку Mathcad cmd) и libs и библиотеки вы можете связать с вашим кодом статически. И это крест библиотека платформы. Более того, самая мощная особенность ROOT заключается в том, что вы можете создавать почти все виды диаграмм и графиков.