a9dbe079dd37eb178718abc7f2ab97f3.ppt
- Количество слайдов: 80
Теория оптимального управления экономическими системами - II Проф. В. П. Кривошеев
Динамическое программирование в непрерывной форме. Уравнение Беллмана Решается задача оптимального управления y(0) = y 0, dyi(t)/dt = fi(y(t), u(t), i = 1, …, n, y(tk) = yk. В основе динамического программирования лежит принцип оптимальности в соответствии с которым нужно оптимальным образом перевести систему из состояния y( )в конечное состояние y(tk) не зависимо от того, каким образом система пришла из исходного состояния y(0) в состояние y( ).
Динамическое программирование в непрерывной форме. Уравнение Беллмана Вариация функции
Динамическое программирование в непрерывной форме. Уравнение Беллмана Математически принцип оптимальности реализуется через выражение: Пусть - малая величина. Обозначим Тогда
Динамическое программирование в непрерывной форме. Уравнение Беллмана Разложим функцию ( , y( )) в ряд Тейлора относительно состояния t = 0, y(0) = y 0 по степеням y(t) и t. Примем, что t = . Заметим, что или С учетом малости можно записать
Динамическое программирование в непрерывной форме. Уравнение Беллмана Теперь min(J(y(0), u(t))), с учетом выше приведенных выражений, можно записать в виде
Динамическое программирование в непрерывной форме. Уравнение Беллмана Так как (0, y(0)) не зависит от u(t), а содержится во всех составляющих правой части записанного выше уравнения, то это уравнение приводится к виду Учтем тот факт, что разложение условно оптимальной величины функционала, записанной для условного состояния в какой-то момент времени t (в приведенном случае y( )),
Динамическое программирование в непрерывной форме. Уравнение Беллмана можно разложить в ряд Тейлора относительно оптимального состояния системы в момент времени t- при y*(t), т. е. Полученное уравнение называется уравнением Беллмана. Оно является уравнением в частных производных. Решением этого уравнения есть функции u*(t), доставляющие экстремум функции и функции состояния системы y*(t), описывающие оптимальную траекторию движения системы из исходного y 0 в конечное состояние yk.
Алгоритм решения задачи оптимального управления методом динамического программирования в непрерывной форме Для решения уравнения Беллмана, кроме условий y(0) = y 0 и y*(tk) = yk, нужно иметь значение функции (t, y(t)) и значения ее производных (t, y(t))/ yi, i = 1, …, n, и (t, y(t))/ t в один из граничных моментов времени tн = 0 или t k. Заметим, что (tk, y(tk)) = 0 по определению. В силу этого имеет место тождество
Алгоритм решения задачи оптимального управления методом динамического программирования в непрерывной форме Теперь из самого уравнения Беллмана следует Получены все условия для решения уравнения Беллмана. Решение уравнение Беллмана выполняется известными методами решения систем дифференциальных уравнений в частных производных.
Алгоритм решения задачи оптимального управления методом динамического программирования в непрерывной форме Покажем что уравнение Беллмана при некоторых допущениях может быть приведено к уравнениям Эйлера. Запишем уравнение Беллмана в виде двух видов уравнений: Первый вид: Второй вид:
Алгоритм решения задачи оптимального управления методом динамического программирования в непрерывной форме Управления, удовлетворяющие уравнениям второго вида, обозначим u*(t). В первом уравнении управления u*(t) удовлетворяют условиям правой части уравнения Беллмана, выраженным уравнениями второго вида. Теперь продифференцируем уравнение первого вида по переменным состояния и введем обозначения: k(t) = - (t, y(t))/ yk, k = 1, …, n, 0 = -1.
Алгоритм решения задачи оптимального управления методом динамического программирования в непрерывной форме Принимая допущения, что с учетом принятых выше обозначений, получим
Алгоритм решения задачи оптимального управления методом динамического программирования в непрерывной форме Полученные уравнения являются уравнениями Эйлера в задаче оптимального управления. Таким образом, показано, что классическое вариационное исчисление, принцип максимума и уравнение Беллмана при некоторых допущениях позволяют выразить условия экстремума функционала в задаче оптимального управления идентичными уравнениями.
Статическая оптимизация
Виды функций по количеству экстремумов - унимодальные, имеющие один экстремум - полимодальные, более одного экстремума Виды экстремумов и наилучших значений функции - локальный минимум полимодальной функции в точке ui*, если , или и ; - локальный максимум полимодальной функции в точке ui*, если , или и , где i=1, 2, …, k – число локальных экстремумов.
Виды экстремумов и наилучших значений функции - супремум (sup Q (u)) при umin, если ; - супремум (sup Q (u)) при umax, если ; - инфимум (inf Q (u)) при umin, если ; - инфимум (inf Q (u)) при umax, если ; - глобальный минимум в точке ug, если ; - глобальный максимум в точке ug, если.
Постановка задачи статической оптимизации Q(X, U) min(max) U yi=φi(X, U) , i=1, …, n, yi yiзад, i=1, …, k, yi yiзад, i=k+1, …, p, Ujmin Ujmax, j=1, …, r, где X=(x 1, …, xn) – вектор внешних возмущающих воздействий, U=(u 1, …, ur) – вектор управляющих воздействий, Y=(y 1, …, yp) – вектор выходных переменных, yiзад - заданные значения выходных переменных, Ω - область допустимых управлений. Требуется найти такие значения управляющих воздействий U=(u 1, …, ur), при которых выполняются приведенные выше условия, а критерий оптимальности Q принимает минимальное (максимальное) значение.
Методы статической оптимизации 1. Классический метод исследования функции на экстремум 2. Методы нелинейного программирования: - численные методы решения одномерной задачи статической оптимизации; - численные методы решения многомерной задачи статической оптимизации 3. Линейное программирование 4. Динамическое программирование в дискретной форме
Классический метод исследования функций на экстремум Необходимые и достаточные условия экстремума функции одной переменной Q=Q(u) Необходимое условие: . Достаточное условие: Если при u=u* впервые в порядке возрастания k , где k – четное, то Q=Q(u) имеет экстремум. Причем, если , то Q(u) min, а если , то Q(u) max. Если при u=u* впервые в порядке возрастания k , где k – нечетное, то Q=Q(u) не имеет экстремума.
Примеры исследования функции одной переменной на экстремум Пример 1. Q = (1 -u)3. Необходимое условие экстремума 3(1 -u*)2(-1) = 0, u* =1. Достаточное условие экстремума 6(1 -u*) = 6(1 -1) = 0, . k = 3 – нечетное. Ответ: при u* =1 исследуемая функция не имеет экстремума. : =
Примеры исследования функции одной переменной на экстремум Пример 2. Q = (1 -u)4. Необходимое условие экстремума 4(1 -u*)3(-1) = 0, u* =1. Достаточное условие экстремума 12(1 -u*)2 = 12(1 -1)2 = 0, = 24(1 -u*) = 24(1 -1) = 0, = 24 = 0. : = k = 3 – нечетное. Ответ: при u* =1 исследуемая функция имеет минимум.
Классический метод исследования функций на экстремум Необходимые и достаточные условия экстремума функции нескольких переменных Q=Q(U) = Q(u 1, …, ur). Необходимое условие: . Достаточное условие: Если при U=U* все диагональные миноры матрицы Гессе (Г): (Г) строго положительны, то функция Q=Q(U) имеет минимум. Если при U=U* нечетные диагональные миноры матрицы (Г) строго отрицательные, а четные строго положительные, то функция Q=Q(U) имеет максимум.
Примеры исследования функции нескольких переменных на экстремум классическим методом Пример 1. Q = u 1+2 u 12+u 2+4 u 22+3 u 1 u 2 Необходимое условие экстремума: , 1+4 u 1*+3 u 2* = 0; , 1+8 u 2*+3 u 1* = 0; , , , u 1* = 1 / = -5/23, u 2* = 2 / = -1/23.
Примеры исследования функции нескольких переменных на экстремум классическим методом Пример 1. Q = u 1+2 u 12+u 2+4 u 22+3 u 1 u 2. Достаточное условие экстремума: ; ; Матрица (Г): 1 -ый диагональный минор равен 4>0, 2 -ой диагональный минор равен 4 8 -3 3=32 -9=23>0. Ответ: при u 1* = -5/23, u 2* = -1/23 исследуемая функция имеет минимум. ; ;
Примеры исследования функции нескольких переменных на экстремум классическим методом Пример 2. Q = u 1 -2 u 12+u 2+4 u 22+3 u 1 u 2 Необходимое условие экстремума: , 1 -4 u 1*+3 u 2* = 0; , 1+8 u 2*+3 u 1* = 0; , , , u 1* = 1 / = 5/41, u 2* = 2 / = -7/41.
Примеры исследования функции нескольких переменных на экстремум классическим методом Пример 2. Q = u 1 -2 u 12+u 2+4 u 22+3 u 1 u 2. Достаточное условие экстремума: ; ; Матрица (Г): 1 -ый диагональный минор равен – 4<0, 2 -ой диагональный минор равен -4 8 -3 3=-32 -9=-41<0. Ответ: при u 1* = 5/41, u 2* = -7/41 исследуемая функция не имеет экстремума.
Аналитическое решение задачи на условный экстремум - Метод множителей Лагранжа. - Условие Куна-Таккера Аналитическое решение задачи на условный экстремум при условиях типа равенства: Q=Q(U) min, U j(U) = 0, j = 1, …, m, U = (u 1, …, ur), m < r. Задача решается методом множителей Лагранжа.
Метод множителей Лагранжа 1. Составляется функция Лагранжа где j, j=1, …, m, - множители Лагранжа. 2. Совместно решается система уравнений: L(U, ) / ui=0, i=1, …, r, j(U) = 0, j = 1, …, m.
Пример решения задачи методом множителей Лагранжа Q = u 12+u 22 , u 1+u 2 – 1 = 0. Функция Лагранжа L=Q(u 1, u 2)+ (u 1, u 2)= u 12+u 22 + (u 1+u 2 – 1), L/ u 1= 2 u 1*+ = 0, L/ u 2= 2 u 2*+ = 0, Пусть 0, тогда u 1 = /2, u 2 = /2, u 1 = u 2, - u 1 - u 2 + 1= 0, u 1* = u 2* = 0, 5.
Аналитическое решение задачи на условный экстремум - Метод множителей Лагранжа. - Условие Куна-Таккера Аналитическое решение задачи на условный экстремум при условиях типа неравенств: Q=Q(U) min, U j(U) 0, j = 1, …, m, U = (u 1, …, ur). Задача решается с использованием условий Куна-Таккера.
Условия Куна-Таккера Рассматривается задача выпуклого программирования Q=Q(U) min, U j(U) 0, j = 1, …, m, U = (u 1, …, ur), где Q(U) и j(U) - выпуклые дифференцируемые функции. Алгоритм решения задачи. 1. Составляется функция Лагранжа: где j, j=1, …, m, - множители Лагранжа.
Условия Куна-Таккера 2. Совместно решается система уравнений и неравенств: L(U, ) / ui=0, i=1, …, r, j j(U) = 0, j = 1, …, m, j(U) 0, j = 1, …, m.
К определению выпуклости функции Пусть 0 1. Произвольную точку на линии ab можно описать как a+(b-a)(1 - )= a+(1 - )b, т. е. при = 0 это точка b, а при = 1 это точка а. В случае нелинейной функции ее значение в точке с = a+ (1 - )b есть Q[ a+(1 )b].
К определению выпуклости функции Значение линейной функции, проходящей через точки a и b, в точке с равно Q(a)+(Q(b) - Q(a))(c-a)/(b-a) = Q(a)+(Q(b) - Q(a))[ a+(1 - )b-a]/(b-a) = Q(a)+(Q(b) - Q(a))(1 - ) = Q(a)+ (1 - )Q(b). Сравнивая значения исходной функции с линейной функцией в точке с можно записать условие выпуклости функции: если имеет место Q( a+(1 - )b)< Q(a)+ (1 - )Q(b), то исходная функция выпукла (лежит ниже линейной функции на отрезке [a, b]).
Примеры решения задачи с использованием условия Куна-Таккера Пример 1. Q = u 12+u 22 min, u 1, u 2 u 1+u 2 1, или (u 1, u 2)= u 1+u 2 – 1 0, L=Q(u 1, u 2)+ (u 1, u 2)= u 12+u 22 + (u 1+u 2 – 1). Условия Куна-Таккера: * 0, L(U, ) / uj = 0, * (u 1*, u 2*) = 0, j=1, 2. Решение: L/ u 1= 2 u 1*+ = 0, L/ u 2= 2 u 2*+ = 0, (u 1+ u 2 -1) = 0, u 1+u 2 – 1 0. Пусть = 0, тогда u 1*= 0, u 2*= 0. Ограничение u 1+u 2 – 1 0 в точке u 1= 0, u 2= 0 пассивно.
Примеры решения задачи с использованием условия Куна-Таккера Пример 1 (продолжение): Пусть 0, тогда u 1+u 2 – 1 = 0, 2 u 1= - , т. к. > 0, то u 1< 0; 2 u 2= - , т. к. > 0, то u 2< 0. В этом случае не выполняется условие u 1+u 2 – 1 = 0. Пример 2. Q = u 12+u 22 min, u 1, u 2 u 1+u 2 1, или (u 1, u 2)= -u 1 -u 2 + 1 0, L=Q(u 1, u 2)+ (u 1, u 2)= u 12+u 22 + (-u 1 -u 2 + 1). Условия Куна-Таккера: * 0, L(U, ) / uj = 0, * (u 1*, u 2*) = 0, j=1, 2.
Примеры решения задачи с использованием условия Куна-Таккера Пример 2 (продолжение): Решение: L/ u 1= 2 u 1 - = 0, L/ u 2= 2 u 2 - = 0, (-u 1 - u 2 + 1) = 0, -u 1 -u 2 +1 0. Пусть = 0, тогда u 1+ u 2 -1 =0. Ограничение -u 1 -u 2 +1 0 в точке u 1= 0, u 2= 0 не выполняется. Пусть 0, тогда u 1 = /2, u 2 = /2, u 1= u 2; -u 1 -u 2 +1 = 0, u 1*, u 2*=1/2. Ограничение -u 1 -u 2 +1 0 в точке u 1= 1/2, u 2= 1/2 активно.
Численные методы решения одномерных задач статической оптимизации - Сканирования (с постоянным и переменным шагом). - Половинного деления исходного интервала, содержащего экстремум. - «Золотого» сечения. - С использованием чисел Фибоначчи.
Метод сканирования с постоянным шагом Функция Q(u), a u b. Алгоритм поиска: 1. Задается точность вычисления оптимального значения u u*. 2. Интервал (b-a) делится на N отрезков, N (b-a)/ . 3. В каждой точке ui =a+i (b-a) / N , i =0, 1, …, N, вычисляется функция Q(ui) и выбирается Q(u*) из условия Q(u* ) = max Q(ui) или ui Q(u* ) = min Q(ui). ui
Метод сканирования с переменным шагом Функция Q(u), a u b. Алгоритм поиска: 1. Задается точность вычисления оптимального значения u u*. 2. Интервал (b-a) делится на S отрезков, S << (b-a)/ . 3. В каждой точке u 1 i =a+i(b-a) / S, i =0, 1, …, S, вычисляется функция Q(u 1 i) и выбирается Q(u 1*) из условия Q(u 1*) = max Q(u 1 i) или ui Q(u 1*) = min Q(u 1 i). ui 4. Назначают границы нового интервала поиска a 1 и b 1 из условия: a 1 = u 1 k-1, b 1 = u 1 k+1, где u 1 k-1 и u 1 k+1 есть значения, соседние с u 1* = u 1 k.
Метод сканирования с переменным шагом При максимизации функции Q=Q(u) max, u Q(u 1 k-1) < Q(u 1 k) = Q(u 1*) > Q(u 1 k+1). При минимизации функции Q=Q(u) min, u Q(u 1 k-1) > Q(u 1 k) = Q(u 1*) < Q(u 1 k+1). 5. Пункты 2 -4 повторяются для интервалов (b 1 - a 1), (b 2 – a 2), …, (bj - aj). 6. Расчет заканчивается при условии bj - aj .
Метод половинного деления Q=Q(u) max(min), a u b Q(u) u 11 a u 12 b u Поиск методом половинного деления
Метод половинного деления Q=Q(u) max(min), a u b Алгоритм поиска: 1. Делится интервал (b-a) пополам u 1 = a+(b-a)/2. 2. Внутри интервала выбираются две точки u 11 = u 1 - и u 12 = u 1 + , где = (0. 01 -0. 25). 3. Рассчитываются Q(u 11) и Q(u 12). 4. Определяются границы нового интервала a 1 и b 1. Если Q=Q(u) max, то при Q(u 11) > Q(u 12) выбираем a 1 = a, b 1 = u 12; при Q(u 11) Q(u 12) выбираем a 1 = u 11, b 1 = b; Если Q=Q(u) min, то при Q(u 11) > Q(u 12) выбираем a 1 = u 11, b 1 = b; при Q(u 11) Q(u 12) выбираем a 1 = u 11, b 1 = u 12; 5. Проверяется условие окончания поиска b 1 - a 1 . 6. Для каждого нового интервала (bi - ai) повторяются пункты 1 -4 до выполнения условия bi - ai .
Метод «золотого» сечения Q=Q(u) max(min), a u b Q(u) 0. 62(b-a) 0. 38(b-a) a 0. 38(b-a) u 11 u 12 b u Поиск методом «золотого» сечения
Метод «золотого» сечения Q=Q(u) max(min), a u b Алгоритм поиска: 1. Внутри интервала (b-a) выбираются две точки u 11 = a+(3 - 5)(b-a)/2 и u 12 = b-(3 - 5)(b-a)/2. 2. Вычисляются Q(u 11) и Q(u 12). 3. Определяются границы нового интервала a 1 и b 1. Если Q=Q(u) max, то при Q(u 11) > Q(u 12) выбираем a 1 = a, b 1 = u 12; при Q(u 11) Q(u 12) выбираем a 1 = u 11, b 1 = b. Если Q=Q(u) min, то при Q(u 11) > Q(u 12) выбираем a 1 = u 11, b 1 = b; при Q(u 11) Q(u 12) выбираем a 1 = a, b 1 = u 12; 4. Проверяется условие окончания поиска b 1 - a 1 .
Метод «золотого» сечения Q=Q(u) max(min), a u b Алгоритм поиска (продолжение): 5. Если условие окончания поиска в пункте 4 не выполняется, на интервале (b 1 - a 1) со стороны, не смежной с меньшим отрезком, от граничной точки откладывается длина меньшего отрезка. 6. Проводится перенумерация точек: - ближайшая к левой границе обозначается u 21; - ближайшая к правой границе обозначается u 22; 7. Для каждого нового интервала (bi - ai) повторяются пункты 2 -6 до выполнения условия bi - ai .
Метод с использованием чисел Фибоначчи Q=Q(u) max(min), a u b Q(u) u 2 a 0. 23(b-a) u 1 b u 0. 38(b-a) Поиск с использованием чисел Фибоначчи
Метод с использованием чисел Фибоначчи Q=Q(u) max(min), a u b Алгоритм поиска: 1. Определяется число N, N = (b-a)/ . 2. В ряду чисел Фибоначчи находят Fs-1 < N < Fs, где F 0 = F 1 =1, Fi = Fi-2 + Fi-1 , i = 2, 3, 4, … 3. Вычисляется = (b-a) / Fs. 4. Выполняется 1 -й шаг: u 1 = a + *Fs-2 и вычисляется Q = Q(u 1). 5. Выполняется 2 -й шаг: u 2 = a + *Fs-2 -1 и вычисляется Q = Q(u 2).
Метод с использованием чисел Фибоначчи Q=Q(u) max(min), a u b Алгоритм поиска (продолжение): 6. Дальнейшие шаги: ui+1 = ul ± sign(ui – ui-1) sign(Q(ui) - Q(ui-1))* Fs-2 -i , где ul - значение u, при котором достигнуто наилучшее значение функции. Знак (+) ставится в задаче Q(u) max, знак (-) ставится в задаче Q(u) min. На каждом шаге вычисляется функция Q(u). Поиск заканчивается после использования числа Фибоначчи F 0 , т. е. когда будут исчерпаны все числа Фибоначчи от Fs-2 до F 0.
Численные методы решения многомерных задач статической оптимизации Решается задача Q(u 1, …, ur) max(min) u Q(u 1*, u 2*) u 1* u 2 Многомерная функция u 1
Численные методы решения многомерных задач статической оптимизации Q(u 1*, u 2*) u 1 u 2 Формирование линий уровня многомерной функции Рассматриваются методы: Гаусса-Зейделя, градиента, наискорейшего спуска (подъема), случайного поиска. .
Метод Гаусса-Зейделя Решается задача Q(u 1, …, ur) max(min), u uimin uimax, i = 1, …, r. u 2 u 1 Поиск методом Гаусса-Зейделя.
Метод Гаусса-Зейделя Q(u 1, …, ur) max(min) u Алгоритм поиска (заданы i, ): 1. Выбирается исходная точка поиска u 1 = (u 11, …, u 1 r) и вычисляется Q = Q(u 1). 2. Из точки u 1 осуществляется движение по переменной u 1 u 21 = u 11 h 1 (sign ( Q)/( u 1)|u=u ) до выполнения условия | Q / u 1| 1. 3. Пункт 2 повторяется из полученной точки для переменной u 2. Аналогично осуществляется движение по всем оставшимся переменным u 3, u 4, …, ur. 4. Проверяется выполнение условия окончания поиска 1 5. В случае невыполнения пункта 4 повторяются пункты 1 -4, принимая за исходную точку поиска ту, в которую пришли в пункте 4.
Метод градиента Решается задача Q(u 1, …, ur) max(min), u uimin uimax, i = 1, …, r. Градиент функции Q(u): где Ki - вектор, определяющий направление по i -ой координатной оси. Модуль градиента Направление градиента
Метод градиента Решается задача Q(u 1, …, ur) max(min), u uimin uimax, i = 1, …, r. u 2 u 1 Поиск методом градиента.
Метод градиента Решается задача Q(u 1, …, ur) max(min), u uimin uimax, i = 1, …, r. Алгоритм поиска (задано ): 1. Выбирается исходная точка поиска u 1 = (u 11, …, u 1 r) 2. Вычисляется 3. Проверяется выполнение условия окончания поиска 4. Если условие окончания поиска выполнено, то поиск окончен. 5. Если условие окончания поиска не выполнено, то выполняется шаг uk+1 i = uki hk cos j в направлении градиента, где знак (+) для задачи Q(u) max, знак (-) для задачи Q(u) min.
Метод градиента Алгоритм поиска (продолжение): Если то uk+1 i = uki h 0( Q(u)/ ui)|uk , где h 0 – базовое значение шага. 6. Сравниваются значения функций Q(uk) и Q(uk+1). Если для Q(u) max выполняется Q(uk+1) > Q(uk), или для Q(u) min выполняется Q(uk+1) < Q(uk), то пункты 2 -6 повторяются до выполнения условия окончания поиска в пункте 3. Если для Q(u) max имеет место Q(uk+1) Q(uk), или для Q(u) min имеет место Q(uk+1) Q(uk), то возвращаются в точку u = uk, уменьшают шаг h 0 и переходят к пункту 5.
Метод наискорейшего спуска (подъема). Решается задача Q(u 1, …, ur) max(min), u uimin uimax, i = 1, …, r. u 2 u 1 Поиск методом наискорейшего спуска Отличается от метода градиента, тем, что движение из выбранной точки uk в направлении n градиента производится до выполнения условия i = 1, …, r.
Метод движения по дну оврага Решается задача Q(u 1, …, ur) max(min), u uimin uimax, i = 1, …, r. u 2 u 7 u 8 u 5 u 6 u 4 u 2 u 3 u 1 Поиск методом движения по дну оврага
Метод движения по дну оврага Решается задача Q(u 1, …, ur) max(min), uimin uimax, i = 1, …, r. u Алгоритм поиска: 1. Задается hmin. 2. Выбор исходной точки поиска u 1 и спуск из нее в направлении Grad. Q(u 1) на дно оврага в точку u 2. 3. Смещение из точки u 1 в точку u 3 на небольшое расстояние ортогонально направлению Grad. Q(u 1) и спуск из нее в направлении Grad. Q(u 3) на дно оврага в точку u 4. 4. Сравнение значений функций Q(u 2) и Q(u 4) в точках u 2 и u 4, лежащих на дне оврага. 5. Если для Q(u) max имеет место Q(u 4) Q(u 2), или для Q(u) min имеет место Q(u 4) < Q(u 2), то в направлении от u 2 к u 4 из u 4 выполняется рабочий шаг h и переход в точку u 5, лежащую на склоне оврага (хребта).
Метод движения по дну оврага Решается задача Q(u 1, …, ur) max(min), uimin uimax, i = 1, …, r. u Алгоритм поиска (продолжение): 6. Спуск на дно оврага из точки u 5 в точку u 6. Все точки, лежащие на дне оврага, имеют четные индексы и обозначаются u 2+2 i (i = 0, 1, 2, …). Все точки, лежащие на склоне оврага (хребта), имеют нечетные индексы и обозначаются u 3+2 i (i = 0, 1, 2, …). 7. Сравнение значений функций в соседних точках u 2+2 i и u 2+2(i+1), лежащих на дне оврага. 8. Если для Q(u) max имеет место Q(u 2+2(i+1)) > Q(u 2+2 i ), или для Q(u) min имеет место Q(u 2+2(i+1)) < Q(u 2+2 i), то в направлении от u 2+2 i к u 2+2(i+1) из u 2+2(i+1) выполняется рабочий шаг h и переход в точку u 3+2(i+1) , лежащую на склоне оврага (хребта).
Метод движения по дну оврага Решается задача Q(u 1, …, ur) max(min), uimin uimax, i = 1, …, r. u Алгоритм поиска (окончание): 9. Если для Q(u) max (или Q(u) min) имеет место Q(u 2+2(i+1)) Q(u 2+2 i ) (соответственно Q(u 2+2(i+1)) Q(u 2+2 i), то выполняется возвращение в точку u 3+2 i и уменьшение рабочего шага h, например вдвое. 10. Проверяется выполнение условия h hmin. 11. Если условие окончания поиска выполнено, то оптимальное значение u* полагается равным u 2+2 i. 12. Если условие окончания поиска не выполнено, то движение из точки u 2+2 i с полученным шагом по направлению от u 2+2(i-1) к u 2+2 i и переход в точку u 3+2 i, а из нее спуск на дно оврага в точку u 2+2(i+1). 13. Переход к пункту 7.
Решение задач оптимизации на условный экстремум методом штрафных функций Решение задач оптимизации при условии типа равенства Решается задача Q(u) = Q(u 1, …, ur) max(min), j(u 1, …, ur) = 0, j = 1, …, m. u Формируется штрафная функция , где , > 0 - большое число, при котором, за исключением малой окрестности около границ j(u) = 0, должно выполнятся условие , i = 1, …, r. Знак (+) принимается для задачи Q(u) min, знак (-) принимается для задачи Q(u) max.
Решение задач оптимизации на условный экстремум методом штрафных функций Решение задач оптимизации при условии типа равенства u 2 (u 1, u 2)>0 (u 1, u 2)=0 ( u 1, u 2)<0 Q 1(u) u 1 Трансформирование линии уровня при условиях типа равенства Линии уровня функции Q(u) трансформируется в линии уровня функции (u) за счет штрафной составляющей H(u), уплотняясь вдоль границы. Чем больше величина и чем больше нарушаются ограничения, тем линии уровня ближе к границе.
Решение задач оптимизации на условный экстремум методом штрафных функций Решение задач оптимизации при условии типа неравенства Решается задача Q(u) = Q(u 1, …, ur) max(min), u j(u 1, …, ur) 0, j = 1, …, m. Формируется штрафная функция , где sign (u) = -1, если j(u) < 0, sign (u) = -1, если j(u) > 0, - большое положительное число. Знак (+) принимается для задачи Q(u) min, знак (-) принимается для задачи Q(u) max.
Решение задач оптимизации на условный экстремум методом штрафных функций Решение задач оптимизации при условии типа неравенства u 2 u 1 (u 1, u 2)>0 (u 1, u 2)<0 Q(u) (u 1, u 2)=0 u 1 Трансформирование линии уровня при условиях типа неравенства Линии уровня функции Q(u) трансформируется в линии уровня функции (u) за счет штрафной составляющей , уплотняясь со стороны запретной области вдоль границ j(u) = 0, j = 1, …, m. Чем больше коэффициент и чем сильнее нарушаются ограничения, тем плотнее линии уровня функции (u) приближаются к границе со стороны запретной области.
Методы случайного поиска Решается задача Q(u 1, …, ur) max(min), u uimin uimax, i = 1, …, r. Рассмотрим: - метод слепого поиска - метод случайных направлений
Метод слепого поиска Q(u 1, …, ur) max(min), u uimin uimax, i = 1, …, r. Заданы: объем области v = r, определяющей точность вычисления вектора оптимальных управлений u*=(u 1, …, ur), в допустимой области изменения переменных ui, (i=1, …, r) объемом V = 1; вероятность , с которой требуется попасть в область r расположения вектора u*.
Метод слепого поиска Q(u 1, …, ur) max(min), u uimin uimax, i = 1, …, r. Алгоритм метода: 1. Вычисляется число точек s в области допустимых значений ui, (i=1, …, r), при котором гарантируется попадание хотя бы одной из них в область v. Из выражения = 1 -(1 -v)s имеем s = ln(1 - ) / ln(1 -v). 2. Выбираются s совокупностей случайных чисел ui, (i=1, …, r), определяющих uk, (k=1, …, s). 3. Вычисляются значения функции Q = Q(uk), (k=1, …, s) и выбирается наилучшее из них.
Метод случайных направлений Решается задача Q(u 1, …, ur) max(min), uimin uimax, i = 1, …, r. u Формируется вектор случайных направлений = ( 1, …, r), где i, j - случайные числа. , u 2 u 1 Поиск методом случайных направлений
Метод случайных направлений Решается задача Q(u 1, …, ur) max(min), uimin uimax, i = 1, …, r. u Алгоритм поиска: 1. Задаются hmin и число S неудачных направлений из одной точки. 2. Выбирается исходная точка поиска u 1 и вычисляется Q = Q(u 1). 3. Из выбранной точки выполняется шаг hk в случайном направлении uk+1 i = uki + hk· i , i = 1, …, r, и вычисляется Q = Q(uk+1) (для 1 -го шага k=1). 4. Сравниваются значения функций Q(uk) и Q(uk+1).
Метод случайных направлений Решается задача Q(u 1, …, ur) max(min), uimin uimax, i = 1, …, r. u Алгоритм поиска (продолжение): 5. Если для Q(u) max имеет место Q(uk+1) > Q(uk), или для Q(u) min имеет место Q(uk+1) < Q(uk), то для точки uk+1 выполняются пункты 3 -4. 6. Если для Q(u) max имеет место Q(uk+1) Q(uk), или для Q(u) min имеет место Q(uk+1) Q(uk), то возвращение в точку uk. 7. Проверяется выполнение условия окончания поиска s S, при h hmin , где s - число неудачных направлений из точки uk. 8. Если условие пункта 7 выполняется, то оптимальное u* = uk. 9. Если условие пункта 7 не выполняется, то длина последнего шага уменьшается, например, вдвое, и для точки u = uk выполняются пункты 3 -9.
Динамическое программирование в дискретной форме В дискретной форме динамическое программирование является декомпозиционным методом решения задач статической оптимизации. Особенность динамического программирования в дискретной форме позволяет свести задачу большой размерности к ряду подзадач меньшой размерности. В динамическом программировании критерий оптимальности Q = Q(u 1, …, ur) должен быть функцией Марковского типа, т. е. он может быть представлен в виде функции от состояния S = S (u 1, …, ur-1), в которое приходит последний объект в результате воздействия (r-1) управлений, и от оставшегося управления ur, т. е. Q = Q(S, ur). Предполагается, что процесс протекающий в исследуемом объекте, можно рассматривать как многостадийный (N-стадийный, см. рисунок ниже).
Динамическое программирование в дискретной форме q 1(S 0, u 1) q 2(S 1, u 2) 1 2 u 1 u 2 q. N-1(SN-2, u. N-1) q. N(SN-1, u. N) N-1 u. N-1 N u. N Многостадийный процесс Здесь: Si-1 - состояние перед i-ой стадией; ui - управление на i-ой стадии; qi(Si-1, ui) - составляющая критерия оптимальности, полученная на i-ой стадии. Состояния соседних стадий связаны выражением Si = Si (Si-1, ui), i=1, …, N.
Динамическое программирование в дискретной форме Рассматривается критерий оптимальности в виде. В основе динамического программирования лежит принцип оптимальности: оптимальная стратегия обладает таким свойством, что для любых значений управлений u 1, …, uk, при которых система пришла в состояние Sk = Sk (S 0, u 1, …, uk), оставшиеся управления uk+1, …, ur должны принимать такие значения, при которых критерий оптимальности принимает наилучшее значения относительно состояния Sk.
Динамическое программирование в дискретной форме Алгоритм решения задачи оптимизации методом динамического программирования. Принцип оптимальности реализуется по шагам следующим образом: 1. Задаются условно значения вектора состояний Si = (S 1 i, …, Sin), i=1, …, N-1. Составляющие Sik, i=1, …, N-1; k=1, …, n, есть значения переменных состояния, выбранные в допустимом диапазоне изменения Sikmin Sikmax. 2. На первом шаге оптимизируется N-ая составляющая критерия оптимальности. При решении задачи Q(u) max получаем FN-1, N (Sn-1)=max [q. N (SN-1, u. N)]. При этом получается u*N = N (SN-1).
Динамическое программирование в дискретной форме Алгоритм решения задачи оптимизации методом динамического программирования (продолжение): На втором шаге оптимизируется совместное функционирование N-1 -ой и N-ой стадий процесса, с учетом результата оптимизации, полученного на 1 -ом шаге, в виде FN-2, N(s. N-2)=max[q. N-1(s. N-2, u. N-1)+FN-1, N(s. N-1)]. При этом получается u*N-1 = N-1(s. N-2). Заметим, что в состоянии s. N-1 приходят в соответствии с s. N-1= s. N-1(s. N-2, u. N-1). 3. На последующих шагах оптимизируется совместное функционирование вновь вводимой стадии процесса со стадиями процесса, рассмотренными на предыдущем шаге по функциональному уравнению динамического программирования FN-k-1, N (s. N-k-1) = = max[q. N-k(s. N- k-1, u. N- k)+FN-k, N(s. N-k)], k=2, 3, 4, …, N.
Динамическое программирование в дискретной форме Алгоритм решения задачи оптимизации методом динамического программирования (продолжение): При этом получается u*N-k = N-k(s. N-k-1) , а в состояние s. N-k приходят в соответствии с s. N-k= s. N-k(s. N-k-1, u. N-k). 4. На последнем (N-ом) шаге имеем F 0, N (s 0) = = max[q 1(s 0, u 1)+F 1, N(s 1)], u*1 = 1(s 0), s 1 = s 1(s 0, u 1). 5. Выделяются оптимальные значения управлений u*i, i=1, …, N, следующим образом:
Динамическое программирование в дискретной форме Алгоритм решения задачи оптимизации методом динамического программирования (окончание): Для заданного состояния s 0 после выполнения N -го шага оптимизации при u*1 = 1(s 0) переходят в оптимальное состояние s*1 = s 1(s 0, u*1). Далее используется выражение u*2 = 2(s*1). Оптимальные значения остальных управлений u*i, i=3, 4, …, N выделяются поочередным использованием выражений s*k = sk(s*k-1, u*k) и u*k+1 = k+1(s*k), k=2, 3, …N.


