- •А.В. Михайлов
- •Утверждено
- •Москва 2009
- •1.1. Основные понятия и определения.
- •1.2 Основные этапы формулировки задачи.
- •1.3 Классификация оптимизационных задач.
- •1.4 Критерий оптимальности.
- •1.5. Условия оптимальности решения.
- •2.1. Постановка задачи. Методы решения оптимизационных задач.
- •2.3. Численные методы решения задачи (методы одномерного поиска).
- •2.3.1. Метод равномерного поиска
- •2.3.2. Метод последовательного равномерного поиска.
- •2.3.3. Метод дихотомии (Метод деления интервала неопределенности пополам)
- •2.3.4 Метод золотого сечения
- •3. Определение безусловного максимума функции нескольких переменных.
- •3.1. Постановка задачи и ее геометрическая интерпретация. Линии равного уровня.
- •Аналитический метод решения задачи. Аналитический метод использует необходимое условие max функции нескольких переменных:
- •Численные методы решения задачи (методы многомерного поиска).
- •Метод направленного перебора.
- •3.3.2. Методы нулевого порядка.
- •3.3.2.1. Метод Гауса-Зайделя (покоординатного поиска).
- •Пример: Выполнить первый цикл поиска максимума функции:
- •3.3.2.2. Симплекс-метод
- •3.3.3. Численные методы первого порядка (градиентные)
- •3.3.3.2. Метод градиента.
- •3.3.3.3. Метод крутого восхождения.
- •4.1 Постановка задачи и ее геометрическая интерпретация
- •4.2. Аналитические методы решения задачи
- •4.2.1. Метод неопределенных множителей Лагранжа
- •Теорема Куна-Таккера.
- •4.3. Численные методы решения задачи
- •4.3.1. Метод штрафных функций
- •5. Оптимизация многостадийных процессов
- •5.1. Постановка задачи на примере и ее формализация.
- •5.3. Метод динамического программирования. Принцип оптимальности Беллмана.
- •5.4. Задача определения оптимального пути на сетевом графике (графе).
- •6. Линейное программирование.
- •6.1. Постановка задачи линейного программирования и особенности ее решения.
- •7.Определение максимума функционала. (Вариационная задача оптимизации).
- •7.1. Пример постановки вариационной задачи.
- •7.2. Определение безусловного максимума функционала. (Классическая вариационная задача), (задача Эйлера).
- •7.3. Определение условного максимума функционала (неклассическое вариационное исчисление)
- •7.4. Определение условного максимума функционала с ограничениями типа дифференциальных уравнений. Принцип максимума Понтрягина.
- •8.1. Формирование критериев оптимальности.
- •8.2. Способы формирования сводного критерия оптимальности.
- •8.2.1. Свертка частных критериев с весовыми коэффициентами.
- •8.2.2. Использование нормативных критериев.
- •8.2.3. Приближение к идеалу.
- •8.2.4. Справедливый компромисс.
- •8.3. Оптимальность по Парето.
- •9. Типовые постановки задач оптимального управления технологическими процессами
- •9.1. Пуск и остановка единичного агрегата.
- •9.2. Пуск системы взаимосвязанных агрегатов.
- •9.3. Оптимизация статического установившегося режима.
- •9.4. Оптимизация циклического установившегося режима.
- •9.5. Оптимизация режима в аппарате периодического действия.
- •9.6. Календарное планирование работы аппарата
- •9.7 Оптимальный режим работы параллельно включенных агрегатов: распределение нагрузок.
- •9.7.1. Минимизация затрат.
- •9.7.2. Учет вероятностного характера нагрузки.
- •9.7.3. Учёт динамических факторов.
- •9.8. Оптимальный режим работы последовательно включенных агрегатов.
- •9.9. Согласование работы периодически или циклически действующих аппаратов.
3.3.2. Методы нулевого порядка.
3.3.2.1. Метод Гауса-Зайделя (покоординатного поиска).
1). Для некоторого начального значения X(0) = (X1(0), X2(0)… Xn(0)) фиксируют все координаты вектора X кроме одной (для определённости X1) и производится поиск максимума функции одной переменной с помощью одного из методов, рассмотренных в разделе 2.
0 (X1) = 0 (X1, X2(0),…, Xn(0)) →max.
Очевидно, что в процессе такой оптимизации будет меняться только одна переменная X1 , в результате получаем точку
X01 = ( X10(1), X2(0), Xn(0) ), где X10(1) = arg max 0 (X1)
Рис. 3.5
2). Фиксируя в точке X01 все координаты X кроме второй, повторяют поиск максимума функции по X2. И, так до последней составляющей Xn. Цикл алгоритма завершается после n кратной операции одномерной оптимизации вдоль каждой из координат, после чего его повторяют, получая точки Xi0(2), в каждой из которых значение 0 не меньше предыдущего.
На рис. 3.5. представлена геометрическая интерпретация метода Гауса-Зайделя для случая функции двух переменных f (X) = f (X1, X2).
Расчёт заканчивается, когда Xi(N) < , или 0 (N)< , где – номер цикла поиска.
Xi(N)= Xi(N)- Xi(N-1);
f0(N)= f0(N)- f0(N-1);
Пример: Выполнить первый цикл поиска максимума функции:
0(X1, X2) = - X12 - X1X2 – X22 - 3X2 max, X1(0) = X2(0) = -1,
т.е. X(0)= .
Фиксируем X2= -1 и, подставляя это значение в целевую функцию, получаем
0(X1) = - X12 + X1 – 1 + 3 = -X12 + X1 + 2
Используем необходимые условия max функции одной переменной
Получаем точку =[0,5; -1].
Фиксируем =0,5 и, подставляя это значение в целевую функцию, получаем:
.
После первого цикла поиска получаем точку:
(1)=[0,5; -1,75],
Проверим, увеличилось ли в результате значение целевой функции
f0[(1)]=-0,25+0,5*1,75-(-1,75)2+3*1,75≈2,8 > f0 [X(0)] = 0,
значит первый цикл вычислений сделан правильно.
В случае так называемых овражных функций (рис. 3.6), возможна остановка алгоритма в точках, далеких от действительного максимума, т.к. направления поиска в данном методе жёстко фиксированы вдоль осей координат и совершенно не учитывают характер функции 0().
X2
M
X (N)
X1
Рис. 3. 6
Допустим, что после N-го цикла поиска мы попали в точку X(N) (см. рис. 3.6.). Любое из дальнейших возможных направлений поиска, указанных на рис. стрелками, очевидно приведет к уменьшению значения целевой функции. Таким образом, точка X(N) будет признана max исследуемой целевой функции, хотя на самом деле max находится в точке М.
3.3.2.2. Симплекс-метод
При использовании этого метода направление очередного шага поиска определяется в зависимости от значения целевой функции в вершинах выпуклого многогранника, называемого симплекс. При n-переменных симплекс имеет (n+1) вершину. В двумерном пространстве (n=2) симплексом является треугольник. Симплекс называется регулярным, если размеры всех его граней одинаковы.
Из любого симплекса, отобразив одну из его вершин симметрично, относительно противоположной грани, можно получить новый симплекс.
Алгоритм поиска максимума состоит в следующем:
1. Строится исходный симплекс S0, который включает в себя в качестве одной из вершин исходную точку . По заданной длине грани определяют координаты остальных вершин и значения функции0 во всех вершинах.
2. Следующий симплекс S1 строится зеркальным отображением вершины с минимальным значением целевой функции относительно противоположной грани.
3. Определяют значения 0 в вершинах симплекса S1, строят симплекс S2 и т.д.
Доказано, что при этом центр симплекса движется в сторону точки максимума целевой функции, вблизи от которой происходит зацикливание. Наличие зацикливания – признак приближения к максимуму и может быть использовано как условие для завершения вычислительной процедуры. Скорость поиска и точность зависят от размера грани, чем она больше, тем скорость выше, а точность меньше. Поэтому на практике используют модификации симплексного метода, в которых размер грани уменьшается, по мере приближения к точке максимума. Условием окончания поиска может служить уменьшение грани симплекса до заданной величины .
Вычисление координат отражённой вершины каждого следующего симплекса осуществляется по формуле:
(3.7),
где - i-тая координата =1,2…, отражённойj-той вершины = 1, 2, …, (+1).
Пример:
Определить max функции
Принять начальную точку с координатами = 2,= 0 и– длина грани. Задача двумерна, следовательно, симплексом является треугольник.
Рис. 3.7
Последовательность решения задачи геометрически представлена на
рис. 3.7. Результаты расчетов сведены в таблицу.
Таблица
-
№
верш.
X1
X2
0
1
2
0
16
2
3
0
21
3
2.5
0.865
21.5
11
3.5
0.865
25.5
22
3
1.73
27
33
4
1.73
28
14
3.5
2.6
26.4
Строим симплекс S0, определяем координаты его вершин 1, 2, 3, рассчитываем значения целевой функции f0 в вершинах и заносим результаты в таблицу. Наименьшее значение f0=16 получается для вершины 1, поэтому отображаем эту вершину симметрично, относительно противоположной грани, рассчитываем координаты отображенной вершины 11 в соответствии с выражением (3.7) и строим симплекс S1. При расчетах координат отображенных вершин будем пользоваться следующими обозначениями:
- номер координаты;
- номер вершины;
- номер отображения;
то есть - это вторая координата первой вершины после первого отображения и т.д., причем отображения нумеруются подряд, независимо от того, какая вершина отображается.
Вершинами S1 являются точки 2, 3,11. Так как значения f 0 в вершинах 2 и 3 уже известны, рассчитываем только значение целевой функции в вершине 11. Результаты расчетов заносим в таблицу. Сравнивая значения f 0 в вершинах симплекса S1, получаем наименьшее значение f 0 = 21 для вершины 2, поэтому отображаем эту вершину, аналогично предыдущей, рассчитываем координаты отображенной вершины 22 и строим симплекс S2, вершинами которого являются точки 3, 11, 22.
Проведя аналогичные операции с симплексом S2, получаем симплекс S3 с вершинами 11, 22, 33, а затем и симплекс S4 с вершинами 22, 33, 14.
Для симплекса S4 минимальным является значение целевой функции в вершине 14 (см. таблицу). Поэтому для построения следующего симплекса S5 необходимо отобразить вершину 14 и таким образом S5 будет совпадать с S3, т.е имеет место зацикливание. Для повышения точности расчёта целесообразно уменьшить грань симплекса, стянув его к вершине с большим значением целевой функции f0 (вершина 33 ), например путем деления первоначальной длины грани пополам (см. рис. 3.7).
После чего процедура поиска продолжается. Расчёт заканчивается, когда зацикливается симплекс с размером грани меньше заданного , и за решение задачи принимаются координаты вершины последнего симплекса, с максимальным значением целевой функции.