- •1. ОСНОВНЫЕ ПОНЯТИЯ
- •2.1. Формализация геометрической задачи
- •2.2. Аппроксимация экспериментальных данных
- •2.3. Выбор места расположения управляющей вычислительной машины на производстве
- •2.4. Выбор места расположения УВМ в производственном здании
- •2.5. Определение оптимальных настроек АСР
- •2.6. Распределение нагрузки между параллельными агрегатами
- •2.7. Оптимизация температурного режима реактора периодического действия
- •3. ОСНОВНЫЕ ПОНЯТИЯ АЛГЕБРЫ И АНАЛИЗА
- •3.1. Общие сведения о множествах
- •Рис.2. Графическое представление операций над множествами
- •3.2. Евклидово пространство
- •3.3. Функция нескольких переменных и ее свойства
- •4. ПОСТАНОВКА ЗАДАЧИ ОПТИМИЗАЦИИ В ЕВКЛИДОВОМ ПРОСТРАНСТВЕ. УСЛОВИЯ ОПТИМАЛЬНОСТИ
- •4.1. Целевая функция. Локальный и глобальный оптимумы
- •4.2. Разрешимость задачи оптимизации
- •4.3. Задачи оптимизации без ограничений
- •4.4. Задачи оптимизации с ограничениями типа равенств. Метод неопределенных множителей Лагранжа
- •4.5. Задачи с ограничениями типа неравенств
- •5. ВЫПУКЛЫЕ ЗАДАЧИ ОПТИМИЗАЦИИ
- •5.1. Постановка задачи
- •5.2. Условия оптимальности в выпуклых задачах
- •6. МЕТОДЫ РЕШЕНИЯ ОПТИМАЛЬНОЙ ЗАДАЧИ ДЛЯ ФУНКЦИИ ОДНОЙ ПЕРЕМЕННОЙ
- •6.1. Необходимые и достаточные условия экстремума функции одной переменной
- •6.2. Алгоритм аналитического метода
- •7. ИТЕРАЦИОННЫЕ МЕТОДЫ ОПТИМИЗАЦИИ
- •7.1. Алгоритм итерационного метода
- •7.2. Метод сканирования
- •7.3. Определение унимодальной функции
- •7.4. Метод дихотомии
- •7.5. Метод золотого сечения
- •7.6. Одномерный градиент
- •7.7. Методы полиномиальной аппроксимации
- •7.8. Метод Пауэлла
- •7.9. Метод ДСК
- •7.10. Метод квадратичной интерполяции
- •7.11. Метод кубической аппроксимации
- •7.12. Метод Фибоначчи
- •7.14. Методы поиска безусловного экстремума невыпуклых функций
- •7.15. Метод тяжелого шарика
- •8. ЗАДАНИЯ
- •8.1. Исследование функции на выпуклость (вогнутость)
- •8.2. Варианты задач безусловной оптимизации
- •8.3. Варианты задач условной оптимизации
- •9. КОНТРОЛЬНЫЕ ВОПРОСЫ
- •10. ЛИТЕРАТУРА
3. Проверка условия остановки итерационной процедуры
– если |
|
f0 |
'(x0 ) |
|
≤ε , то задача решена, переходим на п.6; |
|
|
|
|||||
– если |
|
f0 |
'(x0 ) |
|
>ε , то переходим на п.4. |
|
|
|
|
||||
4. Вычисляется следующее приближение |
|
|||||
|
|
x1 |
= x0 − h f0 '(x0 ) (или x1 = x0 − h |
f0 (x0 ) / δ ), |
||
значение критерия f1=f0(x1), производная f0'(x1) |
или конечная разность |
f0 (x1) = f0 (x1 +δ) − f0 (x1) . Проверяется условие улучшаемости полученной точки: f1<f0 ? Если условие выполняется, то поиск следует продолжить из точки x1, т.е. x0=x1, f0'(x0)=f0'(x1), f0=f1, переход на п.3. Если f1 ≥ f0 , то переход на п.5.
5. Значение критерия возросло, следовательно, "проскочили" минимум. Начинаем поиск минимума в окрестности точки x0. Проверяем условие h <ε ? Если да, то переход на п.6, иначе уменьшаем шаг h=h/2 и возврат на п.4.
6. Печать "х*=", х0, оптимального значения критерия f0(x0) и для контроля правильности полученных данных – f0'(x0).
7.7. Методы полиномиальной аппроксимации
Эти методы основаны на возможности аппроксимации любой зависимости другой более простой зависимостью, при этом в качестве аппроксимирующей зависимости используется полином. После аппроксимации находят экстремум аппроксимирующего полинома, который является первым приближением к экстремуму аппроксимируемой функции.
Например, пусть целевая функция f(x) аппроксимирована полиномом второй степени.
P(x) = a0 + a1 x + a2 x2 ;
P'(x) = a1 + 2a2 x ;
69
P'(x |
* |
) = 0 |
|
x |
* |
= − |
a1 |
|
|
|
|
. |
|||||
|
|
2a2 |
Мы получим координату точки, которая лежит рядом с экстремальной точкой целевой функции f(x).
Все методы полиномиальной аппроксимации делятся на две груп-
пы:
1.Методы квадратичной аппроксимации, где используется для аппроксимации полином 2-го порядка.
2.Методы кубической аппроксимации, где используют полином 3- го порядка.
7.8.Метод Пауэлла
Этот метод относится к методам квадратичной аппроксимации. В нем используется итерационная процедура поиска, которую можно разделить на две части:
1 часть: определение области притяжения к экстремуму целевой функции;
2 часть: уточнение координат экстремальной точки Исходная функция f(x) аппроксимируется полиномом
P(x) = a0 + a1 (x − x1 ) + a2 (x − x1 )(x − x2 )
Неизвестные коэффициенты полинома находятся из условия интерполяции: значение полинома совпадает со значением исходной функции в узлах интерполяции xi:
P(xi ) = f (xi ), i =1,2,3. |
(7.10) |
Согласно (7.10) получаем |
|
a1 = f1, где f1 = f(x1) |
(7.11) |
P(x2 ) = f1 + a1 (x2 − x1 ) = f (x2 ) = f2 , |
отсюда |
|
70 |
|
|
|
|
|
|
|
|
a |
= |
|
f2 − f1 |
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
x |
|
− x . |
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
1 |
|
|
2 |
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
||
P(x |
3 |
) = f |
1 |
+ |
( f2 − f1 )(x3 − x1 ) |
|
+ a |
2 |
(x |
3 |
− x )(x |
3 |
|
− x |
2 |
) = |
||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||
|
|
|
x2 − x1 |
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
После несложных преобразований получим |
|
|
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
1 |
|
|
f |
3 |
− |
|
f |
1 |
|
|
|
|
f |
2 |
− f |
1 |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
a2 = x |
3 |
− x |
2 |
x |
3 |
− x |
− |
|
x |
2 |
− x |
|
|
. |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
1 |
|
|
|
|
Находим точку минимума полинома:
(7.12)
f (x3 ) = f3
(7.13)
P'(x) = a1 + 2a2 x* − x2 |
− x1 = 0 |
или |
|||||
x |
* |
= |
x2 + x1 |
− |
a1 |
|
|
|
|
|
. |
(7.14) |
|||
|
2a2 |
2a2 |
Алгоритм метода Пауэлла:
1.Вводим x1, приращение dx, погрешности ε1, ε2. f1 = f(x1).
2.Вычисляем x2 = x1 + dx, f2 = f(x2), i = 2.
3.Проверяем условие f(x1) > f(xi)?
–если "да", то шаг удваиваем (dx = 2dx), x3 = x1 + dx, f3 = f(x3), i = 3 и переходим на п.3;
–иначе, выбираем точку x3 по другую сторону от x1: x3 = x1 − dx, f3 = f(x3) и переходим на п.4.
4. Поиск минимального значения функции fmin = min( f1 , f2 , f3 ) и соответствующего аргумента xmin = arg min( f (x1 ), f (x2 ), f (x3 )) .
5.Вычисляем коэффициенты a1, a2 по формулам (7.12), (7.13) и
точки x* по (7.14). f4 = f(x*).
6.Проверяем условия окончания поиска экстремума:
|
|
|
fmin − f4 |
|
< ε1 |
|
||||
|
|
|
|
|||||||
|
|
|
|
|
||||||
|
|
|
xmin − x |
* |
|
|
|
< ε2 , |
(7.15) |
|
|
|
|
|
|||||||
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
Если условия (7.15) выполняются, то печать xmin, fmin и конец поиска, иначе переходим на п.7.
71
7.Из множества {x1, x2, x3} исключаем наихудшую точку, в которой функция имеет наибольшее значение. Вместо наихудшей точки включаем во множество наилучшую из точек xmin и x*. Далее точки переобозначаем в естественном порядке (x1 < x2 < x3) и переходим на п.4.
7.9.Метод ДСК
Метод разработали Девис, Свен, Кемпи. Относится к методам квадратичной аппроксимации.
В данном методе последовательно осуществляются шаги по направлению к экстремальной точке. Эти шаги являются возрастающими по мере приближения к экстремальной точке.
После прохождения экстремума производится квадратичная аппроксимация. В качестве экстремума целевой функции принимается экстремум аппроксимирующего полинома.
Алгоритм метода ДСК:
1.Перед началом поиска задаем: начальное приближение x0, шаг приращения x, ε – погрешность определения экстремума.
2. |
x1 = x0 + x, k = 1. |
|
3. |
Производим выбор шага по условию |
f (x1 ) < f (x0 ) : |
|
– если "да", то x = 2 x ; |
|
|
– иначе, экстремум пройден, и x = − |
x 2 . |
3.Осуществляем перемещение по направлению к экстремальной точке xk+1 = xk + x.
4.Проверяем условие f (xk +1 ) > f (xk ) :
–если "да", то переходим на п.5;
–иначе, k = k + 1 и переходим на п.3.
5.Точки xk-1, xk, xk+1 обозначаем, как xа, xb, xc в порядке возрастания значения аргумента х. Вычисляем экстремум аппроксимирующего полинома путем аппроксимации целевой функции по
72