Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
motc / opt14.doc
Скачиваний:
87
Добавлен:
10.12.2013
Размер:
417.79 Кб
Скачать

3. Нелинейное программирование

Признаки задач нелинейного программирования:

1. Нелинейная целевая функция.

2. Нелинейные ограничения.

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

3.1. Методы поиска безусловного экстремума функции одной переменной

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

3.1.1. Аналитический метод

Постановка задачи: f (x) – функция одной переменной, требуется найти точки экстремума и определить его вид.

Решение

1. Находится производная заданной функции и приравнивается нулю:

f (x) = 0 .

2. Находятся корни полученного уравненияхi , i = 1, n; n – порядок уравнения.

3. Определяется тип экстремума по второй производной:

 0, то функция в точке xi имеет максимум;

еслиd2f

dx2

x=xi

 0, то функция в точке xi имеет минимум.

еслиd2f

dx2

x=xi

Пример 3.1.

f (x) = х2 + 5 х + 6,

f ( x) = 2 х + 5 = 0, x = -2,5, f ( x) = 2, тип экстремума – минимум.

3.1.2. Численные методы

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

3.1.2.1. Основные понятия и определения

Унимодальная функция – это функция, имеющая один экстремум, причем слева и справа от экстремума либо строго убывающая, либо строго возрастающая.

Отрезок а, b называется интервалом неопределенности, если внутри него функция имеет экстремум.

Точность нахождения экстремума () определяется следующим образом. Положим х0 – точное значение экстремума, х0приближенное. Тогда  х0 - х0   .

Постановка задачи поиска экстремума численными методами.

Дано: 1. Начальный интервал неопределенности а0 , b0.

2. Функция f (x), унимодальная на отрезке а0 , b0.

3. Точность нахождения экстремума ().

Требуется с заданной точностью  на отрезке а0, b0 найти экстремум функции f (x).

3.1.2.2. Метод ненаправленного поиска

1. Отрезок а0, b0 делится на N частей, где N = ( b0 - а0) /  .

2. Находятся координаты точек хi, расположенных внутри интервала неопределенности:

хi = а0 + ( i - 1) , i = 1, (N+1).

3. Рассчитываются значения функции в точках f (хi ).

4. Из полученных значений выбирается экстремальное

F0 = min {f (xi )}, i = 1, (N+1),

Точка хi , соответствующая F0, – точка экстремума.

Достоинство алгоритма – простота, недостаток – низкая производительность (для = 1% требуется рассчитать значения функции в 101 точке).

3.1.2.3. Методы направленного поиска

Метод дихотомии (деление отрезка пополам):

1. Интервал неопределенности делится пополам.

2. Находятся значения функции в двух точках, отстоящих от центра на /2.

3. По результату сравнения этих значений отбрасывается та часть интервала неопределенности, в которой экстремума быть не может. При этом интервал неопределенности сокращается приблизительно на половину.

4. На следующем интервале повторяются те же действия.

Рассмотрим более подробно этот метод. Пусть требуется найти минимум функции f (x) на интервале а0 , b0 (рис. 3.1) .

f (x)

a0 x0 x0 x0 b0 x

a1 b1

Рис. 3.1. Метод дихотомии

Находим координату центра интервала неопределенности:

х0 = (а0 + b0 ) / 2.

Находим точки, равноотстоящие от х0 на /2:

х0 = х0 +  /2,

х0 = х0 -  /2.

Находим значения функции в точках х0 и х0, f ( х0 ) и f ( х0 ).

Отбрасываем часть отрезка левее х0, т.к. там минимума нет.

l1 = b1 - а1 – длина нового интервала неопределенности.

Если l1   , то экстремум найден. За точку экстремума принимают

х1 = (а1 + b1) / 2.

Если l1 , то делается по крайней мере еще один шаг.

Анализ метода:

1. На каждом шаге приближения к экстремуму функция вычисляется дважды.

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

3. Достоинство метода – производительность выше, чем в методе ненаправленного поиска (для нахождения экстремума с  = 1% требуется  20 вычислений функции).

Пример 3.2. Найти максимум унимодальной функции:

e3x / 2, 0  x  0,45

F(x) = 3-2,3x, 0,45 < x  0,7

-x2 , 0,7 < x  1

а0 , b0 = 0 ,1 ,  = 0,04 .

Решение

1. х0 = (а0 + b0 ) / 2 = 0,5.

2. х0 = х0 +  / 2 = 0,48, F( х0 ) = 1,89,

х0 = х0 -  /2 = 0,52, F( х0) = 1,80.

3. а1 , b1 = 0; 0,52

4. l1 = b1 - а1 = 0,52

l1  , следовательно, делаем еще шаг 

Метод «золотого сечения». Сечение отрезка называется золотым, если отношение всего отрезка к большей его части равно отношению большей части отрезка к меньшей. Пусть d – длина отрезка, х – длина большей части отрезка, тогда “золотое сечение”

. (3.1)

Примем d = 1, тогда

, (3.2)

1 - х = х2,

х = (-1  5 ) / 2,

Х = ( 5 - 1) / 2  0,618, (3.3)

1 - Х= (3 - 5) / 20,382.

Рассмотрим алгоритм метода. Введем обозначения: ак , bк – границы интервала неопределенности на к-м шаге.

Отметим на этом интервале точки Yк, Zк , причем Yк ближе к левой границе, а Zк ближе к правой границе интервала неопределенности. Точки Yк и Zк симметричны относительно центра и составляют золотое сечение

отрезка ак , bк :

0,38 0,24 0,38

ак Yк Zк bк

1. Определяются координаты точек Y0 и Z0:

Y0 = а0 + (3 - 5 ) / 2 (b0 - а0),

Z0 = b0 - (Y0 - а0 ) = а0 + b0 - Y0.

2. Вычисляется функция в точках Y0 и Z0 .

3. Отбрасывается та часть интервала неопределенности, где экстремума быть не может.

Записываются новые координаты интервала (рис. 3.2).

f (x)

x

а0 Y0 Z0 b0

а1 Y1 Z1 b1

Рис. 3.2. Метод золотого сечения

Положим, отброшена левая часть интервала неопределенности (а0, Y0), тогда а1 = Y0, b1 = b0, Y1 = Z0, Z1 = а1 + b1 - Y1 (при отбрасывании правой части объекта Y1 = а1 + b1 - Z 1).

4. Находится длина нового интервала и сравнивается с :

l1 = b1 - а1.

При l1   решение найдено, при l1 делается еще один шаг, причем на каждом последующем шаге значение функции вычисляется только в одной точке (либо в точке Yк , либо в точке Zк).

Анализ метода:

1. На каждом шаге приближения к экстремуму интервал неопределенности уменьшается на 38%.

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

3. Метод имеет высокую производительность (для нахождения экстремума с точностью = 1% требуется вычислить функцию 11 раз).

Пример 3.3. Найти минимум унимодальной функции f (x) = х2 - 5х, а0 , b0 = 2; 4 ,  = 0,1.

Решение

1.Y0 = а0 + (3 - 5 ) /2 (b 0 - а0) = 2 + 0,382  2 = 2,764,

Z0 = а0 + b0 - Y0 = 3,236.

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

3. а1 = а0 = 2,

b1 = Z0 = 3,236,

Z1 = Y0 = 2,764,

Y1 = а1 + b1 - Z1 = 2,472.

4. l1 = b1 - а1 = 1,236  , следовательно, требуется выполнить еще шаг.

5. f (Z1) = f (Y0 ) = - 6,180, f (Y1 ) = - 6,249. . .

Метод Фибоначчи. Постановка задачи:

1. Начальный интервал неопределенности а0, b0.

2. Функция f (x), унимодальная на отрезке а0, b0.

3. Точность нахождения экстремума .

Требуется за n измерений функции найти экстремум с точностью .

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

Y0 = а0 + (b0 - а0 ) Fn / Fn+2, (3.4)

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

Z0 = а0 + b0 - Y0.

F1 = 1, F2 = 1, Fn = Fn-1 + Fn-2 , n = 3, 4, 

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

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

Fn+1 (b0 - а0 )/   Fn+2 . (3.5)

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

( b0 - а0 )/  = 100, F11 = 89  100  144 = F12, n = 10,

Y0 = а0 + ( b0 - а0 ) 55 / 144.

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

Соседние файлы в папке motc