Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мотс 2.pdf
Скачиваний:
66
Добавлен:
24.02.2016
Размер:
1.96 Mб
Скачать

ТЕМА 6. МЕТОДЫ ЛИНЕАРИЗАЦИИ В РЕШЕНИИ ЗАДАЧ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ

Решение нелинейных задач может быть сведено к решению одной или нескольких линейных задач, порожденных исходной.

6.1. Метод линейных комбинаций

Метод линейных комбинаций ориентирован на решение задач, в которых функция цели нелинейная, а все ограничения линейны, т.е.

max{F(x) | Ax B, xi 0, i =

1, n

}.

(6.1)

Пусть функция F(x) и ее частные производные непрерывны. В основе метода лежит представление нелинейной функции F(x) общего вида в виде ряда Тей-

лора до членов первого порядка в окрестности точки xk , где xk – допустимая точка, полученная на k-й итерации. Это соответствует замене F(x) линейной

~ k

функцией F(x) в окрестности x , т.е.

~ k + k T k = k k T k + k T

F(x) F(x ) F(x ) (x x ) F(x ) F(x ) x F(x ) x .

Выражение [F(xk ) F(xk )T xk ] , вычисленное в точке xk , есть некоторое

число. Поэтому для ~нахождения вектора x*, максимизирующего линеаризованную функцию цели F(x) , нужно решать следующую задачу линейного программирования:

max{W

= F(xk )T x | Ax B, x 0, i =

 

}.

(6.2)

1, n

k

i

 

Точка x*, соответствующая оптимальному решению линеаризованной задачи

(6.2), должна быть угловой, т.е. вершиной ОДЗП, а истинное решение x* исходной задачи (6.1) может лежать внутри ОДЗП. Поэтому необходима дополнитель-

ная корректировка

~*

~*

 

 

 

 

 

~

) >Wk (x

k

),

x

. Точка x

должна удовлетворять условию Wk (x

 

 

 

~

)

>F(x

k

). Однако на отрезке (x

k

~

) должна суще-

но это не гарантирует, что F(x

 

 

, x

ствовать такая точка xk +1 , что F(xk +1) > F(xk ) . Координаты этой точки являются

линейной комбинацией координат точек x

k

~*

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

 

и x

 

 

 

95

 

k+1

 

k

~

 

k

~

 

k

 

 

 

x

=(1−α) x

x

*

= x

(x

*

x

), 0

≤ α ≤1.

(6.3)

 

 

 

 

 

 

~*

x

k

) задает на-

По аналогии с методами, рассмотренными ранее, вектор (x

 

правление поиска, а параметр α – величину шага в этом направлении. Величина

α

определяется из условия достижения максимума F[x

k

~*

x

k

)] путем ре-

 

(x

 

шения уравнения Fα = 0 или применением одного из методов одномерного поис-

ка.

Поскольку величина F(xk +1) в общем случае не равна нулю, полученная

точка xk +1 служит точкой линеаризации для построения следующей аппроксимации. Решение продолжается до тех пор, пока последовательные оптимумы не окажутся достаточно близкими, т.е. поиск прекращается при выполнении условия

xk +1 xk

xk +1

≤ ε,

где ε – точность решения задачи.

Вычислительная схема метода известна как алгоритм Франка-Вульфа:

1-й шаг. Задать x0 и точность решения ε, определить составляющие вектора

F(x) .

2-й шаг. Вычислить F(xk ) , где xk – допустимая точка, полученная на k-й итерации (k = 0,1,2,...). Если F(xk ) < ε, прекратить вычисления, в противном случае перейти к 3-му шагу.

3-й шаг. Решить задачу линейного программирования:

 

 

 

 

 

k

 

 

T

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

~*

 

 

 

 

 

 

max{Wk

= F(x

)

x

Ax B, xi

0,i =1,n}. Пусть

– оптимальное решение

 

 

x

этой задачи.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4-й шаг. Найти α

k

,

доставляющее максимум функции F[x

k

~*

x

k

)]

 

 

+ α(x

 

при 0 ≤ α ≤1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5-й шаг. Вычислить

x

k +1

 

= x

k

+ α

k

~*

x

k

) и проверить близость к реше-

 

 

 

 

(x

 

 

 

 

 

нию. Если

 

xk +1 xk

 

 

≤ ε

 

или

 

 

 

F(xk +1) F(xk )

 

 

 

 

< ε,

то прекратить вычис-ления.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xk +1

 

 

 

 

 

 

 

 

 

 

F(xk +1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Иначе перейти к 2-му шагу, полагая k = k +1.

96

Пример 6.1. Найти минимальное значение функции F(x) =(x1 2)2 +(x2 2)2 при ограничениях x1 + x2 3; 10x1 x2 2; x1,2 0 . Начальная точка x0 =[1;0,5].

Первая итерация.

Вычисляется F(x)T =

 

F

,

F

 

= [2x 4; 2x

 

4] и

осуществляется ли-

 

x

 

 

 

 

 

x

2

1

 

2

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

неаризация F(x) относительно точки x0

в соответствии с выражением

W = F(x0 )T x =[2 3] x1

= −2x 3x

2

.

0

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

x2

 

 

 

 

 

Решается задача ЛП:

min{2x1 3x2 x1 + x2 3; 10x1 x2 2; x1,2 0}.

Процедура решения задачи иллюстрируется последовательностью симплекс-

таблиц 6.1 – 6.3

 

 

Т а б л и ц а 6.1

 

 

 

Т а б л и ц а 6.2

 

 

Т а б л и ц а 6.3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

БП

Св.чл

 

 

НП

БП

Свчл

 

НП

БП

Св.чл

 

НП

 

 

 

x1

 

x2

 

 

 

x4

 

x2

 

 

 

x4

 

x3

x3

3

 

1

 

1

 

x3

2,8

0,1

 

1,1

 

x2

2,55

0,09

 

0,91

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x4

-2

 

-10

 

1

 

x1

0,2

-0,1

 

-0,1

 

x1

0,45

0,01

 

0,09

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

W0

0

 

-2

 

-3

 

W0

0,4

0,4

 

-3,2

 

W0

8,55

0,09

 

2,91

~0*

 

Табл.

 

6.3 соответствует оптимальному решению линеаризованной задачи

=[0,45; 2,55]

,

W0 min = −8,55 .

Далее производится

корректировка

найденного

x

решения

 

в

соответствии

с выражением

1

= x

0

+ α

0

~0*

x

0

)

или

 

x

 

 

(x

 

x1

 

1

 

0

 

0,45 1

1

0,55α0

 

 

 

 

 

 

 

 

 

 

 

1

 

=

 

 

 

=

 

.

 

 

 

 

 

 

 

 

 

 

x12

0,5

 

2,55 0,5

0,5 + 2,05α0

 

 

 

 

 

 

 

 

 

 

 

 

 

Осуществляется минимизация F(x)

по параметру α0 . Подставляя x1

или x1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

2

в функцию цели, получим

F (α0 ) = (10,55α0 2)2 +(0,5 + 2,05α0 2)2 = 3,9(α0 )2 7,25α0 +1,25.

97

Тогда αF0 = 7,8α0 7,25 = 0 и α0 = 0,93.

Находим координаты точки x1 и значение F(x1) :

x11 =1 0,55 0,93 = 0,49; x12 = 0,5 + 2,05 0,93 = 2,41.

F(x1) = (0,49 2)2 + (2,41 2)2 = 2,45 .

Графическая интерпретация процедуры решения приведена на рис. 6.1. Здесь линии уровня функции цели F(x) представлены концентрическими окружностя-

ми с центром в точке [2, 2]. Начальная точка

x0

лежит внутри ОДЗП, которая

представлена треугольником АВС. Решению

~0*

=[0,45; 2,55] линеаризованной

x

задачи соответствует вершина В этого треугольника, а скорректированному ре-

шению

1

=[0,49; 2,41]

~0*

и

0

x

– точка, лежащая на прямой, соединяющей точки x

х .

x2

 

 

F1<F2<F3<F4

 

 

3

 

 

F4

 

 

 

 

F3

 

 

 

 

~0*

 

 

 

 

 

 

 

 

 

x

F2

 

 

 

 

B

 

 

F1

x1

2

x*

x2

1

x0

~1*

x

A

1

2

3 C

x1

Рис. 6.1. Графическая интерпретация процедуры решения примера 6.1

Вторая итерация.

Вычисляется F(x1)T =[3,02; 0,82] и осуществляется линеаризация F(x) относительно найденной точки x1 :

98

W

= F(x1)T x =[3,02

0,82]

x1

 

= −3,02x + 0,82x

2

.

1

 

 

 

 

1

 

 

 

 

x2

 

 

 

 

 

 

Решается задача ЛП с функцией цели W1 и исходными ограничениями задачи

 

 

 

 

min{3,02x1 + 0,82x2

 

 

x1 + x2 3; 10x1 x2 2; x1,2 0}.

 

 

 

 

 

 

 

 

Процедура решения иллюстрируется симплекс-таблицами 6.4 – 6.6.

 

 

 

 

Т а б л и ц а 6.4

 

 

 

 

 

 

 

 

Т а б л и ц а 6.5

 

 

 

 

 

 

Т а б л и ц а 6.6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

БП

 

Св.чл

 

НП

 

 

 

 

БП

 

Св.чл

НП

 

 

 

БП

 

Св.чл

НП

 

 

 

x1

 

x2

 

 

 

 

x4

x2

 

 

 

 

x3

 

x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x3

 

3

 

1

 

1

 

 

 

x3

 

2,8

 

0,1

1,1

 

 

 

 

x4

 

0,28

10

 

0,11

x4

 

-2

 

-10

 

1

 

 

 

x1

 

0,2

 

-0,1

-0,1

 

 

 

 

x1

 

3

 

1

 

1

W0

 

0

 

-3,02

 

0,82

 

 

 

W0

 

0,6

 

-0,302

0,52

 

 

 

W0

 

9,06

3,02

 

3,82

~1*

 

Оптимальному решению соответствует табл. 6.6, из которой находим, что

=[3, 0] (вершина С на рис. 6.1) и W1min = −9,06 .

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

~1*

 

 

 

 

Скорректируем найденное решение, определяя x

2

1

1

 

1

 

 

 

 

= x

+ α

(x

x ) или

 

 

 

 

 

 

 

x2

 

0,49

1

3 0,49

0,49

+ 2,51 α1

 

 

 

 

 

 

 

 

 

 

1

 

=

 

 

 

=

 

 

 

 

1

.

 

 

 

 

 

 

 

 

 

 

2

 

2,41

 

 

 

0 2,41

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2

 

 

 

2,412,41 α

 

 

 

 

Подставим эти значения в функцию F(x) и осуществим ее минимизацию по параметру α1:

F(α1) = (0,49 + 2,51α1 2)2 + (2,41 2,41α1 2)2 =12,11(α1)2 9,56α1 + 2,45.

Тогда

F

= 24,22α1 9,56 = 0

и α1 = 0,39.

 

 

1

 

 

 

∂α

 

 

 

 

 

 

Находим координаты точки x2

и значение F(x2 ) :

 

 

 

 

x2 = 0,49 + 2,51 0,39 =1,47;

x2 = 2,41 2,41 0,39 =1,47;

 

 

 

1

 

2

 

 

 

 

 

 

F (x1 ) = (1,47 2)2

+ (1,47 2)2 = 0,56 .

 

 

2

 

 

 

~

1

Точка x

лежит на прямой, соединяющей x

1*

 

 

и x .

99