Мдк в программирование

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

Задача оптимизации, в данном случае задача минимизации. Может быть представлена следующим образом

Дано: функция f : A

{\displaystyle \to }

R от некоторого множества A к вещественным числам

Найдите: элемент x0 в A такой. Что f(x0) ≤ f(x) для всех x в A.

При непрерывной оптимизации A-это некоторое подмножество евклидова пространства Rn, часто заданное набором ограничений, равенств или неравенств. Которым должны удовлетворять члены A. В комбинаторной оптимизации A — это некоторое подмножество дискретного пространства. Например двоичные строки. Перестановки или наборы целых чисел.

Использование оптимизационного программного обеспечения требует. Чтобы функция f была определена на подходящем языке программирования и подключена во время компиляции или выполнения к оптимизационному программному обеспечению. Программное обеспечение оптимизации доставит входные значения в A, программный модуль. Реализующий f, доставит вычисленное значение f(x) и, в некоторых случаях. Дополнительную информацию о функции. Такую как производные.

Таким образом. Получается четкое разделение задач: различные программные модули оптимизации могут быть легко протестированы на одной и той же функции f, или данное программное обеспечение оптимизации может быть использовано для различных функций f.

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

Свободное и открытое программное обеспечение

Приложения
Библиотеки программного обеспечения
Имя Лицензия Описание
АЛГЛИБ GPL двойная лицензионная (GPL/коммерческая) библиотека нелинейной оптимизации (unconstrained. Box, linarly. Nonlinarly-constrained. Nonlinearly and QP problems). Опционально использующая автоматическое дифференцирование. Кросс-язык: C++, C#.
МОНЕТА-ИЛИ EPL 1.0 целочисленное программирование. Линейное программирование. Нелинейное программирование
Dlib Лицензия на программное обеспечение Boost Unconstrained/box-constrained nonlinear/QP optimization library написана на языке C++.
ГЕККО MIT License машинное обучение и оптимизация смешанных целых и дифференциальных алгебраических уравнений на языке Python.
ГЛПК GPL GNU Linear Programming Kit, C API.
IPOPT EPL (ранее CPL) крупномасштабный нелинейный оптимизатор для непрерывных систем (требуется градиент). C++ (ранее Fortran и C). Он стал частью COIN-OR.]
МИДАКО Двойной (коммерческий. BY-NC-ND) легкий программный инструмент для одно — и многокритериальной оптимизации на основе эволюционных вычислений. Написана на C/C++ и Fortran с шлюзами для Excel, VBA. Java, Python. Matlab, Octave. R# и Julia.
MINUIT (теперь MINUIT2) LGPL непринужденный оптимизатор. Внутренне разработанный в ЦЕРНе.
OpenMDAO Лицензия Apache Мультидисциплинарный фреймворк проектирования. Анализа и оптимизации (MDAO), написанный на языке Python. Разработка ведется из Исследовательского центра НАСА Гленнапри поддержке Исследовательского центра НАСА Лэнгли.
OptaPlanner Лицензия Apache решатель ограничений Java с эвристикой построения и метаэвристикой. Интегрируется с Spring Boot и Quarkus. Работает также на Kotlin и Scala.
СциПи BSD общий числовой пакет для Python с некоторой поддержкой оптимизации.

Проприетарное программное обеспечение

  • AIMMS – оптимизационная система моделирования. Включающая средства построения графического интерфейса пользователя.
  • ALGLIB – двухлицензионная (GPL/commercial) ограниченная библиотека квадратичной и нелинейной оптимизации с интерфейсами C++ и C#.
  • Altair HyperStudy – проектирование экспериментов и междисциплинарная оптимизация проектирования.
  • AMPL – язык моделирования для крупномасштабной линейной. Смешанной целочисленной и нелинейной оптимизации.
  • ANTIGONEдетерминированный глобальный оптимизационный MINLP-решатель.
  • APMonitor – набор языков моделирования и оптимизации для крупномасштабных. Нелинейных. Смешанных целочисленных. Дифференциальных и алгебраических уравнений с интерфейсами к MATLAB. Python и Julia.
  • Artelys Knitro – крупномасштабная нелинейная оптимизация для непрерывного и смешанного целочисленного программирования.
  • ASTOS – Программное обеспечение для оптимизации аэрокосмической траектории для запуска. Повторного входа и общих аэрокосмических задач.
  • БАРОН – оптимизация алгебраических нелинейных и смешанно-целочисленных нелинейных задач.
  • COMSOL Multiphysics – это кроссплатформенное программное обеспечение для конечно-элементного анализа. Решателя и мультифизического моделирования.
  • CPLEX – целочисленное. Линейное и квадратичное программирование.
  • FEATool Multiphysics – FEA GUI Toolbox для MATLAB
  • FICO Xpress – целочисленное. Линейное. Квадратичное и нелинейное программирование.
  • FortMP – целочисленное. Линейное и квадратичное программирование.
  • FortSP – стохастическое программирование.
  • ГАМС – Общая Алгебраическая Моделирующая Система.
  • Гуроби – целочисленное. Линейное и квадратичное программирование.
  • HEEDS MDO – мультидисциплинарная оптимизация дизайна с использованием SHERPA. Гибридного адаптивного алгоритма оптимизации.
  • Числовые библиотеки IMSL – линейные, квадратичные, нелинейные и разреженные алгоритмы оптимизации QP и LP, реализованные на стандартных языках программирования C, Java, C# .NET, Fortran и Python.
  • IOSO – (Непрямая оптимизация на основе самоорганизации) многообъектная. Многомерная технология нелинейной оптимизации.
  • Kimeme – открытая платформа для многокритериальной оптимизации и мультидисциплинарной оптимизации дизайна.
  • LINDO — (Линейный. Интерактивный и дискретный оптимизатор) программный комплекс для линейного программирования. Целочисленного программирования, нелинейного программирования, стохастического программирования и глобальной оптимизации. Надстройка Excel выполняет линейную. Целочисленную и нелинейную оптимизацию с помощью LINDO.
  • LIONsolver – интегрированное программное обеспечение для интеллектуальногоанализа данных , аналитики, моделирования Lи Intelligent OptimizatioN и реактивного подхода бизнес-аналитики.
  • modeFRONTIER – интеграционная платформа для многоцелевой и многодисциплинарной оптимизации. Которая обеспечивает бесшовную связь со сторонними инженерными инструментами. Позволяет автоматизировать процесс моделирования проектирования и облегчает принятие аналитических решений.
  • Maple – линейная. Квадратичная и нелинейная. Непрерывная и целочисленная оптимизация. Сдержанный и непринужденный. Глобальная оптимизация с помощью дополнительного набора инструментов.
  • MATLAB – линейные. Целочисленные. Квадратичные и нелинейные задачи с оптимизационным инструментарием; множественные максимумы. Множественные минимумы и негладкие задачи оптимизации; оценка и оптимизация параметров модели.
  • MIDACO — легкий программный инструмент для одно — и многокритериальной оптимизации на основе эволюционных вычислений. Написана на C/C++ и Fortran с шлюзами для Excel, VBA. Java, Python. Matlab, Octave. R# и Julia.
  • Mathematica – крупномасштабная многомерная ограниченная и неограниченная. Линейная и нелинейная. Непрерывная и целочисленная оптимизация.
  • ModelCenter – графическая среда для интеграции. Автоматизации и оптимизации проектирования.
  • MOSEK – линейная. Квадратичная. Коническая и выпуклая нелинейная. Непрерывная и целочисленная оптимизация.
  • NAG – линейные, квадратичные, нелинейные. Суммы квадратов линейных или нелинейных функций; линейные. Разреженные линейные. Нелинейные. Ограниченные или без ограничений; локальная и глобальная оптимизация; непрерывные или целочисленные задачи.
  • NMath – линейное. Квадратичное и нелинейное программирование.
  • Octeract Engineдетерминированный глобальный оптимизационный решатель MINLP. Octeract Engine Community является бесплатным для использования. И существуют платные планы для дополнительных функций.
  • OptimJ – язык моделирования на основе Java. Premium Edition включает в себя поддержку решателей Gurobi. Mosek и CPLEX.
  • Optimus platform – платформа интеграции и оптимизации процессов. Разработанная компанией Noesis Solutions.
  • optiSLang – программные решения для анализа чувствительности. Оптимизации и оценки надежности на основе CAE.
  • OptiY — это среда проектирования. Обеспечивающая современные стратегии оптимизации и современные вероятностные алгоритмы неопределенности. Надежности. Робастности. Анализа чувствительности. Интеллектуального анализа данных и мета-моделирования.
  • OptiStruct – удостоенная наград технология CAE для синтеза концептуального дизайна и структурной оптимизации.
  • PottersWheel – оценка параметров в обыкновенных дифференциальных уравнениях (MATLAB toolbox. Бесплатно для академического использования).
  • pSeven — программная платформа для автоматизации инженерного моделирования и анализа. Мультидисциплинарной оптимизации и интеллектуального анализа данных. Разработанная компанией DATADVANCE.
  • SAS – это программный комплекс. Разработанный SAS Institute for advanced analytics (статистика. Прогнозирование. Машинное обучение. Оптимизация и т.д.). Бизнес-аналитика. Клиентская аналитика. Управление данными. Управление рисками и многое другое.
  • SmartDO – мультидисциплинарная глобальная оптимизация проектирования. Специализирующаяся на автоматизированном проектировании (САЕ). использование подходов прямого глобального поиска.
  • СНОПТ – крупномасштабные оптимизационные задачи.
  • Программное обеспечение для разработки и оптимизации процессов Unscrambler X – product.
  • TOMLAB – поддерживает глобальную оптимизацию. Целочисленное программирование. Все виды наименьших квадратов, линейное. Квадратичное и неограниченное программирование для MATLAB. TOMLAB поддерживает такие решатели , как Gurobi, CPLEX, SNOPT, KNITRO и MIDACO.
  • VisSim – визуальный язык блок-схем для моделирования и оптимизации динамических систем.
  • WORHP – крупномасштабный разреженный решатель для непрерывной нелинейной оптимизации.

Freeware/free for academic use

  • AIMMS
  • АМПЛ
  • APMonitor – бесплатный как для академического. Так и для коммерческого использования, с интеграцией Julia, Python и MATLAB.
  • ASTOS
  • CPLEX
  • Couenne – решатель с открытым исходным кодом для детерминированной глобальной оптимизации MINLPs. Лицензированный по публичной лицензии Eclipse Public License.
  • FICO Xpress
  • Библиотека Галахада
  • ГЕККО Питон
  • Гуроби
  • LIONsolver
  • MIDACO – программный комплекс для численной оптимизации на основе эволюционных вычислений.
  • MINTO – решатель целочисленного программирования с использованием алгоритма ветвления и привязки; бесплатная программа для личного использования.
  • MOSEK – это крупномасштабное оптимизационное программное обеспечение. Решает задачи линейной. Квадратичной. Конической и выпуклой нелинейной. Непрерывной и целочисленной оптимизации.
  • OptimJ – язык моделирования на основе Java; бесплатная версия включает поддержку форматов файлов lp_solve, GLPK и LP или MPS.
  • PottersWheel – оценка параметров в обыкновенных дифференциальных уравнениях (бесплатный набор инструментов MATLAB для академического использования).
  • SCIP – бесплатно для членов некоммерческих и академических организаций. В исследовательских целях.
  • ВОРХП
  1. ^