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

3172

.pdf
Скачиваний:
6
Добавлен:
15.11.2022
Размер:
3.23 Mб
Скачать

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ij x j

xn i

i ,

i 1, m

 

 

 

 

 

 

 

 

j 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(5.1.3)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x j

0,

j

 

1, n

m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

j x j

0,

 

j 1, n

 

i xn i

0 i 1, m,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

0,

i

1, m,

 

 

j

0, j

1, n .

 

 

Решение

(x1, x2 ,...,xn+m , 1,...,

m ,

1,..., n )

данной системы

n m линейных

уравнений

 

содержит,

по крайней

мере n

m

нулевых координат.

Задачу нахождения

решения системы

без

 

 

____

 

 

 

 

 

 

 

 

 

____

 

 

 

 

 

 

 

 

условий i xn i

0,

i=1,m и

 

 

j xj

0,

j=1,n

можно свести к

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

z1 z2

...

 

z n

z n 1

...

z n m

min

n q ij x j

n

 

 

 

 

 

 

 

 

i

ij

j

z j

b j , j 1, n

i 1

i 1

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ij x j

x n i

 

z n i

i , i 1, m

 

 

 

j 1

 

 

 

 

 

 

 

 

 

 

x j

0, z j

0

 

j

1, n

m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

0,

i

1, m,

j

0,

j

1, n .

При реализации метода искусственного базиса следует

учитывать условия

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

_____

 

 

 

 

 

____

ш xn i

0,

i=1,m,

 

 

j xj

0,

 

j=1,n,

т.е. не включать в базисные переменные одновременно

 

i и xn i с

одним и тем же номером i

и переменные

j

и xj с одинаковым

номером j .

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример. Решить задачу квадратичного программирования:

x 2

2x x

2

 

2x 2

2x

 

6x

2

 

min

1

 

1

 

2

1

 

 

 

 

133

x1

x2

2

 

x1 2x2 2

x1

0, x2

0.

Решение. Целевая функция данной задачи является

квадратичной с матрицей

 

A

1

1

1

2

 

Так как определители главных миноров данной матрицы

1

1,

2

1

положительны, то данная матрица является

 

 

 

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

2x1

2x2

1

2

1

2

 

2x1

4x2

1

2 2

2

6

x1

x2

x3

2

 

 

 

 

x1

2x2

x4

2

 

 

 

x1 , x2 , x3 , x4 , 1 ,

2 , 1 ,

2

0

1x1

2 x2

1x3

2 x4

0.

 

 

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

x5

x6

max

 

 

 

2x1

2x2

1

2

1 x5

2

2x1

4x2

1

2 2

2

x6 6

x1 x2 x3 2

134

 

 

 

 

x1

 

2x2

x4

2

 

 

 

 

 

 

 

 

 

 

 

x1, x2 , x3 , x4 ,

1,

2 , 1,

2

 

0,

 

 

 

взяв

 

в

качестве

первоначального

базисного

множества

J

{5, 6,3, 4}.. Приведем последовательность симплексных таблиц.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cB

 

J

xB

x1

 

 

x2

 

x3

x4

 

 

λ1

 

 

λ2

μ1

μ2

-1

 

5

2

2

 

 

-2

 

0

0

 

1

 

-1

-1

0

-1

 

6

6

-2

 

 

4

 

0

0

 

1

 

2

0

-1

0

 

3

2

1

 

 

1

 

1

0

 

0

 

0

0

0

0

 

4

2

-1

 

 

2

 

0

1

 

0

 

0

0

0

 

 

 

-8

0

 

 

-2

 

0

0

 

 

-2

 

 

-1

1

1

-1

 

5

4

1

 

 

0

 

0

1

 

1

 

-1

-1

0

-1

 

6

2

0

 

 

0

 

0

-2

 

1

 

2

0

1

0

 

3

1

3/2

 

 

0

 

1

-1/2

 

0

 

0

0

0

0

 

2

1

-1/2

 

1

 

0

½

 

0

 

0

0

0

 

 

 

-6

-1

 

 

0

 

0

1

 

 

-2

 

 

-1

1

1

-1

 

5

10/3

0

 

 

0

 

-2/3

4/3

 

1

 

-1

-1

0

-1

 

6

2

0

 

 

0

 

0

-2

 

 

1

 

2

0

-1

0

 

1

2/3

1

 

 

0

 

2/3

-1/3

 

0

 

0

0

0

0

 

2

4/3

0

 

 

1

 

1/3

1/3

 

0

 

0

0

0

 

 

 

-16/3

0

 

 

0

 

2/3

2/3

 

 

-2

 

 

-1

1

1

-1

 

5

4/3

0

 

 

0

 

-2/3

10/3

 

0

 

-3

-1

1

0

 

λ1

2

0

 

 

0

 

0

-2

 

1

 

2

0

-1

0

 

1

2/3

1

 

 

0

 

2/3

-1/3

 

0

 

0

0

0

0

 

2

4/3

0

 

 

1

 

1/3

1/3

 

0

 

0

0

0

 

 

 

-4/3

0

 

 

0

 

2/3

-10/3

 

 

0

 

 

3

1

-1

0

 

4

4/10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

λ1

28/10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

1

4/5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

2

6/5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

 

 

0

 

0

0

 

 

0

 

 

0

0

0

В последней симплексной таблице мы получили допустимое базисное решение

135

x , x

 

, x

 

, x

 

,

 

,

 

,

 

,

 

4

,

6

,0,

2

,

14

,0,0,0

 

2

3

4

1

2

1

2

 

 

 

 

 

1

 

 

 

 

 

 

5

5

5

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Поэтому искомое решение задачи квадратичного программирования

имеет вид x*

4

,

6

с значением целевой функции

5

5

 

 

 

f * f (x* )

36

.

 

 

 

5

 

 

 

 

 

 

 

 

Задачи для самостоятельного решения

 

1.

Решить

следующие

задачи

квадратичного

программирования:

 

 

 

5.1.1)

 

(x 4)2

(x 2)2

min

 

 

1

2

 

 

x1 x2 3 x1 2x2 4 x1 0, x2 0

5.1.2) 2x1 3x2 2x22 max

x1 4x2 4 x1 x2 2 x1 0, x2 0

5.1.3) 20x1 x22 max

x1 x2 0

x1 2x2 2 x1 0, x2 0

136

5.2. Задача выпуклого программирования с линейной целевой функцией

5.2.1. Постановка задачи выпуклого программирования с линейной целевой функцией

Пусть имеется задача выпуклого программирования с линейной целевой функцией:

cxT

max

 

 

 

 

 

____

 

(5.2.1)

: fi (x) bi ,

i=1,m.

 

 

З а м е ч а н и е

1 .

Любая

задача

выпуклого

программирования может быть записана в виде (5.2.1). Действительно, если есть задача с нелинейной целевой

функцией

 

 

 

 

 

 

 

 

 

 

 

(x)

 

max

 

 

 

 

 

 

 

 

 

_____

 

 

 

fi (x)

bi , i=1,m,

 

 

то она может быть переписана следующим образом:

 

 

 

 

max

 

 

 

 

 

 

 

 

(x)

0,

 

 

 

 

 

 

 

 

 

 

_____

 

 

 

fi (x)

 

bi ,

i=1,m.

 

 

Для решения задач вида (5.2.1) применяется метод секущих

плоскостей,

основанный

на

приближении

всех нелинейных

функций

fi (x) линейными

с использованием

разложения по

формуле Тейлора:

 

 

 

 

 

 

 

 

 

fi (x)

 

fi (x0 )

 

fi (x0 )(x x0 )T .

 

Рассмотрим задачу

 

 

 

 

 

 

cxT

 

 

max

 

 

 

 

 

 

 

 

(x0 )

 

(x0 )(x x0 )T

 

_____ (5.2.2)

 

1

:

f

f

b ,

i=1,m .

 

 

i

 

 

i

 

i

 

137

Если множество 1 ограничено, то задача (5.2.2) всегда разрешима (в противном случае может оказаться, что

sup cxT

 

 

,

 

 

 

1

 

 

 

 

 

даже если задача (5.2.1) разрешима).

Так как функции

fi (x)

 

выпуклы вниз, справедливо

неравенство

 

 

 

 

 

 

f

(x)

f

(x0 )

f

(x0 )(x x0 )T b .

i

 

i

 

 

i

i

Следовательно

 

 

1. . Пусть x1 - решение задачи (5.2.2).

тогда

 

 

 

 

 

 

1)если точка x1 допустима в задаче (5.2.1), то она является оптимальным решением этой задачи (поскольку

это экстремум той же целевой функции на более широком множестве);

2) если x1 , то в задаче (5.2.2) добавляются новые линейные ограничения:

f

i

(x1 )

 

f

i

(x1 )(x x1 )T

b , i :{ f

i

(x1 ) b }

.

 

 

 

 

 

 

i

 

 

i

Эти ограничения обладают следующими свойствами:

 

a) Точка

x1

не удовлетворяет этим ограничениям;

 

 

b) во всех точках множества

они выполняются.

 

 

Таким образом,

получаем

новое

множество

 

2

, такое

 

 

 

 

 

 

 

 

 

 

 

 

 

что

 

2

1. Далее итерационный процесс повторяется.

Доказано,

что

генерируемая

таким

образом

последовательность

{ xk } решений ЗЛП сходится к оптимальной точке исходной задачи. Рассмотрим алгоритм.

138

5.2.2. Метод секущих плоскостей.

Алгоритм метода секущих плоскостей

Шаг 1. Задать x0

(не обязательно допустимое),

(точность

 

попадания в допустимую область).

 

Шаг 2.

Положить k 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

____

 

1

{x : f

i

(x0 )

f

 

(x0 )(x

x0 )T b , i=1,m}.

 

 

 

 

 

 

i

 

 

i

 

Шаг 3.

Найти xk - решение задачи линейного

 

 

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

 

 

 

 

 

 

 

cxT

max

 

 

 

 

 

 

 

 

x

 

k .

 

 

 

 

 

 

 

 

 

 

Шаг 4.

Если

 

 

i : f

(xk )

 

 

b

, то останов x* xk .

 

 

 

 

 

 

i

 

 

 

i

 

 

 

Шаг 5.

Положить

 

 

 

 

 

 

 

 

 

 

 

 

л 1

 

k

{x : f

i

(xk )

f

(xk )(x xk )T

b ,

 

 

 

 

 

 

 

i

 

i

 

i : f

(xk )

 

 

b };

 

 

 

 

 

 

 

 

i

 

 

 

i

 

 

 

 

 

 

 

k=k+1 . Перейти к шагу 3.

Пример 1. Решить методом секущих плоскостей задачу

139

(x) x1 x2 max f1 (x) 2x1 x22 1,

f

2

(x)

0.8x2

2x 9,

 

 

 

 

 

1

2

 

 

x1

, x2

0.

 

 

 

 

Решение.

Выберем

x0 (5, 4).

Вычислим

f1 (x) ( 2; 2x2 ),

 

f2 (x)

(1.6x1; 2). Тогда

 

f (x)

6 (

2;8)(x

5; x

4)T

2x

8x

16,

1

 

 

 

1

2

 

1

2

 

f

2

(x)

28

(8; 2)(x

5; x

4)T

8x

2x

20.

 

 

 

 

1

2

 

1

2

 

Решим графически задачу линейного программирования:

x1 x2

max

 

 

 

 

 

 

 

2x1

8x2

15

 

 

 

 

 

8x1

2x2

29

1

 

 

 

 

 

 

 

 

 

x1, x2

0

 

 

 

 

 

 

 

Ее решением является точка x1

(2.97; 2.62).

 

 

 

 

 

 

 

 

 

140

 

 

 

 

 

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

0.92

( 2; 5.24)(x

 

2.97; x

2

2.62)T

15

 

 

1

 

 

 

 

12.3

(4.75; 2)(x

 

2.97; x

2

 

2.62)T

9

 

 

1

 

 

 

 

 

Добавляем эти ограничения к задаче линейного

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

и

находим

 

 

следующее

решение

x2 (2.52; 2.05), которое уже является хорошим приближением к

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

поэтому положим x* x2.

Пример 2. Решить методом секущих плоскостей задачу

(x)

x1

 

x2

max

f (x)

x

2

x2

9.

1

1

2

 

141

Решение.

Выберем

x0

(2, 3).

Вычислим

f1 (x)

(2x1; 2x2 ). Тогда

 

 

 

 

 

f (x)

13 (4;6)(x

2; x

3)T

4x

6x

13.

 

1

1

2

 

1

2

 

 

 

Решим графически задачу линейного программирования:

 

x1

x2

max

 

 

 

 

 

1 :

4x1

6x2

22.

 

 

 

Из графика видно, что в направлении вектора-градиента целевой

функции допустимое множество не ограничено, sup (x)

,

 

 

 

 

 

1

 

т.е. ЗЛП решения не имеет. Однако исходная задача разрешима,

 

x*

3

 

,

3

 

.

 

 

 

 

 

 

 

 

2

2

 

 

 

 

 

 

 

Этот

пример

иллюстрирует

существенность

требования

ограниченности множества

1.

 

 

5.3. Задача выпуклого программирования с линейными ограничениями. Метод линеаризации (Франка Вулфа)

Рассмотрим задачу минимизации выпуклой нелинейной функции на множестве, задаваемом линейными ограничениями:

f (x) min

Ax b x 0

Метод линеаризации основан на замене в окрестности точки

xk нелинейной функции f (x)

линейной функцией c xT . . Из

 

k

формулы Тейлора следует, что

 

f (x) f (x k )

f (x k )(x x k )T .

142

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]