Жолобов Ввведение в Математическое 2008
.pdfУсловия Куна-Таккера для задачи |
Условия для общей |
|||||||
кв. программирования |
|
задачи |
|
|||||
|
|
|
|
|
|
|
T |
max, |
|
|
T |
|
|
|
z = f(X ) |
||
z CX X |
DX max |
|
|
|||||
|
G(X) 0 |
|
||||||
|
|
A |
b |
0 |
|
|
||
G( X ) |
|
|
X |
|
|
|||
|
|
E |
0 |
|
|
|
0, M 0 |
0 |
(1.138) |
C+2XTD - TA + M = 0. |
|
|
Здесь |
f(X) - G(X) = 0 |
(1.139) |
z = C+2XTD и G=(A – E)T |
|
|
|
n |
|
|
|
|
|
|
i bi aij xj |
= 0, (i=1 m), |
|
T |
G = 0 |
(1.140) |
||
|
j 1 |
|
|
|
|
||
|
|
|
|
(1.141) |
|||
|
jxj = 0, (i=1, 2, … , n), |
|
|
|
|||
|
АX - b 0, |
-X - 0 |
G(X) 0 |
(1.142) |
|||
Обозначим |
S = b - AX – вектор дополнительных переменных |
S = (s1, s2, … , sm)T . Тогда приведенные выше условия приобретают вид:
-2XTD+ TA - M = C из (1.139), |
(1.143) |
AX + S = b из (1.142), |
(1.144) |
jxj = 0 = isi для всех i и j из (1.140) и (1.141), |
(1.145) |
X, , M, S 0 из (1.135) и (1.139). |
(1.146) |
Ввиду того, что DT = D, в результате транспонирования системы уравнений (1.143) будет иметь место -2DX+AT - M = C.
Теперь можно записать систему уравнений, решение которой
позволяет найти векторы X и , определяющие стационарную точку функции Лагранжа, и следовательно, координаты оптимального решения исходной задачи (X).
202
Пример 1.33
Решить задачу квадратичного программирования:
z 6x |
3x |
2 |
4x x |
2 |
2x2 |
3x2 |
max |
|
|
||||||||
|
|
|
1 |
|
|
|
1 |
|
1 |
|
2 |
|
|
|
|
||
|
|
|
|
|
|
|
|
x1 |
|
x2 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2x1 3x2 |
4 |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
x1 , x2 0. |
|
|
|
|
|
|
|||
Здесь |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
1 |
, D |
* |
|
|
2 |
|
4 |
|
|
1 |
X |
x1 |
|
||
C = (6, 3), , A |
|
|
|
|
|
|
, b |
|
|
. |
|||||||
2 |
|
3 |
|
|
|
|
|
0 |
|
3 |
|
|
4 |
|
x2 |
|
|
Придадим матрице D |
* |
симметрическую форму: |
D |
2 |
2 |
|
|||||||||||
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
3 |
|
=( 1, 2)T – множители Лагранжа, соответствующие ограничениям AX b;
M = ( 1, 2)T – множители Лагранжа, соответствующие ограни-
чениям X 0.
Построим задачу линейного программирования (4.44) в терминах решаемой задачи.
Наша задача имеет вид: z'' = -r1 – r2 max,
|
|
|
|
|
|
x1 |
|
|
|
||
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 4 1 2 |
1 0 1 |
0 |
0 |
0 |
|
|
1 |
|
6 |
|
|
|
2 |
||||||||||
4 6 1 3 |
0 1 0 |
1 |
0 |
0 |
|
|
|
3 |
|
||
|
|
|
|
|
|
|
|
1 |
|
|
|
1 1 0 0 |
0 |
0 0 |
0 |
1 |
0 |
|
2 |
|
1 |
|
|
|
0 |
0 0 |
0 |
0 |
|
r1 |
|
|
|
||
2 3 0 0 |
1 |
4 |
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
r2 |
|
|
|
||
|
|
|
|
|
|
s |
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
s |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x1, x2, 1, 2, 1, 2, r1, r2, s1, s2 0.
При дополнительных условиях: jxj = 0 = isi:
1x1= 2x2= 1s1= 2s2= 0.
205
Эта (вспомогательная) задача имеет решение:
z''opt = 0; x1=1, x2=0, l1=2, l2=0, 1=0, 2=3, r1=0, r2=0, s1=0, s2=2.
Как видно, дополнительные условия 1x1= 2x2= 1s1= 2s2= 0 выполнены. По этому решению находим оптимальное решение исходной задачи:
zopt = 4; x1=1, x2=0.
Рассмотрим особенность решения задачи линейного программирования (1.148).
Одновременное включение всех ограничений вида (1.145) неэффективно с вычислительной точки зрения, поскольку каждое такое ограничение требует дополнительной проверки состава базиса на каждой итерации симплекс-метода, при принятии решения о вводимой в базис переменной. С другой стороны, часть (как правило – большая) этих ограничений выполняется автоматически. В этой связи весьма эффективным представляется следующий итерационный алгоритм решения задачи (1.148).
Обозначим через множество пар переменных, для которых должны выполняться дополнительные ограничения. В предельном случае это множество будет включать все пары:
Шаг 1 |
= {( jxj), ( isi) | |
i =1, 2, …, m; j =1, 2, …, n }. |
|
|||
. Положить = . |
|
|
|
|
||
Шаг 2 |
. Решить задачу с дополнительными ограничениями . |
|
||||
Шаг 3 |
. Если |
jxj = 0 = isi |
для всех |
i |
и |
j |
(i =1, 2, …, m; |
j =1, 2, …, n), то |
конец – найдена точка, удовлетво- |
ряющая условиям Куна-Таккера. В противном случае выполнить следующий шаг.
Шаг 4 . = {( jxj), ( isi) | |
jxj |
0, isi 0; i |
1, m |
; j |
1, n |
}. |
Выполнить шаг 2. |
|
|
|
|
|
|
В рассмотренном примере |
задача была решена при |
= : шаг 4 не потребовался. В общем же случае для удовлетворения дополнительных условий может потребоваться несколько итераций.
Основная проблема, связанная с применимостью приведенного подхода к решению задачи квадратичного программирования, заключается в том, целевая функция должна быть вогнутой (в задаче на максимум).
В общем случае анализ на вогнутость является весьма трудоемкой задачей.
206
Пример 1.34
Рассмотрим следующие модели, которые отличаются друг от друга только коэффициентами ЦФ при произведении x1x2:
z 2x2 |
2x2 |
2x x |
2 |
max |
1 |
2 |
1 |
|
|
|
x1 |
1 |
|
|
|
x2 |
1 |
|
|
|
x1 , x2 0. |
|
|
|
|
Квадратичная форма |
Q(X) = XTDX = x1 , x2 |
2 |
1 x1 |
|
|
|
|
|
. |
||
|
|
|
1 |
2 x2 |
|
Здесь D преобразована к симметрическому виду.
Вспомним, что квадратичная форма Q(X) будет отрицательно
определенной, если значения k-х угловых миноров k |
определите- |
ля |D| отличны от нуля и имеют знак (-1)k, k=1, 2, … , n. В этом случае |
|
матрица D будет отрицательно определенной. |
|
Найдем все угловые миноры: |
|
1 = -2 < 0 (знак (-1)1), |
2 = |
2 |
1 |
= 3 > 0 (знак (-1)2). |
1 |
2 |
То есть матрица D отрицательно определенная, и соответст-
венно, функция Q(X) является строго вогнутой. Задача имеет единственное решение и это решение – оптимальное: Zopt= -2, x1 = 1, x2 = 1 .
Ниже приведена геометрическая интерпретация решения задачи.
x1
|
|
X''=(1, 1) |
|
|
X'=(0, 0) |
||
|
|
x2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
207
Пример 1.35
z 2x2 |
2x2 |
4x x |
2 |
max |
1 |
2 |
1 |
|
|
|
x1 |
1 |
|
|
|
x2 |
1 |
|
|
x1 , x2 0.
Найдем все угловые миноры: |
|
|
|
|
|
|
1 = -2 > 0 (знак (-1)1), |
2 = |
|
2 |
2 |
|
= 0 . |
|
|
|||||
|
2 |
2 |
|
То есть матрица D отрицательно полуопределенная, и соответ-
ственно, функция Q(X) является не строго вогнутой. Одно из оптимальных решений задачи: Zopt= 0, x1 = 1, x2 = 1. Заметим, что любое из
решений, для которых x1 = x2 0, является оптимальным: на всех таких решениях ЦФ имеет нулевое значение.
Пример 1.36
|
|
z 2x2 |
2x2 |
8x x |
2 |
max |
|
||||
|
|
|
1 |
|
2 |
|
1 |
|
|
||
|
|
|
|
|
x1 |
1 |
|
|
|
|
|
|
|
|
|
|
x2 |
1 |
|
|
|
|
|
|
|
|
|
x1 , x2 0. |
|
|
|
||||
Найдем все угловые миноры: |
|
|
|
|
|
|
|
||||
1 |
= -2 < 0 |
(знак (-1)1), |
2 = |
|
2 |
4 |
|
= -12 < 0. |
|
||
|
|
|
|||||||||
|
4 |
2 |
|
||||||||
То |
есть |
матрица |
D |
неопределенная, и |
соответственно, |
||||||
функция |
Q(X) не является ни вогнутой, ни выпуклой. |
Задача не отно- |
сится к классу задач квадратичного программирования и, более того, не является задачей выпуклого программирования.
Приведенные примеры объясняют необходимость предварительного анализа целевой функции на вогнутость (в задаче максимизации). Если в результате такого анализа будет установлено, что матрица D положительно определена или положительно полуопределена, можно просто изменить знак целевой функции (изменить направление экстремизации). При этом матрица D станет отрицательно определенной или отрицательно полуопределенной.
208
Контрольные вопросы и задачи к разделу 1.6
1.Почему в квадратичном программировании необходимо вычислять определенность квадратичной формы?
2.Можно ли решать задачу квадратичного программирования методом сведения к задаче линейного программирования на максимум (минимум) в случае отрицательной (положительной) полуопределенности квадратичной формы? Чем будет отличаться результат от случая полной определенности квадратичной формы?
3.Получите с помощью метода множителей Лагранжа необходимые условия экстремума для следующей задачи нелинейного программирования:
x13 2x22 x1x2 ex1 x3 max x12 x22 x22 x32 25
x12 x22 ex2 2x3 5
4. Сведите задачу квадратичного программирования к задаче ЛП и исследуйте её квадратичную форму на определенность
6x1 3x2 4x1x2 2x12 3x22 max x1 x2 1
2x1 3x2 4
5. Сведите задачу квадратичного программирования к задаче ЛП и исследуйте её квадратичную форму на определенность
x12 3x22 2x1x2 max
x1 2x2 10 x1 3x2 5
209
2. ДИСКРЕТНОЕ ПРОГРАММИРОВАНИЕ
Дискретное программирование (ДП) – один из наиболее важных и актуальных разделов математического программирования. Значительный круг задач планирования, принятия решений и технических задач сводится к выбору лучших параметров из некоторой дискретной совокупности заданных величин. Поскольку задачи ДП являются подмножеством задач математического программирования (МП), их постановка в общем виде выглядит также:
0 (x1, x2 , ..., xn ) extr
i (x1, x2 , ..., xn ) 0, i 1,m x D.
Главным свойством, позволяющим отнести задачу к классу задач дискретного программирования, является дискретность области определения всех или нескольких параметров.
Несмотря на кажущуюся простоту постановки задач ДП, математические трудности, возникающие при их анализе, могут быть весьма значительными.
Достаточно вспомнить Великую Теорему Пьера Ферма. Суть этой теоремы сводится к следующему [2].
Диофантово уравнение xn yn zn , где n – целое число,
большее двух, не имеет решения в целых положительных числах. Эта теорема может быть сформулирована, как следующая за-
дача целочисленного программирования:
(x1x4 x2x4 x3x4 )2 min
x1 1; x2 1 ; x3 1; x4 3 x j целые ( j 1, 4).
Любой метод, позволяющий решить эту задачу в обозримое время, будет конструктивным методом анализа теоремы Ферма:
если min ЦФ>0, то теорема доказана;
если min ЦФ=0, то утверждение теоремы Ферма опровергну-
то.
210