Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
11111 / ТТ / Методы статической оптимизации.doc
Скачиваний:
85
Добавлен:
11.02.2015
Размер:
1.13 Mб
Скачать

Решение задач одномерной оптимизации методом золотого сечения

Пусть f(x) - функция, определенная на отрезке [a,b]. Функция f(x) называется унимодальной, если существует единственная точка х*, в которой f(x) принимает экстремальное значение. Так как max f = -min (-f), то в дальнейшем будем считать, что речь идет о минимуме функции f(x) отрезке [a,b].

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

Рисунок 1-Унимодальные функции

Из определения унимодальности следует, что если Х12Х*, то f(Х1)>f(Х2). Аналогично, если Х*Х12, то f(Х1)<f(Х2).

Задача минимизации функция f(Х) состоит в построении такой последовательности чисел {Хк}, для которой минимальное значение, функции f(X) будет находиться в интервале Xк-1X*Xк. Такой интервал называется интервалом неопределенности.

Алгоритм выбора абсцисс {Хк} называется стратегией поиска. При заданном количестве вычислений функции наилучшей стратегией будет та, которая даст меньший интервал неопределенности. Известно, что оптимальной является стратегия Фибоначчи. Метод золотого сечения при достаточно большом количестве вычислений дает окончательный интервал неопределенности лишь на 17 % больше, чем метод Фибоначчи, однако организация вычислительного процесса в методе золотого сечения значительно проще.

Как известно, золотым сечением отрезка называют деление отрезка на две части так, что отношение длины всего отрезка к длине большей части равно отношению длины большей части к меньшей. Золотое сечение отрезка [a,b] производят две симметрично расположенные точки

Х1=а + (1 - )*(b - a);X2=a + *(b - a),

где  =(5-1)/2=0,6180339. Точка Х1, в свою очередь, производит золотое сечение отрезка [а, X2], а точка Х2 - золотое сечение отрезка [X1, b].

Алгоритм поиска минимального значения функции f(Х) на отрезке [a, b] заключается в следующем. Начальный отрезок [a, b] делим точками Х1 и Х2 по "правилу золотого сечения" и в точках Х1 и Х2 вычисляем значения функций f(X1) и f(X2). Если f(X1)<f(X2), то для дальнейшего деления берем отрезок [a, X2]. Если же f(X1)>f(x2), то берем отрезок [X1, b]. Покажем это.

Пусть f(X1)<f(X2), то для дальнейшего рассмотрения берем отрезок [a, X2], т.е. считаем Х* расположенным левее точки Х2. Действительно, предположим, что оптимум Х*>X2, т.е. расположен наоборот правее точки Х2, но тогда Х1 и Х2 будут находиться с одной стороны от оптимума: X1<X2<X*. По определению унимодальности это означало бы, что f(X1)>f(X2), но это противоречит условию f(X1)<f(X2). Аналогично, если f(X1)>f(X2).

В первом случае одной из двух точек, делящих в золотом отношении отрезок [a, X2], будет точка Х1, а во втором для отрезка [X1, b] - точка Х2. Это следует из свойств золотого сечения. Таким образом, из двух значений функции, необходимых на новом шаге расчета, вычисляется всего одно: другое было получено на предыдущем шаге вычислений. Итак, на каждом шаге поиска, начиная со второго, требуется лишь одно вычисление функции, и интервал неопределенности уменьшается в (0,618)-1 раз. Итерации продолжаются до тех пор, пока интервал неопределенности не станет меньше некоторого заданного достаточно малого положительного числа .

Алгоритм поиска минимума функции f(X) на отрезке [a, b] поясняется на рисунке 2

Рисунок 2-Поиск минимума методом золотого сечения

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