Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методы оптимизации алгоритмические основы задач оптимизации. Курс лекций

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
S(0) =
(0)
(0)
x
(0)
(0)
Cx
(0)
(0)
g
2
2
(1)
(0) .
(0)
2
2
(2)
(1) .
(1)
() () ( 1).
Δ
. (2.39)
a
Но CΔx(0) = Δg(0), как следует из выражения (2.33). Следовательно, CS(0) =
Δ
α
=
Δ
.
α
Тогда из (2.38) получим
(g(1) + γ (0)g(0))
T
Δg(0) = 0. (2.40)
Раскрыв скобки, получим далее
g(1)
T
g(1) – g(1)Tg(0) + γ(0)g(0)Tg(1) + γ(0)g(0)TΔg (0) = 0. (2.41)
В последнем выражении два средних слагаемых являются произ-
ведениями g(1)
T
S(0), которые равны нулю в соответствии с (2.35).
Отсюда
g
= (2.42)
g
Теперь для направления S(2) можно записать
S(2) = –g(2) + γ(0)S(0) + γ(1)S(1). (2.43)
Подставим это выражение в условия C-сопряженности:
S(2)
T
CS(0) = 0 и S(2)TCS(1) = 0. (2.44)
Решив соответствующую систему уравнений, получим, что γ(0) = 0,
а γ(1) вычисляется по формуле
g
= (2.45)
g
Отсюда можно предположить, что для любых значений l = 1, k – 2
значение γ(l) = 0 и направление S(k) вычисляется по формуле
2
()
Sk gk Sk
=− + −
gk
(1
gk
−
2
(2.46)
Доказательство справедливости выражения по индукции приведе-
но в прил. 2.
31
2.4. Методы второго порядка
В методах второго порядка используется кроме первой производ­ной еще и вторая. Численная оценка второй производной более сложна и может давать большую ошибку. Поэтому для методов вто­рого порядка функция должна быть гладкой и, желательно, монотон­ной. Подобные формулировки встречаются в некоторых задачах управления и алгоритмах адаптивной идентификации.
2.4.1. Метод Ньютона
Пусть снова x = x(k) + Δx. Запишем разложение функции в ряд Тейлора с точностью до второго члена:
1
T
f(x(k), Δx) = f(x(k)) + (grad f(x(k))
Δx +
ΔxTH(f(x(k)) Δx + ... . (2.47)
2
Здесь через H(f(x(k)) обозначена матрица вторых производных (матрица Гессе). Такое приближение функции является квадратичной
формой с симметрической матрицей. Для определения ее минимума нужно взять частные производные по компонентам Δx и приравнять их к нулю. В данном случае справедливо формальное дифференци­рование дит следующим образом:
(grad f(x(k))) + H(f(x(k))Δx = 0. (2.48)
x(k + 1) = x(k) – H(f(x(k))
по вектору Δx и соответствующая система уравнений выгля-
Отсюда Δx = –H(f(x(k))
–1
(grad f(x(k)).
Следовательно, согласно формуле x(k + 1) = x(k) + Δx,
–1
(grad f(x(k)). (2.49)
Это и есть формула метода Ньютона. Разумеется, проблема обра­щения матрицы вторых производных, если имеются только их чис­ленные оценки, может быть неразрешимой. Поэтому обычно этот метод используется в задачах с известным аналитическим выражени­ем функции по крайней мере с точностью до неизвестных множите­лей. Тогда производные
берутся (с точностью до этих множителей) аналитически и в этом случае метод обеспечивает очень высокую скорость сходимости. Для получения более надежной сходимости правое слагаемое часто используют как направление поиска локаль­ного минимума.
32
2.4.2. Метод «тяжелого шарика»
((()) .
xx
t
Логической основой метода «тяжелого шарика» является физиче­ское уравнение движения материальной точки в силовом поле. Пусть x – скалярная координата, f(x) – потенциал поля, μ – множитель, про­порциональный массе точки, q – множитель, связывающий потенци­ал поля и силу, p – коэффициент трения среды. Тогда уравнение движения точки будет выглядеть
2
dd
=− − (2.50)
2
d
t
следующим образом:
qfxp
grad
d
Здесь grad f(x) является горизонтальной проекцией действующей силы.
Запишем это дифференциальное уравнение в виде разностного, учитывая, что слева будет вторая разность:
2
μΔ
Учитывая далее, что Δ
x(k) = –q (grad f(x(k)) – pΔx(k). (2.51)
2
x(k) = Δx(k) – Δx(k – 1) и Δx(k) = x(k + 1) – – x(k), после алгебраических преобразований и переобозначения кон- стант получаем
x(k + 1) = x(k) – α (grad f(x(k)) + β (x(k) – x(k – 1). (2.52)
В итоге получилось некоторое уравнение перемещения точки в
направлении уменьшения функции. Это и есть
уравнение метода «тя­желого шарика». Оно обладает по сравнению с методами первого порядка тем преимуществом, что в нем, по существу, используется вторая производная, т.е. имеется больше информации о профиле функции. Одновременно здесь отсутствует главный недостаток ме­тодов второго порядка – необходимость оценки второй производной. Этот метод достаточно эффективен при поиске минимума
овражных
функций.
Для ускорения поиска минимума обычно нужно подстраивать ко­эффициенты α и β под форму конкретной функции. Правила остано­ва применяются те же, что и в методах первого порядка. Если про­вести аналогию с методами первого порядка, то из формулы метода «тяжелого шарика» видно, что очередное направление поиска пред ставлено линейной комбинацией двух векторов: – grad f(x(k)) и (x(k) –
– x(k – 1)).
-
33
Контрольные вопросы
1. Что такое методы нулевого порядка?
2. Как выбирается направление перемещения точки поиска в сим-
плексном методе?
3. Какой способ останова алгоритма применен в симплексном методе?
4. В какой точке фиксируется минимум в симплексном методе?
5. Как построить начальный симплекс?
6. Что такое квадратичная форма?
7. Какие направления называются С-сопряженными?
8. Как строятся сопряженные
9. Как в методе сопряженных направлений определяется очеред-
ная точка поиска?
10. Как построить сопряженные направления в пространстве трех
переменных?
11. Как реализуется правило останова в методе сопряженных на-
правлений?
12. Какие виды алгоритмов случайного поиска вам известны?
13. Как генерируются случайные направления?
14. Какие правила останова применяются в
поиска?
15. В чем основное отличие методов первого порядка от методов
нулевого порядка?
16. Как вычислить направление поиска в методе градиента?
17. В чем отличие метода градиента от метода наискорейшего спуска?
18. Сколько различных векторов используется для вычисления
очередного направления поиска в методе сопряженных градиентов?
19. Назовите основное правило останова, используемое
первого порядка.
20. Почему в методах первого порядка рекомендуется применять
одновременно несколько правил останова?
21. Применяется ли метод «золотого сечения» в методах первого
порядка?
22. Назовите основной недостаток методов второго порядка.
23. Каким образом в методе «тяжелого шарика» обойден этот не-
достаток?
24. Применяется ли метод «золотого сечения» в методе «тяжелого
шарика»?
25. Какие правила останова применяются в методе «тяжелого ша-
рика»?
направления в алгоритме Пауэлла?
методах случайного
в методах
34
3. МЕТОДЫ УСЛОВНОЙ ОПТИМИЗАЦИИ
3.1. Задача условной оптимизации
Задачей условной оптимизации называется поиск экстремума це­левой функции f(x) (где x – вектор размерности n) при наличии огра­ничений на область изменения переменных. Эти ограничения назы­ваются условиями, откуда следует и название методов. Ограничения определяют, таким образом, некоторую допустимую область X Следовательно, задача условной оптимизации формулируется сле­дующим образом:
Найти min f(x) по x, где x принадлежит X
Напомним, что поиск max f(x) сводится к поиску min (–f(x)).
Область X
– либо системой равенств h
*
задается:
(x) = 0 (i = 1, m; m < n; n – размер-
i
*.
ность пространства переменных);
– либо системой неравенств g
(x) ≥ 0 (j = 1, r);
j
– либо равенствами и неравенствами одновременно.
Если функция f(x) или хотя бы одно из ограничений являются не­линейными функциями от x, то задача условной оптимизации назы­вается задачей нелинейного программирования. В противном случае это задача линейного программирования. Никакого отношения к на­писанию программ здесь слово «программирование» не имеет чи эти были сформулированы вне связи с вычислительными маши­нами. Слово «программирование» в них означает применение чис­ленной процедуры для получения решения.
Следует отметить, что алгоритм решения задачи линейного про­граммирования не является частным случаем алгоритмов нелинейно­го программирования.
*
. Зада-
.
3.2. Нелинейное программирование
Задача нелинейного программирования НЛП имеет следующую формулировку:
найти min f(x) по x при условии
h (x) = 0, i = 1;
i
При этом m < n (n – размерность пространства переменных функ­ции f(x)). Геометрическая интерпретация задачи для ограничений­неравенств при r = 3 приведена на рис. 3.1.
(x) ≥ 0, j = 1, r. (3.1)
g
j
35
Рис. 3.1. Геометрическая интерпретация задачи нелинейного
x
*
программирования
Как следует из рис. 3.1, условный минимум x* должен находиться на границе допустимой области, если безусловный минимум f(x) ле­жит вне последней. В противном случае задача является вырожден­ной.
Заметим, что в общем случае в точке решения ровно n неравенств (n – размерность пространства переменных) выполняются как равен­ства g
x
активными. Для всех остальных неравенств g больше нуля) и малые вариации x относительно x
(x) = 0. При этом бесконечно малые вариации x относительно
j
*
приводят к изменению знака gj(x). Такие неравенства называются
(x) > 0 (т.е. строго
q
*
не приводят к из-
менению знака неравенств. Такие неравенства называются пассив­ными в том смысле, что при их удалении из системы ограничений решение не изменяется.
Будем обозначать через h(x) или g(x) без нижнего индекса вектор, компонентами которого являются соответственно h
(x) и gj(x). Будем
i
называть также точку x пространства переменных допустимой точ­кой, если она принадлежит допустимой области.
Имеются четыре различных подхода к решению задач нелинейно­го программирования. Они рассмотрены ниже.
36
3.2.1. Методы возможных направлений
Эти методы основаны на следующем принципе: пусть x(k) – оче­редная допустимая точка. Очередное направление спуска (переме­щения к минимуму) S(k) находится из условия
∇
(f(x))TS(k) < 0. (3.2)
x
Здесь и в дальнейшем значком ∇ обозначен градиент.
Указанное условие (отрицательное скалярное произведение) означа­ет уменьшение функции в направлении S(k). При этом точка с коорди­натами x(k) + αS(k) также должна быть допустимой при некоторых α > 0.
Существует много методов поиска допустимого направления, которые описаны в приведенном
библиографическом списке к данному курсу лекций. Однако большинство из них эффективны только для линейных функций-ограничений. В основном они специализированы по конкрет­ным видам функций и здесь более подробно рассматриваться не будут.
3.2.2. Метод Лагранжа
В названии метода намеренно опускается слово «множителей», так как в литературе по методам оптимизации существует специаль­ный метод, названный «метод множителей». Но, разумеется, вначале рассматривается классический метод множителей Лагранжа. Отме­тим, что классическая задача Лагранжа есть задача с ограничениями– равенствами, а в данном разделе рассматривается ее логическое раз­витие для задачи с ограничениями–неравенствами.
Итак, пусть ограничения заданы только равенствами h(x) = 0. Как известно из математического анализа
, для решения такой задачи на
поиск условного минимума записывается функция Лагранжа:
T
L(x, λ) = f(x) – λ
h(x), (3.3)
где λ – вектор множителей Лагранжа.
Условия минимума записываются в следующем виде:
1) условия первого порядка:
∇
L(x, λ) = ∇xf(x) – λT∇xh(x) = 0 (минимум по x);
x
L(x, λ) = h(x) = 0 (максимум по λ);
∇
λ
2) условия второго порядка:
T
y
2
∇
L(x, λ) y > 0
xx
(3.4)
37
для всех векторов y, не равных нулю и удовлетворяющих условию
gj
g
gj
L
g
L
g
L
∇ здесь через ∇
2
L(x, λ) обозначена матрица вторых производных, ко-
xx
hT(x) y = 0,
x
торую для удобства в дальнейшем будем обозначать H(x) (матрица Гессе).
Для решения этой задачи можно применить один из двух способов:
– непосредственный поиск седловой точки функции L(x, λ)с ис­пользованием одного из известных алгоритмов численного поиска безусловного экстремума;
– решение (скорее
также численное) системы уравнений (3.4) –
условий минимума первого порядка.
Пусть теперь в исходной формулировке присутствуют ограниче­ния-неравенства gj(x) ≥ 0. Тогда для решения задачи применяется следующий характерный прием. Превратим неравенства в эквива­лентные равенства путем введения фиктивных переменных zj:
~ (x, z) = gj(x) – zj2 = 0.
Число этих фиктивных переменных равно r (число неравенств). Как видно из этого выражения, для какой-либо фиксированной точки x существует значение zj, для которого это равенство справедливо.
Таким образом, введение фиктивного вектора z размерности r по­зволяет свести исходную задачу с неравенствами к новой искусст­венной
задаче с равенствами. В этой задаче функция Лагранжа имеет
вид
L ~ (x, z, λ, μ) = f(x) – λ
T
h(x) – μ
T
~ (x, z), (3.5)
где через μ обозначен вектор множителей при искусственных равен­ствах, имеющий тот же смысл, что и вектор λ.
Поскольку функция
~ (x, z) явно выражена через zj, то фиктив-
ные переменные можно теперь исключить, записав условия миниму­ма первого порядка:
∇ ∇
(.) = ∇xf(x) – λT∇xh (x) – μT∇
x
(.) = – μ
z
∇
38
(x, z) = 2μTz = 0;
(.) = –h(x) = 0; (3.6)
λ
(x, z) = 0;
x
∇
L
g
g
g
0;
Учитывая соотношения ∇
λ
(.) = –
(x, z) = 0.
(x, z) = ∇xg(x) и zj = )(xg
x
j
то, что равенствам
(x, z) = 0 соответствуют неравенства g(x) ≥ 0, перепишем эту
систему уравнений в следующем виде:
d()
d()
d()
fx
−λ −μ =
∑∑
dd d
xx x
kk k
hx
i
ij
ij
gx
j
, а также
μ
h
g
μ
(x) = 0 i = 1, m; j = 1, r; k = 1, n;
j gj
(x) = 0; (3.7)
i
(x) ≥ 0;
j
≥ 0.
j
Эта система уравнений и неравенств имеет название: условия Ку­на – Таккера. Последняя группа неравенств (неотрицательность ком­понент вектора μ) следует из условий минимума второго порядка. Более подробно этот вывод изложен в прил. 3.
Отметим, что равенства μ
= 0 выполняются для пассивных нера-
j
венств (действительно, их можно исключить из функции Лагранжа). Напротив, для активных неравенств значения μ
строго положительны.
j
Различают отдельные классы задач нелинейного программирова­ния. Среди них обычно выделяют так называемые задачи выпуклого программирования. Чтобы отнести задачу к этому классу, нужно иметь выпуклую функцию f(x), вогнутые функции g функции h
(x). Будем называть точку, удовлетворяющую условиям
i
(x) и линейные
j
Куна – Таккера, точкой Куна – Таккера.
Отметим, что для задачи выпуклого программирования условия Куна – Таккера являются необходимыми и достаточными условиями минимума. При этом точка Куна – Таккера является единственной.
В задаче невыпуклого программирования обычно имеется не­сколько точек Куна – Таккера. Определить, какая из них является условным
минимумом, можно только при выполнении условий вто-
рого порядка.
Другим выделяемым классом являются задачи квадратичного программирования. Они характерны тем, что f(x) – квадратичная
39
форма, а все ограничения описаны линейными функциями. При этом условия Куна – Таккера являются системой линейных уравнений.
3.2.3. Метод штрафных функций
Этот метод основан на том, что строится некоторая новая, так на-
зываемая целевая функция
F
(x) = f(x) + C(k) ϕ(h(x), g(x)), (3.8)
k
где ϕ(h(x), g(x)) – штрафная функция;
k – индекс итерации; C(k) – возрастающая числовая последовательность.
Имеются различные способы построения штрафных функций. Далее решается последовательность задач поиска безусловного
минимума функции F
x° (k) = x
где x° (k) – начальная точка k-й итерации;
*
x
(k – 1) – точка минимума, найденная на (k – 1)-й итерации.
(x) (k = 1, 2, 3, ...), причем принимается:
k
*
(k – 1),
При этом x° (1) = x(0) совпадает с начальной точкой поиска ус-
ловного минимума (выбирается произвольно).
Как видно из определения штрафной функции, безусловный ми-
*
нимум x
(k) функции Fk(x) на k-й итерации находится вблизи грани-
цы допустимой области (если только безусловный минимум f(x) ле­жит вне допустимой области). Это происходит потому, что целевая функция возрастает вблизи линии, образующей границу допустимой области.
Условный минимум считается найденным при выполнении условия
*
||x
(k) – x* (k – 1) || < εx, (3.9)
– заданная точность поиска.
где ε
x
Штрафные функции могут иметь различную форму. Обычно раз-
личают два основных класса: внутренние и внешние функции.
Внутренние функции имеют область определения внутри допус­тимой области. Они быстро возрастают в окрестности границы. Функция ϕ(x) является, как правило, суммой компонент, соответст­вующих отдельным уравнениям ограничений g
(x). Наиболее извест-
j
ной здесь является логарифмическая функция. Например, j-й компо-
40
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]