- •О.К. Мурга
- •Оглавление
- •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. Задания для лабораторной работы.
- •Список литературы
1.2.1. Метод дихотомии
Идея этого метода заключается в том, чтобы делить очередной отрезок, содержащий точку минимума функции пополам и исключать из рассмотрения ту часть, где минимума быть не может. Отсюда и название метода – деление отрезка пополам (дихотомия).
Итак, в методе дихотомии пробные точки выбираются близко к середине очередного отрезка [a; b]
x1= x2= (1.8)
где d0- некоторое число малое настолько, что ещё можно отличить значения f(x1) и f(x2) друг от друга. При этом отношение длин нового и исходного отрезков близко к 1/2:
(1.9)
Поэтому, чем меньше число d, тем больше относительное уменьшение длины отрезка на каждой итерации. Т.е. при уменьшении d повышается скорость сходимости метода дихотомии. Рекомендуется значение d выбирать из интервала (0;2e).
В конце вычислений по методу дихотомии в качестве приближенного значения х* берут середину последнего из найденных отрезков, убедившись предварительно, что достигнуто неравенство en £ e, где
en= (1.10)
Находя n из этого условия, получаем число итераций метода дихотомии, необходимое для определения точки х* с заданной точностью e
n . (1.11)
Опишем алгоритм метода дихотомии.
Шаг 0. Задать параметр точности e > 0, параметр алгоритма dÎ(0;2e).
Шаг 1. Вычислить x1 и x2 по формулам (1.7) и значения функции f(x1) и f(x2).
Шаг 2. Сравнить эти значения. Если f(x1) £ f(x2), то перейти к отрезку [a; x2], положив b=x2, иначе – к отрезку [x1;b], положив а=x1.
Шаг 3. Найти достигнутую точность en=(b-a)/2. Если en > e, то перейти к шагу 1 для выполнения следующей итерации, иначе завершить поиск, положив х*»(a+b)/2.
1.2.2. Метод золотого сечения
В методе дихотомии при выполнении каждой итерации определяются две новые пробные точки x1 и x2. Рассмотрим такое симметричное их расположение на отрезке [a; b], при котором одна из них становится пробной точкой и на новом отрезке, полученном после исключения части исходного отрезка. Использование таких точек позволяет на каждой итерации метода исключения отрезков, кроме первой, ограничиться определением значения функции f(х) только в одной точке, т.к. другое значение уже найдено на предыдущей итерации. Таким свойством обладают точки золотого сечения отрезка [a; b].
Золотым сечением отрезка называется такое деление отрезка на две неравные части, что отношение длины всего отрезка к длине его большей части равно отношению длин большей и меньшей частей отрезка. Находятся две точки x1 и x2 (x1 < x2)
x1=a+ (b a); x2= a+ (b a), (1.12)
которые делят отрезок [a; b] в указанном отношении
(1.13)
Свойство золотого сечения как раз и замечательно тем, что точка x1 также производит золотое сечение отрезка [a; x2], а точка x2 в том же отношении делит отрезок [x1;b]. Это свойство и кладется в основу метода золотого сечения.
Отметим, что точки x1 и x2 симметричны относительно середины очередного отрезка:
x1=a+b- x2; x2=a+b- x1. (1.14)
Поэтому на каждой итерации недостающую пробную точку нового отрезка можно найти по перешедшей на него пробной точке, не используя формул (1.12).
В конце вычислений в качестве приближенного значения х* можно взять середину последнего из полученных отрезков. На каждой итерации отрезок поиска точки минимума уменьшается в одном и том же отношении t=( 1)/2, поэтому в результате n итераций его длина становится равной hn=tn(b a). Таким образом, точность en определения точки х* после n итераций находится по формуле
en = (1.15)
а условием окончания поиска х* c наперед заданной точностью e служит неравенство en £ e. Используя это условие и формулу (8) можно оценить число итераций, потребное для достижения заданной точности e:
n ln / ln ln . (1.16)
Опишем алгоритм метода золотого сечения.
Шаг 0. Задать параметр точности e > 0, положить t=( 1)/2.
Шаг 1. Найти x1 и x2 по формулам (5). Вычислить f(x1) и f(x2). Положить en =(ba)/2.
Шаг 2. Проверить условие окончания поиска en £ e. Если оно выполняется, то перейти к шагу 4, иначе – к шагу 3.
Шаг 3. Перейти к новому отрезку и новым пробным точкам. Если f(x1) £ f(x2), то положить b=x2, x2=x1, f(x2) = f(x1), x1 = b + a x2 и вычислить f(x1), иначе положить a=x1, x1=x2, f(x1) = f(x2), x2 = a + b – x1 и вычислить f(x2). Положить en =t×en и перейти к шагу 2.
Шаг 4. Завершить поиск, положив х* , f* .