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

МиАПР_ПОВТ_2012 / Васильков_Компьютерные технологии вычислений

.pdf
Скачиваний:
325
Добавлен:
31.05.2015
Размер:
3.92 Mб
Скачать

4.Основная задача модернизации "базового" метода.

5.Основные достоинства модернизированного метода?

6.Каким образом повысить точность нахождения решения?

7.Условие отыскания оптимального решения.

8.Как найти самое большое значение Щх)!

9.Трудно ли метод поддается алгоритмизации, т.е. сложно ли составить алгоритм для решения задачи на ЭВМ?

10.Как влияет вид функции R{x) на процесс нахождения реше­ ния?

Метод деления пополам

1.Для каких функций Щх) пригоден метод половинного деле­ ния?

2.Каково основное достоинство метода половинного деления?

3.Каков способ "размещения" точек вычисления критерия оп­ тимальности на оси х1

4.Каким образом повысить точность нахождения решения х ?

5.Условие отыскания оптимального решения.

6.Как влияет вид функции R{x) на процесс нахождения реше­ ния?

7.Всегда ли метод гарантированно дает решение?

8.Каким образом определяется следующий отрезок, на котором находится экстремум?

9.Сколько раз нужно вычислить R{x) на отрезке [а, Ь], если хо­ тим найти решение с погрешностью 1% от длины [а, Ь]!

10.Может ли сокращение исходного отрезка [а, Ь] обеспечить уменьшение затрат на поиск решения с погрешностью 1 % от

[а,Ь]1 Метод золотого сечения

1.Может ли сокращение исходного отрезка [а, Ь] обеспечить уменьшение затрат на поиск решения с погрешностью 1 % от

[а, *]?

2.Всегда ли метод гарантированно дает решение?

3.Как влияет вид функции R{x) на процесс нахождения реше­ ния?

121

4.Каким образом определяется следующий отрезок, на котором находится экстремум?

5.Основное достоинство метода золотого сечения.

6.Каким образом повысить точность нахождения решения?

7.Как влияет вид функции R(x) на процесс нахождения реше­ ния?

8.Что делится по правилу золотого сечения?

9.Если отрезок [а, Ь] содержит внутреннюю точку с, то какое условие называется золотым сечением?

10.Сколько раз нужно вычислить R(x) на каждом шаге?

Метод параболической аппроксимации

1.Экстремум каких функций R{x) можно найти методом пара­ болической аппроксимации?

2.Основное достоинство метода параболической аппроксима­ ции.

3.Условие окончания поиска.

4.Каким образом находится аппроксимирующая парабола?

5.К чему может привести увеличение степени аппроксимирую­ щего полинома (с 2 до 3 или 4)?

6.Каким образом повысить точность нахождения решения?

7.Всегда ли метод гарантированно дает решение?

8.Способ формирования точек для построения аппроксими­ рующей параболы на текущем шаге.

9.Возможно ли нахождение решения задачи оптимизации за один шаг?

10.Как влияет вид функции R(x) на процесс нахождения реше­ ния?

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

КОНЦЕПЦИЯ МЕТОДОВ

В данном разделе рассматриваются методы построения улучшаюпщх последовательностей при отыскании экстремума функ­ ции R(x) без активных ограничений. Активными принято назы-

122

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

Величина шага Ах в рекуррентном соотношении

вычисляется с использованием градиента целевой функции R(x т.е.

Дх' =/(grad/?(x')),

при этом шаг может определяться с использованием градиента одной (текущей) или в двух (текущей и предыдущей) точках. Н правление градиента, как известно, показывает направлени наискорейшего возрас­ тания функции, а его модуль — скорость это­ го возрастания.

В отличие от других рассмотренных выше вычислительных мето­

дов поисковые методы

 

оптимизации

содержат

 

неформально (т.е. субъ­

 

ективно) задаваемые па­

 

раметры,

которые

су­

 

щественно

влияют

на

Рис. 17. Иллюстрация траекторий поис­

эффективность

поиска,

вследствие чего один и

ка минимума функции градиентными

тот же метод может дать

методами: 1 — оптимум; 2 — траекто­

рия метода градиента; 3 — траектория

совершенно

различные

метода тяжелого шарика; 4 — траек­

траектории поиска. По­

тория метода наискорейшего спуска

этому для всех методов,

5 — траектория метода сопряженных

рассматриваемых далее,

градиентов; 6 — начальные точки

на рис.

17

приводится

траекторий

12

липп» одна из возможных траекторий. Кроме того, для всех приве­ денных траекторий выбраны различные начальные условия, с тем чтобы не загромождать построения. На этом и последующих ри­ сунках зависимость Щх^,Х2) приведена в виде линий уровня на плоскости в координатах X, -Х2.

ОСНОВНЫЕ МЕТОДЫ

МЕТОД ГРАДИЕНТА

Метод градиента в чистом виде формирует шаг по перемен­ ным как функцию от градиента R(x) в текущей точке поиска. Про­ стейший алгоритм поиска ттЛ(;с) записывается в векторной форме следующим образом:

х'^^ =x'-hgradR{x'),

или в скалярном виде:

Xj =Xj-h-,

J-I

п.

 

dXj

 

Величина рабочего шага в направлении градиента h grad К{х) зависит от величины градиента, который заранее учесть трудно, и от коэффициента пропорциональности шага h, с помощью кото­ рого можно }пгфавлять эффективностью метода.

Поиск каждой новой точки состоит из двух этапов:

1)оценка градиента Щх) путем вычисления частных произ­ водных от Щх) по каждой переменной х/,

2)рабочий шаг по всем переменным одновременно. Величина h сильно влияет на эффективность метода. Большей

эффективностью обладает вариант метода, когда шаг по каждой переменной определяется направляющими косинусами гради­ ента

х'^^ = x'j -Acoscpy,

где cos ф , = , , „^ ч,-

124

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

Наибольшее распространение получили следующие алго

ритмы:

 

 

1. Л' = const =А (без коррекции);

 

2. А' =А''-'/2, естЯ{х')<К(х'-^У,

А' =h'-\ естК(х')>К(х'-^);

 

-1

• А'~'

З.А'=А'

,еслиа1<а<а2;А'=2А'

,еслиа,>а;А'=^г^,еслиа2<а

где а — угол между градиентами на предыдущем и текущем ша ге; а, иа2 — заданные пороговые значения выбираются субъек тивно (например, а, =л/6, а2 =л/3).

Вдали от оптимума направление градиента меняется мало, по этому шаг можно увеличить (второе выражение), вблизи от опти мума направление резко меняется (угол между градиентами R(x большой), поэтому А сокращается (третье выражение).

Для оценки частных производных используются разностные методы:

1. Алгоритм с центральной пробой

 

dR _^R(Xu...,x,+gi,...,x„)

-

К(хи...,х„...,х„)

dXi ~

gi

 

2. Алгоритм с парными пробами

 

dR ^ R(xu...,Xi+gi,...,x„)

-

R(xu...,Xi-gi,...,x„)

dXi ~

gi

 

где gj — пробный шаг по /-й переменной, выбираемый достаточ но малым для разностной оценки производной.

Первый алгоритм требует меньших затрат по сравнению со вторым (обычно затраты выражаются количеством вычислений критерия оптимальности), но позволяет получить решение менее точно, чем второй, и эта погрешность зависит от величины проб ного шага.

На рис. 17 приведена одна из возможных траекторий поиска минимума двумерной функции градиентным методом (наряду с другими ниже рассматриваемыми методами).

125

Условием окончания поиска может являться малость модуля градиента R(x), т.е. |grad Я{х)\< е.

Пример 1.

1. Требуется найти минимум функции R(xi,X2) = Ax^ +Вх\ -

-Ос,-ZJxj, где ^ =1,5 =2, С =3, Z) = 4.

2.Интервап поиска: х,„„ = -2, л,,„„ = 2, дг^н., = -2, JC2,„„ = 2.

3.Начальная точка: дг,^ = -0,5, х^^ = - 1 .

4.Параметры поиска: коэффициент шага А = 0,1, пробный шаг g = 0,01, погрешность Е = 0,01.

5.Алгоритм метода: алгоритм 1 (дг'*' =х' - AgradJ?(A:') ).

6.Алгоритм коррекции шага: без коррекции коэффициента пропорциональности шага (А = const).

7.Способ вычисления производной: вычисление grad/? с пар­ ными пробами.

Ре з у л ь т а т ы в ы ч и с л е н и й . В начальной точке вычис­ ляем градиент функции:

Щх^П,Х2) = 1,Ъ52, Rix^-g,X2) = 7^91, ^

= -2,2499;

RiXi,X2+g) = 7,295, R(xuX2-g) = 7,455, ^

= -8.

Значение критерия R = 7,3750. Делаем рабочий шаг, получаем д;, =-0,275, ^2=-0,2.

В новой точке опять вычисляем производные:

Л(^с,+^.д:2) = 1,656,

/?(jc,-g,X2) = 1,712,

^

= -2,7730j

Rixy,X2+g) =1,636,

Rixi,X2-g) = 1,732,

^

= ^ , 8 .

Значение критерия R = 1,3750.

Делаем рабочий шаг, получаем х, =0,002, Xj =0,280.

Далее аналогично осуществляем следующие шаги (табл. 18).

126

Таблица I 8

^

Х2

dR/dxi

dR/dx2

|grad/f|

R

3

0,302

0,568

-2,7258

-1,7280

3,2274

-2,5060

4

0,575

0,741

-2,0085

-1,0368

2,2603

-3,4002

5

0,776

0,844

-1,1947

-0,6221

1,3470

-3,8120

6

0,895

0,907

-0,5958

-0,3732

0,7031

-3,9508

7

0,955

0,944

-0,2652

-0,2239

0,3471

-3,9877

8

0,981

0,966

-0,1112

-0,1344

0,1744

-3,9967

9

0,992

0,980

-0,0453

-0,0806

0,0925

-3,9990

10

0,997

0,988

-0,0183

-0,0484

0,0517

-3,9997

11

0,999

0,993

-0,0073

-0,0290

0,0299

-3,9999

12

0,999

0,996

-0,0029

-0,0174

0,0177

-4,0000

13

1,000

0,997

-0,0012

-0,0104

0,0105

^,0000

14

1,000

0,998

-0,0005

-0,0063

0,0063

-4,0000

В последней точке модуль градиента меньше заданной по­ грешности (0,0063 < 0,01), поэтому поиск прекращается.

Пример 2.

Отличается от предыдущего только величиной коэффициента пропорциональности шага А, теперь А = 0,4. Ниже, в табл. 19 при­ ведены только первые 14 шагов (как и в предыдущем случае). Целесообразно сопоставить их путем построения траекторий поиска при обоих значениях А в координатах Х] -Xj-

Таблица 19

•«I

Хг

dRIdXi

dRldx2

|grad/?|

R

1

-0,500

-1,000

-2,2499

-8,0000

8,3104

7,3750

2

0,400

2,200

-2,5200

4,8000

5,4213

-0,2559

3

1,408

0,280

2,9471

-2,8800

4,1207

-2,3960

4

0,229

1,432

-2.8424

1,7280

3,3265

-2,3020

5

1,366

0,741

2,5986

-1,0368

2,7978

-3,4145

6

0,327

1,156

-2,6798

0,6221

2,7511

-2,8967

7

1,399

0,907

2,8681

-0,3732

2,8923

-3,4427

8

0,251

1,056

-2,8104

0,2239

2,8193

-2,7319

127

Продолжение

^1

Х2

dRIdx^

dR/dx2

Igrad^l

R

9

1,375

0,966

2,6760

-0,1344

2,6794

-3,5218

10

0,305

1,020

-2,7207

0,0806

2,7219

-2,8860

11

1,393

0,988

2,8244

-0,0484

2,8248

-3,4747

12

0,264

1,007

-2,7914

0,0290

2,7916

-2,7724

13

1,380

0,996

2,7148

-0,0174

2,7148

-3,5114

14

0,294

1,003

-2,7401

0,0104

2,7401

-2,8573

В этом случае поиск носит явно колебательный характер, пло­ хо приближаясь к решению.

МЕТОД НАИСКОРЕЙШЕГО СПУСКА

Основным недостатком градиентного метода является необ­ ходимость частого вычисления производных от R(x). Этого не­ достатка лишен метод наискорейшего спуска, который заключа­ ется в следующем.

Втекущей точке вычисляется grad/?(x), и затем в направлении градиента ищется mini?(;c). Практически это может быть осу­ ществлено любым методом одномерной оптимизации (поиск по одному направлению — направлению градиента), наиболее часто используется сканирование до первого локального минимума по направлению grad/?(jt).

Врезультате вдали от оптимума эффективность метода повы­ шается, мы быстрее попадаем в район оптимума, в окрестности которого эффективность метода снижается из-за частой смены направления поиска и приближается к эффективности метода гра­ диента.

Метод, как и все градиентные методы, обладает невысокой эффективностью в овражных фзшкциях. В ряде случаев можно повысить скорость выхода в район оптимума предъявлением невысоких требований к точности поиска min по направлению (задается величиной А — шагом поиска по направлению). 128

Условием окончания может являться малость модуля градиента ^(^) |grad/?(x:)|< Е. Можно также использовать и малость прира­ щений по переменным в результате шага, но только в том случае, если на данном шаге мы "проскочили" оптимум, иначе может оказаться, что малость шага обусловлена не близостью к оптиму­ му, а малостью коэффициента пропорциональности шага А.

В ряде случаев используют уменьшение шага поиска оптиму­ ма по направлению после каждой смены направления. Это позво­ ляет с большей точностью каждый раз находить оптимум, но рез­ ко снижает эффективность поиска в овражных функциях. Метод используется для локализации "дна оврага" в специальных ов­ ражных методах. Условием окончания поиска в этом случае явля­ ется достижение заданной малой величины шага.

Одна из возможных траекторий поиска минимума двумерной функции методом наискорейшего спуска приведена на рис. 17.

Пример.

Для сравнения с методом градиента рассмотрим решение пре­ дыдущего примера при Л = 0,1.

Результаты расчетов . Расчет производных детально рассмотрен выше, поэтому здесь не приводится. Ниже, в табл. 20 приводятся результаты движения по градиенту с постоянным ша­ гом.

Таблица 20

Xl

Х2

dR/dxi

dR/dx2

|grad/?|

R

1

-0,500

-1,000

-2,2499

-8.0000

8,3104

7,3750

1

-0,275

-0,200

-2,2499

-8,0000

8,3104

1,6842

1

-0,050

0,600

-2,2499

-8J0OOO

8,3104

-1,5301

1

0,175

1,400

-2,2499

-8,0000

8,3104

-2,1996

В следующей точке (0,400, 2,00) значение критерия (R = = -0,256) оказывается хуже, чем в последней (Л =-2,1996). По­ этому в найденной точке оптимума по направлению снова вычис­ ляем градиент и по нему совершаем шаги, до тех пор, пока не най­ дем наилучшую точку (табл. 21).

129

Таблица 21

^1

хг

dRIdx^

dRldx2

|grad/?|

R

 

 

Второй поиск по градиенту

 

 

2

0,175

1,400

-2,9081

1,6000

3,3192

-2,1996

2

0,466

1,240

-2,9081

1,6000

3,3192

-3,1811

2

0,757

1,080

-2,9081

1,6000

3,3192

-3,8239

2

1,047

0,920

-2,9081

1,6000

3,3192

-3,9804

 

 

Третий поиск по градиенту

 

 

3

1,047

0,920

0,2912

-0,3200

0,4326

-3,9804.

3

1,018

0,952

0,2912

-0,3200

0,4326

-3,9944

3

0,989

0,984

0,2912

-0,3200

0,4326

-3,9991

 

 

Четвертый поиск по градиенту

 

 

4

0,989

0,984

-0,0646

-0,0640

0,0909

-3,9991

4

.0,996

0,990

-0,0646

-0,0640

0,0909

-3,9998

4

1,002

0,997

-0,0646

-0,0640

0,0909

-4,0000

 

 

Пятый поиск по градиенту

 

 

5

1,002

0,997

0,0126

-0,0128

0,0179

^,0000

5

1,001

0,998

0,0126

-0,0128

0,0179

-4,0000

5

1,000

0,999

0,0126

-0,0128

0,0179

-4,0000

МЕТОД СОПРЯЖЕННЫХ ГРАДИЕНТОВ

Градиентные методы, базирующиеся только на вычислении градиента Щх), являются методами первого порядка, так как на интервале шага они заменяют нелинейную функцию Щх) линей­ ной.

Более эффективными могут быть методы второго порядка, ко­ торые используют при вычислении не только первые, но и вторые производные от R{x) в текущей точке. Однако у этих методов есть свои труднорешаемые проблемы — вычисление вторых произ­ водных в точке, к тому же вдали от оптимума матрица вторых производных может быть плохо обусловлена.

Метод сопряженных градиентов является попыткой объеди­ нить достоинства методов первого и второго порядка с исключе­ нием их недостатков. На начальных этапах (вдали от оптимума)

130