- •Основные понятия.
- •1. Безусловная оптимизация (многомерные функции)
- •1.1 Методы первого порядка (градиентные методы)
- •1.1.1. Градиентный метод с постоянным шагом
- •1.1.2. Выпуклые функции и множества
- •Теорема
- •Определение.
- •Без доказательства
- •2.Теорема:
- •1.2. Градиентные методы (продолжение)
- •1.2.1. Градиентный метод с дроблением шага.
- •1.2.2. Метод наискорейшего спуска.
- •Без доказательства
- •1.2.3. Масштабирование
- •1.3. Метод Ньютона.
- •1.4. Многошаговые ( двухшаговые ) методы.
- •1.3.1. Метод тяжелого шарика
- •1.3.2. Метод сопряженных градиентов
- •1.3.3. Модификация Полака-Ривьера
- •1.5. Квазиньютоновские методы
- •1.6. Методы нулевого порядка (методы прямого поиска)
- •1.6.1. Методы аппроксимации
- •Метод покоординатного спуска
- •1.6.3. Метод симплексов (Нелдера-Мида)
- •1.6.4. Метод Пауэлла (сопряженных направлений)
- •1.7. Методы прямого поиска в задачах одномерной минимизации.
- •1.7.1. Метод квадратичной интерполяции.
- •1.7.2. Метод дихотомии ( половинного деления.).
- •1.7.3. Метод «золотого» сечения.
- •1.7.4. Метод Фибоначчи.
- •2. Условная минимизация.
- •2.1 Задача нелинейного программирования.
- •2.1.1. Ограничения типа равенства.
- •2.1.2. Ограничения типа неравенств.
- •2.2. Задача выпуклого программирования
- •2.3. Методы условной минимизации.
- •2.3.1. Метод проекции градиента.
- •2.3.2. Метод условного градиента.
- •2.3.3. Метод модифицированной функции Лагранжа.
- •2.3.4. Метод штрафных функций.
- •2.4. Двойственность звп
- •2.4.1. Двойственность злп
- •3. Линейное программирование
- •3.1. Основные понятия
- •3.2. Геометрическая интерпретация злп.
- •3.3. Условие оптимальности для злп.
- •3.4. Базис и базисное решение.
- •3.5. Симплекс - метод решения злп.
- •3.6 Транспортная задача
- •3.5.1. Построение первоначального опорного плана.
- •3.5.2. Построение оптимального плана. Метод потенциалов.
- •4. Решение переборных задач.
- •4.1. Метод ветвей и границ.
- •4.1.1. Задача о коммивояжере.
- •4.2. Динамическое программирование.
- •4.2.1. Абстрактная схема.
- •4.2.2. Вывод уравнения Беллмана.
- •4.2.3. Методика применения функции Беллмана для решения исходной задачи.
- •4.2.4. Примеры задач динамического программирования
- •5. Вариационное исчисление (ви)
- •5.1. Уравнение Эйлера-Лагранжа.
- •5.1.1. Частные случаи уравнения Эйлера-Лагранжа.
- •5.1.2. Задача о брахистохроне.
- •5.2. Вариационные задачи на условный экстремум.
- •5.2.1. Модельные задачи на условный экстремум.
- •6. Принцип максимума Понтрягина ( на примере задачи оптимального управления ).
- •6.1. Принцип максимума в задаче о быстродействии.
- •Список литературы
4. Решение переборных задач.
Допустимое множество состоит из конечного числа элементов, поэтому решение задачи всегда можно найти за конечное число шагов, но в ряде случаев количество вариантов слишком велико, чтобы можно было организовать их полный перебор, и приходится искать методы целенаправленного перебора.
4.1. Метод ветвей и границ.
Пусть - все множество возможных вариантов. На этом множестве задан функционал качества f(x). Надо найти f(x)
Пусть мы можем оценить этот минимум на через параметр :
f(x)
Делим множество на два множества. Для каждого из этих множеств выписываем оценку:
f(x); ,
Будем постепенно получать дерево: ( -граница)
Способ получения этого дерева описывается ниже:
Выберем минимальный среди .
Пусть минимальный .
Делим на два множества, вычисляем оценки и т.д.
Пусть где-то получили множество ...= { } с оценкой ... (которая меньше всех других)
Тогда - оптимальный вариант.
Если оценка не минимальная, то находим тот лист дерева, у которого оценка минимальная и соответственно I вновь разбиваем на два множества и т.д.
Метод ветвей и границ (МВГ) дает экономию по сравнению с перебором всех вариантов.
Рассмотрим пример.
4.1.1. Задача о коммивояжере.
Есть n городов. Надо объехать все города с минимальной стоимостью (расстоянием) и вернутся в исходный город. При этом каждый город посещается один раз (т.е. имеется Гамильтонов цикл, но с минимальной стоимостью).
Матрица стоимостей путей
A =
-стоимость пути от i до j.
м.б. , 0 , i, j
Допустимый маршрут содержит по одному элементу в каждой строке и столбце. Обратное неверно, так как возможны подциклы
Количество возможных вариантов n!.
Составим математическую модель:
Обозначим , причем
1 - если дуга входит в маршрут
0 - если дуга не входит в маршрут.
? , причем
= 1, j =,{0,1}
* в каждом столбце содержится один элемент
= 1, i =
* в каждой строке содержится один элемент
Эти ограничения разрешают циклы, поэтому эти условия являются необходимыми, но не достаточными.
Требование непрерывности маршрута обеспечиваются введением дополнительных N ограничений, где N = , каждое ограничение имеет вид:
n
i =,j =
Таким образом, матрица сильно разрежена, симплекс-метод применять не выгодно.
Используем МВГ.
Предположим, что мы выбирали некоторый путь S, его длина =, причем каждый из индексов используется один и только один раз.
Так как в путь S входит только один элемент из каждой строки и столбца, то можно проделать операцию нормализации матрицы A. Выберем произвольную строку i .
- наименьший элемент i -й строки и построим матрицу с элементами
= (изменена каждая строка)
Матрица определяет новую задачу коммивояжера, которая в качестве оптимальной будет иметь ту же последовательность городов.
=+
В каждой строке будет теперь, по крайней мере, один нулевой элемент.
Обозначим - минимальный элементj-го столбца .
Построим матрицу с элементами=
Оптимальный путь тот же, а длина =+, где =+
Обозначим - решение задачи коммивояжера (ЗК).
=
Тогда величина - простейшая нижняя оценка решения :
(*)
это для МВГ.
Рассмотрим ЗК с матрицей .
Рассмотрим путь S, содержащий переход i j.
Тогда нижняя оценка пути:
+
Следовательно, для тех переходов, у которых = 0 будем иметь снова оценку (*). Естественно ожидать, что кратчайший путь содержит один из таких переходов.
Рассмотрим один из переходов i j, для которого = 0.
Обозначим (ij) -множество всех тех путей, которые не содержат переход i j.
Так как из города i надо куда-то идти, то множество (ij) содержит один из переходов i k, k j.
Так как в город j надо прийти, то множество (ij)содержит переход m j, где m i.
Следовательно, некоторый путь из множества (ij), содержащего переходы
i k , m j, будет иметь следующую нижнюю оценку:
++
Обозначим:
= +
Для любого из множества путей (ij) мы будем иметь оценку:
+(**)
Мы хотим исключить некоторое множество вариантов (ij).Поэтому надо выбрать такой переход i j, для которого оценка (**) была бы максимальной.
=(+)
Таким образом, все множество возможных вариантов мы разбили на два множества: ,.
Для путей из множества - оценка (*).
Для путей их множества - оценка +.
Для матрицабудет отличаться от матрицытем, что
(переход i j запрещен , кот. выбран).
Рассмотрим множество и матрицу.
Так как все пути, принадлежащие этому множеству, содержат переход i j, то для его исследования достаточно рассмотреть ЗК, в которой города i и j совпадают
(из вычеркиваетсяi -ая строка и j -й столбец).
Размерность этой задачи n - 1.
Так как переход j i невозможен, то элементы матрицы :.
Точнее, так как элемента может не быть, маршрут, определяемый дугой
( i, j ) содержит сколько-то (может быть ни одного) из ранее выбранных ребер помимо ребра ( i, j ).
Ребро ( i, j ) будет или изолировано от этих других ребер, или будет частью пути, включающего некоторые или все эти ребра.
Пусть p и q - начальный и конечный города этого пути. Возможно, что p=i или q=j. Положим .
Эта мера предохраняет от выбора ребра (q , p) в качестве последующего, а тем самым предохраняет от формирования замкнутого цикла длины < n.
В общем случае, среди всех полученных множеств вариантов выбираем то, для которого оценка минимальна.
Пример:
A : :
: 27+8=35
- определяем "веса" нулей (минимум по строке + минимум по столбцу)
- выбираем ноль с максимальным "весом",
- выбираем соответствующий путь и вычеркиваем столбец и строку.
Выбираем путь 32.
:
, 23 - запрещен (т.к. выбран 32)
:
оценка 35 + 4 =39
Выбираем путь 13; пути 31 нет
: 32 - запрещенный путь ( выб. в A1)
оценка 35 + 38 + 20 =93
: 13
оценка 39 + 37 =76
132 ; запрещенный путь: 21
:
оценка 39 + 35 =74
Путь 132 был . По : 241
Оптимальный путь: 13241
Вес: 74 = 24 + 4 + 45 + 1 (см. A)
строилось дерево:
Упражнение: Написать программу решения задачи о ранце с помощью метода ветвей и границ.