Введение

Пакет программного обеспечения для оптимизации линейного программирования IBM ILOG CPLEX Optimization Studio (обычно называемый просто CPLEX) — это программный пакет для оптимизации.

История

Оптимизатор CPLEX получил свое название в честь симплекс-метода, реализованного на языке программирования C, хотя сегодня он также поддерживает другие типы математической оптимизации и предоставляет интерфейсы, отличные от C. Изначально он был разработан Робертом Э. Биксби и продавался в коммерческих целях с 1988 года компанией CPLEX Optimization Inc. В 1997 году компания была приобретена ILOG, а затем в январе 2009 года ILOG была приобретена IBM. CPLEX продолжает активно разрабатываться IBM.

Особенности

IBM ILOG CPLEX Optimizer решает задачи целочисленного программирования, очень большие задачи линейного программирования с использованием первичных или двойственных вариантов симплекс-метода или метода внутренней точки барьера, выпуклые и невыпуклые задачи квадратичного программирования, а также выпуклые задачи с квадратичными ограничениями (решаемые с помощью программирования на конусе второго порядка, или SOCP). CPLEX Optimizer имеет модельный слой под названием Concert, предоставляющий интерфейсы для языков C++, C# и Java. Существует интерфейс для языка Python, основанный на C-интерфейсе. Кроме того, для отладки и других целей предоставляется автономный исполняемый файл Interactive Optimizer. CPLEX Optimizer доступен через независимые системы моделирования, такие как AIMMS, AMPL, GAMS, OptimJ и TOMLAB. Помимо этого, AMPL предоставляет интерфейс к CPLEX CP Optimizer. Полный пакет IBM ILOG CPLEX Optimization Studio состоит из CPLEX Optimizer для математического программирования, CP Optimizer для задач с ограничениями, языка программирования оптимизации (OPL) и тесно интегрированной IDE.

История релизов

До того, как IBM приобрела ILOG, команда CPLEX опубликовала историю выпусков CPLEX. + Дата выхода версии Основные функции 22.1.1 Декабрь 2022 г. Прекращена поддержка Python 3.7, добавлен новый параметр решателя. 22.1.0 Март 2022 г. Добавлена поддержка Python 3.9 и 3.10, добавлены новые параметры решателя. 20.1 Декабрь 2020 г. Улучшена производительность MIP, новый режим "надежность MIP 5" и т. д. 12.10 Декабрь 2019 г. Улучшена производительность MIP и добавлена универсальная функция обратного вызова к другим универсальным функциям обратного вызова, представленным в версии 12.8. 12.9 Март 2019 г. Прямая поддержка многокритериальной оптимизации, улучшена функциональность обратного вызова. 12.8 Декабрь 2017 г. Универсальный обратный вызов, средство записи API для упрощения отладки, параметры управления subMIP, предложение Download and Go. 12.7 Ноябрь 2016 г. Автоматизированное разложение Бендерса, инструмент помощи в построении моделей, команда runseeds для более точной оценки изменчивости производительности. 12.6.2 Июнь 2015 г. Улучшена производительность (в основном для SOCP, MISOCP, невыпуклых QP), поддержка облачной оптимизации. 12.6 Декабрь 2013 г. Поддержка невыпуклых QP и MIQP, распределенный параллельный MIP и больший параллелизм на корневом узле для MIP. 12.5 Октябрь 2012 г. Улучшена производительность MIP, параметр случайного зерна для устранения изменчивости производительности, удаленный объект, двойственные значения для QCP, детерминированный инструмент настройки. 12.4 Ноябрь 2011 г. Поддержка детерминированного ограничения по времени, двойственные значения для SOCP, API квадратичных выражений в Concert, улучшена производительность всех алгоритмов, особенно MIP. 12.3 Июнь 2011 г. Поддержка больших чисел ненулевых элементов, требующих 64-битной индексации, локальных оптимумов для невыпуклых QP и глобализации. 12.2 Июнь 2010 г. Больший параллелизм на корневом узле, детерминированная параллельная одновременная оптимизация LP, а также дополнительные улучшения производительности барьерного метода и дополнительные инструменты для диагностики плохо обусловленных базисных матриц в MIP. 12.0 Апрель 2009 г. Первая версия после приобретения ILOG компанией IBM. Включает в себя коннекторы для Python, MATLAB и Excel. Также включен детерминированный параллельный барьер. 11.0 Октябрь 2007 г. Прорыв в производительности моделей смешанного целочисленного программирования (MIP) и улучшена параллельная оптимизация MIP. Представлена функция пула решений MIP и утилита настройки производительности. 10.0 Январь 2006 г. Улучшена производительность в примитивных методах симплекса и барьерных методах, а также в оптимизаторе MIP. Введены ограничения показателей и эвристика полировки решений, а также улучшен анализ невыполнимости. 9.0 Декабрь 2003 г. Улучшена производительность в методах простого и двойного симплекса и оптимизатора MIP. Включает в себя ILOG Concert Technology для пользователей .NET и поддержку программ с квадратичными ограничениями. 8.0 Июль 2002 г. Улучшена производительность MIP и поддержка смешанных квадратичных целочисленных программ. 7.5 Декабрь 2001 г. ILOG Concert Technology для пользователей Java. 7.0 Октябрь 2000 г. ILOG Concert Technology для пользователей C++. 6.5 Март 1999 г. Значительно улучшена производительность в методах простого и двойного симплекса и ILOG CPLEX Mixed Integer Optimizer. 6.0 Апрель 1998 г. Значительно улучшена производительность в методах простого и двойного симплекса и CPLEX Barrier Optimizer. 5.0 Сентябрь 1997 г. Новая модель памяти для упрощенной интеграции с C++. 4.0.5 Март 1996 г. Представлен параллельный решатель MIP CPLEX. 4.0 Декабрь 1995 г. Переработан расширенный интерфейс программирования (API) для обеспечения безопасности потоков приложений. 3.0.8 Март 1995 г. Представлен параллельный решатель барьеров CPLEX. 3.0 Апрель 1994 г. Представлен решатель барьеров CPLEX. 2.1 Март 1993 г. Внедрены алгоритмы предварительной обработки CPLEX (CPLEX Presolve). 2.0 Апрель 1992 г. Улучшена производительность. 1.2 1991 г. Поддержка метода двойного симплекса и ILOG CPLEX Mixed Integer Optimizer. 1.0 1988 г. Метод простого симплекса.