
- •В.А. Панов математические основы теории систем. Методы оптимизации
- •Содержание
- •1. Основные понятия и определения 6
- •2. Линейное программирование 13
- •3. Нелинейное программирование 53
- •4. Вариационное исчисление 91
- •5. Оптимальное управление 109
- •Введение
- •1. Основные понятия и определения
- •1.1. Оптимизационная задача
- •1.2. Допустимое решение
- •1.6.1. Частные критерии
- •1.6.2. Обобщенные критерии
- •Обобщенный аддитивный критерий
- •Обобщенный мультипликативный критерий
- •1.6.3. Минимаксные критерии
- •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. Целочисленное линейное программирование
- •2.7.1. Метод сечения Гомори
- •2.8. Транспортная задача
- •2.8.1. Постановка задачи
- •2.8.2. Математическое описание задачи
- •2.8.3. Транспортная таблица
- •2.8.4. Таблица издержек
- •2.8.5. Метод «северо-западного» угла
- •2.8.6. Алгоритм решения транспортной задачи
- •Задания для самостоятельной работы
- •3. Нелинейное программирование
- •3.1.2.2 Метод ненаправленного поиска
- •3.1.2.3. Метод дихотомии (деление отрезка пополам)
- •3.1.2.4. Метод «золотого сечения»
- •3.1.2.5. Метод Фибоначчи
- •Задание для самостоятельного решения
- •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.7. Метод условного градиента
- •5. X1, x2,xn 0. (3.25)
- •X1, x2,xn 0.
- •Задания для самостоятельной работы
- •3.8. Метод штрафных функций
- •4. Вариационное исчисление
- •4.1. Формула Эйлера-Лагранжа
- •4.2. Частные случаи формулы Эйлера
- •4.3. Обобщенная задача вариационного исчисления
- •4.4. Решение задач вариационного исчисления с ограничениями
- •4.5. Изопериметрическая задача
- •4.6. Функционалы, зависящие от производных высших порядков
- •Задание для самостоятельного решения
- •5. Оптимальное управление
- •5.1. Постановка задачи
- •5.2. Классификация задач оптимального управления
- •5.3. Принцип максимума Понтрягина
- •5.4. Задача о максимальном быстродействии
- •Задания для самостоятельного решения
- •Список литературы
- •Основы теории оптимизации в.А. Панов
3.4.2.1. Метод покоординатного спуска
Сущность метода.
Поиск экстремума ведется в направлении осей координат, т.е. в процессе поиска изменяется только одна координата. Таким образом, многомерная задача сводится к одномерной (рис. 3.6).
Рис. 3.6. Метод покоординатного спуска
(–
новые точки приближения к экстремуму)
Алгоритм метода.
Первый цикл:
1 шаг. x1 = var, х2 = х20, х3 = х30,хn = хn0.
Ищем экстремум функции f(х1). Положим, экстремум функции в точке х11.
2 шаг. x1 = х11, x2 = var, х3 = х30,хn = хn0.
Экстремум f(х2) равен х21.
n шаг. x1 = х11, x2 = х21, x3 = х31,xn = var.
В
результате выполнения n
шагов найдена новая точка приближения
к экстремуму
.
Далее проверяем критерий окончания счета (3.15):
если
– решение
найдено, в противном случае выполняем
еще один цикл.
Пример 1.
f(x1, x2)= 4x12 – 10x22 +10x1 x2 – 26x1
=
(0, 0),
= 0,1.
Решение
1. x1 = var, х2 = 0, f(x1)= 4x12 – 26x1.
Любым известным методом находим экстремум: x11 = 3,25.
2. x1 = 3,25, х2 = var, f(x2)= –10x22 + 32,5x2 – 42,25.
x21 = 1,625
=
(3,2; 1,625)
3. Проверка критерия окончания счета:
Как
видим,
,
следовательно, требуется выполнить еще
хотя бы один цикл.
Пример 2.
f(x1, x2)= 5x12 + 5x22 – 4x1 x2 – x1 – x2
=
(1, 1),
= 0,01.
Решение.
1. x1 = var, х2 = 1 f(x1)= 5x12 – 5x1 + 4.
Любым известным методом находим экстремум:
2. x1 = 0,5, х2 = var, f(x2)=0,75 – 3 x2 + 5x22.
x21 = 0,3б
=
(0,5; 0,3).
3. Проверка критерия окончания счета:
2,8 > ε = 0,01.
Видим,
,
следовательно, требуется выполнить еще
хотя бы один цикл.
3.4.2.2. Метод наискорейшего спуска
Поиск экстремума ведется шагами в направлении градиента (max) или антиградиента (min). На каждом шаге в направлении градиента (антиградиента) движение осуществляется до тех пор, пока функция возрастает (убывает).
Этот метод имеет лучшую сходимость, чем предыдущий.
Допустим, требуется найти минимум функции.
Алгоритм метода.
1. Находим
. (3.16)
Введем обозначения:
тогда
2. Делаем шаг в направлении антиградиента. Выражения для нахождения координат новой точки приближения к экстремуму выглядят следующим образом:
(3.17)
где 1 – величина шага в направлении антиградиента при 1-ой итерации.
3. Нахождение величины шага.
В направлении антиградиента движемся до тех пор, пока функция убывает. Следовательно, шаг выбирается из условия минимума функции f(1).
Для этого в функцию f(х1, х2хn) подставляем выражения для координат новой точки (3.17).
В результате получим функцию одной переменной f(1). Минимум f(1) находим любым известным методом поиска экстремума функции одной переменной.
4. Полученное значение 1 подставляется в формулы (3.17). В результате получаем точку X1 = (x11,,xn1).
5. Проверка критерия окончания счета.
Если
,
то решение в точке
,
иначе – требуется сделать еще шаг.
Пример 1.
f(x1,
x2)
= x12
– 7x1
+ x22
– 4x2
– x1x2
+ 35,
=
(1, 1),
= 0,5.
Требуется найти минимум f(x1, x2).
Решение.
1.
=
2x1
– 7
–
x2, a1
=
21
–7 –1 = –6.
=
2x2
– 4
–
x1, a2
=
21
–4 –1 = –3.
2. x11 = x10 – 1 a1 = 1 + 61
x21 = x20 – 1 a2 = 1 + 31
3. f(x1, x2)= f(1) = = 27(1)2 – 451 + 35.
Находим минимум f(1): 11 = 5/6.
x11 = 1 + 61 = 6,
x21 = 1 + 31 = 3,5.
(6;
3,5)
4.
,
следовательно, нужен еще шаг.
Пример 2.
Найти безусловный экстремум методом наискорейшего спуска
F(x1,x2) = 5x12 – 4x1x2 + 5x22 – x1 – x2;
Х0 (1;1);
ε = 0,01.
Тип экстремума минимум f(x1, x2).
Решение
1.
=
10x1
–
4x2,
– 1, a1
=
101
– 41
– 1= 5,
=
–4x1
+10x1
– 1, a2
=
–41
+ 101
– 1 = 5.
2. x11 = x10 – 1 a1 = 1 – 51
x21 = x20 – 1 a2 = 1 – 51
3. f(x1, x2)= f(1) = 50 – 3001
Находим минимум f(1): 1 = 1/6.
x11 = 1 – 51 = 1/6,
x21 = 1 – 51 = 1/6.
Х1 (1/6; 1/6).
4. f(Х1) – f(Х0)= 4,167 > ε, следовательно, нужен еще шаг.