ТОП 10:

Квадратичное программирование



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

Например, в задаче с двумя переменными целевая квадратичная функция записывается следующим образом:

f(x1, x2) = d1x1+ d2x2 + ½(C11x12 + C12x1x2 + C21x1x2 + C22x22) .

       
 
   
 


линейная форма квадратичная форма

В векторной форме она принимает вид

.

Обобщая на случай многих переменных, получаем:

Матрица С – квадратная, диагонально-симметричная (Cij=Cji).

В целом задача квадратичного программирования ставится в виде:

(8.10)

; (8.11)

. (8.12)

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

Свойства функции определяются матрицей С.Для вогнутости функции необходимо, чтобы матрицаСбыла отрицательно определенной (строгая вогнутость) или отрицательно полуопределенной. Матрица С отрицательно определенная, если для всех ненулевых X справедливо ХTСХ< 0, и отрицательно полуопределенная, если ХTСХ £ 0. В случае минимизации целевая функция должна быть выпуклой, что имеет место при положительно определенной или положительно полуопределенной матрице С. Практически определить свойство квадратичной функции можно с помощью достаточных условий экстремума: если функция в стационарной точке имеет максимум, она вогнутая, а если минимум, то выпуклая.

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

Теорема

Для того чтобы вектор Х* являлся решением задачи (8.10)-(8.12), необходимо и достаточно существования таких неотрицательных m-мерных векторов W и L и неотрицательного n-мерного вектора V, которые удовлетворяют следующей системе уравнений:

D + C×X*-AT×L + V = 0, (8.13)

B - A×X* - W = 0, (8.14)

VT×X* = 0, (8.15)

WT×L = 0. (8.16)

Покажем, что теорема выводится из условий Куна-Таккера. Функция Лагранжа для рассматриваемой задачи имеет вид

.

Записываем условия (8.5):

.

Введя в это неравенство неотрицательный вектор дополнительных переменных V, получаем (8.13). (8.14) – это исходное условие задачи после приведения его к равенству вводом неотрицательного вектора дополнительных переменных W. Очевидно. что производная , когда дополнительная переменная V>0 и , когда V=0. Таким образом, V играет роль индикатора производной. Поэтому условие дополняющей нежесткости (8.6) принимает вид (8.15). Аналогична взаимосвязь вектора W с производной F по L, и отсюда имеем второе условие дополняющей нежесткости (8.16).

Система уравнений (8.13)-(8.16) – нелинейная, так как нелинейны (8.15) и (8.16). Она содержит (m + n + 2) уравнений и 2×(m + n) неизвестных X*, L, V и W.

Так как и векторы V и X неотрицательны, из (8.15) следует, что по крайней мере n переменных из vj и xj равны 0. Аналогично из (8.16) вытекает, что равны нулю не менее m переменных из wi и li. Таким образом, в решении системы (8.13)-(8.14) положительными могут быть не более (m + n) переменных. Это свойство системы дает ключ к решению.

Действительно, линейная система (8.13), (8.14) содержит n+m уравнений и 2(n + m) неизвестных. Но известно, что в искомом решении число положительных переменных не превышает (m + n). Следовательно, это допустимое базисное решение (опорный план) системы (8.13), (8.14). Поэтому искать решение задачи КП нужно только среди опорных планов этой системы. Такие решения находятся методами линейного программирования. Опорный план системы (8.13), (8.14), удовлетво­ряющий условиям (8.15), (8.16), будет оптимальным решением задачи КП.

Перепишем уравнения (8.13), (8.14) в обычном виде:

(8.17)

Если вектор D – неположительный, а вектор B – неотрицательный, то начальное базисное решение V=-D, W=B удовлетворяет условиям (8.15), (8.16) и, значит, является оптимальным решением задачи КП. Однако, как правило, вектор D имеет положительные компоненты и такое начальное решение оказывается недопустимым. В этом случае, ориентируясь на использование прямого симплекс-метода, строится искусственное начальное решение: в уравнения (8.17) с отрицательной правой частью вводятся искусственные переменные yk и они вместе с неотрицательными vj и wi образуют базисное решение. В качестве критерия линейной задачи принимается сумма искусственных переменных:

Lиск = Syk à min.

Для выполнения условий дополняющей нежесткости (8.15)-(8.16) алгоритм симплекс-метода дополняется правилом ограниченного ввода:

если в базисном решении имеется vj, то не может вводиться xj (с тем жеиндексом) и наоборот;

если в базисном решении имеется wi, то не может вводиться li (с тем жеиндексом) и наоборот.

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

Признаком выполнения условий теоремы (8.13)-(8.16) и, следовательно, оптимальности решения задачи КП является равенство нулю всех искусственных переменных или Lиск=0.

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

Пример 8.2. Найти решение следующей задачи КП:

f = 10x1 + 20 x2 + x1×x2 – 2x12 – 2x22 à max,

8 – x2 ³ 0,

9 – x1x2 ³ 0,

x1, x2 ³ 0.

Перепише целевую функцию в векторной форме:

По матрице С (гессиану) проверяем достаточные условия: D1=-4<0, D1=16-2>0. Значит, f имеет максимум и строго вогнутая.

Записываем первую систему уравнений (8.17):

или

Добавляем вторую:

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

Критерий линейной задачи:

Lиск = у1 + у2 à min.

Базисные переменные в начальном решении: y1, y2, w1 и w2.

Заполняем начальную симплекс-таблицу.

   
Баз.
-1 -1 5/2
-1 -1 -
-
  -1 -1  
-1 -1

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

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

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







Последнее изменение этой страницы: 2016-08-12; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.231.167.166 (0.007 с.)