Статья со списком Википедии
Задано преобразование между входными и выходными значениями, описываемое математическим функция f, оптимизация занимается генерированием и выбором лучшего решения из некоторого набора доступных альтернатив путем систематического выбора входных значений из разрешенного набора, вычисления выходных данных функции и записи наилучшего выходные значения, найденные в процессе. Таким образом можно смоделировать многие проблемы реального мира. Например, входными данными могут быть проектные параметры двигателя, выходными данными может быть потребляемая мощность, или входными данными может быть выбор бизнеса, а выходом может быть полученная прибыль.
Задача оптимизации , в данном случае задача минимизации, может быть представлена следующим образом
- Дано: функция 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.
В следующих таблицах представлен список заметного программного обеспечения для оптимизации, упорядоченный по лицензии и типу бизнес-модели.
Содержание
- 1 Бесплатное программное обеспечение с открытым исходным кодом
- 2 Запатентованное программное обеспечение
- 3 Бесплатное / бесплатное программное обеспечение для академического использования
- 4 См. Также
- 5 Ссылки
Бесплатное программное обеспечение с открытым исходным кодом
- Приложения
- Программные библиотеки
Имя | Лицензия | Описание |
---|
ALGLIB | GPL | двойная лицензия (GPL / коммерческая) библиотека нелинейной оптимизации (без ограничений, box, линейно, нелинейно-ограниченные, нелинейные и задачи QP), опционально с использованием автоматического дифференцирования. Кросс-язык: C ++, C #. |
COIN-OR | EPL 1.0 | целочисленное программирование, линейное программирование, нелинейное программирование |
Dlib | Лицензия на программное обеспечение Boost | Неограниченная / ограниченная рамками библиотека нелинейной / QP оптимизации, написанная на C ++. |
GEKKO | Лицензия MIT | машинное обучение и оптимизация смешанных целочисленных и дифференциально-алгебраических уравнений на Python. |
GLPK | GPL | Комплект линейного программирования GNU, C API. |
IPOPT | CPL | крупномасштабный нелинейный оптимизатор для непрерывных систем (требуется градиент), C ++ (ранее Fortran и C ). |
MIDACO | Dual (Commercial, BY-NC-ND) | легкий программный инструмент для одно- и многоцелевой оптимизации на основе эволюционных вычислений. Написано на C / C ++ и Fortran со шлюзами для Excel, VBA, Java, Python, Matlab, Octave, R, C # и Julia. |
MINUIT (теперь MINUIT2) | LGPL | неограниченный оптимизатор, разработанный внутри CERN. |
OpenMDAO | Apache License | a Многопрофильный дизайн, анализ и оптимизация (MDAO) framework, написанная на Python. Разработка ведется из Исследовательского центра Гленна НАСА при поддержке Исследовательского центра Лэнгли НАСА. |
OptaPlanner | Лицензия Apache | a Java решатель ограничений с эвристикой построения и метаэвристика. Интегрируется с Spring Boot и Quarkus. Также работает на Kotlin и Scala. |
SciPy | BSD | общий числовой пакет для Python с некоторой поддержкой оптимизации. |
Проприетарное программное обеспечение
- AIMMS - система моделирования оптимизации, включая средства построения графического интерфейса.
- ALGLIB - двойная лицензия (GPL / коммерческая) ограниченная квадратичная и нелинейная библиотека оптимизации с интерфейсами C ++ и C #.
- Altair HyperStudy - планирование экспериментов и многопрофильная оптимизация проектирования.
- AMPL - язык моделирования для крупномасштабной линейной, смешанной целочисленной и нелинейной оптимизации.
- ANTIGONE - a детерминированная глобальная оптимизация решатель MINLP.
- APMonitor - язык моделирования и пакет оптимизации для крупномасштабных, нелинейных, смешанных целочисленных, дифференциальных и алгебраических уравнений с интерфейсами к MATLAB, Python и Julia.
- Artelys Knitro - крупномасштабная нелинейная оптимизация для непрерывного и смешанно-целочисленного программирования.
- ASTOS - Программное обеспечение для оптимизации траектории AeroSpace для задач запуска, возврата и общих аэрокосмических задач.
- BARON - оптимизация алгебраических нелинейных и смешанно-целочисленных нелинейных задач.
- COMSOL Multiphysics - кроссплатформенный конечно-элементный анализ, решатель и мультифизика программное обеспечение для моделирования.
- CPLEX - целочисленное, линейное и квадратичное программирование.
- FEATool Multiphysics - FEA GUI Toolbox для MATLAB
- FICO Xpress - целочисленное, линейное, квадратичное и нелинейное программирование.
- FortMP - целочисленное, линейное и квадратичное программирование.
- FortSP - стохастическое программирование.
- GAMS - Общая система алгебраического моделирования.
- Гуроби - целочисленное, линейное и квадратичное программирование.
- HEEDS MDO - многопрофильная оптимизация проектирования с использованием SHERPA, гибридный адаптивный алгоритм оптимизации.
- Числовые библиотеки IMSL - линейные, квадратичные, нелинейные и разреженные алгоритмы оптимизации QP и LP, реализованные на стандартных языках программирования C, Java, C #.NET, Fortran и Python.
- IOSO - (Непрямая оптимизация на основе самоорганизации) технология многокритериальной многомерной нелинейной оптимизации.
- Kimeme - открытая платформа для многоцелевой оптимизации и мультидисциплинарной оптимизации дизайна.
- LINDO - (Linear, Interactive и Discrete Optimizer) программный пакет для линейного программирования, целочисленного программирования, нелинейного программирования, стохастического программирование и глобальная оптимизация. "Что лучше!" Надстройка Excel выполняет линейную, целочисленную и нелинейную оптимизацию с помощью LINDO.
- LIONsolver - интегрированное программное обеспечение для интеллектуального анализа данных, аналитики, моделирования Lдоход и I интеллектуальная O оптимизация N и реактивный подход к бизнес-аналитике.
- modeFRONTIER - платформа интеграции для многоцелевая и мультидисциплинарная оптимизация, которая обеспечивает бесшовную связь со сторонними инженерными инструментами, позволяет автоматизировать процесс моделирования проектирования и облегчает принятие аналитических решений.
- Maple - линейный, квадратичный и нелинейный, непрерывная и целочисленная оптимизация. Сдержанный и непринужденный. Глобальная оптимизация с дополнительным набором инструментов.
- MATLAB - линейные, целочисленные, квадратичные и нелинейные задачи с Optimization Toolbox ; множественные максимумы, множественные минимумы и проблемы негладкой оптимизации; оценка и оптимизация параметров модели.
- MIDACO легкий программный инструмент для одно- и многоцелевой оптимизации на основе эволюционных вычислений. Написано на C / C ++ и Fortran со шлюзами к Excel, VBA, Java, Python, Matlab, Octave, R, C # и Julia.
- Mathematica - крупномасштабная многомерная система с ограничениями и без ограничений, линейная и нелинейная, непрерывная и непрерывная. целочисленная оптимизация.
- ModelCenter - графическая среда для интеграции, автоматизации и оптимизации проектирования.
- MOSEK - линейная, квадратичная, коническая и выпуклая нелинейная, непрерывная и целочисленная оптимизация.
- NAG - линейные, квадратичные, нелинейные, суммы квадратов линейных или нелинейных функций; линейные, разреженные линейные, нелинейные, ограниченные или без ограничений; локальная и глобальная оптимизация; непрерывные или целочисленные задачи.
- NMath - линейное, квадратичное и нелинейное программирование.
- Octeract Engine - детерминированная глобальная оптимизация решатель MINLP.
- OptimJ - Язык моделирования на основе Java. Premium Edition включает поддержку решателей Gurobi, Mosek и CPLEX.
- Платформа Optimus - платформа для интеграции процессов и оптимизации проектирования, разработанная Noesis Solutions.
- optiSLang - программные решения для анализа чувствительности на основе CAE, оптимизация и оценка устойчивости.
- OptiY - среда проектирования, обеспечивающая современные стратегии оптимизации и современные вероятностные алгоритмы для определения неопределенности, надежности, устойчивости, анализа чувствительности, интеллектуального анализа данных и мета-моделирования.
- OptiStruct - отмеченная наградами технология CAE для синтеза концептуального дизайна и структурной оптимизации.
- PottersWheel - оценка параметров в обыкновенных дифференциальных уравнениях (набор инструментов MATLAB, бесплатный для академического использования).
- pSeven - программная платформа для автоматизации инженерного моделирования и анализа, мультидисциплинарной оптимизации и интеллектуального анализа данных, разработанный DATADVANCE.
- SAS - программный пакет, разработанный SAS Institute для расширенной аналитики (статистика, прогнозирование, машинное обучение, оптимизация и т. д.), бизнес-аналитика, анализ клиентов, управление данными, управление рисками и многое другое.
- SmartDO - многопрофильная глобальная оптимизация дизайна, специализирующаяся на автоматизированном проектировании (CAE). с использованием подходов прямого глобального поиска.
- SNOPT - задачи крупномасштабной оптимизации.
- The Unscrambler X - программное обеспечение для разработки продуктов и оптимизации процессов.
- TOMLAB - поддерживает глобальную оптимизацию, целочисленное программирование, все типы наименьших квадратов, линейное, квадратичное и неограниченное программирование для MATLAB. TOMLAB поддерживает такие решатели, как Gurobi, CPLEX, SNOPT, KNITRO и MIDACO.
- VisSim - визуальный блок-схема язык для моделирования и оптимизации динамических систем.
- WORHP - крупномасштабный разреженный решатель для непрерывной нелинейной оптимизации.
Бесплатная / бесплатная для академического использования
- AIMMS
- AMPL
- APMonitor - бесплатно как для академического, так и для коммерческого использования, с интеграциями Julia, Python и MATLAB.
- ASTOS
- CPLEX
- Couenne - решатель с открытым исходным кодом для детерминированной глобальной оптимизации MINLP под лицензией Eclipse Public License.
- FICO Xpress
- Библиотека Galahad
- GEKKO Python
- Gurobi
- LIONsolver
- MIDACO - программный пакет для численной оптимизации на основе эволюционных вычислений.
- MINTO - целочисленное программирование решатель с использованием ветви и связанный алгоритм; бесплатное ПО для личного пользования.
- MOSEK - программа для крупномасштабной оптимизации. Решает линейную, квадратичную, коническую и выпуклую нелинейную, непрерывную и целочисленную оптимизацию.
- OptimJ - язык моделирования на основе Java; бесплатная версия включает поддержку форматов файлов lp_solve, GLPK и LP или MPS.
- PottersWheel - оценка параметров в обыкновенных дифференциальных уравнениях (бесплатно Набор инструментов MATLAB для академического использования).
- SCIP - бесплатно для членов некоммерческих и академических учреждений, для исследовательских целей.
- WORHP
См. Также
Ссылки