Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
IT_exam answers.doc
Скачиваний:
7
Добавлен:
05.09.2019
Размер:
1.75 Mб
Скачать

1. Краткие теоретические сведения

1.1 Постановка задачи одномерной безусловной

оптимизации

Поиск экстремума функции одной переменной имеет самостоятельный интерес, так как является составной частью многих методов многомерной оптимизации. От правильной организации одномерного поиска существенно зависит успех решения всей задачи. Кроме того, одномерная оптимизация, будучи простой по формулировке задачей, позволяет легко войти в общую проблематику оптимизационных задач.

Далее, для конкретности, мы будем рассматривать задачу оптимизации на примере задачи минимизации в силу эквивалентности двух типов оптимизационных задач (максимизации и минимизации). Задача поиска минимума целевой функции формулируется в виде:

x*=arg min f(x), xX,

где X – множество допустимых точек, среди которых ищется точка x*, доставляющая минимум f(x) целевой функции.

Другая распространенная запись задачи минимизации

.

Когда X=R, мы имеем дело с одномерной безусловной задачей минимизации, т.е. когда целевая функция f(x) имеет только один простой аргумент и область X есть вся вещественная ось чисел.

В методах одномерной оптимизации вместо X=R рассматривается отрезок X=[a,b], содержащей искомое решение x*. Такой отрезок называется отрезком неопределенности, или отрезком локализации. Относительно целевой функции f(x) часто предполагается, что она унимодальная.

Определение: Функция f(x) называется унимодальной на X=[a,b], если существует такая точка x*X, что

f(x1)>f(x2), если x1<x2<x*, x1,x2X,

f(x1)<f(x2), если x*<x1,x2, x1,x2X.

Если ограничиваться рассмотрением лишь непрерывных функций f(x), то свойство унимодальности функции попросту означает наличие у нее единственного локального минимума и этот минимум достигается в точке x=x*.

В ряде методов относительно целевой функции f(x) предполагается, что она выпуклая на X.

Определение: Функция f(x) называется выпуклой на x=[a,b],

если f(x1+(1-)x2)f(x1)+(1-)f(x2)

при любых x1,x2,X и всех , 01.

Если при любых x1,x2,X неравенство будет строгим, то функция f(X) называется строго выпуклой.

Непрерывная строго выпуклая функция является унимодальной. Однако не всякая унимодальная функция является выпуклой или непрерывной.

БИЛЕТ 16

Задача многомерной безусловной оптимизации формулируется в виде:

min f(x),

xX

где x={x(1), x(2),…, x(n)} – точка в n-мерном пространстве X=IRn, то есть целевая функция f(x)=f(x(1),…,f(x(n)) – функция n аргументов.

Так же как и в первой лабораторной работе мы рассматриваем задачу минимизации. Численные методы отыскания минимума, как правило, состоят в построении последовательности точек {xk}, удовлетворяющих условию f(x0)>f(x1)>…>f(xn)>… . Методы построения таких последовательностей называются методами спуска. В этих методах точки последовательности {xk} вычисляются по формуле:

хk+1 = xk + kpk, k=0,1,2,… ,

где pk – направление спуска, k – длина шага в этом направлении.

Различные методы спуска отличаются друг от друга способами выбора направления спуска pk и длины шага k вдоль этого направления. Алгоритмы безусловной минимизации принято делить на классы, в зависимости от максимального порядка производных минимизируемой функции, вычисление которых предполагается. Так, методы, использующие только значения самой целевой функции, относят к методам нулевого порядка (иногда их называют также методами прямого поиска); если, кроме того, требуется вычисление первых производных минимизируемой функции, то мы имеем дело с методами первого порядка; если же дополнительно используются вторые производные, то это методы второго порядка и т. д.

.Метод покоординатного спуска.

Желание уменьшить объем вычислительной работы, требуемой для осуществления одной итерации метода наискорейшего спуска, привело к созданию методов покоординатного спуска.

Пусть - начальное приближение. Вычислим частную производную по первой координате и примем:

где е1={1,0,…,0}T – единичный вектор оси х(1). Следующая итерация состоит в вычислении точки х2 по формуле:

где е2={0,1,0,…,0}T – единичный вектор оси х(2) и т. д.

Таким образом, в методах координатного спуска мы спускаемся по ломанной, состоящей из отрезков прямых, параллельных координатным осям.

х(2)

Спуск по всем координатам составляет одну «внешнюю» итерацию. Пусть к – номер очередной внешней итерации, а j – номер той координаты, по которой производится спуск. Тогда формула, определяющая следующее приближение к точке минимума, имеет вид:

где к=0,1,2,… ; j=1,2,…n.

В координатной форме формула выглядит так:

После j=n счетчик числа внешних итераций к увеличивается на единицу, а j принимает значение равное единице.

Величина шага к выбирается на каждой итерации аналогично тому, как это делается в градиентных методах. Например, если к= постоянно, то имеем покоординатный спуск с постоянным шагом.

Схема алгоритма покоординатного спуска с постоянным шагом

Шаг 1.

При к=0 вводятся исходные данные х0, 1, .

Шаг 2.

Осуществляется циклический по j (j=1,2,…,n) покоординатный спуск из точки хkn по формуле:

Шаг 3.

Если ||x(k+1)n – xkn||1, то поиск минимума заканчивается, причем:

Иначе к=к+1 и переходим к шагу 2.

Если же шаг к выбирается из условия минимума функции:

то мы получаем аналог метода наискорейшего спуска, называемый обычно методом Гаусса – Зейделя.

Схема метода Гаусса – Зейделя

Шаг 1.

При к=0 вводятся исходные данные х0, 1.

Шаг 2.

Осуществляется циклический по j (j=1,2,…,n) покоординатный спуск из точки хkn по формулам:

где kn+j-1 является решением задачи одномерной минимизации функции:

Шаг 3.

Если ||x(k+1)n – xkn||1, то поиск минимума заканчивается, причем:

Иначе к=к+1 и переходим к шагу 2.

Метод наискорейшего спуска.

В градиентном методе с постоянным шагом величина шага, обеспечивающая убывание функции f(x) от итерации к итерации, оказывается очень малой, что приводит к необходимости проводить большое количество итерации для достижения точки минимума. Поэтому методы спуска с переменным шагом являются более экономными. Алгоритм, на каждой итерации которого шаг к выбирается из условия минимума функции f(x) в направлении движения, то есть:

называется методом наискорейшего спуска. Разумеется, этот способ выбора к сложнее ранее рассмотренных вариантов.

Реализация метода наискорейшего спуска предполагает решение на каждой итерации довольно трудоемкой вспомогательной задачи одномерной минимизации. Как правило, метод наискорейшего спуска, тем не менее, дает выигрыш в числе машинных операций, поскольку обеспечивает движение с самым выгодным шагом, ибо решение задачи одномерной минимизации связано с дополнительными вычислениями только самой функции f(x), тогда как основное машинное время тратится на вычисление ее градиента .

Следует иметь в виду, что одномерную минимизацию можно производить любым методом одномерной оптимизации, что порождает различные варианты метода наискорейшего спуска.

Схема алгоритма

Шаг 1.

Задаются х0, 3. Вычисляется градиент , направление поиска.

Присваивается к=0.

Шаг 2.

Определяется точка очередного эксперимента:

хк+1 = хк - к ,

где к – минимум задачи одномерной минимизации:

Шаг 3.

Вычисляется значение градиента в точке хк+1: .

Шаг 4.

Если || ||3, то поиск точки минимума заканчивается и полагается:

Иначе к=к+1 и переход к шагу 2.

БИЛЕТ 18

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]