Московский физико-технический институт
Опубликован: 25.10.2007 | Доступ: свободный | Студентов: 3914 / 1195 | Оценка: 4.50 / 4.33 | Длительность: 24:00:00
ISBN: 978-5-9556-0065-9
Специальности: Программист, Математик
Лекция 5:

Численные методы решения экстремальных задач

Теорема. Пусть функция \Phi (u) дважды непрерывно дифференцируема. Тогда достаточным условием того, чтобы стационарная точка u* была точкой локального минимума, является положительная определенность матрицы Гессе

$ \mathbf{G} (u^*) = \left\{
{\begin{array}{ccc}
{\frac{\partial^2\Phi }{\partial u_1^2}} & \ldots & {\frac{\partial^2\Phi }{\partial u_1\partial u_m}} \\ 
 \ldots & \ldots & \ldots \\ 
{\frac{\partial^2\Phi }{\partial u_m \partial u_1}} & \ldots & {\frac{\partial^2
\Phi }{\partial u_m^2}} \\ 
\end{array}}\right\}. $

Отметим, что методы отыскания минимума \Phi (u) нередко оказываются более эффективными, чем методы численного решения СНАУ.

Метод перебора.

Пусть U = [a, b] , т.е. отрезок числовой оси. Разобьем его на n равных частей с узлами в точках ui = a + i(b - a)/n; i = 0, ..., n.

Вычислив значение \Phi (u) в этих точках, найдем путем сравнения точку u*, в которой

\Phi (u^*) = \min\limits_{0 \le  i \le  n}\Phi (u_i ).

Далее полагаем: u^{*} \approx  u_{min}, \Phi ^{*} \approx  \Phi (u^{*}). Погрешность в определении u* этого простейшего метода не превосходит числа

$ \varepsilon_n = \frac{b - a}{n}. $

Этот метод прост, но неэкономичен, особенно когда ищется минимум функции многих переменных. Например, в гиперкубе U = \left\{{0 \le u_i \le 1,1 \le i \le 10}\right\} с разбиением каждого из отрезков (по каждой из координат) на 10 частей, с быстродействием 10^6 операций в секунду потребуется около 107 с (примерно 4 месяца) для нахождения \min\limits_U\Phi (u), если предположить, что количество арифметических действий, необходимое для вычисления значений \Phi (u) в каждой точке требует тысячи арифметических операций. Этот метод можно сделать более эффективным, если сначала определить минимум с грубым шагом, затем уже искать минимум с меньшим шагом на том из отрезков [xi, xi + 1], на котором предполагается наличие минимума; можно и далее уточнять решение задачи таким же образом.

Усовершенствованием этого метода являются методы исключения отрезков, дихотомии (деления отрезка пополам) и золотого сечения. В них отрезок [a, b] делится на 4 части выбором внутри отрезка точек u1, u2, в которых вычисляются значения целевой функции. Сравнив ее значения в этих точках, можно сократить отрезок поиска точки минимума, перейдя к отрезку [a, u2], если \Phi (u_1) \le \Phi (u_2) или [u1, b], если \Phi (u_1) \ge \Phi (u_2). Эту процедуру можно продолжить.

В методе дихотомии точки u1, u2 выбираются близко к середине отрезка

$ u_1 = \frac{b + a - \Delta }{2}, u_2 = \frac{b + a + \Delta }{2}, $
где \Delta достаточно мало. Поскольку отношение
$ \frac{b - u_1}{b - a},\frac{u_2 - a}{b - a} $
близко к 1/2, такой выбор объясняется стремлением обеспечить максимальное относительное уменьшение отрезков.

В конце вычисления в качестве приближенного значения u* берется середина последнего отрезка. В результате n итераций длина отрезка будет

$ \Delta_n = \frac{b - a}{2^n} + (\frac{1}{2^n} + \frac{1}{2^{n - 1}} + \ldots + \frac{1}{2})\Delta = \frac{b - a}{2^n} + (1 - \frac{1}{2^n})\Delta $,
т.е. точность определения u* составляет \varepsilon _{n} = \Delta _{n}/2.

Находя n из условия \varepsilon_n \le \varepsilon , получим количество итераций, необходимое для достижения данной точности

$ n \ge \log_2\frac{b - a - \Delta }{2\varepsilon - \Delta }. $

Если в предыдущем неравенстве положить \Delta малой, то

$ \varepsilon_n  \approx  \frac{b - a}{2^{n + 1}}. $

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

Расположим точки u1, u2 на [a, b] так, чтобы одна из них стала бы также пробной, но уже на новом отрезке, после исключения части исходного отрезка. Это позволит уменьшить количество вычислений, поскольку необходимо будет вычислить значение \Phi (u) лишь в одной из пробных точек, так как во второй оно уже известно.

Найдем расположение таких точек, для чего рассмотрим отрезок [0, 1] и, для определенности, положим, что при его уменьшении исключается его правая часть.