
- •Введение
- •1. Основные понятия и определения
- •1.1. Оптимизационная задача
- •1.2. Допустимое решение
- •1.6.1. Частные критерии
- •1.6.2. Обобщенные критерии
- •Минимаксные критерии
- •1.7. Общая характеристика методов поиска экстремума
- •2. Линейное программирование
- •2.1. Стандартный вид задачи линейного программирования (злп)
- •2.2. Способы приведения задачи линейного программирования к стандартному виду
- •2.3. Графический метод решения задач линейного программирования
- •2.4. Симплекс-метод решения задач линейного программирования
- •2.4.1. Канонический вид задачи
- •2.4.2. Симплекс-таблица, соответствующая каноническому виду
- •2.4.3. Нахождение координат вершины допустимого многогранника по каноническому виду (по симплекс-таблице)
- •2.4.4. Алгоритм решения злп при помощи симплекс-метода
- •2.5. Приведение злп к каноническому виду
- •2.5.1. Метод искусственного базиса
- •2.6. Алгоритм двойственного симплекс метода
- •2.7. Целочисленное линейное программирование
- •Алгоритм метода сечения Гомори:
- •3. Нелинейное программирование
- •3.1. Методы поиска безусловного экстремума функции одной переменной
- •3.1.1. Аналитический метод
- •3.1.2. Численные методы
- •3.1.2.1. Основные понятия и определения
- •3.1.2.2. Метод ненаправленного поиска
- •3.1.2.3. Методы направленного поиска
- •3.2.Графический метод решения задач нелинейного программирования
- •3.3. Задачи дробно-линейного программирования
- •3.4. Методы поиска безусловного экстремума функции многих переменных
- •3.4.1. Аналитический метод
- •3.4.2. Численные методы
- •3.4.2.1. Метод покоординатного спуска
- •3.4.2.2. Метод наискорейшего спуска
- •3.5. Решение задач нелинейного программирования с ограничениями – равенствами. Метод неопределенных множителей Лагранжа
- •3.6. Задачи квадратичного программирования
3. Нелинейное программирование
Признаки задач нелинейного программирования:
1. Нелинейная целевая функция.
2. Нелинейные ограничения.
Если в задаче присутствует хотя бы один признак, то она относится к задачам нелинейного программирования.
3.1. Методы поиска безусловного экстремума функции одной переменной
В задачах на поиск безусловного экстремума отсутствуют ограничения.
3.1.1. Аналитический метод
Постановка задачи: f (x) – функция одной переменной, требуется найти точки экстремума и определить его вид.
Решение
1. Находится производная заданной функции и приравнивается нулю:
f (x) = 0 .
2.
Находятся корни полученного уравненияхi
, i = 1,
n; n
– порядок уравнения.
3. Определяется тип экстремума по второй производной:
0,
то функция в точке
xi
имеет максимум;
dx2
x=xi
0,
то функция в точке
xi
имеет минимум.
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) / 20,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.
Далее так же, как в методе “золотого сечения”.