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

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

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

4. Преобразуем ограничения-неравенства в ограниченияравенства путем введения искусственных переменных:

2x1 2x2 + λ1 − λ2 v1 = 2,

 

 

 

 

 

4x2 2x1 + λ1 + 2λ2 v2 = 6,

 

 

 

 

 

x1 + x2 + w1 = 2,

 

 

 

 

 

 

 

 

 

+ 2x2

+ w2

= 2,

 

 

 

 

 

 

x1

 

 

 

 

 

 

 

 

 

= 0,

 

 

 

 

 

 

 

 

x1v1

 

 

 

 

 

 

 

 

x2v2

= 0,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

λ1w1 = 0,

 

 

 

 

 

 

 

 

λ2 w2 = 0.

 

 

 

 

 

 

 

 

5. Воспользуемся методом искусственного базиса для приведе-

ния задачи к каноническому виду:

 

 

 

 

 

2x1 2x2 + λ1 − λ2 v1 + w3 = 2,

 

 

 

 

4x2 2x1 + λ1 + 2λ2 v2 + w4 = 6,

 

 

 

 

 

+ x2 + w1 = 2,

 

 

 

 

 

 

x1

 

 

 

 

 

 

x + 2x

+ w

= 2,

 

 

 

 

 

 

 

1

2

2

 

 

 

 

 

 

 

Q = w3 + w4 = 8 2x2 − λ2 + v1 + v2 2λ1 min.

 

 

Составим симплекс-таблицу:

 

 

 

 

 

 

 

 

 

х1

х2

λ1

λ2

v1

v2

 

 

 

 

 

 

 

 

 

 

 

w3

2

–2

1

–1

–1

0

2

 

 

 

 

w4

–2

4

1

2

0

–1

6

 

 

 

 

w1

1

1

0

0

0

0

2

 

 

 

 

w2

–1

2

0

0

0

0

2

 

 

 

 

 

0

–2

–2

–1

1

1

–8

 

 

 

 

 

 

 

 

 

 

 

 

При переходе от одной симплекс-таблицы к другой необходимо проверять выполнение ограничений-равенств. В данном случае λ1 и λ2 нельзя переводить из свободных в базисные.

Решение заканчивается, когда w3 = w4 = 0 и в правом нижнем углу таблицы – 0.

Ответ: х1 = 0,8, х2 = 1,2.

101

Задания для самостоятельной работы

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

1. f(x) = x12 + x22 – 10x1 – 15x2 →min, 2. f(x) = x12+x22– 20x1 – 30x2 →min,

2x1 + 3x 2 ≤ 13,

2x1 + x2 ≤ 10, x1, x2≥ 0

3. f(x) = x12 – 2x1 x2 →min, 2x1 + 3x 2 ≤ 6,

2x1 + x2 ≤ 4, x1, x2 ≥ 0

5. f(x) = x12 + x22 – 10x1 – 8x2 →min, 2x1 + 3x 2 + x 3 ≤ 13,

x1, x2, x3 ≥ 0

7. f(x) = x12 + x22 + x32 + x2 – 2x3 →min, x1 + x 2 + 2x 3 ≤ 6,

3x1 + 2x 2 + x 3 ≤ 12, x1, x2, x3 ≥ 0

9. f(x) = x12 + x22 x1 – 2x3 → min, x1 x 2 + 2x 3 = 6,

x1, x2, x3 ≥ 0

5x1 + 13x 2 ≤ 51,

15x1 + 7x2 ≤ 107, x1, x 2 ≥ 0

4.f(x) = x12 + x22–10x1–20x2 →min, 9x1 + 8x 2 ≤ 72,

x1 + 2x2 ≤ 10, x1, x2 ≥ 0

6. f(x) = 3x12+x22+3x1 – 2x2 →min, x1 + 3x 2 + x 3 + x 4 = 16,

3x1 x 2 x 3 + x 4 = 4, x1, x2, x3 , x 4 ≥ 0

8. f(x) = x22 + 2x1x3 x3 → min, x1 + x 2 = 4,

x 2 + x 3 = 8,

x1, x2, x3 , x 4 ≥ 0

3.7. Метод условного градиента

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

Рассмотрим сущность метода на примере функции двух переменных:

102

Рис. 3.7. Метод условного градиента

Пусть X i – приближение к экстремуму на i-м шаге. В точке X i находим градиент. Затем целевая функция заменяется новой функцией, коэффициентами которой являются координаты вектора градиента в точке X i . Эта функция является линейной. Решив новую задачу линейного программирования, получаем точку Z i . Затем делается шаг в направлении отрезка Z i X i . В результате находится новая точка X i+1 .

Постановка задачи

1.f(x1, x2,…xn) min(max).

2.gi(x1, x2,…xn) 0, i = 1, m.

3.X 0 = (x10, x20,…xn0) – начальнаяточкаприближениякэкстремуму.

4.ε – точность нахождения экстремума.

5. x1, x2,…xn 0.

(3.25)

Алгоритм метода

Алгоритм рассматривается для i-го шага приближения к экстремуму.

1.

Находим grad f = (

f

,

f

,...,

f

) .

 

 

 

x1

x2

 

 

 

 

 

 

 

 

 

xn

 

 

 

2.

Составляем вспомогательную функцию Z:

 

 

Z = x1

f

 

 

X i + ... + xn

f

X i .

(3.26)

 

x1

 

 

 

 

 

 

 

 

 

 

 

xn

 

 

 

 

 

 

 

 

 

 

 

 

103

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

 

Z min (max),

 

gi (x1, x2,…xn ) 0, i = 1, m

(3.27)

x1, x2,…xn 0.

Положим, решением задачи линейного программирования является вектор:

Z i = (z1i , z2i ,..., zni ) , где zij – значения переменных xj на i-м шаге приближения к экстремуму (решение задачи (3.27)).

4. Находим новую точку приближения к экстремуму:

X i+1 = X i

x1i+1

= x1i

 

 

...

 

i+1

i

xn

= xn

5. Выбор шага α.

 

Возможны два варианта:

 

+α(Z i X i ).

+α(z1i x1i ),

(3.28)

+ α(zni xni ).

фиксированный шаг (неизменяемый на протяжении всего решения);

вычитаемый на каждой итерации (аналогичен методу наискорейшего спуска).

6. Проверка критерия окончания счета.

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

Пример

f (x1, x2 ) = 2x1 + 4x2 x12 x22 max,

x1

+ 2x2

8,

2x1 x2

12,

 

, x2 0.

x1

 

 

0

= (0,0), ε = 0,01.

X

104

Решение:

grad f (x1, x2 ) = (

f

,

f

) = (2 2x1,4 4x2 ),

x1

 

 

 

 

 

 

x2

 

 

 

 

Z = x

f

 

=0, x2 =0

+ x

f

 

=0, x2 =0

,

x1

x2

1

2

 

 

 

x1

 

 

x1

 

Z = 2x1 + 4x2 max,

 

 

 

 

x1 + 2x2 8,

 

 

 

 

 

 

 

 

 

2x1 x2 8,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1, x2 0.

 

 

 

 

 

 

 

 

 

Решив

задачу

линейного

программирования, получаем

Z 0 = (0;4) .

Далее находим выражение для подсчета координат новой точки приближения к экстремуму:

x11 = x10 + α1(z10 x10) = 0 + α1 0 =0, x21 = x20 + α1(z20 x20) = 0 + α1 4 = 4α1.

Для нахождения величины шага подставим x11 и x21 в функцию f: f(α1) = 16α1 – 32α12 ,

 

f

= 16 64α1 = 0,

α1 = 0,25,

 

 

 

∂α1

 

 

 

 

 

 

 

x11 = 0, x21 = 4 0,25 = 1.

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

окончания счета:

 

 

 

 

 

= 2 > ε ,

f (X

1 ) f (X 0 )

следовательно, требуется выполнить еще хотя бы один шаг.

Задания для самостоятельной работы

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

Дано: ε = 0,05, xo = (0; 0).

1. f(x) = x12 + 2x22 – 16x1 – 20 x2 → min, 2. f(x) = x12+x22–18x1–20x2→min,

2x1

+ 5x2 ≤ 40,

x1 + x2 ≤ 15,

2x1

+ x2 ≤ 16,

2x1

+ 5x2 ≤ 60,

x1, x2 ≥ 0

3x1

+ x2 ≤ 30,

 

 

x1, x2 ≥ 0

105

3. f(x) = (x1 – 16)2 + (x2 – 9)2 →min, 5x1 + 2x2 ≤ 60,

x1 + x2 ≤ 15, x1 + 4x2 ≤ 40, x1, x2 ≥ 0

4. f(x) = x12 + x22 x1x2 – 3x2→min, x1 + x2 ≤ 4,

x1, x2 ≥ 0

5. f(x) = x12 + x22 – 4x1 – 8x2 → min,

6. f(x) = x12+ 2x1 x2→min,

6x1 + 11x2 + x3 + 2x4 = 96,

x1

+ x2 ≤ 15,

–2x1 + 3x2 – 2x3 + x4 = 8,

x1

+ 3x2

+ x3 = 30,

x1, x2, x3, x4 ≥ 0

5x1 + 3x2 + x4 = 60,

 

x1, x2, x3, x4 ≥ 0

7. f(x) = x12 + 2x22 – 6x1 – 32x2 → min,

8. f(x) = 2x12 + 3x1 + 2x2 + x3

→min,

 

 

+ 2x3 ≤ 15,

3x1 + x2 + x3 = 30,

x1

+ 3x2

x1 + x2 + x4 = 15,

3x1 + x2

+ x3 ≤ 20,

2x1 + 5x2 + x5 = 60,

x1, x2, x3 ≥ 0

x1, x2, x3, x4, x5 ≥ 0

 

 

 

9. f(x) = x12 + x22 + x32 + x1 – 2x2 → min 10. f(x) = x12–2x1 +2x2 +x3 →min,

x1 + 2x2

+ 3x3 ≤ 18,

x1 + 3x2 + 2x3 ≤ 7,

2x1 + x2

+ x3 ≤ 20,

3x1 + x2 + x3 ≤ 3,

x1, x2, x3 ≥ 0

x1, x2, x3 ≥ 0

3.8. Метод штрафных функций

 

Постановка задачи.

 

1. f(x1, x2,…xn) min(max).

 

2. gi(x1, x2,…xn) 0, i = 1, m.

(3.29)

3.X 0 = (x10, x20,…xn 0) – начальная точка приближения к экстре-

муму,

4.ε – точность нахождения экстремума.

5.x1, x2,…xn 0, и целевая функция, и ограничения – многочлены любой степени, т.е. данный метод является универсальным, для решения задач нелинейного программирования.

106

Суть метода.

Вводится искусственная целевая функция F = f(x1, x2,…xn) +

+H(x1, x2,…xn).

Н– штрафная функция, определенная следующим образом (для

определенности ищется минимум целевой функции):

Н= 0 внутри области допустимых решений,

Н> 0 вне области допустимых решений.

Вследствие такого задания Н безусловный экстремум функции F совпадет с условным экстремумом функции f.

X 2

X 3

X 0 X 1

Рис. 3.8. Графическая иллюстрация метода штрафных функций

В точках X 0 и X 1 Н = 0. В точке X 2 Н > 0, следовательно, значение F резко увеличится. Но поскольку функцию F требуется минимизировать, то следующая итерация возвращает текущую точку в область допустимых решений.

Выбор штрафной функции.

m

 

0,

 

gi

0,

H = αi gi ,

αi

=

,

gi

(3.30)

i=1

 

αi

< 0.

Безусловный экстремум функции F находится любым известным методом.

Пример

 

 

 

 

 

f (x1, x2 ) = − x12 x22

max,

 

 

2

(x2

7)

2

0,

18 (x1 7)

 

 

 

2

 

 

 

 

 

1

 

 

 

 

 

x

, x ,

 

 

 

 

 

 

 

0

= (6,7), ε = 0,1.

 

 

X

 

 

107

Решение:

F= f (x1, x2 ) + α g(x1, x2 ) =

=x12 x22 + α(18 (x1 7)2 (x2 7)2 ) max.

 

 

2

 

 

2

 

0,

18 (x1 7)

(x2 7)

0,

 

 

α =

18 (x 7)2

(x

7)2

< 0.

1,9,

 

1

 

 

2

 

 

(Шаг выбран произвольным, но в данной задаче он больше нуля, так как интегральная функция H = α·g должна уменьшать ЦФ за областью допустимых решений).

Для простоты шаг в направлении градиента возьмем постоянным

λ = 0,1.

X 0 = (6, 7), проверим выполнение ограничения для этой точки: g(6, 7) > 0, следовательно, α = 0,

1

0

 

f

 

0

 

 

x1

= x1

+ λ

 

 

X

 

 

= 4,8,

x1

 

 

 

 

 

 

 

 

1

0

 

f

 

0

 

 

x2

= x2

+ λ

 

 

X

 

 

= 5,

x2

 

 

 

 

 

 

 

 

 

 

 

 

1 = (4,8; 5,6),

 

 

 

 

g(4,8; 5,6) > 0, α = 0,

...,

X

 

 

 

 

 

 

2

= (3,84; 4,48),

 

 

 

g = (3,84; 4,48) > 0, α = 0, ...,

X

 

 

 

 

3 = (3,072; 3,584),

 

 

g = (3,072; 3,584) < 0,

α = 1,9,

X

 

4

3

 

f

 

3

+ α

 

g

 

3

 

 

x1

= x1

+ λ

 

 

X

 

 

 

 

X

 

 

= 3,950,

 

x1

 

x1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

3

 

f

 

3

+ α

 

g

 

 

3

 

 

 

x2

= x2

+ λ

 

 

X

 

 

 

 

X

 

 

= 4,165,

 

x2

 

 

x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

= (3,950; 4,165),

 

 

g = (3,072; 3,584) > 0, ...

X

 

 

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

108

4. ВАРИАЦИОННОЕ ИСЧИСЛЕНИЕ

Вариационное исчисление – это математическая дисциплина, занимающаяся поиском экстремума функционалов [5].

Функционал – выражение, зависящее от функции (например, определенный интеграл).

Пример

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

Составим математическое описание задачи.

Изменение кинетической энергии теларавноработесилытяжести:

mg y = ∆(

mV 2

), V0

= 0, mg y =

mV 2

, V = 2gy.

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

+ (dy)

2

 

1+ (

dy

)2 dx

 

 

 

ds

 

 

 

ds

 

 

ds

 

(dx)

 

 

 

V =

 

dt =

 

=

 

=

 

 

=

 

dx

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

V

 

2gy

 

2gy

 

 

2gy

 

 

dt

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

x1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t =

 

1+ y2 dx.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2g y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ищем некоторую функцию у(х). Этой функции будет поставлено в соответствие некоторое число – значение t для этой функции.

Задача – найти такую функцию у(х), при которой функционал (значение t) достигает минимума.

4.1. Формула Эйлера–Лагранжа

Дана следующая задача:

x

 

 

I ( y) = 1

f (x, y, y)dx – функционал,

(4.1)

x0

начальные условия: y(x0) = y0, y(x1) = y1.

109

Требуется найти такую функцию у(х), проходящую через точки (x0, y0) и (x1, y1), при которой данный функционал достигает максимума.

Решим задачу в общем виде.

Предположим, что функция у(х) доставляет экстремум функционалу. Зададим функции у(х) приращение δу такое, при котором δу = 0

в точках х0 и х1 и δу 0 в других точках. Найдем приращение функционала:

x

x

 

dI ( y) = 1

f (x, y + δy, y′ + δy)dx 1

f (x, y, y)dx.

x0

x0

 

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

f (x, y

y, y

y)

=

f (x, y, y)

+

f

y

f

y

+

R ,

 

y

 

+ δ

+ δ

 

y δ +

δ

1

где R1 – остаток. Тогда, используя (4.3),

x

f

x

f

x

x

 

dI ( y) = 1

δydx + 1

δydx + 1

Rndx = δI + 1

Rndx.

y

y

x

x

x

x

 

0

 

0

 

0

0

 

(4.2)

(4.3)

Приращение функции в точке экстремума равно нулю. По аналогии, если функция у(х) доставляет экстремум функционалу, то δI = 0. δI – главная часть приращения (первая вариация функционала).

δI = 0, следовательно,

x

f

x

f

 

 

δI = 1

δy dx + 1

δydx = 0.

(4.4)

y

y

x

x

 

 

0

 

0

 

 

 

Второй интеграл уравнения (4.4) проинтегрируем по частям:

x1

 

f

ydx

 

 

{u

 

 

f

, du

 

(

f

)

dx, dv

 

ydx

x

 

y

 

 

 

 

y

 

y

 

 

δ

=

 

=

 

 

=

 

x

 

 

= δ

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

[

d( y2 y1 )

]dx

=

( y)dx

=

d( y), v

y}

=

f

y

 

y

 

 

 

dx

 

 

 

 

δ

x

 

δ

 

 

= δ

δ

= [(

y )2 (y )1 ]dx =

 

x

 

x

 

 

 

x1

x1

 

f

 

 

 

 

(

)

 

ydx.

 

 

 

x0

 

 

y

x

 

δ

 

x0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

110