Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Методы оптимизации алгоритмические основы задач оптимизации. Курс лекций
.pdf
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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
