Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МО2-2010 (новая редакция).doc
Скачиваний:
102
Добавлен:
28.04.2019
Размер:
5.01 Mб
Скачать

Алгоритм метода Хука-Дживса, использующий одномерный поиск

Начальный этап. Задать начальную точку , – параметр окончания счета, положить , .

Основной этап.

  1. Вычислить – оптимальное решение задачи минимизации функции одномерной переменной .

  2. Положить .

  3. Если , то положить , перейти к шагу 1, иначе положить .

  4. Если , то положить и остановится.

  5. Положить , вычислить , положить , , и перейти к шагу 1.

Пример 12.2. В таблице 12.1 и на рис. 12.4 приведены результаты решения задачи из примера 2.1 методом Хука-Дживса с использованием одномерной оптимизации.

Таблица 12.1

k

j

1

(-2;-1)

63

1

2

(-2;-1)

(0,5;-1)

(1;0)

(0;1)

2,5

1/6

(0,5;-1)

(0,5;-5/6)

(1/2;-5/6)

5/12

(-2;-1)

2

5/12

1

2

(1;0)

(0;1)

(0;0)

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

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

Алгоритм метода циклического покоординатного спуска, использующий одномерный поиск

Начальный этап. Задать начальную точку , – параметр окончания счета, положить , .

Основной этап.

  1. Вычислить .

  2. Положить .

  3. Если , то положить , перейти к шагу 1, иначе положить .

  4. Если , то положить и остановится, иначе положить , , и перейти к шагу 1.

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

Пример 12.3. Решить задачу из примера 12.1 методом циклического покоординатного спуска. Результаты вычислений приведены в таблице 12.2 и на рис. 12.5. На каждой итерации (k=1,2,…) векторы и получены в результате одномерной оптимизации по направлениям и . На первых итерациях функция заметно убывает, затем этот процесс сильно замедляется. После пяти итераций получена точка , значение функции в которой равно и (оптимальное решение , ). Замедление сходимости объясняется вытянутостью линий уровня функции . Сравнение с результатами решения этой задачи методом Хука-Дживса (см. табл. 12.1) показывает, что поиск по образцу (направление ) улучшает сходимость, что позволило получить решение задачи за две итерации.

Таблица 2.2

k

j

1

(-2;-1)

63

1

2

(1;0)

(0;1)

(-2;-1)

(1/2;-1)

5/2

1/6

(1/2;-1)

(1/2;-5/6)

2

(1/2;-5/6)

5/12

1

2

(1;0)

(0;1)

(1/2;-5/6)

(5/12;-10/12)

-1/12

5/36

(5/12;-5/6)

(5/12;-25/36)

3

(5/12;-25/36)

1

2

(1;0)

(0;1)

(5/12;-25/36)

(25/72;-25/36)

-5/72

25/216

(25/72;-25/36)

(25/72;-125/216)

4

(25/72;-125/216)

1

2

(1;0)

(0;1)

(25/72;-125/216)

(125/432;-125/216)

-25/432

125/1296

(125/432;-125/216)

(125/432;-625/1296)

5

(125/432;-625/1296)

Алгоритм метода покоординатного спуска, не использующий одномерной оптимизации