
- •Оптимизация
- •1. , Отсюда
- •2. , Откуда
- •Оптимизация функции одной переменной
- •Методы поиска
- •Метод золотого сечения
- •Блок-схема метода "золотого сечения"
- •Оптимизация функции многих переменных Минимум функции нескольких переменных
- •Общий алгоритм методов многомерного поиска:
- •Вычисление производных функции
- •Градиентные методы поиска экстремума
- •Алгоритм простого градиентного метода:
- •Алгоритм метода наискорейшего спуска:
- •Симплексный метод
- •Расчет координат новой вершины симплекса
- •Алгоритм метода "деформируемых многогранников"
Методы поиска
Будем искать минимум функции 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 и оценке погрешности.
В описанном методе можно с помощью разумного выбора шага разбиения добиться эффективного поиска.
Пример - пусть начальная длина интервала неопределенности равна 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) производится лишь один раз. Эта точка называется золотым сечением и выбирается специальным образом.
Геометрическая идея метода:

Вывод соотношения золотого сечения:
Пусть длина интервала неопределенности равна 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 = b1 - 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 ).