Скачать презентацию Теория оптимального управления экономическими системами — II Проф Скачать презентацию Теория оптимального управления экономическими системами — II Проф

a9dbe079dd37eb178718abc7f2ab97f3.ppt

  • Количество слайдов: 80

Теория оптимального управления экономическими системами - II Проф. В. П. Кривошеев Теория оптимального управления экономическими системами - II Проф. В. П. Кривошеев

Динамическое программирование в непрерывной форме. Уравнение Беллмана Решается задача оптимального управления y(0) = y Динамическое программирование в непрерывной форме. Уравнение Беллмана Решается задача оптимального управления 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( )) в Динамическое программирование в непрерывной форме. Уравнение Беллмана Разложим функцию ( , y( )) в ряд Тейлора относительно состояния t = 0, y(0) = y 0 по степеням y(t) и t. Примем, что t = . Заметим, что или С учетом малости можно записать

Динамическое программирование в непрерывной форме. Уравнение Беллмана Теперь min(J(y(0), u(t))), с учетом выше приведенных Динамическое программирование в непрерывной форме. Уравнение Беллмана Теперь min(J(y(0), u(t))), с учетом выше приведенных выражений, можно записать в виде

Динамическое программирование в непрерывной форме. Уравнение Беллмана Так как (0, y(0)) не зависит от Динамическое программирование в непрерывной форме. Уравнение Беллмана Так как (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)) при 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, Постановка задачи статической оптимизации 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. Методы нелинейного программирования: Методы статической оптимизации 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. Необходимое Примеры исследования функции одной переменной на экстремум Пример 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. Необходимое Примеры исследования функции одной переменной на экстремум Пример 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. 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. 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 Примеры исследования функции нескольких переменных на экстремум классическим методом Пример 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 Примеры исследования функции нескольких переменных на экстремум классическим методом Пример 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, - множители Метод множителей Лагранжа 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 Пример решения задачи методом множителей Лагранжа 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, Условия Куна-Таккера Рассматривается задача выпуклого программирования 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, Условия Куна-Таккера 2. Совместно решается система уравнений и неравенств: L(U, ) / ui=0, i=1, …, r, j j(U) = 0, j = 1, …, m, j(U) 0, j = 1, …, m.

К определению выпуклости функции Пусть 0 1. Произвольную точку на линии ab можно описать К определению выпуклости функции Пусть 0 1. Произвольную точку на линии ab можно описать как a+(b-a)(1 - )= a+(1 - )b, т. е. при = 0 это точка b, а при = 1 это точка а. В случае нелинейной функции ее значение в точке с = a+ (1 - )b есть Q[ a+(1 )b].

К определению выпуклости функции Значение линейной функции, проходящей через точки a и 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 Примеры решения задачи с использованием условия Куна-Таккера Пример 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 (продолжение): Пусть 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 (продолжение): Решение: 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. Задается Метод сканирования с постоянным шагом Функция 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. Задается Метод сканирования с переменным шагом Функция 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=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 Метод половинного деления 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) Метод половинного деления 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 Метод «золотого» сечения 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) Метод «золотого» сечения 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. Если условие Метод «золотого» сечения 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 Метод с использованием чисел Фибоначчи 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. Определяется Метод с использованием чисел Фибоначчи 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. Метод с использованием чисел Фибоначчи 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) Численные методы решения многомерных задач статической оптимизации Решается задача 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 Численные методы решения многомерных задач статической оптимизации Q(u 1*, u 2*) u 1 u 2 Формирование линий уровня многомерной функции Рассматриваются методы: Гаусса-Зейделя, градиента, наискорейшего спуска (подъема), случайного поиска. .

Метод Гаусса-Зейделя Решается задача Q(u 1, …, ur) max(min), u uimin uimax, i = Метод Гаусса-Зейделя Решается задача 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. Метод Гаусса-Зейделя 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 = Метод градиента Решается задача 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 = Метод градиента Решается задача 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 = Метод градиента Решается задача 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)/ Метод градиента Алгоритм поиска (продолжение): Если то 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, Метод наискорейшего спуска (подъема). Решается задача 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 Метод движения по дну оврага Решается задача 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, Метод движения по дну оврага Решается задача 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, Метод движения по дну оврага Решается задача 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, Метод движения по дну оврага Решается задача 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 Методы случайного поиска Решается задача Q(u 1, …, ur) max(min), u uimin uimax, i = 1, …, r. Рассмотрим: - метод слепого поиска - метод случайных направлений

Метод слепого поиска Q(u 1, …, ur) max(min), u uimin uimax, i = 1, Метод слепого поиска 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, Метод слепого поиска 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 = Метод случайных направлений Решается задача 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 = Метод случайных направлений Решается задача 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 = Метод случайных направлений Решается задача 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 Динамическое программирование в дискретной форме 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.