
541a36538556978be43c747270398471.ppt
- Количество слайдов: 94
Методы оптимизации - I Проф. В. П. Кривошеев
Основные понятия • Оптимизация есть процесс нахождения таких управлений или решений, при которых показатель функционирования объекта управления принимает наилучшее (минимальное или максимальное) значение. • Критерий оптимальности есть количественный показатель функционирования объекта управления. • Объект управления есть объект, в котором протекает управляемый процесс.
Виды критериев оптимальности: - целевая функция - функционал Целевая функция есть математический оператор, который числу на входе ставит в соответствие число на выходе. Функционал есть математический оператор, который функции на входе ставит в соответствие число на выходе.
Виды объектов управления: объект с сосредоточенными параметрами; объект с распределенными параметрами. Объект с сосредоточенными параметрами – есть объект, в каждой точке которого в рассматриваемый момент времени характеризующие его состояние переменные принимают одни и те же значения. Объект с распределенными параметрами – есть объект, в направлении координатных осей которого в рассматриваемый момент времени характеризующие его состояние переменные имеют различные значения (распределены в направлении координатных осей).
Состояния объекта управления • Статическое состояние • Динамическое состояние
Статическое состояние Признаком статического состояния объекта управления является постоянство во времени переменных, характеризующих состояние объекта управления, т. е. dxi/dt = 0, где xi – переменные, характеризующие состояние объекта управления. Физически статическое состояние есть состояние, при котором имеет место Приход (энергии, вещества) = = Расход (энергии, вещества)
Динамическое состояние Признаком динамического состояния объекта управления является изменение во времени переменных, характеризующих состояние объекта управления, т. е. dxi/dt 0. Физически динамическое состояние есть состояние, при котором имеет место Приход (энергии, вещества) - Расход (энергии, вещества) Накопление или истечение (энергии, вещества).
Переменные, характеризующие объект управления: x 1 … xm u 1 Объект y 1 управления yn ur Входные переменные: a) возмущающие (внешние) воздействия (xk, k=1, 2, …, m); b) управляющие воздействия (uj, j=1, 2, …, r); Выходные переменные (yi, i=1, 2, …, n).
Связь переменных при статическом и динамическом состояниях объекта Связь переменных при статическом состоянии объекта управления: или , где .
Связь переменных при статическом и динамическом состояниях объекта Связь переменных при динамическом состоянии объекта управления: , или , где . Здесь - переменная, характеризующая состояние объекта управления.
Выбор критериев оптимальности для задач оптимизации объектов, находящихся в статическом и динамическом состояниях Критерии оптимальности для объектов, находящихся в статическом состоянии: a) для объектов с сосредоточенными параметрами – целевая функция в виде ; b) для объектов с распределенными параметрами – функционал в виде где , l – пространственная координата.
Выбор критериев оптимальности для задач оптимизации объектов, находящихся в статическом и динамическом состояниях Критерии оптимальности для объектов, находящихся в динамическом состоянии есть функционал в виде: , где t – время. ,
Виды функций по количеству экстремумов - унимодальные, имеющие один экстремум - полимодальные, более одного экстремума Виды экстремумов и наилучших значений функции - локальный минимум полимодальной функции в точке 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зад, i=1, …, k, 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, и многомерная, если ЧСС >1.
Примеры корректной и некорректной постановок задачи оптимизации Пример корректной постановки задачи оптимизации: Q(u 1, u 2) max(min), u 1, u 2 a 1 u 1+a 2 u 2 = b 1. Число степеней свободы = = 2 (искомые переменные u 1, u 2) – 1 (число уравнений, связывающих переменные u 1, u 2) = 1. Пример некорректной постановки задачи оптимизации: Q(u 1, u 2) max(min), u 1, u 2 a 11 u 1+a 12 u 2 = b 1, a 21 u 1+a 22 u 2 = b 2. Число степеней свободы = 2 – 2 = 0.
Методы статической оптимизации 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, u 1*+u 2* – 1= 0, L/ u 1 - L/ u 2= 2 u 1*- 2 u 2*= 0, отсюда u 1*= u 2*. Используя это равенство в уравнении ограничения, получаем u 1*+ u 1*= 0, или u 1*= 0, 5; 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. Сравнение значений функций 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.
Линейное программирование Особенности задач линейного программирования Линейность целевой функции и линейность условий связи варьируемых переменных является особенностью задач линейного программирования. a 11 u 1+a 12 u 2+…+a 1 nun b 1 a 21 u 1+a 22 u 2+…+a 2 nun b 2 ······················ am 1 u 1+am 2 u 2+…+amnun bm ui 0, i = 1, …, n.
Линейное программирование Особенности задач линейного программирования В пространстве переменных ui, i = 1, …, n, геометрическая фигура целевой функции, изображающая условие Q(u) = Const, есть гиперплоскость, а область допустимых значений переменных в соответствии с приведенными выше условиями является многогранником. Грани многогранника - плоскости, а ребра многогранника - прямые линии, причем эта область выпуклая.
Линейное программирование Особенности задач линейного программирования u 2 u 6=0 u 5=0 u* Q(u) = Const u 2=0 u 1=0 u 3=0 u 4=0 u 1 Область допустимых управлений в задаче линейного программирования
Линейное программирование Особенности задач линейного программирования В связи с изложенным оптимальному состоянию системы в задаче Q(u) min (max) соответствует одна из вершин многогранника ограничений или оптимальное решение имеют бесчисленное множество точек, принадлежащих одной из граней многогранника ограничений. Последнее имеет место в том случае, когда коэффициенты при соответствующих переменных ui, i = 1, …, n, в целевой функции пропорциональны коэффициентам при тех же переменных в одном из условий связи. В задачах линейного программирования целевая функция называется линейной формой.
Линейное программирование Особенности задач линейного программирования Систему неравенств, связывающих переменные, можно переписать в канонической форме a 11 u 1+a 12 u 2+…+a 1 nun + un+1 b 1 a 21 u 1+a 22 u 2+…+a 2 nun + un+2 b 2 ··························· am 1 u 1+am 2 u 2+…+amnun + un+m bm un+j 0, j = 1, …, m. Теперь уравнения границ, получаемых при обращении исходных условий связи из неравенств в равенства, можно записать в виде uk 0, (k=1, …, n, n+1, …, n+m).
Линейное программирование Особенности задач линейного программирования Рассматривая общее число переменных u 1, u 2, …, un+1, …, un+m, отметим следующее свойство задач линейного программирования: в вершинах многогранника ограничений ровно столько переменных обращаются в ноль, сколько степеней свободы имеет система, а остальные переменные в ноль не обращаются. Анализ числа степеней свободы системы показывает, что имеется m уравнений, связывающих n+m переменных uk (k=1, …, n+m). Следовательно, число степеней свободы ровно n+m-m=n. Таким образом, в вершине многогранника ограничений ровно n переменных из uk (k=1, …, n+m) обращаются в ноль. Эти переменные называются свободными переменными. Остальные m переменных в ноль не обращаются и называются базисными переменными. Вершины многогранника ограничений называются базисами.
Симплекс-метод решения задач линейного программирования Сущность симплекс-метода состоит в том, что из исходного базиса переходят одним шагом в соседний с ним базис. Проверяют выполнение условий оптимальности в этом базисе. Если условие оптимальности не выполняется, то из этого базиса переходят в другой соседний с ним базис. Алгоритм решения задачи симплекс-методом: 1. Выбирается исходный базис с координатами u 1 = (u 1, …, ur, un+1, …, un+m) = (0, …, 0, b 1, …, bm). 2. Систему связи, взятую в канонической форме, записывают в виде выражений базисных переменных через свободные, т. е. uk = bk - ak 1 u 1 - ak 2 u 2 -…- aknun, k = 1, …, m.
Симплекс-метод решения задач линейного программирования Алгоритм решения задачи симплекс-методом (продолжение): Линейная форма так же выражается через свободные переменные Q(u)=C 0+C 1 u 1+…+Ci-1 ui-1+Ciui+Ci+1 ui+1+…+Cnun. 3. В выражении линейной формы выбирается та переменная ui, увеличение которой в области u 0 относительно исходного базиса вызывает улучшение линейной формы. 4. Рассматриваются построчно отношения константы bk к коэффициенту aki при переменной ui. Причем, при коэффициенте aki должен быть отрицательный знак.
Симплекс-метод решения задач линейного программирования Алгоритм решения задачи симплекс-методом (продолжение): 5. Выбирается j-я строка из системы связей, удовлетворяющая условию bj/aji = min bk/aki, где k только для коэффициентов aki, k =1, …, n, имеющих при себе отрицательный знак. un+1= b 1 -a 11 u 1 -…-a 1, i-1 ui-1 -a 1, iui-a 1, i+1 ui+1 -…-a 1 nun ………………………………. un+j-1= bj-1 -aj-1, 1 u 1 -…-aj-1, i-1 ui-1–aj-1, iui-aj-1, i+1 ui+1 -…-aj-1, nun un+j= bj-aj, 1 u 1 -…-aj, i-1 ui-1–aj, iui-aj, i+1 ui+1 -…-aj, nun un+j+1=bj+1 -aj+1, 1 u 1 -…-aj+1, i-1 ui-1 -aj+1, iui-aj+1, i+1 ui+1 -…-aj+1, nun ……………………………. . . un+m= bm–am, 1 u 1 -…-am, i-1 ui-1–am, iui-am, i+1 ui+1 -…-am, nun В выбранной строке коэффициент aji называется разрешающим элементом, а сама строка называется строкой, содержащей разрешающий элемент.
Симплекс-метод решения задач линейного программирования Алгоритм решения задачи симплекс-методом (продолжение): Заметим, что принятии переменной ui значения ui = bi/aji переменная un+j обращается в ноль. Следовательно, осуществлен переход в соседний базис, где переменная uj приняла значение, равное нулю, т. е. стала свободной. При указанном значении ui = bi/aji условие un+k 0 (k=1, …, m) выполняется. 6. Из строки, содержащей разрешающий элемент, выражается ui ui=bi/aji-(aj, 1/aji)u 1 -…-(aj, i-1/aji)ui-1 -(1/aji)un+j-(aj, i+1/aji)ui+1 …-(ajn/aji) un и подставляется в остальные строки системы уравнений связи.
Симплекс-метод решения задач линейного программирования Алгоритм решения задачи симплекс-методом (продолжение): После приведения подобных членов получается un+1= b 1 -a 11 u 1 -…-a 1, i-1 ui-1 -a 1, n+jun+j-a 1, i+1 ui+1 -…-a 1 nun ……………………………. . un+j-1= bj-1 -aj-1, 1 u 1 -…-aj-1, i-1 ui-1–aj-1, n+jun+j-aj-1, i+1 ui+1 -… -aj-1, nun un+j= 0 un+j+1= bj+1 -aj+1, 1 u 1 -…-aj+1, i-1 ui-1–aj+1, n+jun+j –aj+1, iui - aj+1, i+1 ui+1 -…-aj+1, nun …………………………… un+m= bm–am, 1 u 1 -…-am, i-1 ui-1–am, n+jun+j-am, i+1 ui+1 -…-am, nun 7. Выражение ui подставляется в линейную форму. После приведения подобных членов получается: Q(u) = C 0+C 1 u 1+…+Ci-1 ui-1+Cn+jun+j+Ci+1 ui+1+Cm+num+n.
Симплекс-метод решения задач линейного программирования Алгоритм решения задачи симплекс-методом (продолжение): 8. Записываются координаты базиса, в который пришли u 2 = (u 1, …, ui-1, un+j, ui+1, …, un+j-1, ui, un+j+1, …, um+n) = (0, …, 0, 0, 0, …, b 1, …, bj-1, bi= bj/ aji, …, bn+m). Значение линейной формы в этом базисе Q = C 0. 9. Проверяется условие оптимальности базиса u 2. Если для базиса u 2 в задаче Q(u) min имеет место Ci > 0, а в задаче Q(u) max имеет место Ci < 0, где Ci - любой из коэффициентов линейной формы, исключая C 0, то базис u 2 является оптимальным.
Симплекс-метод решения задач линейного программирования Алгоритм решения задачи симплекс-методом (окончание): 10. Если условие оптимальности не выполняется, то в выражении линейной формы Q(u) выбирается переменная, улучшающая линейную форму при возрастании этой переменной, и повторяются пункты 4 -9. При практической реализации симплекс-метода переход от одного базиса к другому и проверка базиса на оптимальность формализуется с использованием упрощающих приемов в форме симплекс-таблиц.
Симплекс-таблицы Система ограничений представляется в виде un+1+a 11 u 1+…+a 1, i-1 ui-1+a 1, iui+a 1, i+1 ui+1+…+a 1 nun= b 1 ···································· un+j-1+aj-1, 1 u 1+…+aj-1, i-1 ui-1+aj-1, iui+aj-1, i+1 ui+1+…+aj-1, nun= = bj-1 un+j +aj, 1 u 1+…+aj, i-1 ui-1+aj, iui+aj, i+1 ui+1+…+aj, nun= bj un+j+1+aj+1, 1 u 1+…+aj+1, i-1 ui- 1+aj+1, iui+aj+1, i+1 ui+1+… … +aj+1, nun= bj+1 ···································· un+m+am, 1 u 1+…+am, i-1 ui-1+am, iui+am, i+1 ui+1+…+am, nun= bm, а линейная форма представляется в виде Q(u) - C 1 u 1 -…. - Ci-1 ui-1 - Ciui- Ci+1 ui+1 -…-Cnun = C 0. В приведенных уравнениях свободными переменными являются un+1, …, un+m. Координаты исходного базиса u 1 = (u 1, …, ur, un+1, …, un+m) = (0, …, 0, b 1, …, bm). Этому состоянию соответствует симплекс-таблица 1.
Симплекс-таблицы б/п с/п переменные un+1 un+j-1 un+j+1 … un+m u 1 … ui-1 … ui ui+1 … un un+1 b 1 1 … 0 0 0 … 0 a 11 … a 1, i-1 a 1, i+1 … a 1 n … … … … … … un+j-1 bj-1 0 … 1 0 0 … 0 aj-1, 1 … aj-1, i-1 aj-1, i+1 … aj-1, n un+j 0 … 0 1 0 … 0 aj, 1 … aj, i-1 un+j+1 bj+1 0 … 0 0 1 … 0 aj+1, 1 … aj+1, i-1 aj+1, i+1 …aj+1, n … … bj … … aj, i+1 … aj, n … … … … … … un+m bm 0 … 0 0 0 … 1 am, 1 … am, i-1 am, i+1 … am, n л/ф C 0 Q 0 … 0 0 0 … 0 -C 1 … -Ci-1 -Ci+1 … -Cn Симплекс-таблица 1 … …
Симплекс-таблицы Пусть разрешающим элементом является aji. Тогда очередной шаг симплекс-метода состоит в переходе от базиса u 1 к базису u 2 = (u 1, …, ui-1, ui, ui+1, …, un+1, …, un+j-1, un+j+1, …, um+n) = (0, …, 0, bj/ aji, 0, …, 0, b 1, …, bj-1, 0, bj+1, …, bm) через систему: un+1+ã 1, iu 1+…+ã 1, i-1 ui-1+ã 1, jun+j+ã 1, i+1 ui+1+…+ã 1 nun= b'1 ……………………………. . un+j-1+ã j-1, 1 u 1+…+ã j-1, i-1 ui-1+ã j-1, jun+j+ã j-1, i+1 ui+1+…+ã j-1, nun = b'j-1 uj +ã i, 1 u 1+…+ã i, i-1 ui-1+ã i, jun+j+ã i, i+1 ui+1+…+ã i, nun= b'i un+j+1+ã j+1, 1 u 1+…+ã j+1, i-1 ui-1+ã j+1, jun+j+ã j+1, i+1 ui+1+…+ã j+1, nun = b'j+1 ……………………………. . un+m+ã m, 1 u 1+…+ã m, i-1 ui-1+ã m, jun+j+ã m, i+1 ui+1+…+ã m, nun= b'm При этом линейная форма принимает вид: Q(u) - C'1 u 1 -…. - C'i-1 ui-1 - C'jun+j- C'i+1 ui+1 -…-C'nun = C'0. Базису u 2 соответствует симплекс-таблица 2.
Симплекс-таблицы б/п с/п переменные un+1 un+j-1 un+j+1 … un+m u 1 … ui-1 ui ui+1 … un+1 b'1 … 0 a'1, i 0 … 0 a'11 … a'1, i-1 0 a'1, i+1 … a'1 n … … … … un+j-1 b'j-1 0 … 1 ui b'i 0 … 0 un+j+1 b'j+1 0 … a'j-1, i 0 … 0 a'j-1, 1… a'j-1, i-1 0 a'j-1, i+1 … a'j-1, n a'j, i 0 … 0 a'j+1, i 1 … 0 a'j+1, …a'j+1, i-1 0 a'j+1, i+ … a'j+1, n a'j, 1 … a'j, i-1 1 a'j, i+1 … a'j, n 1 1 … … … … un+m b'm 0 … 0 a'm, i 0 … 1 a'm, 1 … a'm, i-1 0 a'm, i+1 … a'm, n л/ф C'0 0 … 0 Q -C'n+j 0 … 0 -C'1 … -C'i-1 0 -C'i+1 … -C'n Симплекс-таблица 2
Симплекс-таблицы Координаты базиса u 2 = (u 1, …, ui-1, ui+1, …, un+1, …, un+j-1, un+j+1, …, um+n) = (0, …, 0, b'i, 0, …, 0, b'1, …, b'j-1, 0, b'j+1, …, b'm). Линейная форма в этом базисе Q = C'0. Строки симплекс-таблицы 2 формируются следующим образом: 1. Выбираются варьируемая переменная, например ui, и отыскивается разрешающий элемент aji. 2. Строка, содержащая разрешающий элемент an+j, i, умножается на величину 1/an+j, i. Значения полученных при этом элементов записываются на месте соответствующих элементов старой строки.
Симплекс-таблицы 3. К каждой из строк симплекс-таблицы 1 поочередно прибавляется полученная в пункте 2 строка, умноженная на такой коэффициент, при котором сумма элементов двух складываемых строк в столбце ui обращается в нуль. 4. Анализируются элементы строки линейной формы. Если, за исключением C'0, все C'k (k-для коэффициентов при n свободных переменных) удовлетворяют условию C'k > 0 в задаче максимизации линейной формы (C'k < 0 в задаче минимизации линейной формы), то найдено оптимальное решение. Если указанные условия не выполняются, то вычисления продолжаются относительно полученного базиса переходом к пункту 1.
Симплекс-таблицы Пример. Минимизировать линейную форму Q = u 1 – u 2. Система ограничений в каноническом виде: u 3 + u 1 – 2 u 2 = 1, u 4 + 2 u 1 + u 2 = 2, u 5 + 3 u 1 + u 2 = 3. Линейную форму запишем в виде Q-u 1+u 2= 0. Симплекс-таблица 1: базовые свобод. пере- члены менные u 3 1 u 4 2 u 5 лин. ф. 3 0 u 3 переменные u 4 u 5 u 1 u 2 1 0 0 1 -2 0 1 0 -2 1 0 0 1 0 3 -1 1 1
Симплекс-таблицы Координаты первого базиса u 1 = (u 1, u 2, u 3, u 4, u 5)= = (0, 0, 1, 2, 3), линейная форма Q = 0. В качестве варьируемой переменной выбираем u 2. Разрешающий элемент a 42 = 1. Согласно алгоритму формирования симплекс таблиц получим для второго базиса: базовые свобод. пере- члены менные u 3 5 u 2 2 u 5 лин. ф. 1 -2 u 3 переменные u 4 u 5 u 1 u 2 1 2 0 -3 0 0 1 0 -2 1 0 0 -1 -1 1 0 5 1 0 0
Симплекс-таблицы Координаты второго базиса u 2 = (u 1, u 2, u 3, u 4, u 5) = (0, 2, 5, 0, 1), линейная форма Q = -2. Так коэффициенты линейной формы при свободных переменных u 1 и u 4 второго базиса не удовлетворяют условиям минимума линейной формы, то расчет продолжаем, переходя к третьему базису, формируя для него симплекс-таблицу. базовые свобод. пере- члены менные u 3 5. 6 u 2 2. 4 u 1 лин. ф. 0. 2 -2. 2 u 3 переменные u 4 u 5 u 1 u 2 1 1. 4 0. 6 0. 4 0 1 0 0 -0. 2 -0. 8 0. 2 -0. 2 1 0 0 0 Так коэффициенты линейной формы при свободных переменных имеют отрицательный знак, то оптимальное решение найдено. Координаты оптимального базиса u 3 = (u 1, u 2, u 3, u 4, u 5) = (0. 2, 2. 4, 5. 6, 0, 0). Значение линейной формы в этом базисе Q = -2. 2.