Глава II. Выпуклое программирование

Пусть дана система неравенств вида

(4.3) и функция

Z = f (x 1 , x 2 , …, x n), (4.4)

причем все функции является выпуклыми на некотором выпуклом множестве M, а функция Z либо выпукла на множестве М, либо вогнута.

Задача выпуклого программирования состоит в отыскании такого решения системы ограничений (4.3), при котором целевая функция Z достигает минимального значения, или вогнутая функция Z достигает максимального значения. (Условия неотрицательности переменных можно считать включенными в систему (4.3)).

Ввиду свойства 3 0 всякая задача линейного программирования является частным случаем задачи выпуклого программирования. В общем случае задачи выпуклого программирования являются задачами нелинейного программирования. Выделение задач выпуклого программирования в специальный класс объясняется экстремальными свойствами выпуклых функций: всякий локальный минимум выпуклой функции (локальный максимум вогнутой функции) является одновременно и глобальным; кроме того, ввиду свойства 2 0 выпуклая (вогнутая) функция, заданная на замкнутом ограниченном множестве, достигает на этом множестве глобального максимума и глобального минимума. Отсюда вытекает, что если целевая функция Z является строго выпуклой (строго вогнутой) и если область решений системы ограничений не пуста и ограничена, то задача выпуклого программирования всегда имеет единственное решение .

Функция F(X) = F(x 1 , x 2 , …, x n) называется сепарабельной , если ее можно представить в виде суммы функций, каждая из которых зависит только от одной переменной, т.е. если

(не исключено, что F i (x i) = 0 при некоторых i).

Пусть в задаче выпуклого программирования заданы система ограничений (4.3) и целевая функция (4.4), при этом и функция цели Z, и все ограничения, являются сепарабельными. Тогда задача имеет вид:

Найти минимум выпуклой (максимум -- вогнутой) функции

при ограничениях

Идея метода кусочно-линейной аппроксимации состоит в том, что все f i , и все заменяются ломаными линиями, состоящими из прямолинейных отрезков. При этом исходная задача выпуклого программирования заменяется новой, приближенной задачей, которая является задачей линейного программирования. Эта задача решается обычно симплексным методом, и ее решение является приближенным решением исходной задачи выпуклого программирования.

Рисунок 12. Решение задачи выпуклого программирование методом кусочно-линейной аппроксимации

Для построения приближенной задачи рассмотрим кусочно-линейную аппроксимацию функции одной переменной h(х), заданной на отрезке . Разобьем этот отрезок на r частей точками x 0

Уравнение участка ломаной между точками (x k ; h k) и (x k+1 ; h k+1) имеет вид (уравнение прямой по двум точкам). Если каждое из отношений в этом равенстве обозначить через, то получим:

Отметим, что для каждого существует единственное значение, удовлетворяющее условиям (4.7). Обозначив можно переписать (4.7) в виде:

[Уравнения (4.8) называются параметрическими уравнениями отрезка.

Если h(x) = 0, то второе из этих уравнений обращается в тождество 0 = 0, а первое принимает вид (4.1) - уравнение отрезка, лежащего на оси абсцисс].

Таким образом, для любого уравнение ломаной можно записать в виде:

причем всегда отличны от нуля только два значения (если х является внутренней точкой k-гo отрезка разбиения) или одно (если х совпадает с концом отрезка).

Возвращаясь к задаче выпуклого программирования с сепарабельными функциями, отметим, что прежде всего (в зависимости от системы ограничений) нужно определить интервал изменения каждой переменной x j . Затем каждый этот интервал разбивается на части точками x jk и с использованием формул (4.9) строится кусочно-линейная аппроксимация для функций f j и. После этого можно для исходной задачи (4.6) записать приближенную задачу:

Найти максимум функции

при ограничениях (4.10)

Поскольку приближенная задача (4.10) является задачей линейного программирования, которая обычно решается симплексным методом, условия неотрицательности переменных записываются отдельно от остальных ограничений.

Отличие полученной задачи (4.10) от обычной задачи линейного программирования состоит в том, что для каждого x j имеется не более двух соседних ненулевых и, значит, нельзя брать в качестве основных переменных два с одинаковым j и несоседними k. Заметим также, что для условий неотрицательности переменных слагаемых f j (x j) и (если таковые окажутся) кусочно-линейную аппроксимацию проводить, конечно, не нужно.

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

ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ, раздел математического программирования, в котором исследуется задача максимизации вогнутой целевой функции f(х) векторного аргумента х = (x 1 , ..., х n), удовлетворяющего ограничениям g i (х) ≥ 0, х Є Х, i = 1, ..., m, где g i - вогнутые функции, Х - выпуклое множество. Точка х, удовлетворяющая этим ограничениям, называется допустимой. Основным результатом теории выпуклого программирования является теорема о седловой точке: для того чтобы допустимая точка х* задачи выпуклого программирования была оптимальной, необходимо (при довольно широких условиях) и достаточно существование вектора у* = (у* 1 , ..., y m *) с неотрицательными компонентами у* такого, что точка (х*, у*) является седловой для функции Лагранжа

задачи выпуклого программирования, то есть для любых х Є Х и у с неотрицательными компонентами выполняются неравенства

На теорему о седловой точке опирается ряд методов выпуклого программирования, в которых либо минимизируется функция φ(y 1 , ..., у m) = max x Є X L(x, у) при у i ≥ 0, i = 1, ..., m, либо непосредственно отыскивается седловая точка, причём вместо функции Лагранжа иногда используются некоторые её модификации. Другой подход к решению задачи выпуклого программирования связан с поиском возможных направлений движения допустимой точки х, которые не выводят из множества допустимых точек и при движении вдоль которых целевая функция возрастает. Этот подход реализуется с помощью последовательности итераций. На каждой итерации вычисляется возможное направление, исходящее из очередной точки, после чего производится сдвиг по этому направлению на некоторое расстояние до следующей точки. Существуют методы решения задач выпуклого программирования, специально приспособленные к тому случаю, когда целевая функция нелинейна, а ограничения линейны. Как правило, методы выпуклого программирования требуют для точного определения оптимальной точки бесконечного числа итераций. Исключением являются задачи квадратичного программирования (целевая функция - сумма вогнутой квадратичной и линейной функций, ограничения линейны) и линейного программирования (целевая функция и ограничения линейны), для которых в основном используются конечные методы. Многие вычислительные методы выпуклого программирования реализованы в виде программ для ЭВМ; существуют также пакеты программ, охватывающие задачи линейного программирования и выпуклого программирования. Смотри также Исследование операций.

Лит.: Гольштейн Е. Г. Выпуклое программирование. Элементы теории. М., 1970; Зангвилл У. И. Нелинейное программирование. Единый подход. М., 1973.

Рассмотрение этого класса задач обычно начинается с изложения метода неопределенных множителей Лагранжа. Для этого положим, что/(х ь..., х„) и g(x b ..., х„) - непрерывные функции вместе со своими частными производными, снимем пока условия неотрицательности переменных и сформулируем следующую задачу на условный экстремум:

Чтобы найти ее решение, введем множители Лагранжа у ь / = 1, т и составим так называемую функцию Лагранжа :

найдем и приравняем к нулю ее частные производные по всем переменным

получив систему п + т уравнений относительно неизвестных х ь х п,

Уи -,Уп-

Если функция f(x h ..., х„) в точке имеет экстремум, то существует такой вектор У (0> = (у, 0 ,..., у° ), что точка (А г(0) , F (0)) является решением системы (2.23). Следовательно, решая систему (2.23), мы получим точки, в которых функция (2.20) может иметь экстремум. Далее найденные точки исследуют так же, как при решении задачи на безусловный экстремум.

Таким образом, метод множителей Лагранжа включает выполнение следующих этапов.

  • 1. Составить функцию Лагранжа.
  • 2. Найти частные производные по Xj и у, от функции Лагранжа и приравнять их к нулю.
  • 3. Решая систему (2.23), найти точки, в которых целевая функция может иметь экстремум.
  • 4. Среди точек-претендентов на экстремум найти такие, в которых экстремум достигается, и вычислить значения функции f{x, ..., х„) в этих точках.

Изложенный метод применим к задачам выпуклого программирования, т.е. к таким, в которых целевая функция выпуклая (или вогнутая) и область допустимых решений, определяемая ограничениями, также выпуклая.

Определение 1. Функция f{x ,..., х п), заданная на выпуклом множестве X, называется выпуклой, если для любых точекХ,Х 2 из Хи для любого числа X, 0 X 1 выполняется неравенство

Определение 2. Функция/(*,х „), заданная на выпуклом множестве X, называется вогнутой, если для любых точек Х х, Х 2 из Хи для любого числа X, 0 X

Определение 3. Множество допустимых решений задачи выпуклого программирования удовлетворяет условию регулярности, если существует по крайней мере одна точка Xj, принадлежащая области допустимых решений, для которой g^XJ) = b h i = 1, т.

Теорема 1. Любой локальный экстремум задачи выпуклого программирования является глобальным.

Определение 4. Функцией Лагранжа задачи выпуклого программирования является функция

где у, - множитель Лагранжа.

Определение 5. Точка (Х (0) , Т (0)) = (х,°,..., х (’, у, 0 , ..., у”) называется седловой точкой функции Лагранжа, если

Приведем две короткие теоремы, носящие вспомогательный характер.

Теорема 2. Оптимальный план Х (0) задачи НП - это

где ДА) - нелинейная дифференцируемая функция, удовлетворяющая условиям

где - градиент функции /

в точке А" (0) .

Доказательство.

Разложим целевую функцию в ряд Тейлора в окрестности точки Х ({))

где АХ - вектор малых приращений Х (0) ;

I - обозначение нормы (длины) вектора.

Из выражения (2.26) следует, что если какое-либо значение координаты вектора х| 0) > 0, то обязательно будет равна нулю производная

, так как в противном случае по координате х к можно,

при фиксированных значениях остальных переменных, продолжить минимизацию целевой функции, уменьшая значение х[ 0) , если производная больше нуля, или увеличивая xf если производная меньше

нуля. Если же х| 0) = 0, то должно быть поскольку

в противном случае можно было бы уменьшить значение f(X m), увеличив 4 0) на величину Дх*, не изменяя значений остальных переменных. Следовательно, для любого к выполняется равенство:

Теорема доказана.

Определим теперь необходимые и достаточные условия существования седловой точки функции Лагранжа.

Теорема 3. Чтобы точка (А 10 *, И 0)) с неотрицательными координатами являлась седловой точкой дифференцируемой функции L(X, Y), должны выполняться условия:

Доказательство.

1) Необходимость. Пусть (Х (0) , У" (0)) - седловая точка, т.е.:

Формула (2.29) равносильна выражению

На основании (2.29) и (2.30) условия (2.27) и (2.28) выполнены. Необходимость, таким образом, доказана.

  • 2) Достаточность. Положим, что выполнены условия (2.27) и (2.28). Разложим функцию L{X, Y) в ряд Тейлора в окрестности точки

Из разложения (2.31) и с учетом условий (2.27) и (2.28) следует, что

Два последних выражения равносильны формуле (2.29). Теорема доказана.

После приведенных теорем сформулируем практически очевидную теперь уже теорему Куна - Таккера.

Теорема 4 (Куна - Таккера). Для задачи выпуклого программирования (2.20) - (2.21), множество допустимых решений которой обладает свойством регулярности, точка Х (0) = (xj 0 *,..., х’ 0)), х,- 0> >0, / = 1, п является оптимальным планом тогда, и только тогда, когда существует такой вектор Т =(у 1 (0) ,..., yi 0)), У/ 0) >0, / = 1, т, что точка (Т (0) , Н 0>) является седловой точкой функции Лагранжа.

Если в задаче выпуклого программирования (2.20) - (2.21) целевая функция и ограничения непрерывно дифференцируемы, то теорему Куна - Таккера можно дополнить аналитическими выражениями, определяющими необходимые и достаточные условия того, чтобы точка (Х (0) , У i(l),) была седловой точкой функции Лагранжа, т.е. являлась решением задачи выпуклого программирования. Это выражения (2.27) и (2.28). Им удовлетворяет задача квадратичного программирования. Для ее окончательной формулировки приведем несколько определений и одну теорему.

Определение 6. Квадратичной формой относительно переменных Х[, ..., х„ называется числовая функция этих переменных, имеющая вид:

Определение 7. Квадратичная форма F называется положитель- но/отрицательно определенной, если F(X) > 0/F(X) 0 для всех значений переменных, составляющих вектор X.

Определение 8. Квадратичная форма F называется положитель- но/отрицательно полуопределенной, если F(X") > О /ДА") X, и, кроме того, существует такой набор переменных - компонент вектора X", что F(X") = 0.

Теорема 5. Квадратичная форма является выпуклой/вогнутой функцией, если она положительно/отрицательно полуопределена.

Определение 9. Задача, состоящая в минимизации/максимизации значения функции

при ограничениях

где - положительно/отрицательно полуопределенная квадратичная форма, называется задачей квадратичного программирования (ЗКП).

Для этой задачи функция Лагранжа имеет вид:

Если функция Лагранжа имеет седловую точку, то в ней выполняются условия (2.27), (2.28). Вводя теперь дополнительные переменные, обращающие неравенства в равенства (этот прием используется и при решении задач ЛП), запишем эти условия в виде:

Для нахождения решения ЗКП надо определить неотрицательное решение системы линейных алгебраических уравнений (2.32). Такое решение можно найти методом искусственного базиса, примененного для нахождения минимального значения искусственной целевой функции F = ^Pj, гдеру-искусственные переменные. Метод, какиз-

вестно, за конечное число шагов найдет оптимальный план либо установит неразрешимость задачи.

Итак, процесс нахождения решения ЗКП включает выполнение следующих этапов.

  • 1. Составляют функцию Лагранжа.
  • 2. В виде выражений (2.27), (2.28) записывают необходимые и достаточные условия существования седловой точки функции Лагранжа.
  • 3. Используя метод искусственного базиса, устанавливают отсутствие седловой точки для функции Лагранжа либо находят ее координаты.
  • 4. Записывают оптимальное решение исходной задачи и находят значение целевой функции.

Рассмотрим элементарный числовой пример (№ 1) из книги И. Л. Акулича «Математическое программирование в примерах и задачах». По плану производства продукции предприятие должно изготовить 180 изделий. Они могут быть изготовлены по двум технологиям. При производстве Х изделий 1-м способом затраты составили xf +4х, руб., а при изготовлении х 2 изделий 2-м способом они равны х + 8х 2 руб. Определить, сколько изделий каждым способом следует изготовить для минимизации стоимости заказа.

Решение. Минимизировать следует следующую функцию:

при условиях:

Функция Лагранжа в этом случае будет выглядеть следующим образом:

Вычислим частные производные этой функции по Х, х 2 , у и приравняем их к нулю:

Перенося в первом и втором уравнении у в правую часть и приравнивая левые части, получим после очевидных сокращений:

Решая это уравнение совместно с третьим уравнением системы, найдем, что Это точка - претендент на экстремум.

Используя вторые частные производные, нетрудно показать, что найденная точка есть условный минимум функции/

Задачи, подобные рассмотренной, во множестве выдвигает экономическая практика. Правда, реальные задачи содержат, как правило, большое число переменных и ограничений, что делает невозможным их решение без применения компьютера. Однако эффективность использования стандартизованного программного обеспечения определяется знанием исследователя существа выполняемых компьютером преобразований. Это помогает ему верно ориентироваться во множестве предлагаемых для решения оптимизационных задач методов, вычислительных процедур и программных комплексов.

Для закрепления темы рассмотрим еше один числовой пример (№ 2). Найти максимальное значение функции

при условиях:

Решение. Функция/является вогнутой, так как является суммой линейной функции f = 2х 2 + 4х ъ которую можно рассматривать как вогнутую, и квадратичной формы / 2 = -х -2x1, которая отрицательно определена. Ограничения содержат только линейные ограничения. Следовательно, можно воспользоваться теоремой Куна - Таккера и схемой решения ЗКП.

1. Составим функцию Лагранжа:

2. Запишем необходимые и достаточные условия существования седловой точки функции L.

3. Введем в систему линейных неравенств дополнительные неотрицательные переменные v b V2, w, w 2 , обращающие неравенства в равенства. Получим систему уравнений:

При этом, естественно, выполняются условия:

Необходимо найти базисное решение системы уравнений (2.33) для определения координат седловой точки функции Лагранжа. С этой целью воспользуемся методом искусственного базиса. Минимизируем искусственную целевую функцию

где Zi, Zi - искусственные переменные, при условиях:

Здесь очевидное базисное допустимое решение выглядит следующим образом:

Целевую функцию F выразим через небазисные переменные:

Заканчивая рассуждения, отметим, что она обращается в ноль при Xj (0) = 1, = 1 и остальных переменных с нулевыми значениями. Таким образом, Т (0) = (1, 1) - это оптимальный план исходной задачи,

(Документ)

  • Курсовой проект - Стили программирования. Практическая часть - игра 100 спичек (Курсовая)
  • Лабораторная работа №4. Многомерный поиск. Нелинейное программирование. Методы безусловной минимизации (Лабораторная работа)
  • Веселов С.Л. Программирование мини-АТС Samsung и Panasonic (Документ)
  • Презентация - Линейное программирование (Реферат)
  • Тихомирова Л.С. Методы минимизации булевых функций (Документ)
  • Кирсанова О.В., Семёнова Г.А. Математическое программирование (типовой расчёт) (Документ)
  • Козырев Д.В. 1C: Предприятие 7.7 Конфигурирование и программирование. Компонента Бухгалтерский учет. Курс дистанционного обучения (Документ)
  • Лабораторная работа №1. Безусловная одномерная оптимизация (Лабораторная работа)
  • Мощевикин А.П. Презентации лекций "Теория принятия решений" (Документ)
  • n1.doc


      1. Выпуклое программирование. Теорема Куна-Таккера. Условия Куна-Таккера
    В теории выпуклого программирования в качестве основной рассматривается задача минимизации выпуклой функции

    При условиях

    (1.3)

    Где функции
    предполагаются выпуклыми.

    Если
    и являются вогнутыми функциями, то имеем задачу максимизации
    при ограничениях
    и

    Составим функцию Лагранжа для данной задачи:

    Точка называется седловой точкой функции (1.4), если точка является точкой минимума функции
    , а точка - точкой максимума функции . Другими словами, для седловой точки при всех
    и выполняется соотношение


    (1.5)

    Теорема 1 (Теорема Куна-таккера). Пусть существует по крайней мере одна точка
    , для которой
    . Тогда необходимым и достаточным условием оптимальности вектора
    , принадлежащего области допустимых решений задачи (1.1)-(1.5), является существование такого вектора
    , что для всех и
    имеют место неравенства (1.5)

    Эту теорему примем без доказательства

    Теорема Куна-Таккера также называется теоремой о седловой точке.

    Если
    и
    - дифференцируемые функции, то неравенства в (1.5) эквивалентны следующим локальным условиям Куна-Таккера:

    Данные выражения означают, что значения производных берутся в точке
    .

    1.2. Квадратичное программирование. Метод Баранкина-Дорфмана.

    Частным случаем задачи выпуклого программирования является задача квадратичного программирования. В качестве основной в квадратичном программировании рассматривается задача минимизации функции Z, являющейся суммой линейной и квадратичной функции:

    При линейных ограничениях

    Матрица D предполагается симметрической и неотрицательно определенной. В этом случае функция (2.1) будет выпуклой.

    Составим для задачи (2.1) - (2.3) локальные условия Куна-Таккера (1.6) – (1.7), являющиеся необходимыми и достаточными условиями оптимальности решения задачи (2.1) – (2.3).

    Функция Лагранжа в данном случае имеет вид:

    Найдем частные производные этой функции:

    Обозначим

    С учетом этих обозначений, соотношений (2.4) и (2.5) условия Куна-Таккера (1.6) – (1.7) примут следующий вид

    Равенства (2.6) и (2.7) образуют систему N=n+m линейных уравнений с 2N=2(n+m) неизвестными: .

    Итак, в соответствии с теоремой Куна-Таккера решение
    задачи (2.1) – (2.3) квадратичного программирования является оптимальным тогда и только тогда, когда совместно с решением
    существуют решения
    и
    такие, что является решением системы (2.6) – (2.8) при условии выполнения равенства (2.9).

    Условие (2.9) для задачи (2.1) – (2.3) равносильно выполнению условия

    Существует несколько методов решения задачи квадратичного программирования. Рассмотрим один из них – метод Баранкина-Дорфмана.

    При этом методе сначала система уравнений (2.6) – (2.7) приводится к виду:

    Где (базисные переменные) и
    (свободные переменные) являются различными элементами некоторой перестановки переменных , а все являются неотрицательными числами (i=1,2,…,N).

    Затем из системы (2.11) находится начальное опорное решение

    Системы (2.6) – (2.8), причем компоненты вектора расположены в порядке .

    Если для решения выполняется условие (2.10), то задача (2.1) – (2.3) решена и ее оптимальное решение
    находится из соответствующих компонент вектора .

    Если же для условие (2.10) не выполняется, то для перехода к другому опорному решению составляется нижеследующая таблица (табл. 2.1). В основную часть этой таблицы включаются строки для всех переменных, расположенных в порядке . Для базисных переменных элементы строк берутся из системы (2.11), а для свободных переменных – из соотношений

    Параметры же дополнительной части таблицы 2.1 находятся следующим образом:

    А) находятся из формулы где - вектор, составленный из элементов s-го столбца основной части таблицы;

    Б) для тех s, для которых
    , вычисляются остальные параметры:

    (элементы соответствующих столбцов, доставляющих минимум , отмечаются звездочкой),
    .

    Столбец, которому соответствует наименьший из отрицательных , назначается разрешающим столбцом, строка с отмеченным звездочкой элементом этого столбца – разрешающей строкой, а сам этот элемент – разрешающим элементом, и с их помощью выполняется симплексное преобразование таблицы 2.1.

    При этом:

    В результате получается новое опорное решение системы (2.6) – (2.8). Этот процесс продолжается до тех пор, пока не будет выполнено условие (2.10). Если же все
    , а
    , то в качестве начального выбирается другое решение.

    1.3 Пример решения задачи методом Баранкина-Дорфмана
    Минимизировать функцию

    При ограничениях:

    ;
    .

    Решение

    Находим начальное опорное решение системы (2.12). При этом значение целевой функции равно .

    То не выполняется условие (2.10) и, следовательно, решение не является оптимальным.

    Составим таблицу 2.2 для перехода к новому опорному решению системы (2.12) - (2.13). Основную часть этой таблицы заполним, используя систему (2.12).

    А) для дополнительной части таблицы найдем:



    Б) для положительных и вычислим остальные параметры:


    Четвертый столбец, которому соответствует наименьший отрицательный , назначаем разрешающим столбцом, строку с элементом 3 этого столбца – разрешающей строкой, а сам элемент 3 – разрешающим элементом, и с их помощью выполняем симплексное преобразование таблицы 2.2.


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

    Для этого решения

    Поэтому заполним дополнительную часть таблицы 2.3 аналогично тому, как это делалось в предыдущем случае, для перехода к новому опорному решению системы (2.12) – (2.13).

    Подвергнув таблицу 2.3 симплексному преобразованию с разрешающим элементом 13.30, получим очередную таблицу с опорным решением , для которого
    .

    Тем самым найдено оптимальное решение
    , при котором целевая функция Z данной задачи минимизируется. При этом

    1.4 Индивидуальное задание: решение задачи методом Баранкина-Дорфмана

    ;

    Решение

    Из соотношений (2.6) - (2.7) получаем следующую систему уравнений:

    После несложных преобразований приводим эту систему к виду:

    (2.14)

    Откуда с учетом неотрицательности

    Находим начальное базисное решение
    системы (2.14). При этом значение целевой функции равно
    .

    Так как , то не выполняется условие (2.10) и, следовательно, решение не является оптимальным.

    Составим таблицу 2.4 для перехода к новому базисному решению системы (2.14) - (2.15).
    Таблица 2.4

    , а , то выбор начального опорного решения необходимо произвести заново.

    1

    -

    -

    -



    0

    -1

    0

    0



    0

    0

    -1

    0



    4

    1

    -2

    0



    0

    0

    0

    -1



    2

    4 *

    -6

    -2



    4

    2

    0

    -1



    32



    12

    -10

    -4



    4



    1/2
    Таблица 2.5
    0

    0

    -1



    0

    -1

    0

    0



    3

    -1/2

    3 *

    0



    110,25



    -2,5

    9

    -2



    -3

    Лекция 11. Выпуклое программирование

    Определение 1. З адачей выпуклого программирования называется задача нелинейного программирования, где все функции являются выпуклыми.

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

    (1)

    , (2)

    . (3)

    Нам понадобятся некоторые вспомогательные построения в пространстве
    векторов
    . Вектор из первых
    компонент точки будем обозначать через . Итак,
    .

    Для задачи (1) – (3) определим множество

    где
    .

    Лемма . Для задачи выпуклого программирования (1) – (3) множество выпукло .

    Доказательство. Выберем произвольные векторы
    из множества и число
    . Тогда существуют точки и из такие, что и . Умножим эти неравенства на и
    , соответственно, и сложим их. В силу выпуклости всех функций получаем

    Из полученных неравенств и вытекает выпуклость множества .

    Теорема 1. (Теорема Куна-Таккера в форме о седловой точке функции Лагранжа задачи выпуклого программирования ) Пусть в задаче выпуклого программирования (1) – (3) система (2) удовлетворяет условию Слейтера относительно был решением задачи (1) – (3), необходимо и достаточно, чтобы существовал неотрицательный вектор такой, что
    – седловая точка функции Лагранжа.

    Доказательство. Поскольку достаточность этого условия уже доказана для произвольной задачи нелинейного программирования (см. теорему 2.6 введения), осталось доказать только необходимость.

    Необходимость. Пусть – решение задачи (1) – (3). Положим
    . Очевидно, что
    , так как
    ,

    и
    .

    Убедимся, что
    . Предположим противное. Это означает, что найдется точка
    такая, что
    . Следовательно, – такая допустимая точка, значение целевой функции в которой меньше минимального. Получаем противоречие с тем, что – решение задачи выпуклого программирования.

    Итак,
    . Согласно лемме множество выпукло. Следовательно, выполняются все требования теоремы 8.2. Поэтому существует ненулевой

    вектор
    опорный в точке ко множеству :

    Убедимся далее, что все координаты вектора неположительны. Предположим противное. Пусть существует координата
    . Зафиксируем у вектора все компоненты, кроме -ой. Тогда, учитывая, что произведение
    может принимать сколь угодно большие значения (в силу неограниченности сверху координаты ), получаем противоречие с неравенством (4).

    Легко увидеть, что при любом
    векторы
    включаются во множество . Тогда из (4) имеем:

    Покажем, что
    . Пусть это не так. Тогда
    . Следовательно,
    . По условию Слейтера существует вектор
    такой, что
    . Поэтому
    . Полученное противоречие и означает, что
    .

    Обозначим
    . Покажем, что построенный вектор представляет собой искомый вектор множителей Лагранжа. Очевидно, что
    и из (5) получаем

    Отсюда при
    следует

    . (7)

    С другой стороны, так как
    (поскольку
    ) и
    , получаем неравенство

    . Отсюда и из (7) следует, что в точке
    выполняется условие дополняющей нежесткости:

    . (8)

    Из (6) и (8) имеем

    или, что то же самое,

    Далее, пусть
    . Тогда
    . Отсюда и из (8) получаем неравенство

    Неравенства (9), (10) и означают, что
    – седловая точка функции Лагранжа задачи выпук-

    лого программирования. Что и требовалось.

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

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

    была условным минимумом функции на множестве
    , необходимо и достаточно, чтобы выполнялось включение

    . (11)

    Доказательство следует непосредственно из теоремы 6.5 и определения конуса
    опорных векторов в точке ко множеству
    .

    Теорема 3. (Теорема Куна-Таккера в дифференциальной форме для задачи выпуклого программирования ) Пусть дана задача выпуклого программирования в виде (1), (2), где все функции
    непрерывно дифференцируемы, система (2) удовлетворяет условию Слейтера. Тогда для того, чтобы вектор
    был решением задачи (1), (2), необходимо и достаточно, чтобы существовал неотрицательный вектор такой, что выполняются условия

    , (12)

    .

    Доказательство. Покажем, что условия (12) и (13) эквивалентны включению (11). Пусть точка
    такова, что
    . Тогда
    и
    .

    Пусть теперь
    . Тогда из теорем 2 и 10.5 следует, что необходимым и достаточным условием экстремума является существование таких множителей
    ,
    , для которых
    . Положим
    для всех
    и получим из последнего равенства условия (12) и (13). Что и требовалось.

    В заключение параграфа приведем формулировки двух теорем Куна-Таккера для задачи вы-

    пуклого программирования с линейными ограничениями.

    Теорема 4. Пусть в задаче выпуклого программирования (1) – (3) система ограничений (2) имеет вид

    , b – вектор размерности
    . Тогда для того, чтобы неотрицательный вектор
    был решением задачи, необходимо и достаточно, чтобы

    существовал неотрицательный вектор такой, что
    – седловая точка функции Лагранжа данной задачи.

    Отметим, что в этом случае функция Лагранжа имеет вид .

    Теорема 5. Пусть в задаче выпуклого программирования (1), (2) целевая функция непрерывно дифференцируема, система ограничений (2) имеет вид
    , где A – матрица размерности
    , b – вектор размерности
    . Тогда для того, чтобы вектор
    был решением задачи, необходимо и достаточно, чтобы существовал неотрицательный вектор такой, что выполняются условия
    ,
    .

    Заметим, что в теоремах 4 и 5 не требуется выполнения условия Слейтера, поэтому они не являются частными случаями теорем 1 и 3 и требуют самостоятельного доказательства.