Смекни!
smekni.com

Сравнительный анализ методов оптимизации (стр. 2 из 7)

Пусть х' и х" - произвольные точки отрезка [a; b], причем х' < х". Легко проверить, что при любом aÎ [0; 1] точка xa = ax + (1-a) x" лежит на отрезке [x’; х"] и при непрерывном изменении a от 0 до 1 пробегает этот отрезок от точки х" (при a = 0) до точки x' (при a = 1).

Рассмотрим хорду графика f (x), проходящую через точки (х',f (х')) и (х",f (х")). Ордината ya точки этой хорды, соответствующая абсциссе c, равна. Поэтому неравенство (1) графика выпуклой функции и хорды означает, что f (xa) £ya, т.е. при любом расположении xa, на отрезке [х'; х"] точка графика функции f (x) лежит не выше соответствующей точки хорды.

2. Из курса математического анализа известны следующие условия выпуклости функции:

а) для того чтобы дифференцируемая на отрезке [а; b] функцияf (x) была выпуклой на этом отрезке, необходимо и достаточно, чтобы производная f' (x) не убывала на [а; b] ;

б) для того чтобы дважды дифференцируемая на отрезке [а; b] функция f (x) была выпуклой на этом отрезке, необходимо и достаточно, чтобы при всех хÎ [а; b] выполнялось неравенство f " (x) ³ 0.

3 Условие выпуклости для дифференцируемой на отрезке [а; b] функции f (x) означает, что на этом отрезке любая касательная к графику f (x) лежит не выше этого графика (рисунок 3).

Рисунок 3 - условие выпуклости

Уравнение касательной к графику f (х) в точке (x0,f (x0)), x0Î [а; b] имеет вид: у (х) =f (x0) +f’ (x0) (x-x0). По формуле конечных приращений для любогохÎ [а; b] имеем: f (х) =f (x0) +f’ (x) (x-x0), где точка x лежит междуx и x0. Поэтому

f (х) - у (х) = [f’ (x) - f’ (x0)] (x-x0), хÎ [а; b],

откуда с учетом того, что производная f’ (x) выпуклой функции не убывает, получаем:

f (x) -y (x) ³ 0 (2)

для всех хÎ [а; b].

4. Если f (x) - выпуклая дифференцируемая на отрезке [а; b] функция и в точке х* Î [а; b] выполняется равенство

f’ (x*) = 0 (3)

то х* является точкой глобального минимума f (х) на [а; b].

С учетом (3) уравнение касательной у (х) =f (х0) +f’ (х0) (х-х0) к графику f (x) для точки x0=х* принимает вид у (х) =f (x*). Поэтому из (2) следует, что f (x)

f (x*) для всех хÎ [а; b], т.е. х* - точка глобального минимума f (x).

Благодаря свойству 3 выпуклых функций данное свойство приобретает простой геометрический смысл: поскольку касательная к графику f (x) в точке с абсциссой х* горизонтальна, а этот график расположен не ниже касательной, то х* есть точка минимума f (x) (рисунок 3).

Таким образом, равенство (3) для выпуклой дифференцируемой функции является не только необходимым условием глобального минимума (как для всякой дифференцируемой функции), но и его достаточным условием.

5. Можно показать, что всякая выпуклая непрерывная на отрезке [а; b] функция является и унимодальной на этом отрезке. Обратное, вообще говоря, неверно (рисунок 4).

Рисунок 4 - график унимодальной, но не выпуклой функции

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

2. Прямые методы безусловной оптимизации

Для решения задачи минимизации функции f (х) на отрезке [а; b] на практике, как правило, применяют приближенные методы. Они позволяют найти решение этой задачи с необходимой точностью в результате определения конечного числа значений функции f (х) и ее производных в некоторых точках отрезка [а; b]. Методы, использующие только значения функции и не требующие вычисления ее производных, называются прямыми методами минимизации.

Большим достоинством прямых методов является то, что от целевой функции не требуется дифференцируемости и, более того, она может быть не задана в аналитическом виде. Единственное, на чем основаны алгоритмы прямых методов минимизации, это возможность определения значений f (х) в заданных точках.

Рассмотрим наиболее распространенные на практике прямые методы поиска точки минимума. Самым слабым требованием на функцию f (х), позволяющим использовать эти методы, является ее унимодальность. Поэтому далее будем считать функцию f (х) унимодальной на отрезке [а; b].

Рассмотрим конкретные вычислительные алгоритмы решения задачи безусловной минимизации f (х) ®min, xÎEn, которые опираются только на вычисление значений функции f (х), т.е. прямые методы минимизации. Важно отметить, что для их применения не требуется дифференцируемость целевой функции и даже ее аналитическое задание. Нужно лишь иметь возможность вычислять или измерять значения f (х) в произвольных точках. Такие ситуации часто встречаются в практически важных задачах оптимизации.

2.1 Прямые методы одномерной безусловной оптимизации

Методы исключения отрезков

Пусть а < x12<b. Сравнив значения f (x) в точках x1 и х2 (пробных точках), можно сократить отрезок поиска точки х *, перейдя к отрезку [а; х2], если

или к отрезку m [x1; b] если
(рисунок 5). Описанную процедуру можно повторить необходимое число раз, последовательно уменьшая отрезок, содержащий точку минимума. Когда длина последнего из найденных отрезков станет достаточно малой, следует положить
, где
- одна из точек этого отрезка, например, его середина. Методы минимизации, основанные на этом принципе, называются методами исключения отрезков.

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

Рисунок 5 - Уменьшение отрезка поиска точки минимума методами исключения отрезков

2.1.1 Метод деления отрезка пополам (дихотомии)

Суть метода заключается в том, что заданный отрезок [а; b] делится пополам:

.

Затем в каждой из половин отрезка [а; с] и [с; b] выбираются по одной точке x1 и х2, в них вычисляются значения функций, производится сравнение полученных значений, и в результате сравнения устанавливается отрезок, в котором минимума быть не может. Откинув его, продолжаем ту же процедуру с полученным отрезком до тех пор, пока вновь полученный отрезок не станет меньше по длине некоторой наперед заданной величины:

.

Скорость достижения

очевидно зависит от величины откидываемого отрезка. Поэтому x1 и х2 выбираются симметрично на расстоянии
:

(4)

где d > 0 - малое число.

В конце вычислений по методу дихотомии в качестве приближенного значения х* берут середину последнего из найденных отрезков [а; b], убедившись предварительно, что достигнуто неравенство

.

Опишем алгоритм метода деления отрезка пополам.

Шаг 1. Определить середину отрезка и значения x1 и х2 по формулам (4). Вычислить f (x1) и f (x2).

Шаг 2. Сравнить f (x1) и f (x2). Если

, то перейти к отрезку [а; x2], положив b = x2, иначе - к отрезку [x1; b], положив а = x1.

Шаг 3. Найти достигнутую точность

. Если
то перейти к следующей итерации, вернувшись к шагу 1. Если
, то завершить поиск х*, перейдя к шагу 4.

Шаг 4. Положить

.

Замечания:

1. Число d из (4) выбирают на интервале (0; 2e) с учетом следующих соображений:

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

б) при чрезмерно малом d сравнение значений f (x) в точках x1 и х2, отличающихся на величину d, становится затруднительным. Поэтому выбор d должен быть согласован с точностью определения f (x) и с количеством верных десятичных знаков при задании аргумента х.

Пусть

- погрешность счета. Тогда следует учитывать следующее условие:

.

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

Рассмотрим такое симметричное расположение точек x1 и х2 на отрезке [а; b], при котором одна из них становится пробной точкой и на новом отрезке, полученном после исключения части исходного отрезка. Использование таких точек позволяет на каждой итерации метода исключения отрезков, кроме первой, ограничиться определением только одного значения f (x),так как другое значение уже найдено на одной из предыдущих итераций.