- •РАБОЧАЯ ПРОГРАММА
- •СОДЕРЖАНИЕ
- •Тема 1. ОБЩИЕ СВЕДЕНИЯ О МЕТОДАХ ОПТИМИЗАЦИИ
- •1.1. Основные понятия и определения. Постановка задачи
- •Тема 2. МАТЕМАТИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
- •2.2. Определение выпуклости функций
- •2.3. Типы задач математического программирования
- •2.4. Связь между задачей математического программирования
- •Тема 3. ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ
- •3.3. Симплекс-метод решения задач ЛП
- •3.4. Симплекс-таблицы
- •3.5. Метод искусственного базиса
- •3.6. Информационные технологии линейного программирования
- •3.7. Двойственная задача линейного программирования
- •3.8. Двойственный симплекс-метод
- •3.9. Целочисленное линейное программирование
- •3.9.1. Алгоритм Гомори для полностью целочисленной задачи ЛП.
- •3.9.2. Алгоритм Гомори для частично целочисленной задачи.
- •3.9.3. Метод ветвей и границ решения целочисленных задач ЛП.
- •Тема 4. ЭКСТРЕМАЛЬНЫЕ ЗАДАЧИ БЕЗ ОГРАНИЧЕНИЙ
- •4.1. Одномерная минимизация унимодальных функций
- •4.1.1. Метод Фибоначчи.
- •4.1.2 Метод золотого сечения.
- •4.1.3. Методы с использованием производных.
- •4.1.4. Методы полиномиальной аппроксимации.
- •4.2.2. Градиентные методы. Метод наискорейшего спуска.
- •4.2.4. Метод Дэвидона-Флетчера-Пауэла (ДФП) (метод переменной мет-
- •4.2.6. Обобщенный градиентный алгоритм.
- •4.2.7. Метод Ньютона.
- •4.2.9. Установка метода оптимизации в пакете MATLAB.
- •Тема 5. ЭКСТРЕМАЛЬНЫЕ НЕЛИНЕЙНЫЕ ЗАДАЧИ
- •5.1. Метод неопределенных множителей Лагранжа
- •5.2. Теорема Куна-Таккера
- •5.3. Квадратичное программирование
- •5.4. Метод допустимых направлений Зойтендейка
- •6.1. Метод линейных комбинаций
- •6.2. Метод отсекающих плоскостей Кэлли
- •6.3. Сепарабельное программирование
- •ТЕМА 7. МЕТОДЫ ОПТИМИЗАЦИИ УПРАВЛЕНИЯ
- •7.1. Дискретное динамическое программирование
- •7.3. Принцип максимума Понтрягина
- •7.3.1. Постановка задачи. Формулировка принципа максимума.
- •7.3.3. Принцип максимума в задачах о максимальном быстродействии.
- •7.4.1. Определение моментов переключения.
- •ЛИТЕРАТУРА
- •Содержание
- •Лабораторная работа № 1
- •Лабораторная работа № 2
- •Лабораторная работа № 3
- •Лабораторная работа № 4
- •ЗАДАНИЯ ПО КУРСОВОЙ РАБОТЕ
- •Задание 1. Линейное программирование
- •Задание 2. Нелинейное программирование
- •Задание 3. Математическое описание линейных систем
5-й шаг. Вычислим F(x2 )T = [0, 0]. Таким образом, x2 = x* . Решение по-
лучено в результате двух одномерных поисков, т.к. целевая функция квадратичная.
4.2.4. Метод Дэвидона-Флетчера-Пауэла (ДФП) (метод переменной мет-
рики). В отличие от метода наискорейшего спуска весьма эффективен в тех случаях, когда точка поиска xk находится вблизи точки минимума.
Последовательность итераций строится в соответствии с формулой xk +1 = xk + αk S k , где S k – направление поиска на k-м шаге, определяемое выражением Sk =−Ak F(xk ). Здесь Аk – квадратная матрица порядка n, которая изме-
няется на каждой итерации и носит название метрики.
Начальная точка x0 выбирается произвольно, матрица А0 является единичной матрицей, т.е. А0 = I, поэтому направление S 0 = − F(x0 ) = −g 0 . Поиск вдоль этого направления на первом шаге дает такой же результат, как в методе наискорейшего спуска: x1 = x0 −λ0 F(x0 ) = x0 − λ0 g 0 .
Рекуррентное соотношение для вычисления матрицы А имеет вид
Ak = Ak −1 + |
∆xk −1(∆xk −1)T |
+ |
|
Ak −1∆g k −1(∆g k −1)T Ak −1 |
. |
(4.24) |
(∆xk −1)T ∆g k −1 |
|
(∆g k −1)T Ak −1∆g k −1 |
||||
|
|
|
|
|
||
Здесь изменение переменной ∆xk |
= xk−1 − xk , а изменение градиента при пе- |
|||||
реходе от точки xk к точке xk+1 равно ∆g k |
= g k +1 − g k . Величина шага λk вычисляет- |
ся на каждой итерации так же, как в методе наискорейшего спуска, из условия минимизации функции в рассматриваемом направлении.
Метод ДФП обеспечивает убывание целевой функции при переходе от итерации к итерации и широко используется при решении различных практических задач.
4.2.5. Метод Бройдена-Флетчера-Гольдфарба-Шенно (БФГШ). В методе БФГШ последовательность итераций вычисляется в соответствии с выражением xk +1 = xk − αk Ak F(xk ) .
Полагая, что F(xk ) = g k |
и A0 = I , рекуррентную формулу для вычисления пе- |
|||||||
ременной матрицы А можно записать следующим образом: |
|
|
|
|||||
|
∆xk (∆g k )T T |
|
∆x k (∆g k )T |
|
∆xk (∆xk )T |
. |
(4.25) |
|
Ak +1 = I − |
|
Ak I − |
|
+ |
|
|||
(∆xk )T ∆g k |
||||||||
|
(∆xk )T ∆g k |
|
(∆xk )T ∆g k |
|
|
|
75
Величина шага αk вычисляется в результате одномерного поиска минимума
функции по параметру α в рассматриваемом направлении S k . Одно из главных преимуществ метода – слабая зависимость от точности вычислений при проведении одномерного поиска.
4.2.6. Обобщенный градиентный алгоритм. Сходство рассмотренных ранее методов дает основание для разработки блок-схемы обобщенного градиентного алгоритма, приведенной на рис. 4.13.
В приведенном алгоритме можно использовать различные методы путем
определения направлений поиска S k по соответствующим формулам.
Тесты, включенные в алгоритм, предусматривают возникновение различных ситуаций, связанных с окончанием поиска или с необходимостью возврата.
При рассмотрении градиентных методов предполагалось, что элементы градиента F(x) можно вычислить с достаточной степенью точности. На практике
получение аналитического выражения для градиента иногда затруднено. В этом случае используют численную оценку составляющих вектора F(x) . Простейшей
аппроксимацией может служить конечная разность вида |
|
|||
∂F (x) |
= |
F (x + ∆x) − F (x) |
. |
(4.25) |
∂x |
|
|||
|
∆x |
|
В тоже время величина ∆x , которая при малых значениях дает весьма точные оценки, должна выбираться достаточно большой, чтобы числитель выражения (4.25) был отличен от нуля. Если же ∆x оказывается меньше, чем минимальная точность расчетов на ПЭВМ, то числитель обращается в нуль.
4.2.7. Метод Ньютона. Метод Ньютона использует информацию о вторых производных целевой функции. Вычисление каждой очередной точки осуществляется по формуле xk+1 = xk −H −1(xk ) F(xk ), где H(xk ) = 2 F(xk ) – квадратная матрица порядка n вторых производных функции F(x), вычисленных в точке xk . Матрицу H(x) называют матрицей Гессе, или гессианом функции F(x). H −1 (xk ) –
матрица, обратная гессиану, вычисленному в точке xk . Метод Ньютона имеет квадратичную скорость сходимости на классе выпуклых функций. Однако при исследовании неквадратичных функций метод Ньютона не отличается высокой надежностью, если точка x0 находится на значительном расстоянии от точки x*. В этом случае прибегают к модификации метода, чтобы обеспечить уменьшение целевой функции от итерации к итерации и на первых шагах осуществляют поиск вдоль направления, как в методе наискорейшего спуска. Последовательность итераций осуществляется в соответствии с формулой
xk +1 = xk − αk H −1(xk ) F(xk ) . |
(4.26) |
76
нет
S(xk ) =− F(xk )
Напечатать «возврат: неудачное направление»
нет
k = k +1
Начало
Задать
M , N , x 0 , ε1 , ε2
Положить k = 0
Вычислить F (xk )
да
F ( x k ) ≤ ε1
нет
да
K = M ?
нет
Вычислить S(xk )
FT (xk )S(xk ) < 0?
да
Вычислить αk , используя параметр ε 2
xk+1 =xk +αkS(xk )
нет
F(xk+1) <F(xk )?
да
∆x
xk ≤ ε1 ?
да
M - максимально допустимое количество итераций; N - количество переменных; х0 - начальное приближение к х*; ε1 - параметр сходимости алгоритма; ε2 - параметр сходимости для поиска вдоль прямой
Напечатать «сходимость: Конец градиент»
Напечатать «окончание поиска К=М»
Напечатать «окончание поиска: нет уменьшения функции»
Напечатать «окончание поиска: нет продвижения к решению»
Рис. 4.13. Блок-схема обобщенного градиентного алгоритма
77
Выбор αk осуществляется так, чтобы F(xk +1 ) в рассматриваемом направле-
нии принимала минимальное значение. Это гарантирует выполнение неравенства
F(xk+1) ≤ F(xk ).
Если функция цели квадратичная, экстремум находится за один шаг.
Пример 4.7. |
|
|
|
|
|
|
Найти максимальное значение функции F(x) = 18x |
+12x |
2 |
− 2x x |
2 |
− 2x2 |
− x2 |
1 |
|
1 |
1 |
2 |
методом Ньютона, если x0 = [2,1] .
Очередная точка поиска вычисляется в соответствии с выражением xk +1 = xk − H −1(xk ) F(xk ) ,
где H (x) – матрица Гессе функции F(x) ; H −1 (x ) – обратная по отношению к H (x) матрица.
|
∂F |
|
|
|
∂F |
|
=[−4x1 |
+18 − 2x2 ;−2x1 − 2x2 +12]; |
F(x0 ) =[8, 6]; |
||||||||||||
F(x) = |
|
|
|
|
|||||||||||||||||
∂x1 |
|
|
|
|
|||||||||||||||||
|
|
|
∂x2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
∂2 F |
|
|
|
|
∂2 F |
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
− 4 |
− 2 |
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
H (x) = |
|
∂x1 |
|
|
|
∂x1∂x2 |
; |
H (x) = |
|
; |
H −1 = |
AdjH, |
|||||||||
|
|
|
|
det H |
|||||||||||||||||
|
|
|
∂2 F |
|
|
|
|
∂2 F |
|
|
|
|
− 2 |
− 2 |
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
∂x |
2 |
∂x |
|
|
|
|
∂x2 |
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
1 |
|
|
2 |
|
|
|
|
|
|
|
|
|
|
где det H – определитель матрицы H ; AdjH – присоединенная к H матрица (транспонированная матрица алгебраических дополнений).
Найдем алгебраические дополнения элементов матрицы H : ∆ij = (−1)i + j mij , тогда
∆11 = −2 , ∆12 = 2, ∆21 = 2 , ∆22 = −4 .
Тогда
− 2 |
2 |
det H = 4; |
−0,5 |
0,5 |
||
AdjH = |
2 |
; |
H −1 = |
0,5 |
; |
|
|
− 4 |
|
|
−1 |
x1 |
|
2 |
− 0,5 |
0,5 8 |
2 |
− 4 + 3 |
2 |
|
−1 |
3 |
||||||||||||||
|
2 |
|
= |
1 |
|
− |
0,5 |
|
6 |
|
= |
1 |
|
− |
4 − 6 |
|
= |
1 |
|
− |
− 2 |
|
= |
; |
|
x2 |
|
|
|
|
−1 |
|
|
|
|
|
|
3 |
|||||||||||
2 |
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
F (x1 )T |
= [−12 +18 − 6;−6 − 6 +12] = [0,0]. |
|
|
|
|
78