Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Жолобов Ввведение в Математическое 2008

.pdf
Скачиваний:
294
Добавлен:
16.08.2013
Размер:
2.42 Mб
Скачать

X = (x1, x2, … , xn)T, C = (с1, с2, … , сn), b = (b1, b2, … ,bm)T,

 

a11

a12

a1n

 

A

a21

a22

a2n

,

 

 

 

 

 

am1

am2

amn

 

 

 

 

 

 

d11

Dd21

dn1

d12

d1n

 

d22

d2n

.

 

 

dn2

dnn

 

Функция XTDX является квадратичной формой. В дальнейшем будем считать, что D – симметрическая матрица. Действительно, значение квадратичной формы не изменится, если каждый

коэффициент из пары dij и dji (i j) заменить на (dij + dji)/2 . Кроме того, примем (пока) следующее допущение. В задаче

максимизации матрица D – отрицательно определенная. В задаче минимизации матрица D – положительно определенная. Это означает, что функция z является строго выпуклой по переменным X в случае задачи минимизации и строго вогнутой – в задаче максимизации. Линейность ограничений гарантирует выпуклость допустимого множества.

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

Рассмотрим случай максимизации. При этом общая постановка задачи имеет следующий вид:

 

 

 

T

 

 

 

z CX X

DX max

 

 

 

A

b

(1.137)

G(X )

 

 

X

0 .

 

 

E

0

 

Здесь в ограничения G(X)

 

явным образом включено требова-

ние неотрицательности переменных (X 0).

Обозначим = ( 1, 2, … , m)T и M = ( 1, 2, … , n)T – множители Лагранжа, соответствующие ограничениям АX b и X 0.

Условия Куна-Таккера (1.135) имеют вид:

201

Условия Куна-Таккера для задачи

Условия для общей

кв. программирования

 

задачи

 

 

 

 

 

 

 

 

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

2D

AT

A

0

 

 

 

X

 

 

 

 

 

E

0

 

 

 

 

 

C

T

(1.147)

 

 

 

 

 

0 E

M

 

b

 

 

 

 

 

S

 

 

 

 

 

jxj = 0 = isi для всех i и j , X, , M, S 0.

Все уравнения, за исключением jxj = 0 = isi, являются ли-

нейными относительно переменных X, , M, S . Следовательно, исходная задача сводится к нахождению решения системы линейных уравнений, удовлетворяющих дополнительным ограничениям

jxj = 0 = isi.

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

Решение рассматриваемой системы уравнений можно найти путем реализации первого этапа двухэтапного метода (метода вспомогательной задачи). Однако необходимость удовлетворения ограничениям jxj = 0 = isi требует некоторой модификации алгоритма симплекс-метода:

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

базис;

если переменная xj входит в состав базисных переменных оче-

редного опорного решения, то переменную j

нельзя вводить в

базис;

 

 

если переменная i

входит в состав базисных переменных оче-

редного опорного решения, то переменную si

нельзя вводить в

базис;

 

 

если переменная si

входит в состав базисных переменных оче-

редного опорного решения, то переменную i

нельзя вводить в

базис.

 

 

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

203

Если таковые имеются, левую и правую части соответствующих уравнений нужно умножить на "-1". Только после этого можно вводить искусственные переменные.

В противном случае вспомогательная задача может оказаться недопустимой или решена неправильно.

Итак, поиск оптимального решения исходной задачи

 

 

 

T

 

 

 

z CX X

DX max

 

 

 

A

b

0

G( X )

 

 

X

 

 

E

0

 

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

ния:

z R max

 

 

T

2D

A

 

A

0

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

E

E

0

 

 

 

 

T

 

 

 

(1.148)

M

C

 

0

0

E

R

 

 

b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X, , M, R, S 0

при дополнительных

ограничениях jxj = 0 = isi для всех i и j

(i =1, 2, …, m; j =1, 2, …, n).

Здесь R = (r1, r2, … ,rn)

– вектор искусственных переменных,

введенных в каждое из n

первых уравнений.

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

имеет полный единичный базис.

Следует еще раз отметить особенность этой задачи. Она всегда имеет решение (вспомним двухэтапный метод: целевая функ-

ция вспомогательной задачи z''

ограничена сверху). Кроме того, в

случае вогнутости целевой

функции исходной

задачи

z = CX + XTDX, на оптимальном решении задачи (1.148)

должно

иметь место z'' =0.

204

Пример 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