Список программного обеспечения для оптимизации
Эта статья нуждается в дополнительных цитатах для проверки . ( август 2013 г. ) |
Учитывая преобразование между входными и выходными значениями, описываемое математической функцией , оптимизация связана с генерацией и выбором лучшего решения из некоторого набора доступных альтернатив путем систематического выбора входных значений из разрешенного набора, вычисления выходных данных функции и записи. лучшие выходные значения, найденные в ходе процесса. Многие реальные проблемы можно смоделировать таким образом. Например, входными данными могут быть расчетные параметры двигателя, выходными данными могут быть потребляемая мощность или входными данными могут быть бизнес-решения, а выходными данными может быть полученная прибыль.
Задачу оптимизации (в данном случае задачу минимизации) можно представить следующим образом:
- Дано функция f : : A R из некоторого множества A к действительным числам
- Найдите: элемент x 0 в A такой, что f ( x 0 ) ≤ f ( x ) для всех x в A .
При непрерывной оптимизации A — это некоторое подмножество евклидова пространства R. н , часто задаваемый набором ограничений члены A. , равенств или неравенств, которым должны удовлетворять В комбинаторной оптимизации A — это некоторое подмножество дискретного пространства, например двоичные строки, перестановки или наборы целых чисел.
Использование программного обеспечения для оптимизации требует, чтобы функция f была определена на подходящем языке программирования и подключена во время компиляции или выполнения к программному обеспечению для оптимизации. Программное обеспечение для оптимизации предоставит входные значения в A , программный модуль, реализующий f, предоставит вычисленное значение f ( x ) и, в некоторых случаях, дополнительную информацию о функции, например, производные.
Таким образом достигается четкое разделение задач: разные модули программного обеспечения оптимизации можно легко протестировать на одной и той же функции f , или одно и то же программное обеспечение оптимизации можно использовать для разных функций f .
В следующих таблицах представлен список известного программного обеспечения для оптимизации, упорядоченный по лицензиям и типам бизнес-моделей.
Бесплатное программное обеспечение с открытым исходным кодом [ править ]
![]() | Эта статья содержит контент, написанный как реклама . ( Май 2021 г. ) |
Приложения [ править ]
Имя Лицензия Описание АДМБ БСД нелинейная оптимизация с использованием автоматического дифференцирования . ПОДЪЕМ лицензия GPL математическое моделирование; система моделирования химических процессов. МИЛЕЕ лицензия GPL среда тестирования для оптимизации и линейной алгебры решателей . GNU Октава лицензия GPL пакет программного обеспечения, включающий язык программирования высокого уровня, предназначенный в первую очередь для численных вычислений; общепризнанная бесплатная альтернатива MATLAB . Octeract Engine Сообщество Октеракт Лицензионное соглашение параллельный детерминированный глобальный решатель MINLP. Octeract Engine Community — это полная версия решателя, которую можно бесплатно использовать для любых целей. Сцилаб CeCILL кроссплатформенный пакет численных вычислений и высокоуровневый численно-ориентированный язык программирования со свободной структурой численной оптимизации.
Библиотеки программного обеспечения [ править ]
Имя Лицензия Описание АЛГЛИБ лицензия GPL Библиотека оптимизации с двойной лицензией (GPL/коммерческая) (LP, QP и задачи нелинейного программирования), опционально с использованием автоматического дифференцирования . Кросс-язык: C++, C#. МОНЕТА-ИЛИ АПЛ 1.0 целочисленное программирование, линейное программирование, нелинейное программирование. Длиб БСЛ‑1.0 библиотека нелинейной/QP-оптимизации без ограничений/с ограничениями, написанная на C++ . ГЕККО С машинное обучение и оптимизация смешанно-целочисленных и дифференциально-алгебраических уравнений на Python. ГЛПК лицензия GPL Комплект линейного программирования GNU с API C. HiGHS С линейное программирование (LP), смешанное целочисленное программирование (MIP) и выпуклое квадратичное программирование (QP). [1] ИПОРТ АПЛ (было CPL ) крупномасштабный нелинейный оптимизатор для непрерывных систем (требуется градиент), C++ (ранее Fortran и C ). Он стал частью COIN-OR. [2] МИНУИТ (теперь МИНУИТ2) LGPL неограниченный оптимизатор, разработанный внутри CERN . ОпенМДАО Лицензия Апач Среда междисциплинарного проектирования, анализа и оптимизации (MDAO) , написанная на Python . Разработку ведет Исследовательский центр НАСА в Гленне при поддержке Исследовательского центра НАСА в Лэнгли . ОптаПланнер Лицензия Апач Решатель ограничений Java с эвристикой построения и метаэвристикой. Интегрируется со Spring Boot и Quarkus . Работает также на Kotlin и Scala . SCIP Лицензия Апач решатель для смешанного целочисленного программирования (MIP) и смешанного целочисленного нелинейного программирования (MINLP). SciPy БСД общий числовой пакет для Python с некоторой поддержкой оптимизации.
Собственное программное обеспечение [ править ]
- AIMMS – система оптимизации моделирования, включая средства построения графического интерфейса.
- ALGLIB – библиотека квадратичной и нелинейной оптимизации с двойной лицензией (GPL/коммерческая) с интерфейсами C++ и C#.
- Altair HyperStudy – планирование экспериментов и междисциплинарная оптимизация дизайна.
- AMPL — язык моделирования для крупномасштабной линейной, смешанной целочисленной и нелинейной оптимизации.
- ANTIGONE – детерминированный решатель глобальной оптимизации MINLP.
- APMonitor – язык моделирования и пакет оптимизации для крупномасштабных, нелинейных, смешанных целочисленных, дифференциальных и алгебраических уравнений с интерфейсами к MATLAB, Python и Julia.
- Artelys Knitro – крупномасштабная нелинейная оптимизация для непрерывного и смешанно-целочисленного программирования.
- ASTOS - Программное обеспечение для оптимизации траектории аэрокосмической деятельности для решения проблем запуска, входа в атмосферу и решения общих аэрокосмических проблем.
- БАРОН – оптимизация алгебраических нелинейных и смешанно-целочисленных нелинейных задач.
- COMSOL Multiphysicals — кроссплатформенное программное обеспечение для анализа методом конечных элементов , решателя и мультифизического моделирования .
- CPLEX – решатель линейного и квадратичного программирования с непрерывными или целочисленными переменными (MIP).
- FEATool Multiphysicals — набор инструментов FEA GUI для MATLAB.
- FICO Xpress – решатель для линейного и квадратичного программирования с непрерывными или целочисленными переменными (MIP).
- ФортМП – линейное и квадратичное программирование.
- ФортСП – стохастическое программирование.
- GAMS – Общая система алгебраического моделирования.
- Gurobi Optimizer – решатель для линейного и квадратичного программирования с непрерывными или целочисленными переменными (MIP).
- HEEDS MDO – междисциплинарная оптимизация проектирования с использованием SHERPA, гибридного адаптивного алгоритма оптимизации.
- Числовые библиотеки IMSL — линейные, квадратичные, нелинейные и разреженные алгоритмы оптимизации QP и LP, реализованные на стандартных языках программирования C, Java, C# .NET, Fortran и Python.
- IOSO – (Непрямая оптимизация на основе самоорганизации) многокритериальная, многомерная технология нелинейной оптимизации.
- Kimeme – открытая платформа для многокритериальной оптимизации и междисциплинарной оптимизации дизайна.
- LINDO – (линейный, интерактивный и дискретный оптимизатор) пакет программного обеспечения для линейного программирования, целочисленного программирования, нелинейного программирования , стохастического программирования и глобальной оптимизации. Программа «Что лучше!» Надстройка Excel выполняет линейную, целочисленную и нелинейную оптимизацию с помощью LINDO.
- LIONsolver – интегрированное программное обеспечение для анализа данных , аналитики , моделирования обучения , интеллектуальной оптимизации интеллектуального и подхода реактивного бизнес-анализа .
- modeFRONTIER – интеграционная платформа для многоцелевой и междисциплинарной оптимизации, которая обеспечивает плавную связь со сторонними инженерными инструментами, позволяет автоматизировать процесс моделирования проектирования и облегчает принятие аналитических решений.
- Maple – линейная, квадратичная и нелинейная, непрерывная и целочисленная оптимизация. Сдержанный и неограниченный. Глобальная оптимизация с дополнительным набором инструментов.
- MATLAB – линейные, целочисленные, квадратичные и нелинейные задачи с Optimization Toolbox ; множественные максимумы, множественные минимумы и проблемы негладкой оптимизации; оценка и оптимизация параметров модели.
- MIDACO — легкий программный инструмент для одно- и многокритериальной оптимизации, основанный на эволюционных вычислениях . Написан на C/C++ и Fortran с возможностью доступа к Excel, VBA, Java, Python, Matlab, Octave, R, C# и Julia.
- Mathematica - крупномасштабная многомерная оптимизация с ограничениями и без ограничений, линейная, квадратичная и нелинейная, непрерывная и целочисленная оптимизация.
- ModelCenter – графическая среда для интеграции, автоматизации и оптимизации дизайна.
- МОСЭК – линейная, квадратичная, коническая и выпуклая нелинейная, непрерывная и целочисленная оптимизация.
- НАГ – линейные, квадратичные, нелинейные, суммы квадратов линейных или нелинейных функций; линейный, разреженный линейный, нелинейный, ограниченный или отсутствующий ограничений; локальная и глобальная оптимизация; непрерывные или целочисленные задачи.
- NMath – линейное, квадратичное и нелинейное программирование.
- Octeract Engine — детерминированный решатель глобальной оптимизации MINLP. Octeract Engine Community можно использовать бесплатно, а для дополнительных функций существуют платные планы.
- OptimJ — язык моделирования на основе Java. Premium Edition включает поддержку решателей Mosek и CPLEX.
- Платформа Optimus — платформа интеграции процессов и оптимизации дизайна, разработанная Noesis Solutions.
- optiSLang – программные решения для анализа чувствительности, оптимизации и оценки надежности на основе CAE.
- OptiY – среда проектирования, предоставляющая современные стратегии оптимизации и новейшие вероятностные алгоритмы для анализа неопределенности, надежности, устойчивости, анализа чувствительности, интеллектуального анализа данных и метамоделирования.
- OptiStruct – отмеченная наградами технология CAE для синтеза концептуальных проектов и структурной оптимизации.
- PottersWheel – оценка параметров в обыкновенных дифференциальных уравнениях (набор инструментов MATLAB, бесплатный для академического использования).
- pSeven — программная платформа для автоматизации инженерного моделирования и анализа, междисциплинарной оптимизации и интеллектуального анализа данных, разработанная DATADVANCE .
- SAS — пакет программного обеспечения, разработанный Институтом SAS для расширенной аналитики (статистики, прогнозирования, машинного обучения, оптимизации и т. д.), бизнес-аналитики, анализа клиентов, управления данными, управления рисками и многого другого.
- SmartDO – междисциплинарная глобальная оптимизация проектирования, специализирующаяся на автоматизированном проектировании (CAE). используя подходы прямого глобального поиска.
- SNOPT – масштабные задачи оптимизации.
- Unscrambler X – программное обеспечение для разработки продуктов и оптимизации процессов.
- TOMLAB – поддерживает глобальную оптимизацию, целочисленное программирование, все типы наименьших квадратов, линейное, квадратичное и неограниченное программирование для MATLAB . TOMLAB поддерживает такие решатели, как CPLEX , SNOPT , KNITRO и MIDACO .
- VisSim — язык визуальных блок-схем для моделирования и оптимизации динамических систем .
- WORHP – крупномасштабный разреженный решатель для непрерывной нелинейной оптимизации.
Бесплатное ПО/бесплатно для академического использования [ править ]
- АИММС
- AMPL
- APMonitor — бесплатно для академического и коммерческого использования, с интеграцией Python и MATLAB .
- АСТО
- Комплексный комплекс
- Couenne — решатель с открытым исходным кодом для детерминированной глобальной оптимизации MINLP, лицензированный по лицензии Eclipse Public License.
- ФИКО Экспресс
- Библиотека Галахада
- Гекко
- Gurobi Optimizer — бесплатно для академических пользователей
- решатель LION
- MIDACO — программный пакет для численной оптимизации, основанный на эволюционных вычислениях .
- MINTO – решатель целочисленного программирования, использующий алгоритм ветвей и границ; бесплатная программа для личного использования.
- MOSEK – крупномасштабное программное обеспечение для оптимизации. Решает линейную, квадратичную, коническую и выпуклую нелинейную, непрерывную и целочисленную оптимизацию.
- OptimJ – язык моделирования на основе Java; бесплатная версия включает поддержку форматов файлов lp_solve, GLPK и LP или MPS .
- PottersWheel – оценка параметров в обыкновенных дифференциальных уравнениях (бесплатный набор инструментов MATLAB для академического использования).
- Pyomo — коллекция программных пакетов Python для разработки моделей оптимизации.
- Пакет UFO Fortran для численной оптимизации
- ВОРХП
См. также [ править ]
- Сравнение программного обеспечения для оптимизации
- Список систем компьютерной алгебры
- Список языков программирования с ограничениями
- Список числовых библиотек
- Список алгоритмов оптимизации
- Список решателей SMT
Ссылки [ править ]
- ^ Холл, Джулиан (21 сентября 2020 г.). HiGHS: Высокопроизводительное программное обеспечение с открытым исходным кодом для линейной оптимизации (PDF) . Эдинбург, Великобритания: Эдинбургский университет . Проверено 27 февраля 2022 г. Презентация.
- ^ «Проекты» . COIN-OR: Вычислительная инфраструктура для исследования операций . 8 октября 2014 года . Проверено 10 марта 2021 г.