Выпуклое программирование
Вы́пуклое программи́рование, раздел математического программирования, в котором исследуется задача максимизации вогнутой целевой функции векторного аргумента , удовлетворяющего ограничениям , , , где – вогнутые функции, – выпуклое множество. Точка , удовлетворяющая этим ограничениям, называется допустимой. Основным результатом теории выпуклого программирования является теорема о седловой точке: для того чтобы допустимая точка задачи выпуклого программирования была оптимальной, необходимо (при довольно широких условиях) и достаточно существование вектора с неотрицательными компонентами такого , что точка является седловой для функции Лагранжазадачи выпуклого программирования, т. е. для любых и с неотрицательными компонентами выполняются неравенства .
На теорему о седловой точке опирается ряд методов выпуклого программирования, в которых либо минимизируется функция при , , либо непосредственно отыскивается седловая точка, причём вместо функции Лагранжа иногда используются некоторые её модификации. Другой подход к решению задачи выпуклого программирования связан с поиском возможных направлений движения допустимой точки , которые не выводят из множества допустимых точек и при движении вдоль которых целевая функция возрастает. Этот подход реализуется с помощью последовательности итераций. На каждой итерации вычисляется возможное направление, исходящее из очередной точки, после чего производится сдвиг по этому направлению на некоторое расстояние до следующей точки. Существуют методы решения задач выпуклого программирования, специально приспособленные к тому случаю, когда целевая функция нелинейна, а ограничения линейны. Как правило, методы выпуклого программирования требуют для точного определения оптимальной точки бесконечного числа итераций. Исключением являются задачи квадратичного программирования (целевая функция – сумма вогнутой квадратичной и линейной функций, ограничения линейны) и линейного программирования (целевая функция и ограничения линейны), для которых в основном используются конечные методы. Многие вычислительные методы выпуклого программирования реализованы в виде программ для ЭВМ; существуют также пакеты программ, охватывающие задачи линейного программирования и выпуклого программирования.