- •В.А. Панов математические основы теории систем. Методы оптимизации
- •Содержание
- •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. Задача о максимальном быстродействии
- •Задания для самостоятельного решения
- •Список литературы
- •Основы теории оптимизации в.А. Панов
Задания для самостоятельной работы
Решить задачи квадратичного программирования.
1. f(x) = x12 + x22 – 10x1 – 15x2 → min, 2. f(x) = x12+x22– 20x1 – 30x2 →min,
2x1 + 3x 2 ≤ 13, 5x1 + 13x 2 ≤ 51,
2x1 + x2 ≤ 10, 15x1 + 7x2 ≤ 107,
x1, x2≥ 0 x1, x 2 ≥ 0
3. f(x) = x12 – 2x1 – x2 → min, 4.f(x) = x12 + x22–10x1–20x2 → min,
2x1 + 3x 2 ≤ 6, 9x1 + 8x 2 ≤ 72,
2x1 + x2 ≤ 4, x1 + 2x2 ≤ 10,
x1, x2 ≥ 0 x1, x2 ≥ 0
5. f(x) = x12 + x22 – 10x1 – 8x2 → min, 6. f(x) = 3x12+x22+3x1 – 2x2 → min,
2x1 + 3x 2 + x 3 ≤ 13, x1 + 3x 2 + x 3 + x 4 = 16,
x1, x2, x3 ≥ 0 3x1 – x 2 – x 3 + x 4 = 4,
x1, x2, x3 , x 4 ≥ 0
7. f(x) = x12 + x22 + x32 + x2 – 2x3 →min, 8. f(x) = x22 + 2x1x3 – x3 → min,
x1 + x 2 + 2x 3 ≤ 6, x1 + x 2 = 4,
3x1 + 2x 2 + x 3 ≤ 12, x 2 + x 3 = 8,
x1, x2, x3 ≥ 0 x1, x2, x3 , x 4 ≥ 0
9. f(x) = x12 + x22 – x1 – 2x3 → min,
x1 – x 2 + 2x 3 = 6,
x1, x2, x3 ≥ 0
3.7. Метод условного градиента
Этот метод применяется, когда ограничения линейные и могут иметь вид как равенств, так и неравенств, а целевая функция нелинейная. Метод относится к классу итерационных.
Рассмотрим сущность метода на примере функции двух переменных:
Рис. 3.6. Метод условного градиента
Пусть – приближение к экстремуму наi-ом шаге. В точке находим градиент. Затем целевая функция заменяется новой функцией, коэффициентами которой являются координаты вектора градиента в точке. Эта функция является линейной. Решив новую задачу линейного программирования, получаем точку . Затем делается шаг в направлении отрезка. В результате находится новая точка.
Постановка задачи.
1. f(x1, x2,xn) min(max),
2.gi(x1, x2,xn) 0, i = 1, m
3. = (x10, x20,xn0) – начальная точка приближения к экстремуму,
4. – точность нахождения экстремума.
5. X1, x2,xn 0. (3.25)
Алгоритм метода.
Алгоритм рассматривается для i –го шага приближения к экстремуму.
1. Находим .
2. Составляем вспомогательную функцию Z:
. (3.26)
3. Решаем задачу линейного программирования:
Z min (max),
gi (x1, x2,xn ) 0, i = 1, m, (3.27)
X1, x2,xn 0.
Положим, решением задачи линейного программирования является вектор
, где – значения переменныхxj на i-ом шаге приближения к экстремуму (решение задачи (3.27)).
4. Находим новую точку приближения к экстремуму:
(3.28)
5. Выбор шага .
Возможны два варианта:
– фиксированный шаг (не изменяемый на протяжении всего решения);
– вычитаемый на каждой итерации (аналогичен методу наискорейшего спуска).
6. Проверка критерия окончания счета.
Используются те же критерии, что и в задачах на поиск безусловного экстремума.
Пример.
Решение.
Решив задачу линейного программирования, получаем .
Далее находим выражение для подсчета координат новой точки приближения к экстремуму:
x11 = x10 + 1(z10 – x10) = 0 + 1 0 =0,
x21 = x20 + 1(z20 – x20) = 0 + 1 4 = 41.
Для нахождения величины шага подставим x11 и x21 в функцию f:
f(1) = 161 – 3212 ,
x11 = 0, x21 = 40,25 = 1.
Проверка критерия окончания счета: , следовательно, требуется выполнить еще хотя бы один шаг.