Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Тема 6.6. Одномерная оптимизацияСтр 1 из 4Следующая ⇒
Тема 6.6. Одномерная оптимизация
Постановка задачи Метод дихотомии Метод золотого сечения Сравнение методов Технология решения задач одномерной оптимизации средствами Математических пакетов Технология решения задач одномерной оптимизации средствами MathCad Технология решения задач одномерной оптимизации Средствами MatLab 6.2.7. Тестовые задания по теме «Одномерная оптимизация»
Постановка задачи
Задача оптимизации – одна из важнейших составляющих многих инженерных задач. Найти оптимальное решение – означает найти наилучший, в смысле заданного критерия, вариант из всех возможных. При решении задачи оптимизации рассматривается некоторая функция, называемая целевой (или критериальной ), и аргументы ( параметры целевой функции ), называемые параметрами оптимизации. По количеству независимых переменных различают задачи одномерной оптимизации ( n=1 ) и многомерной оптимизации ( n ³ 2 ). При этом задача нахождения максимума целевой функции сводится к задаче нахождения минимума путем замены функции f(x) на -f(x), поэтому в дальнейшем будем говорить только о поиске минимума функции, то есть такого x*Î [a, b], при котором f(x*) = min f(x). В области допустимых значений функция f(x) может иметь несколько экстремумов (минимумов или максимумов - рис. 4.6.1). Говорят, что функция f(x) имеет в точке x* локальный минимум, если существует некоторая положительная величина d, такая, что если ½ х – х*½ < d, то f(x)³ f(x*), т.е. существует d - окрестность точки х*, такая, что для всех значений х в этой окрестности f(x)³ f(x*). Функция f(x) имеет глобальный минимум в точке x*, если для всех х справедливо неравенство f(x)³ f(x*). Таким образом, глобальный минимум является наименьшим из локальных.
Рис. 6.6.1-1
Задачей одномерной оптимизации является нахождение точек локального минимума и соответствующих им значений функции, а в некоторых случаях требуется вычислить глобальный минимум. Однако, во всех случаях эта задача сводится к задаче нахождения локального минимума. Интервал, на котором локализован единственный минимум, называется отрезком неопределенности. Известно, что необходимым условием существования экстремума дифференцируемой функции f(x) является выполнение равенства f¢ (х) = 0. Точка х, удовлетворяющая данному условию, называется точкой стационарности. Достаточным условием существования минимума в точке стационарности является выполнение неравенства f¢ ¢ (х)> 0, а максимума - f¢ ¢ (х)< 0. Задача одномерной оптимизации имеет единственное решение в том случае, если функция f(x) на отрезке [a; b] имеет только один экстремум. Тогда говорят, что функция унимодальная на отрезке [a; b]. Достаточными условиями унимодальности функции на отрезке [a; b] являются: 1. Длядифференцируемой функции f(x) ее производная f¢ (х) - неубывающая. 2. Для дважды дифференцируемой функции f(x) выполняется неравенство f¢ ¢ (х)³ 0.
Все численные методы одномерной оптимизации применяются только для унимодальных на определенном интервале функций. Пример 6.6.1-1. Провести исследование функции f(x) = x3 – x + e-x на предмет существования экстремумов. Вначале проведем графическое исследование. Построим график функции f(x) (рис. 6.6.1-2). Из графика видно, что f(x) имеет две точки минимума: х1 и х2, причем точка х1 – точка глобального минимума. Исходя из графика, можно принять следующие отрезки неопределенности: для точки х1 - [-4; -3], а для точки х2 - [0; 1]. Рис. 6.6.1-2
Проверим достаточное условие существования минимума на выбранных отрезках:
f¢ (x) = 3x2 – 1 – e-x; f¢ ¢ (x) = 6x + e-x, f¢ (0) < 0, f¢ (1) > 0, f¢ ¢ (x) > 0 для хÎ [0; 1], f¢ (-4) < 0, f¢ (-3) > 0, f¢ ¢ (x) > 0 для хÎ [-4; -3].
Условия существования минимума выполнены, поскольку f¢ ¢ (x) > 0 для всех хÎ [0; 1] и хÎ [-4; -3]. Следовательно, функция f(x) является унимодальной на выбранных отрезках. На практике численные методы одномерной оптимизации применяют в следующих случаях:
· значения функции f(x) определены в ходе эксперимента; · целевая функция очень сложна или не имеет непрерывных производных; · классические методы поиска оптимального значения не применимы. Суть методов одномерного поиска заключается в том, что на каждой итерации интервал неопределенности уменьшается и стягивается к точке минимума. Уменьшение отрезка происходит до тех пор, пока на некоторой n- й итерации отрезок неопределенности [bn; an] не станет соизмеримым с заданной погрешностью e, то есть будет выполняться условие |bn-an| < e. Тогда за точку минимума можно принять любую точку, принадлежащую этому отрезку, в частности, его середину. Наиболее простым способом сужения интервала неопределенности является деление его на некоторое число равных частей с последующим вычислением значений целевой функции в точках разбиения. Очевидно, что за минимум принимают наименьшее из этих значений – это так называемый метод сканирования. На практике чаще применяют одну из основных модификаций метода – метод прямого перебора с переменным шагом. Суть его заключается в следующем. От начальной точки интервала неопределенности двигаются с начальным шагом до тех пор, пока функция в точках разбиения уменьшается (т.е. функция убывает). Если функция в очередной точке стала возрастать, то происходит сужение интервала неопределенности путем возврата от этой рассматриваемой (которая станет правой границей нового интервала) точки на два шага назад. Полученная таким образом точка будет левой границей нового отрезка. Новый отрезок вновь исследуют таким же образом, но уже с уменьшенным в два раза шагом. Процесс повторяется до момента достижения заданной точности минимума. Это весьма трудоемкий путь. Более эффективными являются методы одномерного поиска с другими способами выбора узлов и сужения интервалов неопределенности. Рассмотрим, в частности, метод дихотомии и метод золотого сечения.
Метод дихотомии
Пусть дана функция f(x), унимодальная на отрезке [a; b]. Обозначим a0 = a и
где d - параметр метода.
Сравнивая вычисленные в точках a1 и b1 значения функций f(a1) и f(b1), в силу унимодальности функции можно провести сокращение отрезка неопределенности следующим образом: 1) если f(a1) £ f(b1), то x*Î [a0; b1] (Рис. 6.6.1-3.а); 2) если f(a1) > f(b1), то x*Î [a1; b0] (Рис. 6.6.1-3.b).
а) b) Рис. 6.6.1-3 Если описанную процедуру принять за одну итерацию, то алгоритм поиска минимума можно описать следующим образом. Опишем k+1 итерацию, исходя из того, что k -й отрезок неопределенности найден [ak; bk]:
1. Вычисляются
2. Находят значения f(ak+1) и f(bk+1).
3. Находят k+1 -й отрезок неопределенности по правилу: если f(ak+1) > f(bk+1), то x* Î [ak+1; bk], если f(ak+1) £ f(bk+1), то x*Î [ak; bk+1]).
Вычисления проводятся до тех пор, пока не выполнится неравенство
где Dn – длина n -го отрезка неопределенности. Заметим, что от итерации к итерации Dn убывает и при n®¥ стремится к величине 2d, оставаясь больше этой величины. Поэтому добиться при некотором значении n длины отрезка неопределенности | меньше заданной точности можно лишь выбирая 0< d< e/2. Длину конечного интервала неопределенности, обеспечивающего заданную величину e, можно вычислить по формуле
Положив Dn = e, можно определить соответствующее количество итераций:
Схема алгоритма метода дихотомии приведена на рис. 6.6.1-4.
Рис.6.6.1-4. Схема алгоритма поиска минимума методом дихотомии Пример 6.6.2-1. Найти минимум функции f(x)=x3-x+e-х на отрезке [0; 1] c точностью e и вычислить количество итераций, требуемое для обеспечения точности. Выберем d =0.001 и положим a = 0; b = 1;
При e = 0.1 x*=0.7183 f(x*)=0.1399, а при e = 0.01 x*=0.7066 f(x*)=0.13951 Метод золотого сечения
В основу метода положено разбиение отрезка неопределенности [a; b] в соотношении золотого сечения, такого, что отношение длины его большей части ко всей длине отрезка равно отношению длины его меньшей части к длине его большей части: l
l2 l1
Положим l =1, тогда l22= 1 - l2, а l22 + l2 -1= 0, откуда
где k1, k2 - коэффициенты золотого сечения. В методе золотого сечения каждая точка (х1 и х2 )осуществляет золотое сечение отрезка (рис. 6.6.3-1).
Рис. 6.6.3-1
или
Нетрудно проверить, что точка х1 осуществляет золотое сечение не только отрезка [a; b], но и отрезка [a; х2]. Точно так же точка х2 осуществляет золотое сечение не только отрезка [a; b], но и отрезка [х1; b]. Это приводит к тому, что значение целевой функции на каждой итерации (кроме первой) вычисляется один раз. После каждой итерации длина отрезка неопределенности сокращается в 1.618 раза. Длина конечного отрезка неопределенности Dn = 0.618nD0, где D0= (b-a) – начальная длина отрезка. Условие окончания процесса итераций Dn e. Отсюда можно найти количество итераций, необходимое для достижения точки минимума: отсюда логарифмируя, получим
Схема алгоритма метода золотого сечения приведена на рис. 6.6.3-2. Пример 6.6.3-1. Пусть минимум функции f(x) = x3 – x + e-x отделен на отрезке [0; 1]. Определить количества итераций и конечные длины отрезков неопределенности, необходимые для достижения заданных точностей e=0.1 и e=0.01.
При e = 0.1 x*=0.718847, f(x*)=0.139925. При e = 0.01 x*=0.704139, f(x*)=0.139516. 6.6.3-2. Схема алгоритма поиска минимума методом золотого сечения
Сравнение методов
Накаждойитерации при использовании метода дихотомии отрезок неопределенности сокращается практически в два раза, а при использовании метода золотого сечения в 1.618 раз. Конечная длина отрезка неопределенности при использовании метода дихотомии , а при использовании метода золотого сечения - , поэтому для обеспечения одного и того же значения погрешности методом дихотомии требуется произвести меньше итераций, чем при использовании метода золотого сечения. На каждой итерации в методе дихотомии целевая функция вычисляется два раза, а в методе золотого сечения только один раз, следовательно, метод золотого сечения менее трудоемок с точки зрения вычислений. Пример 6.6.5-3. Найти минимум и максимум ступенчатой функции.
Пример 6.6.5-4. Найти минимум функции одной переменной.
Глобальный минимум является 1) наибольшим из локальных 2) первым по порядку из локальных 3) в списке нет правильного ответа 4) наименьшим из локальных
5. Необходимым условием существования минимума функции F(x) на отрезке [a; b] является 1) 2) 3) 4) в списке нет правильного ответа
6. В методах одномерной оптимизации при переходе к следующей итерации часть отрезка [a; b] можно отбросить, потому что 1) в отброшенной части функция уменьшается 2) на отрезке [a; b] целевая функция унимодальная 3) отбрасывается часть отрезка, содержащего большие значения функции 4) производная монотонно возрастает
Тема 6.6. Одномерная оптимизация
Постановка задачи Метод дихотомии Метод золотого сечения Сравнение методов |
Последнее изменение этой страницы: 2017-03-17; Просмотров: 842; Нарушение авторского права страницы