Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория / 2 / 09-OPTIM.DOC
Скачиваний:
82
Добавлен:
30.04.2013
Размер:
246.78 Кб
Скачать

Методы поиска

Будем искать минимум функции f(x), которая определена на отрезке [a,b] и унимодальна (т.е. на данном отрезке имеет только один минимум).

Процесс решения задачи методом поиска состоит в последовательном сужении интервала изменения фактора оптимизации, называемого интервалом неопределенности. В начале процесса оптимизации его длина равна b-a, а к концу она должна стать меньше заданного допустимого значения e, т.е. оптимальное значение параметра оптимизации должно находиться в интервале неопределенности - отрезке [xn, xn+1], причем xn+1 - xn < e .

Наиболее простым способом сужения интервала неопределенности является деление его на некоторое число равных частей с последующим вычислением значений целевой функции в точках разбиения. Пусть n - число элементарных отрезков, h = (b-a)/n - шаг разбиения. Вычисляют значения целевой функции yk = fk(x) в узлах xk = a + k h (k=0,1, … , n). Сравнивая полученные значения f(xk), среди них находят минимальное. В данном методе, который можно назвать методом перебора, основная трудность состоит в выборе n и оценке погрешности.

Более экономичным способом уточнения оптимального параметра является использование свойства унимодальности целевой функции, которое позволяет построить процесс сужения интервала неопределенности. Если оптимальное значение функции находится в точке xi, то из рисунка видно, что оптимальное значение функции может находиться в интервале [xi-1, xi+1], т.е. интервал неопределенности сужается до длины двух шагов. Если этот интервал слишком велик, то его можно снова уменьшить путем нового разбиения. Получится интервал, равный двум длинам нового шага разбиения, и т.д.

В описанном методе можно с помощью разумного выбора шага разбиения добиться эффективного поиска.

Пример - пусть начальная длина интервала неопределенности равна b-a=1. Нужно добиться его уменьшения в 100 раз.

1 способ - интервал разбивают на 200 частей. Вычислив значения целевой функции f(xk) (k = 0, 1, … ,200) находят ее минимальное значение. Тогда искомый интервал неопределенности равен [xi-1, xi+1] .

2 способ - сначала разбивают отрезок [a,b] на 20 частей и находят интервал неопределенности длиной 0.1, при этом вычисляют значения целевой функции в точках xk = a + 0.05 k (k=0,1, …, 20). Теперь отрезок [xi-1, xi+1] снова разбивают на 20 частей; при этом получают искомый интервал длиной 0.01, причем значения целевой функции вычисляют в точках xk = xi-1 + 0.005 k (k=1,2, …, 19). Таким образом, во втором случае в процессе оптимизации проведено 40 вычислений целевой функции против 201 в первом случае.

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

Метод золотого сечения

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

Геометрическая идея метода:

На первом шаге процесса оптимизации внутри отрезка [a0, b0] выбирают две внутренние точки x1 и x2 и вычисляют значения целевой функции f(x1) и f(x2). Так как в данном случае f(x1) < f(x2), то очевидно, что минимум расположен на одном из прилегающих к x1 отрезков [a0, x1] или [x1, x2]. Поэтому отрезок [x2,b0] можно отбросить, сузив тем самым первоначальный интервал неопределенности.

Второй шаг проводится на отрезке [a1, b1], где a1 = a0 и b1 = x2. Нужно снова выбрать две внутренние точки, но одна из них (x1) осталась из предыдущего шага, поэтому достаточно вычислить лишь одну точку x3, вычислить значение f(x3) и провести сравнение. Так как здесь f(x3) > f(x1), то ясно, что минимум находится на отрезке [x3, b1]. Этот отрезок можно обозначить [a2, b2], снова выбрать одну внутреннюю точку и повторить процедуру сужения интервала неопределенности. Процесс оптимизации повторяется до тех пор, пока длина очередного отрезка [an, bn] не станет меньше заданной величины e.

Вывод соотношения золотого сечения:

Пусть длина интервала неопределенности равна l, а точка деления делит его на части l1, l2 : l1 > l2, l = l1 + l2 .Золотое сечение интервала неопределенности выбирается так, чтобы длины большего отрезка к длине всего интервала равнялось отношению длины меньшего отрезка к длине большего отрезка:

Из этого соотношения можно найти точку деления, определив отношение l2/l1 .Для этого

l12 = l2 * l Þ l12 = l2 * (l1 + l2)

l22 + l1 * l2 - l12 = 0

Þ

Так как интерес представляет только положительное решение, то

Отсюда l1 » 0.618*l, l2 » 0.382*l .

На первом шаге исходный интервал неопределенности равен d0 = b0 - a0 .При этом x1 - a0 = b0 - x2 = 0.382*d0 и b0 - x1 = x2 - a0 = 0.618*d0 .

После первого шага оптимизации получается новый интервал неопределенности d1 = b1 - a1 = x2 - a0 = 0.618*d0 .

После второго шага оптимизации имеем d2 = b2 - a2 = b - x3 = 0.618*d1 = 0.6182 * d0 .

Используя полученные соотношения, можно записать координаты точек деления y и z отрезка [ak,bk] на k+1 шаге оптимизации (y < z):

y = 0.618*ak + 0.382*bk : z = 0.382*ak + 0.618*bk .

При этом длина интервала неопределенности равна

dk = bk - ak = 0.618k * d0 .

Процесс оптимизации заканчивается при выполнении условия dk < e .При этом искомая величина лежит в интервале ak < xopt < bk. В качестве оптимального значения можно принять xopt = ak (или xopt = bk или xopt = (ak + bk)/2 ).

Соседние файлы в папке 2