Файл: 7.1. Математическая постановка и методы решения задачи нелинейного программирования.docx
ВУЗ: Смоленский областной казачий институт промышленных технологий и бизнеса
Категория: Лекция
Дисциплина: Моделирование систем
Добавлен: 19.11.2018
Просмотров: 553
Скачиваний: 8
Общая задача нелинейного программирования |
|
Ибо самое странное, заставляющее быть настороже в этой среде, или мире, в котором мы вынуждены существовать, состоит в том, что мир — в пределах неумолимо очерченного горизонта — всегда представляет нам разнообразные возможности действия, и нам не остается ничего, кроме как выбирать из этого разнообразия, осуществляя таким образом на практике свою свободу.
Х. Ортега-и-Гассет. Человек и люди
Здесь в соответствии со схемой предыдущего параграфа рассматривается общая задача нелинейного программирования с гладкими функциями.
Общей задачей нелинейной условной оптимизации мы будем называть условную задачу минимизации
(1) |
где Ω выделяется как ограничениями типа равенств
(2) |
так и ограничениями типа неравенств
(3) |
(см. рис. 1).
Определяются допустимые точки, локальный и глобальный, строгий и нестрогий минимумы. Так же мы будем использовать обозначения f и g для функций из Rm в Rk и Rl, соответственно, определяемые координатами fi и gj. Поэтому задачу (1)–(3) можно записывать в виде
(4) |
(напомним, что неравенство g(x) ≤ Θ означает покоординатные неравенства).
Нам также потребуется следующее обозначение: a+ = (a + |a|)/2; таким образом, a+ = a, если a ≥ 0 и a+ = 0, если a ≤ 0. Для векторов a ∈ Rm операция "+" определяется покоординатно: a+ = ((a1)+, ..., (am)+). Кроме того, через J(x) будет обозначаться множество индексов так называемых активных ограничений:J(x) = {j ∈ {1, ..., l}: gj(x) = 0} — это номера ограничений, которые в данной точке существенны. Например, на рис. 22 J(x1) = {2}, а J(x2) = ∅.
2. Теорема (обобщенное правило множителей Лагранжа)
Пусть f0, f, g ∈ C1, а x* — локальное решение задачи (4). Тогда найдутся такие λ*0 ∈ R, λ* ∈ Rk, μ* ∈ Rl, не равные одновременно нулю, такие, что μ*j ≥ 0при j ∈ J(x*) и
|
(5) |
Д о к а з а т е л ь с т в о. Возьмем r > 0 таким, чтобы x* = argminx∈Ωr f(x), где Ωr = Ω ∩ B(x*, r). Для любого n ∈ N определим функцию f n: Rm → R равенством
f n(x) = f0(x) + n(||f(x)||2 + ||g+(x)||2) + ||x – x*||2. |
З а д а ч а 7.1. Докажите, что f n ∈ C1, в частности, покажите, что (||g+(x)||2)′ = 2g+(x)g′(x).
Поскольку f n непрерывно дифференцируемы и поэтому непрерывны, функции f n на шаре B(x*, r) достигают минимума; обозначим его через xn. В частности,
(6) |
т. е.
|
Отсюда, поскольку, как легко видеть, f n(x*) = f0(x*),
|
Выражение в квадратных скобках ограничено, так как xn ∈ B(x*, r). Поэтому ||f(xn)||2 + ||g+(xn)||2 → 0 при n → ∞ и, следовательно, f(xn) → Θ и g+(xn) → Θ приn → ∞.
Пусть теперь {xni} — произвольная сходящаяся, скажем к y, подпоследовательность. Тогда, как легко видеть, во-первых, y ∈ Ω и, во-вторых, f ni(xni) → f0(y) +||y – x*||2 при n → ∞. Поэтому, подставляя в (6) ni вместо n и переходя к пределу в получившемся неравенстве при i → ∞, получим |
f0(y) + ||y – x*||2 ≤ f0(x*). |
С другой стороны, так как x* = argmin f(x), f0(x*) ≤ f0(y). Отсюда ||y – x*||2 ≤ 0, т. е. y = x*. Таким образом, любая сходящаяся подпоследовательность последовательности {xn} сходится к x*. Последнее, учитывая компактность последовательности, гарантирует ее сходимость к тому же пределу.
Далее, в силу доказанного можно считать, что при всех n точка xn лежит внутри шара B(x*, r). Поэтому в силу теоремы Ферма (f n)′(xn) = Θ, т. е.
|
(7) |
Положим теперь
|
λn0 = sn, λni= 2nfi(xn)sn, μnj= 2n[gj(xn)]+sn. Поскольку λn0,λnj,μnj∈ [–1, 1] (n ∈ N; i = 1, ..., k; j = 1, ..., l), можно считать, не ограничивая общности, что найдутся такие λ*0,λ*iи μ*j,что |
λn0→ λ*0, λni→ λ*i, μnj→ μ*j при n → ∞. |
Умножив (7) на sn и переходя в получившемся равенстве к пределу при n → ∞, получаем
|
(8) |
Остается заметить, что, во-первых, так как |λn0|2+ ∑ki=1|λni |2+∑lj=1|μnj|2=1, не все из λ*0,λ*i,μ*jравны нулю, во-вторых, поскольку μnj= 2n[gj(xn)]+sn ≥ 0,неотрицательны и μ*jи, наконец, в-третьих, если j ∉ J(x*) (т. е. gj(x*) < 0), то gj(xn) < 0 при больших n; поэтому [gj(x*)]+ = 0, что влечет равенство μ*j= 0 и, следовательно, равенство |
|
Так же, как и в случае ограничений-равенств в случае общей задачи нелинейной оптимизации, необходимый признак, задаваемый теоремой 2, информативен только в случае, если λ*0≠ 0. В этой ситуации, так же как и в предыдущем параграфе можно разделить (5) на λ*0 и, следовательно, считать его равным единице. Это позволяет ввести функцию Лагранжа L: Rm×Rk×Rk → R (в регулярном случае) равенством |
L(x, λ, μ) = f0(x) + (λ, f(x)) + (μ, g(x)). |
Условие регулярности в случае общей задачи выглядит сложнее. Именно, допустимая точка x называется регулярной, если векторы f ′1(x),..., f ′k(x)линейно независимы и для некоторого ненулевого вектора h ∈ Rm
(f ′i(x),h) = 0 при i = 1, ..., k |
и
(g′j(x),h) < 0 при j ∈ J(x). |
Геометрически, эти условия означают, что, во-первых, вектор h является касательным к многообразию, выделяемому ограничениями-равенствами (т. е.ортогонален всем градиентам f ′i(x)),и, во-вторых, он образует с градиентами g′j(x)активных ограничений (указывающими, очевидно, вовне множества Ω) тупой угол (см. рис. 2). |
4. Теорема (обобщенное правило множителей Лагранжа в регулярном случае)
Пусть f0, f, g ∈ C1, а x* — регулярное локальное решение задачи (4). Тогда найдутся λ* ∈ Rk, μ* ∈ Rl не равные одновременно нулю, такие, что μ*j ≥ 0 приj ∈ J(x*) и
(9) |
(μ*, g(x*)) = 0. |
(10) |
Д о к а з а т е л ь с т в о. Пусть λ0**, λ** и μ** — величины, существование которых утверждается в теореме 7.2. Покажем, что λ0** ≠ 0. В предположении противного умножим (5) скалярно на вектор h, фигурирующий в определении регулярности x*: |
|
(11) |
В силу регулярности (f ′i(x*),h) = 0 и (g′j(x),h) < 0, а по теореме 7.2 μj**≥ 0 при j ∈ J(x*). Поэтому (11) влечет равенство μ** = Θ. Но тогда (5) означает, что |
|
что вместе с линейной независимостью f ′i(x*)дает равенство λ** = Θ. Противоречие. |
Таким образом λ0**≠ 0. Положим теперь λ*i= λi**/λ0**(i = 1, ..., k),
|
Очевидно теперь, (10) выполняется автоматически, а (9) тривиально получается из (5).
5. Достаточные условия, существование, единственость
Ситуация с задачей (1)–(3) несколько отличается от изучавшихся ранее, поскольку минимумы здесь могут быть двух типов. В случае, когда в точке минимумаx* нет активных ограничений, т. е. J(x*) = ∅, ситуация полностью аналогична описанной в предыдущем параграфе, поскольку ограничения-неравенства в окрестности точки x* можно опустить (см. рис. 3). В случае же, когда J(x*) ≠ ∅ минимум может достигаться на границе множества Ω и точка x* может не быть стационарной точкой (см. рис. 3).
Мы ограничимся лишь формулировками результатов, поскольку в идейном плане они не доставляют ничего нового. Аналогом теоремы 6.9 может служить следующая
Теорема (достаточные условия минимума). Пусть f0, f, g ∈ C2, а x* — допустимая точка такая, что для некоторых λ* ∈ Rk и μ* ∈ Rl, одновременно не равных нулю, выполнены условия (9)–(10) и при любых h ∈ Rm, h ≠ Θ таких, что
(f ′i(x*),h)
= 0 при i =
1, ..., k; |
выполнено неравенство (L′′xx(x*,λ*, μ*)h, h) > 0. Тогда x* — локальное решение задачи (1)–(3). |
З а д а ч а 7.2. Докажите.
Что касается утверждений о существовании и единственности, то ситуация с результатами, которые могут быть доказаны изученными выше приемами, полностью аналогична.
З а д а ч а 7.3. Сформулируйте и докажите аналоги утверждений задач 6.7 и 6.8 для задачи (1)–(3).
С целью упрощения изложения, начиная с этого момента, мы будем рассматривать задачу условной оптимизации, содержащую только ограничения-неравенства. Это, с одной стороны, не снижает общности изложения, поскольку ограничения-равенства сводятся к ограничениям-неравенствам: ограничение
f(x) = Θ |
эквивалентно ограничениям
f(x) ≤ Θ, –f(x) ≤ Θ. |
С другой стороны, задачи с ограничениями-равенствами мы уже достаточно подробно рассматривали выше.
Здесь, правда, следует помнить об одном важном обстоятельстве. При решении задач с ограничениями-неравенствами часто бывает важна (существенно используется) выпуклость функций, фигурирующих в задаче, вернее, выпуклость минимизируемой функции f0 и выпуклость множества Ω допустимых точек. Последнее гарантируется выпуклостью функций gj в ограничениях-неравенствах (см. задачу 7.4 ниже). Множества же, выделяемые ограничениями-равенствами, не бывают выпуклыми, за исключением случая аффинных функций fi. Поэтому методы решения задач условной оптимизации, существенно использующие "выпуклость задачи" могут применяться к задачам с ограничениями-равенствами с большой осторожностью.
Напомним, что множество Ω ⊂ Rm называется выпуклым, если ∀(x, y ∈ Ω, λ ∈ [0, 1])[λx + (1 – λ)y ∈ Ω].
З а д а ч а 7.4. Докажите, что если функции gi: Rm → R (i = 1, ..., l) выпуклы, то множество Ω = {x ∈ Rm: gi(x) ≤ 0, i = 1, ..., l} выпукло.
З а д а ч а 7.5. Докажите, что если функция g: Rm→ R выпукла, вместе с функцией –g, то она аффинна: g(x) = (b, x) + c.
7.7. Еще один достаточный признак условного минимума.
Напомним, что точка (x*, λ*) называется седловой точкой функции L: Ω1×Ω2 → R (Ω1 ⊂ Rm, Ω2 ⊂ Rl), если при всех (x, λ) ⊂ Ω1×Ω2 выполнены неравенства
L(x*, λ) ≤ L(x*, λ*) ≤ L(x, λ*) |
Теорема. Пусть (x*, λ*) — седловая точка функции Лагранжа L: Rm×Rl+→ R задачи (1), (3) (здесь Rl+= {λ ∈ Rl: λ ≥ Θ}), λ* ≥ Θ, x* — допустимая точка. Тогда x* — глобальное решение этой задачи. |
Д о к а з а т е л ь с т в о. Пусть x — произвольная допустимая точка, т. е. gi(x) ≤ 0 (i = 1, ..., l). Тогда
f0(x*) + (λ*, g(x*)) = L(x*, λ*) ≤ L(x, λ*) = f0(x) +(λ*, g(x)). |
(12) |
Покажем, что
(13) |
Тогда из (12), поскольку λ* ≥ Θ, а g(x) ≤ Θ, будет следовать нужное неравенство f0(x*) ≤ f0(x). Для доказательства (13) заметим, что по условию теоремыL(x*, Θ) ≤ L(x*, λ*), т. е.
(14) |
Равенство (13) вытекает теперь из (14), т.к. λ* ≥ Θ, а g(x*) ≤ Θ.
Тот факт, что доказанная теорема дает лишь достаточный признак условного минимума демонстрируетсмя в следующей задаче.
З а д а ч а 7.6. Покажите, что одномерная задача минимизации функции f(x) = –x при ограничениях x ≤ 1, –x ≤ 0 разрешима, но ее функция Лагранжа не имеет седловых точек.
З а д а ч а 7.7. Если в предыдущей теореме (x*, λ*) — локальная седловая точка, то можно ли утверждать, что x* — локальное решение задачи (1), (3)? (Ответ: нельзя).
Однако, если функции f0 и gi (i = 1, ..., l) выпуклы, а множество Ω содержит хотя бы одну внутреннюю точку, то условия доказанной теоремы являются необходимыми и достаточными (это утверждение называется теоремой Куна — Таккера; оно является центральным фактом теории выпуклого программирования).
Перейдем к описанию методов решения задач с ограничениями-неравенствами. Многие из описываемых ниже методов либо существенно используют выпуклость объектов, фигурирующих в задаче, либо вообще неработоспособны на невыпуклых задачах.
8. Методы возможных направлений
Эти методы основываются на следующем простом понятии. Вектор (направление) z в допустимой точке x назовем возможным для задачи (1), (3), если малое перемещение в этом неправлении уменьшает значение функции f0 и не выводит из множества допустимых точек, т. е. если при достаточно малых s точкаxs = x + sz допустима и f(xs) < f(x). Если теперь на каждом шаге сдвигаться в возможном направлении на достаточно малое расстояние, то мы очевидно получим релаксационную последовательность, которая во многих случаях будет сходиться к решению задачи. Методы этого типа называются методами возможных направлений.
З а д а ч а 7.8*. Докажите, что если (f0(x), z) < 0, то малое перемещение из точки x в направлении z уменьшает значение функции f0 (ср. с доказательством теоремы Ферма).
З а д а ч а 7.9*. Докажите, что если точка x допустима и (gi(x), z) < 0 при i ∈ J(x), то малое перемещение из точки x в направлении z не выводит из множества допустимых точек.
В силу этих задач возможное направление zn в очередной точке xn, в котором функция f0 будет убывать быстрее всего, можно искать, решая задачу линейного программирования (о методах решения линейных задач см. список литературы)
(15) |
(g′i(xn),z) ≤ 0, i ∈ J(xn), |
(16) |
zi – 1 ≤ 0, –zi – 1 ≤ 0, i = 1, ..., m. |
(17) |
Здесь "нормализующие" ограничения (16) введены для того, чтобы искать вектор возможных направлений на ограниченном множестве, т. е. для того, чтобы линейная задача (15)–(16) была разрешима. К сожалению, решение задачи (15)–(16) не всегда дает возможное направление (см. рис. 4). Причиной этого являются нестрогие неравенства в (16) (задачи же со строгими неравенствами часто оказываются неразрешимыми, поскольку точная нижняя грань значений функции f0 часто достигается на границе множества допустимых точек, которая в случае строгих ограничений-неравенств не принадлежит этому множеству). Эту трудность можно обойти разными способами. Например, на каждом шаге можно "возвращать" точку во множество Ω с помощью какой-либо процедуры "проектирования" см., например, следующий пункт). Можно также поступать следующим образом. Для любой допустимой точки x и произвольного ε > 0определим множество Jε(x) индексов так называемых ε-активных ограничений: