Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОТВЕТЫ ЧМ.docx
Скачиваний:
5
Добавлен:
01.05.2025
Размер:
1 Мб
Скачать
☆

17. Одномерная задача оптимизации. Аналитическое решение и решение методом золотого сечения.

Задачи на экстремум.Одномерная задача оптимизации в общем случае формулируется следующим образом. Найти наименьшее (или наибольшее) значение целевой функции y=f(x), заданной на множестве , и определить значение проектного параметра x, при котором целевая функция принимает экстремальное значение.

Будем рассматривать методы оптимизации для разных классов целевых функций. Простейшим из них является случай дифференцируемой функции f(x) на отрезке [a,b], причем функция задана в виде аналитической зависимости y=f(x), и может быть найдено явное выражение для ее производной f(x). Нахождение экстремумов таких функций можно проводить известными из курса высшей математики методами дифференциального исчисления.

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

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

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

Рис. 2.

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

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

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

. (7)

Из этого соотношения можно найти точку деления, определив отношение l2/l1. Преобразуем выражение (7) и найдем это значение:

Поскольку нас интересует только положительное решение, то

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

Поскольку заранее неизвестно, в какой последовательности (l1 и l2 или l2 и l1) делить интервал неопределенности, то рассматривают внутренние точки, соответствующие двум этим способам деления. На рис. 2, а точки деления x1 и x2 выбираются с учетом полученных значений для частей отрезка. В данном случае имеем

.

После первого шага оптимизации получается новый интервал неопределенности - отрезок [a1,b1] (см. рис. 2, б). Можно показать, что точка x1 делит этот отрезок в требуемом соотношении, при этом

.

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

. (8)

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

. (9)

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