- •Содержание
- •Предисловие
- •Глава I. Нелинейное программирование: экстремумы функций нескольких переменных
- •§1. Классические методы оптимизации
- •1.1. Безусловный экстремум функции одной переменной
- •1.2. Условный экстремум функции одной переменной
- •1.3. Безусловный экстремум функций двух переменных
- •2.1. Необходимые и достаточные условия
- •1.4. Упражнения.
- •§2. Безусловный экстремум функций нескольких переменных
- •§3. Условный экстремум функций нескольких переменных
- •3.1. Основные определения и факты
- •3.2. Условный экстремум при ограничениях типа равенств
- •3.3. Условный экстремум при ограничениях типа неравенств
- •3.4. Условный экстремум при смешанных ограничениях
- •3.5. Понятие о методах штрафных функций
- •Глава II. Численные методы нелинейного программирования
- •§1. Общие положения
- •1.1. Постановка проблемы
- •1.2. Общие принципы.
- •§2. Методы нулевого порядка одномерной минимизации
- •2.1. Общие положения
- •2.2. Метод равномерного поиска
- •2.3. Метод деления интервала пополам
- •§3. Методы первого и второго порядка
- •3.1. Метод градиентного спуска с постоянным шагом
- •3.2. Метод Ньютона
- •§4. Элементы численных методов задачи условной оптимизации выпуклого программирования
- •4.2. Постановка задачи выпуклого программирования.
- •4.3. Численные методы на основе метода штрафных функций
- •4.4. Метод проекции градиента.
- •Приложение 1. Варианты индивидуальных заданий
- •Задание нп-1
- •Задание нп-2
- •Задание нп-3
- •Задание нп-4
- •Задание нп-5
- •Задание нп-6
- •Задание нп-7
- •Задание нп-8
2.2. Метод равномерного поиска
Метод относится к параллельным стратегиям и заключается в следующем:
1. Задаётся начальный интервал неопределённости L0=[a0, b0] и количество N вычислений функции.
2.
L0
разбивается на N+1
равных интервалов точками xi=a0+i
вычисления функции.
3. Вычисляются значения функции в найденных точках: f(xi), i=1, 2, …, N.
4.
Среди точек xi,
i=1,
2, …, N
находится точка x*
такая, в которой функция принимает
наименьшее значение: f(xk)=
.
Пример II. Решить задачу
f(x)=x26x+14min
методом равномерного поиска.
Решение. 1. Задаём начальный интервал неопределённости L0=[1; 7] (см. решение примера I) и количество N=11 вычислений функции.
2.
Найдём точки xi=a0+i
=1+i
=1+0,5i
вычислений функции: x1=1,5,
x2=2,
x3=2,5,
x4=3,
x5=3,5,
x6=4,
x7=4,5,
x8=5,
x9=5,5,
x10=6,
x11=6,5.
3. Вычислим значения функции в найденных точках: f(1,5)=7,25, f(2)=6, f(2,5)=5,25, f(3)=5, f(3,5)=5,25, f(4)=6, f(4,5)=7,25, f(5)=9, f(5,5)=11,25, f(6)=14, f(6,5)=17,25,
4. В точке x4=3 функция принимает наименьшее значение: f(3)=5minf(x).
Ответ: fmin(x)f(3)=5.
2.3. Метод деления интервала пополам
Метод относится к последовательным и в общих чертах заключается в том, что на очередном шаге интервал делится на четыре равные части и, сравнивая в точках деления значения функции, оставляется та половина интервала, которая содержит точку с наименьшим значением. Процесс деления продолжается до тех пор, пока длина интервала не окажется меньше некоторой заданной величины . Более подробно:
Задать начальный интервал неопределённости L0=[a0, b0] и >0 точность.
Положить k=0.
Разбиваем интервал [ak, bk] на 4 равные части точками
=
(середина интервала), yk=
(середина интервала [ak,
]),
zk=
(середина интервала [
,
bk])Вычислить значения f(yk), f( ), f(zk) функции f(x) в точках yk, , zk соответственно.
Сравнить значения f(yk) и f( ):
а)
если f(yk)<f(
),
то полагаем bk+1=
,
ak+1=ak
(из рассмотрения исключается интервал
(
,
bk]),
=yk
(yk
становится серединой нового интервала).
Перейти к шагу 7.
б) если f(yk)f( ), то перейти к шагу 6.
Сравнить f(zk) и f( ):
а) если f(zk)<f( ), то полагаем ak+1= , bk+1=bk, =zk (из рассмотрения исключается интервал [ak, ), zk становится серединой нового интервала). Перейти к шагу 7.
б) если f(zk)f( ), то полагаем ak+1=yk, bk+1=zk, = (из рассмотрения исключаются интервалы [ak, yk), (zk, bk], становится серединой нового интервала. Перейти к шагу 7.
Вычислить |bk+1ak+1| и проверить условие окончания:
а) если |bk+1ak+1|<, то поиск завершается, x*[bk+1, ak+1] и x* ;
б) если |bk+1ak+1|, то положить k=k+1 и перейти к шагу 3.
Пример III. Решить задачу методом деления пополам:
f(x)=x26x+14min.
Решение. 1. Задаём начальный интервал неопределённости L0=[1; 7] (см. решение примера I) и =1 точность.
2. Положим k=0.
3.0.
Разбиваем интервал [1; 7] на 4 равные части
точками
=
=4,
y0=
=2,5,
z0=
=5,5.
4.0. Вычисляем значения f(y0)=5,25, f( )=6, f(z0)=11,25 функции f(x) в точках y0, , z0 соответственно.
5.0. Сравним значения f(y0) и f( ). Так как f(y0)=5,25<6=f( ), то полагаем b1= =4, a1=a0=1 и переходим к шагу 7.
7.0. Вычисляем |b1a1|=3>. Полагаем k=1 и переходим к шагу 3.
3.1.
Разбиваем интервал [1; 4] на 4 равные части
точками
=
=2,5,
y1=
=1,75,
z1=
=3,25.
4.1. Вычисляем значения f(y1)=6,5625, f( )=5,25, f(z1)=5,0625 функции f(x) в точках y1, , z1 соответственно.
5.1. Сравним значения f(y1) и f( ). Так как f(y1)=6,5625>5,25=f( ), то переходим к шагу 6.
6.1.
Сравним f(z1)
и f(
).
Так как f(
)>f(z1),
то полагаем a2=
=2,5,
b2=b1=4,
=z1=3,25
и переходим к шагу 7.
7.1. Вычисляем |b2a2|=1,25>. Полагаем k=2 и переходим к шагу 3.
3.2.
Разбиваем интервал [2,5; 4] на 4 равные
части точками
=
=3,25,
y2=
=2,875,
z2=
=3,625.
4.2. Вычисляем значения f(y2)=5,015625, f( )=5,0625, f(z2)=5,390625 функции f(x) в точках y2, , z2 соответственно.
5.2.
Сравним f(y2)
и f(
).
Так как f(y2)<f(
),
то полагаем a3=a2=2,5;
b3=
=3,25,
=y2=2,875
и переходим к шагу 7.
7.2. Вычисляем |b3a3|=0,75<. Поиск завершается: x* =2,875.
fmin(x)f(2,875)=5,015625.
Ответ: fmin(x)5,015625.
