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

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

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

2.Накаждом шаге, кроменулевого, функциявычисляется одинраз.

3.Высокая производительность. (Для нахождения экстремума с

точностью ε = 1 % требуется вычислить функцию 11 раз.)

Пример 1

Найти минимум унимодальной функции f(x) = х2 – 5х, [а0, b0] = = [2;4], ε = 0,1.

Решение:

1. y0 = a0 + 3 5 (b0 a0 ) = 2 + 0,382 2 = 2,764, 2

Z0 = a0 + b0 y0 = 3,236.

2.f ( y0 ) = −6,180, f (z0 ) = −5,708 – отбрасываем правую часть интервала неопределенности.

3.a1 = a0 = 2,

b1 = z0 = 3,236,

Z1 = y0 = 2,764,

 

 

y1 = a1 + b1 z1 = 2,472.

 

 

4.

l1 = b1 a1 = 1,236 > 2ε,

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

требуется выполнить

еще шаг.

 

 

 

 

 

 

5.

f (z1 ) = f ( y0 ) = −6,236,

f ( y1 ) = −6,249...

 

Пример 2

 

 

 

+ e2x , [a0 ,b0 ] = [0,1],

Найти

минимум функции, f = 1+ x2

ε = 0,1.

 

 

 

 

 

 

Решение:

 

 

 

 

y0

= a0

+

3

5

(b0 a0 ) = 0,382,

 

 

 

 

 

 

2

 

 

 

 

z0

= a0 + b0 Y0 = 0,618.

 

 

f ( y0 ) = 1,54,

f (z0 ) = 1,47

– отбрасываем левую часть интервала

неопределенности.

 

 

 

 

 

 

 

 

 

71

Рис. 3.3. Метод «золотого сечения». Пример

a1 = y0 = 2, b1 = b0 = 1,

z1 = y0 = 0,764, y1 = z0 = 0,618,

f (z1 ) = 1,476, f ( y1 ) = 1,47 – отбрасываем правую часть интервала неопределенности и т.д.

3.1.2.5. Метод Фибоначчи

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

Дано:

5. Начальный интервал неопределенности [а0, b0]. Функция f(x), унимодальная на отрезке [а0, b0]. Точность нахождения экстремума.

Требуется заn измерений функциинайтиэкстремум сточностьюε. Метод Фибоначчи считается самым эффективным.

Этот метод имеет тот же алгоритм, что и метод «золотого сечения», отличия заключены в координатах начальных точек:

y0

= a0 + (b0

a0 )

Fn

,

(3.4)

 

 

 

 

Fn+2

 

где Fn и Fn+2 n-е и (n+2)-е числа Фибоначчи.

72

z0 = a0 + b0 y0 .

n = 3, 4,…

F1 = 1, F2 = 1, Fn = Fn–1 + Fn–2,

F3 = 2, F4 = 3, F5 = 5, F6 = 8, F7 = 13, F8 = 21, F9 = 34, F10 = 55,

F11 = 89, F12 = 144, …

Значение n определяется при помощи неравенства

F

<

b0 a0

< F

.

(3.5)

 

n+1

 

ε

n+2

 

 

 

 

 

 

 

Пусть требуется найти экстремум с точностью 0,01. Тогда

b0 a0 = 100,

ε

F11 = 89 < 100 < 144 = F12 , n = 10,

y0 = a0 + (b0 a0 )55. 144

Далее так же, как и в методе «золотого сечения».

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

Решить задачи, указанные в табл. 3.1. Последовательность действий:

1.Определить тип экстремума функции f(x). Для этого подсчи-

тываются значения f(x) в нескольких внутренних точках [a0, b0]. На основании найденных значений определяется тип экстремума функции f(x).

2.Если функция f(x) является монотонной на отрезке [a0, b0], то в качестве экстремума взять «минимум».

3.Для каждого метода достаточно сделать 4–5 шагов.

4.Результаты решения по окончании счета занести в таблицу.

 

 

 

 

 

Таблица 3 . 1

 

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

№ варианта

[a0, b0]

 

f(x)

 

ε

1

[3,5; 4,5]

 

x

x3

 

0,02

 

 

 

 

 

 

 

 

 

ln 2

 

 

 

 

 

 

 

73

Окончание табл. 3 . 1

№ варианта

[a0, b0]

 

 

 

 

 

 

 

f(x)

 

 

 

 

ε

2

[1,5; 2]

 

 

2

+ 2

 

 

 

x

2

 

0,01

 

 

x

 

x lg

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

 

 

 

 

 

3

[1; 1,5]

 

 

 

x2 2x + ex

 

0,05

4

[–5; –4]

 

 

xsin x + 2cos x

 

0,02

5

[0,5; 1]

 

 

 

10x ln x

x

2

 

 

0,05

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

6

[0; 1]

 

 

 

1+ x2

+ e2x

 

0,1

7

[–3; –2]

x5 5x3 + 10x2 5x

0,1

8

[0,1; 2]

 

 

 

 

 

ex +

1

 

 

 

 

 

0,01

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

[–1,5; –1]

 

 

 

ex

1

x3 + 2x

 

0,01

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

10

[1,5; 2]

 

3(5 x)4/3 + 2x2

 

0,02

11

[0; 0,5]

3x4 10x3 + 21x2 + 12x

0,01

12

[–1; 0]

x4 + 2x2 + 4x + 1

0,1

13

[–1; 2]

 

 

x4 + x2 + x + 1

 

0,01

14

[0; 3]

 

 

 

 

x

2

cos x

 

 

 

0,01

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

[1,5; 2]

 

1

x3 5x + x ln x

0,02

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16

[1,5; 2]

x4 + 4x2 32x + 1

0,05

17

[0,5; 1]

 

 

 

x3 3sin x

 

0,05

18

[0,5; 1]

 

 

x2 + 3x(ln x 1)

 

0,05

19

[–3; –2]

 

 

 

(x + 1)2 2x2

 

0,05

20

[3; 5]

 

 

 

(x 4)2 + ln x

 

0,01

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

74

3.2. Графический метод решения задач нелинейного программирования

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

Целевая функция линейная, ограничения нелинейны

Алгоритм решения задачи:

1.Ограничения-неравенства заменяем ограничениями-равенствами. Строим графики полученных функций.

2.Выделяем область допустимых решений.

3.Строим график целевой функции при каком-либо значении правой части (графиком является прямая).

4.График целевой функции переносим параллельно самому себе до касания с границей области допустимых решений.

5.Находим координаты точки касания.

Пример

Z = 2x + y max,

 

2

+ y

2

36,

 

 

 

 

x

 

 

 

 

 

 

x, y 0.

 

 

 

 

А – точка касания.

 

 

 

 

Решение:

 

 

 

 

 

tgα

 

= 2, tgβ = tg

p

− α

= ctgα =

1

.

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

2

 

Точка А лежит на луче, проходящем под углом β к оси абсцисс. Кроме того, точка А принадлежит окружности. Следовательно, координаты точки А можно найти, решив следующую систему

(рис. 3.4):

75

Рис. 3.4. Графический метод решения ЗНЛП для линейной ЦФ и нелинейных ограничений

 

2

 

+ y

2

= 36,

 

x

 

 

 

 

 

x

=

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

y

 

 

 

 

 

 

 

x =

12

, y =

6

,

 

5

 

 

 

 

 

 

5

 

 

 

 

Zmax = 30 .

5

Ограничения линейные, целевая функция нелинейна

Алгоритм аналогичен предыдущему случаю с некоторыми отличиями:

1)область допустимых решений – выпуклый многоугольник;

2)для нахождения решения требуется строить семейство целевых функций.

Пример

Z = (x2 + y2 ) max.

3x + 4y 24

0,

 

 

x, y 0.

 

76

Рис. 3.5. Графический метод решения ЗНЛП для нелинейной ЦФ и линейных ограничений

Ответ: x = 8, y = 0, Zmax = 8.

3.3. Задачи дробно-линейного программирования

Существует некоторый класс задач нелинейного программирования, который можно свести к задачам линейного программирования. Это задачи дробно-линейного программирования.

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

Q =

c0 + c1x1

+ c2 x2 + ... + cn xn

min,

(3.6)

d0 + d1x1

+ d2 x2 + ... + dn xn

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

aij xi = bi ,

 

i = 1,m,

 

j=1

 

 

 

 

 

 

 

 

 

= 0.

 

j = 1,n.

 

xj

 

 

 

 

 

 

Предположим, что знаменатель целевой функции не равен нулю и положителен (если он отрицателен, то умножим числитель и знаменатель на –1).

Введем новую переменную y0:

y0 =

1

,

(3.7)

n

d0 + di xi

i=1

77

тогда ЦФ

 

Q = c0 y0 + c1 y0 x1 + c2 y0 x2 + ...

+ cn y0 xn min.

(3.8)

Введем переменные yi

= xi y0 ,

i =

 

, тогда

 

1,n

 

 

 

Q = c0 y0 + c1 y1 + c2 y2 + + cn yn...

min.

(3.9)

Домножим левую и правую части ограничений на Y0:

 

 

 

n

 

 

 

 

n

 

 

 

 

 

 

 

aij xi

y0

= bi y0 ,

aij yi

= bi y0 ,

(3.10)

 

 

j=1

 

 

 

 

j=1

 

 

 

 

 

Добавим еще ограничение:

 

 

 

 

 

 

 

 

 

1

 

 

n

 

 

 

 

 

 

 

 

 

 

 

d j y j

 

 

 

 

 

 

 

 

y0 =

 

,

+ d0 y0

= 1,

y j 0, j = 0,n.

(3.11)

 

 

 

 

n

 

d0 + d j xj j=1

j=1

Получили задачу линейного программирования ((3.9) – (3.11)). Решив ее одним из методов линейного программирования, получим оптимальное решение yj .

Далее осуществляется переход к исходным переменным xj

=

y j

.

 

 

 

 

 

Y0

Пример 1

 

 

 

 

Q =

2x1 + x2

min.

 

 

 

 

 

 

 

 

x1 + 2x2 + 1

 

 

 

x1

+ 2x2 2,

2x1 + x2 + x3 = 6,

 

, x2 , x3 0.

x1

Решение:

1. Вводим новые переменные y0, y1, y2:

y0 = 1 , x1 + 2x2 + 1

Q = −2x1 y0 + x2 y0 = −2y1 + y2 min.

78

2. Преобразуем ограничения:

x1 y0 2x2 y0 2y0 0,+ + =

2x1 y0 x2 y0 x3 y0 6y0 ,+ + =

x1 y0 2x2 y0 y0 1.

y1 2y2 2y0 ,

2y1 + y2 + y3 6y0 = 0,

 

+ 2y2

+ y0 = 1,

y1

y , y

, y

0.

1

2

3

 

3. Преобразуем ограничение-неравенство в ограничениеравенство введением искусственной переменной y4:

y1 2y2 2y0 + y4 = 0.

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

y1 2y2 2y0 + y4 = 0,+ + − + =

2y1 y2 y3 6y0 y5 0,+ + + =

y1 2y2 y0 y6 1.

Искусственная целевая функция: G = y5 + y6 min.

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

y0

=

1

, y1

=

2

, y2

= 0, y3

=

2

.

 

 

 

 

3

 

3

 

 

3

 

6. Переход к исходным переменным:

x1 =

y1

= 2, x2

=

y2

= 0, x3

=

y3

= 2.

 

y0

y0

 

 

y0

 

 

 

 

 

Пример 2

 

 

 

 

 

 

 

Q =

3x2 2x3

min.

 

 

 

 

 

 

 

 

 

x2 + 3x3

 

 

 

 

 

 

 

x1 x2 + 2x3 = 4,− + + + =

x1 2x2 x3 x4 6,

x1, x2 , x3 , x4 0.

79

Решение:

1. Вводим новые переменные y0, y1, y2, y4:

y0

=

 

1

,

2x2

 

 

 

+ 3x3

Q = 3x2 y0 2x3 y0 = 3y2 2y3 min.

x1 y0 x2 y0 + 2x3 y0 = 4y0 ,+ + + =

x1 y0 2x2 y0 x3 y0 x4 y4 6y0 ,+ =

x2 y0 3x3 y0 1.

y1 y2 + 2y3 4y0 = 0,

y1 + 2y2 + y3 + y4 6y0 = 0,

 

+ 3y3 = 1,

 

y2

 

y , y

, y , y

4

0;

1

2

3

 

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

y5 = − y1 + y2 2y3 + 4y0 , y4 = y1 2y2 y3 + 6y0 , y6 = 1y2 3y3 = 1,

G = 6y0 y1 + y2 2y3 + 6y0 + y1 2y2 y3 + 1y2 3y3 = = 10y0 2y2 6y3 + 1.

Теперь задача приведена к каноническому виду; б) решаем задачу линейного программирования, для которой ис-

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

80