Решение задач оптимизации
Сущность операции безусловной оптимизации функции нескольких переменных, способы решения этой задачи методами прямого поиска. Способы использования градиентных методов в этой области. Сравнительный анализ двух алгоритмов по скорости и точности их работы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 07.08.2013 |
Размер файла | 867,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
4
Размещено на http://www.allbest.ru/
48
Размещено на http://www.allbest.ru/
Курсовая работа
по дисциплине «Методы оптимизации»
Решение задач оптимизации
Реферат
ФУНКЦИЯ НЕСКОЛЬКИХ ПЕРЕМЕННЫХ, БЕЗУСЛОВНАЯ ОПТИМИЗАЦИЯ, УСЛОВНАЯ ОПТИМИЗАЦИЯ, МЕТОДЫ ПРЯМОГО ПОИСКА, ГРАДИЕНТНЫЕ МЕТОДЫ,УСЛОВНЫЙ ЭКСТРЕМУМ.
Объект исследования и разработки - методы решения задач оптимизации.
Цель работы - отработка навыков решения задач безусловной оптимизации функции нескольких переменных методами прямого поиска и отработка навыков решения задач безусловной оптимизации градиентными методами. Решена задача безусловной и условной оптимизации функции нескольких переменных методами прямого поиска и градиентными методами.
Введение
С развитием производственных отношений в стране, перед наукой встаёт серьёзная и очень важная проблема оптимизации рыночных отношений, внедрения компьютерной обработки данных в экономику. Значительное число нерешённых задач стоит перед человечеством накануне второго тысячелетия. Во времена, когда борьба уже идёт не за минуты и секунды, а за микросекунды, не за метры и сантиметры, а за миллиметры и доли миллиметров, когда возможность учесть, а главное исследовать влияние косвенных факторов на жизненно важные области деятельности человека, становится не второстепенной, оптимизационные методы минимизации и максимизации приобретают всё большую ценность и востребованность.
Развитие численных линейных методов решения задач линейного программирования очень важно в нынешнее время, поскольку сложность решаемых задач взваливает всю работу на современные ЭВМ, работающие с «единичками» и «ноликами», и «не подозревающих» о существовании производных, первообразных, интегралов и пр. И нахождение оптимального решения сводится к представлению его в виде численных методов.
Применение оптимизационных задач имеет особый успех при проектировании и анализе больших технических систем. Кроме того, интенсивное развитие средств вычислительной техники стимулирует ускорение темпов внедрения теоретических разработок в инженерную практику. В настоящее время для инженера знание методов оптимизации столь же необходимо, как знание основ математического анализа, физики, радиоэлектроники и других дисциплин.
1. Нахождение стационарной точки
Целевая функция задана следующим уравнением:
,
где a=9, b=2.
Тогда уравнение примет вид:
;
;
Производные по и :
Приравняв полученные выражения к нулю, получим систему уравнений:
Решение системы уравнений даёт результат:
Таким образом, экстремум целевой функции является точка с координатами , значение целевой функции, в которой: .
Для определения характера стационарной точки составим Гессиан функцию (определитель, составленный из вторых производных исходной целевой функции).
;
Так как определитель матрицы больше нуля, то стационарная точка является точкой минимума.
Задача определения экстремума свелась к нахождению минимума целевой функции f(x).
Графическое приложение к нахождению стационарной точки.
2. Методы прямого поиска
Многомерные методы оптимизации, основанные на вычислении целевой функции f(x), можно разделить на эвристические и теоретические. В первых реализуются процедуры поиска с помощью интуитивных геометрических представлений. Данные методы обеспечивают получение частных эмпирических результатов. Теоретические методы основаны на фундаментальных математических теоремах и обладают такими операционными свойствами как сходимость.
Метод поиска по симплексу
Суть метода заключается в исследовании целевой функции в вершинах некого «образца», в двумерном случае треугольника, построенного в пространстве переменных вокруг «базовой» точки. Вершина, давшая наибольшее значение целевой функции отображается относительно двух других вершин и таким образом становится новой базовой точкой, вокруг которой строится новый образец и снова выполняется поиск. В рассматриваемом методе таким образцом является регулярный симплекс. В случае двух переменных симплексом является равносторонний треугольник, в трёхмерном пространстве - тетраэдр.
Работа алгоритма начинается с построения регулярного симплекса в пространстве независимых переменных и оценивания значений целевых функции в каждой точке. Затем определяется вершина с максимальным значением целевой функции и проектируется через центр тяжести оставшихся вершин в новую точку. Процедура продолжается до тех пор, пока не будет накрыта точка минимума. Поиск заканчивается тогда, когда размеры симплекса или разность значений целевой функции становятся достаточно малыми.
Некоторые замечания:
Если вершина с максимальным значением целевой функции построена на предыдущем шаге, то отбрасывается вершина со следующим по величине значением целевой функции.
Если вокруг одной из вершин начинается циклическое движение, то необходимо уменьшить размеры симплекса.
При заданной начальной точке х(0) и масштабном множителе , координаты остальных N вершин симплекса в N - мерном пространстве вычисляются по формуле:
xj(0) + 1, если i = j;
x(i) = xj(0) + 2, если i j.
Приращения 1 и 2 определяются
по формулам:
;
;
Величина б выбирается исследователем, исходя из характеристики решаемой задачи.
Вычисление центра тяжести:
Если х(i) - точка, подлежащая отражению, то координаты центра тяжести определяется по формуле:
;
Координаты новой вершины удовлетворяют уравнению
xнов( j ) = x( j ) + л*(xc - x( j ));
Для того, чтобы симплекс обладал свойством регулярности, отображение должно быть симметричным, т.е. л = 2.
xнов( j ) = 2*xc - x( j );
Если некоторая вершина симплекса не исключается на протяжении нескольких итераций, то необходимо уменьшить размер симплекса и построить новый симплекс, выбрав в качестве базовой точку с минимальным значением целевой функции.
Алгоритм метода:
Шаг 1. Задать: 1. Начальную точку х(0) ;
2. Масштабный множитель б;
3. Приращения д1 и д2 ;
4.Условие окончания поиска. Перейти к шагу 2.
Шаг 2. Вычислить координаты вершин х(1) и х(2) симплекса. Перейти к шагу 3.
Шаг 3. Определить значения целевой функции в вершинах симплекса. Перейти к шагу 4.
Шаг 4. Вершина, которой соответствует наибольшее значение целевой функции , построена на предыдущей итерации?
Да: отображается вершина, которой соответствует следующее по величине значение целевой функции
Нет: отображается точка с наибольшим значением целевой функции относительно двух других вершин симплекса. Перейти к шагу 5.
Шаг 5. Проверка на условие окончания.
Да: закончить поиск; результат- точка с наименьшим значением целевой функции;
Нет: перейти к шагу 3.
Нахождение минимума целевой функции симплекс-методом.
Задание
Найти минимум функции .
Начальные данные :
- начальный масштабный множитель;
- начальная точка;
Минимизируем целевую функцию до первого уменьшения размера симплекса.
Решение:
,
,
; заменяем;
;
;
;
;
;
;
; заменяем
;
;
; заменяем;
;
;
;
;
; заменяем;
;
;
;
;
;
;
; заменяем;
;
;
;
; заменяем ;
;
;
;
; заменяем;
;
;
;
;
;
; заменяем;
;;
;
;
; заменяем;
;;
;
;
;
;; заменяем;
;
;
;
;
;;
;; заменяем;
;;
;
;
;
;
; заменяем;
;
;
;
;
; заменяем;
;
;
;
;;
;; заменяем;
;
;
Координаты точек, полученные на 14-й итерации, совпадают с координатами, полученными на 10-й итерации. Симплекс накрыл точку минимума. Далее следует уменьшить масштабный множитель (например, в 2 раза) и построить новый исходный симплекс, взяв в качестве исходной точку ;
Полученное решение ; не является точным, поэтому имело бы смысл продолжить вычисления.
Графическое приложение к Симплекс-методу
Метод поиска Хука-Дживса
Метод относится к категории эвристических методов оптимизации. Процедура Хука - Дживса представляет собой комбинацию “исследующего” поиска с циклическим изменением переменных и ускоряющего поиска по найденному образцу. Исследующий поиск ориентирован на выявление характера локального поведения целевой функции и определение направления вдоль “оврагов”. Полученная в результате исследующего поиска информация используется затем в процессе поиска по образцу при движении по “оврагам”.
Исследующий поиск
Для проведения исследующего поиска необходимо задать величину шага, которая может быть различна для разных координатных направлений и изменяться в процессе поиска. Поиск начинается в некоторой исходной точке. Делается пробный шаг вдоль одного из координатных направлений. Если значение целевой функции в пробной точке меньше, чем в исходной, то шаг считается удачным. В противном случае возвращаются в исходную точку и делают шаг в противоположном направлении. После перебора всех N координат исследующий поиск заканчивается. Полученную в результате исследующего поиска точку называют базовой.
Поиск по образцу
Поиск по образцу заключается в реализации единственного шага из полученной базовой точки вдоль прямой, соединяющей эту точку с предыдущей базовой точкой. Новая точка определяется по формуле:
xр(к + 1) = x(к) + [x(к) - x(к - 1)] ;
Как только движение по образцу не приводит к уменьшению целевой функции, точка xр(к + 1) фиксируется в качестве временной базовой точки и выполняется исследующий поиск. При улучшении значения целевой функции эта точка рассматривается как новая базовая точка. Если же исследующий поиск не дал результата, необходимо вернуться в предыдущую точку и провести исследующий поиск.
Поиск завершается, когда величина шага приращения становится достаточно малой.
Алгоритм метода:
Шаг 1. Задать:
начальную точку х(0);
приращение , i = 1,2,...,N;
коэффициент уменьшения шага > 1;
условие окончания поиска.
Шаг 2. Произвести исследующий поиск.
Шаг 3. Был ли исследующий поиск удачным (найдена ли точка с меньшим значением целевой функции)?
Да: перейти к шагу 5;
Нет: продолжить.
Шаг 4. Проверка на окончание поиска: ?
Да: прекратить поиск;
Нет: уменьшить приращение по формуле
, i = 1,2,...,N.
Перейти к шагу 2.
Шаг 5. Провести поиск по образцу (формула (4)).
Шаг 6. Провести исследующий поиск, используя в качестве базовой точки; пусть х(k+1) полученная в результате точка.
Шаг 7. Выполняется ли f()<f (х(k))?
Да: положить х(k -1) = х(k); х(k) = х(k+1); перейти к шагу 5;
Нет: перейти к шагу 4.
Задача
Минимизировать методом поиска Хука-Дживса.
Условие окончание поиска: момент второго сокращения шага поиска.
Решение.
Dх - векторная величина приращенияDх = 2;
a - коэффициент уменьшения шага.a--=--2;
e - минимальное значение приращения б, при котором ещё стоит искать минимум.
В условиях данной задачи ограничимся значением б =2, т.е. будем искать минимум до первого уменьшения приращения.
Будем искать минимум до первого уменьшения приращения.
f(x)=(x1-9)2+(x2-2)2+x1x2.
х(0)=[-9;-10]T , f(x(0))=558.
Исследующий поиск вокруг базовой точки х(0):
фиксируя х2, даём приращение переменной х1:
х2=-10;х1=-9+2=-7; f(-7;-10) =470<558 удача;
фиксируя х1, даём приращение переменной х2:
х1=-7; х2=-10+2=-8; f(-7;-8) =412<470удача;
х(1) = [-7;-8]T;f(x(1))=412;
Т.к. поиск был удачным, переходим к поиску по образцу:
хp(2) = 2*х(1) - х(0);хp(2) = [-5;-6]T;f(xp(2)) =290<412;
Исследующий поиск вокруг точки хp (2):
фиксируя х2, даём приращение переменной х1:
х2=-6;х1=-5+2=-3;f (-3;-6)=226<290удача;
фиксируя х1, даём приращение переменной х2:
х1=-3; х2=-6+2=-4;f (-3;-4)=192<226удача;
х(2) = [-3;-4]T;f(x(2))=192;
Т.к. поиск был удачным, переходим к поиску по образцу:
хp (3) = 2*х(2) - х(1);хp (3) = [1;0]T f(xp(3)) =68<192;
Исследующий поиск вокруг точки хp (3):
фиксируя х2, даём приращение переменной х1:
х2=0;х1=1+2=3 ; f (3;0)= 40<68удача;
фиксируя х1, даём приращение переменной х2:
х1=3; х2=0+2=2 ;f (3;2)= 42<40неудача;
х1=3; х2=0-2=-2; f (3;-2)= 46<40неудача;
х(3) = [3;0]T;f(x(3))=40;
Т.к. поиск был удачным, переходим к поиску по образцу:
хp (4) = 2*х(3) - х(2);хp (4) = [9;4]T;f (хp (4))=40=40;
Значение целевой функции не изменилось, поэтому возьмём последнюю точку за временную базовую и проведём исследующий поиск.
Исследующий поиск вокруг точки х (3):
х(3) = [3;0]T;f(x(3))=40;
фиксируя х2, даём приращение переменной х1:
х2=0;х1=3+2=5 ;f (5;0)= 20<40 удача;
фиксируя х1, даём приращение переменной х2:
х1=5; х2=0+2=2;f (5;2)=26>20неудача;
х1=5; х2=0-2=-2;f (5;-2)=22>20неудача;
х(4) = [5;0]T;f(x(4))=20;
Т.к. поиск был удачным, переходим к поиску по образцу:
хp (5) = 2*х(4) - х(3);хp (5) = [7;0]T; f (хp (5))=8<20;
5. Исследующий поиск вокруг точки хр (5):
фиксируя х2, даём приращение переменной х1:
х2=0;х1=7+2=9 ;f (9;0)= 4<8 удача;
фиксируя х1, даём приращение переменной х2:
х1=9; х2=0+2=2; f (9;2)=18>8 неудача;
х1=9; х2=0-2=2; f (9;-2)=-2<8 удача;
х(5) = [9;-2]T;f(x(5))=-2;
Т.к. поиск был удачным, переходим к поиску по образцу:
хp (6) = 2*х(5) - х(4);хp (6) = [13;-4]T ;f(хp (6)) =0>-2;
Значение целевой функции увеличилось, поэтому возьмём последнюю точку за временную базовую и проведём исследующий поиск, при этом изменим значение б=1.
6. Исследующий поиск вокруг точки х (5):
х(5) = [9;-2]T;f(x(5))=-2;
фиксируя х2, даём приращение переменной х1:
х2=-2;х1=9+1=10; f (10;-2)= -3<-2 удача;
x1=10;x2=-2+1=-1;f (10;-1)=0>-3 неудача;
фиксируя х1, даём приращение переменной х2:
х1=10;х2=-2-1=-3; f (9;0)=-4<-3 удача;
х(6) = [10;-3]T;f(x(6))=-4.
Т.к. поиск был удачным, переходим к поиску по образцу:
хp (7) = 2*х(6) - х(5);хp (7) = [11;-4]T; f(хp (7)) =-4-неудача;
Изменим б=0,5.
х(6) = [10;-3]T;
х2=-3; х1=10+0,5=10,5;f (10,5;-3)=-4,25<-4=>удача;
х1=10,5; х2=-2,5;f (10,5;-2,5)=3,75>4.25=>неудача.
х(7) = [10,5;-3]T.
В результате исследующего поиска не было достигнуто уменьшение значения целевой функции, то есть значение шага (векторной величины приращения) уменьшить в раз, до величины , затем необходимо произвести исследующий поиск вокруг точки х(7) = [10,5;-3]T, используя новое значение приращения . Итерации продолжаются, пока величина шага не укажет на окончание поиска в окрестности точки минимума.
Вывод: Как и в предыдущем методе, необходимо большое количество итераций для достижения точки оптимума целевой функции. Так же метод обладает низкой точностью.
Графическое приложение к методу Хука-Дживса:
Метод сопряженных направлений Пауэлла
Метод относится к категории теоретических методов оптимизации. Метод ориентирован на решение задач с квадратичными целевыми функциями. Основная идея алгоритма заключается в том, что если квадратичная функция N переменных приведена к сумме квадратов, то ее оптимум может быть найден в результате реализации N одномерных поисков по преобразованным координатным (сопряженным) направлениям. Сопряженные направления определяются алгоритмически. Для нашего двумерного случая реализация метода требует три одномерных поиска. Для нахождения экстремума квадратичной функции N переменных необходимо выполнить N2 одномерных поисков.
Алгоритм метода:
Шаг 1. задать исходные точки х(1), х(2) и направление d. В частности, направление d может совпадать с направлением координатной оси;
Шаг 2. произвести одномерный поиск из точки х(1) в направлении d и получить точку y(1), являющуюся точкой экстремума на заданном направлении;
Шаг 3. произвести поиск из точки х(2) в направлении d и получить точку y(2);
Шаг 4. вычислить направление (y(2) - y(1));
Шаг 5. провести одномерный поиск из точки у(1) (либо у(2)) в направлении (y(2) - y(1)) с выходом в точку х*.
Решение
Исходные данные:
Шаг 1.
- начальная точка
, .
Шаг 2.
а) Найдем значение , при котором минимизируется в направлении :
Откуда ; .
Значение функции в этой точке:
.
Продифференцируем полученное выражение по , получим:
.
Приравняв его к нулю, находим ;
Получили
б) Аналогично находим значение минимизирующее функцию в направлении :
Откуда ; .
Значение функции в этой точке:
.
Продифференцируем полученное выражение по , получим:
.
Приравняв его к нулю, находим ;
Получили
в) Найдем значение минимизирующее :
Откуда ; .
Значение функции в этой точке:
.
Продифференцируем полученное выражение по , получим:
.
Приравняв его к нулю, находим ;
Получили
Шаг 3.
Шаг 4.
Найдем такое значение , при котором минимизируется в направлении .
Откуда ; .
Значение функции в этой точке:
.
Продифференцируем полученное выражение по , получим:
.
Приравняв его к нулю, находим ;
Получили
Таким образом, получили точку , значение функции в которой примерно равно , которая почти совпадает со стационарной точкой.
Графическое пояснение метода сопряженных направлений Пауэлла:
Методы прямого поиска являются удобными при простых целевых функциях, или когда необходимо найти оптимум с невысокой степенью точности. Но требуют больших затрат времени и вычислительных ресурсов, из-за большого числа проводимых итераций: метод поиска по симплексу - 14 итераций, метод Хука-Дживса - 6 итераций, метод сопряженных направлений Пауэлла - 4 итерации.
3. Градиентные методы поиска экстремума функции
В отличие от методов прямого поиска градиентные методы поиска используют информацию о производных функции. Это позволяет уменьшить количество необходимых вычислений значений функции. Эти методы делятся на две группы: методы, использующие информацию только о первых производных, и методы, учитывающие информацию и первых, и вторых производных.
Простейший градиентный метод
Описание простейшего градиентного метода
В простейшем градиентном методе в качестве направления поиска выбирается направление антиградиента. Алгоритм метода выглядит следующим образом:
x(k + 1) = x(k) - (k)f(x(k)),
где f (x) - градиент.
Значение (k) на каждой итерации вычисляется путем решения задачи одномерного поиска экстремума f(x) вдоль направления градиента f(x(k)). Если в качестве (k) взять некоторое положительное число, то получится простейший градиентный алгоритм:
f(k + 1) = x(k) - f(x(k));
Вблизи экстремума скорость сходимости алгоритма становится недопустимо низкой, так как вблизи экстремума значение градиента стремится к нулю. Основным минусом является отсутствие контроля шага .
Решение:
f(x1,x2)= (х1 - 9)2 + (х2 - 2)2 +х1*х2.
Находим градиентную составляющую:
?f/?x1=2*x1 + x2 - 18; ?f/?x2=x1 + 2*x2 -4;
1. Шаг: Задаем начальные данные:
х(0) = [-9;-10]Т; б =0,3;
2. Шаг:
1 итерация: х(1) = х(0) - б *f (x(0) ) ;
f (x(0) ) = [-46;-33]T; х(1) = [-9;-10]Т -0,3[-46;-33]T=[4,8;-0,1]T.
2 итерация:
х(2) = х(1) - б *f (x(1) ) ;
f (x(2) ) = [-8,5;-0,6]T; х(2) = [4,8;-0,1]T -0,3[-8,5;-0,6]T =[7,35;0,08]T.
3 итерация: х(3) = х(2) - б *f (x(2) ) ;
f (x(3) ) = [-3,22;3,51]T; х(3) = [7,35;0,08]T -0,3[-3,22;3,51]T =[8,316;-0,973]T.
4 итерация: х(4) = х(3) - б *f (x(3) ) ;
f (x(4) ) = [-2,341;2,37]T; х(4) = [8,316;-0,973]T -0,3[-2,341;2,37]T =[9,0183;-1,684]T.
5 итерация: х(5) = х(4) - б *f (x(4) ) ;
f (x(5) ) = [-1,6466;1,6507]T; х(5) = [9,0183;-1,684]T -0,3[-1,6466;1,6507]T =[9,51;-2,18]T.
6 итерация: х(6) = х(5) - б *f (x(5) ) ;
f (x(6) ) = [-1,15465;1,15386]T; х(6) =[9,51;-2,18]T -
-0,3[-1,15465;1,15386]T =[9,856;-2,526]T.
7 итерация: х(7) = х(6) - б *f (x(6) ) ;
f (x(7) ) = [-0,814;0,804]T; х(7) =[9,856;-2,526]T -0,3[-0,814;0,804]T =[10,1;
-2,767]T.
8 итерация: х(8) = х(7) - б *f (x(7) ) ;
f (x(8) ) = [-0,567;0,566]T; х(8) =[10,1;-2,767]T -0,3[-0,567;0,566]T; =[10,27;-2,94]T.
После выполнения 8 итераций получено решение х* = х(8), при котором значение целевой функции f*=-4,0921.
Графическое представление простейшего градиентного метода
Описание метода Коши
В методе Коши или методе наискорейшего спуска в качестве направления поиска выбирается направление антиградиента. Алгоритм метода выглядит следующим образом:
x(k + 1) = x(k) - (k)f(x(k)),
где f (x) - градиент.
Значение (k) на каждой итерации вычисляется путем решения задачи одномерного поиска экстремума f(x) вдоль направления градиента f(x(k)). Если в качестве (k) взять некоторое положительное число, то получится простейший градиентный алгоритм:
f(k + 1) = x(k) - f(x(k));
Одно из главных достоинств метода Коши является его устойчивость, так как всегда выполняется условие
f(x(k + 1)) f(x(k));
Однако вблизи экстремума скорость сходимости алгоритма становится недопустимо низкой, так как вблизи экстремума значение градиента стремится к нулю.
Решение:
Исходные данные:
Шаг 1.
- начальная точка (начальное приближение);
Вычислим компоненты градиента:
1. Новое приближение определим по формуле:
Шаг 2.
;
;
;
Выбираем такое, чтобы минимизировать функцию
Шаг 3.
;
;
;
; ;;
2. Далее найдем точку:
Шаг 2.
;
Шаг 3.
; ;
;;
3. Далее найдем точку: ;
Шаг 2.
Шаг 3.
; ;
;;
После третьей итераций найдено достаточно точное значение минимума, при котором значение целевой функции в точке , .
Графическое пояснение метода Коши
Вывод
метод Коши обеспечивает высокую точность при очень малом количестве итераций, т.к. использует информацию о производных.
Метод Ньютона
Этот метод использует информацию о вторых производных целевой функции. Эта информация появляется при квадратичной аппроксимации целевой функции, когда при её разложении в ряд Тейлора учитываются члены ряда до второго порядка включительно. Алгоритм метода выглядит следующим образом
x(k + 1) = x(k) - 2f(x(k))-1f(x(k)),
где 2f(x) - матрица Гессе.
В случае, когда матрица Гессе положительно определена, то направление поиска по методу Ньютона оказывается направлением спуска.
Нахождение минимума целевой функции методом Ньютона:
Исходные данные:
f(x) = x12 - 18*x1 + x2 2 - 4*x2 + x1*x2 + 85;
x(0) = [-9;-10]T;
?f/?x1=2*x1 + x2 -18;
?f/?x2= 2*x2 +x1 -4;
?2f/?x12=2;
?2f/?x1?x2=1;
?2f/?x22=2;
?2f/?x2?x1=1;
f(x) = [2*x1 + x2 -18;x1 + 2*x2 -4]T;
2f(x) = =3;
f (x(0) ) = [-46;-32]T;
x(1) = x(0) - [2f(x)]-1*f (x(0) );
f(x(1)) =-4,333;
Мы получили точку х = [10,667;-3.333]Т, значение функции в которой f(x) = -4,333 за одну итерацию, что говорит о пригодности метода для нахождения минимума без использования ЭВМ.
Вывод: методом Ньютона точка оптимума найдена за одну итерацию, что гораздо лучше, чем 2 итерации метода Коши, и десятки итераций при методах прямого поиска. Недостатками метода является необходимость знать 1 и 2 производные целевой функции. Иногда это трудно или невозможно. Также при значительно удаленном от оптимального решения x(0) метод Ньютона не отличается точностью, однако весьма эффективен вблизи точки x*.
Метод сопряженных градиентов
Данный метод обладает положительными свойствами методов Коши и Ньютона. Кроме того этот метод использует информацию только о первых производных исследуемой функции. Метод сопряженных градиентов позволяет получить решение за N шагов в N-мерном пространстве и обладает квадратичной сходимостью. В основе метода лежит организация поиска вдоль сопряженных направлений, причем для получения сопряженных направлений используется квадратичная аппроксимация целевой функции и значения компонент градиента.
Алгоритм:
Шаг 1: Задаем начальные данные
Шаг 2: Операции аргумента проводятся по формуле
x(k + 1) = x(k) + (k)s(x(k));
Направление поиска на каждой итерации определяется с помощью формулы
s(k) = -g(k) + s(k - 1);
В этом случае направление s(k) будет С - сопряжено со всеми ранее построенными направлениями поиска.
Шаг 3: Если функция f(x1, x2, ... , xN) квадратичная, то для нахождения
точки экстремума требуется определить N-1 таких направлений и
провести поиски вдоль каждой прямой. Если f(x) не является квадратичной, то количество поисков возрастет.
Используемые формулы:
Градиент квадратичной функции:
Vf(x) = Vg(x) = Cx + b = g(x).
Изменение градиента при переходе от точки х(0) к точке х(1):
Дg(x) = g(x(1)) - g(x(0)) = C(x(1) - x(0));
Дg(x) = CДx.
Изменения аргумента:
x-(k+1) = x(k) - б(k)s(x(k)).
Направление поиска:
s(k) = -g(k) + ? г(i) s(i) , s(0) = -g(0), г(i) = ;
s(k) = -g(k) + *s(k+1) (формула Флетчера-Ривса)
Нахождение минимума целевой функции методом сопряжённых градиентов:
Решение
Исходные данные:
Шаг 1.
- начальная точка;
Шаг 2.
Поиск вдоль прямой:
Шаг 3.
Определим направление :
Поиск вдоль прямой:
;
.
Таким образом, решение (точка минимума) , значение функции в которой , получено в результате двух одномерных поисков, поскольку целевая функция квадратичная.
Графическое приложение к методу сопряжённых градиентов:
Вывод: метод сопряженных градиентов вобрал в себя все лучшее от методов Коши и Ньютона, т.е. одинаково хорошо доставляет минимум функции на значительном удалении от х* и вблизи нее.
Квазиньютоновский метод
Данный метод обладает положительными чертами метода Ньютона, однако, использует информацию только о первых производных. В этом методе приближение к очередной точке в пространстве оптимизируемых параметров задается формулой
x(k+1) = x(k) + (k)s(k) .
Направление поиска определяется выражением
s(k) = -A(k)(X(k)),
где A(k) - матрица порядка NN.
Матрица A - вычисляется по формуле
A(k) = A(k-1) +Ac(k-1),
где
Ac(k-1) = ; (1)
где g(k) = g(k) - g(k-1) изменение градиента на предыдущем шаге.
Нахождение минимума целевой функции Квазиньютоновским методом:
Описание алгоритма:
Данный метод обладает положительными чертами метода Ньютона, однако, использует информацию только о первых производных. В этом методе приближение к очередной точке в пространстве оптимизируемых параметров задается формулой:
Направление поиска определяется выражением:
,
где - матрица порядка (метрика).
Матрица - вычисляется по формуле.
,
где:
(1)
Где изменение градиента на предыдущем шаге.
Данный алгоритм отличается устойчивостью, так как обеспечивает убывание целевой функции от итерации к итерации.
Алгоритм метода:
Шаг 1. Задать: начальную точку х(0). Перейти к шагу 2.
Шаг 2. Вычислить направление поиска s(k). Перейти к шагу 3.
Шаг 3. Произвести поиск вдоль прямой . Перейти
к шагу 4.
Шаг 4. Проверка условия окончания поиска.
Да: закончить поиск;
Нет: перейти к шагу2.
Решение:
f(x) = x12 - 18*x1 + x2 2 - 4*x2 +85+ x1*x2;
x(0) = [-9;-10]T;
?f/?x1=2*x1 + x2 -18; ?f/?x2=x1 + 2*x2 -4;
ШАГ 1:
f(x) = [2*x1 + x2 -18; x1 + 2*x2 -4]T;
f(x(0) ) = [-46;-33]T;
Положим s(0) = -f(x(0) ) = [46;33]T;
ШАГ 2:
Поиск вдоль прямой:
х(1) = х(0) - a???*f(x(0) ) a(_)--= 0.343;
х(1) = [-9;-10]Т - 0.343 *[-46;-33]T = [5,778; 1,29]T;
ШАГ 3:
А(0) = Е =
х(0) = [5,778; 1,29]T - [-9;-10]T = [14,778; 11,29]T;
g(0) = g(1) - g(0) = [-0,65; 0,68]T - [-46;-33]T = [45.35; 32.32]T;
А(1) = A(0) + Ac(0);
s(1) = - A(1)*g(1);
s(1) = [5,981; -6,987]T;
ШАГ 4:
Поиск вдоль прямой:
х(2) = x(1) + (1)s(1) =[5,778; 1,29]T+(1) [5,981; -6,987]T;
(1) =1.003;
x(2) = [10,667;-3.333]Т;
Точность метода позволяет уже на четвертом шаге считать текущую точку точкой-экстремумом. Т.е. х* = х(2) = [10,667;-3.333]Т; f(x*) =-4,333.
Вывод: Квазиньютоновский метод позволяет достаточно быстро вычислить точку оптимума, и использует информацию только о первых производных в отличии от метода Ньютона. Неточность появляется вследствие округления.
Графическое приложение к квазиньютоновскому методу:
Поиск условного экстремума
Все предыдущие методы поиска оптимума функции были предназначены для задач безусловной оптимизации. Ниже будет разобран метод штрафных функций, один из многих, предназначенных для решения более сложных задач, в которых область поиска ограничена из каких-либо практических соображений.
Метод штрафных функций
Суть метода заключается в преобразовании исходной целевой функции посредством включения в нее функции от ограничений, получая, таким образом, задачу безусловной оптимизации, для решения которой можно использовать рассмотренные в первой части методы. Переход от задачи условной оптимизации к задаче безусловной оптимизации осуществляется посредством включения в исходную функцию “штрафов” за нарушение ограничений задачи. Если исходная задача имеет следующий вид:
min f (x), ХRN ;
при ограничениях
gj (x) ? 0;
hk(x) = 0, k = 1...K;
то преобразованная задача имеет вид:
P(x,R) = f(x) + [R, h(x),g(x)];
где - штрафная функция от ограничений задачи, а R - штрафной пара-метр. Наличие штрафного параметра R вызвано тем, что введение штрафной функции сильно деформирует поверхность целевой функции, что, в свою очередь, приводит к ухудшению обусловленности преобразованной задачи. Поэтому параметр R служит “регулятором” веса штрафной составляющей в целевой функции, и процесс решения задачи разбивается на ряд вспомогательных задач с различными значениями параметра R и контролем сходимости их решений.
Виды штрафов
Квадратичный штраф имеет вид = R{h(x)}2. Этот вид штрафов используется для учёта ограничений-равенств. Функция непрерывна и имеет непрерывную производную, откуда следует, что если непрерывны и дифференцируемые f(x) и h(x), то стационарную точку можно найти ана-литически.
Логарифмический штраф
= - Rln(g(x));
Этот штраф положителен для всех х таких, что 0 < g(x) <1, и отрицателен при g (x) > 1. Логарифмический штраф - это барьерная функция, неопределённая в точках, где g (x) < 0. Поэтому на начальном этапе поиска, когда значение шага поиска велико, необходимо обеспечить защиту процедуры от попадания рабочей точки в недопустимую область.
Штраф, заданный обратной функцией
= R*1/g(x);
Как и предыдущий штраф, является барьерным. В допустимой области вблизи границы значение штрафа быстро убывает при продвижении внутрь допустимой области. На самой границе значение P(x,R) неопределено, как и в предыдущем случае возможно появление недопустимых точек.
Штраф типа квадрата срезки
= R*<g(x)>2,
б, если б ? 0,
< б > =
0,если б > 0.
Этот штраф является внешним, и недопустимые точки не создают проблем по сравнению с допустимыми. Различие заключается в том, что в допустимых точках штраф равен нулю. Этот вид штрафа удобен тем, что P(x,R) непрерывна и определена всюду. Параметр R положителен и увеличивается от итерации к итерации.
Задача
Метод штрафных функций:
Нахождение минимума целевой функции :
Исходные данные:
f(x)=(x1-9)2+(x2-2)2+x1x2.
х(0)=[-9;-10]T ;
Ограничение на решение:
h(x) = -5x1 +12x2 +120 = 0;
Преобразуем целевую функцию введением в неё заданного квадратичного штрафа: -0,5x1 +1,2x2 +12=0;
P(x,R) = f(x1,x2) = (x1-9)^2+(x2-2)^2+x1x2+(1/R)( -5x1 +12x2 +120 )^2;
Найдем минимум целевой функции с заданным квадратичным штрафом:
Совместное решение даёт:
Устремляя к нулю, получаем
То есть, при изменении от нуля до бесконечности, решение будет изменяться от минимума задачи с учётом ограничений до минимума функции без учёта ограничений.
Исследуем функцию при различных значениях параметра , то есть
1. ;
;
2. ;
;
.
3. ;
;
.
4. ;
;
.
Сведем все данные в таблицу:
R |
x* |
P(x*,h(x*)) |
5x1+12x2+120 |
|
1000 |
(10,97 ; -3,73)T |
816,025 |
20,39 |
|
10 |
(11,907 ; -4,968)T |
622,974 |
0,849 |
|
0.1 |
(11,947 ; -5,021)T |
180,546 |
0,013 |
|
0.001 |
(11,948 ; -5,022)T |
174,498 |
-0.004 |
Решением задачи условной оптимизации является точка: , значение целевой функции в которой равно: . Мы подтвердили, что при увеличении штрафного параметра все ограничения уменьшаются, что доставляет минимум задачи безусловной оптимизации. Наоборот, при уменьшении штрафного параметра до нуля вес ограничения возрастает, что доставляет минимум задачи условной оптимизации
Видно, что при увеличении штрафного коэффициента R его влияние на целевую функцию снижается, что и предоставляет возможность отыскать ее экстремум с достаточно большой точностью.
Графическое приложение к методу штрафных функций:
оптимизация функция градиентный
Выводы
Рассмотренные группы методов безусловной оптимизации можно сравнить по скорости и точности их работы. Методы прямого поиска, хотя и не требуют большей, чем значения целевой функции, информации о поведении последней, однако, производят большое количество итераций при доставлении решения с высокой точностью, так как поиск производится ими «вслепую». Так, эвристические алгоритмы поиска достигают решения за несколько десятков итераций, а теоретические выполняют до десяти итераций (в зависимости от вида функции). Градиентные методы обладают большей скоростью, но требуют для своей работы информацию о поведении функции в виде производных, найти которые иногда очень сложно.
Их достоинством является высокая точность получения решений.
Таким образом, среди рассмотренных алгоритмов нет ни одного в полной мере универсального, подходящего для решения задач при любых условиях.
Заключение
Анализируя результаты исследования (сравнения) всех рассмотренных выше методов, можно прийти к выводу о том, что каждый из них имеет свои достоинства и недостатки и более применим для задач одних видов и менее - для других. Однако пользователь всегда сможет найти подходящий алгоритм для решения своей конкретной проблемы, выбирая как из вышеприведенного множества методов, так и из огромного спектра их модифицированных, усовершенствованных и комбинированных вариантов.
Однако, есть целый класс проблем, где найти оптимум либо крайне сложно, либо вообще невозможно получить точное решение с помощью алгоритмов данных категорий. К таким задачам относится, например, моделирование глобальных социально-экономических процессов.
Библиографический список литературы
Карманов В.Г. Математическое программирование. - М: Наука. Главная редакция физико-математической литературы, 1986
Коршунов Ю.М. Математические основы кибернетики. - М: Энергия, 1980.
Микрюкова В.И. Методы оптимизации. Методические указания по выполнению курсовой работы. Киров, 2010.
Микрюкова В.И.: курс лекций по дисциплине «Методы оптимизации».
Размещено на Allbest.ru
...Подобные документы
Изучение аналитических и численных методов поиска одномерного и многомерного безусловного экстремума. Решение поставленной задачи с помощью Mathcad и Excel. Реализация стандартных алгоритмов безусловной оптимизации средствами языка программирования С++.
курсовая работа [488,5 K], добавлен 21.10.2012Пример задачи нелинейной условной оптимизации. Основные группы методов: штрафных функций, прямого поиска, линеаризации. Последовательность задач безусловной оптимизации. Квадратичный и логарифмический штраф. Корректировка для обеспечения допустимости.
презентация [405,0 K], добавлен 30.10.2013Исследование типовых примеров задач оптимизации. Реализация программы в среде MatLab для их решения. Изучение функций нелинейной оптимизации. Определение оптимума целевой функции одной или нескольких переменных. Поиск оптимальных настроек регулятора.
лабораторная работа [188,8 K], добавлен 07.12.2016Программирование численных методов одномерной оптимизации. Решение одномерных задач оптимизации методами последовательного поиска. Градиентные методы и их применение для оптимизации на ЭВМ математических моделей объектов. Методы нулевого порядка.
контрольная работа [257,9 K], добавлен 15.01.2009Задача оптимизации с точки зрения математики как задача нахождения экстремума вещественной функции в некоторой области. Классификация и типы методов оптимизации, условия их практического использования. Создание программы, ее листинг, описание алгоритмов.
курсовая работа [181,7 K], добавлен 22.06.2012Описание генетических алгоритмов. Применение генетического алгоритма для решения задачи коммивояжера. Постановка задачи безусловной оптимизации. Изучение распространения генетических алгоритмов на модель с несколькими взаимодействующими популяциями.
дипломная работа [979,1 K], добавлен 30.05.2015Математические основы оптимизации. Постановка задачи оптимизации. Методы оптимизации. Решение задачи классическим симплекс методом. Графический метод. Решение задач с помощью Excel. Коэффициенты целевой функции. Линейное программирование, метод, задачи.
реферат [157,5 K], добавлен 21.08.2008Задачи оптимизации в математике и информатике. Классификация методов оптимизации. Методы с переменной метрикой. Значение функции на заданном интервале. Локальный минимум функции. Методы минимизации функции. Классификация методов многомерной оптимизации.
курсовая работа [1,5 M], добавлен 19.06.2012Эвристические и теоретические методы прямого поиска. Алгоритм поиска значения по симплексу и по образцу. Основная идея метода сопряженных направлений Пауэлла. Ознакомление с преимуществами и недостатками методов безусловной многопараметровой оптимизации.
презентация [862,9 K], добавлен 30.10.2013Математическое описание и аналитическое исследование методов оптимизации: Нелдера-Мида и градиентный с дроблением шага. Зависимость числа итераций от заданной точности. Решение задачи минимизации для каждого из методов и ее графическая интерпретация.
курсовая работа [472,8 K], добавлен 22.11.2009Пример расчета экстремума функции методом прямого поиска с дискретным шагом. Результаты отладки программы на контрольных примерах. Составление инструкции по использованию программы. Обработка результатов исследований визуальными средствами Excel.
курсовая работа [1,0 M], добавлен 20.05.2012Постановка задачи нелинейного программирования. Критерии оптимальности в задачах с ограничениями. Задачи с ограничением в виде равенств. Метод исключения переменных. Интерпретация условий Куна-Таккера. Функции нескольких переменных. Методы прямого поиска.
реферат [330,0 K], добавлен 29.09.2008Сущность задач оптимизации и методы их решения с ориентацией на современные средства компьютерной техники. Область допустимых решений. Структура оптимизационной модели. Проверка правильности нахождения точек координат методом половинного деления.
курсовая работа [2,4 M], добавлен 25.04.2015Классификация задач нелинейного программирования. Сущность методов безусловной одномерной оптимизации. Построение алгоритма случайного поиска, правило исключения интервалов. Понятие золотого сечения и квадратичной аппроксимации, метод хорд и касательных.
презентация [377,0 K], добавлен 30.10.2013Обзор и сравнительный анализ современных математических пакетов. Вычислительные и графические возможности системы MATLAB, а также средства программирования в среде MATLAB. Основные возможности решения задач оптимизации в табличном процессоре MS Excel.
дипломная работа [6,6 M], добавлен 04.09.2014Задача о ранце как задача комбинаторной оптимизации. Задача о загрузке, рюкзаке, ранце. Постановка и NP-полнота задачи. Классификация методов решения задачи о рюкзаке. Динамическое программирование. Метод ветвей и границ. Сравнительный анализ методов.
курсовая работа [1,7 M], добавлен 18.01.2011Возможные тематики задач ЛП: рациональное использование сырья и материалов, задачи оптимизации раскроя. Преобразование неограниченных по знаку переменных. Алгоритм симплекс-метода. Максимизация основной функции и использования искусственных переменных.
презентация [588,2 K], добавлен 28.05.2014Создание программы для поиска минимума функции двух вещественных переменных в заданной области с помощью генетического алгоритма. Генетические алгоритмы и операторы. Создание начальной популяции. Размножение. Мутация и селекция. Тестирование программы.
курсовая работа [131,6 K], добавлен 22.02.2015Сущность и назначение основных алгоритмов оптимизации. Линейное программирование. Постановка и аналитический метод решения параметрической транспортной задачи, математическая модель. Метод решения задачи об оптимальных перевозках средствами MS Excel.
курсовая работа [465,6 K], добавлен 24.04.2009Методы решения задач параметрической оптимизации. Решение однокритериальных задач с параметром в целевой функции и в ограничениях. Решение многокритериальной задачи методом свертки критериев, методом главного критерия, методом последовательных уступок.
курсовая работа [1,5 M], добавлен 14.07.2012