Я ищу библиотеку C++, и я имею дело с выпуклыми объектами и функциями ограничения.Что такое хорошая выпуклая библиотека оптимизации?
ответ
Я предполагаю, что ваша проблема нелинейна. Где я работаю, мы используем SNOPT, Ipopt и еще один фирменный решатель (не для продажи). Мы также пробовали и слышали хорошие вещи о Knitro.
Пока ваша проблема выпукла, все эти решатели работают хорошо.
Все они имеют свой собственный API, но все они запрашивают одну и ту же информацию: значения, первую и вторую производные.
Из того, что я знаю, решатель CPLEX является лучшим выпуклым решателем оптимизации. Его современное состояние в LP-решателях. Оптимизирует ли выпуклая оптимизация. Искав его, я вижу, что его программное обеспечение IBM сейчас. Вы можете найти его здесь: http://www-01.ibm.com/software/integration/optimization/cplex/
Вы можете найти другие решения с открытым исходным кодом и их тесты производительности здесь: http://plato.asu.edu/ftp/lpfree.html Кроме того, не забудьте проверить http://code.msdn.microsoft.com/solverfoundation –
Линейный подразумевает выпуклость, а не наоборот. –
cplex решает линейные или квадратично ограниченные выпуклые задачи. Это очень быстро, но он не справляется с общими выпуклыми проблемами. –
Предполагая, что ваши проблемы нелинейны, вы можете использовать бесплатный и открытый источник OPT++, доступный от Sandia Lab. Я использовал его в одном проекте на C++, и он был прост в использовании и хорошо работал.
Вы можете использовать GSL
(GNU Scientific Library) с the packageNLopt
, который является нелинейной оптимизации пакет с безусловной, связанными с ограниченным и общих нелинейных неравенств.
Два комментария: Во-первых, Что вы имеете в виду, что вы можете использовать GSL и NLOpt вместе (GSL с NLOpt)? Кажется, это отдельные проекты. У них такой же дух, но они независимы. Во-вторых, автор NLOpt не рекомендует использовать NLOpt для выпуклых проблем, с веб-страницы: «NLopt включает только общие методы, которые не предполагают выпуклость, если у вас есть явно выпуклая проблема, вам может быть лучше с другим программным пакетом , например, пакет CVX из Стэнфорда ». http://ab-initio.mit.edu/wiki/index.php/NLopt_Introduction#Global_versus_local_optimization – alfC
- 1. Что такое хорошая библиотека сжатия для Java?
- 2. Что такое хорошая библиотека активной записи PHP?
- 3. Что такое хорошая библиотека RDF для .net?
- 4. Что такое хорошая, доступная библиотека «ручек»?
- 5. Что такое хорошая библиотека учебников Javascript?
- 6. Что такое хорошая библиотека графического графства для языка X?
- 7. Что такое хорошая библиотека манипуляции матрицами, доступная для C?
- 8. Что такое хорошая библиотека визуализации данных для iOS?
- 9. Что такое хорошая библиотека PHP для обработки загрузки файлов?
- 10. Что такое хорошая zip-библиотека для iOS, совместимая с ARC?
- 11. Что такое хорошая библиотека для взаимодействия с аудиофайлами?
- 12. Что такое хорошая библиотека .Net для администрирования пользователей Windows?
- 13. Что такое хорошая библиотека/инструментарий для веб-приложений GUI?
- 14. Что такое хорошая библиотека Python для деревьев решений?
- 15. Что такое хорошая библиотека PHP Twitter, отличная от Zend?
- 16. Что такое хорошая многоплатформенная векторная графическая библиотека для C/C++?
- 17. Что такое хорошая библиотека JS для изменения размеров?
- 18. Что такое хорошая библиотека C# PDF для form-heavy webapp?
- 19. Что такое хорошая библиотека MySQL для C или C++?
- 20. Что такое хорошая библиотека для управления конфигурационными файлами Apache2?
- 21. Что такое хорошая библиотека C++ для матричных операций
- 22. Что такое хорошая библиотека API протокола FIX для Java?
- 23. Что такое хорошая библиотека BitTorrent с открытым исходным кодом?
- 24. Что такое хорошая библиотека Java для тегов Part of-Speech?
- 25. Что такое хорошая 3D библиотека с логическими операциями для прошивки
- 26. Что такое хорошая PHP CMS?
- 27. Что такое хорошая система разрешений?
- 28. Что такое поэтапная библиотека?
- 29. Что такое библиотека?
- 30. Что такое библиотека сокетов?
Где вы надолго видела? –
Большинство решателей LP имеют свой собственный способ определения наборов задач. Программные интерфейсы для него - это в основном сахарное покрытие. –
Я использую cvxopt, и для установки я только что загрузил предварительно скомпилированные библиотеки из http://www.lfd.uci.edu/~gohlke/pythonlibs/#cvxopt, затем установил pip (загрузил колесо), а затем сделал конечно импорт numpy перед использованием. – Phylliida