Список программного обеспечения для оптимизации

Учитывая преобразование между входными и выходными значениями, описываемое математической функцией , оптимизация связана с генерацией и выбором лучшего решения из некоторого набора доступных альтернатив путем систематического выбора входных значений из разрешенного набора, вычисления выходных данных функции и записи. лучшие выходные значения, найденные в ходе процесса. Многие реальные проблемы можно смоделировать таким образом. Например, входными данными могут быть расчетные параметры двигателя, выходными данными могут быть потребляемая мощность или входными данными могут быть бизнес-решения, а выходными данными может быть полученная прибыль.

Задачу оптимизации (в данном случае задачу минимизации) можно представить следующим образом:

Дано функция 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 .

В следующих таблицах представлен список известного программного обеспечения для оптимизации, упорядоченный по лицензиям и типам бизнес-моделей.

Бесплатное программное обеспечение с открытым исходным кодом [ править ]

Приложения [ править ]

Имя Лицензия Описание
АДМБ БСД нелинейная оптимизация с использованием автоматического дифференцирования .
ПОДЪЕМ лицензия 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 – крупномасштабный разреженный решатель для непрерывной нелинейной оптимизации.

Бесплатное ПО/бесплатно для академического использования [ править ]

См. также [ править ]

Ссылки [ править ]

  1. ^ Холл, Джулиан (21 сентября 2020 г.). HiGHS: Высокопроизводительное программное обеспечение с открытым исходным кодом для линейной оптимизации (PDF) . Эдинбург, Великобритания: Эдинбургский университет . Проверено 27 февраля 2022 г. Презентация.
  2. ^ «Проекты» . COIN-OR: Вычислительная инфраструктура для исследования операций . 8 октября 2014 года . Проверено 10 марта 2021 г.