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

Управление и оптимизация / Babenishev - Metodi optimizatsii 2017

.pdf
Скачиваний:
64
Добавлен:
02.09.2019
Размер:
4.49 Mб
Скачать

61

Решение задачи производится последовательным решением уравнения Беллмана для шагов i=N–1,N–2, …,0 (обратный (восходящий) ход метода Беллмана). При этом на каждом шаге получается оптимальное управление uˆi как функция от текущего состояния системы xi .

На втором этапе по полученным функциям uˆi (t) производится синтез оптимального управления для задачи с конкретным начальным условием x0 .

Выводы. Таким образом, метод динамического программирования, когда он применим, в отличие от рассмотренных ранее необходимых условий, дававших оптимальное управление как функцию времени uˆ(t) (программное управление), позволяет определять оптимальное управление как функцию состояния системы uˆ(t, x) (синтезированное управление), что дает возможность отыскивать решение сразу для целого класса задач с различными начальными условиями, со всеми вытекающими преимуществами, как, например, возможностью оптимальной коррекции фазовой траектории.

Вопросы для самоконтроля.

1.Дайте определение функции Беллмана для задачи оптимально быстродействия.

2.Всегда ли функция Беллмана непрерывно дифференцируема, непрерывна, существует?

3.Запишите дифференциальное управление Беллмана.

4. Какие дополнительные условия налагались на функцию ˆ при вы-

J (t, x)

воде дифференциального уравнения Беллмана?

62

РАЗДЕЛ 2. УСЛОВНАЯ И БЕЗУСЛОВНАЯ ОПТИМИЗАЦИЯ

Тема 4. Выпуклые множества и функции

Выпуклое программирование занимается решением оптимальных задач, в которых целевые функции и допустимые множества удовлетворяют условиям

выпуклости/вогнутости.

Эти условия позволяют существенно упростить подходы к решению оптимальной задачи. В выпуклом программировании критерий оптимального реше-

ния даётся теоремой Куна-Такера.

 

Вопрос 1. Выпуклые множества и функции

 

Определение. Множество M n называется выпуклым,

если для лю-

бых точек A, B M отрезок AB целиком принадлежит М, т.е.

для любого

0 t 1 (рис. 1)

 

(1 t) A tB M .

 

Эквивалентно имеем

(1 t) A tB A tA tB A t (B A) A t AB M .

Определение. Угловой точкой выпуклого множества M называется точка, которая не может быть представлена в виде

tA (1 t)B,

t (0,1)

ни для каких точек A, B M .

Угловые точки выпуклого множества всегда лежать на границе. Выпуклые многоугольники имеют конечное множество угловых точке, в то время как круг имеет бесконечное множество угловых точке – ограничивающую окружность. На рис. 1, жирно выделена та часть границы замкнутого выпуклого множества, которая состоит не из угловых точек. Угловыми являются точки X, Y, Z, U, V, а также все точки границы, лежащие между Y и Z, а также между V и X.

В последующем часто будет использоваться следующее свойство выпуклых множеств.

Свойство. Пересечение любого конечного числа выпуклых множеств является выпуклым множеством.

63

Рис 1. Иллюстрация к определению выпуклого множества и угловой точки.

Определения.

1) Функция f является выпуклой на множестве M n , если для любых точек A, B M хорда, соединяющая точки (A, f(A)) и (B, f(B)) на графике f, лежит не ниже графика, т.е. для любого 0 t 1 (см. рис. 2)

f((1 t) A tB) (1 t) f (A) t f (B).

2)Если выполняется противоположное неравенство

f((1 t) A tB) (1 t) f (A) t f (B),

то функция называется вогнутой.

3) Если соответствующее неравенство строгое, то функция называется

строго выпуклой/вогнутой, соответственно.

Рис 2. Иллюстрация к определению выпуклой функции.

64

Рис 3. Выпуклая и вогнутая функции и их надграфик и подграфик.

Свойства:

1.Функция f (x ) выпукла f (x ) вогнута.

2.Функция f (x ) выпукла надграфик f (x ) :

{(x, y) y f (x),

x M}

n 1

– выпуклое множество.

3. Функция f (x ) вогнута подграфик f (x ) :

{(x, y) y f (x),

x M}

n 1

– выпуклое множество.

4. Для того, чтобы функция f (x ) была (строго) выпуклой/вогнутой необходимо и достаточно, чтобы для любых точек A, B M функция одной переменной

A,B (t) f ((1 t) A t(B))

была (строго) выпуклой/вогнутой (см. рис. 4).

Рис 4. Проверка на выпуклость/вогнутость c помощью одномерных функций.

65

Примеры.

Выпуклые функции: x2 , ex .

Вогнутые функции: x , ln x .

Линейная функция является одновременно и выпуклой, и вогнутой:

l(x) c1x1 cn xn c0 .

Непосредственное доказательство выпуклости может быть практически неосуществимым, если функция не является дважды дифференцируемой. Поэтому бывает удобно использовать следующие порождающие свойства.

Порождающие свойства.

1.Конечная сумма выпуклых (вогнутых) функций является выпуклой (вогнутой).

2.Если хотя бы одна функция в сумме является строго выпуклой (вогнутой), то и вся сумма является строгой выпуклой (вогнутой) функцией.

3.Если f (x) выпукла (вогнута) на выпуклом множестве M, а ( y) возрастающая выпуклая (вогнутая) функция на множестве f (M ) , то ( f (x)) яв-

ляется выпуклой (вогнутой) функцией на М (пример: ex2 ).

4. Произведение выпуклых (вогнутых) функций не обязательно является выпуклой (вогнутой) функцией.

Для функций класса C2 (M ) (дважды непрерывно дифференцируемых на множестве М) имеется удобное аналитическое достаточное условие выпуклости (вогнутости), использующее гессиан:

Повторение. Пусть f (x) C2 (M ) , где M n – открытое множество.

1. Матрица Гессе (матрица вторых производных) для функции f равна:

 

 

2 f

 

2 f

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x x

 

x x

 

 

 

 

 

 

1 1

 

 

n

1

 

 

 

2 f

 

 

H f

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

f

 

 

2

f

 

 

 

i

j i, j 1, ,n

 

 

 

 

 

 

 

 

 

 

 

 

x x

 

x x

 

 

 

 

 

 

 

1

n

 

n

n

 

 

 

 

 

 

2.Гессианом называется определитель матрицы Гессе.

3.Ведущими главными минорами гессиана являются следующие определители:

66

 

 

 

 

 

 

 

 

2 f

 

2 f

1

 

2

f

,

2

 

 

x1 x1

 

x2 x1

x1 x1

 

2 f

 

2 f

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1 x2

 

x2 x2

Теорема. Для того, чтобы функция

 

 

 

 

2

f

 

 

 

 

x1 x1

,

3

 

 

2

f

 

x1 x2

 

 

 

 

 

 

 

 

2

f

 

 

 

 

x1 x3

f (x) C2 (M )

2 f

x2 x12 f

x2 x22 f

x2 x3

была

2 f

x3 x12 f

x3 x22 f

x3 x3

выпуклой, достаточно, чтобы ведущие главные миноры гессиана были положительны в любой точке x M

1 0,

2 0,

3 0,

,

n 0 ;

вогнутой, достаточно, чтобы ведущие главные миноры гессиана в любой точке x M образовывали знакопеременную последовательность, т.е.

0,

 

2

0,

 

3

0,

,

( 1)n

n

0 .

1

 

 

 

 

 

 

 

Если знаки всех неравенств строгие, то функция будет строго выпуклая (вогнутая), соответственно.

Вопрос 2. Задача выпуклого программирования.

Будем рассматривать задачу выпуклого программирования в следующей постановке.

Постановка задачи:

f (x ) max

 

 

(x ) 0,

i 1, , m

gi

 

0,

j 1, , n

x j

где f, g

, i 1, ,m – вогнутые функции; x n .

 

 

i

 

 

 

 

 

Определение. Выпуклое множество допустимых значений

 

M {x

n g

(x ) 0, i 1, , m; x

j

0, j 1, , n}

 

 

i

 

 

удовлетворяет условию регулярности, если существует по крайней мере одна точка x M такая, что

gi (x) 0, i 1, , m.

67

В задаче выпуклого программирования существенно упрощается взаимосвязь между стационарностью, глобальными и локальными экстремумами. А именно,

1)всякий локальный экстремум является и глобальным экстремумом;

2)если целевая функция является строго выпуклой или вогнутой, то глобальный экстремум, если он есть, достигается в единственной точке;

3)если точка стационарна, то она автоматически является точкой локального, а значит, по пункту 1, и глобального экстремума.

Замечание. Стационарная точка x0 M (то есть такая, что fx0 0 или,

другими словами, в которой все первые частные производные функции f равны нулю), по определению производной может быть только внутренней точкой допустимого множества М, и, в частности, пункт 3 не дает найти оптимальное решение, если экстремум лежит на границе допустимой области М.

Решение вопроса оптимальности для задачи ВП в общем случае дает теорема Куна-Такера, которую мы рассмотрим в следующем вопросе.

Вопрос 3. Функция Лагранжа для задачи выпуклого программирования

Определение. Функцией Лагранжа задачи выпуклого программирова-

ния называется функция

m

L(x, ) f (x ) i gi (x ) ,

i 1

где ( 1, , m ) – набор множителей Лагранжа.

Определение. Точка (x 0 , 0 ) называется седловой точкой функции Лагранжа, если

L(x, 0 ) L(x 0 , 0 ) L(x 0 , )

для всех x 0 , 0 (в частности, x 0 дает максимум среди x при любом фиксированном 0 , а 0 дает минимум среди при любом фиксированном x 0 ).

Теорема 1 (теорема Куна-Такера о седловой точке). Для задачи выпук-

лого программирования с регулярным допустимым множеством, точка x 0 является оптимальным решением тогда и только тогда, когда существует такой вектор 0 0 , что (x 0 , 0 ) – седловая точка функции Лагранжа.

68

В случае если f , g1, , gm C1(M ) можно сформулировать эквивалентные аналитические условия.

Теорема 2 (теорема Куна-Такера в дифференциальной форме).

Для задачи выпуклого программирования с регулярным допустимым множеством М и f , g1, , gm C1(M ) , точка x 0 является оптимальным реше-

нием тогда и только тогда, когда существует такой вектор 0 0 , что выполня-

ются условия Куна-Такера:

 

L

 

 

0

 

 

0

 

 

 

 

 

 

(x

,

) 0,

i 1, , n

стационарность

 

 

 

 

 

x

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

j g j (x 0 )

0,

j 1, , m

дополняющая нежесткость

 

x 0

 

 

 

 

 

 

 

 

 

неотрицательность

0,

 

0 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вопросы для самоконтроля:

1.Дайте определение выпуклого множества, с примером.

2.Какая точка множества называется угловой?

3.Какая точка множества называется граничной?

4. Что такое надграфик и подграфик функции, нарисуйте иллюстрацию. 5. Дайте определение выпуклой/вогнутой функции, приведите примеры.

Может ли выпуклая/вогнутая функция не иметь экстремума?

6. Как связаны выпуклость/вогнутость функции с выпуклостью надграфика/подграфика?

7. Запишите общий вид функции Лагранжа для задачи выпуклого программирования.

8. Что такое седловая точка функции?

9. Сформулируйте теорему Куна-Такера о седловой точке.

10. Сформулируйте теорему Куна-Такера в дифференциальной форме. 11. Запишите условия Куна-Такера.

12. Как знаки множителей Лагранжа связаны с задействованными в задаче ограничениями?

Использование методов выпуклого программирования рассмотрим на примере.

Пример. Определите место наибольшего загрязнения на участке территории M заданном ограничениями-неравенствами (см. рис. 5)

g1 :12 3x 4 y 0; x, y 0 ,

69

если источник загрязнения находится в точке D(9;2) и загрязнение распространяется равномерно во все стороны от источника, причем уровень загрязнения падает пропорционально расстоянию от источника загрязнения.

Решение. Очевидно, что точка максимального загрязнения находится на наименьшем расстоянии от источника загрязнения. Для упрощения вычислений вместо функции расстояния будем использовать функцию квадрата расстояния. Таким образом, получаем следующую оптимальную задачу:

 

 

 

 

 

(x 9)

2

( y 2)

2

min

 

 

12 3x 4 y 0,

 

: g1

 

 

 

 

: g2 , g3

x, y 0.

 

Чтобы привести к виду, соответствующему теореме Куна-Такера, заменим функцию на противоположную. Получаем задачу:

 

 

 

 

 

(x 9)

2

( y 2)

2

max : f

 

 

12 3x 4 y 0,

 

: g1

 

 

 

 

: g2 , g3

x, y 0.

 

 

 

I. Покажем, что сформулированная задача относится к задачам выпуклого программирования.

а) Проверим целевую функцию f на выпуклость/вогнутость используя гессиан.

1) Вычисли вторые частные производные f:

f ''

xx

(18 2x)

x

2;

f ''

xy

(18 2x)

y

0;

f ''

yx

0;

f ''

yy

2.

 

 

 

 

 

 

 

 

 

 

2) Запишем матрицу вторых производных для f – матрицу Гессе:

 

2

0

 

 

 

 

 

0

2

 

 

 

 

 

 

 

 

 

3) Проверим знаки главных миноров гессиана:

2 0,

 

 

2

0

 

4 0

 

 

1

2

 

0

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

– знакопеременны на всей области определения, начиная с «–», причем неравенства строгие, значит функция строго вогнута.

б) Функция g1 линейна, значит вогнута (из-за линейности, в частности, допустимая область является выпуклой, потому что задана тремя линейными неравенствами, значит является пересечением трех выпуклых множеств – полуплоскостей).

70

в) Допустимая область регулярна, поскольку, например, для точки (1,1) из допустимой области:

g1(1,1) 12 3 1 4 1 5 0 .

II. Решим задачу выпуклого программирования. а) Составим функцию Лагранжа для этой задачи:

L(x, y, 1, 2 , 3 ) (x 9)2 ( y 2)2 1(12 3x 4 y) 2 x 3 y

L

18 2x 3 0

x

1

2

 

 

 

L

 

 

 

4 2 y 4 1

3 0

 

y

 

 

 

 

 

 

1 (12 3x 4 y) 0

 

2 x 0

 

б) Выпишем условия Куна-Такера:

 

 

 

 

 

 

3 y 0

 

 

 

 

,

2

, 3

0

x, y, 1

(1)

(2)

(3)

(4)

(5)

(6)

в) Рассмотрим возможные комбинации положительности коэффициентов1, 2 , 3 (всего их 8):

1) Если 1 2 3 0, то из уравнений (1)-(2) получаем, что x=9, y=2. Эта точка лежит вне области М, поскольку нарушается условие g1(x, y) 0 :

g1(9,2) 12 3 9 4 2 23 0 .

2) Если 1 0, 2 3 0 , то

 

18 2x 3 1 0

x 9 3 / 2 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 1

 

 

 

 

 

 

 

 

 

 

4 2 y 4 1 0

y 2

 

 

 

 

 

 

 

 

 

 

12 3x 4 y 0

27 9 / 2 8 8 12 0

 

 

 

 

 

 

 

 

 

 

 

1

1

 

 

 

 

 

 

27 / 2 23

46

, x 9

23

 

58

, y 2

92

 

54 92

 

38

 

 

 

 

 

 

 

1

1

27

9

9

 

27

 

 

27

27

 

 

 

 

 

 

 

 

противоречие с (6).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3) Если 1 0, 2 0, 3 0 , то по (4):

 

 

 

 

 

 

 

 

 

 

 

x 0

18 2 0

 

по (1) 2 18 – противоречие с (6).

 

 

 

4) Если

1 2 0, 3

0 , то по (5):

y 0

 

x 9

 

g1(9,0) 6,

противоречие с g1(x, y) 0 , то есть точка (9, 0) лежит вне М.