Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
All_Questions.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
6.54 Mб
Скачать

27. Методы наискорейшего и координатного спуска для минимизации выпуклой функции без ограничений. Их алгоритмы и геометрическая интерпретация

Основные определения выпуклого программирования

Предположим, что имеется функция многих переменных .

Производной вектора в точке х называется следующий предел: .

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

Градиентом функции называется следующий вектор:

Направление градиента есть направление наискорейшего возрастания функции.

Производная функции по направлению градиента есть модуль (длина)градиента.

Градиент функции направлен по нормали к линии уровня.

Множество Х называется выпуклым, если вместе с любыми двумя точками содержит также их выпуклую линейную комбинацию:

Функция , определенная на выпуклом множестве Х, называется выпуклой, если для любых точек из множества Х и выполняется следующее неравенство:

Функция , определенная на выпуклом множестве Х, называется вогнутой, если для любых точек из множества Х и выполняется следующее неравенство:

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

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

Свойства:

  1. Если функция дифференцируема во внутренних точках множества Х, то для любых внутренних точек справедливо

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

Проверка выпуклости

Выпуклость определяется по критерию Сильвестра: функция будет выпуклой тогда и только тогда, когда

Общая схема методов спуска заключается в следующем:

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

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

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

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

Учитывая это требования должно находиться из условия:

С геометрической точки зрения, градиент в очередной точке ортогонален градиенту в предыдущей точке .

Когда остановится?

Останавливаемся, когда либо , либо , где - наперед заданные малые положительные числа.

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

Метод покоординатного спуска

Пусть имеется выпуклая функция и задача на минимум.

Суть метода

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

Опишем вышесказанное с помощью формул.

Обозначим - координатный (единичный) вектор, у которого на -ом месте стоит 1.

Пусть точка есть начальная точка. - некоторое положительное число, называемое параметром метода.

Предположим . (1)

Полагаем . (2)

Условие (2) обеспечивает циклический перебор векторов , т.е. .

Вычисляем значение функции в точке и проверяем неравенство . (3)

Если (3) выполняется, то полагаем

(4)

Если (3) не выполняется, то вычисляем значение функции в точке и проверяем . (5)

В случае выполнения (5) полагаем

(6)

Назовем -ую итерацию удачной, если справедливо либо (3), либо (5). Если -ая итерация будет неудачной, то необходимо некоторым образом изменить шаг, т.е. параметр метода, а именно полагаем:

(7)

Здесь - фиксированное число, являющееся параметром метода.

Условие (7) означает, что если за один цикл из n итераций при переборе всех координатных осей с шагом имеется хотя бы одна удачная итерация, то длина шага не дробится и сохраняется, по крайней мере, в следующем цикле из n итераций. Если же среди последних n итераций не оказалось ни одной удачной, то шаг дробится.

Теорема (о сходимости метода координатного спуска).

Пусть функция выпуклая и имеет непрерывную производную, тогда последовательность точек , полученные по формулам (2) – (7), сходится к точке минимума.

Замечание. Формулы (2)-(7) не требовали гладкости функции . Однако в теореме это условие есть. Можно показать, что если функция не гладкая, то метод может не сходиться к точке минимума.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]