- •Содержание
- •Предисловие
- •Глава I. Нелинейное программирование: экстремумы функций нескольких переменных
- •§1. Классические методы оптимизации
- •1.1. Безусловный экстремум функции одной переменной
- •1.2. Условный экстремум функции одной переменной
- •1.3. Безусловный экстремум функций двух переменных
- •1.4. Упражнения.
- •§2. Безусловный экстремум функций нескольких переменных
- •2.1. Необходимые и достаточные условия
- •§3. Условный экстремум функций нескольких переменных
- •3.1. Основные определения и факты
- •3.2. Условный экстремум при ограничениях типа равенств
- •3.3. Условный экстремум при ограничениях типа неравенств
- •3.4. Условный экстремум при смешанных ограничениях
- •3.5. Понятие о методах штрафных функций
- •Глава II. Численные методы нелинейного программирования
- •§1. Общие положения
- •1.1. Постановка проблемы
- •1.2. Общие принципы.
- •§2. Методы нулевого порядка одномерной минимизации
- •2.1. Общие положения
- •2.2. Метод равномерного поиска
- •2.3. Метод деления интервала пополам
- •§3. Методы первого и второго порядка
- •3.1. Метод градиентного спуска с постоянным шагом
- •3.2. Метод Ньютона
- •§4. Элементы численных методов задачи условной оптимизации выпуклого программирования
- •4.2. Постановка задачи выпуклого программирования.
- •4.3. Численные методы на основе метода штрафных функций
- •4.4. Метод проекции градиента.
- •Приложение 1. Варианты индивидуальных заданий
- •Задание нп-1
- •Задание нп-2
- •Задание нп-3
- •Задание нп-4
- •Задание нп-5
- •Задание нп-6
- •Задание нп-7
- •Задание нп-8
§2. Методы нулевого порядка одномерной минимизации
2.1. Общие положения
Методы нулевого порядка рассмотрим на примере минимизации функции одной переменной (одномерной минимизации). Прежде, чем приступить к рассмотрению самих методов, введём некоторые понятия и общие положения.
Функция f(x) называется унимодулярной на интервале [a, b], если она достигает глобального минимума на [a, b] в единственной точке x*, причём слева от x* функция строго убывает, а справа строго возрастает.
Большинство методов одномерной оптимизации применяется к унимодулярным функциям.
Для любого метода одномерной оптимизации необходимо задание начального интервала L0=[a0, b0], в котором лежит точка минимума. Интервал L0 называется начальным интервалом неопределённости.
Для выбора начального интервала неопределённости можно применить, например, алгоритм Свенна, идея которого заключается в следующем:
Берутся равноотстоящие друг от друга на некоторый шаг h три точки x0h, x0, x0+h и сравниваются значения f в этих точках. Если f(x0h)f(x0)f(x0+h), то в качестве начального интервала неопределённости берётся отрезок [x0h, x0+h]. Если f(x0h)f(x0)≥f(x0+h), то функция на этом отрезке противоречит определению унимодулярности, и таковой не является. Тогда берутся другие три точки и процедура повторяется. Если же на отрезке [x0h, x0+h] функция монотонна, то наращиваем отрезок в сторону убывания с определённым шагом до тех пор, пока значение функции в очередном конце отрезка не превысит значения на предыдущем. Это будет означать, что локальный минимум функции достигается на полученном отрезке. Более подробно:
1. Задать произвольно следующие параметры: x0 некоторую точку, h>0 величину шага. Положить k=0.
2. Вычислить значение функции в точках x0h, x0, x0+h.
3. Проверить условие окончания:
а) если f(x0h)f(x0)f(x0+h), то начальный интервал неопределённости определён: [a0, b0]=[x0h, x0+h];
б) если f(x0h)f(x0)f(x0+h), то функция не является унимодулярной, и требуемый интервал не может быть найден. Требуется задать другую x0.
в) если условие окончания не выполняется, то перейти к шагу 4.
4. Определить величину :
а) если f(x0h)f(x0)f(x0+h), то =h, a0=x0, x1=x0+h;
б) если f(x0h)f(x0)f(x0+h), то =h, b0=x0, x1=x0h, k=1
5. Найти следующую точку xk+1=xk+2k;
6. Проверить условие убывания функции:
а) если f(xk+1)<f(xk) и =h, то a0=xk;
если f(xk+1)<f(xk) и =h, то b0=xk;
в обоих случаях положить k=k+1 и перейти к шагу 5);
б) если f(xk+1)f(xk), то процедура завершается. При =h положить b0=xk+1, а при =h положить a0=xk+1. В результате имеем [a0, b0] искомый интервал неопределённости.
Пример I. Найти методом Свенна начальный интервал неопределённости для решения задачи f(x)=x26x+14min при x0=0, h=1.
Решение. 1. Положим k=0.
2.0. Вычислить значение функции в точках x0h=1, x0=0, x0+h=1:
f(1)=21, f(0)=14, f(1)=9.
3.0. Так как f(1)>f(0)>f(1)=9, то условие окончания не выполняется.
4.0. Полагаем =h=1, a0=x0=0, x1=x0+h=1, k=1.
5.1. Найдём следующую точку x2=x1+2=3.
6.1. Проверим условие убывания функции. Так как f(x2)=5<f(x1)=9 и =h, то a0=x1=1. Положим k=2.
5.2. Найдём следующую точку x3=x2+22=7;
6.2. Проверим условие убывания функции. Так как f(x3)=21>5=f(x2) то поиск завершён: правая граница b0=7.
Ответ: [1; 7] начальный интервал неопределённости.
Существуют две принципиально различные стратегии выбора точек, в которых производится вычисление значений функции. Это параллельная и последовательная стратегии. В первой стратегии все точки задаются заранее, до начала вычислений. Во второй стратегии точки выбираются последовательно в процессе поиска с учётом результатов предыдущих вычислений. Эта стратегия поиска включает в себя следующие три этапа:
Выбор начального интервала неопределённости.
Уменьшение интервала неопределённости.
Проверка условия окончания. Поиск заканчивается, когда длина текущего интервала неопределённости [ak, bk] оказывается меньше заданной величины .
Ниже мы рассматриваем два метода нулевого порядка. Один относится к параллельным, другой к последовательным стратегиям.
