Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Математические основы теории систем_1 / Лекции / Павлова А.В. Математические основа теории систем. Лекции Часть 2.pdf
Скачиваний:
281
Добавлен:
02.06.2015
Размер:
1.3 Mб
Скачать

Значение a1 принадлежит интервалу, найденному в п. 5, поэтому для расчета координат точки х2 принимается a1 = 0,6 :

x12 = 2,568 + 0,71× 0,6 = 2,994 » 3;

x22 = 1,425 - 0,71× 0,6 = 0,999 » 1.

Вычисляются составляющие вектора градиента в точке х2:

ÑF (x2 )T = [- 4 × 3 +18 - 2 ×1;-2 × 3 - 2 ×1 +12]=[4; 4].

Направление вектора ÑF (x2 ) перпендикулярно направлению S1 , следовательно, найденная точка х2 = [3; 1] обеспечивает максимум функции F(x) с учетом ограничений на переменные: Fmax = 41.

В пакете MATLAB решение задач нелинейного программирования реализуется с помощью программ QP и СONSTR.

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

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

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

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

max{F (x) | Ax £ B, xi ³ 0, i = 1, n}.

(6.1)

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

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

~ в окрестности xk , т.е.

F (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 .

91

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

ло. Поэтому для нахождения вектора x* , максимизирующего линеаризованную функ-

~

цию цели F (x) , нужно решать следующую задачу линейного программирования:

max{W

= ÑF (xk )T x | Ax £ B, x

i

³ 0, i =

1, n

}.

(6.2)

k

 

 

 

 

 

Точка 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

 

 

 

 

 

k+1

 

 

 

 

k

 

 

~

 

 

k

 

~

 

k

 

 

 

 

 

 

 

 

 

 

 

 

x

= (1-a) x

+ax

*

= x

+a(x

*

- x

), 0 £ a £ 1.

 

 

 

(6.3)

 

 

 

 

 

 

 

 

 

 

 

По аналогии

с

методами, рассмотренными

 

 

 

 

 

 

 

~*

- x

k

) задает

ранее, вектор (x

 

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

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

k

~*

- x

k

)] путем реше-

 

+ a(x

 

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

¶a

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

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

xk +1 - xk

£ e,

xk +1

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

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

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

ÑF (x) .

2-й шаг. Вычислить ÑF (xk ) , где xk – допустимая точка, полученная на k-й

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

92

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

 

 

 

 

 

 

 

 

 

 

 

 

 

k

 

T

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

~*

 

 

 

 

 

 

 

 

 

max{Wk

= ÑF (x

)

x

 

Ax £ B, xi

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

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

решение

 

 

 

x

этой задачи.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

k

,

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

k

~*

- x

k

)] при

 

 

+ a(x

 

0 £ a £1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

k +1

= x

k

+ a

k

~*

- x

k

) и проверить близость к решению.

 

 

 

 

 

 

(x

 

Если

 

 

 

xk +1 - xk

 

 

 

 

 

или

 

 

 

 

 

F (xk +1) - F (xk )

 

 

 

 

 

< e,

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

Иначе

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

£ e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xk +1

 

 

 

 

 

 

 

 

 

 

 

 

 

F (xk +1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример 6.1.

Найти минимальное значение функции F(x) = (x -2)2

+(x -2)2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

2

при ограничениях

x

+ x

2

£

3; 10x

 

 

 

- x

2

 

³ 2;

x

 

³ 0 . Начальная точка x0 = [1; 0,5].

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

1,2

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вычисляется

Ñ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

93

~0*

Табл.

6.3

 

соответствует

оптимальному

 

решению

линеаризованной

задачи

= [0,45; 2,55] , W0 min = -8,55 .

 

Далее

производится

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

найденного

x

 

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

 

 

 

 

 

 

 

 

 

 

1

0

 

 

0

~0*

 

0

 

éx1

ù

é 1

ù

 

0

é 0,45 -1

ù

é 1- 0,55a0

ù

 

 

 

x = x

 

 

+ a

 

(x

- x

 

) или

ê

 

ú

= ê

ú

+ a

 

ê

ú

= ê

ú .

 

 

 

 

 

 

 

 

 

 

 

 

 

ëx12 û

ë0,5û

 

 

ë2,55 - 0,5û

ë0,5 + 2,05a0

û

 

 

 

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

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

или x1

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

 

 

 

 

 

 

 

 

 

 

1

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

Тогда

 

 

F

 

= 7,8a0 - 7,25 = 0 и a0 = 0,93 .

 

 

 

 

 

 

 

 

 

¶a0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

x1

=1 - 0,55 × 0,93 = 0,49;

x1 = 0,5 + 2,05 × 0,93 = 2,41.

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

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

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

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

94

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

окружностями

с

центром в

точке[2, 2].

Начальная точка x0

 

лежит

внутри

ОДЗП, которая

представлена

треугольником АВС. Решению

~0*

= [0,45; 2,55]

x

 

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

а скор-

ректированному решению x1 = [0,49; 2,41]

– точка, лежащая на прямой,

соеди-

~0*

0

.

 

 

 

 

 

 

няющей точки x

и х

 

 

 

 

 

 

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

 

 

Вычисляется ÑF (x1)T = [-3,02; 0,82]

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

 

линеаризацияF (x)

относительно найденной точки x1 :

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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 + a

 

(x

- x ) или

 

 

 

 

 

 

 

 

éx2

ù

é0,49ù

é3 - 0,49ù

é0,49 + 2,51 a1 ù

 

 

 

 

 

 

 

 

 

 

 

 

ê 1

ú

= ê

ú

+ a1 ê

-

ú

= ê

 

 

 

 

 

 

 

ú .

 

 

 

 

 

 

 

 

 

 

 

 

ëx22

û

ë2,41û

ë0

2,41û

ë2,41- 2,41 a1

û

 

 

 

 

 

 

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

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

95