Автор работы: Пользователь скрыл имя, 22 Января 2011 в 02:43, реферат
Задачи  о нахождение минимума функций одной  или многих переменных являются весьма распространенными. Развитые для этой цели методы позволяют также находить решения систем уравнений. Методы нахождения минимума разделяют на методы 0-го, 1-го, 2-го и т.д. порядка. Наибольшей популярностью, при решении задач такого рода на компьютере, пользуются методы 0-го порядка для нахождения минимума функции, которые используют лишь значения этой функции. 
    В этих методах для определения направления спуска не требуется вычислять производные целевой функции. Направление минимизации в данном случае полностью определяется последовательными вычислениями значений функции. Следует отметить, что при решении задач безусловной минимизации методы первого и второго порядков обладают, как правило, более высокой скоростью сходимости, чем методы нулевого порядка.
Постановка задачи……………………………………………………. 3 
2. Обзор основных методов……………………………………………... 4 
2.1 Метод прямого поиска (метод Хука-Дживса)...…………………… 5 
2.2 Метод деформируемого многогранника (метод Нелдера-Мида).... 7 
2.3 Метод полного перебора (метод сеток)………………………….… 9 
СПИСОК  ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ………………………..
Министерство образования РБ
Учреждение образования
Белорусский государственный университет
Информатики 
и радиоэлектроники 
 
 
 
Кафедра 
радиотехнических систем 
 
 
 
 
 
 
 
Реферат по дисциплине
Основы информационных технологий
«Методы 
нулевого порядка минимизации функций 
многих переменных. Постановка задачи. 
Описание метода. Преимущества и недостатки 
метода.» 
 
 
 
 
 
 
 
 
 
Выполнил Проверил
магистрант 
группы       Синицин А.К. 
 
 
 
 
 
 
 
 
 
    Минск 
2010 
СОДЕРЖАНИЕ 
| 1. Постановка задачи……………………………………………………. | 3 | 
| 2. Обзор основных методов……………………………………………... | 4 | 
| 2.1 Метод прямого поиска (метод Хука-Дживса)...…………………… | 5 | 
| 2.2 Метод деформируемого многогранника (метод Нелдера-Мида).... | 7 | 
| 2.3 Метод полного перебора (метод сеток)………………………….… | 9 | 
| СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ……………………….. | 11 | 
 
Задачи о нахождение минимума функций одной или многих переменных являются весьма распространенными. Развитые для этой цели методы позволяют также находить решения систем уравнений. Методы нахождения минимума разделяют на методы 0-го, 1-го, 2-го и т.д. порядка. Наибольшей популярностью, при решении задач такого рода на компьютере, пользуются методы 0-го порядка для нахождения минимума функции, которые используют лишь значения этой функции.
    В 
этих методах для определения направления 
спуска не требуется вычислять производные 
целевой функции. Направление минимизации 
в данном случае полностью определяется 
последовательными вычислениями значений 
функции. Следует отметить, что при решении 
задач безусловной минимизации методы 
первого и второго порядков обладают, 
как правило, более высокой скоростью 
сходимости, чем методы нулевого порядка. 
Однако на практике вычисление первых 
и вторых производных функции большого 
количества переменных весьма трудоемко. 
В ряде случаев они не могут быть получены 
в виде аналитических функций. Определение 
производных с помощью различных численных 
методов осуществляется с ошибками, которые 
могут ограничить применение таких методов. 
Кроме того, на практике встречаются задачи, 
решение которых возможно лишь с помощью 
методов нулевого порядка, например задачи 
минимизации функций с разрывными первыми 
производными. Критерий оптимальности 
может быть задан не в явном виде, а системой 
уравнений. В этом случае аналитическое 
или численное определение производных 
становится очень сложным, а иногда невозможным. 
Для решения таких практических задач 
оптимизации могут быть успешно применены 
методы нулевого порядка. Рассмотрим некоторые 
из них для минимизации функций многих 
переменных 
    y 
= f (x1 ,...,xn ) = f (x)     (1) 
 
    Практически 
все существующие методы по способу 
достижения поставленной задачи можно 
разбить на две большие группы: 
    а. 
Метод перебора. 
Как и в случае функций одной переменной, 
метод сводится к расчету набора значений 
функции в некоторой области и выбору 
минимального значения. Метод позволяет 
найти глобальный минимум функции. Для 
задач с высокой размерностью приводит 
к недопустимо большому количеству вычислений. 
    б. 
Симплекс-метод. Это своеобразный метод 
нулевого порядка, основанный на построении 
симплекса – множества равноудаленных 
точек, в количестве на единицу превышающем 
размерность пространства. В двумерном 
случае симплекс – 
это равносторонний треугольник. В трехмерном 
случае – правильная треугольная пирамида. 
На начальном шаге итерационного процесса 
даются координаты исходного симплекса 
и в них рассчитываются значения минимизируемой 
функции. Среди вершин симплекса находится 
та, в которой функция имеет наибольшее 
значение. Для построения нового симплекса 
эта вершина отбрасывается. Вместо нее 
выбирается новая вершина, симметрично 
отраженная от плоскости, проведенной 
через остальные вершины. В новой вершине 
рассчитывается значение функции. В старых 
же вершинах, вошедших в новый симплекс, 
значения функции уже известны. Снова 
находится вершина, в которой функция 
имеет наибольшее значение. И так далее. 
Ключевым моментом является то, что на 
каждом шаге итерационного процесса требуется 
расчет функции лишь в одной точке. Для 
минимизации функций в многомерных пространствах 
это оказывается очень важным. 
 
   
2.1 Метод прямого поиска (метод 
Хука-Дживса) 
Метод был разработан в 1961 году, но до сих пор является весьма эффективным и оригинальным. На разработку методов прямого поиска для определения минимума функций и переменных было затрачено много усилий. Методы прямого поиска являются методами, в которых используются только значения функции. Практика показала, что этот метод эффективен и применим для широкого числа приложений. Рассмотрим функцию двух переменных. Ее линии постоянного уровня на рисунке 1, а минимум лежит в точке (x1*, x2*).
   Простейшим 
методом поиска является метод покоординатного 
спуска. Из точки А мы производим поиск 
минимума вдоль направления оси и , таким 
образом, находим точку В, в которой касательная 
к линии постоянного уровня параллельна 
оси . Затем, производя поиск из точки В 
в направлении оси , получаем точку С, производя 
поиск параллельно оси , получаем точку 
D, и т. д. В выбранном направлении осуществляют 
спуск до тех пор, пока значение функции 
уменьшается. После того как в данном направлении 
не удается найти точку с меньшим значением 
функции, уменьшают величину шага спуска. 
Если последовательные дробления шага 
не приводят к уменьшению функции, от выбранного 
направления спуска отказываются и осуществляют 
новое обследование окрестности и т. д. 
   
 
 
 
 
 
 
 
 
 
 
   Рисунок 
1 – Нахождение минимума функции двух 
переменных 
Достоинством метода прямого поиска является простота его программирования на компьютере. Он не требует знания целевой функции в явном виде, а также легко учитывает ограничения на отдельные переменные, а также сложные ограничения на область поиска.
Недостаток метода прямого поиска состоит в том, что в случае сильно вытянутых, изогнутых или обладающих острыми углами линий уровня целевой функции он может оказаться неспособным обеспечить продвижение к точке минимума. Действительно, в случаях, изображенных на рисунке 2, а и б, каким бы малым ни брать шаг в направлении х1 или x2 из точки х’ нельзя получить уменьшения значения целевой функции.
Рисунок 2 – Прямой поиск: невозможность продвижения к минимуму:
   а 
– С1 > C2 > C3; б - С1 > C2 
   Блок-схема 
данного метода: 
Рисунок 3 – Блок-схема метода Хука-Дживса
   2.2 
Метод деформируемого 
многогранника (метод 
Нелдера-Мида) 
Метод Нелдера-Мида, также известный как метод деформируемого многогранника и симплекс-метод, – метод безусловной оптимизации функции от нескольких переменных, не использующий производной функции, поэтому легко применим к негладким и зашумлённым функциям.
Суть метода заключается в последовательном перемещении и деформировании симплекса вокруг точки экстремума.
Метод находит локальный экстремум и может «застрять» в одном из них. Если всё же требуется найти глобальный экстремум, можно пробовать выбирать другой начальный симплекс. Более развитый подход к исключению локальных экстремумов предлагается в алгоритмах, основанных на методе Монте-Карло, а также в эволюционных алгоритмах.
Пусть требуется найти безусловный минимум функции n переменных . Предполагается, что серьёзных ограничений на область определения функции нет, то есть функция определена во всех встречающихся точках.
Параметрами метода являются:
1) коэффициент отражения α > 0, обычно выбирается равным 1.
2) коэффициент сжатия β > 0, обычно выбирается равным 0,5.
3) коэффициент растяжения γ > 0, обычно выбирается равным 2.
Алгоритм данного метода такой:
1. «Подготовка». Вначале выбирается n + 1 точка , образующие симплекс n-мерного пространства. В этих точках вычисляются значения функции: .
2. «Сортировка». Из вершин симплекса выбираем три точки: xh с наибольшим (из выбранных) значением функции fh, xg со следующим по величине значением fg и xl с наименьшим значением функции fl. Целью дальнейших манипуляций будет уменьшение по крайней мере fh.
3. Найдём центр тяжести всех точек, за исключением xh: . Вычислять fc = f(xc) не обязательно.
   4. 
«Отражение». Отразим точку xh относительно 
xc с коэффициентом α (при α = 1 это 
будет центральная симметрия, в общем 
случае — гомотетия), получим точку xr 
и вычислим в ней функцию: fr = f(xr). 
Координаты новой точки вычисляются по 
формуле:  
   xr 
= (1 + α)xc 
− αxh      (2) 
5. Далее смотрим, насколько нам удалось уменьшить функцию, ищем место fr в ряду fh,fg,fl.
Если fr < fl, то направление выбрано удачное и можно попробовать увеличить шаг. Производим «растяжение». Новая точка xe = (1 − γ)xc + γxr и значение функции fe = f(xe).
Если fe < fl, то можно расширить симплекс до этой точки: присваиваем точке xh значение xe и заканчиваем итерацию (на шаг 9).
Если fe > fl, то переместились слишком далеко: присваиваем точке xh значение xr и заканчиваем итерацию (на шаг 9).
Если fl < fr < fg, то выбор точки неплохой (новая лучше двух прежних). Присваиваем точке xh значение xr и переходим на шаг 9.
Если fh > fr > fg, то меняем местами значения xr и xh. Также нужно поменять местами значения fr и fh. После этого идём на шаг 6.
Если fr > fh, то просто идём на следующий шаг 6.
В результате (возможно, после переобозначения) fr > fh > fg > fl.
6. «Сжатие». Строим точку xs = βxh + (1 − β)xc и вычисляем в ней значение fs = f(xs).
7. Если fs < fh, то присваиваем точке xh значение xs и идём на шаг 9.
   8. 
Если fs > fh, то первоначальные 
точки оказались самыми удачными. Делаем 
«глобальное сжатие» симплекса — гомотетию 
к точке с наименьшим значением xl:  
   9. 
Последний шаг — проверка сходимости. 
Может выполняться по-разному, например, 
оценкой дисперсии набора точек. Суть 
проверки заключается в том, чтобы проверить 
взаимную близость полученных   вершин 
симплекса, что предполагает и близость 
их к искомому минимуму. Если требуемая 
точность ещё не достигнута, можно продолжить 
итерации с     шага 2. 
 
 
   
2.1 Метод полного перебора (метод 
сеток) 
   Многомерные 
задачи, естественно, являются более 
сложными и трудоемкими, чем одномерные, 
причем обычно трудности при их решении 
возрастают при увеличении размерности. 
Возьмем самый простой по своей идее приближенный 
метод поиска наименьшего значения функции. 
Покроем рассматриваемую область сеткой 
G с шагом h (рисунок 4) и определим значения 
функции в ее узлах. Сравнивая полученные 
числа между собой, найдем среди них наименьшее 
и примем его приближенно за наименьшее 
значение функции для всей области. 
   Рисунок 
4 – Покрытие рассматриваемой области 
сеткой G с шагом h 
Данный метод используется для решения одномерных задач. Иногда он применяется также для решения двумерных, реже трехмерных задач. Однако для задач большей размерности он практически непригоден из-за слишком большого времени, необходимого для проведения расчетов. Действительно, предположим, что целевая функция зависит от пяти переменных, а область определения G является пятимерным кубом, каждую сторону которого при построении сетки мы делим на 40 частей. Тогда общее число узлов сетки будет равно 415 ≈ 108. Пусть вычисление значения функции в одной точке требует 1000 арифметических операций (это немного для функции пяти переменных). В таком случае общее число операций составит 1011. Если в нашем распоряжении имеется ЭВМ с быстродействием 1 млн. операций в секунду, то для решения задачи с помощью данного метода потребуется 105 секунд, что превышает сутки непрерывной работы. Добавление еще одной независимой переменной увеличит это время в 40 раз. Проведенная оценка показывает, что для больших задач оптимизации метод сплошного перебора непригоден. Иногда сплошной перебор заменяют случайным поиском. В этом случае точки сетки просматриваются не подряд, а в случайном порядке. В результате поиск наименьшего значения целевой функции существенно ускоряется, но теряет свою надежность.