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

977

.pdf
Скачиваний:
1
Добавлен:
17.06.2024
Размер:
1.01 Mб
Скачать

Теорема 5.

Система неравенств

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

где gi – вогнутые функции, определяет выпуклое множество

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

Доказательство .

Пусть x, y X , тогда gi (x) 0 и gi ( y) 0 . Так как функции gi – вогнутые, то для любой точки 0,1 имеем:

gi x 1 y gi x 1 gi y 0.

Следовательно, точка x 1 y X .

Теорема 6.

Функция f (x) , определенная и дважды дифференцируемая на

выпуклом множестве X , выпукла тогда и только тогда, когда

матрица Гёссе этой функции является положительно-полуопре- деленной в любой точке множества X .

(Без доказательства).

Напомним, что матрица Гёссе H (x) – симметричная матрица вторых

производных функции 2 f , а необходимыми и достаточными услови-

xi x j

ями положительной определенности симметричной матрицы являются: либо положительность определителя и всех главных миноров матрицы, либо положительность всех ее собственных чисел.

Теорема 7.

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

(Доказательство методом математической индукции).

Теорема 8.

 

 

 

 

 

 

 

N

N

 

 

Если функция f (x) выпуклая,

тогда для

x i si ,

i 1

 

 

выполняется неравенство

 

 

 

 

i 1

i 1

 

 

 

 

 

 

 

 

 

 

f (x)

 

N

 

N

.

 

 

 

f

i si

i f si

 

 

 

 

i 1

 

i 1

 

 

(Без доказательства).

 

 

 

 

 

 

31

3.3. Задача выпуклого программирования (ЗВП)

Пусть X – выпуклое множество. Задача выпуклого программирования

заключается в следующем: найти min f (x) при ограничениях

x X

g

j

(x) 0,

j 1, ..., m,

x (x , ..., x

n

),

 

 

 

1

 

xi

0,

i 1, ..., n,

 

 

 

где f (x), g j x – выпуклые функции на множестве X.

3.3.1. Условие регулярности Слейтера

Область , являющаяся допустимой областью ЗВП, называется регу-

лярной,

если существует точка x(0) ,

x(0) (x(0)

, ..., x(0) )

такая, что

 

i 1, ..., n и g j x(0) 0, j 1, ..., m .

1

n

 

xi(0) 0,

 

 

 

Говорят, что для регулярной области выполняется условие Слей-

тера.

3.3.2. Функция Лагранжа

Пусть задача выпуклого программирования сформулирована в канонической форме:

f (x) min; x (x1 , x2 , ..., xn );

x

 

g j

(x) 0, j 1, 2, ..., m;

(14)

 

xi 0, i 1, 2, ..., n.

 

Рассмотрим вектор

u u1 , u2 , , um , у которого

u j R и

u j 0,

j 1, 2, , m. Построим функцию Лагранжа L(x, u) для задачи вы-

пуклого программирования:

 

 

 

m

 

 

L(x,u) f (x) u j g j (x) f (x) (G,u).

(15)

j 1

Здесь G g1 (x), g2 (x), ..., gm (x) ; G,u – скалярное произведение, а компоненты вектора u u1 , u2 , , um – множители Лагранжа.

3.3.3. Седловая точка

Пара векторов x* , u* называется седловой точкой функции Лагранжа

L x,u , если вектор x* принадлежит области ,

u*j 0,

j 1, 2, ..., m , и вы-

полняется неравенство

 

 

L(x* , u) L(x* , u* ) L(x, u* ) .

(16)

32

Это неравенство означает, что L(x, u* ) имеет локальный минимум, а, следовательно, и глобальный минимум в точке x* (так как L – выпуклая функция по переменной x) при u u* . Кроме того, функция L(x* , u) имеет и глобальный максимум в точке u* при x x* . Следовательно, можно запи-

сать, что L(x* , u* ) min max L(x, u) .

x u j 0

На рис. 4 показаны пример функции с седловой точкой и линии уровня.

L(x u) x2 u2

L L

Рис. 4. Седловая точка L(0, 0) и линии уровня

3.3.4. Теорема Куна — Таккера

Пусть область является областью, удовлетворяющей условию регулярности Слейтера для задачи выпуклого программирования (14).

Вектор

x* (x* , x* , ..., x* )

будет решением задачи выпуклого програм-

 

 

1

2

n

 

 

мирования

(14)

 

тогда

и

только

тогда, когда существует вектор

u* (u* , u*

, ..., u*

)

такой, что

x* 0,

u* 0, где i 1, 2, ..., n и j 1, 2, ..., m,

1 2

m

 

 

 

i

j

и пара векторов x* , u* является седловой точкой функции Лагранжа для задачи выпуклого программирования (14), то есть выполняется неравенство

L(x* , u) L(x* , u* ) L(x, u* ) .

Докажем достаточность условия теоремы.

 

Подставив выражения для функции L x, y из равенства (15) в неравен-

ство (16), получим:

 

 

 

m

m

m

 

f (x* ) u j g j (x* ) f (x* ) u*j

g j (x* ) f (x) u*j g j (x) .

(17)

j 1

j 1

j 1

 

33

Так как u j – произвольная неотрицательная величина, то можно заключить, что:

 

 

 

m

m

 

 

1)

g j (x* ) 0

(так как u j g j (x* ) u*j g j (x* ) и u*j

0);

 

 

 

j 1

j 1

 

 

 

m

 

 

 

 

 

2)

u*j g j (x* ) 0 , так как при

u j 0,

j 1, 2, , m

из пункта 1 сле-

 

j 1

 

 

 

 

 

 

m

 

но g j x* 0 , а u*j

 

 

дует, что u*j g j (x* ) 0,

0.

 

j 1

m

Это возможно, только когда u*j g j (x* ) 0 .

j1

3)Тогда из правой части неравенства (17) получим:

 

m

m

f (x* ) u*j g j (x* ) f (x) u*j g j (x) ,

 

j 1

j 1

 

 

m

 

f (x* ) f (x) u*j g j (x).

 

 

j 1

Так как g j x 0 , то

f (x* ) f (x); следовательно, x* – точка минимума.

3.3.5. Теорема Куна — Таккера для дифференцируемых функций

Если функции f (x) и g j (x) из задачи выпуклого програм-

мирования (14) непрерывно дифференцируемы в области , то, длятогочтобыпаравекторов x* , u* представляласобойседловую

точку функции Лагранжа для данной ЗВП, необходимо и достаточно выполнение следующих условий:

 

1)

L*

0;

 

 

x

 

 

 

* L*

2)

 

,

 

 

x

 

0;

 

 

 

x

3) x* 0;

 

j 1, 2, , n;

 

4)

L*

0;

 

 

u

 

5)u* , L* 0;u

6)ui* 0, i 1, 2, , m.

34

*

*

 

*

 

*

 

*

 

 

*

 

 

*

 

*

 

*

 

 

*

 

 

*

 

 

L

 

L

 

L

 

L

 

 

L

 

L

 

L

 

L

 

Здесь L

L x

, u

 

,

x

x

,

x

 

, ,

x

 

,

u

u

,

u

 

, ,

u

 

 

 

2

 

 

 

2

 

.

 

 

 

 

 

 

 

1

 

 

 

 

n

 

 

 

1

 

 

 

 

m

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

Методические рекомендации к теме 3

Знать основные понятия и теоремы выпуклого программирования, формулировку ЗВП, иметь представление об условии регулярности Слейтера, уметь доказывать выпуклость функций, составлять функцию Лагранжа для ЗВП, составлять условия теоремы Куна – Таккера и решать ЗВП.

Уметьотвечатьнаконтрольныевопросыпотемеирешатьпоставленные задачи.

Контрольные вопросы и задания

1.Какая область называется регулярной?

2.Какую роль в задачах минимизации играет функция Лагранжа?

3.Что такое седловая точка функции Лагранжа?

35

4. МЕТОДЫ БЕЗУСЛОВНОЙ МИНИМИЗАЦИИ (минимизация без ограничений)

Общая задача нелинейного программирования без ограничений сводится к следующей: минимизировать целевую функцию

f (x), x Rn ,

f (x) R .

Задача минимизации функции решается с помощью построения итерационного алгоритма; причем если в алгоритме не используются производные функции f (x) , то метод называется методом нулевого порядка. Если в

алгоритме используются первые производные функции f (x) , то метод

называется методом первого порядка; если вторые производные – методом второго порядка и т.д.

4.1. Методы нулевого порядка

Методы нулевого порядка применяются в тех случаях, когда:

1)вычисление производных функции f (x) затруднительно;

2)при вычислении производных значительно теряется точность алго-

ритма;

3)функция f (x) не имеет производных;

4)функция f (x) является функцией «овражного типа», то есть когда

она очень медленно убывает в одном направлении.

Методынулевого порядканеприхотливы к свойствамцелевой функции: не требуют ее непрерывности, дифференцируемости, монотонности и т.д. Рассмотрим некоторые из них, в частности методы одномерной оптимиза-

ции

f (x) min, a x b

и

многомерной

оптимизации

f (x1, x2 , , xn ) min, x Rn .

 

 

 

4.1.1. Методы одномерной оптимизации 4.1.1.1. Метод перебора

Метод перебора является простейшим из прямых методов минимизации. Пусть f (x) - непрерывная функция на интервале [a, b] и требуется

найти точку минимума x* функции f (x) на этом отрезке с абсолютной погрешностью . Отрезок [a, b] разбивается на n равных частей точками деле-

ния xi a hi , h b n a , i 0,1, , n. Вычислив значения f (x) в этих точ-

ках, путем сравнения найдем точку xm , для которой f (xm ) min f (xi ).

0 i n

36

Далее полагаем, что x* xm , f * f xm . При этом максимальная по-

грешность определения точки x* равна b n a .

Существует ряд специальных методов поиска оптимальных решений с разными способами выбора узлов xi и сужения интервала неопределенно-

сти: метод деления отрезка пополам, метод золотого сечения и др.

4.1.1.2. Метод золотого сечения

Деление отрезка на две неравные части таким образом, чтобы отношение длины всего отрезка к длине большей его части было равно отношению длины большей части к длине меньшей части, называется золотым сечением этого отрезка (рис. 5).

 

 

Рис. 5. Золотое сечение отрезка

1

 

 

 

; 1 τ τ2

;

 

5 1

0,618.

 

1

 

2

 

 

 

 

 

 

 

Метод золотого сечения для функции одной переменной состоит в построении последовательности отрезков, стягивающейся к точке минимума

функции f (x) , таких, что a0 , b0 a1 , b1 , .

Напервомшагепроцессаоптимизациивнутриотрезка a0 , b0 выбираем две точки x1 и x2 (x1 x2 ) , вычисляем значения целевой функции – f (x1 ) и f (x2 ) . Пусть f (x1 ) f (x2 ) . Тогда очевидно, что минимум расположен на одном из прилегающих к точке x1 отрезков: a0 , x1 или x1 , x2 . Поэтому отрезок x2 , b0 можно отбросить, сузив тем самым первоначальный интер-

вал поиска минимума.

Второй шаг производим на отрезке a1 , b1 , где a1 a0 , b1 x2 . Нужно

снова выбрать две внутренние точки таким образом, чтобы одна из них ( x1 ) осталась из предыдущего шага; поэтому достаточно выбрать точку

x3 , вычислить значение f (x3 ) и произвести сравнение.

37

Процесс оптимизации повторяется до тех пор, пока длина очередного отрезка an , bn не станет меньше заданной длины .

Деление отрезка на две неравные части производится точками золотого сечения.

Точки x1 и x2 (рис.6) являются точками золотого сечения отрезка [a, b]. При этом точка x1 осуществляет золотое сечение отрезка [a, x2], а точка x2 – отрезка [x1, b]. Это позволяет на каждом шаге, за исключением первого, вычисление значения функции f (x) производить лишь один раз.

Алгоритм метода золотого сечения Строится последовательность интервалов

a0 , b0 a1, b1 ak , bk x* ,

таких, что ak bk 0 , следующим образом. Предположим, что выполнено k шагов. Вычисляем

x1 bk bk ak ak (1 ) bk ak ;

x2 ak bk ak ;

 

 

0,618;

1 0,382.

 

 

 

 

 

 

Если f (x) f ( y) , то ak 1 ak ,

bk 1 y , иначе ak 1

x, bk 1

bk .

 

 

Вычислительный процесс

заканчивается,

когда

 

an bn

 

,

 

 

где – требуемая точность.

Рис. 6. Иллюстрация метода золотого сечения

4.1.2.Методы многомерной оптимизации

4.1.2.1.Метод покоординатного спуска

Идея всех методов спуска состоит в том, чтобы исходя из начального приближения – точки x(0) x1(0) , x2(0) , ..., xn(0) D – перейти в следующую

38

точку x(1)

x(1) , x

(1) , ...,

x(1) D так, чтобы значение

f x , x

2

, ..., x

n

умень-

шилось:

1

 

 

2

n

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

f x(1)

f x(0) .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

Пусть в области D задано нулевое приближение

 

 

 

 

 

 

 

 

 

 

 

 

 

x(0) x(0) , x(0) , ..., x

(0) D .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

2

n

 

 

 

 

 

 

 

 

Рассматриваем функцию f x1 , x2 , ..., xn при фиксированных значениях

x2 , x3 , ,

xn как функцию одной переменной x1 , т.е. на первом шаге нахо-

дим

 

 

 

 

 

 

min f

x , x(0) , ...,

x(0) .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xi D

1

2

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Значение x

1

, доставляющее минимум, обозначим через

 

x(1) :

 

 

 

 

 

 

f x(1)

 

 

 

 

f x(0)

 

, ..., x(0) .

 

 

 

1

 

 

 

 

 

 

 

, x(0)

, ..., x(0)

, x(0)

 

 

 

 

 

 

 

 

 

 

 

1

2

 

 

n

1

2

 

n

 

 

 

 

 

 

Далее при фиксированных значениях

x(1) , x(0) , ..., x(0)

 

 

рассматриваем

f x(1)

, x , x(0) ,..., x(0)

 

 

 

 

 

1

3

n

 

 

 

 

 

 

как функцию одной переменной x

2

.

 

 

 

 

1

2

3

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

Находим min

f x(1) , x

2

, x(0) ,..., x(0) .

 

 

 

 

 

 

 

 

 

 

 

x2 D

1

 

3

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Значение x2 , доставляющее минимум, обозначим через x2(1) , получаем:

f x1(1) , x2(1) , x3(0) , ..., xn(0) f x1(1) , x2(0) , x3(0) , ..., xn(0)

и т.д. После (n–1) шагов:

f x(1) ,

...,

x(1) f x(1) ,

x(1) , ..., x(0) .

 

 

1

 

n

 

1

2

n

 

В результате n шагов покоординатного спуска происходит переход из

начальной точки x(0)

x(0) , ..., x(0)

 

в точку

x(1) x(1) , ..., x(1) . Если при

 

1

 

n

 

 

 

1

n

этомоказывается, что

f x(1)

, ..., x(1)

f x(0) , ..., x(0) , тоначальнаяточка x(0)

 

1

 

n

 

1

 

n

, то выполняются

доставляет минимум функции

f x . Если

f

x(1) f x(0)

следующие n шагов покоординатного спуска, при этом за начальную точку принимается x(1) . В результате получаем x(2) такую, что f x(2) f x(1) , и

т.д. Этот процесс продолжается до тех пор, пока не выполнится какое-либо условие окончания процесса, например:

f (x(k 1) ) f (x(k ) )

,

(18)

где – заданная точность.

39

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

4.1.2.2. Прямой поиск, или метод Хука и Дживса (метод конфигураций)

Алгоритм метода прямого поиска включает два этапа:

1)исследующий поиск вокруг базисной точки, который используется для выбора направления минимизации;

2)поискпообразцу, включающийвсебяминимизациюповыбранному направлению.

Вычислительная схема имеет следующий вид:

1.Задается начальное значение вектора x(0) и начальное приращениеx(0) , вычисляется f x(0) .

2.В циклическом порядке изменяется каждая переменная на выбранном значении x(0) , пока все переменные не будут изменены. При этом

если

f x(0)

x(0)

, ,

x(0)

x(0)

, x(0) , , x(0) f x(0) , то для вектора пер-

 

1

1

 

i

i

i 1

n

 

 

вого приближения x(1)

принимаем xi(1)

xi(0)

xi(0) , иначе xi(1)

xi(0) .

То есть на каждом сдвиге по переменной xi значение целевой функции сравнивается с ее значением в предыдущей точке. Если целевая функция уменьшается на этом шаге, то ее старое значение заменяется на новое, используемое при последующих сравнениях.

3. Осуществляется поиск по образцу: эффективные изменения переменных определяют некоторый вектор в пространстве x , т.е. вектор, 0, , xi , , 0, , x j , , у которого ненулевые компоненты распо-

ложены на местах, соответствующих номерам переменных, изменение которых привело к уменьшению целевой функции.

Вектор x указывает направление минимизации. Следует продолжить движение по этому направлению, выполнив один или несколько шагов (до тех пор, пока функция не перестанет убывать).

4.Далее опять используется исследующий поиск.

5.Успех поискапо образцу оценивается только послеочередного исследующего поиска.

Если функция не уменьшается в результате исследующего поиска, то уменьшают значение шага x и снова проводят исследующий поиск. Такой

процесс повторяют до выполнения условия x , где ε – константа, задающая точность поиска минимума.

40

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]