- •О.К. Мурга
- •Оглавление
- •1. Методы одномерной оптимизации 6
- •2. Методы безусловной оптимизации 13
- •3. Методы оптимизации при наличии ограничений 35
- •4. Приближённое решение задачи оптимального управления 53
- •Введение
- •1. Методы одномерной оптимизации
- •1.1. Методы перебора
- •1.1.1. Метод равномерного поиска
- •1.1.2. Метод поразрядного поиска
- •1.2. Методы исключения отрезков
- •1.2.1. Метод дихотомии
- •1.2.2. Метод золотого сечения
- •1.3. Сравнительный анализ методов одномерного поиска
- •1.4. Порядок выполнения лабораторной работы
- •1.5. Задания для лабораторной работы.
- •2. Методы безусловной оптимизации
- •2.1. Прямые методы безусловной оптимизации
- •2.1.1. Поиск по правильному симплексу
- •2.1.2. Поиск по деформируемому многограннику
- •Влияние параметров алгоритма на эффективность поиска
- •2.1.3. Типовой пример.
- •2.1.4. Порядок выполнения лабораторной работы
- •2.1.5. Задания для лабораторной работы
- •2.2 Методы покоординатного спуска
- •2.2.1 Метод циклического покоординатного спуска
- •2.2.2. Метод Зейделя.
- •2.2.3. Метод Хука-Дживса
- •2.2.4. Метод Пауэлла.
- •2.2.5. Типовые примеры
- •2.2.6. Порядок выполнения лабораторной работы
- •2.2.7. Задания для лабораторной работы
- •2.3. Градиентные методы
- •2.3.1. Метод градиентного спуска
- •2.3.2. Метод наискорейшего спуска
- •2.3.3. Типовой пример
- •2.3.4. Порядок выполнения лабораторной работы
- •2.3.5. Задания для лабораторной работы
- •3. Методы оптимизации при наличии ограничений
- •3.1. Методы последовательной безусловной оптимизации
- •3.1.1. Метод штрафных функций
- •3.1.2. Метод барьерных функций
- •3.1.3. Комбинированный метод штрафных функций
- •3.1.4. Типовой пример
- •3.1.5. Задание для лабораторной работы
- •3.2. Метод возможных направлений
- •3.2.1. Постановка задачи выпуклого программирования
- •3.2.2. Описание метода возможных направлений
- •3.2.3. Построение начального приближения
- •3.2.4. Выбор наилучшего подходящего направления
- •3.2.5. Определение длины шага
- •3.2.6. Типовой пример
- •3.2.7. Задания для лабораторной работы
- •3.3. Метод случайного поиска
- •3.3.1. Поиск с возвратом при неудачном шаге
- •3.3.2. Алгоритм наилучшей пробы
- •3.3.3. Алгоритм статистичекого градиента
- •3.3.4. Порядок выполнения работы
- •3.3.5. Задания для лабораторной работы
- •4. Приближённое решение задачи оптимального управления
- •4.1. Постановка задачи оптимального управления
- •4.2. Градиентный метод решения задачи оптимального управления
- •4.2.1. Описание градиентного метода в функциональном пространстве.
- •4.2.2. Алгоритм метода.
- •4.2.3. Порядок выполнения лабораторной работы.
- •4.2.4. Задания для лабораторной работы.
- •Список литературы
2.2.4. Метод Пауэлла.
В основе этого метода лежит рассмотренный в пункте 2.2.2 метод покоординатного спуска Зейделя, дополненный последовательным нахождением направлений убывания после завершения очередной внешней итерации и минимизацией функции f(X) по этим направлениям.
Пусть задана точка начального приближения X0ÎEn. Выполним одну внешнюю итерацию метода покоординатного спуска Зейделя (см. пункт 2.2.2), т.е. найдем точку
Xn= X0+
где ej – единичный координатный вектор, у которого j–я координата равна 1, остальные равны 0, j=1,…,n. При этом величина шага определяется с помощью какой-либо процедуры одномерной оптимизации по
j =arg min {f(Xj-1+ ej ) ÎR}.
Далее выполняется “диагональный”шаг в направлении убывания функции f(X) по вектору: Sn+1=XnX0: Xn+1=Xn+n+1Sn+1, где величина шага n+1 определяется путем минимизации целевой функции в направлении вектора Sn+1 с помощью одномерного поиска по :
n+1 =arg min {f(Xn+Sn+1) | 0}.
Полагая X0=Xn+1, приступаем к выполнению следующей внешней итерации. Описанная процедура повторяется до тех пор, пока не выполнится одно из условий (2.19).
2.2.5. Типовые примеры
Пример 1. Решить задачу минимизации функции двух переменных f(X)=5x12+5x22+8x1x2 из начальной точки X0=(5;5)Т методом покоординатного спуска Зейделя.
Заметим, что линии уровня данной целевой функции соосные эллипсы с центром в начале координат, большая ось которых наклонена под углом 135 к оси х1. Результаты расчетов по приведенному в пункте 3 алгоритму приведены в таблице и графически проиллюстрированы на рис.5. При нахождении очередной точки Xк минимизирующей последовательности происходит смещение по прямой, параллельной одной из координатных осей, до точки с наименьшим на этой прямой значением функции f(X). Очевидно, эта точка будет точкой касания рассматриваемой прямой и соответствующей линии уровня.
Таблица 1
K
X1
X2
F(x)
0
2
5
225
1
-4
5
45
2
-4
3,2
28,8
3
-2,56
3,2
18,43
4
-2,56
2,05
11,8
5
-1,64
2,05
7,55
6
-1,64
1,31
4,83
7
-1,05
1,31
3,09
8
-1,05
0,84
1,98
9
-0,67
0,84
1,27
10
-0,67
0,54
0,81
Эффективность
прямых методов обычно оценивают или
по объему вычислений,
Рис.5. Траектория поиска методом
покоординатного спуска Зейделя(к примеру1).
Пример 2. Решить задачу минимизации функции f(X)=(x1+1)2+x22 методом ХукаДживса из начальной точки X0=(2;3)T.
Зададим вектор перемещения =(2;3)T. Исходное значение функции в начальной точке f(X0)=18. В соответствии с алгоритмом, описанным в пункте 4, сначала проводим исследующий поиск из точки X0
x1(1)=2+0,5=2,5; f(2,5;3)=21,25 (неудача);
x1(1)=20,5=1,5; f(1,5;3)=15,25 (успех);
x2(1)=3+1=4; f(1,5;4)=22,25 (неудача);
x2(1)=31=2; f(1,5;2)=10,25 (успех).
Исследующий поиск оказался удачным. Теперь из новой точки X1=(1,5;2)T перемещаемся в направлении убывания по вектору X1X0 в точку X2=2X1 X0:
x1(2)=21,52=1; x2(2)=223=1; f(1;1)=5.
Проводим исследующий поиск в точке X1=(1,5;2)T:
x1(3)=1+0,5=1,5; f(1,5;1)=7,25 f(X2) (неудача);
x1(3)=10,5=0,5; f(0,5;1)=3,25 f(X2) (успех);
x2(3)=1+1=2; f(0,5;2)=6,25 f(X2) (неудача);
x2(3)=11=0; f(0,5;0)=2,25 f(X2) (успех);
Поскольку f(X3)=2,25 f(X1)=10,25 и перемещение из точки X1 в точку X2=(1;1)T успешно, то вновь перемещаемся по направлению убывания из точки X3 в точку
X4=2X3 X1:
x1(4)=20,51,5=-0,5; x2(4)=202=-2; f(-0,5;-2)=4,25.
После этого проводим исследующий поиск в точке X4=(-0,5;-2)T:
x1(5)=-0,5+0,5=0; f(0;-2)=5 f(X4) (неудача);
x1(5)=-0,50,5=-1; f(-1;-2)=4 f(X4) (неудача);
x2(5)=-2+1=-1; f(-0,5;-1)=1,25 f(X4) (успех).
Поскольку f(X5)=1,25 f(X3)=2,25 и перемещение из точки X3 в точку X4 можно признать успешным, то последовательность поисков по направлению убывания продолжаем до тех пор, пока на очередном этапе в конце исследующего поиска значение f(X) не окажется больше, чем в предыдущей точке. Тогда из последней проводим исследующий поиск для определения нового удачного направления. На рис.6 приведена графическая интерпретация этапов поиска. Линии уровня целевой функции f(X)=(x1+1)2+x22– концентрические окружности с центром в точке X*=(-1;0). Пунктиром на рисунке выделены траектории исследующего поиска, сплошными линиями – перемещения в направлении убывания. Убедитесь в соответствии графической иллюстрации описанному алгоритму.
Рис.6. Минимизация функции Рис.7. Минимизация функции методом
методом ХукаДживса (к примеру 2). Пауэлла (к примеру 3).
Пример 3. Рассмотрим графическую иллюстрацию решения задачи минимизации функции f(X)=2x12+x22x1x2 методом Пауэлла из начальной точки X0=(2;2)T(рис.7).
Линии уровня функции f(X) – соосные эллипсы с центром в начале координат, большая ось которых наклонена к оси x1 под углом 67,5. Первый шаг делается в соответствии с методом покоординатного спуск Зейделя ( см. 2.2.2 ) из точки X0 в направлении -e1=(-1;0), т.е. минимизируется f(X0– e1) по 0 с помощью процедуры одномерного поиска. В результате находится точка X1=X0 1e1, где 1=arg min{f(X0– e1)|0}. Очевидно, эта точка будет точкой касания с соответствующей линией уровня f(X)=const. Аналогично выполняется второй шаг из точки X1 в направлении -e2=(0;-1) и находится точка X2=X12e2, где 2=arg min{f(X1– e2)|0}. Затем выполняется «диагональный» шаг из точки X2 в направлении вектора X2 X0. Поскольку целевая функция f(X) квадратичная, точку её минимума удалось найти точно за конечное число шагов.