- •Основные понятия.
- •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. Принцип максимума в задаче о быстродействии.
- •Список литературы
3.5. Симплекс - метод решения злп.
(c,x) -?
X = { x : b , x 0} (*)
Симплекс - метод состоит из 2-х этапов:
Поиск крайней точки допустимого множества.
Перебор крайних точек с целью поиска оптимальной.
Поиск крайней точки допустимого множества :
Расширим пространство состояний. Введем дополнительные координаты
X = { x :- y = b , x 0, y 0}, (c,x) -? (**)
Эквивалентность этих задач ((*) и (**)) следует из того , что двойственной к обеим задачам будет : max (b,) при с, 0.
Запишем - y = b в виде :
1+......+ 0 =+...+-
0 +1+...+0 =+...+-
..................................................................
0 + ....... + 1=+...+-
Переменные ,...,можно рассматривать как базисные переменные, т.к. соответствующие им вектора условий линейно независимы (вектора ...).
Имеем:
- переменных n+m
- уравнений m
Тогда переменные ,...,можно рассматривать, как свободные переменные, которые могут принимать произвольные значения. Как было показано выше, для того чтобы точка увеличенного пространствабыла крайней достаточно x = 0, т.е.. Т.е. полагаем: =...: =: = 0. Если все= - 0 , то мы получили крайнюю точку допустимого множества. Если хотя бы один отрицателен, то меняем систему координат (уточняется далее).
Переход к новому базису.
Обозначим полученную крайнюю точку =(y1=-b1,…,ym=-bm,x1=0,…,xn=0). Ей соответствует разложение по базису:
++...+= B (1)
Разложим по базису каждый , j =:=
Предположим , что для некоторого вектора , не входящего в базис , например для вектора , положителен хотя бы один из коэффициентов.в разложении
++...+=(2)
Зададимся величиной >0 (пока не известной).
Умножим на нее обе части равенства (2) и вычтем результат почленно из равенства (1).
Получаем:
++...++=B (3)
Т.о., вектор = (,, ... ,, 0, ... , 0,, 0, ..., 0)
(s -место )
является допустимой крайней точкой, если его компоненты неотрицательны. Т.к. >0, то все компоненты вектора , в которые входят< 0 , положительны. Поэтому надо рассмотреть только компоненты, включающие положительные. Т.е. необходимо определить такое>0,при котором для всех ,> 0 будет
0 0 < .Т.е. надо .
Крайняя точка не может содержать m+1 положительную компоненту, поэтому в необходимо обнулить, по крайней мере, одну компоненту.
Положим, что = ==, т.е. r-я компонента обратится в 0.
Подставим значение в (3):
++...++..++…
+=B
То есть получаем новое разложение:
+...++...++= B ,
которому соответствует новая крайняя точка = (,...,,...,, 0,..., 0,, 0,...,0 ) , где=(i =,i r ), =.
Исключение одного вектора из базиса и включение вместо него другого с помощью соответствует переходу от одного базиса к другому с помощьюметода Жордана --Гаусса , поэтому система векторов ......,линейно-независима и является новым базисом.
Мы рассмотрели переход от одной крайней точки к другой, но на первом этапе симплекс - метода осуществляется поиск допустимой крайней точки , поэтому возможна ситуация , когда -< 0.Тогда надо вычислять по формуле:
=
* объяснение далее в табличном методе
Мы рассмотрели преобразование одного вектора (условий ()) по новому базису , а надо - для всех векторов. При поиске допустимой крайней точки если хотя бы один из < 0 , то необходимо изменить систему координат, т.е. перейти в другую крайнюю точку.
Пусть с помощью предыдущих рассуждений выбрали столбец s и строку r, т.е. будем вводить в базис , а выводить из базиса
Напомним :
= ++...++...+-
Т.к. вводим в базис , то коэффициент при нем должен быть 1 , а во всех других уравнениях он должен отсутствовать (= 0).
=+ ( изменил знак)
(4) Подставим эту координату во все прочие ограничения , получаем:
=+ +,
где i =,i r.
и ( i =,i r) - новые базисные переменные. За конечное число таких исключений мы получим допустимую крайнюю точку.
Табличный метод нахождения крайней точки:
Исходные ограничения:
Надо , чтобы - 0
Как только это произойдет ,( i, j)
Получится допустимая крайняя точка.
Предположим, что одно -< 0. Сделаем одно Жорданово исключение:
Формулы пересчета исходной таблицы:
1). r-я строка преобразуется так:
= ,
= , j s
= - т.е. меняет знак (ниже покажем , что правые части , которые были положительными, так положительными и остались)
(см. первую строку из (4))
2). Столбец с номером s преобразуется так :
=, i r
3). Остальные элементы пересчитываются так:
=,
i r, j s (см. вторую строку из (4))
= , i r
* в таблице , очевидно, -
Покажем, что правые части ,которые были > 0, такими и останутся.
=
а). Пусть < 0, < 0.
Тогда < -будет так, если выбирать как максимум из
отрицательных.
Тогда == () < 0
б). Пусть < 0, > 0.
= +() << 0
Отсюда вывод : если < 0, то< 0.
Порядок выбора , и :
( разрешающего столбца, строки и элемента)
Пусть хотя бы один -< 0.Рассмотрим строку с номеромi. Либо все элементы этой строки 0, либо хотя бы один >0.
В первом случае: допустимое множество пусто, т.к. = 0.
Во втором случае: пусть > 0. Тогда разрешающий столбец будет иметь номер s.
будем изменять от нуля до тех пор, пока какой-нибудь из не станет = 0.
Рассмотрим отношения . Ограничимся только отрицательными. Выберемr :
=
Оказывается, что с помощью такого исключения за конечное число шагов мы получим допустимую крайнюю точку.
Поиск оптимальной точки (перебор крайних точек допустимого множества).
Предположим, что допустимая крайняя точка найдена. Вектор c должен лежать в первом квадранте новой системы координат. Для этого нужно чтобы 0.
Целевая функция f(x) =
Когда мы заменим систему координат {}{}, тогда
f = (например, для двумерного случая)
Стратегия: надо двигаться от одной крайней точки до другой, чтобы целевая функция уменьшалась. Это гарантирует отсутствие циклов, а, следовательно, конечное число шагов. Если все > 0, то текущая крайняя точка является оптимальной, т.к. если изменим св. переменную (равную 0), то увеличится и значение функции.
* т.к. свободную переменную можно только увеличивать(первый квадрант)
Табличный метод поиска оптимальной точки:
-> 0 i (должны быть положительны)
Задача:
С помощью метода жордановых исключений найти оптимальную точку. В новой системе координат при замене имеем(см. (4))
f
добавка
( <
0)
f(x) =
=, =
Алгоритм выбора разрешающего элемента при переборе крайних точек:
Пусть все 0.
Тогда текущая крайняя точка оптимальна.
Пусть существует хотя бы один < 0.
1). Все 0 i ,
тогда min f = - .
2). Пусть < 0 (существует)
выбираем {} , среди таких элементов находим максимальный. Пусть это - это разрешающий элемент.